Internet-Draft PCEP-STATEFUL-AMEND July 2026
(Editor), et al. Expires 4 January 2027 [Page]
Workgroup:
PCE Working Group
Internet-Draft:
draft-many-pce-stateful-amendment-04
Updates:
8231, 8664, 8281, 9603 (if approved)
Published:
Intended Status:
Standards Track
Expires:
Authors:
A. S. (Editor)
Nokia
M. Koldychev
Ciena
S. Sivabalan
Ciena
D. Achaval
Nokia
S. Peng
Huawei Technologies
H. Kotni
Juniper Networks, Inc
S. Sidor
Cisco

Amendments to Stateful PCE Communication Protocol (PCEP)

Abstract

This document updates RFC8231, RFC8664 and RFC8281 to reflect operationalized implementations and defines optimizations in the PCEP protocol.

Status of This Memo

This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.

Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.

Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."

This Internet-Draft will expire on 4 January 2027.

Table of Contents

1. Introduction

The PCEP protocol has evolved from a stateless protocol [RFC5440] to a stateful protocol [RFC8231], incorporating numerous extensions.

During interoperability testing it was observed that various implementations have implemented optimizations in the protocol. This document serves to optimize the original procedure in [RFC8231] to optionally drop the PCReq and PCReply exchange, which greatly simplifies implementation and optimizes the protocol.

In addition, [RFC8664] introduced extensions for Segment Routing and the encoding of segments in the ERO and RRO objects in PCEP. This document serves as an update to [RFC8664] to permit the exclusion of the RRO object for Segment Routed paths.

Lastly, [RFC8281] describes two mechanisms for handling orphaned LSPs, one of which requires a PCE to request delegation of the orphaned LSP. However, this mechanism is incompletely specified, which has led most implementations to follow PCC originated redelegation when an LSP becomes orphaned. This document updates [RFC8281] to clarify the ambiguity and promote interoperability by mandating that the PCC attempt to redelegate orphaned LSPs.

1.1. Requirements Language

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.

2. Terminology

The following terminologies are used in this document:

PCC: Path Computation Client. Any client application requesting a path computation to be performed by a Path Computation Element.

PCE: Path Computation Element. An entity (component, application, or network node) that is capable of computing a network path or route based on a network graph and applying computational constraints.

PCEP: Path Computation Element Protocol.

MBB: Make-Before-Break. A procedure during which the head-end of a traffic-engineered path wishes to move traffic to a new path without losing any traffic, by first "making" a new path and then "breaking" the old path.

ERO: Explicit Route Object is the path of the LSP encoded into a PCEP object. In this document, an empty ERO object, i.e., without any subobjects, is represented with notation "ERO={}". An ERO object containing a given sequence of subobjects is represented as "ERO={A}".

PCRPT-LSP-DB: PCEP Reported Label Switched Path Database. A logical datastore that captures the reported state information of Label Switched Paths (LSPs) within a PCEP speaker. This term is not defined in the PCE architecture; however, it is used in this document to describe how a PCEP speaker may internally maintain LSP-related state information reported via PCRpt messages.

EXTENDED-LSP-DB: Extended Label Switched Path Database. An implementation-specific logical datastore used to capture information related to a Label Switched Path. It may be keyed using the same identifiers as the PCRPT-LSP-DB. This term is not defined in the PCE architecture but is used in this document to refer to a conceptual datastore that can include additional attributes—such as desired state, telemetry data, and other information not defined within IETF PCE working group documents.

PLSP-ID (Path LSP Identifier): Introduced in [RFC8231]. A unique identifier used in PCEP to distinguish a specific LSP between a PCC and a PCE which is constant for the lifetime of a PCEP session.

3. Stateful Bringup

[RFC8231] Section 5.8.2 allows delegation of an LSP in an operationally down state, but at the same time mandates the use of PCReq before sending PCRpt. This document clarifies that sending PCReq is optional.

The process of sending PCReq before PCRpt is referred to in this document as "stateless bringup". In practice, stateless bringup introduces overhead and the PCRpt sent from PCC cannot be enforced by the PCE, because a stateless PCE is not required to maintain any per-LSP state about previous PCReq messages. It has been observed that many implementations choose to ignore this requirement and send the PCRpt directly, without first sending a PCReq. Although this behavior is not compliant with [RFC8231], it offers message processing advantages and simplifications. As a result, this document updates [RFC8231].

