rfc-9857

Advertisement of Segment Routing Policies Using BGP - Link State

S. Previdi, K. Talaulikar (Editor), J. Dong, H. Gredler, J. Tantsura
date2025-10 streamIETF areartg wgidr statusPROPOSED STANDARD pages52 canonicalhttps://www.rfc-editor.org/rfc/rfc9857 doi10.17487/RFC9857 errataview
This document describes a mechanism used to collect Segment Routing (SR) Policy information that is locally available in a node and advertise it into BGP - Link State (BGP-LS) updates. Such information can be used by external components for path computation, reoptimization, service placement, network visualization, etc.

Extracted elements (29)

design-rationale §1

BGP-LS is used rather than introducing a new protocol for SR Policy state collection because external controllers already use BGP-LS for topology information, and reusing the same protocol avoids multiple protocols for network information collection.

routing, bgp, mpls

design-rationale §1

The BGP-LS Producer can be either the SR Policy headend directly or a PCE acting on behalf of headend nodes, accommodating both direct reporting architectures and management-based PCE architectures where headend nodes do not implement PCEP.

routing, bgp, mpls

design-rationale §5.1

The SR Binding SID TLV (Type 1201) was deprecated for SRv6 use because it cannot carry SRv6 Endpoint behavior or SID structure information; the dedicated SRv6 Binding SID TLV (Type 1212) with sub-TLV support was introduced instead to handle these SRv6-specific attributes.

routing, bgp, mpls

interoperability-note §5.1

The SR Binding SID TLV (Type 1201) SHOULD NOT be used for SRv6 BSIDs because it cannot signal SRv6 Endpoint behavior or SID structure; its use for SRv6 has been deprecated and is documented only for backward compatibility with early draft implementations.

routing, bgp, mpls

normative-requirement §5.6.4 MUST NOT

If the PCEP ASSOCIATION Object size would cause a single SR Policy Candidate Path NLRI update to exceed the supported BGP message size, the PCEP ASSOCIATION Object MUST NOT be encoded and the sub-TLV MUST be skipped along with an error log.

routing, bgp

normative-requirement §3 MUST

The Local Node Descriptors TLV in the SR Policy Candidate Path NLRI MUST include at least one of IPv4 Router-ID of Local Node (TLV 1028) or IPv6 Router-ID of Local Node (TLV 1029) to identify the headend node.

routing, bgp

normative-requirement §5.6.6 MUST NOT

The O-Flag in the SR Metric Constraint sub-TLV MUST NOT be set in more than one instance of this TLV for a given candidate path advertisement, as it identifies the single optimization metric for a dynamic path.

routing, bgp, mpls

normative-requirement §5.6 MUST NOT

The P-Flag and U-Flag in the SR Candidate Path Constraints TLV are mutually exclusive; both MUST NOT be set simultaneously as they indicate contradictory preferences for protected vs. unprotected SIDs.

routing, bgp, mpls

normative-requirement §3 MUST

The Protocol-ID field in the SR Policy Candidate Path NLRI MUST be set to 'Segment Routing' (value 9), which is newly introduced by this document for advertisement of SR Policies.

routing, bgp, mpls

normative-requirement §5.7 MUST

The SR Segment sub-TLV MUST be included as an ordered set within the SR Segment List TLV when the SID list is not empty; when the SID list is empty (e.g., for a dynamic path not yet computed), the SR Segment List TLV MUST NOT include any SR Segment sub-TLVs.

routing, bgp, mpls

normative-requirement §3.2 MUST NOT

When a PCE is the BGP-LS Producer, it MUST NOT include its own identifiers in the Node Descriptor TLV; the Node Descriptor TLV MUST carry only the identifiers of the SR Policy headend.

routing, bgp

normative-requirement §3.1 MUST

When the headend is the BGP-LS Producer, the Local Node Descriptors TLV MUST include BGP Router-ID (TLV 516) and Autonomous System (TLV 512) of the headend node.

routing, bgp

protocol-element §2

A new BGP-LS NLRI type 'SR Policy Candidate Path NLRI' (value 5) is defined to advertise SR Policy state, including individual candidate path details and their underlying segment lists.

routing, bgp, mpls

protocol-element §5.7.1.1

Eleven SR Segment Types (A through K) are defined covering SR-MPLS labels, SRv6 SIDs, IPv4/IPv6 prefix SIDs, and adjacency SIDs with descriptors ranging from a simple algorithm byte (Types A and B) to pairs of 16-octet IPv6 addresses plus interface IDs (Types G, J, K).

routing, bgp, mpls

registry §8.6

This document creates the 'BGP-LS SR Policy Metric Types' IANA registry defining metric types 0-8 (IGP, Min Unidirectional Delay, TE, Hop Count, SID List Length, Bandwidth, Avg Unidirectional Delay, Delay Variation, Loss) and user-defined types 128-255 for the SR Metric Constraint sub-TLV.

registry, routing, bgp

registry §8.5

