rfc-9050

Path Computation Element Communication Protocol (PCEP) Procedures and Extensions for Using the PCE as a Central Controller (PCECC) of LSPs

Z. Li, S. Peng, M. Negi, Q. Zhao, C. Zhou
date2021-07 streamIETF areartg wgpce statusPROPOSED STANDARD pages33 canonicalhttps://www.rfc-editor.org/rfc/rfc9050 doi10.17487/RFC9050
The Path Computation Element (PCE) is a core component of Software-Defined Networking (SDN) systems. A PCE as a Central Controller (PCECC) can simplify the processing of a distributed control plane by blending it with elements of SDN and without necessarily completely replacing it. Thus, the Label Switched Path (LSP) can be calculated/set up/initiated and the label-forwarding entries can also be downloaded through a centralized PCE server to each network device along the path while leveraging the existing PCE technologies as much as possible. This document specifies the procedures and Path Computation Element Communication Protocol (PCEP) extensions for using the PCE as the central controller for provisioning labels along the path of the static LSP.

updated by

Extracted elements (29)

design-rationale §5.5.1

Label-forwarding instructions are sent after the initial PCInitiate/PCRpt exchange with the ingress PCC so that the PLSP-ID and other LSP identifiers assigned by the ingress can be included in the subsequent label-forwarding instruction PCInitiate messages to all nodes along the path.

routing, mpls

design-rationale §5.5.4

PCECC LSP updates follow make-before-break: the PCE first downloads new label instructions for the updated path, then instructs the ingress to switch traffic via PCUpd, and only after receiving the PCRpt acknowledgment does it clean up the former label instructions.

routing, mpls

design-rationale §5.5.8

To support scenarios where the PCC owns its label space, the C bit in the CCI object allows the PCE to request PCC-side label allocation (C=1, Label=0 for any allocation; C=1, Label=n for a specific value), enabling PCECC even when the PCE does not control the label space.

routing, mpls

interoperability-note §5.4

A legacy PCEP speaker that does not recognize the PCECC Capability sub-TLV will ignore it per RFC 8408 and RFC 5440. On receipt of the unsupported PST=2 in an RP/SRP object, it will send PCErr Error-Type=21, Error-value=1 (Unsupported path setup type) and terminate the session.

routing

normative-requirement §5.5 MUST

All PCEP messages pertaining to a PCECC LSP MUST include the PATH-SETUP-TYPE TLV in the SRP object with PST set to '2' to clearly identify that the PCECC LSP is intended.

routing, mpls

normative-requirement §5.5.1 MUST

An LSP-IDENTIFIERS TLV MUST be included for PCECC LSPs; it uniquely identifies the LSP in the network. The PLSP-ID in combination with the source in the LSP-IDENTIFIERS TLV MUST be unique.

routing, mpls

normative-requirement §5.5.3.2 MUST

Following removal of a label-forwarding instruction via label cleanup CCI, the PCC MUST send a PCRpt message with the SRP-ID-number from the triggering PCInitiate and the R flag set in the SRP object.

routing, mpls

normative-requirement §6.1 MUST

For a transit LSR in a P2P LSP via PCECC, two CCI objects are expected (incoming and outgoing labels). If the transit LSR did not receive two CCI objects with one O bit set and one unset, it MUST send PCErr Error-Type=31, Error-value=3 (Invalid CCI).

routing, mpls

normative-requirement §5.5.3.1 MUST

For label download CCI, the CCI object MUST be included along with the LSP object in the PCInitiate message. If a PCC receives a label out of the PCE's reserved range, it MUST send PCErr Error-Type=31, Error-value=1 (Label out of range).

routing, mpls

normative-requirement §5.5.8 MUST

For PCC-based label allocation (C bit set), the PCC MUST try to allocate the label and MUST report to the PCE via a PCRpt or PCErr message. If the PCC wishes to withdraw or modify a previously assigned label, it MUST send a PCRpt message.

routing, mpls

normative-requirement §5.4 MUST

If a PCECC operation is attempted when both speakers have not agreed to PCECC capability in OPEN messages, the receiver MUST send a PCErr with Error-Type=19, Error-value=16 and terminate the PCEP session.

routing

normative-requirement §5.4 MUST

If a PCEP speaker receives the PATH-SETUP-TYPE-CAPABILITY TLV with the PCECC PST but without the PCECC-CAPABILITY sub-TLV, it MUST send a PCErr with Error-Type=10, Error-value=33 (Missing PCECC Capability sub-TLV) and terminate the PCEP session.

routing

normative-requirement §5.4 MUST

If the PCECC-CAPABILITY sub-TLV is advertised but the STATEFUL-PCE-CAPABILITY TLV is not advertised (or is advertised without the I flag set) in the OPEN object, the receiver MUST send a PCErr with Error-Type=19, Error-value=17 and terminate the session.

