Path Computation Element Communication Protocol (PCEP) Extensions for Segment Routing (SR) Policy Candidate Paths
updates
- rfc-8231 — Path Computation Element Communication Protocol (PCEP) Extensions for Stateful PCE
Extracted elements (26)
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.
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.
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.
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'.
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'.
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.
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.
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.
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.
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.
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.
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.
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.
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).
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.
IANA has assigned Association Type 6 'SR Policy Association' in the 'ASSOCIATION Type Field' registry of the PCEP Numbers registry group.
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).
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).
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.
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.
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.
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.
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.
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.
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).
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.