rfc-9862

Path Computation Element Communication Protocol (PCEP) Extensions for Segment Routing (SR) Policy Candidate Paths

M. Koldychev, S. Sivabalan, S. Sidor, C. Barth, S. Peng, H. Bidgoli
date2025-10 streamIETF areartg wgpce statusPROPOSED STANDARD pages26 canonicalhttps://www.rfc-editor.org/rfc/rfc9862 doi10.17487/RFC9862
A Segment Routing (SR) Policy is an ordered list of instructions called "segments" that represent a source-routed policy. Packet flows are steered into an SR Policy on a node where it is instantiated. An SR Policy is made of one or more Candidate Paths. This document specifies the Path Computation Element Communication Protocol (PCEP) extension to signal Candidate Paths of an SR Policy. Additionally, this document updates RFC 8231 to allow delegation and setup of an SR Label Switched Path (LSP) without using the path computation request and reply messages. This document is applicable to both Segment Routing over MPLS (SR-MPLS) and Segment Routing over IPv6 (SRv6).

updates

Extracted elements (26)

design-rationale §4.4

Association parameters (Headend as Association Source, fixed Association ID=1, Color and Endpoint in the Extended Association ID TLV) are encoded deterministically so all PCEP speakers independently compute the same parameters from SR Policy attributes, eliminating race conditions when multiple speakers associate the same SR Policy simultaneously.

routing, mpls

design-rationale §5.3

RFC 8231 Section 5.8.2's mandatory PCReq/PCRep exchange is made inapplicable to SR Policy LSPs because SR Policies are often provisioned via local config or BGP rather than computed on demand, so the request/reply round-trip adds unnecessary message exchanges and implementation complexity.

routing, mpls

interoperability-note §5.2.2

The EXPLICIT-NULL-LABEL-POLICY TLV is defined only for SR-MPLS and not for SRv6. Receiving PCEP speakers MUST ignore this TLV for SRv6 Policies. The behavior signaled by this TLV MAY be overridden by local operator configuration.

routing, mpls

normative-requirement §4 MUST

A given LSP MUST belong to one SRPA at most, since an SR Policy Candidate Path cannot belong to multiple SR Policies. If a PCEP speaker receives a message requesting an LSP join more than one SRPA, it MUST send PCErr with Error-Type=26, Error-value=7 'Cannot join the association group'.

routing, mpls

normative-requirement §4 MUST

An SRPA MUST be assigned for all SR Policy LSPs by the PCEP speaker originating the LSP if the capability was advertised by both PCEP speakers. If this condition is not satisfied, the receiving PCEP speaker MUST send PCErr with Error-Type=6, Error-value=22 'Missing SR Policy Association'.

routing, mpls

normative-requirement §4.2 MUST NOT

Candidate Paths within an SR Policy MUST NOT change their SR Policy Candidate Path Identifiers for the lifetime of the PCEP session, and two or more Candidate Paths within an SR Policy MUST NOT carry the same Candidate Path Identifiers. Violations trigger PCErr Error-Type=26, Error-value=21.

routing, mpls

normative-requirement §4 MUST

Capability exchange for the SRPA Type MUST be done before using the SRPA. A PCEP speaker MUST include the SRPA Type (6) in the ASSOC-Type-List TLV and MUST receive the same from the PCEP peer before using the SRPA.

routing, mpls

normative-requirement §5.1 MUST

Implementations that support SR Policy MUST include the SRPOLICY-CAPABILITY TLV in the OPEN object. If a PCEP speaker receives an SRPA but the SRPOLICY-CAPABILITY TLV was not exchanged, the speaker MUST send PCErr Error-Type=10 Error-value=44 and MUST close the PCEP session.

routing, mpls

normative-requirement §4.1 MUST

The SR Policy Identifier MUST be uniform across all PCEP sessions, and Candidate Paths within an SR Policy MUST carry the same SR Policy Identifiers in their SRPAs. Candidate Paths MUST NOT change their SR Policy Identifiers for the lifetime of the PCEP session; violations trigger PCErr Error-Type=26, Error-value=20.

routing, mpls

normative-requirement §5.3 MAY

This document updates RFC 8231 Section 5.8.2 to make PCReq/PCRep messages optional for SR Policy LSPs. When a PCC wants to delegate an SR Policy LSP, it MAY send PCRpt directly without first sending PCReq and waiting for PCRep.

routing, mpls

normative-requirement §5.3 MUST NOT

When the L-flag in SRPOLICY-CAPABILITY is cleared (or the TLV is absent), the given peer MUST NOT be sent PCReq/PCRep messages for SR Policy LSPs. This update applies only to SR Policy LSPs; RFC 8231 Section 5.8.2 continues to apply to other LSP types such as RSVP-TE.

routing, mpls

protocol-element §5.2.3.1

