Path Computation Element Communication Protocol (PCEP) Extensions for PCE-Initiated LSP Setup in a Stateful PCE Model
updated by
- rfc-9756 — Update to the IANA Path Communication Element Protocol (PCEP) Numbers Registration Procedures and the Allowance of Experimental Error Codes
Extracted elements (32)
PCE-initiated LSPs are not removed immediately upon PCE failure; instead, the State Timeout Interval timer allows network cleanup without manual intervention and prevents instantaneous service disruption from a PCE crash. This design trades immediate resource reclamation for operational resilience.
The Create (C) flag in the LSP object is introduced so that PCEs other than the one that instantiated an LSP can determine that the LSP is PCE-initiated — a state that would otherwise only be known by the PCC and the originating PCE. This is critical for backup PCE takeover and LSP state synchronization.
The reserved PLSP-ID 0 is used in PCInitiate messages for new LSP creation because the PCC, not the PCE, assigns the PLSP-ID. Using 0 as a sentinel distinguishes create requests (PLSP-ID=0) from update/delete requests (non-zero PLSP-ID), avoiding ambiguity in the stateful PCE model.
A PCC SHOULD impose a limit on the number of LSPs or resource percentage allocated to PCE-initiated requests. When the limit is reached, the PCC MUST send PCErr Error-type=19 Error-value=6 (PCE-initiated LSP limit reached) and may drop further PCInitiate messages.
A PCInitiate message used to instantiate an LSP MUST contain an LSP object with the reserved PLSP-ID 0 and MUST include the SYMBOLIC-PATH-NAME TLV. The message MUST also contain an ERO for the LSP.
During LSP State Synchronization, a PCC MUST set the Create flag in the LSP object for PCE-initiated LSPs and MAY include the SPEAKER-ENTITY-ID TLV. After synchronization, the PCE SHOULD send a PCInitiate to reconcile any missing or unwanted LSPs.
If the PCC receives a PCInitiate for instantiation (R=0) with a non-zero PLSP-ID, it MUST send PCErr Error-type=19 Error-value=8. If the ERO is missing (R=0), it MUST send PCErr Error-type=6 Error-value=9. If SYMBOLIC-PATH-NAME TLV is absent, it MUST send PCErr Error-type=10 Error-value=8.
If the PCE owning the delegation receives a PCRpt with delegation bit=0, it MUST send PCErr Error-type=19 Error-value=7 (Delegation for PCE-initiated LSP cannot be revoked) and MAY close the session.
On successful LSP instantiation, the PCC MUST send a PCRpt with a non-zero PLSP-ID uniquely identifying the LSP, the Create flag set, and the Delegate flag set. The SRP object MUST echo the SRP-ID-number from the triggering PCInitiate.
The PCC MUST delegate PCE-initiated LSPs to the PCE upon instantiation (delegation bit=1 in PCRpt). The PCC MUST NOT revoke the delegation for a PCE-initiated LSP on an active PCEP session; all PCRpt messages MUST have the delegation bit set to 1.
The PCC MUST echo the SRP-ID-number from the PCInitiate message in all resulting PCErr and PCRpt messages, enabling the PCE to correlate responses with the corresponding initiation request.
The PCC MUST support removal of PCE-initiated LSPs as one of the behaviors on expiration of the State Timeout Interval timer; the behavior (removal or revert to operator defaults) MUST be picked based on local policy.
The PCE MUST NOT provide a symbolic path name that conflicts with an existing LSP on the PCC. If a conflict exists, the PCC MUST send PCErr Error-type=23 Error-value=1 (SYMBOLIC-PATH-NAME in use), except for LSPs whose State Timeout Interval timer is running.
When deleting an LSP, a PLSP-ID of zero in the PCInitiate message removes all PCE-initiated LSPs (C flag=1) delegated to that PCE. If the PLSP-ID is unknown, the PCC MUST send PCErr Error-type=19 Error-value=3. If the LSP is not PCE-initiated, the PCC MUST send PCErr Error-type=19 Error-value=9.
The C (Create) flag is a new 1-bit flag (bit 4) added to the LSP object. Set to 1 in PCRpt messages to indicate that the LSP was created via a PCInitiate message; it MUST remain set for the duration of the LSP's existence.
The I (LSP-INSTANTIATION-CAPABILITY) flag is a new 1-bit flag added to the STATEFUL-PCE-CAPABILITY TLV. When set by a PCC it indicates permission for PCE-initiated LSPs; when set by a PCE it indicates support. Both PCC and PCE must set this flag to enable PCE-initiated LSP instantiation.
The optional SPEAKER-ENTITY-ID TLV (defined in RFC 8232) MAY be included in the LSP object in PCRpt messages for LSPs with the C flag set, to identify the PCE that initiated the LSP creation across all PCEP sessions. If it appears for an LSP with C=0, the LSP MUST be ignored and a PCErr sent.
The PCInitiate (LSP Initiate Request) message is a new PCEP message (Message-Type=12) sent by a PCE to a PCC to trigger LSP instantiation or deletion. It carries a list of PCE-initiated LSP requests, each consisting of SRP and LSP objects, and optionally END-POINTS, ERO, and other attribute objects.
The R (LSP-REMOVE) flag is a new 1-bit flag (bit 31) added to the SRP object. When set to 0 it indicates an LSP create request; when set to 1 it indicates a request to remove an LSP.
IANA allocated bit 29 ('LSP-INSTANTIATION-CAPABILITY', the I flag) in the 'STATEFUL-PCE-CAPABILITY TLV Flag Field' subregistry of the PCEP Numbers registry.
IANA allocated bit 4 ('Create') in the 'LSP Object Flag Field' subregistry of the PCEP Numbers registry, as defined by RFC 8281.
IANA created a new 'SRP Object Flag Field' subregistry within the PCEP Numbers registry (new values by Standards Action). Bit 31 ('LSP-Remove') is the first allocation, defined in RFC 8281.
IANA registered new PCEP error codes: Error-type=10 value=8 (SYMBOLIC-PATH-NAME TLV missing); Error-type=19 values=6,7,8,9,10; Error-type=23 values=1,2; and a new Error-type=24 (LSP instantiation error) with values 1 (unacceptable parameters), 2 (internal error), 3 (signaling error).
IANA registered PCEP message type 12 as 'LSP Initiate Request' in the 'PCEP Messages' subregistry of the PCEP Numbers registry.
A malicious or compromised PCE can flood a PCC with LSP instantiation requests, consuming network and LSR resources. The PCC MUST enforce resource limits and send PCErr Error-type=19 Error-value=6 when the limit is reached; rapid LSP flaps are addressed by PCErr Error-type=19 Error-value=10 and a cool-off period.
A malicious PCC can ignore PCE instantiation requests, consuming PCE state resources. A PCE MUST protect itself by limiting pending requests or setting timeouts, and MAY close the session or remove all initiated LSPs if limits are breached.
Orphaned PCE-initiated LSP recovery: when the State Timeout Interval timer is running for a PCE-initiated orphan, a PCE may send a PCInitiate with just SRP and LSP objects carrying the orphan's PLSP-ID to reclaim delegation. The PCC MUST redelegate the LSP to that PCE and stop the timer.
PCE-initiated LSP lifecycle: PCE sends PCInitiate (create) → PCC assigns PLSP-ID and delegates via PCRpt → PCE may update via PCUpd → PCE sends PCInitiate with R=1 (delete) → PCC removes LSP and sends PCRpt with R=1. On PCEP session failure, the LSP enters an orphan state governed by the State Timeout Interval timer before cleanup.
The LSP object (32-bit header) carries PLSP-ID (20 bits), Flags (4 bits), and the C, O, A, R, S, D flag bits, followed by optional TLVs. The C flag occupies the bit position adjacent to the O field.
The PCInitiate message format is: <Common Header> followed by one or more <PCE-initiated-lsp-request> entries. An instantiation request contains <SRP> <LSP> [<END-POINTS>] <ERO> [<attribute-list>]; a deletion request contains only <SRP> <LSP>.
The SRP object format consists of a 32-bit Flags field (with the R flag at bit 31), a 32-bit SRP-ID-number, and optional TLVs.
The STATEFUL-PCE-CAPABILITY TLV (Type, Length=4, Flags) is extended with the I flag (LSP-INSTANTIATION-CAPABILITY) alongside the existing S and U flags in a 32-bit Flags field.