2 * Zebra debug related function
3 * Copyright (C) 1999 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
26 #ifndef VTYSH_EXTRACT_PL
27 #include "zebra/debug_clippy.c"
30 /* For debug statement. */
31 unsigned long zebra_debug_event
;
32 unsigned long zebra_debug_packet
;
33 unsigned long zebra_debug_kernel
;
34 unsigned long zebra_debug_rib
;
35 unsigned long zebra_debug_fpm
;
36 unsigned long zebra_debug_nht
;
37 unsigned long zebra_debug_mpls
;
38 unsigned long zebra_debug_vxlan
;
39 unsigned long zebra_debug_pw
;
40 unsigned long zebra_debug_dplane
;
41 unsigned long zebra_debug_mlag
;
42 unsigned long zebra_debug_nexthop
;
43 unsigned long zebra_debug_evpn_mh
;
44 unsigned long zebra_debug_pbr
;
46 DEFINE_HOOK(zebra_debug_show_debugging
, (struct vty
*vty
), (vty
));
48 DEFUN_NOSH (show_debugging_zebra
,
49 show_debugging_zebra_cmd
,
50 "show debugging [zebra]",
52 "Debugging information\n"
53 "Zebra configuration\n")
55 vty_out(vty
, "Zebra debugging status:\n");
57 if (IS_ZEBRA_DEBUG_EVENT
)
58 vty_out(vty
, " Zebra event debugging is on\n");
60 if (IS_ZEBRA_DEBUG_PACKET
) {
61 if (IS_ZEBRA_DEBUG_SEND
&& IS_ZEBRA_DEBUG_RECV
) {
62 vty_out(vty
, " Zebra packet%s debugging is on\n",
63 IS_ZEBRA_DEBUG_DETAIL
? " detail" : "");
65 if (IS_ZEBRA_DEBUG_SEND
)
67 " Zebra packet send%s debugging is on\n",
68 IS_ZEBRA_DEBUG_DETAIL
? " detail" : "");
71 " Zebra packet receive%s debugging is on\n",
72 IS_ZEBRA_DEBUG_DETAIL
? " detail" : "");
76 if (IS_ZEBRA_DEBUG_KERNEL
)
77 vty_out(vty
, " Zebra kernel debugging is on\n");
78 if (IS_ZEBRA_DEBUG_KERNEL_MSGDUMP_SEND
)
80 " Zebra kernel netlink message dumps (send) are on\n");
81 if (IS_ZEBRA_DEBUG_KERNEL_MSGDUMP_RECV
)
83 " Zebra kernel netlink message dumps (recv) are on\n");
85 /* Check here using flags as the 'macro' does an OR */
86 if (CHECK_FLAG(zebra_debug_rib
, ZEBRA_DEBUG_RIB_DETAILED
))
87 vty_out(vty
, " Zebra RIB detailed debugging is on\n");
88 else if (CHECK_FLAG(zebra_debug_rib
, ZEBRA_DEBUG_RIB
))
89 vty_out(vty
, " Zebra RIB debugging is on\n");
91 if (IS_ZEBRA_DEBUG_FPM
)
92 vty_out(vty
, " Zebra FPM debugging is on\n");
93 if (IS_ZEBRA_DEBUG_NHT_DETAILED
)
94 vty_out(vty
, " Zebra detailed next-hop tracking debugging is on\n");
95 else if (IS_ZEBRA_DEBUG_NHT
)
96 vty_out(vty
, " Zebra next-hop tracking debugging is on\n");
97 if (IS_ZEBRA_DEBUG_MPLS_DETAIL
)
98 vty_out(vty
, " Zebra detailed MPLS debugging is on\n");
99 else if (IS_ZEBRA_DEBUG_MPLS
)
100 vty_out(vty
, " Zebra MPLS debugging is on\n");
102 if (IS_ZEBRA_DEBUG_VXLAN
)
103 vty_out(vty
, " Zebra VXLAN debugging is on\n");
104 if (IS_ZEBRA_DEBUG_PW
)
105 vty_out(vty
, " Zebra pseudowire debugging is on\n");
106 if (IS_ZEBRA_DEBUG_DPLANE_DETAIL
)
107 vty_out(vty
, " Zebra detailed dataplane debugging is on\n");
108 else if (IS_ZEBRA_DEBUG_DPLANE
)
109 vty_out(vty
, " Zebra dataplane debugging is on\n");
110 if (IS_ZEBRA_DEBUG_MLAG
)
111 vty_out(vty
, " Zebra mlag debugging is on\n");
112 if (IS_ZEBRA_DEBUG_NHG_DETAIL
)
113 vty_out(vty
, " Zebra detailed nexthop debugging is on\n");
114 else if (IS_ZEBRA_DEBUG_NHG
)
115 vty_out(vty
, " Zebra nexthop debugging is on\n");
117 if (IS_ZEBRA_DEBUG_EVPN_MH_ES
)
118 vty_out(vty
, " Zebra EVPN-MH ethernet segment debugging is on\n");
120 if (IS_ZEBRA_DEBUG_EVPN_MH_NH
)
121 vty_out(vty
, " Zebra EVPN-MH nexthop debugging is on\n");
123 if (IS_ZEBRA_DEBUG_EVPN_MH_MAC
)
124 vty_out(vty
, " Zebra EVPN-MH MAC debugging is on\n");
126 if (IS_ZEBRA_DEBUG_EVPN_MH_NEIGH
)
127 vty_out(vty
, " Zebra EVPN-MH Neigh debugging is on\n");
129 if (IS_ZEBRA_DEBUG_PBR
)
130 vty_out(vty
, " Zebra PBR debugging is on\n");
132 hook_call(zebra_debug_show_debugging
, vty
);
136 DEFUN (debug_zebra_events
,
137 debug_zebra_events_cmd
,
138 "debug zebra events",
140 "Zebra configuration\n"
141 "Debug option set for zebra events\n")
143 zebra_debug_event
= ZEBRA_DEBUG_EVENT
;
147 DEFUN (debug_zebra_nht
,
149 "debug zebra nht [detailed]",
151 "Zebra configuration\n"
152 "Debug option set for zebra next hop tracking\n"
153 "Debug option set for detailed info\n")
157 zebra_debug_nht
= ZEBRA_DEBUG_NHT
;
159 if (argv_find(argv
, argc
, "detailed", &idx
))
160 zebra_debug_nht
|= ZEBRA_DEBUG_NHT_DETAILED
;
165 DEFPY (debug_zebra_mpls
,
166 debug_zebra_mpls_cmd
,
167 "debug zebra mpls [detailed$detail]",
169 "Zebra configuration\n"
170 "Debug option set for zebra MPLS LSPs\n"
171 "Debug option for detailed info\n")
173 zebra_debug_mpls
= ZEBRA_DEBUG_MPLS
;
176 zebra_debug_mpls
|= ZEBRA_DEBUG_MPLS_DETAILED
;
181 DEFPY (debug_zebra_vxlan
,
182 debug_zebra_vxlan_cmd
,
185 "Zebra configuration\n"
186 "Debug option set for zebra VxLAN (EVPN)\n")
188 zebra_debug_vxlan
= ZEBRA_DEBUG_VXLAN
;
192 DEFUN (debug_zebra_pw
,
194 "[no] debug zebra pseudowires",
197 "Zebra configuration\n"
198 "Debug option set for zebra pseudowires\n")
200 if (strmatch(argv
[0]->text
, "no"))
201 UNSET_FLAG(zebra_debug_pw
, ZEBRA_DEBUG_PW
);
203 SET_FLAG(zebra_debug_pw
, ZEBRA_DEBUG_PW
);
207 DEFUN (debug_zebra_packet
,
208 debug_zebra_packet_cmd
,
209 "debug zebra packet [<recv|send>] [detail]",
211 "Zebra configuration\n"
212 "Debug option set for zebra packet\n"
213 "Debug option set for receive packet\n"
214 "Debug option set for send packet\n"
215 "Debug option set for detailed info\n")
218 zebra_debug_packet
= ZEBRA_DEBUG_PACKET
;
220 if (argv_find(argv
, argc
, "send", &idx
))
221 SET_FLAG(zebra_debug_packet
, ZEBRA_DEBUG_SEND
);
222 else if (argv_find(argv
, argc
, "recv", &idx
))
223 SET_FLAG(zebra_debug_packet
, ZEBRA_DEBUG_RECV
);
225 SET_FLAG(zebra_debug_packet
, ZEBRA_DEBUG_SEND
);
226 SET_FLAG(zebra_debug_packet
, ZEBRA_DEBUG_RECV
);
229 if (argv_find(argv
, argc
, "detail", &idx
))
230 SET_FLAG(zebra_debug_packet
, ZEBRA_DEBUG_DETAIL
);
235 DEFUN (debug_zebra_kernel
,
236 debug_zebra_kernel_cmd
,
237 "debug zebra kernel",
239 "Zebra configuration\n"
240 "Debug option set for zebra between kernel interface\n")
242 SET_FLAG(zebra_debug_kernel
, ZEBRA_DEBUG_KERNEL
);
247 #if defined(HAVE_NETLINK)
248 DEFUN (debug_zebra_kernel_msgdump
,
249 debug_zebra_kernel_msgdump_cmd
,
250 "debug zebra kernel msgdump [<recv|send>]",
252 "Zebra configuration\n"
253 "Debug option set for zebra between kernel interface\n"
254 "Dump raw netlink messages, sent and received\n"
255 "Dump raw netlink messages received\n"
256 "Dump raw netlink messages sent\n")
260 if (argv_find(argv
, argc
, "recv", &idx
))
261 SET_FLAG(zebra_debug_kernel
, ZEBRA_DEBUG_KERNEL_MSGDUMP_RECV
);
262 else if (argv_find(argv
, argc
, "send", &idx
))
263 SET_FLAG(zebra_debug_kernel
, ZEBRA_DEBUG_KERNEL_MSGDUMP_SEND
);
265 SET_FLAG(zebra_debug_kernel
, ZEBRA_DEBUG_KERNEL_MSGDUMP_RECV
);
266 SET_FLAG(zebra_debug_kernel
, ZEBRA_DEBUG_KERNEL_MSGDUMP_SEND
);
273 DEFUN (debug_zebra_rib
,
275 "debug zebra rib [detailed]",
277 "Zebra configuration\n"
282 SET_FLAG(zebra_debug_rib
, ZEBRA_DEBUG_RIB
);
284 if (argv_find(argv
, argc
, "detailed", &idx
))
285 SET_FLAG(zebra_debug_rib
, ZEBRA_DEBUG_RIB_DETAILED
);
290 DEFUN (debug_zebra_fpm
,
294 "Zebra configuration\n"
295 "Debug zebra FPM events\n")
297 SET_FLAG(zebra_debug_fpm
, ZEBRA_DEBUG_FPM
);
301 DEFUN (debug_zebra_dplane
,
302 debug_zebra_dplane_cmd
,
303 "debug zebra dplane [detailed]",
305 "Zebra configuration\n"
306 "Debug zebra dataplane events\n"
307 "Detailed debug information\n")
311 SET_FLAG(zebra_debug_dplane
, ZEBRA_DEBUG_DPLANE
);
313 if (argv_find(argv
, argc
, "detailed", &idx
))
314 SET_FLAG(zebra_debug_dplane
, ZEBRA_DEBUG_DPLANE_DETAILED
);
319 DEFUN (debug_zebra_pbr
,
323 "Zebra configuration\n"
324 "Debug zebra pbr events\n")
326 SET_FLAG(zebra_debug_pbr
, ZEBRA_DEBUG_PBR
);
330 DEFPY (debug_zebra_mlag
,
331 debug_zebra_mlag_cmd
,
332 "[no$no] debug zebra mlag",
335 "Zebra configuration\n"
336 "Debug option set for mlag events\n")
339 UNSET_FLAG(zebra_debug_mlag
, ZEBRA_DEBUG_MLAG
);
341 SET_FLAG(zebra_debug_mlag
, ZEBRA_DEBUG_MLAG
);
345 DEFPY (debug_zebra_evpn_mh
,
346 debug_zebra_evpn_mh_cmd
,
347 "[no$no] debug zebra evpn mh <es$es|mac$mac|neigh$neigh|nh$nh>",
350 "Zebra configuration\n"
353 "Ethernet Segment Debugging\n"
356 "Nexthop Debugging\n")
360 UNSET_FLAG(zebra_debug_evpn_mh
, ZEBRA_DEBUG_EVPN_MH_ES
);
362 SET_FLAG(zebra_debug_evpn_mh
, ZEBRA_DEBUG_EVPN_MH_ES
);
367 UNSET_FLAG(zebra_debug_evpn_mh
,
368 ZEBRA_DEBUG_EVPN_MH_MAC
);
370 SET_FLAG(zebra_debug_evpn_mh
, ZEBRA_DEBUG_EVPN_MH_MAC
);
375 UNSET_FLAG(zebra_debug_evpn_mh
,
376 ZEBRA_DEBUG_EVPN_MH_NEIGH
);
378 SET_FLAG(zebra_debug_evpn_mh
,
379 ZEBRA_DEBUG_EVPN_MH_NEIGH
);
384 UNSET_FLAG(zebra_debug_evpn_mh
, ZEBRA_DEBUG_EVPN_MH_NH
);
386 SET_FLAG(zebra_debug_evpn_mh
, ZEBRA_DEBUG_EVPN_MH_NH
);
392 DEFUN (no_debug_zebra_events
,
393 no_debug_zebra_events_cmd
,
394 "no debug zebra events",
397 "Zebra configuration\n"
398 "Debug option set for zebra events\n")
400 zebra_debug_event
= 0;
404 DEFUN (no_debug_zebra_nht
,
405 no_debug_zebra_nht_cmd
,
406 "no debug zebra nht [detailed]",
409 "Zebra configuration\n"
410 "Debug option set for zebra next hop tracking\n"
411 "Debug option set for detailed info\n")
417 DEFUN (no_debug_zebra_mpls
,
418 no_debug_zebra_mpls_cmd
,
419 "no debug zebra mpls [detailed]",
422 "Zebra configuration\n"
423 "Debug option set for zebra MPLS LSPs\n"
424 "Debug option for zebra detailed info\n")
426 zebra_debug_mpls
= 0;
430 DEFUN (no_debug_zebra_vxlan
,
431 no_debug_zebra_vxlan_cmd
,
432 "no debug zebra vxlan",
435 "Zebra configuration\n"
436 "Debug option set for zebra VxLAN (EVPN)\n")
438 zebra_debug_vxlan
= 0;
442 DEFUN (no_debug_zebra_packet
,
443 no_debug_zebra_packet_cmd
,
444 "no debug zebra packet [<recv|send>] [detail]",
447 "Zebra configuration\n"
448 "Debug option set for zebra packet\n"
449 "Debug option set for receive packet\n"
450 "Debug option set for send packet\n"
451 "Debug option set for detailed info\n")
453 zebra_debug_packet
= 0;
457 DEFUN (no_debug_zebra_kernel
,
458 no_debug_zebra_kernel_cmd
,
459 "no debug zebra kernel",
462 "Zebra configuration\n"
463 "Debug option set for zebra between kernel interface\n")
465 UNSET_FLAG(zebra_debug_kernel
, ZEBRA_DEBUG_KERNEL
);
470 #if defined(HAVE_NETLINK)
471 DEFUN (no_debug_zebra_kernel_msgdump
,
472 no_debug_zebra_kernel_msgdump_cmd
,
473 "no debug zebra kernel msgdump [<recv|send>]",
476 "Zebra configuration\n"
477 "Debug option set for zebra between kernel interface\n"
478 "Dump raw netlink messages, sent and received\n"
479 "Dump raw netlink messages received\n"
480 "Dump raw netlink messages sent\n")
484 if (argv_find(argv
, argc
, "recv", &idx
))
485 UNSET_FLAG(zebra_debug_kernel
, ZEBRA_DEBUG_KERNEL_MSGDUMP_RECV
);
486 else if (argv_find(argv
, argc
, "send", &idx
))
487 UNSET_FLAG(zebra_debug_kernel
, ZEBRA_DEBUG_KERNEL_MSGDUMP_SEND
);
489 UNSET_FLAG(zebra_debug_kernel
, ZEBRA_DEBUG_KERNEL_MSGDUMP_RECV
);
490 UNSET_FLAG(zebra_debug_kernel
, ZEBRA_DEBUG_KERNEL_MSGDUMP_SEND
);
497 DEFUN (no_debug_zebra_rib
,
498 no_debug_zebra_rib_cmd
,
499 "no debug zebra rib [detailed]",
502 "Zebra configuration\n"
510 DEFUN (no_debug_zebra_fpm
,
511 no_debug_zebra_fpm_cmd
,
512 "no debug zebra fpm",
515 "Zebra configuration\n"
516 "Debug zebra FPM events\n")
522 DEFUN (no_debug_zebra_dplane
,
523 no_debug_zebra_dplane_cmd
,
524 "no debug zebra dplane",
527 "Zebra configuration\n"
528 "Debug zebra dataplane events\n")
530 zebra_debug_dplane
= 0;
534 DEFUN (no_debug_zebra_pbr
,
535 no_debug_zebra_pbr_cmd
,
536 "no debug zebra pbr",
539 "Zebra configuration\n"
540 "Debug zebra pbr events\n")
546 DEFPY (debug_zebra_nexthop
,
547 debug_zebra_nexthop_cmd
,
548 "[no$no] debug zebra nexthop [detail$detail]",
551 "Zebra configuration\n"
552 "Debug zebra nexthop events\n"
553 "Detailed information\n")
556 zebra_debug_nexthop
= 0;
558 SET_FLAG(zebra_debug_nexthop
, ZEBRA_DEBUG_NHG
);
561 SET_FLAG(zebra_debug_nexthop
,
562 ZEBRA_DEBUG_NHG_DETAILED
);
569 static int config_write_debug(struct vty
*vty
);
570 struct cmd_node debug_node
= {
574 .config_write
= config_write_debug
,
577 static int config_write_debug(struct vty
*vty
)
581 if (IS_ZEBRA_DEBUG_EVENT
) {
582 vty_out(vty
, "debug zebra events\n");
585 if (IS_ZEBRA_DEBUG_PACKET
) {
586 if (IS_ZEBRA_DEBUG_SEND
&& IS_ZEBRA_DEBUG_RECV
) {
587 vty_out(vty
, "debug zebra packet%s\n",
588 IS_ZEBRA_DEBUG_DETAIL
? " detail" : "");
591 if (IS_ZEBRA_DEBUG_SEND
)
592 vty_out(vty
, "debug zebra packet send%s\n",
593 IS_ZEBRA_DEBUG_DETAIL
? " detail" : "");
595 vty_out(vty
, "debug zebra packet recv%s\n",
596 IS_ZEBRA_DEBUG_DETAIL
? " detail" : "");
601 if (IS_ZEBRA_DEBUG_KERNEL_MSGDUMP_SEND
602 && IS_ZEBRA_DEBUG_KERNEL_MSGDUMP_RECV
) {
603 vty_out(vty
, "debug zebra kernel msgdump\n");
605 } else if (IS_ZEBRA_DEBUG_KERNEL_MSGDUMP_RECV
) {
606 vty_out(vty
, "debug zebra kernel msgdump recv\n");
608 } else if (IS_ZEBRA_DEBUG_KERNEL_MSGDUMP_SEND
) {
609 vty_out(vty
, "debug zebra kernel msgdump send\n");
613 if (IS_ZEBRA_DEBUG_KERNEL
) {
614 vty_out(vty
, "debug zebra kernel\n");
618 if (CHECK_FLAG(zebra_debug_rib
, ZEBRA_DEBUG_RIB_DETAILED
)) {
619 vty_out(vty
, "debug zebra rib detailed\n");
621 } else if (CHECK_FLAG(zebra_debug_rib
, ZEBRA_DEBUG_RIB
)) {
622 vty_out(vty
, "debug zebra rib\n");
626 if (IS_ZEBRA_DEBUG_FPM
) {
627 vty_out(vty
, "debug zebra fpm\n");
631 if (IS_ZEBRA_DEBUG_NHT_DETAILED
) {
632 vty_out(vty
, "debug zebra nht detailed\n");
634 } else if (IS_ZEBRA_DEBUG_NHT
) {
635 vty_out(vty
, "debug zebra nht\n");
639 if (IS_ZEBRA_DEBUG_MPLS_DETAIL
) {
640 vty_out(vty
, "debug zebra mpls detailed\n");
642 } else if (IS_ZEBRA_DEBUG_MPLS
) {
643 vty_out(vty
, "debug zebra mpls\n");
647 if (IS_ZEBRA_DEBUG_VXLAN
) {
648 vty_out(vty
, "debug zebra vxlan\n");
651 if (IS_ZEBRA_DEBUG_MLAG
) {
652 vty_out(vty
, "debug zebra mlag\n");
655 if (IS_ZEBRA_DEBUG_EVPN_MH_ES
) {
656 vty_out(vty
, "debug zebra evpn mh es\n");
659 if (IS_ZEBRA_DEBUG_EVPN_MH_NH
) {
660 vty_out(vty
, "debug zebra evpn mh nh\n");
663 if (IS_ZEBRA_DEBUG_EVPN_MH_MAC
) {
664 vty_out(vty
, "debug zebra evpn mh mac\n");
667 if (IS_ZEBRA_DEBUG_EVPN_MH_NEIGH
) {
668 vty_out(vty
, "debug zebra evpn mh neigh\n");
671 if (IS_ZEBRA_DEBUG_PW
) {
672 vty_out(vty
, "debug zebra pseudowires\n");
676 if (CHECK_FLAG(zebra_debug_dplane
, ZEBRA_DEBUG_DPLANE_DETAILED
)) {
677 vty_out(vty
, "debug zebra dplane detailed\n");
679 } else if (CHECK_FLAG(zebra_debug_dplane
, ZEBRA_DEBUG_DPLANE
)) {
680 vty_out(vty
, "debug zebra dplane\n");
684 if (CHECK_FLAG(zebra_debug_nexthop
, ZEBRA_DEBUG_NHG_DETAILED
)) {
685 vty_out(vty
, "debug zebra nexthop detail\n");
687 } else if (CHECK_FLAG(zebra_debug_nexthop
, ZEBRA_DEBUG_NHG
)) {
688 vty_out(vty
, "debug zebra nexthop\n");
692 if (IS_ZEBRA_DEBUG_PBR
) {
693 vty_out(vty
, "debug zebra pbr\n");
700 void zebra_debug_init(void)
702 zebra_debug_event
= 0;
703 zebra_debug_packet
= 0;
704 zebra_debug_kernel
= 0;
707 zebra_debug_mpls
= 0;
708 zebra_debug_vxlan
= 0;
710 zebra_debug_dplane
= 0;
711 zebra_debug_mlag
= 0;
712 zebra_debug_evpn_mh
= 0;
714 zebra_debug_nexthop
= 0;
717 install_node(&debug_node
);
719 install_element(ENABLE_NODE
, &show_debugging_zebra_cmd
);
721 install_element(ENABLE_NODE
, &debug_zebra_events_cmd
);
722 install_element(ENABLE_NODE
, &debug_zebra_nht_cmd
);
723 install_element(ENABLE_NODE
, &debug_zebra_mpls_cmd
);
724 install_element(ENABLE_NODE
, &debug_zebra_vxlan_cmd
);
725 install_element(ENABLE_NODE
, &debug_zebra_pw_cmd
);
726 install_element(ENABLE_NODE
, &debug_zebra_packet_cmd
);
727 install_element(ENABLE_NODE
, &debug_zebra_kernel_cmd
);
728 #if defined(HAVE_NETLINK)
729 install_element(ENABLE_NODE
, &debug_zebra_kernel_msgdump_cmd
);
731 install_element(ENABLE_NODE
, &debug_zebra_rib_cmd
);
732 install_element(ENABLE_NODE
, &debug_zebra_fpm_cmd
);
733 install_element(ENABLE_NODE
, &debug_zebra_dplane_cmd
);
734 install_element(ENABLE_NODE
, &debug_zebra_mlag_cmd
);
735 install_element(ENABLE_NODE
, &debug_zebra_nexthop_cmd
);
736 install_element(ENABLE_NODE
, &debug_zebra_pbr_cmd
);
737 install_element(ENABLE_NODE
, &no_debug_zebra_events_cmd
);
738 install_element(ENABLE_NODE
, &no_debug_zebra_nht_cmd
);
739 install_element(ENABLE_NODE
, &no_debug_zebra_mpls_cmd
);
740 install_element(ENABLE_NODE
, &no_debug_zebra_vxlan_cmd
);
741 install_element(ENABLE_NODE
, &no_debug_zebra_packet_cmd
);
742 install_element(ENABLE_NODE
, &no_debug_zebra_kernel_cmd
);
743 #if defined(HAVE_NETLINK)
744 install_element(ENABLE_NODE
, &no_debug_zebra_kernel_msgdump_cmd
);
746 install_element(ENABLE_NODE
, &no_debug_zebra_rib_cmd
);
747 install_element(ENABLE_NODE
, &no_debug_zebra_fpm_cmd
);
748 install_element(ENABLE_NODE
, &no_debug_zebra_dplane_cmd
);
749 install_element(ENABLE_NODE
, &no_debug_zebra_pbr_cmd
);
750 install_element(ENABLE_NODE
, &debug_zebra_evpn_mh_cmd
);
752 install_element(CONFIG_NODE
, &debug_zebra_events_cmd
);
753 install_element(CONFIG_NODE
, &debug_zebra_nht_cmd
);
754 install_element(CONFIG_NODE
, &debug_zebra_mpls_cmd
);
755 install_element(CONFIG_NODE
, &debug_zebra_vxlan_cmd
);
756 install_element(CONFIG_NODE
, &debug_zebra_pw_cmd
);
757 install_element(CONFIG_NODE
, &debug_zebra_packet_cmd
);
758 install_element(CONFIG_NODE
, &debug_zebra_kernel_cmd
);
759 #if defined(HAVE_NETLINK)
760 install_element(CONFIG_NODE
, &debug_zebra_kernel_msgdump_cmd
);
762 install_element(CONFIG_NODE
, &debug_zebra_rib_cmd
);
763 install_element(CONFIG_NODE
, &debug_zebra_fpm_cmd
);
764 install_element(CONFIG_NODE
, &debug_zebra_dplane_cmd
);
765 install_element(CONFIG_NODE
, &debug_zebra_nexthop_cmd
);
766 install_element(CONFIG_NODE
, &debug_zebra_pbr_cmd
);
768 install_element(CONFIG_NODE
, &no_debug_zebra_events_cmd
);
769 install_element(CONFIG_NODE
, &no_debug_zebra_nht_cmd
);
770 install_element(CONFIG_NODE
, &no_debug_zebra_mpls_cmd
);
771 install_element(CONFIG_NODE
, &no_debug_zebra_vxlan_cmd
);
772 install_element(CONFIG_NODE
, &no_debug_zebra_packet_cmd
);
773 install_element(CONFIG_NODE
, &no_debug_zebra_kernel_cmd
);
774 #if defined(HAVE_NETLINK)
775 install_element(CONFIG_NODE
, &no_debug_zebra_kernel_msgdump_cmd
);
777 install_element(CONFIG_NODE
, &no_debug_zebra_rib_cmd
);
778 install_element(CONFIG_NODE
, &no_debug_zebra_fpm_cmd
);
779 install_element(CONFIG_NODE
, &no_debug_zebra_dplane_cmd
);
780 install_element(CONFIG_NODE
, &no_debug_zebra_pbr_cmd
);
781 install_element(CONFIG_NODE
, &debug_zebra_mlag_cmd
);
782 install_element(CONFIG_NODE
, &debug_zebra_evpn_mh_cmd
);