]> git.puffer.fish Git - mirror/frr.git/commitdiff
pimd: Only check to see if current rp is 'right' or not.
authorDonald Sharp <sharpd@cumulusnetworks.com>
Tue, 29 Nov 2016 13:14:35 +0000 (08:14 -0500)
committerDonald Sharp <sharpd@cumulusnetworks.com>
Thu, 22 Dec 2016 01:26:17 +0000 (20:26 -0500)
When a new rp is entered, pim is looking at all rp's and failing the check if
any of the RP's have no path to the RP, instead of the one that was
just entered being wrong.

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

index 98339ee095d730c6a4d58cd04b0718926bd0bc88..ba464e98c63b41186a4ff248767c3d436e8b9e3c 100644 (file)
@@ -400,7 +400,7 @@ pim_rp_new (const char *rp, const char *group_range, const char *plist)
           rp_all->rp.rpf_addr = rp_info->rp.rpf_addr;
           XFREE (MTYPE_PIM_RP, rp_info);
 
-          if (!pim_rp_setup ())
+          if (pim_nexthop_lookup (&rp_all->rp.source_nexthop, rp_all->rp.rpf_addr.u.prefix4, 1) != 0)
             return PIM_RP_NO_PATH;
 
           pim_rp_check_interfaces (rp_all);
@@ -447,7 +447,7 @@ pim_rp_new (const char *rp, const char *group_range, const char *plist)
 
   listnode_add_sort (qpim_rp_list, rp_info);
 
-  if (!pim_rp_setup ())
+  if (pim_nexthop_lookup (&rp_info->rp.source_nexthop, rp_info->rp.rpf_addr.u.prefix4, 1) != 0)
     return PIM_RP_NO_PATH;
 
   pim_rp_check_interfaces (rp_info);