This document creates the 'BGP-LS SR Segment Descriptors' IANA registry defining segment descriptor types 1-11 (Types A through K) for the Segment Type field in the SR Segment sub-TLV.

registry, routing, bgp

registry §8.3

This document registers multiple new TLV types in the 'BGP-LS Node Descriptor, Link Descriptor, Prefix Descriptor, and Attribute TLVs' registry, including the SR Policy Candidate Path Descriptor (554), SR Candidate Path State (1202), SR Candidate Path Name (1203), SR Candidate Path Constraints (1204), SR Segment List (1205), SR Segment (1206), SR Binding SID (1201), SR Affinity Constraint (1208), SR SRLG Constraint (1209), SR Bandwidth Constraint (1210), SR Disjoint Group Constraint (1211), SRv6 Binding SID (1212), SR Policy Name (1213), SR Bidirectional Group Constraint (1214), and SR Metric Constraint (1215).

registry, routing, bgp

registry §8.1

This document registers SR Policy Candidate Path NLRI type (value 5) in the 'BGP-LS NLRI-Types' IANA registry under 'Border Gateway Protocol - Link State (BGP-LS) Parameters'.

registry, routing, bgp

registry §8.2

This document registers the 'Segment Routing' Protocol-ID (value 9) in the 'BGP-LS Protocol-IDs' IANA registry under 'Border Gateway Protocol - Link State (BGP-LS) Parameters'.

registry, routing, bgp

security-consideration §9

SR Policy state information advertised via BGP-LS reveals detailed network topology, path computation constraints, and forwarding plane state; this information MUST be protected using the security mechanisms available for BGP-LS as specified in RFC 9552, including BGP session security measures such as those defined in RFC 5925.

security, routing, bgp

wire-format §5.1

The SR Binding SID TLV (Type 1201) encodes BSID Flags (2 octets with D, B, U, L, F bits), Reserved (2 octets), Binding SID (4 or 16 octets based on D-flag), and optional Specified Binding SID (4 or 16 octets); valid lengths are 12 or 36 octets.

routing, bgp, mpls

wire-format §5.6

The SR Candidate Path Constraints TLV (Type 1204) encodes Flags (2 octets with D, P, U, A, T, S, F, H bits), Reserved (2 octets), MTID (2 octets), Algorithm (1 octet), Reserved (1 octet), and optional constraint sub-TLVs for affinity, SRLG, bandwidth, disjoint group, bidirectional group, and metric.

routing, bgp, mpls

wire-format §5.3

The SR Candidate Path State TLV (Type 1202) is 8 octets and encodes Priority (1 octet), Reserved (1 octet), Flags (2 octets with S, A, B, E, V, O, D, C, I, T, U bits indicating active/backup/admin-shutdown/drop-upon-invalid states), and Preference (4 octets).

routing, bgp, mpls

wire-format §5.6.4

The SR Disjoint Group Constraint sub-TLV (Type 1211) encodes Request Flags (1 octet with S, N, L, F, I bits for requested disjointness level), Status Flags (1 octet with S, N, L, F, I, X bits for achieved disjointness), Reserved (2 octets), and a Disjoint Group Identifier (4 octets, or the full PCEP ASSOCIATION Object when PCEP is used).

routing, bgp, mpls

wire-format §5.6.6

The SR Metric Constraint sub-TLV (Type 1215) is 12 octets and encodes Metric Type (1 octet, types 0-8 and 128-255 defined), Flags (1 octet with O, M, A, B bits), Reserved (2 octets), Metric Margin (4 octets), and Metric Bound (4 octets).

routing, bgp, mpls

wire-format §4

The SR Policy Candidate Path Descriptor TLV (Type 554) encodes Protocol-Origin (1 octet), Flags (1 octet with E and O bits), Reserved (2 octets), Endpoint (4 or 16 octets), Policy Color (4 octets), Originator ASN (4 octets), Originator Address (4 or 16 octets), and Discriminator (4 octets); valid lengths are 24, 36, or 48 octets.

routing, bgp, mpls

wire-format §5.7

The SR Segment List TLV (Type 1205) encodes Flags (2 octets with D, E, C, V, R, F, A, T, M bits), Reserved (2 octets), MTID (2 octets), Algorithm (1 octet), Reserved (1 octet), Weight (4 octets), and ordered SR Segment sub-TLVs.

routing, bgp, mpls

wire-format §5.7.1

The SR Segment sub-TLV (Type 1206) encodes Segment Type (1 octet), Reserved (1 octet), Flags (2 octets with S, E, V, R, A bits), SID (4 or 16 octets for MPLS label or SRv6 SID respectively), a variable Segment Descriptor, and optional sub-sub-TLVs.

routing, bgp, mpls

wire-format §5.2

The SRv6 Binding SID TLV (Type 1212) encodes BSID Flags (2 octets with B, U, F bits), Reserved (2 octets), Binding SID (16 octets), Specified Binding SID (16 octets), and optional sub-TLVs including SRv6 Endpoint Behavior TLV (1250) and SRv6 SID Structure TLV (1252).

routing, bgp, mpls