Merge pull request #17217 from Jafaral/fix-bsm-backport

pimd: allow resolving bsr via directly connected secondary address (backport)
This commit is contained in:
Donald Sharp 2024-10-25 16:06:00 -04:00 committed by GitHub
commit 894077e940
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -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;
}