-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
zebra: fix loading kernel routes without netlink #16597
Conversation
Commit 605df8d zebra: Use zebra dplane for RTM link and addr broke loading of kernel routes at startup for configurations without netlink. It rearranged the startup sequence in zebra_ns_enable() to pass via zebra_ns_startup_continue(), triggered through zebra_dplane_startup_stage() calls. However, it neglected to make these calls in the non-netlink code path. As a result zebra failed to load kernel routes at startup on platforms such as FreeBSD. Insert these calls so we run through all of the expected startup stages. Signed-off-by: Kristof Provost <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for catching this
Does it mean that FRR disable netlink on FreeBSD ? Because all supported versions of FreeBSD has netlink support. |
FRR does not use netlink on FreeBSD, no. Line 1350 in c32bdc2
I've not investigated if FreeBSD supports everything that FRR needs via netlink. |
The FRR code is very linux-only netlink:
The bird patch was very small, but it will be a little more complex on frr. |
it will be a lot more complex on frr. There are a bunch of netlink operations that do not exist yet for FreeBSD that are needed. Thus leaving us with a partial implementation that would need to be mixed and matched. I spent a couple hours looking at this and decided my time was spent better elsewhere for the moment. |
Thank you for your time |
Commit 605df8d zebra: Use zebra dplane for RTM link and addr broke loading of kernel routes at startup for configurations without netlink.
It rearranged the startup sequence in zebra_ns_enable() to pass via zebra_ns_startup_continue(), triggered through zebra_dplane_startup_stage() calls. However, it neglected to make these calls in the non-netlink code path. As a result zebra failed to load kernel routes at startup on platforms such as FreeBSD.
Insert these calls so we run through all of the expected startup stages.