mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-16 02:30:52 +00:00
bgpd: Fix deterministic-med check for stale paths
When performing deterministic MED processing, ensure that the peer status is not checked when we encounter a stale path. Otherwise, this path will be skipped from the DMED consideration leading to it potentially not being installed. Test scenario: Consider a prefix with 2 (multi)paths. The peer that announces the path with the winning DMED undergoes a graceful-restart. Before it comes back up, the other path goes away. Prior to the fix, a third router that receives both these paths would have ended up not having any path installed to the prefix after the above events. Signed-off-by: Vivek Venkatraman <vivek@nvidia.com> For internal use: Ticket: CM-32032 Testing done: Multiple manual testing
This commit is contained in:
parent
bf9bc2e5f2
commit
de692a4ebe
@ -2658,9 +2658,12 @@ void bgp_best_selection(struct bgp *bgp, struct bgp_dest *dest,
|
||||
continue;
|
||||
if (BGP_PATH_HOLDDOWN(pi1))
|
||||
continue;
|
||||
if (pi1->peer != bgp->peer_self)
|
||||
if (pi1->peer != bgp->peer_self &&
|
||||
!CHECK_FLAG(pi1->peer->sflags,
|
||||
PEER_STATUS_NSF_WAIT)) {
|
||||
if (!peer_established(pi1->peer))
|
||||
continue;
|
||||
}
|
||||
|
||||
new_select = pi1;
|
||||
if (pi1->next) {
|
||||
|
Loading…
Reference in New Issue
Block a user