diff options
author | Thomas Voss <mail@thomasvoss.com> | 2024-11-27 20:54:24 +0100 |
---|---|---|
committer | Thomas Voss <mail@thomasvoss.com> | 2024-11-27 20:54:24 +0100 |
commit | 4bfd864f10b68b71482b35c818559068ef8d5797 (patch) | |
tree | e3989f47a7994642eb325063d46e8f08ffa681dc /doc/rfc/rfc9085.txt | |
parent | ea76e11061bda059ae9f9ad130a9895cc85607db (diff) |
doc: Add RFC documents
Diffstat (limited to 'doc/rfc/rfc9085.txt')
-rw-r--r-- | doc/rfc/rfc9085.txt | 1441 |
1 files changed, 1441 insertions, 0 deletions
diff --git a/doc/rfc/rfc9085.txt b/doc/rfc/rfc9085.txt new file mode 100644 index 0000000..681938e --- /dev/null +++ b/doc/rfc/rfc9085.txt @@ -0,0 +1,1441 @@ + + + + +Internet Engineering Task Force (IETF) S. Previdi +Request for Comments: 9085 Huawei Technologies +Category: Standards Track K. Talaulikar, Ed. +ISSN: 2070-1721 C. Filsfils + Cisco Systems, Inc. + H. Gredler + RtBrick Inc. + M. Chen + Huawei Technologies + August 2021 + + + Border Gateway Protocol - Link State (BGP-LS) Extensions for Segment + Routing + +Abstract + + Segment Routing (SR) allows for a flexible definition of end-to-end + paths by encoding paths as sequences of topological subpaths, called + "segments". These segments are advertised by routing protocols, + e.g., by the link-state routing protocols (IS-IS, OSPFv2, and OSPFv3) + within IGP topologies. + + This document defines extensions to the Border Gateway Protocol - + Link State (BGP-LS) address family in order to carry SR information + via BGP. + +Status of This Memo + + This is an Internet Standards Track document. + + This document is a product of the Internet Engineering Task Force + (IETF). It represents the consensus of the IETF community. It has + received public review and has been approved for publication by the + Internet Engineering Steering Group (IESG). Further information on + Internet Standards is available in Section 2 of RFC 7841. + + Information about the current status of this document, any errata, + and how to provide feedback on it may be obtained at + https://www.rfc-editor.org/info/rfc9085. + +Copyright Notice + + Copyright (c) 2021 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 + 1.1. Requirements Language + 2. BGP-LS Extensions for Segment Routing + 2.1. Node Attribute TLVs + 2.1.1. SID/Label TLV + 2.1.2. SR Capabilities TLV + 2.1.3. SR-Algorithm TLV + 2.1.4. SR Local Block TLV + 2.1.5. SRMS Preference TLV + 2.2. Link Attribute TLVs + 2.2.1. Adjacency SID TLV + 2.2.2. LAN Adjacency SID TLV + 2.2.3. L2 Bundle Member Attributes TLV + 2.3. Prefix Attribute TLVs + 2.3.1. Prefix-SID TLV + 2.3.2. Prefix Attribute Flags TLV + 2.3.3. Source Router Identifier TLV + 2.3.4. Source OSPF Router-ID TLV + 2.3.5. Range TLV + 2.4. Equivalent IS-IS Segment Routing TLVs/Sub-TLVs + 2.5. Equivalent OSPFv2/OSPFv3 Segment Routing TLVs/Sub-TLVs + 3. IANA Considerations + 3.1. TLV/Sub-TLV Code Points Summary + 4. Manageability Considerations + 5. Security Considerations + 6. References + 6.1. Normative References + 6.2. Informative References + Acknowledgements + Contributors + Authors' Addresses + +1. Introduction + + Segment Routing (SR) allows for a flexible definition of end-to-end + paths by combining subpaths called "segments". A segment can + represent any instruction: topological or service based. A segment + can have a local semantic to an SR node or global semantic within a + domain. Within IGP topologies, an SR path is encoded as a sequence + of topological subpaths, called "IGP segments". These segments are + advertised by the link-state routing protocols (IS-IS, OSPFv2, and + OSPFv3). + + [RFC8402] defines the link-state IGP segments -- prefix, node, + anycast, and adjacency segments. Prefix segments, by default, + represent an ECMP-aware shortest-path to a prefix, as per the state + of the IGP topology. Adjacency segments represent a hop over a + specific adjacency between two nodes in the IGP. A prefix segment is + typically a multi-hop path while an adjacency segment, in most of the + cases, is a one-hop path. Node and anycast segments are variations + of the prefix segment with their specific characteristics. + + When SR is enabled in an IGP domain, segments are advertised in the + form of Segment Identifiers (SIDs). The IGP link-state routing + protocols have been extended to advertise SIDs and other SR-related + information. IGP extensions are described for: IS-IS [RFC8667], + OSPFv2 [RFC8665], and OSPFv3 [RFC8666]. Using these extensions, SR + can be enabled within an IGP domain. + + SR allows advertisement of single or multi-hop paths. The flooding + scope for the IGP extensions for SR is IGP area-wide. Consequently, + the contents of a Link-State Database (LSDB) or a Traffic Engineering + Database (TED) has the scope of an IGP area; therefore, by using the + IGP alone, it is not enough to construct segments across multiple IGP + area or Autonomous System (AS) boundaries. + + In order to address the need for applications that require + topological visibility across IGP areas, or even across ASes, the + BGP-LS address family / subaddress family have been defined to allow + BGP to carry link-state information. The BGP Network Layer + Reachability Information (NLRI) encoding format for BGP-LS and a new + BGP Path Attribute called the "BGP-LS Attribute" are defined in + [RFC7752]. 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. + + +------------+ + | Consumer | + +------------+ + ^ + | + v + +-------------------+ + | BGP Speaker | +-----------+ + | (Route Reflector) | | Consumer | + +-------------------+ +-----------+ + ^ ^ ^ ^ + | | | | + +---------------+ | +-------------------+ | + | | | | + v v v v + +-----------+ +-----------+ +-----------+ + | BGP | | BGP | | BGP | + | Speaker | | Speaker | . . . | Speaker | + +-----------+ +-----------+ +-----------+ + ^ ^ ^ + | | | + IGP IGP IGP + + Figure 1: Link-State Information Collection + + Figure 1 denotes a typical deployment scenario. In each IGP area, + one or more nodes are configured with BGP-LS. These BGP speakers + form an Internal BGP (IBGP) mesh by connecting to one or more route + reflectors. This way, all BGP speakers (specifically the route + reflectors) obtain link-state information from all IGP areas (and + from other ASes from External BGP (EBGP) peers). An external + component connects to the route reflector to obtain this information + (perhaps moderated by a policy regarding what information is or isn't + advertised to the external component) as described in [RFC7752]. + + This document describes extensions to BGP-LS to advertise the SR + information. An external component (e.g., a controller) can collect + SR information from across an SR domain (as described in [RFC8402]) + and construct the end-to-end path (with its associated SIDs) that + needs to be applied to an incoming packet to achieve the desired end- + to-end forwarding. SR operates within a trusted domain consisting of + a single AS or multiple ASes managed by the same administrative + entity, e.g., within a single provider network. + +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 + 14 [RFC2119] [RFC8174] when, and only when, they appear in all + capitals, as shown here. + +2. BGP-LS Extensions for Segment Routing + + This document defines SR extensions to BGP-LS and specifies the TLVs + and sub-TLVs for advertising SR information within the BGP-LS + Attribute. Sections 2.4 and 2.5 list the equivalent TLVs and sub- + TLVs in the IS-IS, OSPFv2, and OSPFv3 protocols. + + BGP-LS [RFC7752] defines the BGP-LS NLRI that can be a Node NLRI, a + Link NLRI, or a Prefix NLRI, and it defines the TLVs that map link- + state information to BGP-LS NLRI within the BGP-LS Attribute. This + document adds additional BGP-LS Attribute TLVs in order to encode SR + information. It does not introduce any changes to the encoding of + the BGP-LS NLRIs. + +2.1. Node Attribute TLVs + + The following Node Attribute TLVs are defined: + + +======+=================+===============+ + | Type | Description | Section | + +======+=================+===============+ + | 1161 | SID/Label | Section 2.1.1 | + +------+-----------------+---------------+ + | 1034 | SR Capabilities | Section 2.1.2 | + +------+-----------------+---------------+ + | 1035 | SR Algorithm | Section 2.1.3 | + +------+-----------------+---------------+ + | 1036 | SR Local Block | Section 2.1.4 | + +------+-----------------+---------------+ + | 1037 | SRMS Preference | Section 2.1.5 | + +------+-----------------+---------------+ + + Table 1: Node Attribute TLVs + + These TLVs should only be added to the BGP-LS Attribute associated + with the Node NLRI that describes the IGP node that is originating + the corresponding IGP TLV/sub-TLV described below. + +2.1.1. SID/Label TLV + + The SID/Label TLV is used as a sub-TLV by the SR Capabilities + (Section 2.1.2) and Segment Routing Local Block (SRLB) + (Section 2.1.4) TLVs. This information is derived from the protocol- + specific advertisements. + + * IS-IS, as defined by the SID/Label Sub-TLV in Section 2.3 of + [RFC8667]. + + * OSPFv2/OSPFv3, as defined by the SID/Label Sub-TLV in Section 2.1 + of [RFC8665] and Section 3.1 of [RFC8666]. + + 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/Label (variable) // + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + Figure 2: SID/Label TLV Format + + Where: + + Type: 1161 + + Length: Variable. Either 3 or 4 octets depending on whether the + value is encoded as a label or as an index/SID. + + SID/Label: If the length is set to 3, then the 20 rightmost bits + represent a label (the total TLV size is 7), and the 4 leftmost + bits are set to 0. If the length is set to 4, then the value + represents a 32-bit SID (the total TLV size is 8). + +2.1.2. SR Capabilities TLV + + The SR Capabilities TLV is used in order to advertise the node's SR + capabilities including its Segment Routing Global Base (SRGB) + range(s). In the case of IS-IS, the capabilities also include the + IPv4 and IPv6 support for the SR-MPLS forwarding plane. This + information is derived from the protocol-specific advertisements. + + * IS-IS, as defined by the SR-Capabilities Sub-TLV in Section 3.1 of + [RFC8667]. + + * OSPFv2/OSPFv3, as defined by the SID/Label Range TLV in + Section 3.2 of [RFC8665]. OSPFv3 leverages the same TLV as + defined for OSPFv2. + + The SR Capabilities 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 | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Flags | Reserved | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Range Size 1 | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | SID/Label Sub-TLV 1 // + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + ... + + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Range Size N | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | SID/Label Sub-TLV N // + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + Figure 3: SR Capabilities TLV Format + + Where: + + Type: 1034 + + Length: Variable. The minimum length is 12 octets. + + Flags: 1 octet of flags as defined in Section 3.1 of [RFC8667] for + IS-IS. The flags are not currently defined for OSPFv2 and OSPFv3 + and MUST be set to 0 and ignored on receipt. + + Reserved: 1 octet that MUST be set to 0 and ignored on receipt. + + One or more entries, each of which have the following format: + + Range Size: 3 octets with a non-zero value indicating the number + of labels in the range. + + SID/Label TLV: (as defined in Section 2.1.1) used as a sub-TLV, + which encodes the first label in the range. Since the SID/ + Label TLV is used to indicate the first label of the SRGB + range, only label encoding is valid under the SR Capabilities + TLV. + +2.1.3. SR-Algorithm TLV + + The SR-Algorithm TLV is used in order to advertise the SR algorithms + supported by the node. This information is derived from the + protocol-specific advertisements. + + * IS-IS, as defined by the SR-Algorithm Sub-TLV in Section 3.2 of + [RFC8667]. + + * OSPFv2/OSPFv3, as defined by the SR-Algorithm TLV in Section 3.1 + of [RFC8665]. OSPFv3 leverages the same TLV as defined for + OSPFv2. + + The SR-Algorithm 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 | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Algorithm 1 | Algorithm... | Algorithm N | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + Figure 4: SR-Algorithm TLV Format + + Where: + + Type: 1035 + + Length: Variable. The minimum length is 1 octet and the maximum can + be 256. + + Algorithm: One or more fields of 1 octet each that identifies the + algorithm. + +2.1.4. SR Local Block TLV + + The SRLB TLV contains the range(s) of labels the node has reserved + for local SIDs. Local SIDs are used, e.g., in IGP (IS-IS, OSPF) for + Adjacency SIDs and may also be allocated by components other than IGP + protocols. As an example, an application or a controller may + instruct a node to allocate a specific local SID. Therefore, in + order for such applications or controllers to know the range of local + SIDs available, the node is required to advertise its SRLB. + + This information is derived from the protocol-specific + advertisements. + + * IS-IS, as defined by the SRLB Sub-TLV in Section 3.3 of [RFC8667]. + + * OSPFv2/OSPFv3, as defined by the SR Local Block TLV in Section 3.3 + of [RFC8665]. OSPFv3 leverages the same TLV as defined for + OSPFv2. + + The SRLB 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 | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Flags | Reserved | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Sub-Range Size 1 | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | SID/Label Sub-TLV 1 // + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + ... + + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Sub-Range Size N | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | SID/Label Sub-TLV N // + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + Figure 5: SRLB TLV Format + + Where: + + Type: 1036 + + Length: Variable. The minimum length is 12 octets. + + Flags: 1 octet of flags. The flags are as defined in Section 3.3 of + [RFC8667] for IS-IS. The flags are not currently defined for + OSPFv2 and OSPFv3 and MUST be set to 0 and ignored on receipt. + + Reserved: 1 octet that MUST be set to 0 and ignored on receipt. + + One or more entries corresponding to a sub-range(s), each of which + have the following format: + + Range Size: 3-octet value indicating the number of labels in the + range. + + SID/Label TLV: (as defined in Section 2.1.1) used as a sub-TLV, + which encodes the first label in the sub-range. Since the SID/ + Label TLV is used to indicate the first label of the SRLB sub- + range, only label encoding is valid under the SR Local Block + TLV. + +2.1.5. SRMS Preference TLV + + The Segment Routing Mapping Server (SRMS) Preference TLV is used in + order to associate a preference with SRMS advertisements from a + particular source. [RFC8661] specifies the SRMS functionality along + with the SRMS preference of the node advertising the SRMS Prefix-to- + SID mapping ranges. + + This information is derived from the protocol-specific + advertisements. + + * IS-IS, as defined by the SRMS Preference Sub-TLV in Section 3.4 of + [RFC8667]. + + * OSPFv2/OSPFv3, as defined by the SRMS Preference TLV in + Section 3.4 of [RFC8665]. OSPFv3 leverages the same TLV as + defined for OSPFv2. + + The SRMS Preference 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 | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Preference | + +-+-+-+-+-+-+-+-+ + + Figure 6: SRMS Preference TLV Format + + Where: + + Type: 1037 + + Length: 1 octet + + Preference: 1 octet carrying an unsigned 8-bit SRMS preference. + +2.2. Link Attribute TLVs + + The following Link Attribute TLVs are defined: + + +======+=================================+===============+ + | Type | Description | Section | + +======+=================================+===============+ + | 1099 | Adjacency SID TLV | Section 2.2.1 | + +------+---------------------------------+---------------+ + | 1100 | LAN Adjacency SID TLV | Section 2.2.2 | + +------+---------------------------------+---------------+ + | 1172 | L2 Bundle Member Attributes TLV | Section 2.2.3 | + +------+---------------------------------+---------------+ + + Table 2: Link Attribute TLVs + + These TLVs should only be added to the BGP-LS Attribute associated + with the Link NLRI that describes the link of the IGP node that is + originating the corresponding IGP TLV/sub-TLV described below. + +2.2.1. Adjacency SID TLV + + The Adjacency SID TLV is used in order to advertise information + related to an Adjacency SID. This information is derived from the + Adj-SID Sub-TLV of IS-IS (Section 2.2.1 of [RFC8667]), OSPFv2 + (Section 6.1 of [RFC8665]), and OSPFv3 (Section 7.1 of [RFC8666]). + + The Adjacency SID 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 | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Flags | Weight | Reserved | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | SID/Label/Index (variable) // + +---------------------------------------------------------------+ + + Figure 7: Adjacency SID TLV Format + + Where: + + Type: 1099 + + Length: Variable. Either 7 or 8 octets depending on the label or + index encoding of the SID. + + Flags: 1-octet value that should be set as: + + * IS-IS Adj-SID flags as defined in Section 2.2.1 of [RFC8667]. + + * OSPFv2 Adj-SID flags as defined in Section 6.1 of [RFC8665]. + + * OSPFv3 Adj-SID flags as defined in Section 7.1 of [RFC8666]. + + Weight: 1 octet carrying the weight used for load-balancing + purposes. The use of weight is described in Section 3.4 of + [RFC8402]. + + Reserved: 2 octets that MUST be set to 0 and ignored on receipt. + + SID/Index/Label: + + IS-IS: Label or index value as defined in Section 2.2.1 of + [RFC8667]. + + OSPFv2: Label or index value as defined in Section 6.1 of + [RFC8665]. + + OSPFv3: Label or index value as defined in Section 7.1 of + [RFC8666]. + + The Flags and, as an extension, the SID/Index/Label fields of this + TLV are interpreted according to the respective underlying IS-IS, + OSPFv2, or OSPFv3 protocol. The Protocol-ID of the BGP-LS Link NLRI + is used to determine the underlying protocol specification for + parsing these fields. + +2.2.2. LAN Adjacency SID TLV + + For a LAN, normally a node only announces its adjacency to the IS-IS + pseudonode (or the equivalent OSPF Designated and Backup Designated + Routers). The LAN Adjacency SID TLV allows a node to announce + adjacencies to all other 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 SR TLVs for these + neighbor adjacencies. + + This information is derived from the LAN-Adj-SID Sub-TLV of IS-IS + (Section 2.2.2 of [RFC8667]), the LAN Adj-SID Sub-TLV of OSPFv2 + (Section 6.2 of [RFC8665]), and the LAN Adj-SID Sub-TLV of OSPFv3 + (Section 7.2 of [RFC8666]). + + The LAN Adjacency SID 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 | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Flags | Weight | Reserved | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | OSPF Neighbor ID / IS-IS System ID | + + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | SID/Label/Index (variable) // + +---------------------------------------------------------------+ + + Figure 8: LAN Adjacency SID TLV Format + + Where: + + Type: 1100 + + Length: Variable. For IS-IS, it would be 13 or 14 octets depending + on the label or index encoding of the SID. For OSPF, it would be + 11 or 12 octets depending on the label or index encoding of the + SID. + + Flags: 1-octet value that should be set as: + + * IS-IS LAN Adj-SID flags as defined in Section 2.2.2 of + [RFC8667]. + + * OSPFv2 LAN Adj-SID flags as defined in Section 6.2 of + [RFC8665]. + + * OSPFv3 LAN Adj-SID flags as defined in Section 7.2 of + [RFC8666]. + + Weight: 1 octet carrying the weight used for load-balancing + purposes. The use of weight is described in Section 3.4 of + [RFC8402]. + + Reserved: 2 octets that MUST be set to 0 and ignored on receipt. + + Neighbor ID: 6 octets for IS-IS for the System ID, and 4 octets for + OSPF for the OSPF Router-ID of the neighbor. + + SID/Index/Label: + + IS-IS: Label or index value as defined in Section 2.2.2 of + [RFC8667]. + + OSPFv2: Label or index value as defined in Section 6.2 of + [RFC8665]. + + OSPFv3: Label or index value as defined in Section 7.2 of + [RFC8666]. + + The Neighbor ID, Flags, and, as an extension, the SID/Index/Label + fields of this TLV are interpreted according to the respective + underlying IS-IS, OSPFv2, or OSPFv3 protocol. The Protocol-ID of the + BGP-LS Link NLRI is used to determine the underlying protocol + specification for parsing these fields. + +2.2.3. L2 Bundle Member Attributes TLV + + The L2 Bundle Member Attributes TLV identifies an L2 Bundle Member + link, which in turn is associated with a parent L3 link. The L3 link + is described by the Link NLRI defined in [RFC7752], and the L2 Bundle + Member Attributes TLV is associated with the Link NLRI. The TLV MAY + include sub-TLVs that describe attributes associated with the bundle + member. The identified bundle member represents a unidirectional + path from the originating router to the neighbor specified in the + parent L3 link. Multiple L2 Bundle Member Attributes TLVs MAY be + associated with a Link NLRI. + + This information is derived from L2 Bundle Member Attributes TLV of + IS-IS (Section 2 of [RFC8668]). The equivalent functionality has not + been specified as yet for OSPF. + + The L2 Bundle Member Attributes 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 | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | L2 Bundle Member Descriptor | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Link Attribute Sub-TLVs(variable) // + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + Figure 9: L2 Bundle Member Attributes TLV Format + + Where: + + Type: 1172 + + Length: Variable. + + L2 Bundle Member Descriptor: 4-octet field that carries a link-local + identifier as defined in [RFC4202]. + + Link attributes for L2 Bundle Member links are advertised as sub-TLVs + of the L2 Bundle Member Attributes TLV. The sub-TLVs are identical + to existing BGP-LS TLVs as identified in the table below. + + +================+==========================+====================+ + | TLV Code Point | Description | Reference Document | + +================+==========================+====================+ + | 1088 | Administrative group | [RFC7752] | + | | (color) | | + +----------------+--------------------------+--------------------+ + | 1089 | Maximum link bandwidth | [RFC7752] | + +----------------+--------------------------+--------------------+ + | 1090 | Max. reservable link | [RFC7752] | + | | bandwidth | | + +----------------+--------------------------+--------------------+ + | 1091 | Unreserved bandwidth | [RFC7752] | + +----------------+--------------------------+--------------------+ + | 1092 | TE default metric | [RFC7752] | + +----------------+--------------------------+--------------------+ + | 1093 | Link protection type | [RFC7752] | + +----------------+--------------------------+--------------------+ + | 1099 | Adjacency Segment | Section 2.2.1 | + | | Identifier (Adj-SID) TLV | | + +----------------+--------------------------+--------------------+ + | 1100 | LAN Adjacency Segment | Section 2.2.2 | + | | Identifier (Adj-SID) TLV | | + +----------------+--------------------------+--------------------+ + | 1114 | Unidirectional link | [RFC8571] | + | | delay | | + +----------------+--------------------------+--------------------+ + | 1115 | Min/Max Unidirectional | [RFC8571] | + | | link delay | | + +----------------+--------------------------+--------------------+ + | 1116 | Unidirectional Delay | [RFC8571] | + | | Variation | | + +----------------+--------------------------+--------------------+ + | 1117 | Unidirectional Link Loss | [RFC8571] | + +----------------+--------------------------+--------------------+ + | 1118 | Unidirectional residual | [RFC8571] | + | | bandwidth | | + +----------------+--------------------------+--------------------+ + | 1119 | Unidirectional available | [RFC8571] | + | | bandwidth | | + +----------------+--------------------------+--------------------+ + | 1120 | Unidirectional Utilized | [RFC8571] | + | | Bandwidth | | + +----------------+--------------------------+--------------------+ + + Table 3: BGP-LS Attribute TLVs are also used as sub-TLVs of + the L2 Bundle Member Attributes TLV + +2.3. Prefix Attribute TLVs + + The following Prefix Attribute TLVs are defined: + + +======+==========================+===============+ + | Type | Description | Section | + +======+==========================+===============+ + | 1158 | Prefix-SID | Section 2.3.1 | + +------+--------------------------+---------------+ + | 1159 | Range | Section 2.3.5 | + +------+--------------------------+---------------+ + | 1170 | Prefix Attribute Flags | Section 2.3.2 | + +------+--------------------------+---------------+ + | 1171 | Source Router Identifier | Section 2.3.3 | + +------+--------------------------+---------------+ + | 1174 | Source OSPF Router-ID | Section 2.3.4 | + +------+--------------------------+---------------+ + + Table 4: Prefix Attribute TLVs + + These TLVs should only be added to the BGP-LS Attribute associated + with the Prefix NLRI that describes the prefix of the IGP node that + is originating the corresponding IGP TLV/sub-TLV described below. + +2.3.1. Prefix-SID TLV + + The Prefix-SID TLV is used in order to advertise information related + to a Prefix-SID. This information is derived from the Prefix-SID + Sub-TLV of IS-IS (Section 2.1 of [RFC8667]), the Prefix-SID Sub-TLV + of OSPFv2 (Section 5 of [RFC8665]), and the Prefix-SID Sub-TLV of + OSPFv3 (Section 6 of [RFC8666]). + + The Prefix-SID 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 | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Flags | Algorithm | Reserved | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | SID/Index/Label (variable) // + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + Figure 10: Prefix-SID TLV Format + + Where: + + Type: 1158 + + Length: Variable. 7 or 8 octets depending on the label or index + encoding of the SID. + + Flags: 1-octet value that should be set as: + + * IS-IS Prefix-SID flags as defined in Section 2.1.1 of + [RFC8667]. + + * OSPFv2 Prefix-SID flags as defined in Section 5 of [RFC8665]. + + * OSPFv3 Prefix-SID flags as defined in Section 6 of [RFC8665]. + + Algorithm: 1-octet value identifies the algorithm. The semantics of + the algorithm are described in Section 3.1.1 of [RFC8402]. + + Reserved: 2 octets that MUST be set to 0 and ignored on receipt. + + SID/Index/Label: + + IS-IS: Label or index value as defined in Section 2.1 of + [RFC8667]. + + OSPFv2: Label or index value as defined in Section 5 of + [RFC8665]. + + OSPFv3: Label or index value as defined in Section 6 of + [RFC8666]. + + The Flags and, as an extension, the SID/Index/Label fields of this + TLV are interpreted according to the respective underlying IS-IS, + OSPFv2, or OSPFv3 protocol. The Protocol-ID of the BGP-LS Prefix + NLRI is used to determine the underlying protocol specification for + parsing these fields. + +2.3.2. Prefix Attribute Flags TLV + + The Prefix Attribute Flags TLV carries IPv4/IPv6 prefix attribute + flags information. These flags are defined for OSPFv2 in Section 2.1 + of [RFC7684], OSPFv3 in Appendix A.4.1.1 of [RFC5340], and IS-IS in + Section 2.1 of [RFC7794]. + + The Prefix Attribute Flags 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 | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Flags (variable) // + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + Figure 11: Prefix Attribute Flags TLV Format + + Where: + + Type: 1170 + + Length: Variable. + + Flags: a variable-length Flag field (according to the Length field). + Flags are routing protocol specific and are to be set as below: + + * IS-IS flags correspond to the IPv4/IPv6 Extended Reachability + Attribute Flags defined in Section 2.1 of [RFC7794]. In the + case of the X-flag when associated with IPv6 prefix + reachability, the setting corresponds to the setting of the + X-flag in the fixed format of IS-IS TLVs 236 [RFC5308] and 237 + [RFC5120]. + + * OSPFv2 flags correspond to the Flags field of the OSPFv2 + Extended Prefix TLV defined in Section 2.1 of [RFC7684]. + + * OSPFv3 flags map to the Prefix Options field defined in + Appendix A.4.1.1 of [RFC5340] and extended in Section 3.1 of + [RFC8362]. + + The Flags field of this TLV is interpreted according to the + respective underlying IS-IS, OSPFv2, or OSPFv3 protocol. The + Protocol-ID of the BGP-LS Prefix NLRI is used to determine the + underlying protocol specification for parsing this field. + +2.3.3. Source Router Identifier TLV + + The Source Router Identifier TLV contains the IPv4 or IPv6 Router + Identifier of the originator of the prefix. For the IS-IS protocol, + this is derived from the IPv4/IPv6 Source Router ID Sub-TLV as + defined in Section 2.2 of [RFC7794]. For the OSPF protocol, this is + derived from the Prefix Source Router Address Sub-TLV as defined in + Section 2.2 of [RFC9084]. + + The Source Router Identifier 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 | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | 4- or 16-octet Router Identifier // + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + Figure 12: Source Router Identifier TLV Format + + Where: + + Type: 1171 + + Length: Variable. 4 or 16 octets for the IPv4 or IPv6 prefix, + respectively. + + Router-ID: the IPv4 or IPv6 Router-ID in the case of IS-IS, and the + IPv4 or IPv6 Router Address in the case of OSPF. + +2.3.4. Source OSPF Router-ID TLV + + The Source OSPF Router-ID TLV is applicable only for the OSPF + protocol and contains the OSPF Router-ID of the originator of the + prefix. It is derived from the Prefix Source OSPF Router-ID Sub-TLV + as defined in Section 2.1 of [RFC9084]. + + The Source OSPF Router-ID 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 | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | 4-octet OSPF Router-ID // + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + Figure 13: Source OSPF Router-ID TLV Format + + Where: + + Type: 1174 + + Length: 4 octets + + OSPF Router-ID: the OSPF Router-ID of the node originating the + prefix. + +2.3.5. Range TLV + + The Range TLV is used in order to advertise a range of prefix-to-SID + mappings as part of the SRMS functionality [RFC8661], as defined in + the respective underlying IGP SR extensions: Section 4 of [RFC8665], + Section 5 of [RFC8666], and Section 2.4 of [RFC8667]. The + information advertised in the Range TLV is derived from the SID/Label + Binding TLV in the case of IS-IS and the OSPFv2/OSPFv3 Extended + Prefix Range TLV in the case of OSPFv2/OSPFv3. + + A Prefix NLRI, that has been advertised with a Range TLV, is + considered a normal routing prefix (i.e., prefix reachability) only + when there is also an IGP metric TLV (TLV 1095) associated it. + Otherwise, it is considered only as the first prefix in the range for + prefix-to-SID mapping advertisement. + + The format of the Range TLV is as follows: + + 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 | Range Size | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | sub-TLVs // + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + Figure 14: Range TLV Format + + Where: + + Type: 1159 + + Length: Variable. 11 or 12 octets depending on the label or index + encoding of the SID. + + Flags: 1-octet value that should be set as: + + * IS-IS SID/Label Binding TLV flags as defined in Section 2.4.1 + of [RFC8667]. + + * OSPFv2 OSPF Extended Prefix Range TLV flags as defined in + Section 4 of [RFC8665]. + + * OSPFv3 Extended Prefix Range TLV flags as defined in Section 5 + of [RFC8666]. + + Reserved: 1 octet that MUST be set to 0 and ignored on receipt. + + Range Size: 2 octets that carry the number of prefixes that are + covered by the advertisement. + + The Flags field of this TLV is interpreted according to the + respective underlying IS-IS, OSPFv2, or OSPFv3 protocol. The + Protocol-ID of the BGP-LS Prefix NLRI is used to determine the + underlying protocol specification for parsing this field. + + The prefix-to-SID mappings are advertised using sub-TLVs as below: + + IS-IS: + SID/Label Range TLV + Prefix-SID Sub-TLV + + OSPFv2/OSPFv3: + OSPFv2/OSPFv3 Extended Prefix Range TLV + Prefix-SID Sub-TLV + + BGP-LS: + Range TLV + Prefix-SID TLV (used as a sub-TLV in this context) + + The prefix-to-SID mapping information for the BGP-LS Prefix-SID TLV + (used as a sub-TLV in this context) is encoded as described in + Section 2.3.1. + +2.4. Equivalent IS-IS Segment Routing TLVs/Sub-TLVs + + This section illustrates the IS-IS Segment Routing Extensions TLVs + and sub-TLVs mapped to the ones defined in this document. + + For each BGP-LS TLV, the following table illustrates its equivalence + in IS-IS. + + +========================+==============================+===========+ + | Description | IS-IS TLV/sub-TLV | Reference | + +========================+==============================+===========+ + | SR Capabilities | SR-Capabilities Sub-TLV (2) | [RFC8667] | + +------------------------+------------------------------+-----------+ + | SR Algorithm | SR-Algorithm Sub-TLV (19) | [RFC8667] | + +------------------------+------------------------------+-----------+ + | SR Local Block | SR Local Block Sub-TLV (22) | [RFC8667] | + +------------------------+------------------------------+-----------+ + | SRMS Preference | SRMS Preference Sub-TLV (19) | [RFC8667] | + +------------------------+------------------------------+-----------+ + | Adjacency SID | Adj-SID Sub-TLV (31) | [RFC8667] | + +------------------------+------------------------------+-----------+ + | LAN Adjacency SID | LAN-Adj-SID Sub-TLV (32) | [RFC8667] | + +------------------------+------------------------------+-----------+ + | Prefix-SID | Prefix-SID Sub-TLV (3) | [RFC8667] | + +------------------------+------------------------------+-----------+ + | Range | SID/Label Binding TLV (149) | [RFC8667] | + +------------------------+------------------------------+-----------+ + | SID/Label | SID/Label Sub-TLV (1) | [RFC8667] | + +------------------------+------------------------------+-----------+ + | Prefix Attribute | Prefix Attribute Flags Sub- | [RFC7794] | + | Flags | TLV (4) | | + +------------------------+------------------------------+-----------+ + | Source Router | IPv4/IPv6 Source Router ID | [RFC7794] | + | Identifier | Sub-TLV (11/12) | | + +------------------------+------------------------------+-----------+ + | L2 Bundle Member | L2 Bundle Member Attributes | [RFC8668] | + | Attributes | TLV (25) | | + +------------------------+------------------------------+-----------+ + + Table 5: IS-IS Segment Routing Extensions TLVs/Sub-TLVs + +2.5. Equivalent OSPFv2/OSPFv3 Segment Routing TLVs/Sub-TLVs + + This section illustrates the OSPFv2 and OSPFv3 Segment Routing + Extensions TLVs and sub-TLVs mapped to the ones defined in this + document. + + For each BGP-LS TLV, the following tables illustrate its equivalence + in OSPFv2 and OSPFv3. + + +===================+==========================+===========+ + | Description | OSPFv2 TLV/sub-TLV | Reference | + +===================+==========================+===========+ + | SR Capabilities | SID/Label Range TLV (9) | [RFC8665] | + +-------------------+--------------------------+-----------+ + | SR Algorithm | SR-Algorithm TLV (8) | [RFC8665] | + +-------------------+--------------------------+-----------+ + | SR Local Block | SR Local Block TLV (14) | [RFC8665] | + +-------------------+--------------------------+-----------+ + | SRMS Preference | SRMS Preference TLV (15) | [RFC8665] | + +-------------------+--------------------------+-----------+ + | Adjacency SID | Adj-SID Sub-TLV (2) | [RFC8665] | + +-------------------+--------------------------+-----------+ + | LAN Adjacency SID | LAN Adj-SID Sub-TLV (3) | [RFC8665] | + +-------------------+--------------------------+-----------+ + | Prefix-SID | Prefix-SID Sub-TLV (2) | [RFC8665] | + +-------------------+--------------------------+-----------+ + | Range | OSPF Extended Prefix | [RFC8665] | + | | Range TLV (2) | | + +-------------------+--------------------------+-----------+ + | SID/Label | SID/Label Sub-TLV (1) | [RFC8665] | + +-------------------+--------------------------+-----------+ + | Prefix Attribute | Flags of OSPFv2 Extended | [RFC7684] | + | Flags | Prefix TLV (1) | | + +-------------------+--------------------------+-----------+ + | Source Router | Prefix Source Router | [RFC9084] | + | Identifier | Address Sub-TLV (5) | | + +-------------------+--------------------------+-----------+ + | Source OSPF | Prefix Source OSPF | [RFC9084] | + | Router-ID | Router-ID Sub-TLV (4) | | + +-------------------+--------------------------+-----------+ + + Table 6: OSPFv2 Segment Routing Extensions TLVs/Sub-TLVs + + +===================+==========================+===========+ + | Description | OSPFv3 TLV/sub-TLV | Reference | + +===================+==========================+===========+ + | SR Capabilities | SID/Label Range TLV (9) | [RFC8665] | + +-------------------+--------------------------+-----------+ + | SR Algorithm | SR-Algorithm TLV (8) | [RFC8665] | + +-------------------+--------------------------+-----------+ + | SR Local Block | SR Local Block TLV (14) | [RFC8665] | + +-------------------+--------------------------+-----------+ + | SRMS Preference | SRMS Preference TLV (15) | [RFC8665] | + +-------------------+--------------------------+-----------+ + | Adjacency SID | Adj-SID Sub-TLV (5) | [RFC8666] | + +-------------------+--------------------------+-----------+ + | LAN Adjacency SID | LAN Adj-SID Sub-TLV (6) | [RFC8666] | + +-------------------+--------------------------+-----------+ + | Prefix-SID | Prefix-SID Sub-TLV (4) | [RFC8666] | + +-------------------+--------------------------+-----------+ + | Range | OSPFv3 Extended Prefix | [RFC8666] | + | | Range TLV (9) | | + +-------------------+--------------------------+-----------+ + | SID/Label | SID/Label Sub-TLV (7) | [RFC8666] | + +-------------------+--------------------------+-----------+ + | Prefix Attribute | Prefix Option Fields of | [RFC8362] | + | Flags | Prefix TLV types 3,5,6 | | + +-------------------+--------------------------+-----------+ + | Source OSPF | Prefix Source Router | [RFC9084] | + | Router Identifier | Address Sub-TLV (28) | | + +-------------------+--------------------------+-----------+ + | Source OSPF | Prefix Source OSPF | [RFC9084] | + | Router-ID | Router-ID Sub-TLV (27) | | + +-------------------+--------------------------+-----------+ + + Table 7: OSPFv3 Segment Routing Extensions TLVs/Sub-TLVs + +3. IANA Considerations + + IANA has registered the following code points in the "BGP-LS Node + Descriptor, Link Descriptor, Prefix Descriptor, and Attribute TLVs" + registry under the "Border Gateway Protocol - Link State (BGP-LS) + Parameter" registry based on Table 8. The column "IS-IS TLV/Sub-TLV" + defined in the registry does not require any value and should be left + empty. + +3.1. TLV/Sub-TLV Code Points Summary + + This section contains the global table of all TLVs/sub-TLVs defined + in this document. + + +================+=============================+===============+ + | TLV Code Point | Description | Reference | + +================+=============================+===============+ + | 1034 | SR Capabilities | Section 2.1.2 | + +----------------+-----------------------------+---------------+ + | 1035 | SR Algorithm | Section 2.1.3 | + +----------------+-----------------------------+---------------+ + | 1036 | SR Local Block | Section 2.1.4 | + +----------------+-----------------------------+---------------+ + | 1037 | SRMS Preference | Section 2.1.5 | + +----------------+-----------------------------+---------------+ + | 1099 | Adjacency SID | Section 2.2.1 | + +----------------+-----------------------------+---------------+ + | 1100 | LAN Adjacency SID | Section 2.2.2 | + +----------------+-----------------------------+---------------+ + | 1158 | Prefix-SID | Section 2.3.1 | + +----------------+-----------------------------+---------------+ + | 1159 | Range | Section 2.3.5 | + +----------------+-----------------------------+---------------+ + | 1161 | SID/Label | Section 2.1.1 | + +----------------+-----------------------------+---------------+ + | 1170 | Prefix Attribute Flags | Section 2.3.2 | + +----------------+-----------------------------+---------------+ + | 1171 | Source Router Identifier | Section 2.3.3 | + +----------------+-----------------------------+---------------+ + | 1172 | L2 Bundle Member Attributes | Section 2.2.3 | + +----------------+-----------------------------+---------------+ + | 1174 | Source OSPF Router-ID | Section 2.3.4 | + +----------------+-----------------------------+---------------+ + + Table 8: Summary of TLV/Sub-TLV Code Points + +4. Manageability Considerations + + This section is structured as recommended in [RFC5706]. + + The new protocol extensions introduced in this document augment the + existing IGP topology information that is distributed via [RFC7752]. + Procedures and protocol extensions defined in this document do not + affect the BGP protocol operations and management other than as + discussed in the Manageability Considerations section of [RFC7752]. + Specifically, the malformed attribute tests for syntactic checks in + the Fault Management section of [RFC7752] now encompass the new BGP- + LS Attribute TLVs defined in this document. The semantic or content + checking for the TLVs specified in this document and their + association with the BGP-LS NLRI types or their BGP-LS Attribute is + left to the consumer of the BGP-LS information (e.g., an application + or a controller) and not the BGP protocol. + + A consumer of the BGP-LS information retrieves this information over + a BGP-LS session (refer to Sections 1 and 2 of [RFC7752]). The + handling of semantic or content errors by the consumer would be + dictated by the nature of its application usage and hence is beyond + the scope of this document. + + This document only introduces new Attribute TLVs, and any syntactic + error in them would result in the BGP-LS Attribute being discarded + with an error log. The SR information introduced in BGP-LS by this + specification may be used by BGP-LS consumer applications like an SR + Path Computation Engine (PCE) to learn the SR capabilities of the + nodes in the topology and the mapping of SR segments to those nodes. + This can enable the SR PCE to perform path computations based on SR + for traffic engineering use cases and to steer traffic on paths + different from the underlying IGP-based distributed best-path + computation. Errors in the encoding or decoding of the SR + information may result in the unavailability of such information to + the SR PCE or incorrect information being made available to it. This + may result in the SR PCE not being able to perform the desired SR- + based optimization functionality or to perform it in an unexpected or + inconsistent manner. The handling of such errors by applications + like SR PCE may be implementation specific and out of scope of this + document. + + The extensions, specified in this document, do not introduce any new + configuration or monitoring aspects in BGP or BGP-LS other than as + discussed in [RFC7752]. The manageability aspects of the underlying + SR features are covered by [RFC9020], [ISIS-SR-YANG], and + [OSPF-SR-YANG]. + +5. Security Considerations + + The new protocol extensions introduced in this document augment the + existing IGP topology information that is distributed via [RFC7752]. + The advertisement of the SR link attribute information defined in + this document presents similar risk as associated with the existing + set of link attribute information as described in [RFC7752]. The + Security Considerations section of [RFC7752] also applies to these + extensions. The procedures and new TLVs defined in this document, by + themselves, do not affect the BGP-LS security model discussed in + [RFC7752]. + + The TLVs introduced in this document are used to propagate IGP- + defined information (see [RFC8665], [RFC8666], and [RFC8667]). These + TLVs represent the SR information associated with the IGP node, link, + and prefix. The IGP instances originating these TLVs are assumed to + support all the required security and authentication mechanisms (as + described in [RFC8665], [RFC8666], and [RFC8667]) in order to prevent + any security issue when propagating the TLVs into BGP-LS. + + BGP-LS SR extensions enable traffic engineering use cases within the + SR domain. SR operates within a trusted domain [RFC8402], and its + security considerations also apply to BGP-LS sessions when carrying + SR information. The SR traffic engineering policies using the SIDs + advertised via BGP-LS are expected to be used entirely within this + trusted SR domain (e.g., between multiple ASes/domains within a + single provider network). Therefore, precaution is necessary to + ensure that the link-state information (including SR information) + advertised via BGP-LS sessions is limited to consumers in a secure + manner within this trusted SR domain. BGP peering sessions for + address families other than link state may be set up to routers + outside the SR domain. The isolation of BGP-LS peering sessions is + recommended to ensure that BGP-LS topology information (including the + newly added SR information) is not advertised to an external BGP + peering session outside the SR domain. + +6. References + +6.1. Normative References + + [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate + Requirement Levels", BCP 14, RFC 2119, + DOI 10.17487/RFC2119, March 1997, + <https://www.rfc-editor.org/info/rfc2119>. + + [RFC4202] Kompella, K., Ed. and Y. Rekhter, Ed., "Routing Extensions + in Support of Generalized Multi-Protocol Label Switching + (GMPLS)", RFC 4202, DOI 10.17487/RFC4202, October 2005, + <https://www.rfc-editor.org/info/rfc4202>. + + [RFC5120] Przygienda, T., Shen, N., and N. Sheth, "M-ISIS: Multi + Topology (MT) Routing in Intermediate System to + Intermediate Systems (IS-ISs)", RFC 5120, + DOI 10.17487/RFC5120, February 2008, + <https://www.rfc-editor.org/info/rfc5120>. + + [RFC5308] Hopps, C., "Routing IPv6 with IS-IS", RFC 5308, + DOI 10.17487/RFC5308, October 2008, + <https://www.rfc-editor.org/info/rfc5308>. + + [RFC5340] Coltun, R., Ferguson, D., Moy, J., and A. Lindem, "OSPF + for IPv6", RFC 5340, DOI 10.17487/RFC5340, July 2008, + <https://www.rfc-editor.org/info/rfc5340>. + + [RFC7684] Psenak, P., Gredler, H., Shakir, R., Henderickx, W., + Tantsura, J., and A. Lindem, "OSPFv2 Prefix/Link Attribute + Advertisement", RFC 7684, DOI 10.17487/RFC7684, November + 2015, <https://www.rfc-editor.org/info/rfc7684>. + + [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, + <https://www.rfc-editor.org/info/rfc7752>. + + [RFC7794] Ginsberg, L., Ed., Decraene, B., Previdi, S., Xu, X., and + U. Chunduri, "IS-IS Prefix Attributes for Extended IPv4 + and IPv6 Reachability", RFC 7794, DOI 10.17487/RFC7794, + March 2016, <https://www.rfc-editor.org/info/rfc7794>. + + [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC + 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, + May 2017, <https://www.rfc-editor.org/info/rfc8174>. + + [RFC8362] Lindem, A., Roy, A., Goethals, D., Reddy Vallem, V., and + F. Baker, "OSPFv3 Link State Advertisement (LSA) + Extensibility", RFC 8362, DOI 10.17487/RFC8362, April + 2018, <https://www.rfc-editor.org/info/rfc8362>. + + [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, <https://www.rfc-editor.org/info/rfc8402>. + + [RFC8571] Ginsberg, L., Ed., Previdi, S., Wu, Q., Tantsura, J., and + C. Filsfils, "BGP - Link State (BGP-LS) Advertisement of + IGP Traffic Engineering Performance Metric Extensions", + RFC 8571, DOI 10.17487/RFC8571, March 2019, + <https://www.rfc-editor.org/info/rfc8571>. + + [RFC8665] Psenak, P., Ed., Previdi, S., Ed., Filsfils, C., Gredler, + H., Shakir, R., Henderickx, W., and J. Tantsura, "OSPF + Extensions for Segment Routing", RFC 8665, + DOI 10.17487/RFC8665, December 2019, + <https://www.rfc-editor.org/info/rfc8665>. + + [RFC8666] Psenak, P., Ed. and S. Previdi, Ed., "OSPFv3 Extensions + for Segment Routing", RFC 8666, DOI 10.17487/RFC8666, + December 2019, <https://www.rfc-editor.org/info/rfc8666>. + + [RFC8667] Previdi, S., Ed., Ginsberg, L., Ed., Filsfils, C., + Bashandy, A., Gredler, H., and B. Decraene, "IS-IS + Extensions for Segment Routing", RFC 8667, + DOI 10.17487/RFC8667, December 2019, + <https://www.rfc-editor.org/info/rfc8667>. + + [RFC8668] Ginsberg, L., Ed., Bashandy, A., Filsfils, C., Nanduri, + M., and E. Aries, "Advertising Layer 2 Bundle Member Link + Attributes in IS-IS", RFC 8668, DOI 10.17487/RFC8668, + December 2019, <https://www.rfc-editor.org/info/rfc8668>. + + [RFC9084] Wang, A., Lindem, A., Dong, J., Psenak, P., and K. + Talaulikar, Ed., "OSPF Prefix Originator Extensions", + RFC 9084, DOI 10.17487/RFC9084, August 2021, + <https://www.rfc-editor.org/info/rfc9084>. + +6.2. Informative References + + [ISIS-SR-YANG] + Litkowski, S., Qu, Y., Sarkar, P., Chen, I., and J. + Tantsura, "YANG Data Model for IS-IS Segment Routing", + Work in Progress, Internet-Draft, draft-ietf-isis-sr-yang- + 10, 21 February 2021, + <https://datatracker.ietf.org/doc/html/draft-ietf-isis-sr- + yang-10>. + + [OSPF-SR-YANG] + Yeung, D., Qu, Y., Zhang, J., Chen, I., and A. Lindem, + "YANG Data Model for OSPF SR (Segment Routing) Protocol", + Work in Progress, Internet-Draft, draft-ietf-ospf-sr-yang- + 15, 2 July 2021, <https://datatracker.ietf.org/doc/html/ + draft-ietf-ospf-sr-yang-15>. + + [RFC5706] Harrington, D., "Guidelines for Considering Operations and + Management of New Protocols and Protocol Extensions", + RFC 5706, DOI 10.17487/RFC5706, November 2009, + <https://www.rfc-editor.org/info/rfc5706>. + + [RFC8661] Bashandy, A., Ed., Filsfils, C., Ed., Previdi, S., + Decraene, B., and S. Litkowski, "Segment Routing MPLS + Interworking with LDP", RFC 8661, DOI 10.17487/RFC8661, + December 2019, <https://www.rfc-editor.org/info/rfc8661>. + + [RFC9020] Litkowski, S., Qu, Y., Lindem, A., Sarkar, P., and J. + Tantsura, "YANG Data Model for Segment Routing", RFC 9020, + DOI 10.17487/RFC9020, May 2021, + <https://www.rfc-editor.org/info/rfc9020>. + +Acknowledgements + + The authors would like to thank Jeffrey Haas, Aijun Wang, Robert + Raszuk, and Susan Hares for their review of this document and their + comments. The authors would also like to thank Alvaro Retana for his + extensive review and comments, which helped correct issues and + improve the document. + +Contributors + + The following people have substantially contributed to the editing of + this document: + + Peter Psenak + Cisco Systems + + Email: ppsenak@cisco.com + + + Les Ginsberg + Cisco Systems + + Email: ginsberg@cisco.com + + + Acee Lindem + Cisco Systems + + Email: acee@cisco.com + + + Saikat Ray + Individual + + Email: raysaikat@gmail.com + + + Jeff Tantsura + Apstra Inc. + + Email: jefftant.ietf@gmail.com + + +Authors' Addresses + + Stefano Previdi + Huawei Technologies + Rome + Italy + + Email: stefano@previdi.net + + + Ketan Talaulikar (editor) + Cisco Systems, Inc. + India + + Email: ketant@cisco.com + + + Clarence Filsfils + Cisco Systems, Inc. + Brussels + Belgium + + Email: cfilsfil@cisco.com + + + Hannes Gredler + RtBrick Inc. + + Email: hannes@rtbrick.com + + + Mach(Guoyi) Chen + Huawei Technologies + Huawei Building, No. 156 Beiqing Rd. + Beijing + 100095 + China + + Email: mach.chen@huawei.com |