| Internet-Draft | BGP-LS Extensions for Algorithm Related | October 2026 |
| Chen, et al. | Expires 21 April 2027 | [Page] |
This draft describes a mechanism to distribute SR-MPLS algorithm Related Adjacency SID from controllers to the headend routers using BGP-LS.¶
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 21 April 2027.¶
Copyright (c) 2026 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 Revised BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Revised BSD License.¶
[I-D.ietf-lsr-algorithm-related-adjacency-sid] defines the algorithm identifier can be included as part of an Adjacency-SID advertisement for SR-MPLS.¶
[I-D.ietf-idr-sr-te-policy-attr] proposes extensions of BGP and defines new Segment Types to provide algorithm information for SR-MPLS Adjacency-SIDs when delivering SR Policy via BGP.¶
[RFC9085]defines extensions to the Border Gateway Protocol-Link State (BGP-LS) address family in order to carry SR information via BGP, and an algorithm identifier is included as part of the Prefix-SID TLV advertisement.¶
[RFC9857] describes a mechanism to distribute SR policy information to external components using BGP-LS. SR policy information can be used by external components for path computation, re-optimization, service placement, network visualization, etc.¶
This draft describes a mechanism to distribute SR-MPLS algorithm Related Adjacency SID to external components using BGP-LS.¶
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.¶
[I-D.ietf-lsr-algorithm-related-adjacency-sid] defines the algorithm identifier can be included as part of an Adjacency-SID advertisement for SR-MPLS. This section introduces extensions to BGP-LS to convey algorithm information associated with SR-MPLS adjacency SIDs.¶
The following link attribute TLVs are defined:¶
| Type | Description |
|---|---|
| TBD1 | Adjacency SID with Algorithm |
| TBD2 | LAN Adjacency SID with Algorithm |
The Adjacency SID with Algorithm TLV is used in order to advertise information related to an algorithm Related Adjacency SID. This information is derived from the Adjacency Segment Identifier (Adj-SID) with Algorithm Sub-TLV of ISIS/OSPFv2/OSPFv3(Section 4 of [I-D.ietf-lsr-algorithm-related-adjacency-sid]).¶
The Adjacency SID with 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 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Flags | Weight | Algorithm | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SID/Label/Index (variable) //
+---------------------------------------------------------------+
¶
where:¶
Type: TBD1 (to be assigned by IANA).¶
Length: variable.¶
Flags: 1-octet value that should be set as:¶
Weight: 1 octet carrying the weight used for load-balancing purposes. The use of weight is described in Section 4 of [I-D.ietf-lsr-algorithm-related-adjacency-sid].¶
Algorithm: 1-octet value identifies the algorithm. The semantics of the algorithm are described in ISIS/OSPFv2/OSPFv3 Adj-SID with Algorithm([I-D.ietf-lsr-algorithm-related-adjacency-sid]).¶
Reserved: 1-octet that MUST be set to 0 and ignored on receipt.¶
SID/Label/Index: Label or index value as defined in Section 4 of [I-D.ietf-lsr-algorithm-related-adjacency-sid].¶
This information is derived from LAN-Adj-SID with Algorithm Sub-TLV of ISIS/OSPFv2/OSPFv3(Section 4 of [I-D.ietf-lsr-algorithm-related-adjacency-sid]).¶
The LAN Adjacency SID with 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 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Flags | Weight | Algorithm | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| OSPF Neighbor ID / IS-IS System ID |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SID/Label/Index (variable) //
+---------------------------------------------------------------+
¶
where:¶
Type: TBD2 (to be assigned by IANA).¶
Length: variable.¶
Flags: 1-octet value that should be set as:¶
Weight: 1 octet carrying the weight used for load-balancing purposes. The use of weight is described in Section 4 of [I-D.ietf-lsr-algorithm-related-adjacency-sid].¶
Algorithm: 1-octet value identifies the algorithm. The semantics of the algorithm are described in ISIS/OSPFv2/OSPFv3 LAN-Adj-SID with Algorithm([I-D.ietf-lsr-algorithm-related-adjacency-sid]).¶
Reserved: 1-octet that MUST be set to 0 and ignored on receipt.¶
Neighbor ID/IS-IS System ID: 6 octets for IS-IS for the System ID, and 4 octets for OSPF for the OSPF Router-ID of the neighbor.¶
SID/Label/Index: Label or index value as defined in ISIS/OSPFv2/OSPFv3 LAN-Adj-SID with Algorithm([I-D.ietf-lsr-algorithm-related-adjacency-sid]).¶
[I-D.ietf-idr-sr-te-policy-attr] defines four new Segment types of Segment Sub-TLV to provide algorithm information for SR-MPLS Adjacency-SIDs. This section defines the encoding of the Segment Descriptors for each of those Segment types to be used in the Segment sub-TLV describes in [RFC9857].¶
The following Segment Descriptors are defined and their mapping to the respective segment types defined in [I-D.ietf-idr-sr-te-policy-attr]:¶
+======+============================================================+ | Type | Segment Description | +======+============================================================+ | TBD3 | (Type L)IPv4 Address and Local Interface ID | | | with optional Algorithm | +------+------------------------------------------------------------+ | TBD4 | (Type M)IPv4 Addresses for link endpoints as | | | Local, Remote pair with optional Algorithm | +------+------------------------------------------------------------+ | TBD5 | (Type N)IPv6 Prefix and Interface ID for | | | link endpoints as Local, Remote pair, with | | | optional Algorithm for SR-MPLS | +------+------------------------------------------------------------+ | TBD6 | (Type O)IPv6 Addresses for link endpoints as | | | Local, Remote pair, with optional Algorithm | | | for SR-MPLS | +------+------------------------------------------------------------+¶
The Segment is SR-MPLS Adjacency SID with optional Algorithm and is specified as an IPv4 node address along with the local interface ID on that node. The format of its Segment Descriptor 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
+-+-+-+-+-+-+-+-+
| Algorithm |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IPv4 Node Address (4 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Local Interface ID (4 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
¶
where:¶
Algorithm: 1-octet value that indicates the algorithm used for picking the SID. The algorithm values are from IGP Algorithm Types registry under the IANA Interior Gateway Protocol (IGP) Parameters.¶
IPv4 Node Address: 4-octet value which carries the IPv4 address associated with the node.¶
Local Interface ID: 4-octet value which carries the local interface ID of the node identified by the Node Address.¶
The Segment is SR-MPLS Adjacency SID with optional Algorithm type and is specified as a pair of IPv4 local and remote addresses. The format of its Segment Descriptor 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
+-+-+-+-+-+-+-+-+
| Algorithm |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IPv4 Local Address (4 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IPv4 Remote Address (4 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
¶
where:¶
Algorithm: 1-octet value that indicates the algorithm used for picking the SID. This is valid only when the A-flag has been set in the Segment TLV as defined in [RFC9857]. When A-Flag is not encoded, this field SHOULD be set to zero on transmission and MUST be ignored on receipt.¶
Other fields have the same meaning as the Type 6 Segment Descriptor in Section 5.7.1.1.6 of [RFC9857], where:¶
IPv4 Local Address: 4-octet value which carries the local IPv4 address associated with the node.¶
IPv4 Remote Address: 4-octet value which carries the remote IPv4 address associated with the node's neighbor. This is optional and MAY be set to 0 when not used (e.g. when identifying point-to-point links).¶
The Segment is SR-MPLS Adjacency SID optional Algorithm type and is specified as a pair of IPv6 global address and interface ID for local and remote nodes. The format of its Segment Descriptor 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
+-+-+-+-+-+-+-+-+
| Algorithm |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// IPv6 Local Node Global Address (16 octets) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Local Node Interface ID (4 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// IPv6 Remote Node Global Address (16 octets) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Remote Node Interface ID (4 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
¶
where:¶
Algorithm: 1-octet value that indicates the algorithm used for picking the SID. This is valid only when the A-flag has been set in the Segment TLV as defined in [RFC9857]. When A-Flag is not encoded, this field SHOULD be set to zero on transmission and MUST be ignored on receipt.¶
Other fields have the same meaning as the Type 7 Segment Descriptor in Section 5.7.1.1.7 of [RFC9857], where:¶
IPv6 Local Node Global Address: 16-octet value which carries the IPv6 global address associated with the local node.¶
Local Node Interface ID : 4-octet value which carries the interface ID of the local node identified by the Local Node Address.¶
IPv6 Remote Node Global Address: 16-octet value which carries the IPv6 global address associated with the remote node. This is optional and MAY be set to 0 when not used (e.g. when identifying point-to-point links).¶
Remote Node Interface ID: 4-octet value which carries the interface ID of the remote node identified by the Remote Node Address. This is optional and MAY be set to 0 when not used (e.g. when identifying point-to-point links).¶
The Segment is SR-MPLS Adjacency SID optional Algorithm type and is specified as a pair of IPv6 Global addresses for local and remote interface addresses. The format of its Segment Descriptor 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
+-+-+-+-+-+-+-+-+
| Algorithm |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// IPv6 Local Address (16 octets) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// IPv6 Remote Address (16 octets) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
¶
where:¶
Algorithm: 1-octet value that indicates the algorithm used for picking the SID. This is valid only when the A-flag has been set in the Segment TLV as defined in [RFC9857]. When A-Flag is not encoded, this field SHOULD be set to zero on transmission and MUST be ignored on receipt.¶
Other fields have the same meaning as the Type 8 Segment Descriptor in Section 5.7.1.1.8 of [RFC9857], where:¶
IPv6 Local Address: 16-octet value which carries the local IPv6 address associated with the node.¶
IPv6 Remote Address: 16-octet value which carries the remote IPv6 address associated with the node's neighbor¶
TBD.¶
This document makes the following Link Attribute TLVs registry under the "Border Gateway Protocol-Link State (BGP-LS) Parameter".¶
Value Description Reference -------------------------------------------------------------- TBD1 Adjacency SID with Algorithm This document TBD2 LAN Adjacency SID with Algorithm This document¶
This document makes the following SR Segment Descriptor Types registry under the "SR Segment Descriptor Types". The registry contains the following codepoints to be assigned by IANA with the reference set to this document:¶
Value Segment Description Reference
---------------------------------------------------------------------------------
TBD3 IPv4 Node Address and Local Interface ID with optional This document
SR Algorithm for SR-MPLS
TBD4 IPv4 Addresses for link endpoints as Local, Remote This document
pair with SR optional Algorithm for SR-MPLS
TBD5 IPv6 Node Addresses and Interface ID for link endpoints as This document
Local, Remote pair, with optional SR Algorithm for SR-MPLS
TBD6 IPv6 Addresses for link endpoints as Local, Remote pair, This document
with optional SR Algorithm for SR-MPLS
¶
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. Security considerations for acquiring and distributing BGP-LS SR information are discussed in [RFC9085]. Security considerations for acquiring and distributing BGP-LS SR Policy information are discussed in [RFC9857].¶