mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-14 15:47:22 +00:00
pimd, pim6d: Fix RP Unknown IIF
When route to RP is having nexthop secndary address,
neighborship is built with primary address,
then pim_neighbor_find() fails, which causes RP IIF
Unknown.
Fix:
Verify pim neighborship on the RP connected interface.
Issue: #11526
Signed-off-by: Sarita Patra <saritap@vmware.com>
(cherry picked from commit ae5bcac0ae
)
This commit is contained in:
parent
ca163640f1
commit
bfd120c5f3
@ -568,7 +568,7 @@ static int pim_ecmp_nexthop_search(struct pim_instance *pim,
|
|||||||
src)) {
|
src)) {
|
||||||
nbr = pim_neighbor_find(
|
nbr = pim_neighbor_find(
|
||||||
nexthop->interface,
|
nexthop->interface,
|
||||||
nexthop->mrib_nexthop_addr);
|
nexthop->mrib_nexthop_addr, true);
|
||||||
if (!nbr
|
if (!nbr
|
||||||
&& !if_is_loopback(nexthop->interface)) {
|
&& !if_is_loopback(nexthop->interface)) {
|
||||||
if (PIM_DEBUG_PIM_NHT)
|
if (PIM_DEBUG_PIM_NHT)
|
||||||
@ -610,7 +610,7 @@ static int pim_ecmp_nexthop_search(struct pim_instance *pim,
|
|||||||
#else
|
#else
|
||||||
pim_addr nhaddr = nh_node->gate.ipv6;
|
pim_addr nhaddr = nh_node->gate.ipv6;
|
||||||
#endif
|
#endif
|
||||||
nbrs[i] = pim_neighbor_find(ifps[i], nhaddr);
|
nbrs[i] = pim_neighbor_find(ifps[i], nhaddr, true);
|
||||||
if (nbrs[i] || pim_if_connected_to_source(ifps[i], src))
|
if (nbrs[i] || pim_if_connected_to_source(ifps[i], src))
|
||||||
num_nbrs++;
|
num_nbrs++;
|
||||||
}
|
}
|
||||||
@ -961,7 +961,8 @@ int pim_ecmp_nexthop_lookup(struct pim_instance *pim,
|
|||||||
pim->vrf->vrf_id);
|
pim->vrf->vrf_id);
|
||||||
if (ifps[i]) {
|
if (ifps[i]) {
|
||||||
nbrs[i] = pim_neighbor_find(
|
nbrs[i] = pim_neighbor_find(
|
||||||
ifps[i], nexthop_tab[i].nexthop_addr);
|
ifps[i], nexthop_tab[i].nexthop_addr, true);
|
||||||
|
|
||||||
if (nbrs[i] || pim_if_connected_to_source(ifps[i], src))
|
if (nbrs[i] || pim_if_connected_to_source(ifps[i], src))
|
||||||
num_nbrs++;
|
num_nbrs++;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user