Drop-Upon-Invalid (controlled via the INVALIDATION TLV) is a policy-level feature: when any Candidate Path has Drop-Upon-Invalid enabled, the entire SR Policy has it enabled. When all Candidate Paths become invalid, the highest-preference Drop-Upon-Invalid Candidate Path is activated and traffic is dropped at the headend.

routing, mpls

protocol-element §4

SR Policy Association (SRPA) is a new PCEP Association Type (6) that groups Candidate Paths belonging to the same SR Policy. Each LSP in an SRPA represents one Candidate Path; the SRPA encodes the SR Policy Identifier, Candidate Path Identifier, and optional Candidate Path Attributes.

routing, mpls

protocol-element §5.1

The SRPOLICY-CAPABILITY TLV (Type 71, Length 4) is carried in the OPEN object and declares peer support for four features via flags: P-flag (Computation Priority), E-flag (Explicit NULL Label Policy), I-flag (Invalidation/Drop-Upon-Invalid), and L-flag (Stateless PCReq/PCRep operation).

routing, mpls

protocol-element §4.5

The SRPOLICY-CPATH-ID TLV is mandatory within the SRPA object; the SRPOLICY-POL-NAME (Type 56), SRPOLICY-CPATH-NAME (Type 58), and SRPOLICY-CPATH-PREFERENCE (Type 59) TLVs are optional. Only one instance of each TLV type may be processed; duplicates MUST be silently ignored.

routing, mpls

registry §6.1

IANA has assigned Association Type 6 'SR Policy Association' in the 'ASSOCIATION Type Field' registry of the PCEP Numbers registry group.

registry, routing

registry §6.2

IANA has assigned eight new PCEP TLV Type Indicators: 56 (SRPOLICY-POL-NAME), 57 (SRPOLICY-CPATH-ID), 58 (SRPOLICY-CPATH-NAME), 59 (SRPOLICY-CPATH-PREFERENCE), 68 (COMPUTATION-PRIORITY), 69 (EXPLICIT-NULL-LABEL-POLICY), 70 (INVALIDATION), and 71 (SRPOLICY-CAPABILITY).

registry, routing

registry §6.3

IANA has assigned new PCEP error values: Error-Type 6, value 21 (Missing SR Policy Mandatory TLV); Error-Type 6, value 22 (Missing SR Policy Association); Error-Type 10, value 44 (Missing SRPOLICY-CAPABILITY TLV); Error-Type 26, value 20 (SR Policy Identifiers Mismatch); Error-Type 26, value 21 (SR Policy Candidate Path Identifier Mismatch).

registry, routing

registry §6.5

IANA has created three new PCEP registries: 'SR Policy Invalidation Operational Flags' (Section 6.5), 'SR Policy Invalidation Configuration Flags' (Section 6.6), and 'SR Policy Capability TLV Flag Field' (Section 6.7), all under IETF Review policy.

registry, routing

security-consideration §7

Information carried in the newly defined SRPA object and TLVs (SR Policy name, color, endpoint, candidate path identifiers) could provide an eavesdropper with additional topology and policy information about the SR domain. It is RECOMMENDED that these PCEP extensions be activated only on authenticated and encrypted sessions using TLS per RFC 8253 and RFC 9325.

security, routing, tls

wire-format §5.2.1

The COMPUTATION-PRIORITY TLV (Type 68, Length 4) carries an 8-bit Priority field (lowest value = highest priority for PCE recomputation upon topology change) followed by 24 Reserved bits. Default priority is 128 when absent and P-flag is set.

routing, mpls

wire-format §5.2.2

The EXPLICIT-NULL-LABEL-POLICY TLV (Type 69, Length 4) carries an 8-bit ENLP field indicating whether an Explicit NULL label must be pushed on unlabeled IP packets steered into the SR Policy; values are from the IANA 'SR Policy ENLP Values' registry.

routing, mpls

wire-format §4.4

The Extended Association ID TLV (Type 31) is mandatory for SRPA and encodes the SR Policy Color as an unsigned non-zero 32-bit integer followed by the Endpoint as either 4 octets (IPv4) or 16 octets (IPv6), giving total lengths of 8 or 20 octets respectively.

routing, mpls

wire-format §5.2.3

The INVALIDATION TLV (Type 70, Length 4) carries two 8-bit flag fields: Oper (operational state, set to 0 by PCE, D-bit=Dropping) and Config (configuration, D-bit=Drop-enabled), followed by 16 Reserved bits. The PCE sets Oper=0; the PCC reports both Oper and Config states.

routing, mpls

wire-format §4.5.2

The SRPOLICY-CPATH-ID TLV (Type 57, Length 28) encodes the Candidate Path Identifier with: Protocol-Origin (8-bit), Reserved (24-bit), Originator ASN (32-bit unsigned), Originator Address (128-bit), and Discriminator (32-bit unsigned).

routing, mpls

wire-format §4.5.4

The SRPOLICY-CPATH-PREFERENCE TLV (Type 59, Length 4) carries a 32-bit unsigned Preference value. If absent, the default preference is 100 per RFC 9256 Section 2.7.

routing, mpls