rfc-9826

A YANG Data Model for the Path Computation Element Communication Protocol (PCEP)

D. Dhody (Editor), V. Beeram, J. Hardwick, J. Tantsura
date2025-09 streamIETF areartg wgpce statusPROPOSED STANDARD pages108 canonicalhttps://www.rfc-editor.org/rfc/rfc9826 doi10.17487/RFC9826
This document defines a YANG data model for the management of the Path Computation Element Communication Protocol (PCEP) for communications between a Path Computation Client (PCC) and a Path Computation Element (PCE), or between two PCEs.

Extracted elements (25)

design-rationale §6

Segment Routing in the IPv6 data plane (SRv6) is explicitly out of scope for this document; a separate YANG module (YANG-PCEP-SRv6) is referenced for PCEP-SRv6 management. This keeps the base module focused on MPLS-based SR (RFC 8664).

yang, routing

design-rationale §4.1.1.1

The session list uses 'initiator' (local vs. remote) as the key rather than a single entry per peer because RFC 5440 allows two sessions to coexist transiently during establishment — one initiated locally and one by the remote — until one reaches the active state and the other is discarded.

yang, routing

design-rationale §4.1

Timer names in the YANG module use hyphens (e.g., dead-timer, keepalive-timer) in contrast to the camelCase used in the PCEP protocol specification RFC 5440 (e.g., DeadTimer), following standard YANG identifier conventions.

yang, routing

interoperability-note §1

The YANG modules conform to NMDA (RFC 8342); the origin of data is indicated using the origin metadata annotation, allowing management clients to distinguish configured data from operational state derived from the running protocol.

yang, netconf

interoperability-note §4.2

The YANG notifications cover the same events as the PCEP MIB (RFC 7420) notifications, and Appendix D discusses the relationship with the MIB in detail, providing a migration path from SNMP-based to YANG/NETCONF-based PCEP management.

yang, snmp, routing

interoperability-note §7.1

TLS 1.2 (RFC 5246) remains in common use for PCEP and can still be enabled via the 'tls12' YANG feature even though it is marked with status 'deprecated' in RFC 9645. RFC 9645 recommends TLS 1.3 only; early data (0-RTT) is disallowed when using TLS 1.3 with PCEP.

tls, routing, security

normative-requirement §4.1.1 MAY

An implementation MAY choose to discard peer information if and only if no PCEP session exists for the corresponding peer, to limit the quantity of stored state.

yang, routing

normative-requirement §5 MUST

If the reset-all mechanism (reset-pcep-statistics-all RPC) is not supported, implementations must reset PCEP statistics by invoking the 'reset-statistics' action for each individual peer and session.

yang, routing

protocol-element §4.2

Six YANG notifications are defined: pcep-session-up, pcep-session-down, pcep-session-local-overload, pcep-session-local-overload-clear, pcep-session-peer-overload, and pcep-session-peer-overload-clear. These are semantic equivalents of the PCEP MIB (RFC 7420) notifications.

yang, routing

protocol-element §4.1

The auth grouping offers three mutually exclusive authentication choices: auth-key-chain (referencing an ietf-key-chain key-chain-ref), auth-key (inline key with identityref crypto-algorithm plus keystring or hexadecimal-string), and auth-tls (RFC 9645 TLS server or client groupings). The same grouping is reused for both the entity and per-peer configuration.

yang, tls, security, routing

protocol-element §4.1

The capability bits leaf encodes PCEP speaker capabilities including gmpls, bi-dir, diverse, load-balance, synchronize, objective-function, add-path-constraint, prioritization, multi-request, global-concurrent, p2mp, active/passive stateful, flowspec, tcp-ao, and tls bits, aligning with the IANA IGP PCE Capability Flags registry.

yang, routing, registry

protocol-element §8.2

The 'ietf-pcep-stats' YANG module augments 'ietf-pcep' at the peer and session levels to add counters for PCReq, PCRep, PCErr, PCNtf, keepalive, unknown, and corrupt messages, plus PCE response time (avg/lwm/hwm) and stateful/path-key-specific counters. It provides a per-peer/session reset-statistics action and a global reset-pcep-statistics-all RPC.

yang, routing, netconf

protocol-element §8.1

