Inter-Domain Routing G. Dawra Internet-Draft LinkedIn Intended status: Standards Track C. Filsfils Expires: May 5, 2021 K. Talaulikar, Ed. Cisco Systems M. Chen Huawei D. Bernier Bell Canada B. Decraene Orange November 1, 2020 BGP Link State Extensions for SRv6 draft-ietf-idr-bgpls-srv6-ext-04 Abstract Segment Routing IPv6 (SRv6) allows for a flexible definition of end- to-end paths within various topologies by encoding paths as sequences of topological or functional sub-paths, called "segments". These segments are advertised by the various protocols such as BGP, ISIS and OSPFv3. BGP Link-state (BGP-LS) address-family solution for SRv6 is similar to BGP-LS for SR for MPLS dataplane. This draft defines extensions to the BGP-LS to advertise SRv6 Segments along with their behaviors and other attributes via BGP. Status of This Memo 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 May 5, 2021. Dawra, et al. Expires May 5, 2021 [Page 1] Internet-Draft BGP-LS Extensions for SRv6 November 2020 Copyright Notice 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. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 3 2. BGP-LS Extensions for SRv6 . . . . . . . . . . . . . . . . . 4 3. SRv6 Node Attributes . . . . . . . . . . . . . . . . . . . . 5 3.1. SRv6 Capabilities TLV . . . . . . . . . . . . . . . . . . 5 3.2. SRv6 Node MSD Types . . . . . . . . . . . . . . . . . . . 6 4. SRv6 Link Attributes . . . . . . . . . . . . . . . . . . . . 7 4.1. SRv6 End.X SID TLV . . . . . . . . . . . . . . . . . . . 7 4.2. SRv6 LAN End.X SID TLV . . . . . . . . . . . . . . . . . 9 4.3. SRv6 Link MSD Types . . . . . . . . . . . . . . . . . . . 11 5. SRv6 Prefix Attributes . . . . . . . . . . . . . . . . . . . 11 5.1. SRv6 Locator TLV . . . . . . . . . . . . . . . . . . . . 11 6. SRv6 SID NLRI . . . . . . . . . . . . . . . . . . . . . . . . 13 6.1. SRv6 SID Information TLV . . . . . . . . . . . . . . . . 14 7. SRv6 SID Attributes . . . . . . . . . . . . . . . . . . . . . 15 7.1. SRv6 Endpoint Behavior TLV . . . . . . . . . . . . . . . 15 7.2. SRv6 BGP Peer Node SID TLV . . . . . . . . . . . . . . . 16 8. SRv6 SID Structure TLV . . . . . . . . . . . . . . . . . . . 18 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 19 9.1. BGP-LS NLRI-Types . . . . . . . . . . . . . . . . . . . . 19 9.2. BGP-LS TLVs . . . . . . . . . . . . . . . . . . . . . . . 19 10. Manageability Considerations . . . . . . . . . . . . . . . . 19 11. Operational Considerations . . . . . . . . . . . . . . . . . 20 11.1. Operations . . . . . . . . . . . . . . . . . . . . . . . 20 12. Security Considerations . . . . . . . . . . . . . . . . . . . 20 13. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 20 14. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 20 15. References . . . . . . . . . . . . . . . . . . . . . . . . . 21 15.1. Normative References . . . . . . . . . . . . . . . . . . 21 15.2. Informative References . . . . . . . . . . . . . . . . . 22 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 23 Dawra, et al. Expires May 5, 2021 [Page 2] Internet-Draft BGP-LS Extensions for SRv6 November 2020 1. Introduction SRv6 refers to Segment Routing instantiated on the IPv6 dataplane [RFC8402]. Segment Identifier (SID) is often used as a shorter reference for "SRv6 Segment". The network programming paradigm [I-D.ietf-spring-srv6-network-programming] is central to SRv6. It describes how different behaviors can be bound to SIDs and how a network program can be expressed as a combination of SIDs. An SRv6-capable node N maintains all the SRv6 segments explicitly instantiated at node N. The IS-IS [I-D.ietf-lsr-isis-srv6-extensions] and OSPFv3 [I-D.ietf-lsr-ospfv3-srv6-extensions] link-state routing protocols have been extended to advertise some of these SRv6 SIDs and SRv6-related information. BGP ([I-D.ietf-bess-srv6-services]) has been extended to advertise some of these SRv6 SIDs for VPN services. Certain other SRv6 SIDs may be instantiated on a node via other mechanisms for topological or service functionalities. The advertisement of SR related information along with the topology for the MPLS dataplane instantiation is specified in [I-D.ietf-idr-bgp-ls-segment-routing-ext] and for the BGP Egress Peer Engineering (EPE) is specified in [I-D.ietf-idr-bgpls-segment-routing-epe]. On the similar lines, introducing the SRv6 related information in BGP-LS allows consumer applications that require topological visibility to also receive the SRv6 SIDs from nodes across a domain or even across Autonomous Systems (AS), as required. This allows applications to leverage the SRv6 capabilities for network programming. The identifying key of each Link-State object, namely a node, link, or prefix, is encoded in the NLRI and the properties of the object are encoded in the BGP-LS Attribute [RFC7752]. This document describes extensions to BGP-LS to advertise the SRv6 SIDs and other SRv6 information from all the SRv6 capable nodes in the domain when sourced from link-state routing protocols and directly from individual SRv6 capable nodes when sourced from BGP. 1.1. Requirements Language 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 Dawra, et al. Expires May 5, 2021 [Page 3] Internet-Draft BGP-LS Extensions for SRv6 November 2020 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here. 2. BGP-LS Extensions for SRv6 BGP-LS[RFC7752] defines the BGP Node, Link and Prefix attributes. All non-VPN link, node, and prefix information SHALL be encoded using AFI 16388 / SAFI 71. VPN link, node, and prefix information SHALL be encoded using AFI 16388 / SAFI 72. The SRv6 information pertaining to a node is advertised via the BGP- LS Node NLRI and using the BGP-LS Attribute TLVs as follows: o SRv6 Capabilities of the node is advertised via SRv6 Capabilities TLV o MSD types introduced for SRv6 are advertised as sub-TLVs of the Node MSD TLV specified in [I-D.ietf-idr-bgp-ls-segment-routing-msd]. o Algorithm support for SRv6 is advertised via the SR Algorithm TLV specified in [I-D.ietf-idr-bgp-ls-segment-routing-ext]. The SRv6 information pertaining to a link is advertised via the BGP- LS Link NLRI and using the BGP-LS Attribute TLVs as follows: o SRv6 End.X SID of the link state routing adjacency or the BGP EPE Peer Adjacency is advertised via SRv6 End.X SID TLV introduced in this document o SRv6 LAN End.X SID of the link state routing adjacency to a non- DR/DIS router is advertised via SRv6 LAN End.X SID TLV introduced in this document o MSD types introduced for SRv6 are advertised as sub-TLVs of the Link MSD TLV specified in [I-D.ietf-idr-bgp-ls-segment-routing-msd]. The SRv6 information pertaining to a prefix is advertised via the BGP-LS Prefix NLRI and using the BGP-LS Attribute TLVs as follows: o SRv6 Locator is advertised via SRv6 Locator TLV introduced in this document o The attributes of the SRv6 Locator are advertised via the Prefix Attribute Flags TLV specified in [I-D.ietf-idr-bgp-ls-segment-routing-ext]. Dawra, et al. Expires May 5, 2021 [Page 4] Internet-Draft BGP-LS Extensions for SRv6 November 2020 The SRv6 SIDs associated with the node are advertised as a BGP-LS SRv6 SID NLRI introduced in this document. This enables the BGP-LS encoding to scale to cover a potentially large set of SRv6 SIDs instantiated on a node with the granularity of individual SIDs and without affecting the size and scalability of the BGP-LS updates. BGP-LS Attribute TLVs for the SRv6 SID NLRI are introduced in this document as follows: o The endpoint behavior of the SRv6 SID is advertised via SRv6 Endpoint Behavior TLV o The BGP EPE Peer Node and Peer Set SID context is advertised via SRv6 BGP EPE Peer Node SID TLV When the BGP-LS router is advertising topology information that it sources from the underlying link-state routing protocol, then it maps the corresponding SRv6 information from the SRv6 extensions for IS-IS [I-D.ietf-lsr-isis-srv6-extensions] and OSPFv3 [I-D.ietf-lsr-ospfv3-srv6-extensions] protocols to their BGP-LS TLVs/ sub-TLVs for all SRv6 capable nodes in that routing protocol domain. When the BGP-LS router is advertising topology information from the BGP routing protocol [I-D.ietf-idr-bgpls-segment-routing-epe], then it advertises the SRv6 information from the local node alone (e.g. BGP EPE topology information or in the case of a data center network running BGP as the only routing protocol). Subsequent sections of this document specify the encoding and usage of these extensions. 3. SRv6 Node Attributes SRv6 attributes of a node are advertised using the BGP-LS Attribute TLVs defined in this section and associated with the BGP-LS Node NLRI. 3.1. SRv6 Capabilities TLV This BGP-LS Attribute TLV is used to announce the SRv6 capabilities of the node along with the BGP-LS Node NLRI and indicates the SRv6 support by the node. A single instance of this TLV MUST be included in the BGP-LS attribute for each SRv6 capable node. This TLV maps to the SRv6 Capabilities sub-TLV and the SRv6 Capabilities TLV of the IS-IS and OSPFv3 protocol SRv6 extensions respectively. Dawra, et al. Expires May 5, 2021 [Page 5] Internet-Draft BGP-LS Extensions for SRv6 November 2020 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Flags | Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 1: SRv6 Capabilities TLV Format Where: o Type: 2 octet field with value 1038 o Length : 2 octet field with value set to 4. o Flags: 2 octet field. The following flags are defined: 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |O| | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 2: SRv6 Capability TLV Flags Format * O-flag: If set, then router is capable of supporting SRH O-bit Flags, as specified in [I-D.ietf-6man-spring-srv6-oam]. o Reserved: 2 octet that SHOULD be set to 0 and MUST be ignored on receipt. 3.2. SRv6 Node MSD Types The Node MSD TLV [I-D.ietf-idr-bgp-ls-segment-routing-msd] of the BGP-LS Attribute of the Node NLRI is also used to advertise the limits and the supported Segment Routing Header (SRH) [RFC8754] operations supported by the SRv6 capable node. The SRv6 MSD Types specified in section 4 of [I-D.ietf-lsr-isis-srv6-extensions] are also used with the BGP-LS Node MSD TLV as these codepoints are shared between IS-IS, OSPF and BGP-LS protocols. The description and semantics of these new MSD types for BGP-LS are identical as specified [I-D.ietf-lsr-isis-srv6-extensions]. Each MSD type is encoded as a one octet type followed by a one octet value. Dawra, et al. Expires May 5, 2021 [Page 6] Internet-Draft BGP-LS Extensions for SRv6 November 2020 4. SRv6 Link Attributes SRv6 attributes and SIDs associated with a link or adjacency are advertised using the BGP-LS Attribute TLVs defined in this section and associated with the BGP-LS Link NLRI. 4.1. SRv6 End.X SID TLV The SRv6 End.X SID TLV is used to advertise the SRv6 End.X SIDs that correspond to a point-to-point or point-to-multipoint link or adjacency of the local node for IS-IS and OSPFv3 protocols. This TLV can also be used to advertise the End.X SRv6 SID corresponding to the underlying layer-2 member links for a layer-3 bundle interface using L2 Bundle Member Attribute TLV as specified in [I-D.ietf-idr-bgp-ls-segment-routing-ext] . For the nodes running BGP routing protocol, this TLV is used to advertise the BGP EPE Peer Adjacency SID for SRv6 on the same lines as specified for SR/MPLS in [I-D.ietf-idr-bgpls-segment-routing-epe]. The SRv6 End.X SID for the BGP Peer Adjacency indicates the cross- connect to a specific layer-3 link to the specific BGP session peer (neighbor). The TLV has the following format: 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Endpoint Behavior | Flags | Algorithm | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Weight | Reserved | SID (16 octets) ... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ SID (cont ...) +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ SID (cont ...) +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ SID (cont ...) +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ SID (cont ...) | Sub-TLVs (variable) . . . +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 3: SRv6 End.X TLV Format Where: Dawra, et al. Expires May 5, 2021 [Page 7] Internet-Draft BGP-LS Extensions for SRv6 November 2020 Type: 2 octet field with value 1106 Length: 2 octet field with the total length of the value portion of the TLV. Endpoint Behavior: 2 octet field. The Endpoint Behavior code point for this SRv6 SID as defined in section 9.2 of [I-D.ietf-spring-srv6-network-programming]. Flags: 1 octet of flags with the following definition: 0 1 2 3 4 5 6 7 +-+-+-+-+-+-+-+-+ |B|S|P| Rsvd | +-+-+-+-+-+-+-+-+ Figure 4: SRv6 End.X SID TLV Flags Format * B-Flag: Backup Flag. If set, the SID is eligible for protection (e.g. using IPFRR) as described in [RFC8355]. * S-Flag: Set Flag. When set, the S-Flag indicates that the SID refers to a set of adjacencies (and therefore MAY be assigned to other adjacencies as well). * P-Flag: Persistent Flag: When set, the P-Flag indicates that the SID is persistently allocated, i.e., the value remains consistent across router restart and/or interface flap. * Rsvd bits: Reserved for future use and MUST be zero when originated and ignored when received. Algorithm: 1 octet field. Algorithm associated with the SID. Algorithm values are defined in the IGP Algorithm Type registry. Weight: 1 octet field. The value represents the weight of the SID for the purpose of load balancing. The use of the weight is defined in [RFC8402]. Reserved: 1 octet field that SHOULD be set to 0 and MUST be ignored on receipt. SID: 16 octet field. This field encodes the advertised SRv6 SID as 128 bit value. Sub-TLVs : Used to advertise sub-TLVs that provide additional attributes for the given SRv6 End.X SID. Dawra, et al. Expires May 5, 2021 [Page 8] Internet-Draft BGP-LS Extensions for SRv6 November 2020 4.2. SRv6 LAN End.X SID TLV For a LAN interface, normally a node only announces its adjacency to the IS-IS pseudo-node (or the equivalent OSPF Designated Router). The SRv6 LAN End.X SID TLV allows a node to announce SRv6 SID corresponding to behaviors like END.X for its adjacencies to all other (i.e. non-DIS or non-DR) nodes attached to the LAN in a single instance of the BGP-LS Link NLRI. Without this TLV, the corresponding BGP-LS link NLRI would need to be originated for each additional adjacency in order to advertise the SRv6 End.X SID TLVs for these neighbor adjacencies. The IS-IS and OSPFv3 SRv6 LAN End.X SID TLVs have the following format: 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Endpoint Behavior | Flags | Algorithm | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Weight | Reserved | ISIS System-ID (6 octets) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | or OSPFv3 Router-ID (4 octets) of the neighbor | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SID (16 octets) ... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ SID (cont ...) +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ SID (cont ...) +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ SID (cont ...) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Sub-TLVs (variable) . . . +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 5: SRv6 LAN End.X SID TLV Format Where: o Type: 2 octet field with value 1107 in case of IS-IS and 1108 in case of OSPFv3 o Length: 2 octet field with the total length of the value portion of the TLV. Dawra, et al. Expires May 5, 2021 [Page 9] Internet-Draft BGP-LS Extensions for SRv6 November 2020 o Endpoint Behavior: 2 octet field. The Endpoint Behavior code point for this SRv6 SID as defined in section 9.2 of [I-D.ietf-spring-srv6-network-programming]. o Flags: 1 octet of flags with the following definition: 0 1 2 3 4 5 6 7 +-+-+-+-+-+-+-+-+ |B|S|P| Rsvd | +-+-+-+-+-+-+-+-+ Figure 6: SRv6 LAN End.X SID TLV Flags Format * B-Flag: Backup Flag. If set, the SID is eligible for protection (e.g. using IPFRR) as described in [RFC8355]. * S-Flag: Set Flag. When set, the S-Flag indicates that the SID refers to a set of adjacencies (and therefore MAY be assigned to other adjacencies as well). * P-Flag: Persistent Flag: When set, the P-Flag indicates that the SID is persistently allocated, i.e., the value remains consistent across router restart and/or interface flap. * Rsvd bits: Reserved for future use and MUST be zero when originated and ignored when received. o Algorithm: 1 octet field. Algorithm associated with the SID. Algorithm values are defined in the IGP Algorithm Type registry. o Weight: 1 octet field. The value represents the weight of the SID for the purpose of load balancing. The use of the weight is defined in [RFC8402]. o Reserved: 1 octet field that SHOULD be set to 0 and MUST be ignored on receipt. o Neighbor ID : 6 octets of ISIS System ID of the neighbor for the ISIS SRv6 LAN End.X SID TLV and 4 octets of OSPFv3 Router-id of the neighbor for the OSPFv3 SRv6 LAN End.X SID TLV. o SID: 16 octet field. This field encodes the advertised SRv6 SID as 128 bit value. o Sub-TLVs : Used to advertise sub-TLVs that provide additional attributes for the given SRv6 LAN End.X SID. Dawra, et al. Expires May 5, 2021 [Page 10] Internet-Draft BGP-LS Extensions for SRv6 November 2020 4.3. SRv6 Link MSD Types The Link MSD TLV [I-D.ietf-idr-bgp-ls-segment-routing-msd] of the BGP-LS Attribute of the Link NLRI is also used to advertise the limits and the supported Segment Routing Header (SRH) operations supported on the specific link by the SRv6 capable node. The SRv6 MSD Types specified in section 4 of[I-D.ietf-lsr-isis-srv6-extensions] are also used with the BGP-LS Link MSD TLV as these codepoints are shared between IS-IS, OSPF and BGP-LS protocols. The description and semantics of these new MSD types for BGP-LS are identical as specified [I-D.ietf-lsr-isis-srv6-extensions]. Each MSD type is encoded as a one octet type followed by a one octet value. 5. SRv6 Prefix Attributes SRv6 attributes with an IPv6 prefix are advertised using the new BGP- LS Attribute TLVs defined in this section and associated with the BGP-LS Prefix NLRI. 5.1. SRv6 Locator TLV As described in [I-D.ietf-spring-srv6-network-programming], an SRv6 SID is 128 bits and comprises of Locator, Function and Argument parts. A node is provisioned with one or more locators supported by that node. Locators are covering prefixes for the set of SIDs provisioned on that node. These Locators are advertised as BGP-LS Prefix NLRI objects along with the SRv6 Locator TLV in its BGP-LS Attribute. The IPv6 Prefix matching the Locator MAY be also advertised as a prefix reachability by the underlying routing protocol. In this case, the Prefix NLRI would be also associated with the Prefix Metric TLV that carries the routing metric for this prefix. When the Locator prefix is not being advertised as a prefix reachability, then the Prefix NLRI would have the SRv6 Locator TLV associated with it but no Prefix Metric TLV. In the absence of Prefix Metric TLV, the consumer of the BGP-LS topology information MUST NOT interpret the Locator prefix as a prefix reachability routing advertisement. The SRv6 Locator TLV has the following format: Dawra, et al. Expires May 5, 2021 [Page 11] Internet-Draft BGP-LS Extensions for SRv6 November 2020 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Flags | Algorithm | Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Metric | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Sub-TLVs (variable) . . . +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 7: SRv6 Locator TLV Format Where: Type: 2 octet field with value 1162 Length: 2 octet field with the total length of the value portion of the TLV. Flags: 1 octet of flags with the following definition: 0 1 2 3 4 5 6 7 +-+-+-+-+-+-+-+-+ |D| Reserved | +-+-+-+-+-+-+-+-+ Figure 8: SRv6 Locator TLV Flags Format * D-Flag: Indicates that the locator has been leaked into the IGP domain when set. IS-IS operations for this are discussed in [I-D.ietf-lsr-isis-srv6-extensions]. * Reserved bits: Reserved for future use and MUST be zero when originated and ignored when received. Algorithm: 1 octet field. Algorithm associated with the SID. Algorithm values are defined in the IGP Algorithm Type registry. Reserved: 2 octet field. The value MUST be zero when originated and ignored when received. Metric: 4 octet field. The value of the metric for the Locator. Dawra, et al. Expires May 5, 2021 [Page 12] Internet-Draft BGP-LS Extensions for SRv6 November 2020 Sub-TLVs : currently none defined. Used to advertise sub-TLVs that provide additional attributes for the given SRv6 Locator. 6. SRv6 SID NLRI SRv6 SID information is advertised in BGP UPDATE messages using the MP_REACH_NLRI and MP_UNREACH_NLRI attributes [RFC4760]. The "Link- State NLRI" defined in [RFC7752] is extended to carry the SRv6 SID information. A new "Link-State NLRI Type" is defined for SRv6 SID information as following: o Link-State NLRI Type: SRv6 SID NLRI value 6. The format of this new NLRI type is as shown in the following figure: 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+ | Protocol-ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Identifier | | (64 bits) | ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| | Local Node Descriptors (variable) // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SRv6 SID Descriptors (variable) // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 9: SRv6 SID NLRI Format Where: o Protocol-ID: 1 octet field that specifies the protocol component through which BGP-LS learns the SRv6 SIDs of the node. The following Protocol-IDs apply to the SRv6 SID NLRI: Dawra, et al. Expires May 5, 2021 [Page 13] Internet-Draft BGP-LS Extensions for SRv6 November 2020 +-------------+----------------------------------+ | Protocol-ID | NLRI information source protocol | +-------------+----------------------------------+ | 1 | IS-IS Level 1 | | 2 | IS-IS Level 2 | | 4 | Direct | | 5 | Static configuration | | 6 | OSPFv3 | | 7 | BGP | +-------------+----------------------------------+ Figure 10: Protocol IDs for SRv6 SID NLRI o Identifier: 8 octet value as defined in [RFC7752]. o Local Node Descriptors TLV: as defined in [RFC7752] for IGPs, local and static configuration and as defined in [I-D.ietf-idr-bgpls-segment-routing-epe] for BGP protocol. o SRv6 SID Descriptors: MUST include a single SRv6 SID Information TLV defined in Section 6.1 and optionally MAY include the Multi- Topology Identifier TLV as defined in [RFC7752]. New TLVs carried in the BGP Link State Attribute defined in [RFC7752] are also defined in order to carry the attributes of a SRv6 SID in Section 7. 6.1. SRv6 SID Information TLV A SRv6 SID is a 128 bit value [I-D.ietf-spring-srv6-network-programming] and is encoded using the SRv6 SID Information TLV. The TLV has the following format: Dawra, et al. Expires May 5, 2021 [Page 14] Internet-Draft BGP-LS Extensions for SRv6 November 2020 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SID (16 octets) ... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ SID (cont ...) +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ SID (cont ...) +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ SID (cont ...) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 11: SRv6 SID Information TLV Format Where: Type: 2 octet field with value 518 Length: 2 octet field with value set to 16. SID: 16 octet field. This field encodes the advertised SRv6 SID as 128 bit value. 7. SRv6 SID Attributes This section specifies the new TLVs to be carried in the BGP Link State Attribute associated with the BGP-LS SRv6 SID NLRI. 7.1. SRv6 Endpoint Behavior TLV Each SRv6 SID instantiated on an SRv6 capable node has a specific instruction bound to it. A set of well-known behaviors that can be associated with a SID are defined in [I-D.ietf-spring-srv6-network-programming]. The SRv6 Endpoint Behavior TLV is a mandatory TLV that MUST be included in the BGP-LS Attribute associated with the BGP-LS SRv6 SID NLRI. The TLV has the following format: Dawra, et al. Expires May 5, 2021 [Page 15] Internet-Draft BGP-LS Extensions for SRv6 November 2020 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Endpoint Behavior | Flags | Algorithm | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 12: SRv6 Endpoint Behavior TLV Where: Type: 2 octet field with value 1250 Length: 2 octet field with the value 4. Endpoint Behavior: 2 octet field. The Endpoint Behavior code point for this SRv6 SID as defined in section 9.2 of [I-D.ietf-spring-srv6-network-programming]. Flags: 1 octet of flags with the none defined currently. Reserved for future use and MUST be zero when originated and ignored when received. Algorithm: 1 octet field. Algorithm associated with the SID. Algorithm values are defined in the IGP Algorithm Type registry. 7.2. SRv6 BGP Peer Node SID TLV The BGP Peer Node SID and Peer Set SID for SR with MPLS dataplane are specified in [I-D.ietf-idr-bgpls-segment-routing-epe]. The similar Peer Node and Peer Set functionality can be realized with SRv6 using the END.X behavior. The SRv6 BGP Peer Node SID TLV is an optional TLV for use in the BGP-LS Attribute for an SRv6 SID NLRI corresponding to BGP protocol. This TLV MUST be included along with SRv6 End.X SID that is associated with the BGP Peer Node or Peer Set functionality. The TLV has the following format: Dawra, et al. Expires May 5, 2021 [Page 16] Internet-Draft BGP-LS Extensions for SRv6 November 2020 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Flags | Weight | Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Peer AS Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Peer BGP Identifier | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 13: SRv6 BGP Peer Node SID TLV Format Where: o Type: 2 octet field with value 1251 o Length: 2 octet field with the value 12. o Flags: 1 octet of flags with the following definition: 0 1 2 3 4 5 6 7 +-+-+-+-+-+-+-+-+ |B|S|P| Rsvd | +-+-+-+-+-+-+-+-+ Figure 14: SRv6 BGP Peer End.X SID TLV Flags Format * B-Flag: Backup Flag. If set, the SID is eligible for protection (e.g. using IPFRR) as described in [RFC8355]. * S-Flag: Set Flag. When set, the S-Flag indicates that the SID refers to a set of BGP peering sessions (i.e. BGP Peer Set SID functionality) and therefore MAY be assigned to one or more End.X SIDs associated with BGP peer sessions. * P-Flag: Persistent Flag: When set, the P-Flag indicates that the SID is persistently allocated, i.e., the value remains consistent across router restart and/or session flap. * Rsvd bits: Reserved for future use and MUST be zero when originated and ignored when received. Dawra, et al. Expires May 5, 2021 [Page 17] Internet-Draft BGP-LS Extensions for SRv6 November 2020 o Weight: 1 octet field. The value represents the weight of the SID for the purpose of load balancing. The use of the weight is defined in [RFC8402]. o Peer AS Number : 4 octets of BGP AS number of the peer router. o Peer BGP Identifier : 4 octets of the BGP Identifier (BGP Router- ID) of the peer router. For a SRv6 BGP EPE Peer Node SID, one instance of this TLV is associated with the SRv6 SID. For SRv6 BGP EPE Peer Set SID, multiple instances of this TLV (one for each peer in the "peer set") are associated with the SRv6 SID and the S (set/group) flag is SET. 8. SRv6 SID Structure TLV SRv6 SID Structure TLV is used to advertise the length of each individual part of the SRv6 SID as defined in [I-D.ietf-spring-srv6-network-programming]. It is an optional TLV for use in the BGP-LS Attribute for an SRv6 SID NLRI and as an optional sub-TLV of the SRv6 End.X, IS-IS SRv6 LAN End.X and OSPFv3 SRv6 LAN End.X TLVs. The TLV has the following format: 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | LB Length | LN Length | Fun. Length | Arg. Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 15: SRv6 SID Structure TLV Where: Type: 2 octet field with value 1252 Length: 2 octet field with the value 4. LB Length: 1 octet field. SRv6 SID Locator Block length in bits. LN Length: 1 octet field. SRv6 SID Locator Node length in bits. Function Length: 1 octet field. SRv6 SID Function length in bits. Argument Length: 1 octet field. SRv6 SID Argument length in bits. Dawra, et al. Expires May 5, 2021 [Page 18] Internet-Draft BGP-LS Extensions for SRv6 November 2020 9. IANA Considerations This document requests assigning code-points from the IANA "Border Gateway Protocol - Link State (BGP-LS) Parameters" registry as described in the sub-sections below. 9.1. BGP-LS NLRI-Types The following codepoints are assigned by IANA via the early allocation processs from within the sub-registry called "BGP-LS NLRI- Types": +------+----------------------------+---------------+ | Type | NLRI Type | Reference | +------+----------------------------+---------------+ | 6 | SRv6 SID | this document | +------+----------------------------+---------------+ Figure 16: SRv6 SID NLRI Type Codepoint 9.2. BGP-LS TLVs The following TLV codepoints are assigned by IANA via the early allocation process from within the sub-registry called "BGP-LS Node Descriptor, Link Descriptor, Prefix Descriptor, and Attribute TLVs": +----------+----------------------------------------+---------------+ | TLV Code | Description | Value defined | | Point | | in | +----------+----------------------------------------+---------------+ | 1038 | SRv6 Capabilities TLV | this document | | 1106 | SRv6 End.X SID TLV | this document | | 1107 | IS-IS SRv6 LAN End.X SID TLV | this document | | 1108 | OSPFv3 SRv6 LAN End.X SID TLV | this document | | 1162 | SRv6 Locator TLV | this document | | 518 | SRv6 SID Information TLV | this document | | 1250 | SRv6 Endpoint Behavior TLV | this document | | 1251 | SRv6 BGP Peer Node SID TLV | this document | | 1252 | SRv6 SID Structure TLV | this document | +----------+----------------------------------------+---------------+ Figure 17: SRv6 BGP-LS Attribute TLV Codepoints 10. Manageability Considerations This section is structured as recommended in[RFC5706] Dawra, et al. Expires May 5, 2021 [Page 19] Internet-Draft BGP-LS Extensions for SRv6 November 2020 11. Operational Considerations 11.1. Operations Existing BGP and BGP-LS operational procedures apply. No additional operation procedures are defined in this document. 12. Security Considerations Procedures and protocol extensions defined in this document do not affect the BGP security model. See the 'Security Considerations' section of [RFC4271] for a discussion of BGP security. Also refer to[RFC4272] and [RFC6952] for analysis of security issues for BGP. 13. Contributors James Uttaro AT&T USA Email: ju1738@att.com Hani Elmalky Ericsson USA Email: hani.elmalky@gmail.com Arjun Sreekantiah Individual USA Email: arjunhrs@gmail.com Les Ginsberg Cisco Systems USA Email: ginsberg@cisco.com Shunwan Zhuang Huawei China Email: zhuangshunwan@huawei.com 14. Acknowledgements The authors would like to thank Peter Psenak, Arun Babu, Pablo Camarillo, Francois Clad, Peng Shaofu and Cheng Li for their review of this document and their comments. Dawra, et al. Expires May 5, 2021 [Page 20] Internet-Draft BGP-LS Extensions for SRv6 November 2020 15. References 15.1. Normative References [I-D.ietf-6man-spring-srv6-oam] Ali, Z., Filsfils, C., Matsushima, S., Voyer, D., and M. Chen, "Operations, Administration, and Maintenance (OAM) in Segment Routing Networks with IPv6 Data plane (SRv6)", draft-ietf-6man-spring-srv6-oam-08 (work in progress), October 2020. [I-D.ietf-idr-bgp-ls-segment-routing-ext] Previdi, S., Talaulikar, K., Filsfils, C., Gredler, H., and M. Chen, "BGP Link-State extensions for Segment Routing", draft-ietf-idr-bgp-ls-segment-routing-ext-16 (work in progress), June 2019. [I-D.ietf-idr-bgp-ls-segment-routing-msd] Tantsura, J., Chunduri, U., Talaulikar, K., Mirsky, G., and N. Triantafillis, "Signaling MSD (Maximum SID Depth) using Border Gateway Protocol - Link State", draft-ietf- idr-bgp-ls-segment-routing-msd-18 (work in progress), May 2020. [I-D.ietf-idr-bgpls-segment-routing-epe] Previdi, S., Talaulikar, K., Filsfils, C., Patel, K., Ray, S., and J. Dong, "BGP-LS extensions for Segment Routing BGP Egress Peer Engineering", draft-ietf-idr-bgpls- segment-routing-epe-19 (work in progress), May 2019. [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", draft-ietf-lsr-isis-srv6-extensions-11 (work in progress), October 2020. [I-D.ietf-lsr-ospfv3-srv6-extensions] Li, Z., Hu, Z., Cheng, D., Talaulikar, K., and P. Psenak, "OSPFv3 Extensions for SRv6", draft-ietf-lsr- ospfv3-srv6-extensions-01 (work in progress), August 2020. [I-D.ietf-spring-srv6-network-programming] Filsfils, C., Camarillo, P., Leddy, J., Voyer, D., Matsushima, S., and Z. Li, "SRv6 Network Programming", draft-ietf-spring-srv6-network-programming-24 (work in progress), October 2020. Dawra, et al. Expires May 5, 2021 [Page 21] Internet-Draft BGP-LS Extensions for SRv6 November 2020 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997, . [RFC7752] Gredler, H., Ed., Medved, J., Previdi, S., Farrel, A., and S. Ray, "North-Bound Distribution of Link-State and Traffic Engineering (TE) Information Using BGP", RFC 7752, DOI 10.17487/RFC7752, March 2016, . [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, May 2017, . [RFC8402] Filsfils, C., Ed., Previdi, S., Ed., Ginsberg, L., Decraene, B., Litkowski, S., and R. Shakir, "Segment Routing Architecture", RFC 8402, DOI 10.17487/RFC8402, July 2018, . [RFC8754] Filsfils, C., Ed., Dukes, D., Ed., Previdi, S., Leddy, J., Matsushima, S., and D. Voyer, "IPv6 Segment Routing Header (SRH)", RFC 8754, DOI 10.17487/RFC8754, March 2020, . 15.2. Informative References [I-D.ietf-bess-srv6-services] Dawra, G., Filsfils, C., Raszuk, R., Decraene, B., Zhuang, S., and J. Rabadan, "SRv6 BGP based Overlay services", draft-ietf-bess-srv6-services-04 (work in progress), July 2020. [RFC4271] Rekhter, Y., Ed., Li, T., Ed., and S. Hares, Ed., "A Border Gateway Protocol 4 (BGP-4)", RFC 4271, DOI 10.17487/RFC4271, January 2006, . [RFC4272] Murphy, S., "BGP Security Vulnerabilities Analysis", RFC 4272, DOI 10.17487/RFC4272, January 2006, . [RFC4760] Bates, T., Chandra, R., Katz, D., and Y. Rekhter, "Multiprotocol Extensions for BGP-4", RFC 4760, DOI 10.17487/RFC4760, January 2007, . Dawra, et al. Expires May 5, 2021 [Page 22] Internet-Draft BGP-LS Extensions for SRv6 November 2020 [RFC5706] Harrington, D., "Guidelines for Considering Operations and Management of New Protocols and Protocol Extensions", RFC 5706, DOI 10.17487/RFC5706, November 2009, . [RFC6952] Jethanandani, M., Patel, K., and L. Zheng, "Analysis of BGP, LDP, PCEP, and MSDP Issues According to the Keying and Authentication for Routing Protocols (KARP) Design Guide", RFC 6952, DOI 10.17487/RFC6952, May 2013, . [RFC8355] Filsfils, C., Ed., Previdi, S., Ed., Decraene, B., and R. Shakir, "Resiliency Use Cases in Source Packet Routing in Networking (SPRING) Networks", RFC 8355, DOI 10.17487/RFC8355, March 2018, . Authors' Addresses Gaurav Dawra LinkedIn USA Email: gdawra.ietf@gmail.com Clarence Filsfils Cisco Systems Belgium Email: cfilsfil@cisco.com Ketan Talaulikar (editor) Cisco Systems India Email: ketant@cisco.com Mach Chen Huawei China Email: mach.chen@huawei.com Dawra, et al. Expires May 5, 2021 [Page 23] Internet-Draft BGP-LS Extensions for SRv6 November 2020 Daniel Bernier Bell Canada Canada Email: daniel.bernier@bell.ca Bruno Decraene Orange France Email: bruno.decraene@orange.com Dawra, et al. Expires May 5, 2021 [Page 24]