]> git.puffer.fish Git - mirror/frr.git/commitdiff
pimd: Ignore (S,G) Prunes with no current state
authorDonald Sharp <sharpd@cumulusnetworks.com>
Fri, 28 Oct 2016 19:25:56 +0000 (15:25 -0400)
committerDonald Sharp <sharpd@cumulusnetworks.com>
Thu, 22 Dec 2016 01:26:12 +0000 (20:26 -0500)
If we get a (S,G) Prune with no current ifchannel state, ignore
the neighbors request.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
pimd/pim_ifchannel.c

index 0c4be9a518744dd63a3259e32c1c80b32f4b34d9..ee09bf4fcb65646f1c9e2cab5a74d90d2519365a 100644 (file)
@@ -727,6 +727,15 @@ void pim_ifchannel_prune(struct interface *ifp,
     return;
   }
 
+  ch = pim_ifchannel_find (ifp, sg);
+  if (!ch && !(source_flags & PIM_ENCODE_RPT_BIT))
+    {
+      if (PIM_DEBUG_TRACE)
+       zlog_debug ("%s: Received prune with no relevant ifchannel %s(%s) state: %d",
+                   __PRETTY_FUNCTION__, ifp->name, pim_str_sg_dump (sg), source_flags);
+      return;
+    }
+
   ch = pim_ifchannel_add(ifp, sg, PIM_UPSTREAM_FLAG_MASK_SRC_PIM);
   if (!ch)
     return;