-
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: be more careful removing 'installed' flag from nhgs #14515
Conversation
When interface addresses change, we examine nhgs associated with the interface in case they need to be reinstalled. As part of that, we may need to reinstall ecmp nhgs that use the interface being examined - but not always. Signed-off-by: Mark Stapp <[email protected]>
Continuous Integration Result: SUCCESSFULCongratulations, this patch passed basic tests Tested-by: NetDEF / OpenSourceRouting.org CI System CI System Testrun URL: https://ci1.netdef.org/browse/FRR-PULLREQ2-14412/ This is a comment from an automated CI system. |
Can I get an example of when this is wrong? And how this fixes this? |
Heh, yeah, sorry: hate it when people open mystery PRs with no context!
|
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.
looks good
Is this possibly also related to #14102? |
I hate to be this way but can we add this analysis to the commit message itself? |
heh - sure, of course - but I do think (after our discussion during the weekly meeting on Tuesday this week) that we should wait a bit to hear from Chirag who has some insight into the event-handling that led to the current version of the code. it may be that we need a more complete solution to the problem of lost/elided OS events...
|
When interface addresses change, we examine nhgs associated with the interface in case they need to be reinstalled. As part of that, we may need to reinstall ecmp nhgs that use the interface being examined - but not always. Currently, changes to addresses on an interface may incorrectly mark nexthop-groups as 'uninstalled' incorrectly, and zebra won't correct that by itself. For example, run zebra and sharpd, and configure a nexthop-group with two nexthops:
And the output of the nhg will be as expected:
Then add an ipv6 address to the interface - this will trigger change processing that marks sharpd's NHG "uninstalled":