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 along
18 * with this program; see the file COPYING; if not, write to the Free Software
19 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
24 #include "ripngd/ripng_debug.h"
26 /* For debug statement. */
27 unsigned long ripng_debug_event
= 0;
28 unsigned long ripng_debug_packet
= 0;
29 unsigned long ripng_debug_zebra
= 0;
31 DEFUN (show_debugging_ripng
,
32 show_debugging_ripng_cmd
,
33 "show debugging ripng",
36 "RIPng configuration\n")
38 vty_out (vty
, "RIPng debugging status:\n");
40 if (IS_RIPNG_DEBUG_EVENT
)
41 vty_out (vty
, " RIPng event debugging is on\n");
43 if (IS_RIPNG_DEBUG_PACKET
)
45 if (IS_RIPNG_DEBUG_SEND
&& IS_RIPNG_DEBUG_RECV
)
47 vty_out (vty
," RIPng packet debugging is on\n");
51 if (IS_RIPNG_DEBUG_SEND
)
52 vty_out (vty
," RIPng packet send debugging is on\n");
54 vty_out (vty
," RIPng packet receive debugging is on\n");
58 if (IS_RIPNG_DEBUG_ZEBRA
)
59 vty_out (vty
, " RIPng zebra debugging is on\n");
64 DEFUN (debug_ripng_events
,
65 debug_ripng_events_cmd
,
68 "RIPng configuration\n"
69 "Debug option set for ripng events\n")
71 ripng_debug_event
= RIPNG_DEBUG_EVENT
;
72 return CMD_WARNING_CONFIG_FAILED
;
75 DEFUN (debug_ripng_packet
,
76 debug_ripng_packet_cmd
,
79 "RIPng configuration\n"
80 "Debug option set for ripng packet\n")
82 ripng_debug_packet
= RIPNG_DEBUG_PACKET
;
83 ripng_debug_packet
|= RIPNG_DEBUG_SEND
;
84 ripng_debug_packet
|= RIPNG_DEBUG_RECV
;
88 DEFUN (debug_ripng_packet_direct
,
89 debug_ripng_packet_direct_cmd
,
90 "debug ripng packet <recv|send>",
92 "RIPng configuration\n"
93 "Debug option set for ripng packet\n"
94 "Debug option set for receive packet\n"
95 "Debug option set for send packet\n")
97 int idx_recv_send
= 3;
98 ripng_debug_packet
|= RIPNG_DEBUG_PACKET
;
99 if (strncmp ("send", argv
[idx_recv_send
]->arg
, strlen (argv
[idx_recv_send
]->arg
)) == 0)
100 ripng_debug_packet
|= RIPNG_DEBUG_SEND
;
101 if (strncmp ("recv", argv
[idx_recv_send
]->arg
, strlen (argv
[idx_recv_send
]->arg
)) == 0)
102 ripng_debug_packet
|= RIPNG_DEBUG_RECV
;
107 DEFUN (debug_ripng_zebra
,
108 debug_ripng_zebra_cmd
,
111 "RIPng configuration\n"
112 "Debug option set for ripng and zebra communication\n")
114 ripng_debug_zebra
= RIPNG_DEBUG_ZEBRA
;
115 return CMD_WARNING_CONFIG_FAILED
;
118 DEFUN (no_debug_ripng_events
,
119 no_debug_ripng_events_cmd
,
120 "no debug ripng events",
123 "RIPng configuration\n"
124 "Debug option set for ripng events\n")
126 ripng_debug_event
= 0;
130 DEFUN (no_debug_ripng_packet
,
131 no_debug_ripng_packet_cmd
,
132 "no debug ripng packet",
135 "RIPng configuration\n"
136 "Debug option set for ripng packet\n")
138 ripng_debug_packet
= 0;
142 DEFUN (no_debug_ripng_packet_direct
,
143 no_debug_ripng_packet_direct_cmd
,
144 "no debug ripng packet <recv|send>",
147 "RIPng configuration\n"
148 "Debug option set for ripng packet\n"
149 "Debug option set for receive packet\n"
150 "Debug option set for send packet\n")
152 int idx_recv_send
= 4;
153 if (strncmp ("send", argv
[idx_recv_send
]->arg
, strlen (argv
[idx_recv_send
]->arg
)) == 0)
155 if (IS_RIPNG_DEBUG_RECV
)
156 ripng_debug_packet
&= ~RIPNG_DEBUG_SEND
;
158 ripng_debug_packet
= 0;
160 else if (strncmp ("recv", argv
[idx_recv_send
]->arg
, strlen (argv
[idx_recv_send
]->arg
)) == 0)
162 if (IS_RIPNG_DEBUG_SEND
)
163 ripng_debug_packet
&= ~RIPNG_DEBUG_RECV
;
165 ripng_debug_packet
= 0;
170 DEFUN (no_debug_ripng_zebra
,
171 no_debug_ripng_zebra_cmd
,
172 "no debug ripng zebra",
175 "RIPng configuration\n"
176 "Debug option set for ripng and zebra communication\n")
178 ripng_debug_zebra
= 0;
179 return CMD_WARNING_CONFIG_FAILED
;
183 static struct cmd_node debug_node
=
186 "", /* Debug node has no interface. */
191 config_write_debug (struct vty
*vty
)
195 if (IS_RIPNG_DEBUG_EVENT
)
197 vty_out (vty
, "debug ripng events\n");
200 if (IS_RIPNG_DEBUG_PACKET
)
202 if (IS_RIPNG_DEBUG_SEND
&& IS_RIPNG_DEBUG_RECV
)
204 vty_out (vty
,"debug ripng packet\n");
209 if (IS_RIPNG_DEBUG_SEND
)
210 vty_out (vty
,"debug ripng packet send\n");
212 vty_out (vty
,"debug ripng packet recv\n");
216 if (IS_RIPNG_DEBUG_ZEBRA
)
218 vty_out (vty
, "debug ripng zebra\n");
227 ripng_debug_event
= 0;
228 ripng_debug_packet
= 0;
229 ripng_debug_zebra
= 0;
235 ripng_debug_event
= 0;
236 ripng_debug_packet
= 0;
237 ripng_debug_zebra
= 0;
239 install_node (&debug_node
, config_write_debug
);
241 install_element (VIEW_NODE
, &show_debugging_ripng_cmd
);
243 install_element (ENABLE_NODE
, &debug_ripng_events_cmd
);
244 install_element (ENABLE_NODE
, &debug_ripng_packet_cmd
);
245 install_element (ENABLE_NODE
, &debug_ripng_packet_direct_cmd
);
246 install_element (ENABLE_NODE
, &debug_ripng_zebra_cmd
);
247 install_element (ENABLE_NODE
, &no_debug_ripng_events_cmd
);
248 install_element (ENABLE_NODE
, &no_debug_ripng_packet_cmd
);
249 install_element (ENABLE_NODE
, &no_debug_ripng_packet_direct_cmd
);
250 install_element (ENABLE_NODE
, &no_debug_ripng_zebra_cmd
);
252 install_element (CONFIG_NODE
, &debug_ripng_events_cmd
);
253 install_element (CONFIG_NODE
, &debug_ripng_packet_cmd
);
254 install_element (CONFIG_NODE
, &debug_ripng_packet_direct_cmd
);
255 install_element (CONFIG_NODE
, &debug_ripng_zebra_cmd
);
256 install_element (CONFIG_NODE
, &no_debug_ripng_events_cmd
);
257 install_element (CONFIG_NODE
, &no_debug_ripng_packet_cmd
);
258 install_element (CONFIG_NODE
, &no_debug_ripng_packet_direct_cmd
);
259 install_element (CONFIG_NODE
, &no_debug_ripng_zebra_cmd
);