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 along
17 * with this program; see the file COPYING; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
23 #include "ripd/rip_debug.h"
25 /* For debug statement. */
26 unsigned long rip_debug_event
= 0;
27 unsigned long rip_debug_packet
= 0;
28 unsigned long rip_debug_zebra
= 0;
30 DEFUN (show_debugging_rip
,
31 show_debugging_rip_cmd
,
37 vty_out (vty
, "RIP debugging status:\n");
39 if (IS_RIP_DEBUG_EVENT
)
40 vty_out (vty
, " RIP event debugging is on\n");
42 if (IS_RIP_DEBUG_PACKET
)
44 if (IS_RIP_DEBUG_SEND
&& IS_RIP_DEBUG_RECV
)
46 vty_out (vty
," RIP packet debugging is on\n");
50 if (IS_RIP_DEBUG_SEND
)
51 vty_out (vty
," RIP packet send debugging is on\n");
53 vty_out (vty
," RIP packet receive debugging is on\n");
57 if (IS_RIP_DEBUG_ZEBRA
)
58 vty_out (vty
, " RIP zebra debugging is on\n");
63 DEFUN (debug_rip_events
,
70 rip_debug_event
= RIP_DEBUG_EVENT
;
71 return CMD_WARNING_CONFIG_FAILED
;
74 DEFUN (debug_rip_packet
,
81 rip_debug_packet
= RIP_DEBUG_PACKET
;
82 rip_debug_packet
|= RIP_DEBUG_SEND
;
83 rip_debug_packet
|= RIP_DEBUG_RECV
;
87 DEFUN (debug_rip_packet_direct
,
88 debug_rip_packet_direct_cmd
,
89 "debug rip packet <recv|send>",
93 "RIP receive packet\n"
96 int idx_recv_send
= 3;
97 rip_debug_packet
|= RIP_DEBUG_PACKET
;
98 if (strncmp ("send", argv
[idx_recv_send
]->arg
, strlen (argv
[idx_recv_send
]->arg
)) == 0)
99 rip_debug_packet
|= RIP_DEBUG_SEND
;
100 if (strncmp ("recv", argv
[idx_recv_send
]->arg
, strlen (argv
[idx_recv_send
]->arg
)) == 0)
101 rip_debug_packet
|= RIP_DEBUG_RECV
;
105 DEFUN (debug_rip_zebra
,
110 "RIP and ZEBRA communication\n")
112 rip_debug_zebra
= RIP_DEBUG_ZEBRA
;
113 return CMD_WARNING_CONFIG_FAILED
;
116 DEFUN (no_debug_rip_events
,
117 no_debug_rip_events_cmd
,
118 "no debug rip events",
128 DEFUN (no_debug_rip_packet
,
129 no_debug_rip_packet_cmd
,
130 "no debug rip packet",
136 rip_debug_packet
= 0;
140 DEFUN (no_debug_rip_packet_direct
,
141 no_debug_rip_packet_direct_cmd
,
142 "no debug rip packet <recv|send>",
147 "RIP option set for receive packet\n"
148 "RIP option set for send packet\n")
150 int idx_recv_send
= 4;
151 if (strncmp ("send", argv
[idx_recv_send
]->arg
, strlen (argv
[idx_recv_send
]->arg
)) == 0)
153 if (IS_RIP_DEBUG_RECV
)
154 rip_debug_packet
&= ~RIP_DEBUG_SEND
;
156 rip_debug_packet
= 0;
158 else if (strncmp ("recv", argv
[idx_recv_send
]->arg
, strlen (argv
[idx_recv_send
]->arg
)) == 0)
160 if (IS_RIP_DEBUG_SEND
)
161 rip_debug_packet
&= ~RIP_DEBUG_RECV
;
163 rip_debug_packet
= 0;
168 DEFUN (no_debug_rip_zebra
,
169 no_debug_rip_zebra_cmd
,
170 "no debug rip zebra",
174 "RIP and ZEBRA communication\n")
177 return CMD_WARNING_CONFIG_FAILED
;
181 static struct cmd_node debug_node
=
184 "", /* Debug node has no interface. */
189 config_write_debug (struct vty
*vty
)
193 if (IS_RIP_DEBUG_EVENT
)
195 vty_out (vty
, "debug rip events\n");
198 if (IS_RIP_DEBUG_PACKET
)
200 if (IS_RIP_DEBUG_SEND
&& IS_RIP_DEBUG_RECV
)
202 vty_out (vty
,"debug rip packet\n");
207 if (IS_RIP_DEBUG_SEND
)
208 vty_out (vty
,"debug rip packet send\n");
210 vty_out (vty
,"debug rip packet recv\n");
214 if (IS_RIP_DEBUG_ZEBRA
)
216 vty_out (vty
, "debug rip zebra\n");
223 rip_debug_reset (void)
226 rip_debug_packet
= 0;
231 rip_debug_init (void)
234 rip_debug_packet
= 0;
237 install_node (&debug_node
, config_write_debug
);
239 install_element (ENABLE_NODE
, &show_debugging_rip_cmd
);
240 install_element (ENABLE_NODE
, &debug_rip_events_cmd
);
241 install_element (ENABLE_NODE
, &debug_rip_packet_cmd
);
242 install_element (ENABLE_NODE
, &debug_rip_packet_direct_cmd
);
243 install_element (ENABLE_NODE
, &debug_rip_zebra_cmd
);
244 install_element (ENABLE_NODE
, &no_debug_rip_events_cmd
);
245 install_element (ENABLE_NODE
, &no_debug_rip_packet_cmd
);
246 install_element (ENABLE_NODE
, &no_debug_rip_packet_direct_cmd
);
247 install_element (ENABLE_NODE
, &no_debug_rip_zebra_cmd
);
249 install_element (CONFIG_NODE
, &debug_rip_events_cmd
);
250 install_element (CONFIG_NODE
, &debug_rip_packet_cmd
);
251 install_element (CONFIG_NODE
, &debug_rip_packet_direct_cmd
);
252 install_element (CONFIG_NODE
, &debug_rip_zebra_cmd
);
253 install_element (CONFIG_NODE
, &no_debug_rip_events_cmd
);
254 install_element (CONFIG_NODE
, &no_debug_rip_packet_cmd
);
255 install_element (CONFIG_NODE
, &no_debug_rip_packet_direct_cmd
);
256 install_element (CONFIG_NODE
, &no_debug_rip_zebra_cmd
);