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
) {
45 if (IS_RIPNG_DEBUG_SEND
&& IS_RIPNG_DEBUG_RECV
) {
46 vty_out(vty
, " RIPng packet debugging is on%s",
49 if (IS_RIPNG_DEBUG_SEND
)
51 " RIPng packet send debugging is on%s",
55 " RIPng packet receive debugging is on%s",
60 if (IS_RIPNG_DEBUG_ZEBRA
)
61 vty_out(vty
, " RIPng zebra debugging is on%s", VTY_NEWLINE
);
66 DEFUN (debug_ripng_events
,
67 debug_ripng_events_cmd
,
70 "RIPng configuration\n"
71 "Debug option set for ripng events\n")
73 ripng_debug_event
= RIPNG_DEBUG_EVENT
;
77 DEFUN (debug_ripng_packet
,
78 debug_ripng_packet_cmd
,
81 "RIPng configuration\n"
82 "Debug option set for ripng packet\n")
84 ripng_debug_packet
= RIPNG_DEBUG_PACKET
;
85 ripng_debug_packet
|= RIPNG_DEBUG_SEND
;
86 ripng_debug_packet
|= RIPNG_DEBUG_RECV
;
90 DEFUN (debug_ripng_packet_direct
,
91 debug_ripng_packet_direct_cmd
,
92 "debug ripng packet <recv|send>",
94 "RIPng configuration\n"
95 "Debug option set for ripng packet\n"
96 "Debug option set for receive packet\n"
97 "Debug option set for send packet\n")
99 int idx_recv_send
= 3;
100 ripng_debug_packet
|= RIPNG_DEBUG_PACKET
;
101 if (strncmp("send", argv
[idx_recv_send
]->arg
,
102 strlen(argv
[idx_recv_send
]->arg
))
104 ripng_debug_packet
|= RIPNG_DEBUG_SEND
;
105 if (strncmp("recv", argv
[idx_recv_send
]->arg
,
106 strlen(argv
[idx_recv_send
]->arg
))
108 ripng_debug_packet
|= RIPNG_DEBUG_RECV
;
113 DEFUN (debug_ripng_zebra
,
114 debug_ripng_zebra_cmd
,
117 "RIPng configuration\n"
118 "Debug option set for ripng and zebra communication\n")
120 ripng_debug_zebra
= RIPNG_DEBUG_ZEBRA
;
124 DEFUN (no_debug_ripng_events
,
125 no_debug_ripng_events_cmd
,
126 "no debug ripng events",
129 "RIPng configuration\n"
130 "Debug option set for ripng events\n")
132 ripng_debug_event
= 0;
136 DEFUN (no_debug_ripng_packet
,
137 no_debug_ripng_packet_cmd
,
138 "no debug ripng packet",
141 "RIPng configuration\n"
142 "Debug option set for ripng packet\n")
144 ripng_debug_packet
= 0;
148 DEFUN (no_debug_ripng_packet_direct
,
149 no_debug_ripng_packet_direct_cmd
,
150 "no debug ripng packet <recv|send>",
153 "RIPng configuration\n"
154 "Debug option set for ripng packet\n"
155 "Debug option set for receive packet\n"
156 "Debug option set for send packet\n")
158 int idx_recv_send
= 4;
159 if (strncmp("send", argv
[idx_recv_send
]->arg
,
160 strlen(argv
[idx_recv_send
]->arg
))
162 if (IS_RIPNG_DEBUG_RECV
)
163 ripng_debug_packet
&= ~RIPNG_DEBUG_SEND
;
165 ripng_debug_packet
= 0;
166 } else if (strncmp("recv", argv
[idx_recv_send
]->arg
,
167 strlen(argv
[idx_recv_send
]->arg
))
169 if (IS_RIPNG_DEBUG_SEND
)
170 ripng_debug_packet
&= ~RIPNG_DEBUG_RECV
;
172 ripng_debug_packet
= 0;
177 DEFUN (no_debug_ripng_zebra
,
178 no_debug_ripng_zebra_cmd
,
179 "no debug ripng zebra",
182 "RIPng configuration\n"
183 "Debug option set for ripng and zebra communication\n")
185 ripng_debug_zebra
= 0;
190 static struct cmd_node debug_node
= {
191 DEBUG_NODE
, "", /* Debug node has no interface. */
195 static int config_write_debug(struct vty
*vty
)
199 if (IS_RIPNG_DEBUG_EVENT
) {
200 vty_out(vty
, "debug ripng events%s", VTY_NEWLINE
);
203 if (IS_RIPNG_DEBUG_PACKET
) {
204 if (IS_RIPNG_DEBUG_SEND
&& IS_RIPNG_DEBUG_RECV
) {
205 vty_out(vty
, "debug ripng packet%s", VTY_NEWLINE
);
208 if (IS_RIPNG_DEBUG_SEND
)
209 vty_out(vty
, "debug ripng packet send%s",
212 vty_out(vty
, "debug ripng packet recv%s",
217 if (IS_RIPNG_DEBUG_ZEBRA
) {
218 vty_out(vty
, "debug ripng zebra%s", VTY_NEWLINE
);
224 void ripng_debug_reset()
226 ripng_debug_event
= 0;
227 ripng_debug_packet
= 0;
228 ripng_debug_zebra
= 0;
231 void ripng_debug_init()
233 ripng_debug_event
= 0;
234 ripng_debug_packet
= 0;
235 ripng_debug_zebra
= 0;
237 install_node(&debug_node
, config_write_debug
);
239 install_element(VIEW_NODE
, &show_debugging_ripng_cmd
);
241 install_element(ENABLE_NODE
, &debug_ripng_events_cmd
);
242 install_element(ENABLE_NODE
, &debug_ripng_packet_cmd
);
243 install_element(ENABLE_NODE
, &debug_ripng_packet_direct_cmd
);
244 install_element(ENABLE_NODE
, &debug_ripng_zebra_cmd
);
245 install_element(ENABLE_NODE
, &no_debug_ripng_events_cmd
);
246 install_element(ENABLE_NODE
, &no_debug_ripng_packet_cmd
);
247 install_element(ENABLE_NODE
, &no_debug_ripng_packet_direct_cmd
);
248 install_element(ENABLE_NODE
, &no_debug_ripng_zebra_cmd
);
250 install_element(CONFIG_NODE
, &debug_ripng_events_cmd
);
251 install_element(CONFIG_NODE
, &debug_ripng_packet_cmd
);
252 install_element(CONFIG_NODE
, &debug_ripng_packet_direct_cmd
);
253 install_element(CONFIG_NODE
, &debug_ripng_zebra_cmd
);
254 install_element(CONFIG_NODE
, &no_debug_ripng_events_cmd
);
255 install_element(CONFIG_NODE
, &no_debug_ripng_packet_cmd
);
256 install_element(CONFIG_NODE
, &no_debug_ripng_packet_direct_cmd
);
257 install_element(CONFIG_NODE
, &no_debug_ripng_zebra_cmd
);