]> git.puffer.fish Git - mirror/frr.git/commitdiff
pimd: Fix the test to see if a upstream is (S,G,rpt)
authorDonald Sharp <sharpd@cumulusnetworks.com>
Fri, 11 Nov 2016 01:09:01 +0000 (20:09 -0500)
committerDonald Sharp <sharpd@cumulusnetworks.com>
Thu, 22 Dec 2016 01:26:15 +0000 (20:26 -0500)
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
pimd/pim_upstream.c

index fe6e81ef63f68f2fff357d20a39d26ba8d4b1bb5..8552966782450e62f29fd8043fef803e9ecce0a0 100644 (file)
@@ -991,8 +991,15 @@ pim_upstream_switch_to_spt_desired (struct prefix_sg *sg)
 int
 pim_upstream_is_sg_rpt (struct pim_upstream *up)
 {
-  if (up->sptbit == PIM_UPSTREAM_SPTBIT_TRUE)
-    return 1;
+  struct listnode *chnode;
+  struct pim_ifchannel *ch;
+
+  for (ALL_LIST_ELEMENTS_RO(pim_ifchannel_list, chnode, ch))
+    {
+      if ((ch->upstream == up) &&
+         (PIM_IF_FLAG_TEST_S_G_RPT(ch->flags)))
+       return 1;
+    }
 
   return 0;
 }