]> git.puffer.fish Git - mirror/frr.git/commitdiff
pimd: Add more RP rescan points
authorDonald Sharp <sharpd@cumulusnetworks.com>
Tue, 29 Nov 2016 13:47:40 +0000 (08:47 -0500)
committerDonald Sharp <sharpd@cumulusnetworks.com>
Thu, 22 Dec 2016 01:26:17 +0000 (20:26 -0500)
When we add in or delete ip addresses from an interface
we may need to rescan the rp's that we know of to make
sure that they are still available.

Ticket: CM-12623
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
Reviewed-by: Don Slice <dslice@cumulusnetworks.com>
pimd/pim_iface.c
pimd/pim_zebra.c

index b5f1fadca54295786a49a5cfd3199d947c2a67fd..0a104acef172ff9e00780204b6c6ccfa3a0420f5 100644 (file)
@@ -715,7 +715,7 @@ void pim_if_addr_add_all(struct interface *ifp)
        }
       } /* pim */
     }
-
+  pim_rp_setup();
   pim_rp_check_on_if_add(pim_ifp);
 }
 
@@ -737,6 +737,8 @@ void pim_if_addr_del_all(struct interface *ifp)
 
     pim_if_addr_del(ifc, 1 /* force_prim_as_any=true */);
   }
+
+  pim_rp_setup();
   pim_i_am_rp_re_evaluate();
 }
 
index 9239f875c458b118e178fd2d40c43cde0b349b7e..44b92a8c0b3a5969163e3c191c8235568f173306 100644 (file)
@@ -348,6 +348,7 @@ static int pim_zebra_if_address_del(int command, struct zclient *client,
   }
 
   pim_if_addr_del(c, 0);
+  pim_rp_setup();
   pim_i_am_rp_re_evaluate();
   
   return 0;