2 * RIPng debug output routines
3 * Copyright (C) 1998 Kunihiro Ishiguro
5 * This file is part of GNU Zebra.
7 * GNU Zebra is free software; you can redistribute it and/or modify it
8 * under the terms of the GNU General Public License as published by the
9 * Free Software Foundation; either version 2, or (at your option) any
12 * GNU Zebra is distributed in the hope that it will be useful, but
13 * WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * General Public License for more details.
17 * You should have received a copy of the GNU General Public License
18 * along with GNU Zebra; see the file COPYING. If not, write to the Free
19 * Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
25 #include "ripngd/ripng_debug.h"
27 /* For debug statement. */
28 unsigned long ripng_debug_event
= 0;
29 unsigned long ripng_debug_packet
= 0;
30 unsigned long ripng_debug_zebra
= 0;
32 DEFUN (show_debugging_ripng
,
33 show_debugging_ripng_cmd
,
34 "show debugging ripng",
37 "RIPng configuration\n")
39 vty_out (vty
, "RIPng debugging status:%s", VTY_NEWLINE
);
41 if (IS_RIPNG_DEBUG_EVENT
)
42 vty_out (vty
, " RIPng event debugging is on%s", VTY_NEWLINE
);
44 if (IS_RIPNG_DEBUG_PACKET
)
46 if (IS_RIPNG_DEBUG_SEND
&& IS_RIPNG_DEBUG_RECV
)
48 vty_out (vty
, " RIPng packet%s debugging is on%s",
49 IS_RIPNG_DEBUG_DETAIL
? " detail" : "",
54 if (IS_RIPNG_DEBUG_SEND
)
55 vty_out (vty
, " RIPng packet send%s debugging is on%s",
56 IS_RIPNG_DEBUG_DETAIL
? " detail" : "",
59 vty_out (vty
, " RIPng packet receive%s debugging is on%s",
60 IS_RIPNG_DEBUG_DETAIL
? " detail" : "",
65 if (IS_RIPNG_DEBUG_ZEBRA
)
66 vty_out (vty
, " RIPng zebra debugging is on%s", VTY_NEWLINE
);
71 DEFUN (debug_ripng_events
,
72 debug_ripng_events_cmd
,
75 "RIPng configuration\n"
76 "Debug option set for ripng events\n")
78 ripng_debug_event
= RIPNG_DEBUG_EVENT
;
82 DEFUN (debug_ripng_packet
,
83 debug_ripng_packet_cmd
,
86 "RIPng configuration\n"
87 "Debug option set for ripng packet\n")
89 ripng_debug_packet
= RIPNG_DEBUG_PACKET
;
90 ripng_debug_packet
|= RIPNG_DEBUG_SEND
;
91 ripng_debug_packet
|= RIPNG_DEBUG_RECV
;
95 DEFUN (debug_ripng_packet_direct
,
96 debug_ripng_packet_direct_cmd
,
97 "debug ripng packet (recv|send)",
99 "RIPng configuration\n"
100 "Debug option set for ripng packet\n"
101 "Debug option set for receive packet\n"
102 "Debug option set for send packet\n")
104 ripng_debug_packet
|= RIPNG_DEBUG_PACKET
;
105 if (strncmp ("send", argv
[0], strlen (argv
[0])) == 0)
106 ripng_debug_packet
|= RIPNG_DEBUG_SEND
;
107 if (strncmp ("recv", argv
[0], strlen (argv
[0])) == 0)
108 ripng_debug_packet
|= RIPNG_DEBUG_RECV
;
109 ripng_debug_packet
&= ~RIPNG_DEBUG_DETAIL
;
113 DEFUN (debug_ripng_packet_detail
,
114 debug_ripng_packet_detail_cmd
,
115 "debug ripng packet (recv|send) detail",
117 "RIPng configuration\n"
118 "Debug option set for ripng packet\n"
119 "Debug option set for receive packet\n"
120 "Debug option set for send packet\n"
121 "Debug option set detaied information\n")
123 ripng_debug_packet
|= RIPNG_DEBUG_PACKET
;
124 if (strncmp ("send", argv
[0], strlen (argv
[0])) == 0)
125 ripng_debug_packet
|= RIPNG_DEBUG_SEND
;
126 if (strncmp ("recv", argv
[0], strlen (argv
[0])) == 0)
127 ripng_debug_packet
|= RIPNG_DEBUG_RECV
;
128 ripng_debug_packet
|= RIPNG_DEBUG_DETAIL
;
132 DEFUN (debug_ripng_zebra
,
133 debug_ripng_zebra_cmd
,
136 "RIPng configuration\n"
137 "Debug option set for ripng and zebra communication\n")
139 ripng_debug_zebra
= RIPNG_DEBUG_ZEBRA
;
143 DEFUN (no_debug_ripng_events
,
144 no_debug_ripng_events_cmd
,
145 "no debug ripng events",
148 "RIPng configuration\n"
149 "Debug option set for ripng events\n")
151 ripng_debug_event
= 0;
155 DEFUN (no_debug_ripng_packet
,
156 no_debug_ripng_packet_cmd
,
157 "no debug ripng packet",
160 "RIPng configuration\n"
161 "Debug option set for ripng packet\n")
163 ripng_debug_packet
= 0;
167 DEFUN (no_debug_ripng_packet_direct
,
168 no_debug_ripng_packet_direct_cmd
,
169 "no debug ripng packet (recv|send)",
172 "RIPng configuration\n"
173 "Debug option set for ripng packet\n"
174 "Debug option set for receive packet\n"
175 "Debug option set for send packet\n")
177 if (strncmp ("send", argv
[0], strlen (argv
[0])) == 0)
179 if (IS_RIPNG_DEBUG_RECV
)
180 ripng_debug_packet
&= ~RIPNG_DEBUG_SEND
;
182 ripng_debug_packet
= 0;
184 else if (strncmp ("recv", argv
[0], strlen (argv
[0])) == 0)
186 if (IS_RIPNG_DEBUG_SEND
)
187 ripng_debug_packet
&= ~RIPNG_DEBUG_RECV
;
189 ripng_debug_packet
= 0;
194 DEFUN (no_debug_ripng_zebra
,
195 no_debug_ripng_zebra_cmd
,
196 "no debug ripng zebra",
199 "RIPng configuration\n"
200 "Debug option set for ripng and zebra communication\n")
202 ripng_debug_zebra
= 0;
207 static struct cmd_node debug_node
=
210 "", /* Debug node has no interface. */
215 config_write_debug (struct vty
*vty
)
219 if (IS_RIPNG_DEBUG_EVENT
)
221 vty_out (vty
, "debug ripng events%s", VTY_NEWLINE
);
224 if (IS_RIPNG_DEBUG_PACKET
)
226 if (IS_RIPNG_DEBUG_SEND
&& IS_RIPNG_DEBUG_RECV
)
228 vty_out (vty
, "debug ripng packet%s%s",
229 IS_RIPNG_DEBUG_DETAIL
? " detail" : "",
235 if (IS_RIPNG_DEBUG_SEND
)
236 vty_out (vty
, "debug ripng packet send%s%s",
237 IS_RIPNG_DEBUG_DETAIL
? " detail" : "",
240 vty_out (vty
, "debug ripng packet recv%s%s",
241 IS_RIPNG_DEBUG_DETAIL
? " detail" : "",
246 if (IS_RIPNG_DEBUG_ZEBRA
)
248 vty_out (vty
, "debug ripng zebra%s", VTY_NEWLINE
);
257 ripng_debug_event
= 0;
258 ripng_debug_packet
= 0;
259 ripng_debug_zebra
= 0;
265 ripng_debug_event
= 0;
266 ripng_debug_packet
= 0;
267 ripng_debug_zebra
= 0;
269 install_node (&debug_node
, config_write_debug
);
271 install_element (VIEW_NODE
, &show_debugging_ripng_cmd
);
273 install_element (ENABLE_NODE
, &show_debugging_ripng_cmd
);
274 install_element (ENABLE_NODE
, &debug_ripng_events_cmd
);
275 install_element (ENABLE_NODE
, &debug_ripng_packet_cmd
);
276 install_element (ENABLE_NODE
, &debug_ripng_packet_direct_cmd
);
277 install_element (ENABLE_NODE
, &debug_ripng_packet_detail_cmd
);
278 install_element (ENABLE_NODE
, &debug_ripng_zebra_cmd
);
279 install_element (ENABLE_NODE
, &no_debug_ripng_events_cmd
);
280 install_element (ENABLE_NODE
, &no_debug_ripng_packet_cmd
);
281 install_element (ENABLE_NODE
, &no_debug_ripng_packet_direct_cmd
);
282 install_element (ENABLE_NODE
, &no_debug_ripng_zebra_cmd
);
284 install_element (CONFIG_NODE
, &debug_ripng_events_cmd
);
285 install_element (CONFIG_NODE
, &debug_ripng_packet_cmd
);
286 install_element (CONFIG_NODE
, &debug_ripng_packet_direct_cmd
);
287 install_element (CONFIG_NODE
, &debug_ripng_packet_detail_cmd
);
288 install_element (CONFIG_NODE
, &debug_ripng_zebra_cmd
);
289 install_element (CONFIG_NODE
, &no_debug_ripng_events_cmd
);
290 install_element (CONFIG_NODE
, &no_debug_ripng_packet_cmd
);
291 install_element (CONFIG_NODE
, &no_debug_ripng_packet_direct_cmd
);
292 install_element (CONFIG_NODE
, &no_debug_ripng_zebra_cmd
);