From 216ee5d0b97da1a88502afcbc28bf3a4a0f15f01 Mon Sep 17 00:00:00 2001 From: Shitanshu Shah Date: Sun, 17 Jul 2022 08:24:36 -0700 Subject: [PATCH 1/2] SRv6 uSID design for srv6orch --- doc/srv6/SRv6_uSID.md | 112 ++++++++++++++++++++++++++ doc/srv6/images/SRv6_uSID_Example.png | Bin 0 -> 20866 bytes 2 files changed, 112 insertions(+) create mode 100755 doc/srv6/SRv6_uSID.md create mode 100755 doc/srv6/images/SRv6_uSID_Example.png diff --git a/doc/srv6/SRv6_uSID.md b/doc/srv6/SRv6_uSID.md new file mode 100755 index 0000000000..1c0a72cfd3 --- /dev/null +++ b/doc/srv6/SRv6_uSID.md @@ -0,0 +1,112 @@ +# SONiC uSID + +## Table of Content +- [Overview](#Overview) +- [Scope](#Scope) +- [Design](#Design) +- [Example](#Example) + +## Revision + +| Rev | Date | Author | Change Description | +| :--: | :-------: | :------------------------------: | :---------------------: | +| 0.1 | 7/17/2022 | Shitanshu Shah, Reshma Sudarshan | Initial version | + + +## 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] + +## 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. + +## 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. +Following uSID behaviors are added, +uN - uN behavior is implemented with PSP and USD flavor +uA - uA local behavior is implemented with PSP and USD flavor +uDT - uDT local behavior is implemented exactly same as that of End.DT4/End.DT6 +uDX - uDX local behavior is implemented exactly same as that of End.DX4/End.DX6 + +PSP and USD end behavior flavors are already supported by SAI API today. End.DT4/6 and End.DX4/6 end behaviors are supported by SAI APIs as well. Thus there is no additional change required in SAI to support uN, uA, uDT and uDX behaviors. + +Changes in orchagent, +- While processing MYSID entries, from SRV6_MY_SID_TABLE off of APPDB, handling of new actions uN, uA, uDT and uDX added in srv6orch. No APPDB schema changes required. +- SAI end behavior and end behavior flavor are determined, before calling SAI APIs, to program MYSID entries + +```text +const map end_behavior_map = +{ + {"end", SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_E}, + {"end.x", SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_X}, + {"end.t", SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_T}, + {"end.dx6", SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_DX6}, + {"end.dx4", SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_DX4}, + {"end.dt4", SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_DT4}, + {"end.dt6", SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_DT6}, + {"end.dt46", SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_DT46}, + {"end.b6.encaps", SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_B6_ENCAPS}, + {"end.b6.encaps.red", SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_B6_ENCAPS_RED}, + {"end.b6.insert", SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_B6_INSERT}, + {"end.b6.insert.red", SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_B6_INSERT_RED}, ++ {"udx6", SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_DX6}, ++ {"udx4", SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_DX4}, ++ {"udt6", SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_DT6}, ++ {"udt4", SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_DT4}, ++ {"udt46", SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_DT46}, ++ {"un", SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_UN}, ++ {"ua", SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_UA} +}; + +const map end_flavor_map = +{ + {"end", SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_FLAVOR_PSP_AND_USD}, + {"end.x", SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_FLAVOR_PSP_AND_USD}, + {"end.t", SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_FLAVOR_PSP_AND_USD}, ++ {"un", SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_FLAVOR_PSP_AND_USD}, ++ {"ua", SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_FLAVOR_PSP_AND_USD} +}; +``` + +## Example +uSID carrier is 128-bit IPv6 address which is specified in following format: +```text +...[...] +``` +- uSID Block: An IPv6 prefix (defines a block of SRv6 uSIDs) +- Active uSID: The first uSID +- Next uSID: The next uSID after the Active uSID. +- Last uSID: The last uSID in the carrier before the End-of-Carrier +- End-of-Carrier: A globally reserved uSID that marks the end of a uSID list. The End-of-Carrier ID is 0000. As may End-of-Carriers as required to complete full 128-bits IPv6 address + +![](images/SRv6_uSID_Example.png) + +- uSID block: 2001:41f0 +- Active uSID: 0100 +- Next uSID: 0200 +- Last uSID: 0A00 +- 2 End-of-Carriers (0000) to complete full 128-bits IPv6 address + +A node with local uSID of 2001:41f0:0100 is to be programmed with following SRV6_MY_SID_TABLE entry, with appropriate uSID end behavior. Following shown two separate examples with 2 different end behaviors. + +```text +Note: prefix of "16:8:8:8" is (locator_block_len:locator_node_len:function_len:args_len) as is currently consumed by srv6orch. + +If end-behavior "un" +"SRV6_MY_SID_TABLE" : { + "16:8:8:8:2001:41f0:0100::" : { + "action": "un", + } +} + +If end-behavior is "udt46" +"SRV6_MY_SID_TABLE" : { + "16:8:8:8:2001:41f0:0100::" : { + "action": "udt46", + "vrf": "VRF-1001" + } +} + +A node with local uSID of 2001:41f0:0200 is to be programmed with appropriate uSID end behavior, similarly for node with 2001:41f0:0500, and for node with 2001:41f0:0A00 +``` diff --git a/doc/srv6/images/SRv6_uSID_Example.png b/doc/srv6/images/SRv6_uSID_Example.png new file mode 100755 index 0000000000000000000000000000000000000000..3885802945ed1429e2c8e4d99c61dc4365859185 GIT binary patch literal 20866 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 +C z)o_P^II%^R%}}S@XHC_EkT)fq5d%LjyEE?!UJ>+pbhwa|6IHyA($?&bM~njLCXYUa zZ-tFPtBl}SGL1*QRNzb6fbrX%qW}BhUmTadK_-H3WIn;V!{ZE*j23$Qs#`Z;lkBYK z2E<7APebx|#x>o2JZ58mnzeengyvFG1=?=!!%5p_&<%(BE@5Kkp%YzP&@G|1igm&> zp!K~9gj`Un^~J;-5w$4WM{N2Rqs%%TuxsnGtF$Hb`ob>HqcAJL(dhb0%C{Jq03L80 zQ3g1qaPwV-TTB{p`WMSRgxdR*j(~v;NfK7J=x%zb%=;1Z7LQpr=NS|h@W`L*9k&4| zfaY%dh}W3&9ggGb`;Sbnx&oUwe+$v}k|R(4!-c6w>>K{{fRf2Yn{{7I)0zm8rr zXTjc25D&_Bc~;s%sFx5e9o^LjnoFmF)PqiFUu}|EfMd2kb)uDo* zgIQ4V{_#Hga9M#op%kVm1Xdh@>tWRcSw){* z1ho;>UlO%?pDy87A24OSh~YgHYSs*&^f`EbFVbKz*9Hhem<>}*X8Fxk4)W7bMJ%y@ZD_+|HM%Lhb_fx6tP6vI*b3noVK~QBFOgq)pLbs-0%MzCfGcq literal 0 HcmV?d00001 From 0cf85dd1996a0bc029c1f1928239955b35df9e41 Mon Sep 17 00:00:00 2001 From: Shitanshu Shah Date: Sun, 24 Jul 2022 23:35:13 -0700 Subject: [PATCH 2/2] updated reference to IETF draft --- doc/srv6/SRv6_uSID.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/doc/srv6/SRv6_uSID.md b/doc/srv6/SRv6_uSID.md index 1c0a72cfd3..c951a17577 100755 --- a/doc/srv6/SRv6_uSID.md +++ b/doc/srv6/SRv6_uSID.md @@ -8,13 +8,13 @@ ## Revision -| Rev | Date | Author | Change Description | -| :--: | :-------: | :------------------------------: | :---------------------: | -| 0.1 | 7/17/2022 | Shitanshu Shah, Reshma Sudarshan | Initial version | - +| Rev | Date | Author | Change Description | +| :--: | :-------: | :------------------------------: | :--------------------------: | +| 0.1 | 7/17/2022 | Shitanshu Shah, Reshma Sudarshan | Initial version | +| 0.2 | 7/24/2022 | Shitanshu Shah, Reshma Sudarshan | Incorporate review comments | ## 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] +SRv6 uSID (micro-segment) is extension of the SRv6 network programming model, refer to IETF drafts [Compressed SRv6 Segment List Encoding]( draft-ietf-spring-srv6-srh-compression-02) and [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. @@ -78,7 +78,7 @@ uSID carrier is 128-bit IPv6 address which is specified in following format: - Active uSID: The first uSID - Next uSID: The next uSID after the Active uSID. - Last uSID: The last uSID in the carrier before the End-of-Carrier -- End-of-Carrier: A globally reserved uSID that marks the end of a uSID list. The End-of-Carrier ID is 0000. As may End-of-Carriers as required to complete full 128-bits IPv6 address +- End-of-Carrier: A globally reserved uSID that marks the end of a uSID list. The End-of-Carrier ID is 0000. As many End-of-Carriers as required to complete full 128-bits IPv6 address ![](images/SRv6_uSID_Example.png)