routing

normative-requirement §5.5.1 MUST

Once all label operations (CCI) are completed, the PCE MUST send a PCUpd message to the ingress PCC with the D flag set, after which the PCECC LSP is considered 'up' by default.

routing, mpls

normative-requirement §5.5.2 MUST

PCECC LSPs MUST be delegated to a PCE at all times. For PCC-initiated PCECC LSPs, a PCC MUST delegate the LSP by sending a PCRpt with the PST set to '2' and D (Delegate) flag set.

routing

normative-requirement §3 MUST NOT

The PCC MUST NOT make allocations from the label space set aside for the PCE to avoid overlap and collisions of label allocations. It is RECOMMENDED that the PCE makes allocations from that reserved label space for all nodes along the path.

mpls, routing

normative-requirement §5.5.5 MUST

The PCC MUST support the removal of CCI as one of the behaviors applied on expiration of the State Timeout Interval timer, ensuring PCE failure does not cause immediate service disruption but enables automatic cleanup.

routing

protocol-element §5.3

Central Controller Instructions (CCI) are conveyed via PCInitiate messages for label download and cleanup, and acknowledged via PCRpt messages. The CC-ID uniquely identifies each CCI within a PCEP session; values 0 and 0xFFFFFFFF are reserved.

routing, mpls

protocol-element §5.4

PCECC Capability Advertisement uses three elements in the OPEN message: a new PST value of 2 in PATH-SETUP-TYPE-CAPABILITY TLV, a new PCECC-CAPABILITY sub-TLV with L bit set, and the STATEFUL-PCE-CAPABILITY TLV with I flag set.

routing

protocol-element §6.1

The PCInitiate message is extended to carry a <PCE-initiated-lsp-central-control> element consisting of SRP, LSP, and one or more CCI objects. For cleanup, the R (remove) bit MUST be set in the SRP object.

routing, mpls

protocol-element §6.2

The PCRpt message is extended with a <central-control-report> element consisting of optional SRP, LSP, and one or more CCI objects, used for CCI state synchronization and acknowledgment of PCInitiate messages.

routing, mpls

registry §10.2

IANA created a new 'PCECC-CAPABILITY Sub-TLV Flag Field' subregistry (bit 31 = Label, bits 0-30 unassigned, assignment by Standards Action) and a new 'CCI Object Flag Field for MPLS Label' subregistry (bit 14 = C bit PCC allocation, bit 15 = O bit out-label, bits 0-13 unassigned).

registry, routing

registry §10.6

This document adds new PCEP error codes: Error-Type=6 value 17 (CCI object missing), Error-Type=10 value 33 (Missing PCECC Capability sub-TLV), Error-Type=19 values 16-18, and new Error-Type=31 (PCECC failure) with values 1-5 covering label range, instruction, CCI validity, allocation, and next-hop errors.

registry, routing

registry §10

This document allocates codepoint 1 (PCECC-CAPABILITY) in the PATH-SETUP-TYPE-CAPABILITY Sub-TLV Type Indicators subregistry, codepoint 2 (PCECC mode) in the PCEP Path Setup Types registry, and Object-Class 44 with Object-Type 1 (MPLS Label) for the new CCI Object in PCEP Objects.

registry, routing

security-consideration §8.1 RECOMMENDED

A malicious or compromised PCE has complete control to download/remove labels and can cause LSPs to behave inappropriately. It is RECOMMENDED that PCECC extensions be activated only on mutually authenticated and encrypted PCEP sessions using TLS (RFC 8253) per BCP 195.

security, routing

security-consideration §8.2 RECOMMENDED

A malicious PCC creates an attack surface by requiring the PCE to maintain a CCI/label replica for each PCC. It is RECOMMENDED that PCE implementations impose a per-PCC limit on CCI resources; RFC 8231 provides a notification mechanism when such a threshold is reached.

security, routing

state-machine §5.5.1

A PCE-initiated PCECC LSP transitions through: PCInitiate to ingress (PLSP-ID=0) → PCC responds PCRpt GOING-UP → PCE downloads labels to all nodes via PCInitiate (CC-ID per node) → PCE sends PCUpd → ingress reports UP. The LSP is 'up' by default on receipt of PCUpd.

routing, mpls

wire-format §7.3

The CCI Object (Object-Class=44, Object-Type=1 for MPLS label) contains: CC-ID (32 bits), Reserved1 (16 bits), Flags (16 bits) with C bit (PCC allocation, bit 14) and O bit (out-label, bit 15), Label (20 bits), Reserved2 (12 bits), and optional TLVs.

routing, mpls

wire-format §7.1.1

The PCECC-CAPABILITY sub-TLV has Type=1, Length=4 octets, and a 32-bit Flags field. Bit 31 (L bit) indicates willingness to handle PCECC-based Central Controller Instructions for label download; all other bits are unassigned.

routing