From 6c7197b142c76186fc3cb0aa318c97f1523913f5 Mon Sep 17 00:00:00 2001 From: Donald Sharp Date: Tue, 16 Aug 2016 21:13:22 -0400 Subject: [PATCH] pimd: Add 'debug mroute detail' When there is allot of IGMP activity for the kernel upcall that we are ignoring, just ignore it for the moment as well. Signed-off-by: Donald Sharp --- pimd/pim_cmd.c | 26 ++++++++++++++++++++++++++ pimd/pim_mroute.c | 6 +++--- pimd/pim_vty.c | 5 +++++ pimd/pimd.h | 12 ++++++++---- 4 files changed, 42 insertions(+), 7 deletions(-) diff --git a/pimd/pim_cmd.c b/pimd/pim_cmd.c index b51fe39a7b..d5f1255e17 100644 --- a/pimd/pim_cmd.c +++ b/pimd/pim_cmd.c @@ -3683,6 +3683,17 @@ DEFUN (debug_mroute, return CMD_SUCCESS; } +DEFUN (debug_mroute_detail, + debug_mroute_detail_cmd, + "debug mroute detail", + DEBUG_STR + DEBUG_MROUTE_STR + "detailed\n") +{ + PIM_DO_DEBUG_MROUTE_DETAIL; + return CMD_SUCCESS; +} + DEFUN (no_debug_mroute, no_debug_mroute_cmd, "no debug mroute", @@ -3694,6 +3705,17 @@ DEFUN (no_debug_mroute, return CMD_SUCCESS; } +DEFUN (no_debug_mroute_detail, + no_debug_mroute_detail_cmd, + "no debug mroute detail", + NO_STR + DEBUG_STR + DEBUG_MROUTE_STR + "detailed\n") +{ + PIM_DONT_DEBUG_MROUTE_DETAIL; + return CMD_SUCCESS; +} DEFUN (debug_static, debug_static_cmd, @@ -4817,7 +4839,9 @@ void pim_cmd_init() install_element (ENABLE_NODE, &debug_igmp_trace_cmd); install_element (ENABLE_NODE, &no_debug_igmp_trace_cmd); install_element (ENABLE_NODE, &debug_mroute_cmd); + install_element (ENABLE_NODE, &debug_mroute_detail_cmd); install_element (ENABLE_NODE, &no_debug_mroute_cmd); + install_element (ENABLE_NODE, &no_debug_mroute_detail_cmd); install_element (ENABLE_NODE, &debug_static_cmd); install_element (ENABLE_NODE, &no_debug_static_cmd); install_element (ENABLE_NODE, &debug_pim_cmd); @@ -4848,7 +4872,9 @@ void pim_cmd_init() install_element (CONFIG_NODE, &debug_igmp_trace_cmd); install_element (CONFIG_NODE, &no_debug_igmp_trace_cmd); install_element (CONFIG_NODE, &debug_mroute_cmd); + install_element (CONFIG_NODE, &debug_mroute_detail_cmd); install_element (CONFIG_NODE, &no_debug_mroute_cmd); + install_element (CONFIG_NODE, &no_debug_mroute_detail_cmd); install_element (CONFIG_NODE, &debug_static_cmd); install_element (CONFIG_NODE, &no_debug_static_cmd); install_element (CONFIG_NODE, &debug_pim_cmd); diff --git a/pimd/pim_mroute.c b/pimd/pim_mroute.c index 28c7f7dc88..f222e5f575 100644 --- a/pimd/pim_mroute.c +++ b/pimd/pim_mroute.c @@ -131,7 +131,7 @@ pim_mroute_msg_nocache (int fd, struct interface *ifp, const struct igmpmsg *msg */ if (!pim_mroute_connected_to_source (ifp, msg->im_src)) { - if (PIM_DEBUG_MROUTE) + if (PIM_DEBUG_MROUTE_DETAIL) zlog_debug ("%s: Received incoming packet that doesn't originate on our seg", __PRETTY_FUNCTION__); return 0; @@ -193,7 +193,7 @@ pim_mroute_msg_wholepkt (int fd, struct interface *ifp, const char *buf) up = pim_upstream_find(&sg); if (!up) { - if (PIM_DEBUG_MROUTE) { + if (PIM_DEBUG_MROUTE_DETAIL) { zlog_debug("%s: Unable to find upstream channel WHOLEPKT%s", __PRETTY_FUNCTION__, pim_str_sg_dump (&sg)); } @@ -399,7 +399,7 @@ int pim_mroute_msg(int fd, const char *buf, int buf_size) /* kernel upcall must have protocol=0 */ if (ip_hdr->ip_p) { /* this is not a kernel upcall */ - if (PIM_DEBUG_MROUTE) { + if (PIM_DEBUG_MROUTE_DETAIL) { pim_inet4_dump("", ip_hdr->ip_src, src_str, sizeof(src_str)); pim_inet4_dump("", ip_hdr->ip_dst, grp_str, sizeof(grp_str)); zlog_debug("%s: not a kernel upcall proto=%d src: %s dst: %s msg_size=%d", diff --git a/pimd/pim_vty.c b/pimd/pim_vty.c index e27c69411c..f279136651 100644 --- a/pimd/pim_vty.c +++ b/pimd/pim_vty.c @@ -63,6 +63,11 @@ pim_debug_config_write (struct vty *vty) ++writes; } + if (PIM_DEBUG_MROUTE_DETAIL) { + vty_out (vty, "debug mroute detail%s", VTY_NEWLINE); + ++writes; + } + if (PIM_DEBUG_PIM_EVENTS) { vty_out(vty, "debug pim events%s", VTY_NEWLINE); ++writes; diff --git a/pimd/pimd.h b/pimd/pimd.h index a1bd225343..e9b67aaa99 100644 --- a/pimd/pimd.h +++ b/pimd/pimd.h @@ -66,10 +66,11 @@ #define PIM_MASK_ZEBRA (1 << 11) #define PIM_MASK_SSMPINGD (1 << 12) #define PIM_MASK_MROUTE (1 << 13) -#define PIM_MASK_PIM_HELLO (1 << 14) -#define PIM_MASK_PIM_J_P (1 << 15) -#define PIM_MASK_STATIC (1 << 16) -#define PIM_MASK_PIM_REG (1 << 17) +#define PIM_MASK_MROUTE_DETAIL (1 << 14) +#define PIM_MASK_PIM_HELLO (1 << 15) +#define PIM_MASK_PIM_J_P (1 << 16) +#define PIM_MASK_STATIC (1 << 17) +#define PIM_MASK_PIM_REG (1 << 18) const char *const PIM_ALL_SYSTEMS; const char *const PIM_ALL_ROUTERS; @@ -132,6 +133,7 @@ extern int32_t qpim_register_probe_time; #define PIM_DEBUG_ZEBRA (qpim_debugs & PIM_MASK_ZEBRA) #define PIM_DEBUG_SSMPINGD (qpim_debugs & PIM_MASK_SSMPINGD) #define PIM_DEBUG_MROUTE (qpim_debugs & PIM_MASK_MROUTE) +#define PIM_DEBUG_MROUTE_DETAIL (qpim_debugs & PIM_MASK_MROUTE_DETAIL) #define PIM_DEBUG_PIM_HELLO (qpim_debugs & PIM_MASK_PIM_HELLO) #define PIM_DEBUG_PIM_J_P (qpim_debugs & PIM_MASK_PIM_J_P) #define PIM_DEBUG_PIM_REG (qpim_debugs & PIM_MASK_PIM_REG) @@ -153,6 +155,7 @@ extern int32_t qpim_register_probe_time; #define PIM_DO_DEBUG_ZEBRA (qpim_debugs |= PIM_MASK_ZEBRA) #define PIM_DO_DEBUG_SSMPINGD (qpim_debugs |= PIM_MASK_SSMPINGD) #define PIM_DO_DEBUG_MROUTE (qpim_debugs |= PIM_MASK_MROUTE) +#define PIM_DO_DEBUG_MROUTE_DETAIL (qpim_debugs |= PIM_MASK_MROUTE_DETAIL) #define PIM_DO_DEBUG_PIM_HELLO (qpim_debugs |= PIM_MASK_PIM_HELLO) #define PIM_DO_DEBUG_PIM_J_P (qpim_debugs |= PIM_MASK_PIM_J_P) #define PIM_DO_DEBUG_PIM_REG (qpim_debugs |= PIM_MASK_PIM_REG) @@ -170,6 +173,7 @@ extern int32_t qpim_register_probe_time; #define PIM_DONT_DEBUG_ZEBRA (qpim_debugs &= ~PIM_MASK_ZEBRA) #define PIM_DONT_DEBUG_SSMPINGD (qpim_debugs &= ~PIM_MASK_SSMPINGD) #define PIM_DONT_DEBUG_MROUTE (qpim_debugs &= ~PIM_MASK_MROUTE) +#define PIM_DONT_DEBUG_MROUTE_DETAIL (qpim_debugs &= ~PIM_MASK_MROUTE_DETAIL) #define PIM_DONT_DEBUG_PIM_HELLO (qpim_debugs &= ~PIM_MASK_PIM_HELLO) #define PIM_DONT_DEBUG_PIM_J_P (qpim_debugs &= ~PIM_MASK_PIM_J_P) #define PIM_DONT_DEBUG_PIM_REG (qpim_debugs &= ~PIM_MASK_PIM_REG) -- 2.39.5