The 'ietf-pcep' YANG module (namespace 'urn:ietf:params:xml:ns:yang:ietf-pcep') defines a generic configuration and operational data model for PCEP, covering the local entity, peers, sessions, notifications, and RPCs. It conforms to YANG 1.1 (RFC 7950) and NMDA (RFC 8342).

yang, routing, netconf

protocol-element §6.1

The LSP-DB container (read-only, gated by the 'stateful' feature) maintains operational state for all LSPs at a stateful PCE, keyed by PLSP-ID, PCC IP address, and LSP-ID. Each entry includes delegation state, initiation state, operational-state (down/up/active/going-down/going-up), symbolic path name, last error, path setup type, and association membership.

yang, routing, mpls

protocol-element §4.1

The pce-info container captures PCE auto-discovery attributes: path-scope bits (intra-area, inter-area, inter-as, inter-layer scopes and defaults), preference fields (intra-area-pref, inter-area-pref, inter-as-pref, inter-layer-pref, range 0–7), neighbor-domains, and path-key configuration (enabled, discard-timer, reuse-time, pce-id).

yang, routing

protocol-element §4.1

The PCEP entity container models the local PCEP speaker with mandatory 'addr' (ip-address-no-zone) and 'role' (pcc, pce, pcc-and-pce, or unknown) leaves, plus sub-trees for capabilities, auth, pce-info, timer parameters (keepalive-timer, dead-timer, connect-timer, etc.), and optional stateful, SR-MPLS, TLS, and H-PCE features.

yang, routing

protocol-element §4.1.1

The peer list is a flat read-write list keyed by IP address that tracks both explicitly configured and dynamically learned peers (e.g., via IGP PCE discovery). Entries persist even when no session exists, and per-peer statistics are aggregated across all successive sessions to that peer.

yang, routing

protocol-element §4.1.1.1

The session list is a read-only flat list keyed by 'initiator' (local or remote), enabling two sessions to transiently coexist for the same peer during the establishment window. Session-level statistics apply only to the current session, distinct from the aggregate peer-level statistics.

yang, routing

protocol-element §4.3

The 'trigger-resync' RPC (gated by features stateful and sync-opt) accepts a PCC address as input and triggers an LSP-DB state resynchronization at the PCE for a sanity check with that specific PCC, as defined in RFC 8232.

yang, routing

registry §10

IANA registered two YANG modules: 'ietf-pcep' under namespace 'urn:ietf:params:xml:ns:yang:ietf-pcep' and 'ietf-pcep-stats' under 'urn:ietf:params:xml:ns:yang:ietf-pcep-stats' in the IANA XML Registry, with RFC 9826 as the reference.

yang, registry, routing

security-consideration §7.1

PCEP speakers should use TLS (PCEPS per RFC 8253) for transport security, configured via the auth-tls choice; the StartTLS procedure completes identity verification before the PCEP session is established. A single PCEP speaker may act as both TLS client (PCC role) and TLS server (PCE role) depending on session context.

tls, security, routing

security-consideration §9

The YANG module imports ietf-netconf-acm (RFC 8341) to apply NACM annotations; security-sensitive nodes such as authentication keys and TLS configuration carry nacm:default-deny-all or nacm:default-deny-write to prevent unauthorized access via NETCONF/RESTCONF management interfaces.

yang, security, netconf

state-machine §8.1

The 'oper-status' typedef enumerates six operational states for the PCEP entity: oper-status-up(1), oper-status-down(2), oper-status-going-up(3), oper-status-going-down(4), oper-status-failed(5, will recover), and oper-status-failed-perm(6, requires operator intervention).

yang, routing

state-machine §8.1

The 'sess-state' typedef enumerates four PCEP session states: tcp-pending(1), open-wait(2), keep-wait(3), and session-up(4). The idle state is excluded because session list entries do not exist in the idle state; transitions follow the session establishment procedure defined in RFC 5440.

yang, routing

state-machine §8.1

The 'sync-state' typedef tracks LSP-DB state synchronization with three values: pending(0, not started), ongoing(1), and finished(2), as defined for stateful PCE synchronization in RFC 8231. The 'lspdb-sync' leaf in the session node uses this type.

yang, routing