]> git.puffer.fish Git - mirror/frr.git/commitdiff
pimd: logs to help debug leaked channel OIF problems
authorAnuradha Karuppiah <anuradhak@cumulusnetworks.com>
Mon, 14 Oct 2019 19:41:33 +0000 (12:41 -0700)
committerDonald Sharp <sharpd@cumulusnetworks.com>
Fri, 6 Mar 2020 21:12:25 +0000 (16:12 -0500)
Additional protocols were being set on the OIF proto-mask without
logs. Added logs in that area.

Also added start and end logs to ifchannel_delete to help
identify state machine changes that play out as a part of this
event handling.

Ticket: CM-26732

Signed-off-by: Anuradha Karuppiah <anuradhak@cumulusnetworks.com>
pimd/pim_ifchannel.c
pimd/pim_oil.c

index e23d3dc3dada2f4fd905d8adb4711b0a512f4141..c402ea8e7e309c24a9fac89309039d07fc5b7f1e 100644 (file)
@@ -131,6 +131,10 @@ void pim_ifchannel_delete(struct pim_ifchannel *ch)
 
        pim_ifp = ch->interface->info;
 
+       if (PIM_DEBUG_PIM_TRACE)
+               zlog_debug("%s: ifchannel entry %s(%s) del start", __func__,
+                          ch->sg_str, ch->interface->name);
+
        if (PIM_I_am_DualActive(pim_ifp)) {
                if (PIM_DEBUG_MLAG)
                        zlog_debug(
@@ -621,8 +625,8 @@ struct pim_ifchannel *pim_ifchannel_add(struct interface *ifp,
        }
 
        if (PIM_DEBUG_PIM_TRACE)
-               zlog_debug("%s: ifchannel %s is created ", __func__,
-                          ch->sg_str);
+               zlog_debug("%s: ifchannel %s(%s) is created ", __func__,
+                          ch->sg_str, ch->interface->name);
 
        return ch;
 }
index b165bcbee7dc7992a66c076072f82d206041a7d3..21febcc969d37b3fd0d290d928d10bbb469d99f4 100644 (file)
@@ -493,6 +493,23 @@ int pim_channel_add_oif(struct channel_oil *channel_oil, struct interface *oif,
                        }
                }
 
+               if (PIM_DEBUG_MROUTE) {
+                       char group_str[INET_ADDRSTRLEN];
+                       char source_str[INET_ADDRSTRLEN];
+                       pim_inet4_dump("<group?>",
+                                      channel_oil->oil.mfcc_mcastgrp,
+                                      group_str, sizeof(group_str));
+                       pim_inet4_dump("<source?>",
+                                      channel_oil->oil.mfcc_origin, source_str,
+                                      sizeof(source_str));
+                       zlog_debug(
+                               "%s(%s): (S,G)=(%s,%s): proto_mask=%u OIF=%s vif_index=%d added to 0x%x",
+                               __func__, caller, source_str, group_str,
+                               proto_mask, oif->name,
+                               pim_ifp->mroute_vif_index,
+                               channel_oil
+                                       ->oif_flags[pim_ifp->mroute_vif_index]);
+               }
                return 0;
        }