-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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 uSID design for srv6orch #1034
Conversation
@zhangyanzhao @prsunny @venkatmahalingam Please take a look, we will be reviewing this HLD in SONiC community 7/19. Thanks |
SRv6 uSID (micro-segment) is extension of the SRv6 network programming model [SRv6 uSID instructions IETF draft](https://datatracker.ietf.org/doc/draft-filsfils-spring-net-pgm-extension-srv6-usid/). uSID is a compressed SID value which can be for example carried in 16-bits (unlike full IPv6 address to represent a SID). uSID as is designed scales well with much lower MTU overhead required per uSID carrier. uSID carrier is 128-bit IPv6 address that can carry upto 6 uSIDs [Refer to Example for more details] | ||
|
||
## Scope | ||
The scope of this document is to enhance orchagent to support uSID programming instructions in this IETF draft. Current SAI API definitions already support uSID instructions. No SAI API change required in scope of this document. Current version of routing protocols in SONiC does not support SRv6, it is not in the scope of this document to add such a support for FRR routing stack. |
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.
I think, currently we use FRR 8.1 version on SONiC which supports SRv6, any plan to use FRR stack for SRv6 feature?
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.
FRR SRv6 feature set currently has only END functions - and recently DT4 and DT6 were added, but headend functions were missing. Although integration has already been started by Ahmed in Cisco. We will have an update on this soon.
The scope of this document is to enhance orchagent to support uSID programming instructions in this IETF draft. Current SAI API definitions already support uSID instructions. No SAI API change required in scope of this document. Current version of routing protocols in SONiC does not support SRv6, it is not in the scope of this document to add such a support for FRR routing stack. | ||
|
||
## Design | ||
Current srv6orch is designed, per [SRv6 HLD](https://github.com/sonic-net/SONiC/blob/master/doc/srv6/srv6_hld.md), to support SRv6 programming instructions as described in RFC 8754 and RFC 8986. This design extends SRv6 Network Programming with a new type of SRv6 SID behaviors defined as uSID. |
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.
Is the uSID functionality natively supported in FRR or does it need to be upstreamed? what is the plan or is there any PR to be reviewed? please share if there is any PR for community to review.
## Design | ||
Current srv6orch is designed, per [SRv6 HLD](https://github.com/sonic-net/SONiC/blob/master/doc/srv6/srv6_hld.md), to support SRv6 programming instructions as described in RFC 8754 and RFC 8986. This design extends SRv6 Network Programming with a new type of SRv6 SID behaviors defined as uSID. | ||
|
||
SRv6 uSID fully leverages current SRv6 control-plane, without any change, as is implemented by srv6orch. |
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.
what is the plan for uSID integration with SONiC FRR? please share the roadmap.
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.
FRR SRv6 integration with SONiC is in progress. Here is the PR shared by Ahmed (https://netdevconf.info/0x16/). We will update soon about which SONiC release is targeted for this.
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.
https://github.com/cscarpitta/frr Updated the link. This is fork from FRR. in which the university of Rome team added the uSID feature on top.
doc/srv6/SRv6_uSID.md
Outdated
|
||
|
||
## Overview | ||
SRv6 uSID (micro-segment) is extension of the SRv6 network programming model [SRv6 uSID instructions IETF draft](https://datatracker.ietf.org/doc/draft-filsfils-spring-net-pgm-extension-srv6-usid/). uSID is a compressed SID value which can be for example carried in 16-bits (unlike full IPv6 address to represent a SID). uSID as is designed scales well with much lower MTU overhead required per uSID carrier. uSID carrier is 128-bit IPv6 address that can carry upto 6 uSIDs [Refer to Example for more details] |
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 like https://datatracker.ietf.org/doc/draft-filsfils-spring-net-pgm-extension-srv6-usid is not an IETF adopted draft yet and it is currently an individual draft under IETF spring WG, why would we need this in SONiC until it becomes IETF adopted draft?
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.
Indeed, the HLD should also point to the IETF draft draft-ietf-spring-srv6-srh-compression-02, which is IETF Working Group draft and standardizes it.
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.
Venkatesesan, also it might be interesting for you to listen to this presentation from MPLS World Congress if you have the time.
Alibaba: Full stack SRv6 towards a 'Predictable Network' - YouTube
Alibaba explains their plans to deploy SRv6, not only with commercial routers, but also with a SONiC based platform. This deployment is happening in early CY23, and hence throughout the next few months the community will work hard on the different missing components (e.g., FRR).
Thanks!!
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.
updated reference to both IETF drafts. Please review/approve accordingly.
Thanks,
@pcamaril Hi Pablo, Could you please complete the review please. Thanks. |
Hi. All changes look good to me. Thanks. |
@pcamaril Hi Pablo, thank you so much. Could you please use the review button option on the top right hand in this page to mark as review approved as this is required in the merge process. Thank you very much! |
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 to me!
@svshah-intel can you please help to add the code PRs by referring to #806 ? Thanks. |
done! |
Why I did it
Document that describes design and required changes to support SRv6 uSID (micro-segments) in SONiC
Description for the changelog
sonic-swss - sonic-net/sonic-swss#2335