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

SRv6 Policy HLD #1707

Open
wants to merge 4 commits into
base: master
Choose a base branch
from

Conversation

eddieruan-alibaba
Copy link
Contributor

No description provided.

Copy link

linux-foundation-easycla bot commented Jun 4, 2024

CLA Signed

The committers listed above are authorized under a signed CLA.

@eddieruan-alibaba
Copy link
Contributor Author

6) "fd00:201:201:fff1:11::,fd00:202:202:fff2:22::"
7) "seg_src"
8) "2064:100::1f,2064:100::1f"
```
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does fpmsyncd create NHGroup table based on PIC_CONTEXT_TABLE?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PIC_CONTEXT_TABLE is for VPN SID, not for TE/ Policy, which is discussed in https://github.com/eddieruan-alibaba/SONiC/blob/eruan-pic/doc/pic/bgp_pic_edge.md#high-level-design

In this case, the default state is DOWN. bfd notification would be used to update cpaths' state.

### Policy with endpoint
bfd packet would be constructed with SRv6 header which would go via both specified cpath and engpoint. The protection path would be via specified SID notes and the end point node. This protection would not cover link if the SID list is not hop by hop.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does it make use of h/w offloaded BFD?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Both software and hw offload, depending on BFD timer and scale.


### Policy without endpoint, a.ka. Color Only Policy

bfd packet would be constructed with SRv6 header which would go via the specified cpath.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hardware offloaded BFD with SRV6 header will require SAI BFD object changes.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes,the SAI changes has been merged.
opencomputeproject/SAI#1759

@BorisH2018
Copy link

Hi,
Eddie , here are few more comments additionally to those which I made on Thursday's call.

  1. Binding SID (BSID) is not ,mentioned at all in the HLD. RFC 9256 (SR Policy Architecture) 6.1 says: "Each candidate path MAY be defined with a BSID." So in forwarding plane BSID can be mapped into an another Segment List (NHG). IMO, this functionality is quite important. Will it be included in some later version?

  2. FRR SRv6 Policy Configuration section

  1. Add "ipv6-address" as segment type for segment list for SRv6. Currently, FRR CLI only has "mpls" and "nai" as the segment type.

May be would be better to say explicitly that Type B segment type (item 4. RFC 9256) is supported in FRR)?

  1. HLD mentions BFD, why can't we also use S-BFD?

  2. I also have not seen in configuration the discriminator of CP (2.5, RFC 9256). Is it in roadmap?

  3. Also to align with RFC 9256, would be better to mention that HLD currently focuses on explicit CPs.

  4. Forwarding information NHG's schema
    "Zebra maintains a SRv6 Policy NHG in two levels. The first level is for ECMP over multiple polices, and the second level is for ECMP over multiple candidate paths." -> It is not clear, why do we need ECMP over multiple policies? Do you mean a composite CP (2.2 RFC 9256) ? It is quite rare implementation case and would be good to clarify it. Also according to the configuration a 1st level of an ECMP is an ECMP over SLs.

Thank you.

SY,
Boris

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

Successfully merging this pull request may close these issues.

None yet

4 participants