mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-05-29 21:01:42 +00:00
pimd, pim6d: Fix BSM packet process
Problem 1:
When route to BSR is having nexthop secondary address,
neighborship is built with primary address,
then pim_neighbor_find() fails, which cause drop of BSM
packet.
Fix 1:
Verify pim neighborship on the BSM received interface.
Problem 2:
Problem 2:
Source IP BSM address is primary address, where
as nexthop also can be primary or secondary address.
Fix 2:
Avoiding the check (nhaddr == src_ip) for PIMV6
Issue: #11957
Signed-off-by: Sarita Patra <saritap@vmware.com>
(cherry picked from commit 2c6a32f9be
)
This commit is contained in:
parent
0320f687e6
commit
ca163640f1
@ -320,12 +320,11 @@ bool pim_nht_bsr_rpf_check(struct pim_instance *pim, pim_addr bsr_addr,
|
|||||||
if (if_is_loopback(ifp) && if_is_loopback(src_ifp))
|
if (if_is_loopback(ifp) && if_is_loopback(src_ifp))
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
nbr = pim_neighbor_find(ifp, znh->nexthop_addr);
|
nbr = pim_neighbor_find(ifp, znh->nexthop_addr, true);
|
||||||
if (!nbr)
|
if (!nbr)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
return znh->ifindex == src_ifp->ifindex &&
|
return znh->ifindex == src_ifp->ifindex;
|
||||||
(!pim_addr_cmp(znh->nexthop_addr, src_ip));
|
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -380,12 +379,13 @@ bool pim_nht_bsr_rpf_check(struct pim_instance *pim, pim_addr bsr_addr,
|
|||||||
return true;
|
return true;
|
||||||
|
|
||||||
/* MRIB (IGP) may be pointing at a router where PIM is down */
|
/* MRIB (IGP) may be pointing at a router where PIM is down */
|
||||||
nbr = pim_neighbor_find(ifp, nhaddr);
|
|
||||||
|
nbr = pim_neighbor_find(ifp, nhaddr, true);
|
||||||
|
|
||||||
if (!nbr)
|
if (!nbr)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
return nh->ifindex == src_ifp->ifindex &&
|
return nh->ifindex == src_ifp->ifindex;
|
||||||
(!pim_addr_cmp(nhaddr, src_ip));
|
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user