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

babeld replaces routes non-atomically #110

Open
DanielG opened this issue Oct 5, 2023 · 1 comment
Open

babeld replaces routes non-atomically #110

DanielG opened this issue Oct 5, 2023 · 1 comment

Comments

@DanielG
Copy link
Contributor

DanielG commented Oct 5, 2023

Hi Juliusz,

I've just tracked down a particularly bothersome behavior in my babeld deployment to the fact that babeld doesn't use NLM_F_REPLACE to replace changed routes atomically.

The use-case involves ingesting babel routes into bird to make use of it's support for router advertisements with (default) router lifetime controlled by IGP route presence.

What seems to happen in my system is that babeld removes the default route and quickly re-adds the modified route. Bird sees this and sends a RA lifetime=0 announcement, but it doesn't send the lifetime>0 update quite as quickly it takes a couple of seconds (not sure why yet). This obviously breaks internet connectivity for all clients on the LAN intermittently.

--Daniel

@jech
Copy link
Owner

jech commented Oct 6, 2023

babeld doesn't use NLM_F_REPLACE to replace changed routes atomically.

Yep. I did implement it many years ago, but at the time kernel-side support for it was buggy.

I think it might be a good idea to try again, perhaps the kernels have improved since then.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants