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:%s", VTY_NEWLINE
);
40 if (IS_RIPNG_DEBUG_EVENT
)
41 vty_out (vty
, " RIPng event debugging is on%s", VTY_NEWLINE
);
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%s",
52 if (IS_RIPNG_DEBUG_SEND
)
53 vty_out (vty
, " RIPng packet send debugging is on%s",
56 vty_out (vty
, " RIPng packet receive debugging is on%s",
61 if (IS_RIPNG_DEBUG_ZEBRA
)
62 vty_out (vty
, " RIPng zebra debugging is on%s", VTY_NEWLINE
);
67 DEFUN (debug_ripng_events
,
68 debug_ripng_events_cmd
,
71 "RIPng configuration\n"
72 "Debug option set for ripng events\n")
74 ripng_debug_event
= RIPNG_DEBUG_EVENT
;
78 DEFUN (debug_ripng_packet
,
79 debug_ripng_packet_cmd
,
82 "RIPng configuration\n"
83 "Debug option set for ripng packet\n")
85 ripng_debug_packet
= RIPNG_DEBUG_PACKET
;
86 ripng_debug_packet
|= RIPNG_DEBUG_SEND
;
87 ripng_debug_packet
|= RIPNG_DEBUG_RECV
;
91 DEFUN (debug_ripng_packet_direct
,
92 debug_ripng_packet_direct_cmd
,
93 "debug ripng packet <recv|send>",
95 "RIPng configuration\n"
96 "Debug option set for ripng packet\n"
97 "Debug option set for receive packet\n"
98 "Debug option set for send packet\n")
100 int idx_recv_send
= 3;
101 ripng_debug_packet
|= RIPNG_DEBUG_PACKET
;
102 if (strncmp ("send", argv
[idx_recv_send
]->arg
, strlen (argv
[idx_recv_send
]->arg
)) == 0)
103 ripng_debug_packet
|= RIPNG_DEBUG_SEND
;
104 if (strncmp ("recv", argv
[idx_recv_send
]->arg
, strlen (argv
[idx_recv_send
]->arg
)) == 0)
105 ripng_debug_packet
|= RIPNG_DEBUG_RECV
;
110 DEFUN (debug_ripng_zebra
,
111 debug_ripng_zebra_cmd
,
114 "RIPng configuration\n"
115 "Debug option set for ripng and zebra communication\n")
117 ripng_debug_zebra
= RIPNG_DEBUG_ZEBRA
;
121 DEFUN (no_debug_ripng_events
,
122 no_debug_ripng_events_cmd
,
123 "no debug ripng events",
126 "RIPng configuration\n"
127 "Debug option set for ripng events\n")
129 ripng_debug_event
= 0;
133 DEFUN (no_debug_ripng_packet
,
134 no_debug_ripng_packet_cmd
,
135 "no debug ripng packet",
138 "RIPng configuration\n"
139 "Debug option set for ripng packet\n")
141 ripng_debug_packet
= 0;
145 DEFUN (no_debug_ripng_packet_direct
,
146 no_debug_ripng_packet_direct_cmd
,
147 "no debug ripng packet <recv|send>",
150 "RIPng configuration\n"
151 "Debug option set for ripng packet\n"
152 "Debug option set for receive packet\n"
153 "Debug option set for send packet\n")
155 int idx_recv_send
= 4;
156 if (strncmp ("send", argv
[idx_recv_send
]->arg
, strlen (argv
[idx_recv_send
]->arg
)) == 0)
158 if (IS_RIPNG_DEBUG_RECV
)
159 ripng_debug_packet
&= ~RIPNG_DEBUG_SEND
;
161 ripng_debug_packet
= 0;
163 else if (strncmp ("recv", argv
[idx_recv_send
]->arg
, strlen (argv
[idx_recv_send
]->arg
)) == 0)
165 if (IS_RIPNG_DEBUG_SEND
)
166 ripng_debug_packet
&= ~RIPNG_DEBUG_RECV
;
168 ripng_debug_packet
= 0;
173 DEFUN (no_debug_ripng_zebra
,
174 no_debug_ripng_zebra_cmd
,
175 "no debug ripng zebra",
178 "RIPng configuration\n"
179 "Debug option set for ripng and zebra communication\n")
181 ripng_debug_zebra
= 0;
186 static struct cmd_node debug_node
=
189 "", /* Debug node has no interface. */
194 config_write_debug (struct vty
*vty
)
198 if (IS_RIPNG_DEBUG_EVENT
)
200 vty_out (vty
, "debug ripng events%s", VTY_NEWLINE
);
203 if (IS_RIPNG_DEBUG_PACKET
)
205 if (IS_RIPNG_DEBUG_SEND
&& IS_RIPNG_DEBUG_RECV
)
207 vty_out (vty
, "debug ripng packet%s",
213 if (IS_RIPNG_DEBUG_SEND
)
214 vty_out (vty
, "debug ripng packet send%s",
217 vty_out (vty
, "debug ripng packet recv%s",
222 if (IS_RIPNG_DEBUG_ZEBRA
)
224 vty_out (vty
, "debug ripng zebra%s", VTY_NEWLINE
);
233 ripng_debug_event
= 0;
234 ripng_debug_packet
= 0;
235 ripng_debug_zebra
= 0;
241 ripng_debug_event
= 0;
242 ripng_debug_packet
= 0;
243 ripng_debug_zebra
= 0;
245 install_node (&debug_node
, config_write_debug
);
247 install_element (VIEW_NODE
, &show_debugging_ripng_cmd
);
249 install_element (ENABLE_NODE
, &debug_ripng_events_cmd
);
250 install_element (ENABLE_NODE
, &debug_ripng_packet_cmd
);
251 install_element (ENABLE_NODE
, &debug_ripng_packet_direct_cmd
);
252 install_element (ENABLE_NODE
, &debug_ripng_zebra_cmd
);
253 install_element (ENABLE_NODE
, &no_debug_ripng_events_cmd
);
254 install_element (ENABLE_NODE
, &no_debug_ripng_packet_cmd
);
255 install_element (ENABLE_NODE
, &no_debug_ripng_packet_direct_cmd
);
256 install_element (ENABLE_NODE
, &no_debug_ripng_zebra_cmd
);
258 install_element (CONFIG_NODE
, &debug_ripng_events_cmd
);
259 install_element (CONFIG_NODE
, &debug_ripng_packet_cmd
);
260 install_element (CONFIG_NODE
, &debug_ripng_packet_direct_cmd
);
261 install_element (CONFIG_NODE
, &debug_ripng_zebra_cmd
);
262 install_element (CONFIG_NODE
, &no_debug_ripng_events_cmd
);
263 install_element (CONFIG_NODE
, &no_debug_ripng_packet_cmd
);
264 install_element (CONFIG_NODE
, &no_debug_ripng_packet_direct_cmd
);
265 install_element (CONFIG_NODE
, &no_debug_ripng_zebra_cmd
);