SPRING | C. Filsfils, Ed. |
Internet-Draft | P. Camarillo, Ed. |
Intended status: Standards Track | Cisco Systems, Inc. |
Expires: November 19, 2020 | D. Cai |
Alibaba | |
D. Voyer | |
Bell Canada | |
I. Meilik | |
Broadcom | |
K. Patel | |
Arrcus, Inc. | |
W. Henderickx | |
Nokia | |
P. Jonnalagadda | |
Barefoot Networks | |
D. Melman | |
Marvell | |
Y. Liu | |
China Mobile | |
May 18, 2020 |
Network Programming extension: SRv6 uSID instruction
draft-filsfils-spring-net-pgm-extension-srv6-usid-05
The SRv6 "micro segment" (SRv6 uSID or uSID for short) instruction is a straightforward extension of the SRv6 Network Programming model:
This enables:
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."
This Internet-Draft will expire on November 19, 2020.
Copyright (c) 2020 IETF Trust and the persons identified as the document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License.
SRv6 Network Programming [I-D.ietf-spring-srv6-network-programming] defines a mechanism to build a network program with topological and service segments. It leverages the SRH [RFC8754] to encode a network program together with optional metadata shared among the different SIDs.
This draft extends SRv6 Network Programming with a new type of SRv6 SID behaviors: SRv6 uN, uA, uDT, uDX.
This extension fully leverages the SRv6 network programming solution:
This enables:
The SRv6 Network Programming and SRH terminology is leveraged and extended with the following terms:
Term | Definition |
---|---|
uSID block | A block of uSID's. It can be any IPv6 prefix available to the provider. In this note we will assume a /32 sub-allocated from a public block [I-D.matsushima-spring-srv6-deployment-status]. Other block length could be used. |
uSID | In this document a 16-bit ID. A different uSID length may be used. |
Active uSID | First uSID after the uSID block. |
Next uSID | Next uSID after the Active uSID. |
Last uSID | From left to right, the last uSID before the first End-of-Container uSID. |
End-of-Container | Reserved uSID used to mark the end of a uSID container. The value 0000 is selected as End-of-Container. All of the empty uSID container positions must be filled with the End-of-Container ID. Hence, the End-of-Container can be present more than once in a uSID container. |
uSID container | A 128bit SRv6 SID of format <uSID-Block><Active-uSID><Next-uSID>...<Last-uSID><End-of-Container>...<End-of-Container>. A uSID container can be encoded in the Destination Address of an IPv6 header or at any position in the Segment List of an SRH. |
For illustration simplicity, we will use:
GIB: The set of IDs available for global uSID allocation.
LIB: The set of IDs available for local uSID allocation.
A uSID from the GIB.
A Global uSID typically identifies a shortest-path to a node in the SR domain. An IP route (e.g., /48) is advertised by the parent node to each of its global uSID's, under the associated uSID block. The parent node executes a variant of the END behavior.
A node can have multiple global uSID's under the same uSID blocks (e.g. one per IGP flex-algorithm). Multiple nodes may share the same global uSID (anycast).
A uSID from the LIB.
A local uSID may identify a cross-connect to a direct neighbor over a specific interface or a VPN context.
No IP route is advertised by a parent node for its local uSID'.
If N1 and N2 are two different physical nodes of the uSID domain and I is a local uSID value, then N1 and N2 may bind two different behaviors to I.
Leveraging our reference illustration,
Another illustration could assume a 32-bit uSID length and a LIB restricted to the uSIDs with the first byte set to FF. In this context, the network as a whole would support 2^32-2^24 global uSID's (e.g. routers) while each router would support up to 2^24 local uSID's.
The SRv6 SRH encapsulation and its network programming model are extended with the following functions:
The uN behavior is a variant of the endpoint behavior. A uN behavior of Node D 2001:db8:0N00:: is defined by the following two FIB entries and pseudo-code:
2001:db8:0N00::/48 bound to the pseudocode shift-and-lookup: 1. Copy DA[48..127] into DA[32..111] ;; Ref1 2. Set DA[112..127] to 0x0000 3. Forward the packet to the new DA 2001:db8:0N00::/64 bound to the End behavior ;; Ref2
Ref 1: DA[X..Y] refers to the bits from position X to Y (included) in the IPv6 Destination Address of the received packet. The bit 0 is the MSB, while the bit 127 is the LSB.
Ref 2: This refers to the End behavior as defined in Section 4.1 of [I-D.ietf-spring-srv6-network-programming]. The End behavior may be combined with the PSP, USP and USD flavours.
In ISIS, a uN is advertised with the following information:
The uA local behavior is a variant of the SRv6 End.X behavior.
An instance of the uA SRv6 uSID behavior is associated with a set, J, of one or more Layer-3 adjacencies.
A uA behavior of Node D 2001:db8:FNAJ:: is defined by the following two FIB entries and pseudo-code:
2001:db8:FNAJ::/48 bound to the pseudocode shift-and-xconnect: 1. Copy DA[48..127] into DA[32..111] ;; Ref1 2. Set DA[112..127] to 0x0000 3. Forward to layer-3 adjacency J 2001:db8:FNAJ::/64 bound to the End.X behavior ;; Ref2
Ref 1: DA[X..Y] refers to the bits from position X to Y (included) in the IPv6 Destination Address of the received packet. The bit 0 is the MSB, while the bit 127 is the LSB.
Ref 2: This refers to the End.X behavior as defined in Section 4.1 of [I-D.ietf-spring-srv6-network-programming]. The End.X behavior may be combined with the PSP, USP and USD flavours.
In ISIS, a uA is advertised with the following information:
Note: From a formal viewpoint, a uA SID of node N is defined by the local FIB entry B:uA/48 of N (i.e. this definition is independent from any uN SID of node N). In order to signal in ISIS a container SID with the same routable semantics as End.X, the ISIS advertisement of a uA SID is done as uN+uA. uN provides the global route to the node like the End behavior. uA provides the cross-connect function like the "X" of the End.X.
A local uDT behavior of Node D 2001:db8:FNVT:: is defined by the following single FIB entry and pseudo-code:
2001:db8:FNVT::/64 bound to the same pseudocode as End.DT4/End.DT6/End.DT2*
In BGP, a uDT is advertised with the following information:
Note: the advertised SID value includes the uN SRv6 uSID of the parent.
A local uDX behavior of Node D 2001:db8:FNXJ:: is defined by the following single FIB entry and pseudo-code:
2001:db8:FNXJ::/64 bound to the same pseudocode as End.DX4/End.DX6/End.DX2
In BGP, a uDX is advertised with the following information:
Note: the advertised SID value includes the uN SRv6 uSID of the parent.
If Node 1 is configured with a uN SID 2001:db8:0100::/48 then the operator must ensure that Node 1 advertises 2001:db8:0100::/48 in the routing protocol.
The hardware and software platforms listed below have demonstrated support for the uN instruction defined in this document.
Further on, all these implementations have participated in a joint interoperability testing [NANOG78].
Hardware implementations (in alphabetical order):
Software open-source implementations (in alphabetical order):
The security rules defined in Section 7 of [I-D.ietf-spring-srv6-network-programming], protect intra-domain deployments that includes SRv6 uSID.
This document requests IANA to allocate the following codepoints within the "SRv6 Endpoint Behaviors" sub-registry under the top-level "Segment Routing Parameters" registry.
Value | Hex | Endpoint behavior | Reference |
---|---|---|---|
42 | 0x002A | uN | [This.ID] |
43 | 0x002B | uN (S&L+End) | [This.ID] |
44 | 0x002C | uN (S&L+End PSP) | [This.ID] |
45 | 0x002D | uN (S&L+End USP) | [This.ID] |
46 | 0x002E | uN (S&L+End PSP/USP) | [This.ID] |
47 | 0x002F | uN (S&L+End USD) | [This.ID] |
48 | 0x0030 | uN (S&L+End PSP/USD) | [This.ID] |
49 | 0x0031 | uN (S&L+End USP/USD) | [This.ID] |
50 | 0x0032 | uN (S&L+End PSP/USP/USD) | [This.ID] |
51 | 0x0033 | uA | [This.ID] |
52 | 0x0034 | uA (S&X+End.X) | [This.ID] |
53 | 0x0035 | uA (S&X+End.X PSP) | [This.ID] |
54 | 0x0036 | uA (S&X+End.X USP) | [This.ID] |
55 | 0x0037 | uA (S&X+End.X PSP/USP) | [This.ID] |
56 | 0x0038 | uA (S&X+End.X USD) | [This.ID] |
57 | 0x0039 | uA (S&X+End.X PSP/USD) | [This.ID] |
58 | 0x003A | uA (S&X+End.X USP/USD) | [This.ID] |
59 | 0x003B | uA (S&X+End.X PSP/USP/USD) | [This.ID] |
60 | 0x003C | uDX6 | [This.ID] |
61 | 0x003D | uDX4 | [This.ID] |
62 | 0x003E | uDT6 | [This.ID] |
63 | 0x003F | uDT4 | [This.ID] |
64 | 0x0040 | uDT46 | [This.ID] |
65 | 0x0041 | uDX2 | [This.ID] |
The authors would like to acknowledge Francois Clad, Peter Psenak, Ketan Talaulikar, Jakub Horn, Swadesh Agrawal, Zafar Ali, Darren Dukes, Kiran Sasidharan, Junaid Israr, Lakshmanan Srikanth, Asif Islam, Saleem Hafeez, Michael MacKenzie, Sushek Shekar, YuanChao Su, Alexander Preusche, Alberto Donzelli, Miya Kohno, David Smith, Ianik Semco, Bertrand Duvivier, Frederic Trate, Kris Michielsen, Eyal Dagan, Eli Stein, Ofer Iny, Elad Naor, Guy Caspari, Mel Tsai, Anand Sridharan, Aviad Behar, Joseph Chin.
Jisu Bhattacharyaa
Cisco Systems, Inc.
United States of America
Email: jisu@cisco.com
Kamran Raza
Cisco Systems, Inc.
Canada
Email: skraza@cisco.com
John Bettink
Cisco Systems, Inc.
United States of America
Email: jbettink@cisco.com
Tomonobu Niwa
KDDI
Japan
Email: to-niwa@kddi.com
Luay Jalil
Verizon
United States of America
Email: luay.jalil@one.verizon.com
Zhichun Jiang
Tencent
China
Email: zcjiang@tencent.com
Ahmed Shawky
Saudi Telecom Company
Saudi Arabia
Email: ashawky@stc.com.sa
Nic Leymann
Deutsche Telekom
Germany
Email: N.Leymann@telekom.de
Dirk Steinberg
Lapishills Consulting Limited
Cyprus
Email: dirk@lapishills.com
Shawn Zandi
LinkedIn
United States of America
Email: szandi@linkedin.com
Gaurav Dawra
LinkedIn
United States of America
Email: gdawra@linkedin.com
Jim Uttaro
AT&T
United States of America
Email: ju1738@att.com
Ning So
Reliance
United States of America
Email: Ning.So@ril.com
Michael Fiumano
Sprint
United States of America
Email: michael.f.fiumano@sprint.com
Mazen Khaddam
Cox
United States of America
Email: Mazen.Khaddam@cox.com
Jichun Ma
China Unicom
China
Email: majc16@chinaunicom.cn
Satoru Matsushima
Softbank
Japan
Email: satoru.matsushima@g.softbank.co.jp
Francis Ferguson
CenturyLink
United States of America
Email: Francis.Ferguson@centurylink.com
Takuya Miyasaka
KDDI
Japan
Email: ta-miyasaka@kddi.com
Kentaro Ebisawa
Toyota Motor Corporation
Japan
Email: ebisawa@toyota-tokyo.tech
Yukito Ueno
NTT Communications Corporation
Japan
Email: yukito.ueno@ntt.com
[I-D.ietf-spring-srv6-network-programming] | Filsfils, C., Camarillo, P., Leddy, J., Voyer, D., Matsushima, S. and Z. Li, "SRv6 Network Programming", Internet-Draft draft-ietf-spring-srv6-network-programming-15, March 2020. |
[RFC2119] | Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997. |
[RFC8174] | Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, May 2017. |
[RFC8754] | Filsfils, C., Dukes, D., Previdi, S., Leddy, J., Matsushima, S. and D. Voyer, "IPv6 Segment Routing Header (SRH)", RFC 8754, DOI 10.17487/RFC8754, March 2020. |
[I-D.ietf-bess-srv6-services] | Dawra, G., Filsfils, C., Raszuk, R., Decraene, B., Zhuang, S. and J. Rabadan, "SRv6 BGP based Overlay services", Internet-Draft draft-ietf-bess-srv6-services-02, February 2020. |
[I-D.ietf-lsr-isis-srv6-extensions] | Psenak, P., Filsfils, C., Bashandy, A., Decraene, B. and Z. Hu, "IS-IS Extension to Support Segment Routing over IPv6 Dataplane", Internet-Draft draft-ietf-lsr-isis-srv6-extensions-08, April 2020. |
[I-D.matsushima-spring-srv6-deployment-status] | Matsushima, S., Filsfils, C., Ali, Z., Li, Z. and K. Rajaraman, "SRv6 Implementation and Deployment Status", Internet-Draft draft-matsushima-spring-srv6-deployment-status-07, April 2020. |
[NANOG78] | Filsfils, C., "SRv6 Technology and Deployment Use-cases", NANOG78 , February 2020. |