2 * Copyright (C) 1999 Kunihiro Ishiguro <kunihiro@zebra.org>
4 * This file is part of GNU Zebra.
6 * GNU Zebra is free software; you can redistribute it and/or modify it
7 * under the terms of the GNU General Public License as published by the
8 * Free Software Foundation; either version 2, or (at your option) any
11 * GNU Zebra is distributed in the hope that it will be useful, but
12 * WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * General Public License for more details.
16 * You should have received a copy of the GNU General Public License
17 * along with GNU Zebra; see the file COPYING. If not, write to the Free
18 * Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
24 #include "ripd/rip_debug.h"
26 /* For debug statement. */
27 unsigned long rip_debug_event
= 0;
28 unsigned long rip_debug_packet
= 0;
29 unsigned long rip_debug_zebra
= 0;
31 DEFUN (show_debugging_rip
,
32 show_debugging_rip_cmd
,
38 vty_out (vty
, "RIP debugging status:%s", VTY_NEWLINE
);
40 if (IS_RIP_DEBUG_EVENT
)
41 vty_out (vty
, " RIP event debugging is on%s", VTY_NEWLINE
);
43 if (IS_RIP_DEBUG_PACKET
)
45 if (IS_RIP_DEBUG_SEND
&& IS_RIP_DEBUG_RECV
)
47 vty_out (vty
, " RIP packet%s debugging is on%s",
48 IS_RIP_DEBUG_DETAIL
? " detail" : "",
53 if (IS_RIP_DEBUG_SEND
)
54 vty_out (vty
, " RIP packet send%s debugging is on%s",
55 IS_RIP_DEBUG_DETAIL
? " detail" : "",
58 vty_out (vty
, " RIP packet receive%s debugging is on%s",
59 IS_RIP_DEBUG_DETAIL
? " detail" : "",
64 if (IS_RIP_DEBUG_ZEBRA
)
65 vty_out (vty
, " RIP zebra debugging is on%s", VTY_NEWLINE
);
70 DEFUN (debug_rip_events
,
77 rip_debug_event
= RIP_DEBUG_EVENT
;
81 DEFUN (debug_rip_packet
,
88 rip_debug_packet
= RIP_DEBUG_PACKET
;
89 rip_debug_packet
|= RIP_DEBUG_SEND
;
90 rip_debug_packet
|= RIP_DEBUG_RECV
;
94 DEFUN (debug_rip_packet_direct
,
95 debug_rip_packet_direct_cmd
,
96 "debug rip packet (recv|send)",
100 "RIP receive packet\n"
103 rip_debug_packet
|= RIP_DEBUG_PACKET
;
104 if (strncmp ("send", argv
[0], strlen (argv
[0])) == 0)
105 rip_debug_packet
|= RIP_DEBUG_SEND
;
106 if (strncmp ("recv", argv
[0], strlen (argv
[0])) == 0)
107 rip_debug_packet
|= RIP_DEBUG_RECV
;
108 rip_debug_packet
&= ~RIP_DEBUG_DETAIL
;
112 DEFUN (debug_rip_packet_detail
,
113 debug_rip_packet_detail_cmd
,
114 "debug rip packet (recv|send) detail",
118 "RIP receive packet\n"
120 "Detailed information display\n")
122 rip_debug_packet
|= RIP_DEBUG_PACKET
;
123 if (strncmp ("send", argv
[0], strlen (argv
[0])) == 0)
124 rip_debug_packet
|= RIP_DEBUG_SEND
;
125 if (strncmp ("recv", argv
[0], strlen (argv
[0])) == 0)
126 rip_debug_packet
|= RIP_DEBUG_RECV
;
127 rip_debug_packet
|= RIP_DEBUG_DETAIL
;
131 DEFUN (debug_rip_zebra
,
136 "RIP and ZEBRA communication\n")
138 rip_debug_zebra
= RIP_DEBUG_ZEBRA
;
142 DEFUN (no_debug_rip_events
,
143 no_debug_rip_events_cmd
,
144 "no debug rip events",
154 DEFUN (no_debug_rip_packet
,
155 no_debug_rip_packet_cmd
,
156 "no debug rip packet",
162 rip_debug_packet
= 0;
166 DEFUN (no_debug_rip_packet_direct
,
167 no_debug_rip_packet_direct_cmd
,
168 "no debug rip packet (recv|send)",
173 "RIP option set for receive packet\n"
174 "RIP option set for send packet\n")
176 if (strncmp ("send", argv
[0], strlen (argv
[0])) == 0)
178 if (IS_RIP_DEBUG_RECV
)
179 rip_debug_packet
&= ~RIP_DEBUG_SEND
;
181 rip_debug_packet
= 0;
183 else if (strncmp ("recv", argv
[0], strlen (argv
[0])) == 0)
185 if (IS_RIP_DEBUG_SEND
)
186 rip_debug_packet
&= ~RIP_DEBUG_RECV
;
188 rip_debug_packet
= 0;
193 DEFUN (no_debug_rip_zebra
,
194 no_debug_rip_zebra_cmd
,
195 "no debug rip zebra",
199 "RIP and ZEBRA communication\n")
206 struct cmd_node debug_node
=
209 "", /* Debug node has no interface. */
214 config_write_debug (struct vty
*vty
)
218 if (IS_RIP_DEBUG_EVENT
)
220 vty_out (vty
, "debug rip events%s", VTY_NEWLINE
);
223 if (IS_RIP_DEBUG_PACKET
)
225 if (IS_RIP_DEBUG_SEND
&& IS_RIP_DEBUG_RECV
)
227 vty_out (vty
, "debug rip packet%s%s",
228 IS_RIP_DEBUG_DETAIL
? " detail" : "",
234 if (IS_RIP_DEBUG_SEND
)
235 vty_out (vty
, "debug rip packet send%s%s",
236 IS_RIP_DEBUG_DETAIL
? " detail" : "",
239 vty_out (vty
, "debug rip packet recv%s%s",
240 IS_RIP_DEBUG_DETAIL
? " detail" : "",
245 if (IS_RIP_DEBUG_ZEBRA
)
247 vty_out (vty
, "debug rip zebra%s", VTY_NEWLINE
);
254 rip_debug_reset (void)
257 rip_debug_packet
= 0;
262 rip_debug_init (void)
265 rip_debug_packet
= 0;
268 install_node (&debug_node
, config_write_debug
);
270 install_element (ENABLE_NODE
, &show_debugging_rip_cmd
);
271 install_element (ENABLE_NODE
, &debug_rip_events_cmd
);
272 install_element (ENABLE_NODE
, &debug_rip_packet_cmd
);
273 install_element (ENABLE_NODE
, &debug_rip_packet_direct_cmd
);
274 install_element (ENABLE_NODE
, &debug_rip_packet_detail_cmd
);
275 install_element (ENABLE_NODE
, &debug_rip_zebra_cmd
);
276 install_element (ENABLE_NODE
, &no_debug_rip_events_cmd
);
277 install_element (ENABLE_NODE
, &no_debug_rip_packet_cmd
);
278 install_element (ENABLE_NODE
, &no_debug_rip_packet_direct_cmd
);
279 install_element (ENABLE_NODE
, &no_debug_rip_zebra_cmd
);
281 install_element (CONFIG_NODE
, &debug_rip_events_cmd
);
282 install_element (CONFIG_NODE
, &debug_rip_packet_cmd
);
283 install_element (CONFIG_NODE
, &debug_rip_packet_direct_cmd
);
284 install_element (CONFIG_NODE
, &debug_rip_packet_detail_cmd
);
285 install_element (CONFIG_NODE
, &debug_rip_zebra_cmd
);
286 install_element (CONFIG_NODE
, &no_debug_rip_events_cmd
);
287 install_element (CONFIG_NODE
, &no_debug_rip_packet_cmd
);
288 install_element (CONFIG_NODE
, &no_debug_rip_packet_direct_cmd
);
289 install_element (CONFIG_NODE
, &no_debug_rip_zebra_cmd
);