]> git.puffer.fish Git - mirror/frr.git/commit
bgpd: Fix evpn bestpath calculation when path is not established 17663/head
authorDonald Sharp <sharpd@nvidia.com>
Thu, 5 Dec 2024 18:12:00 +0000 (13:12 -0500)
committerMergify <37929162+mergify[bot]@users.noreply.github.com>
Tue, 17 Dec 2024 16:34:59 +0000 (16:34 +0000)
commitb1180bcf2ecca117d45b1bbdef9ae1a8bbf7e818
treeba2aad36f96d467e30ded1894d758700b4b5dc7b
parentb74ce5d30c3bda3e7cd94fe78c52dc43f0d4e9ab
bgpd: Fix evpn bestpath calculation when path is not established

If you have a bestpath list that looks something like this:

<local evpn mac route>
<learned from peer out swp60>
<learned from peer out swp57>

And a network event happens that causes the peer out swp60
to not be in an established state, yet we still have the
path_info for the destination for swp60, bestpath
will currently end up with this order:

<learned from peer out swp60>
<local evpn mac route>
<learned from peer out swp57>

This causes the local evpn mac route to be deleted in zebra( Wrong! ).

This is happening because swp60 is skipped in bestpath calculation and
not considered to be a path yet it stays at the front of the list.

Modify bestpath calculation such that when pulling the unsorted_list
together to pull path info's into that list when they are also
not in a established state.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
(cherry picked from commit 9f88cb56dc0fe7a4ce864f672c6ca420fcd420c2)
bgpd/bgp_route.c