The adoption of stateful PCE does not eliminate the utility of stateless PCEP. A characteristic of stateless PCEP is that PCReq messages do not require altering the LSP path state information in the PCE. As a result, PCReq messages can be used in scenarios such as OAM functions (e.g., ping and traceroute), where it is necessary to probe the network topology without impacting existing LSPs and LSP state management in the PCE.

This document uses the concept of a PCRPT-LSP-DB to represent the database of actual LSP state in the network, as reported by PCCs. It is used to illustrate the internal state maintained by PCEP speakers in response to PCRpt messages. This datastore is modified only by PCRpt messages. In contrast, additional information that a PCE implementation may maintain such as desired state, policy metadata, or telemetry is considered part of the EXTENDED-LSP-DB. The EXTENDED-LSP-DB is an implementation-specific logical store which is outside the scope of this document.

Note that the term "LSP", which stands for "Label Switched Path", if taken too literally, would restrict the discussion to the MPLS dataplane only. In this document, the term "LSP" is applied to non-MPLS paths as well, to avoid renaming the term. Alternatively, the term "LSP" could be replaced with "Instance".

3.1. Updates to RFC 8231 - Stateful bringup

[RFC8231] Section 5.8.2, says "The only explicit way for a PCC to request a path from the PCE is to send a PCReq message. The PCRpt message MUST NOT be used by the PCC to attempt to request a path from the PCE." This document updates [RFC8231] to remove the quoted text.

As part of the new bringup procedure, the PCC MAY delegate an empty LSP (no ERO or empty ERO) to the PCE and then wait for the PCE to send a PCUpd, without first sending a PCReq. This process is referred to as "stateful bringup". The PCE MUST support the original stateless bringup for backward compatibility.

An example of stateful bringup follows. In this example, the PCC starts by using an LSP-ID of 0. The value 0 does not hold any special meaning; any other 16-bit value could have been used.

PCC has no LSP yet, but wants to establish a path. PCC sends PCRpt(R-FLAG=0, D-FLAG=1, OPER-FLAG=DOWN, PLSP-ID=100, LSP-ID=0, ERO={}).

Table 1: Content of LSP DB after first PCRpt
TUNNEL LSP
PLSP-ID=100 LSP-ID=0, D-FLAG=1, OPER=DOWN, ERO={}

PCC received a PCUpd from the PCE and has decided to install the ERO={A} from that PCUpd. PCC sends PCRpt(R-FLAG=0, D-FLAG=1, OPER- FLAG=UP, PLSP-ID=100, LSP-ID=0, ERO={A}).

Table 2: Content of LSP DB after PCUpd
TUNNEL LSP
PLSP-ID=100 LSP-ID=0, D-FLAG=1, OPER=UP, ERO={A}

3.2. Backward Compatibility

The stateful bringup mechanism is compatible with legacy PCEP implementations. The PCE continues to support stateless bringup (via PCReq) for legacy PCCs. Supporting stateful bringup does not require introducing new behavior on the PCE, since, as previously noted, a PCE implementation only modifies the conceptual PCRPT-LSP-DB state based on PCRpt messages. Therefore, regardless of whether a PCReq has been received, the PCE processes the PCRpt in the same manner.

4. Updates to RFC 8664 - Use of SR-RRO and SRv6-RRO objects

[RFC8231] defines a PCRpt message which contains <intended-path> known as the ERO object and <actual-path> known as the RRO object. [RFC8664] defines SR-ERO and SR-RRO sub-objects for SR-TE LSPs. [RFC9603] further defines SRv6-ERO and SRv6-RRO sub-objects for SRv6-TE paths.

In practice RRO data is the result of signaling via a protocol such as RSVP-TE, which allows collection of per-hop information along the path. The ERO and RRO values may be different as the path encoded in the ERO may differ from the RRO such as during protection conditions or if the ERO contains loose hops which are expanded upon. As a Segment Routing LSP does not perform any signaling, the values of an SR-ERO/SRv6-ERO and SR-RRO/SRv6-RRO (respectively) are in practice the same, therefore some implementations have omitted the RRO when reporting a SR-TE LSP while others continue to send both ERO and RRO values.

This document updates [RFC8664] by clarifying and relaxing the requirement for both an ERO and RRO object to exist for SR-TE paths. If both ERO and RRO are present for the same LSP, it SHOULD be interpreted as the RRO being the actual path the LSP is taking but MAY interpret only the ERO as the actual path. In the absence of RRO a PCE MUST interpret the ERO as the actual path for the LSP. Until SR-TE introduces some form of signaling similar to RSVP-TE, the use of RRO is discouraged for SR-TE LSPs.

