-
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
bfdd: fix BFD_GETCBIT #15738
bfdd: fix BFD_GETCBIT #15738
Conversation
The macro should check C bit, not F bit. Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
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.
Wondering how it worked stuff before this 😄
But, seems the tests are failing now.
Apparently it didn't work :) |
My analysis is that your fix exposed a problem in the topotest logic. This is the test that is failing:
The problem is that the premise of this test is wrong. Since the BGP peers are configured with the When a BFD down event is detected and C-bit is set, that represents an actual forwarding failure that can not be ignored. As such, bgpd is correct in bringing the session down when that happens. Prior to this PR, the topotest was passing because of this:
bgpd was ignoring the BFD down event because it thought the C-bit was clear, so the failure was being dismissed as a side effect of the restart taking place. This is the correct behavior as specified here. The topotest test descriptions and reference data need to be fixed accordingly. |
@rwestphal -> Do we need to worry about backwards comparability issues with these changes? And can we get some help fixing up the tests? |
@donaldsharp I think this PR will merely fix protocol behavior in the face of BFD link down events. I can't think of any backward compatibility issues. Also, I believe very few people should be using the I've pushed a topotest update to Igor's branch. |
When a BFD down notification is received and the C-bit is set in both directions, any ongoing graceful restart should be aborted and stale routes removed from the RIB. This commit updates the `bfd_bgp_cbit_topo3` topotest accordingly to fix the expected outcomes in the `test_bfd_loss_intermediate` test. Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
The macro should check C bit, not F bit.