Border Gateway Protocol - Link State (BGP-LS) Extensions for Segment Routing over IPv6 (SRv6)
Extracted elements (27)
A dedicated SRv6 SID NLRI (type 6) is introduced rather than embedding SIDs in the Node NLRI's BGP-LS Attribute. This avoids large, monolithic BGP-LS updates when the number of SRv6 SIDs on a node grows or when a single SID changes, enabling granular per-SID advertisement and better scaling.
For SRv6 EPE, BGP PeerNode and PeerSet SIDs are advertised using the SRv6 SID NLRI (associated with the BGP Speaker Node) rather than additional Link NLRIs as done for SR-MPLS. This avoids the SR-MPLS model's non-conventional 'peering session' Link NLRIs and allows all peers in a PeerSet to be expressed as attributes of a single NLRI.
A Prefix NLRI with an SRv6 Locator TLV is considered both a routing prefix and an SRv6 locator only when an IGP Metric TLV (TLV 1095) is also present; without it, the NLRI is treated solely as an SRv6 locator advertisement.
The SRv6 Capabilities TLV defined in this document is intentionally not extensible (unlike the IS-IS/OSPFv3 counterparts which allow sub-TLVs). Any future extensions are expected to be introduced as new top-level TLVs in the BGP-LS Attribute rather than sub-TLVs within the SRv6 Capabilities TLV.
A single instance of the SRv6 Capabilities TLV MUST be included in the BGP-LS Attribute for each SRv6-capable node.
For SRv6 EPE or Direct Protocol-ID SIDs, the Algorithm value in the SRv6 Endpoint Behavior TLV MUST be 0 unless an algorithm is locally associated with the SRv6 Locator from which the SID is allocated.
The SRv6 BGP PeerNode SID TLV MUST be included alongside SRv6 SIDs associated with BGP PeerNode or PeerSet functionality. Reserved bits in its Flags field MUST be set to 0 when originated and ignored on receipt.
The SRv6 Endpoint Behavior TLV MUST be included in the BGP-LS Attribute associated with every BGP-LS SRv6 SID NLRI. Undefined Flags bits MUST be set to 0 when originating and ignored on receipt.
The SRv6 SID Descriptors field of the SRv6 SID NLRI MUST contain a single SRv6 SID Information TLV and MAY contain a Multi-Topology Identifier TLV.
The sum of LB Length, LN Length, Fun. Length, and Arg. Length in the SRv6 SID Structure TLV MUST be less than or equal to 128.
A new BGP-LS NLRI type, SRv6 SID NLRI (type 6), is introduced to advertise SRv6 SIDs associated with a node. It comprises a Protocol-ID (1 octet), Identifier (8 octets), Local Node Descriptors, and SRv6 SID Descriptors, enabling granular per-SID advertisement without inflating Node NLRI updates.
SRv6 MSD types defined in RFC 9352 Section 4 are reused with the BGP-LS Node MSD TLV (RFC 8814) to advertise SRH operation limits at the node level. Each MSD type is encoded as a 1-octet type followed by a 1-octet value.
SRv6 MSD types from RFC 9352 are reused with the BGP-LS Link MSD TLV (RFC 8814) to advertise per-link SRH operation limits. Each type is encoded as 1-octet type plus 1-octet value.
The SRv6 BGP EPE SID Flags byte defines three bits: B-Flag (Backup, eligible for FRR), S-Flag (Set, SID refers to a BGP Peer Set), and P-Flag (Persistent, value survives restart/flap). These flags are shared by both the SRv6 BGP PeerNode SID TLV and the SRv6 End.X SID TLV when advertising BGP Peer Adjacency SIDs.
A new 'SRv6 BGP EPE SID Flags' registry is created under the BGP-LS Parameters registry group with a Standards Action allocation policy. Initial entries define bits 0 (B-Flag), 1 (S-Flag), and 2 (P-Flag); bits 3–7 are unassigned.
IANA has assigned nine new TLV code points in the 'BGP-LS NLRI and Attribute TLVs' registry: 518 (SRv6 SID Information), 1038 (SRv6 Capabilities), 1106 (SRv6 End.X SID), 1107 (IS-IS SRv6 LAN End.X SID), 1108 (OSPFv3 SRv6 LAN End.X SID), 1162 (SRv6 Locator), 1250 (SRv6 Endpoint Behavior), 1251 (SRv6 BGP PeerNode SID), and 1252 (SRv6 SID Structure).
IANA has assigned SRv6 SID NLRI as type 6 in the 'BGP-LS NLRI Types' registry under the 'Border Gateway Protocol - Link State (BGP-LS) Parameters' registry group.
BGP-LS SRv6 extensions advertise SRv6 topology information intended only for consumers within the trusted SR domain. The isolation of BGP-LS peering sessions is RECOMMENDED to ensure that SR topology information is not leaked to external BGP peering sessions outside the SR domain.
The security model for BGP-LS SRv6 extensions inherits from RFC 7752. IGP instances originating these TLVs are assumed to support all required security and authentication mechanisms per RFC 9352 and RFC 9513; the extensions themselves do not alter the BGP-LS security model.
The SRv6 BGP PeerNode SID TLV (Type 1251, Length 12) encodes a 1-octet Flags (B/S/P bits), 1-octet Weight, 2-octet Reserved, 4-octet Peer AS Number, and 4-octet Peer BGP Identifier (Router-ID). It carries EPE PeerNode and PeerSet SID context.
The SRv6 Capabilities TLV (Type 1038, Length 4) carries a 2-octet Flags field (copied from IS-IS or OSPFv3 SRv6 Capabilities TLVs) and a 2-octet Reserved field. It is included in the BGP-LS Attribute of the Node NLRI to signal SRv6 support.
The SRv6 End.X SID TLV (Type 1106, variable length) encodes a 2-octet Endpoint Behavior, 1-octet Flags, 1-octet Algorithm, 1-octet Weight, 1-octet Reserved, and a 16-octet SRv6 SID (128-bit), followed by optional sub-TLVs. It advertises IGP adjacency SIDs or BGP EPE Peer Adjacency SIDs.
The SRv6 Endpoint Behavior TLV (Type 1250, Length 4) encodes a 2-octet Endpoint Behavior code point (from RFC 8986 registry), a 1-octet Flags field, and a 1-octet Algorithm. It is a mandatory attribute TLV for each SRv6 SID NLRI.
The SRv6 LAN End.X SID TLV (Type 1107 for IS-IS, 1108 for OSPFv3, variable length) adds a Neighbor ID field (6 octets for IS-IS System-ID or 4 octets for OSPFv3 Router-ID) before the 16-octet SID, allowing advertisement of End.X SIDs to all non-DIS/non-DR LAN neighbors in a single BGP-LS Link NLRI.
The SRv6 Locator TLV (Type 1162, variable length) carries a 1-octet Flags field, 1-octet Algorithm, 2-octet Reserved, and 4-octet Metric, followed by optional sub-TLVs. It is advertised in the BGP-LS Attribute of a Prefix NLRI whose prefix matches the SRv6 locator.
The SRv6 SID Information TLV (Type 518, Length 16) carries a single 16-octet SID field encoding the SRv6 SID as a 128-bit value. It is used in the SRv6 SID Descriptors portion of the SRv6 SID NLRI.
The SRv6 SID Structure TLV (Type 1252, Length 4) carries four 1-octet fields: LB Length (Locator Block bits), LN Length (Locator Node bits), Fun. Length (Function bits), and Arg. Length (Argument bits). It can appear as an attribute TLV for the SRv6 SID NLRI or as a sub-TLV of SRv6 End.X or LAN End.X SID TLVs.