4.1. Backward Compatibility

The update to [RFC8664] permitting PCC to omit carrying SR-RRO/SRv6-RRO may create interoperability problems between different implementations of newer PCC and a legacy PCE. It is possible that an implementation of PCE which requires reading the SR-RRO/SRv6-RRO, may result in incomplete data processing on the PCE for the LSP. However, as this document is attempting to reflect operationalized implementations, PCE implementations are likely already capable of falling back to processing the SR-ERO/SRv6-ERO objects.

5. Updates to RFC 8231 and RFC 8281 - Orphaned LSP redelegation

[RFC8281] Section 6, describes two mechanisms for handling the case when an LSP becomes orphaned. The relevant text is as follows:

"The PCC MAY attempt to redelegate an orphaned LSP by following the procedures of [RFC8231]. Alternatively, if the orphaned LSP was PCE-initiated, then a PCE MAY obtain control over it, as follows"

The first mechanism is based on the redelegation procedures defined in [RFC8231] Section 5.7.5. [RFC8231] describes how delegation returns to the PCC after the Redelegation Timeout Interval expires, and how the LSP may be redelegated to another PCE. In the standby-PCE case, [RFC8231] also allows the Redelegation Timeout Interval to be set to 0, causing the LSP to be redelegated immediately to the standby PCE. This document updates that behavior by making the PCC attempt to redelegate an orphaned LSP.

The second mechanism goes on to describe the messaging procedures by which a PCE may obtain control of an orphaned PCE-initiated LSP. However, [RFC8281] does not define how a PCE determines whether a PCC expects it to take action to obtain control, nor does it specify when such action should be taken. This ambiguity is problematic in deployments with backup or redundant PCEs, as a PCE may be unaware of the current delegation status of an LSP with respect to another PCE.

For example, when the PCE to which an LSP was delegated fails, the PCC detects the loss of the PCEP session. After the Redelegation Timeout Interval expires, delegation returns to the PCC and the LSP becomes orphaned until the State Timeout Interval expires. A backup PCE with an active session to the same PCC cannot know whether the PCC will redelegate the LSP or whether the backup PCE should initiate the [RFC8281] procedure to request delegation. Without clear guidance, backup PCE implementations may differ in behavior, which can result in duplicate control attempts, delayed takeover, or no takeover at all.

To address this issue, this document updates [RFC8231] Section 5.7.5 and the previously quoted text in [RFC8281] as follows:

"PCC MUST attempt to redelegate an orphaned LSP to a connected PCE by following the procedures of [RFC8231] and in accordance with local policy."

Mandating PCC-initiated redelegation establishes a single, interoperable behavior that both the PCC and any connected PCE can rely upon. This document does not deprecate the [RFC8281] procedure by which a PCE explicitly requests delegation of an orphaned PCE-initiated LSP. A PCE MAY apply local policy to decide when to use that procedure, for example when the PCC is a legacy implementation that does not redelegate the orphaned LSP. Furthermore, this specification does not preclude future extensions or impose constraints on alternative solutions.

5.1. Backward Compatibility

The updates to [RFC8231] and [RFC8281] mandating that a PCC MUST attempt to redelegate orphaned LSPs introduce considerations for interoperability between updated and legacy implementations.

PCC Perspective: A PCC implementing this document MUST attempt to redelegate orphaned LSPs to an active PCE. From the perspective of a legacy PCE, these redelegations will appear as standard [RFC8231] procedures. Since legacy PCEs are already capable of processing redelegation of LSPs driven from PCC, this update is backward compatible.

PCE Perspective: For a PCE implementing this document, the primary change is the shift in expectation regarding PCC behavior. A PCE operates with the expectation that the PCC will initiate redelegation. However, if the PCC is a legacy implementation that does not perform the redelegation, the PCE MAY apply local policy to decide when to revert to [RFC8281] procedures and explicitly request delegation of orphaned LSPs.

Capability Advertisement: A capability mechanism to indicate support for this document may be defined in a future revision. If defined, the capability is intended to be informational; it serves to notify the PCE that the PCC explicitly supports the mandated redelegation behavior. This allows the PCE to distinguish between a PCC that is expected to redelegate (per this document) and a legacy PCC, requiring the PCE to follow local policy and therefore MAY explicitly request delegation of orphaned LSPs.

