mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-07-27 06:50:25 +00:00
Merge pull request #17247 from FRRouting/mergify/bp/stable/10.0/pr-17217
pimd: allow resolving bsr via directly connected secondary address (backport) (backport #17217)
This commit is contained in:
commit
c66186f646
@ -313,7 +313,19 @@ bool pim_nht_bsr_rpf_check(struct pim_instance *pim, pim_addr bsr_addr,
|
||||
if (!nbr)
|
||||
continue;
|
||||
|
||||
return znh->ifindex == src_ifp->ifindex;
|
||||
/* Are we on the correct interface? */
|
||||
if (znh->ifindex == src_ifp->ifindex) {
|
||||
/* Do we have the correct NH ? */
|
||||
if (!pim_addr_cmp(znh->nexthop_addr, src_ip))
|
||||
return true;
|
||||
/*
|
||||
* check If the packet came from the neighbor,
|
||||
* and the dst is a secondary address on the connected interface
|
||||
*/
|
||||
return (!pim_addr_cmp(nbr->source_addr, src_ip) &&
|
||||
pim_if_connected_to_source(ifp, znh->nexthop_addr));
|
||||
}
|
||||
return false;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@ -380,7 +392,19 @@ bool pim_nht_bsr_rpf_check(struct pim_instance *pim, pim_addr bsr_addr,
|
||||
if (!nbr)
|
||||
continue;
|
||||
|
||||
return nh->ifindex == src_ifp->ifindex;
|
||||
/* Are we on the correct interface? */
|
||||
if (nh->ifindex == src_ifp->ifindex) {
|
||||
/* Do we have the correct NH ? */
|
||||
if (!pim_addr_cmp(nhaddr, src_ip))
|
||||
return true;
|
||||
/*
|
||||
* check If the packet came from the neighbor,
|
||||
* and the dst is a secondary address on the connected interface
|
||||
*/
|
||||
return (!pim_addr_cmp(nbr->source_addr, src_ip) &&
|
||||
pim_if_connected_to_source(ifp, nhaddr));
|
||||
}
|
||||
return false;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user