Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

bgpd: Fix evpn bestpath calculation when path is not established #17613

Merged
merged 1 commit into from
Dec 17, 2024

Conversation

donaldsharp
Copy link
Member

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

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:

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.

@ton31337
Copy link
Member

ton31337 commented Dec 9, 2024

@Mergifyio backport stable/10.2 stable/10.1 stable/10.0 stable/9.1

Copy link

mergify bot commented Dec 9, 2024

backport stable/10.2 stable/10.1 stable/10.0 stable/9.1

✅ Backports have been created

@ton31337
Copy link
Member

Hm, seems valid failures, right regarding GR?

@donaldsharp
Copy link
Member Author

doesn't fail at home unless I put the system under major stress. I'll figure it out

@riw777 riw777 self-requested a review December 10, 2024 16:28
@donaldsharp donaldsharp force-pushed the evpn_bgp_bestpath_failure branch from 26715a0 to e911a1b Compare December 11, 2024 15:35
@github-actions github-actions bot added size/M and removed size/S labels Dec 11, 2024
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>
@donaldsharp donaldsharp force-pushed the evpn_bgp_bestpath_failure branch from e911a1b to 9f88cb5 Compare December 11, 2024 17:27
@github-actions github-actions bot added size/S and removed size/M labels Dec 11, 2024
Copy link
Member

@riw777 riw777 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

looks good

@riw777 riw777 merged commit f4cdd5c into FRRouting:master Dec 17, 2024
11 checks passed
ton31337 added a commit that referenced this pull request Dec 17, 2024
bgpd: Fix evpn bestpath calculation when path is not established (backport #17613)
ton31337 added a commit that referenced this pull request Dec 17, 2024
bgpd: Fix evpn bestpath calculation when path is not established (backport #17613)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants