]> git.puffer.fish Git - mirror/frr.git/commitdiff
pimd: Added new option "detail" in the "debug pim nht" CLI 9476/head
authorSai Gomathi <nsaigomathi@vmware.com>
Thu, 2 Dec 2021 05:07:02 +0000 (21:07 -0800)
committerSai Gomathi <nsaigomathi@vmware.com>
Fri, 4 Mar 2022 06:33:20 +0000 (22:33 -0800)
Problem Statement:
=================
PIM Logs are coming at interval of 1 minute although pim
is not enabled.

Root Cause Analysis:
====================
By default, RCPM configures the PIM debugs when router comes up
via script. The product cannot disable PIM even though it is not required.
Hence moving these logs under a new debug option which will not be
enabled by default.

Fix:
====
Added a new option "detail" in the cli:
debug pim nht detail

Co-author: Mobashshera Rasool <mrasool@vmware.com>
Signed-off-by: Sai Gomathi <nsaigomathi@vmware.com>
doc/user/pim.rst
pimd/pim_cmd.c
pimd/pim_nht.c
pimd/pim_vty.c
pimd/pim_zlookup.c
pimd/pimd.h

index 1c3a0110aca9d28bc04f2046c89b70b15973c9bb..7818c30374f6754842e0a82ea5e46c43d8b2f842 100644 (file)
@@ -609,6 +609,11 @@ the config was written out.
    This turns on debugging for PIM nexthop tracking. It will display
    information about RPF lookups and information about when a nexthop changes.
 
+.. clicmd:: debug pim nht detail
+
+   This turns on debugging for PIM nexthop in detail. This is not enabled
+   by default.
+
 .. clicmd:: debug pim packet-dump
 
    This turns on an extraordinary amount of data. Each pim packet sent and
index 76f90cdba7d0e1567d6e6396569398fc1afe8050..21868abd425a8233f90306c6fd14bf5cf69d1779 100644 (file)
@@ -8639,6 +8639,31 @@ DEFUN (no_debug_pim_nht,
        return CMD_SUCCESS;
 }
 
