Inter-Domain Routing G. Dawra, Ed. Internet-Draft LinkedIn Intended status: Standards Track C. Filsfils Expires: March 7, 2019 K. Talaulikar, Ed. Cisco Systems M. Chen Huawei D. Bernier Bell Canada J. Uttaro AT&T B. Decraene Orange H. Elmalky Ericsson September 3, 2018 BGP Link State extensions for IPv6 Segment Routing(SRv6) draft-dawra-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 there functions and other attributes via BGP. Requirements Language The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 [RFC2119]. 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 Dawra, et al. Expires March 7, 2019 [Page 1] Internet-Draft BGP-LS Extensions for SRv6 September 2018 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 March 7, 2019. Copyright Notice Copyright (c) 2018 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 2. BGP-LS extensions for SRv6 . . . . . . . . . . . . . . . . . 3 2.1. SRv6 Node Attributes . . . . . . . . . . . . . . . . . . 4 2.1.1. SRv6 Capability Attribute TLV . . . . . . . . . . . . 4 2.1.2. SRv6 SID Node Attribute TLV . . . . . . . . . . . . . 8 2.2. SRv6 Link Attributes . . . . . . . . . . . . . . . . . . 10 2.2.1. SRv6 SID Link Attribute TLV . . . . . . . . . . . . . 11 2.2.2. SRv6 SID LAN Link Attribute TLV . . . . . . . . . . . 12 2.2.3. SRv6 Peer Node END.X SID TLV . . . . . . . . . . . . 14 2.2.4. SRv6 Peer Set END.X SID TLV . . . . . . . . . . . . . 15 3. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 16 3.1. TLV/Sub-TLV Code Points Summary . . . . . . . . . . . . . 16 4. Manageability Considerations . . . . . . . . . . . . . . . . 17 5. Operational Considerations . . . . . . . . . . . . . . . . . 17 5.1. Operations . . . . . . . . . . . . . . . . . . . . . . . 17 6. Security Considerations . . . . . . . . . . . . . . . . . . . 17 7. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 17 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 18 8.1. Normative References . . . . . . . . . . . . . . . . . . 18 8.2. Informative References . . . . . . . . . . . . . . . . . 19 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 20 Dawra, et al. Expires March 7, 2019 [Page 2] Internet-Draft BGP-LS Extensions for SRv6 September 2018 1. Introduction SRv6 refers to Segment Routing instantiated on the IPv6 dataplane [I-D.ietf-spring-segment-routing]. Segment Identifier (SID) is often used as a shorter reference for "SRv6 Segment". The network programming paradigm [I-D.filsfils-spring-srv6-network-programming] is central to SRv6. It describes how different functions can be bound to their SIDs and how a network program can be expressed as a combination of SIDs. An SRv6-capable node N maintains a "My Local SID Table" (refer [I-D.filsfils-spring-srv6-network-programming]). This table contains all the local segments explicitly instantiated at node N. The ISIS ([I-D.bashandy-isis-srv6-extensions]) and OSPFv3 ([I-D.li-ospf-ospfv3-srv6-extensions]) link-state routing protocols have been extended to advertise some of these SRv6 SIDs and SRv6-related information. BGP ([I-D.dawra-idr-srv6-vpn]) 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 [I-D.ietf-idr-bgpls-segment-routing-epe]. On the similar lines, introducing the SRv6 related information in BGP-LS allows it's consumer applications that require topological visibility to also receive the "My Local SID Table" 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 attribute to advertise the SRv6 "My Local SID Table" and other SRv6 information from a node in the network and when sourced from link-state routing protocols from all the SRv6 capable nodes in the domain. 2. BGP-LS extensions for SRv6 BGP-LS[RFC7752] defines the BGP Node and Link 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 Dawra, et al. Expires March 7, 2019 [Page 3] Internet-Draft BGP-LS Extensions for SRv6 September 2018 encoded using AFI 16388 / SAFI 72. This draft does not introduce any new descriptor TLVs for any BGP-LS NLRI types and the usage of the descriptor TLVs and other attributes SHALL follow [RFC7752] for ISIS and OSPFv3 protocols and [I-D.ietf-idr-bgpls-segment-routing-epe] for BGP protocol. This document defines SRv6 extensions to BGP-LS Node attribute TLVs in Section 2.1 and Link attribute TLVs in Section 2.2. 2.1. SRv6 Node Attributes Node Attribute TLVs are used for the SRv6 capabilities of the node and for all SRv6 SIDs instantiated on the node which are not specific to any link. Examples of such node level functions that are signalled as Node Attributes are END and END.T. The list of these functions at the time of publishing this document are described in [I-D.filsfils-spring-srv6-network-programming]. The following Node Attribute TLVs are defined for SRv6: +----------+-------------------------+----------+----------------+ | TLV Code | Description | Length | Section | | Point | | | | +----------+-------------------------+----------+----------------+ | TBD | SRv6 Capabilities | variable | Section 2.1.1 | | | | | | | TBD | SRv6 SID Node Attribute | variable | Section 2.1.2 | | | | | | +----------+-------------------------+----------+----------------+ These TLVs can ONLY be added to the Node Attribute associated with the local node that is SRv6 capable and for SRv6 SIDs that are in that local node's "My Local SID Table". 2.1.1. SRv6 Capability Attribute TLV This TLV is used to announce the SRv6 capability of the node and to indicate the nature of its support for the SRH operations. A single instance of this TLV MUST be included in the BGP-LS attribute for each SRv6 capable node. Dawra, et al. Expires March 7, 2019 [Page 4] Internet-Draft BGP-LS Extensions for SRv6 September 2018 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 | Sub-TLVs... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Where: o Type: 16 bit field. TBD o Length: 16 bit field. Length of Capability TLV + length of Sub- TLVs o Flags: 16 bit field. The following flags are defined: 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |E|O| | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ where: * E-flag: If set, then router is able to apply "T.Encap" operation as specified in [I-D.filsfils-spring-srv6-network-programming] * O-flag: If set, then router is capable of supporting SRH O-bit Flags, as specified in [I-D.ietf-6man-segment-routing-header]. The following sections define the supported sub-TLVs. 2.1.1.1. Maximum SL sub-TLV The Maximum Segments Left sub-TLV specifies the maximum value of the "SL" field in the Segment Routing IPv6 Header (SRH) [I-D.ietf-6man-segment-routing-header] of a received packet before applying the function associated with a SID. Dawra, et al. Expires March 7, 2019 [Page 5] Internet-Draft BGP-LS Extensions for SRv6 September 2018 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 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Max SL | +-+-+-+-+-+-+-+-+ o Type: 1 o Length: 1 o SL Value: 1 octet o An 8 bit unsigned integer. If the sub-TLV is not advertised by an SRv6 capable router, then the value MUST be considered to be 0. 2.1.1.2. Maximum End Pop SRH sub-TLV The Maximum End Pop SRH sub-TLV specifies the maximum number of SIDs in the top SRH in an SRH stack to which the router can apply "PSP" or USP" flavors as specified in [I-D.ietf-6man-segment-routing-header]. 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 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Max-End-Pop-SRH| +-+-+-+-+-+-+-+-+ o Type: 2 o Length: 1 o Max-End-Pop-SRH Value: 1 octet o An 8 bit unsigned integer. If the value is 0 or the sub-TLV is not advertised by an SRv6 capable router, then it MUST be considered that the router cannot apply PSP or USP flavors. Dawra, et al. Expires March 7, 2019 [Page 6] Internet-Draft BGP-LS Extensions for SRv6 September 2018 2.1.1.3. Maximum T.Insert SRH sub-TLV The Maximum T.Insert SRH sub-sub-TLV specifies the maximum number of SIDs that can be inserted as part of the "T.insert" behavior as specified in [I-D.filsfils-spring-srv6-network-programming]. 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 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Max-T.Insert | +-+-+-+-+-+-+-+-+ o Type: 3 o Length: 1 o Max-T.Insert Value: 1 octet o An 8 bit unsigned integer. If the value is 0 or the sub-TLV is not advertised by an SRv6 capable router, then it MUST be considered that the router does not support any variation of the "T.insert" behavior. 2.1.1.4. Maximum T.Encap SRH sub-TLV The Maximum T.Encap SRH sub-sub-TLV specifies the maximum number of SIDs that can be included as part of the "T.Encap" behavior as specified in [I-D.filsfils-spring-srv6-network-programming]. 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 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Max-T.Encap | +-+-+-+-+-+-+-+-+ o Type: 4 o Length: 1 o Max-T.Encap Value: 1 octet Dawra, et al. Expires March 7, 2019 [Page 7] Internet-Draft BGP-LS Extensions for SRv6 September 2018 o An 8 bit unsigned integer. If this value is 0 or the sub-TLV is not advertised by an SRv6 capable router and the "E" flag is set in the associated SRv6 Capabilities sub-TLV, then it MUST be considered that the router can apply T.Encap by encapsulating the incoming packet in another IPv6 header without SRH the same way as IP-in-IP encapsulation is performed. If the "E" flag is clear, then this sub-TLV SHOULD NOT be advertised and MUST be ignored on receipt. 2.1.1.5. Maximum End D SRH sub-TLV The Maximum End D SRH sub-sub-TLV specifies the maximum number of SIDs in an SRH when applying "End.DX6" and "End.DT6" functions. 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 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Max-End-D | +-+-+-+-+-+-+-+-+ o Type: 5 o Length: 1 o Max End D Value: 1 octet o An 8 bit unsigned integer. If this value is zero or the sub-TLV is not advertised by an SRv6 capable router, then it MUST be considered that the router cannot apply "End.DX6" or "End.DT6" functions if the extension header right underneath the outer IPv6 header is an SRH. 2.1.2. SRv6 SID Node Attribute TLV This TLV is used for advertising the SRv6 SIDs associated with the node and its function (e.g. END, END.T, etc). Multiple instances of this TLV, one for each SRv6 SID, MAY be advertised in the BGP-LS Attribute for a given Node NLRI. Dawra, et al. Expires March 7, 2019 [Page 8] Internet-Draft BGP-LS Extensions for SRv6 September 2018 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-Flags | Function-Flags| Function Code | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SID-size | SID (variable) ... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Sub-TLVs (variable) . . . +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 1: SRv6 SID Node TLV Where: Type: 16 bit field. TBD Length: 16 bit field. The total length of the value portion of the TLV. SID Flags: 8 bit field which define the flags associated with the SID * When the originating protocol is ISIS, the flags correspond to the flags in the SRv6 SID TLV as defined in [I-D.bashandy-isis-srv6-extensions] * When the originating protocol is OSPFv3, the flags correspond to the flags in the SRv6 SID TLV as defined in [I-D.li-ospf-ospfv3-srv6-extensions] * When the originating protocol is BGP, the flags are not defined and SHOULD be set to 0 and MUST be ignored on receipt. Function Flags: 8 bit field which define the flags associated with the function. * When the originating protocol is ISIS, the flags correspond to the function flags in the SRv6 SID TLV as defined in [I-D.bashandy-isis-srv6-extensions] * When the originating protocol is OSPFv3, the flags correspond to the function flags in the SRv6 SID TLV as defined in [I-D.li-ospf-ospfv3-srv6-extensions] Dawra, et al. Expires March 7, 2019 [Page 9] Internet-Draft BGP-LS Extensions for SRv6 September 2018 * When the originating protocol is BGP, the flags are not defined and SHOULD be set to 0 and MUST be ignored on receipt. Function Code: 16 bit field. The function code point for this SRv6 SID as defined in [I-D.filsfils-spring-srv6-network-programming]. SID Size : 8 bit field. Number of bits in the SID field. SID : 1-16 octets. This field encodes the advertised SRv6 SID. The "SID-size" field can have the values 1-128 and indicates the number of bits in the SID. The SRv6 SID is encoded in the minimal number of octets for the given number of bits. Sub-TLVs : currently none defined. Used to advertise sub-TLVs that provide additional attributes for the given SRv6 SID. 2.2. SRv6 Link Attributes Link Attribute TLVs are used for all SRv6 SIDs instantiated corresponding to a specific link on the node. Examples of such link level functions that are signalled as Link Attributes is END.X that are signaled via ISIS and OSPFv3 and Egress Peer Engineering [I-D.ietf-spring-segment-routing-central-epe] related SIDs that are advertised for BGP Peering SIDs for SRv6 equivalent to their SR/MPLS SIDs as defined in [I-D.ietf-idr-bgpls-segment-routing-epe]. These SIDs are instantiated in the "My Local SID Table" on the node and are used to associate the function to one or more specific links on that node. The list of these functions at the time of publishing this document are described in [I-D.filsfils-spring-srv6-network-programming]. The following Link Attribute TLVs are defined for SRv6: +----------+------------------------------+----------+---------------+ | TLV Code | Description | Length | Section | | Point | | | | +----------+------------------------------+----------+---------------+ | TBD | SRv6 SID Link Attribute | variable | Section 2.2.1 | | | | | | | TBD | SRv6 SID LAN Link Attribute | variable | Section 2.2.2 | | | | | | | TBD | SRv6 Peer Node END.X SID | variable | Section 2.2.3 | | | | | | | TBD | SRv6 Peer Set END.X SID | variable | Section 2.2.4 | | | | | | +----------+------------------------------+----------+---------------+ Dawra, et al. Expires March 7, 2019 [Page 10] Internet-Draft BGP-LS Extensions for SRv6 September 2018 These TLVs can ONLY be added to the Link Attribute associated with the link for the local node that is SRv6 capable and for that link's SRv6 SIDs that are in that local node's "My Local SID Table". 2.2.1. SRv6 SID Link Attribute TLV The SRv6 SID Link Attribute TLV is used to advertise the SRv6 SIDs like the END.X functions that correspond to a point-to-point or point-to-multipoint link or adjacency of the local node for ISIS and OSPFv3 protocols. This TLV can also be used to advertise the END.X function 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 . For BGP protocol, this TLV is used to advertise the BGP Peer Adjacency SID for SRv6 on the same lines as specified for SR/MPLS in [I-D.ietf-idr-bgpls-segment-routing-epe]. The END.X SRv6 SID for the 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 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SID-Flags | Function-Flags| Function Code | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SID-size | SID (variable) ... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Sub-TLVs (variable) . . . +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Where: Type is TBD Length: 16 bit field. The total length of the value portion of the TLV. SID Flags: 8 bit field which define the flags associated with the SID * When the originating protocol is ISIS, the flags correspond to the flags in the SRv6 SID TLV as defined in [I-D.bashandy-isis-srv6-extensions] Dawra, et al. Expires March 7, 2019 [Page 11] Internet-Draft BGP-LS Extensions for SRv6 September 2018 * When the originating protocol is OSPFv3, the flags correspond to the flags in the SRv6 SID TLV as defined in [I-D.li-ospf-ospfv3-srv6-extensions] * When the originating protocol is BGP, the flags are not defined and SHOULD be set to 0 and MUST be ignored on receipt. Function Flags: 8 bit field which define the flags associated with the function. * When the originating protocol is ISIS, the flags correspond to the function flags in the SRv6 SID TLV as defined in [I-D.bashandy-isis-srv6-extensions] * When the originating protocol is OSPFv3, the flags correspond to the function flags in the SRv6 SID TLV as defined in [I-D.li-ospf-ospfv3-srv6-extensions] * When the originating protocol is BGP, the flags are not defined and SHOULD be set to 0 and MUST be ignored on receipt. Function Code: 16 bit field. The function code point for this SRv6 SID as defined in [I-D.filsfils-spring-srv6-network-programming]. SID-size: Number of bits in the SID field. SID: 1-16 octets. This field encodes the advertised SRv6 SID. The "SID-size" field can have the values 1-128 and indicates the number of bits in the SID. The SRv6 SID is encoded in the minimal number of octets for the given number of bits. Sub-TLVs : currently none defined. Used to advertise sub-TLVs that provide additional attributes for the given SRv6 END.X SID. 2.2.2. SRv6 SID LAN Link Attribute 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 SID LAN Link Attribute TLV allows a node to announce SRv6 SID corresponding to functions 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 SID Link Attribute TLVs for these neighbor adjacencies. The SRv6 SID LAN Link Attribute TLV has the following format: Dawra, et al. Expires March 7, 2019 [Page 12] Internet-Draft BGP-LS Extensions for SRv6 September 2018 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-Flags | Function-Flags| Function Code | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SID-size | SID (variable) ... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | OSPFv3 Router-ID or ISIS System-ID (4 or 6 octets) | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | of neighbor ID | Sub-TLVs (variable) . . . +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ o Type: TBD o Length: 16 bit value. Variable o SID Flags: 8 bit field which define the flags associated with the SID * When the originating protocol is ISIS, the flags correspond to the flags in the SRv6 SID TLV as defined in [I-D.bashandy-isis-srv6-extensions] * When the originating protocol is OSPFv3, the flags correspond to the flags in the SRv6 SID TLV as defined in [I-D.li-ospf-ospfv3-srv6-extensions] o Function Flags: 8 bit field which define the flags associated with the function. * When the originating protocol is ISIS, the flags correspond to the function flags in the SRv6 SID TLV as defined in [I-D.bashandy-isis-srv6-extensions] * When the originating protocol is OSPFv3, the flags correspond to the function flags in the SRv6 SID TLV as defined in [I-D.li-ospf-ospfv3-srv6-extensions] * When the originating protocol is BGP, the flags are not defined and SHOULD be set to 0 and MUST be ignored on receipt. o Function Code: 16 bit field. The function code point for this SRv6 SID as defined in [I-D.filsfils-spring-srv6-network-programming]. Dawra, et al. Expires March 7, 2019 [Page 13] Internet-Draft BGP-LS Extensions for SRv6 September 2018 o SID Size : 8 bit field. Number of bits in the SID field. o SID : 1-16 octets. This field encodes the advertised SRv6 SID. The "SID-size" field can have the values 1-128 and indicates the number of bits in the SID. The SRv6 SID is encoded in the minimal number of octets for the given number of bits. o Neighbor ID : 6 octets of ISIS System ID of the neighbor when protocol is ISIS or 4 octets of OSPFv3 Router-id of the neighbor when protocol is OSPFv3 o Sub-TLVs : currently none defined. Used to advertise sub-TLVs that provide additional attributes for the given SRv6 SID. 2.2.3. SRv6 Peer Node END.X SID TLV The SRv6 Peer Node END.X SID TLV is used to advertise the BGP Peer Node SID for SRv6 on the same lines as specified for SR/MPLS in [I-D.ietf-idr-bgpls-segment-routing-epe]. The END.X SRv6 SID for the Peer Node indicates the cross-connect to the layer-3 paths 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 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SID-Flags | Function-Flags| Function Code | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SID-size | SID (variable) ... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Sub-TLVs (variable) . . . +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Where: Type is TBD Length: 16 bit field. The total length of the value portion of the TLV. SID Flags: 8 bit field which define the flags associated with the SID. No flags are currently defined and SHOULD be set to 0 and MUST be ignored on receipt. Dawra, et al. Expires March 7, 2019 [Page 14] Internet-Draft BGP-LS Extensions for SRv6 September 2018 Function Flags: 8 bit field which define the flags associated with the function. No flags are currently defined and SHOULD be set to 0 and MUST be ignored on receipt. Function Code: 16 bit field. The function code point for this SRv6 SID as defined in [I-D.filsfils-spring-srv6-network-programming]. SID-size: Number of bits in the SID field. SID: 1-16 octets. This field encodes the advertised SRv6 SID. The "SID-size" field can have the values 1-128 and indicates the number of bits in the SID. The SRv6 SID is encoded in the minimal number of octets for the given number of bits. Sub-TLVs : currently none defined. Used to advertise sub-TLVs that provide additional attributes for the given SRv6 END.X SID. 2.2.4. SRv6 Peer Set END.X SID TLV The SRv6 Peer Node END.X SID TLV is used to advertise the BGP Peer Node SID for SRv6 on the same lines as specified for SR/MPLS in [I-D.ietf-idr-bgpls-segment-routing-epe]. The END.X SRv6 SID for the Peer Set indicates forwarding towards the group of BGP session peers (neighbor) to which the SRv6 Peer Set END.X SID is associated with. 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 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SID-Flags | Function-Flags| Function Code | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SID-size | SID (variable) ... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Sub-TLVs (variable) . . . +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Where: Type is TBD Length: 16 bit field. The total length of the value portion of the TLV. Dawra, et al. Expires March 7, 2019 [Page 15] Internet-Draft BGP-LS Extensions for SRv6 September 2018 SID Flags: 8 bit field which define the flags associated with the SID. No flags are currently defined and SHOULD be set to 0 and MUST be ignored on receipt. Function Flags: 8 bit field which define the flags associated with the function. No flags are currently defined and SHOULD be set to 0 and MUST be ignored on receipt. Function Code: 16 bit field. The function code point for this SRv6 SID as defined in [I-D.filsfils-spring-srv6-network-programming]. SID-size: Number of bits in the SID field. SID: 1-16 octets. This field encodes the advertised SRv6 SID. The "SID-size" field can have the values 1-128 and indicates the number of bits in the SID. The SRv6 SID is encoded in the minimal number of octets for the given number of bits. Sub-TLVs : currently none defined. Used to advertise sub-TLVs that provide additional attributes for the given SRv6 END.X SID. 3. IANA Considerations This document requests assigning code-points from the registry "BGP- LS Node Descriptor, Link Descriptor, Prefix Descriptor, and Attribute TLVs". 3.1. TLV/Sub-TLV Code Points Summary This section contains the global table of all TLVs defined in this document. Dawra, et al. Expires March 7, 2019 [Page 16] Internet-Draft BGP-LS Extensions for SRv6 September 2018 +------------+---------------------------------+----------------+ | TLV Code | Description | Section | | Point | | | +------------+---------------------------------+----------------+ | TBD | SRv6 Capabilities TLV | Section 2.1.1 | | | | | | TBD | SRv6 SID Node Attribute TLV | Section 2.1.2 | | | | | | TBD | SRv6 SID Link Attribute TLV | Section 2.2.1 | | | | | | TBD | SRv6 SID LAN Link Attribute TLV | Section 2.2.2 | | | | | | TBD | SRv6 Peer Node END.X SID TLV | Section 2.2.3 | | | | | | TBD | SRv6 Peer Set END.X SID TLV | Section 2.2.4 | +------------+---------------------------------+----------------+ 4. Manageability Considerations This section is structured as recommended in[RFC5706] 5. Operational Considerations 5.1. Operations Existing BGP and BGP-LS operational procedures apply. No additional operation procedures are defined in this document. 6. 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. 7. Contributors Arjun Sreekantiah Individual US Les Ginsberg Cisco Systems US Email: ginsberg@cisco.com Dawra, et al. Expires March 7, 2019 [Page 17] Internet-Draft BGP-LS Extensions for SRv6 September 2018 Shunwan Zhuang Huawei China Email: zhuangshunwan@huawei.com 8. References 8.1. Normative References [I-D.bashandy-isis-srv6-extensions] Ginsberg, L., Psenak, P., Filsfils, C., Bashandy, A., Decraene, B., and Z. Hu, "IS-IS Extensions to Support Routing over IPv6 Dataplane", draft-bashandy-isis- srv6-extensions-03 (work in progress), June 2018. [I-D.dawra-idr-srv6-vpn] Dawra, G., Filsfils, C., Dukes, D., Brissette, P., Camarillo, P., Leddy, J., daniel.voyer@bell.ca, d., daniel.bernier@bell.ca, d., Steinberg, D., Raszuk, R., Decraene, B., Matsushima, S., and S. Zhuang, "BGP Signaling of IPv6-Segment-Routing-based VPN Networks", draft-dawra-idr-srv6-vpn-04 (work in progress), June 2018. [I-D.filsfils-spring-srv6-network-programming] Filsfils, C., Camarillo, P., Leddy, J., daniel.voyer@bell.ca, d., Matsushima, S., and Z. Li, "SRv6 Network Programming", draft-filsfils-spring-srv6-network- programming-05 (work in progress), July 2018. [I-D.ietf-6man-segment-routing-header] Filsfils, C., Previdi, S., Leddy, J., Matsushima, S., and d. daniel.voyer@bell.ca, "IPv6 Segment Routing Header (SRH)", draft-ietf-6man-segment-routing-header-14 (work in progress), June 2018. [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-08 (work in progress), May 2018. [I-D.ietf-idr-bgpls-segment-routing-epe] Previdi, S., 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-15 (work in progress), March 2018. Dawra, et al. Expires March 7, 2019 [Page 18] Internet-Draft BGP-LS Extensions for SRv6 September 2018 [I-D.li-ospf-ospfv3-srv6-extensions] Li, Z., Hu, Z., Cheng, D., Talaulikar, K., and P. Psenak, "OSPFv3 Extensions for SRv6", draft-li-ospf- ospfv3-srv6-extensions-01 (work in progress), March 2018. [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, . 8.2. Informative References [I-D.ietf-spring-segment-routing] Filsfils, C., Previdi, S., Ginsberg, L., Decraene, B., Litkowski, S., and R. Shakir, "Segment Routing Architecture", draft-ietf-spring-segment-routing-15 (work in progress), January 2018. [I-D.ietf-spring-segment-routing-central-epe] Filsfils, C., Previdi, S., Dawra, G., Aries, E., and D. Afanasiev, "Segment Routing Centralized BGP Egress Peer Engineering", draft-ietf-spring-segment-routing-central- epe-10 (work in progress), December 2017. [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, . [RFC5706] Harrington, D., "Guidelines for Considering Operations and Management of New Protocols and Protocol Extensions", RFC 5706, DOI 10.17487/RFC5706, November 2009, . Dawra, et al. Expires March 7, 2019 [Page 19] Internet-Draft BGP-LS Extensions for SRv6 September 2018 [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, . Authors' Addresses Gaurav Dawra (editor) 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 Daniel Bernier Bell Canada Canada Email: daniel.bernier@bell.ca Jim Uttaro AT&T USA Email: ju1738@att.com Dawra, et al. Expires March 7, 2019 [Page 20] Internet-Draft BGP-LS Extensions for SRv6 September 2018 Bruno Decraene Orange France Email: bruno.decraene@orange.com Hani Elmalky Ericsson USA Email: hani.elmalky@gmail.com Dawra, et al. Expires March 7, 2019 [Page 21]