Ability for a Stateful Path Computation Element (PCE) to Request and Obtain Control of a Label Switched Path (LSP)
Extracted elements (19)
The extension is motivated by three use cases: (1) redundant PCE failover where a newly elected primary PCE must take control; (2) vPCE load balancing where a new instance needs to acquire LSPs; and (3) global optimization where a PCE temporarily takes control and returns delegation afterward.
The PCC remains the ultimate arbiter of delegation; the PCE can only request control, not seize it unilaterally. This preserves the RFC 8231 model where local PCC policy governs delegation decisions.
A legacy PCC that does not support this extension will receive a PCUpd with C flag set and D flag unset, ignore the C flag, and trigger Error-type=19, error-value 1 (Attempted LSP Update Request for a non-delegated LSP). For PLSP-ID=0, it will trigger error-value 3 (unknown PLSP-ID).
An implementation MUST check for the LSP control feature (C flag set to 1) before any check for PLSP-ID as per RFC 8231.
If a PCC receives a PCUpd message with both the D flag set (LSP already delegated) and the C flag set (PCE making a control request), the PCC MUST ignore the C flag.
If a PCE requests control of an LSP already delegated to another PCE, the PCC MAY ignore the request or MAY revoke the delegation to the first PCE before delegating it to the second; the choice is a matter of local policy.
If a PCUpd message with the C flag set is received for a currently non-delegated LSP, this MUST NOT trigger the error handling specified in RFC 8231 (PCErr with Error-type=19 and error-value 1).
If the PCC does not grant the control, it MAY choose to not respond, and the PCE MAY choose to retry requesting the control, preferably using an exponentially increasing timer.
The C flag has no meaning in PCEP messages other than PCUpd and MUST be set to 0 on transmission and MUST be ignored on receipt in those other messages.
The D flag and C flag are mutually exclusive in a PCUpd message. The PCE MUST NOT send a control request for an LSP that is already delegated to the PCE; if the D flag is set, the C flag MUST NOT be set.
A new 'LSP Control Request' flag (bit 30), called the C flag, is introduced in the SRP object's Flags field. A PCE sets this flag to 1 in a PCUpd message to indicate it wishes to gain control of LSPs identified by the PLSP-ID in the associated LSP object.
A PLSP-ID value of 0 in the LSP object accompanying a C-flag-set PCUpd indicates that the PCE requests control of all LSPs originating from the PCC that it wishes to delegate. Any other non-zero, non-0xFFFFF PLSP-ID identifies a specific LSP.
The C flag is ignored when the R flag (RFC 8281) in the SRP object is set, ensuring no conflict with PCE-initiated LSP teardown operations.
IANA allocated bit 30 with description 'LSP Control Request' in the 'SRP Object Flag Field' subregistry of the 'Path Computation Element Protocol (PCEP) Numbers' registry, with reference to RFC 8741.
A new attack vector is introduced: an attacker may flood the PCC with control requests for all LSPs at a rate exceeding the PCC's processing capacity, either by spoofing messages or by compromising the PCE. The PCC SHOULD be configured with a threshold rate for delegation requests, and if the threshold is reached, it is RECOMMENDED to log the issue.
A PCC SHOULD take local policy and other factors into consideration before honoring control requests rather than blindly trusting them. The PCC can revoke delegation at any time.
A PCE might be susceptible to downgrade attacks by falsifying the error condition returned from a legacy PCC, causing the PCE to believe the PCC does not support this feature.
It is RECOMMENDED that PCEP extensions be activated only on authenticated and encrypted sessions using TLS (RFC 8253) per BCP 195 (RFC 7525), across PCEs and PCCs belonging to the same administrative authority.
Normal delegation flow: PCC sets D flag to 1 in PCRpt to delegate; PCE confirms by setting D flag to 1 in PCUpd. PCC revokes by setting D flag to 0 in PCRpt; PCE relinquishes by setting D flag to 0 in PCUpd. PCE requests new control by setting C flag to 1 in PCUpd; PCC grants or denies by responding with D flag set to 1 or 0 in PCRpt.