+DEFUN (debug_pim_nht_det,
+       debug_pim_nht_det_cmd,
+       "debug pim nht detail",
+       DEBUG_STR
+       DEBUG_PIM_STR
+       "Nexthop Tracking\n"
+       "Detailed Information\n")
+{
+       PIM_DO_DEBUG_PIM_NHT_DETAIL;
+       return CMD_SUCCESS;
+}
+
+DEFUN (no_debug_pim_nht_det,
+       no_debug_pim_nht_det_cmd,
+       "no debug pim nht detail",
+       NO_STR
+       DEBUG_STR
+       DEBUG_PIM_STR
+       "Nexthop Tracking\n"
+       "Detailed Information\n")
+{
+       PIM_DONT_DEBUG_PIM_NHT_DETAIL;
+       return CMD_SUCCESS;
+}
+
 DEFUN (debug_pim_nht_rp,
        debug_pim_nht_rp_cmd,
        "debug pim nht rp",
@@ -10905,6 +10930,8 @@ void pim_cmd_init(void)
        install_element(ENABLE_NODE, &no_debug_pim_cmd);
        install_element(ENABLE_NODE, &debug_pim_nht_cmd);
        install_element(ENABLE_NODE, &no_debug_pim_nht_cmd);
+       install_element(ENABLE_NODE, &debug_pim_nht_det_cmd);
+       install_element(ENABLE_NODE, &no_debug_pim_nht_det_cmd);
        install_element(ENABLE_NODE, &debug_pim_nht_rp_cmd);
        install_element(ENABLE_NODE, &no_debug_pim_nht_rp_cmd);
        install_element(ENABLE_NODE, &debug_pim_events_cmd);
@@ -10956,6 +10983,8 @@ void pim_cmd_init(void)
        install_element(CONFIG_NODE, &no_debug_pim_cmd);
        install_element(CONFIG_NODE, &debug_pim_nht_cmd);
        install_element(CONFIG_NODE, &no_debug_pim_nht_cmd);
+       install_element(CONFIG_NODE, &debug_pim_nht_det_cmd);
+       install_element(CONFIG_NODE, &no_debug_pim_nht_det_cmd);
        install_element(CONFIG_NODE, &debug_pim_nht_rp_cmd);
        install_element(CONFIG_NODE, &no_debug_pim_nht_rp_cmd);
        install_element(CONFIG_NODE, &debug_pim_events_cmd);
index 48dd565b252f25775e39313ab1cc77d12fcd0612..01ca6d6934aff4d67d8d92d43d4c66ced6f81fb9 100644 (file)
@@ -121,7 +121,7 @@ static struct pim_nexthop_cache *pim_nht_get(struct pim_instance *pim,
                pnc = pim_nexthop_cache_add(pim, &rpf);
                pim_sendmsg_zebra_rnh(pim, zclient, pnc,
                                      ZEBRA_NEXTHOP_REGISTER);
-               if (PIM_DEBUG_PIM_NHT)
+               if (PIM_DEBUG_PIM_NHT_DETAIL)
                        zlog_debug(
                                "%s: NHT cache and zebra notification added for %pFX(%s)",
                                __func__, addr, pim->vrf->name);
@@ -899,7 +899,7 @@ int pim_ecmp_nexthop_lookup(struct pim_instance *pim,
        uint32_t num_nbrs = 0;
        pim_addr src_addr = pim_addr_from_prefix(src);
 
-       if (PIM_DEBUG_PIM_NHT)
+       if (PIM_DEBUG_PIM_NHT_DETAIL)
                zlog_debug("%s: Looking up: %pPA(%s), last lookup time: %lld",
                           __func__, &src_addr, pim->vrf->name,
                           nexthop->last_lookup_time);
@@ -1052,7 +1052,7 @@ int pim_ecmp_fib_lookup_if_vif_index(struct pim_instance *pim,
        ifindex_t ifindex;
        pim_addr src_addr;
 
-       if (PIM_DEBUG_PIM_NHT) {
+       if (PIM_DEBUG_PIM_NHT_DETAIL) {
                src_addr = pim_addr_from_prefix(src);
        }
 
index 6de3a04b66035927abf93ddaa3fb4c3ac43c5084..5d792166de7b068573a76b71c15853f03c8d35c7 100644 (file)
@@ -166,6 +166,11 @@ int pim_debug_config_write(struct vty *vty)
                ++writes;
        }
 
+       if (PIM_DEBUG_PIM_NHT_DETAIL) {
+               vty_out(vty, "debug pim nht detail\n");
+               ++writes;
+       }
+
        return writes;
 }
 
index c33e6032bf078f19f1c4fe04a410f18936e8eae1..c487f995e72f280fe47218b86598fb558f2e0129 100644 (file)
@@ -412,7 +412,7 @@ int zclient_lookup_nexthop(struct pim_instance *pim,
                num_ifindex = zclient_lookup_nexthop_once(pim, nexthop_tab,
                                                          tab_size, addr);
                if (num_ifindex < 1) {
-                       if (PIM_DEBUG_PIM_NHT)
+                       if (PIM_DEBUG_PIM_NHT_DETAIL)
                                zlog_debug(
                                        "%s: lookup=%d/%d: could not find nexthop ifindex for address %pPA(%s)",
                                        __func__, lookup, max_lookup, &addr,
index d4eac58a29c36c480c90e7c1c17b456cb0f0ccdd..1f7919ac6cd62b8eeb26ed018295e6109c5eee47 100644 (file)
@@ -182,8 +182,7 @@ extern uint8_t qpim_ecmp_rebalance_enable;
 #define PIM_DEBUG_MSDP_PACKETS (router->debugs & PIM_MASK_MSDP_PACKETS)
 #define PIM_DEBUG_MSDP_INTERNAL (router->debugs & PIM_MASK_MSDP_INTERNAL)
 #define PIM_DEBUG_PIM_NHT (router->debugs & PIM_MASK_PIM_NHT)
-#define PIM_DEBUG_PIM_NHT_DETAIL                                               \
-       (router->debugs & (PIM_MASK_PIM_NHT_DETAIL | PIM_MASK_PIM_NHT))
+#define PIM_DEBUG_PIM_NHT_DETAIL (router->debugs & PIM_MASK_PIM_NHT_DETAIL)
 #define PIM_DEBUG_PIM_NHT_RP (router->debugs & PIM_MASK_PIM_NHT_RP)
 #define PIM_DEBUG_MTRACE (router->debugs & PIM_MASK_MTRACE)
 #define PIM_DEBUG_VXLAN (router->debugs & PIM_MASK_VXLAN)
@@ -228,6 +227,7 @@ extern uint8_t qpim_ecmp_rebalance_enable;
 #define PIM_DO_DEBUG_MSDP_PACKETS (router->debugs |= PIM_MASK_MSDP_PACKETS)
 #define PIM_DO_DEBUG_MSDP_INTERNAL (router->debugs |= PIM_MASK_MSDP_INTERNAL)
 #define PIM_DO_DEBUG_PIM_NHT (router->debugs |= PIM_MASK_PIM_NHT)
+#define PIM_DO_DEBUG_PIM_NHT_DETAIL (router->debugs |= PIM_MASK_PIM_NHT_DETAIL)
 #define PIM_DO_DEBUG_PIM_NHT_RP (router->debugs |= PIM_MASK_PIM_NHT_RP)
 #define PIM_DO_DEBUG_MTRACE (router->debugs |= PIM_MASK_MTRACE)
 #define PIM_DO_DEBUG_VXLAN (router->debugs |= PIM_MASK_VXLAN)
@@ -259,6 +259,8 @@ extern uint8_t qpim_ecmp_rebalance_enable;
 #define PIM_DONT_DEBUG_MSDP_PACKETS (router->debugs &= ~PIM_MASK_MSDP_PACKETS)
 #define PIM_DONT_DEBUG_MSDP_INTERNAL (router->debugs &= ~PIM_MASK_MSDP_INTERNAL)
 #define PIM_DONT_DEBUG_PIM_NHT (router->debugs &= ~PIM_MASK_PIM_NHT)
+#define PIM_DONT_DEBUG_PIM_NHT_DETAIL                                          \
+       (router->debugs &= ~PIM_MASK_PIM_NHT_DETAIL)
 #define PIM_DONT_DEBUG_PIM_NHT_RP (router->debugs &= ~PIM_MASK_PIM_NHT_RP)
 #define PIM_DONT_DEBUG_MTRACE (router->debugs &= ~PIM_MASK_MTRACE)
 #define PIM_DONT_DEBUG_VXLAN (router->debugs &= ~PIM_MASK_VXLAN)