6. Operational Considerations

This section provides operational guidance for deployments implementing the updates in this document.

6.1. Stateful Bringup

Implementations typically allow operators to configure which LSPs are reported to, and/or delegated to a PCE. This document does not change that configuration or its behavior. Some implementations may expose a configuration option that requires a PCReq before delegation (stateless bringup). When an operator migrates to stateful bringup, that option has no effect. An implementation MAY deprecate the option or MAY instead treat it as selecting stateful bringup when delegation-related configuration is also present. Operators validating or monitoring PCEP operation SHOULD be aware that, after migration to stateful bringup, a PCRpt may arrive without a preceding PCReq for the same LSP. This is valid behavior under this document and SHOULD NOT be treated as a protocol error.

6.2. SR RRO Omission

During a staggered upgrade rollout operators SHOULD upgrade the PCE before the PCC, or, if available on the implementation, configure the PCC to continue sending the SR-RRO/SRv6-RRO until PCE support for ERO-only path reports is confirmed.

6.3. Orphaned LSP Redelegation

When operators are deploying backup or redundant PCEs, implementations SHOULD permit operators to configure a local policy which controls the behavior of orphaned LSP redelegation. One example of a local policy is an ordered list of PCEs to which the PCC maintains PCEP sessions with and when an LSP becomes orphaned, the policy is followed to redelegate to the next PCE in the ordered list that has an active PCEP session.

7. Security Considerations

The security considerations described in [RFC8231], [RFC8281] and [RFC8664] apply to this document.

8. IANA Considerations

This document has no IANA actions.

9. References

9.1. Normative References

[RFC2119]
Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, , <https://www.rfc-editor.org/rfc/rfc2119>.
[RFC5440]
Vasseur, JP., Ed. and JL. Le Roux, Ed., "Path Computation Element (PCE) Communication Protocol (PCEP)", RFC 5440, DOI 10.17487/RFC5440, , <https://www.rfc-editor.org/rfc/rfc5440>.
[RFC8174]
Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, , <https://www.rfc-editor.org/rfc/rfc8174>.
[RFC8231]
Crabbe, E., Minei, I., Medved, J., and R. Varga, "Path Computation Element Communication Protocol (PCEP) Extensions for Stateful PCE", RFC 8231, DOI 10.17487/RFC8231, , <https://www.rfc-editor.org/rfc/rfc8231>.
[RFC8281]
Crabbe, E., Minei, I., Sivabalan, S., and R. Varga, "Path Computation Element Communication Protocol (PCEP) Extensions for PCE-Initiated LSP Setup in a Stateful PCE Model", RFC 8281, DOI 10.17487/RFC8281, , <https://www.rfc-editor.org/rfc/rfc8281>.
[RFC8664]
Sivabalan, S., Filsfils, C., Tantsura, J., Henderickx, W., and J. Hardwick, "Path Computation Element Communication Protocol (PCEP) Extensions for Segment Routing", RFC 8664, DOI 10.17487/RFC8664, , <https://www.rfc-editor.org/rfc/rfc8664>.
[RFC9603]
Li, C., Ed., Kaladharan, P., Sivabalan, S., Koldychev, M., and Y. Zhu, "Path Computation Element Communication Protocol (PCEP) Extensions for IPv6 Segment Routing", RFC 9603, DOI 10.17487/RFC9603, , <https://www.rfc-editor.org/rfc/rfc9603>.

9.2. Informative References

[I-D.draft-koldychev-pce-operational]
Koldychev, M., Sivabalan, S., Peng, S., Achaval, D., Kotni, H., and A. Stone, "PCEP Operational Clarification", Work in Progress, Internet-Draft, draft-koldychev-pce-operational-09, , <https://datatracker.ietf.org/doc/html/draft-koldychev-pce-operational-09>.

Acknowledgments

The authors would like to thank Adrian Farrel for useful review comments on [I-D.draft-koldychev-pce-operational] which have been carried over and have been applied into this document. The authors would also like to thank Dhruv Dhody for content discussion and review. Thanks to Marina Fizgeer for bringing the orphaned LSP without delegation problem to the attention of the PCE WG.

Authors' Addresses

Andrew Stone (Editor)
Nokia
Mike Koldychev
Ciena
Siva Sivabalan
Ciena
Diego Achaval
Nokia
Shuping Peng
Huawei Technologies
Hari Kotni
Juniper Networks, Inc
Samuel Sidor
Cisco