-
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
implement SBFD #17336
implement SBFD #17336
Conversation
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 ... I think we need a topo test for this, though
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.
Needs to be broken into multiple commits, and this also needs a topo test.
a) This needs to be broken up into multiple commits. 4k lines to review is impossible. Break it down into small logical bits of work, this will never be reviewed otherwise Without some major changes this is dead in the water. |
This pull request has conflicts, please resolve those before we can evaluate the pull request. |
Looks like the docs are in, but we still need a topo test ... |
Yes Russ White, Thanks for reviewing the code. The topo test in ongoing, I will update the PR later. |
Hello, @riw777 @donaldsharp greetings :)
Currently only scenario-3 is topo-tested. Since for scenario-1 and scenario-2, they depend on the PR(#16894) to implement the SRv6 locator Functions. Thanks & Regards. |
Signed-off-by: wumu.zsl <[email protected]>
5e0b3d4
to
95d9081
Compare
for frrbot complaints, use the |
Topotest need to be updated to use unified configs |
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 ...
lint errors need to be fixed ... |
sbfd will use bfdname for key hash, We introduced a bfd-name for every sbfd session, normal BFD sessions can leave it as NULL. A unique bfd-name can be used to identify a sbfd session quickly. This is quite useful in our Srv6 deployment for path protection case. For example, if use the sbfd session to protect the SRv6 path A-B-D, we would assign the name 'path-a-b-d' or 'a-b-d' to the session. Signed-off-by: wumu.zsl <[email protected]>
Signed-off-by: wumu.zsl <[email protected]>
config examples: SBFD Initiator: peer 200::D bfd-mode sbfd-init bfd-name a-b-d multihop local-address 200::A remote-discr 456 srv6-source-ipv6 200::A srv6-encap-data 100::B 100::D SBFD Reflector: sbfd reflector source-address 200::D discriminator 456 Echo SBFD: peer 200::A bfd-mode sbfd-echo bfd-name a-b-d local-address 200::A srv6-source-ipv6 200::A srv6-encap-data 100::B 100::D Signed-off-by: wumu.zsl <[email protected]>
refactor bfd_session_create and bfd_session_destroy to support SBFD Signed-off-by: wumu.zsl <[email protected]>
Signed-off-by: wumu.zsl <[email protected]>
Signed-off-by: wumu.zsl <[email protected]>
Signed-off-by: wumu.zsl <[email protected]>
Signed-off-by: wumu.zsl <[email protected]>
Two types of sbfd packets are supported: initiator packet and echo packet Signed-off-by: wumu.zsl <[email protected]>
Signed-off-by: wumu.zsl <[email protected]>
1) create socket to send sbfd packets 2) integrate sbfd logic with existing BFD Signed-off-by: wumu.zsl <[email protected]>
Signed-off-by: wumu.zsl <[email protected]>
Signed-off-by: wumu.zsl <[email protected]>
Signed-off-by: wumu.zsl <[email protected]>
Signed-off-by: wumu.zsl <[email protected]>
lint error fixed. |
Thanks for the suggestion, Topotest updated to use frr.conf |
ci:rerun |
1 similar comment
ci:rerun |
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.
LGTM
implementing the SBFD feature (RFC7880, RFC7881) in FRR.
What is the motivation for this PR?
The PhoenixWing project aims to implement SRv6 features into the SONiC community. In PhoenixWing traffic engineering case, we use SBFD to protect SRv6 TE paths.
How did you do it?
SBFD HLD in SoNiC community: sonic-net/SONiC#1766
use SBFD to protect TE path, two types of configs are supported:
configure terminal->
bfd ->
peer X::X bfd-mode sbfd-echo bfd-name name local-address X::X encap-type SRv6 encap-data X::X source-ipv6 X::X
2.1) local config:
configure terminal->
bfd ->
peer X::X bfd-mode sbfd-init bfd-name name local-address X::X encap-type SRv6 encap-data X::X source-ipv6 X::X remote-discr 12345
2.2) remote config:
configure terminal ->
bfd ->
sbfd reflector source-address X::X discriminator 12345