summaryrefslogtreecommitdiff
path: root/pimd/pim_tib.c
diff options
context:
space:
mode:
Diffstat (limited to 'pimd/pim_tib.c')
-rw-r--r--pimd/pim_tib.c20
1 files changed, 8 insertions, 12 deletions
diff --git a/pimd/pim_tib.c b/pimd/pim_tib.c
index e21793b8ca..d067abf45a 100644
--- a/pimd/pim_tib.c
+++ b/pimd/pim_tib.c
@@ -34,16 +34,17 @@ tib_sg_oil_setup(struct pim_instance *pim, pim_sgaddr sg, struct interface *oif)
up = pim_upstream_find(pim, &sg);
if (up) {
- memcpy(&nexthop, &up->rpf.source_nexthop,
- sizeof(struct pim_nexthop));
- (void)pim_ecmp_nexthop_lookup(pim, &nexthop, vif_source, &grp,
- 0);
+ memcpy(&nexthop, &up->rpf.source_nexthop, sizeof(struct pim_nexthop));
+ if (!pim_nht_lookup_ecmp(pim, &nexthop, vif_source, &grp, false))
+ if (PIM_DEBUG_PIM_NHT_RP)
+ zlog_debug("%s: Nexthop Lookup failed vif_src:%pPA, sg.src:%pPA, sg.grp:%pPA",
+ __func__, &vif_source, &sg.src, &sg.grp);
+
if (nexthop.interface)
input_iface_vif_index = pim_if_find_vifindex_by_ifindex(
pim, nexthop.interface->ifindex);
} else
- input_iface_vif_index =
- pim_ecmp_fib_lookup_if_vif_index(pim, vif_source, &grp);
+ input_iface_vif_index = pim_nht_lookup_ecmp_if_vif_index(pim, vif_source, &grp);
if (PIM_DEBUG_ZEBRA)
zlog_debug("%s: NHT %pSG vif_source %pPAs vif_index:%d",
@@ -115,13 +116,8 @@ bool tib_sg_gm_join(struct pim_instance *pim, pim_sgaddr sg,
return false;
}
- if (!*oilp) {
+ if (!*oilp)
*oilp = tib_sg_oil_setup(pim, sg, oif);
-#if PIM_IPV == 6
- if (pim_embedded_rp_is_embedded(&sg.grp))
- (*oilp)->oil_ref_count--;
-#endif /* PIM_IPV == 6 */
- }
if (!*oilp)
return false;