Path Computation Element Communication Protocol (PCEP) Management Information Base (MIB) Module
Extracted elements (23)
During session initialization, pcePcepSessTable may transiently contain two rows for the same peer — one for the locally initiated TCP connection and one for the peer-initiated connection — distinguished by the pcePcepSessInitiator index. Once either reaches sessionUp, the other is discarded. This is why pcePcepSessInitiator is part of the table index.
pcePcepPeerTable retains rows for peers even when no PCEP session currently exists, so that aggregate statistics spanning multiple successive sessions remain accessible. An implementation MAY discard a row only if no session exists to that peer, allowing optional cleanup of ephemeral peer state.
Statistics in pcePcepSessTable and pcePcepPeerTable are semantically distinct: pcePcepSessTable tracks only the current session, while pcePcepPeerTable aggregates across all sessions to that peer over time. This dual-level design supports both real-time session debugging and historical trend analysis.
The PCEP MIB is intentionally limited to read-only access for all objects except pcePcepNotificationsMaxRate. This design confines the MIB's role to monitoring and prevents SNMP-based modification of PCEP operational parameters, reducing the attack surface.
The compliance statement (pcePcepModuleReadOnlyCompliance) restricts pcePcepEntityAddrType to only unknown(0), ipv4(1), and ipv6(2). The corresponding restriction on pcePcepPeerAddrType is intentionally omitted from the formal MODULE-COMPLIANCE due to an SMIv2 limitation that disallows restricting index objects in scope, though the same restriction is intended.
If pcePcepSessState is tcpPending or openWait, then pcePcepSessRemoteID MUST be set to zero, as the peer's session ID is not yet known from the peer's Open message.
pcePcepEntityMaxUnknownMsgs defines the maximum number of unknown messages any session on this entity will accept per minute before terminating the session, providing a rate-limiting defense against malformed or unexpected traffic.
pcePcepEntityMaxUnknownReqs defines the maximum number of unrecognized requests and replies any session will accept per minute before terminating the session. An unrecognized reply has an RP object whose request ID does not match any in-progress request; an unrecognized request has a request ID of zero.
pcePcepSessKeepaliveTimer and pcePcepSessPeerKeepaliveTimer are used if and only if pcePcepSessState is sessionUp; otherwise they MUST be set to zero. Similarly, pcePcepSessPeerDeadTimer and pcePcepSessKAHoldTimeRem MUST be zero in tcpPending or openWait states.
pcePcepSessOverloadTime MUST be set to zero when pcePcepSessOverloaded is false; pcePcepSessPeerOverloadTime MUST be zero when pcePcepSessPeerOverloaded is false. These fields are only meaningful when the respective overload flag is true.
When the SyncTimer (pcePcepEntitySyncTimer) expires before all M synchronized path computation requests referenced in an SVEC object have been received, the PCE MUST cancel the whole set of path computation requests and trigger a protocol error. A value of zero means the entity does not use the SyncTimer.
pcePcepNotificationsMaxRate is the sole read-write object in the MIB; all other objects are read-only. It controls the maximum number of notifications emitted per second; a value of zero means all notifications are discarded and none queued.
pcePcepPeerRole identifies the role a peer played in its last established session: unknown(0), pcc(1), pce(2), or pccAndPce(3). Response-time statistics (pcePcepPeerAvgRspTime, LWMRspTime, HWMRspTime) are meaningless and set to zero when the peer role is pcc, since PCCs do not respond to path computation requests.
Six SNMP NOTIFICATION-TYPEs are defined: pcePcepSessUp and pcePcepSessDown (session state changes), pcePcepSessLocalOverload and pcePcepSessLocalOverloadClear (local entity overload events), pcePcepSessPeerOverload and pcePcepSessPeerOverloadClear (peer overload events). Each carries relevant session state objects as varbinds.
The pcePcepEntityAddr and pcePcepEntityAddrType objects specify the local IP address of the PCEP entity. When acting as a PCE server, the entity listens on this address; when acting as a PCC, it binds outgoing TCP connections to this address. An entity can simultaneously act as both PCC and PCE server on the same address.
The pcePcepEntityTable contains one row per local PCEP entity, holding administrative status, operational status, IP address, and all timer/limit configuration (ConnectTimer, KeepAliveTimer, DeadTimer, MaxSessions, MaxUnknownReqs, MaxUnknownMsgs, etc.). All entries are read-only.
The pcePcepPeerTable contains one row per known remote PCEP speaker, indexed by pcePcepEntityIndex + InetAddressType + InetAddress. It aggregates statistics (message counts, response times, session setup successes/failures) across all sessions to that peer and persists entries even when no active session exists.
The pcePcepSessTable contains one row per active PCEP session (non-idle), indexed by pcePcepEntityIndex + peer address + pcePcepSessInitiator. Statistics here apply to the current session only, in contrast to the aggregate statistics in pcePcepPeerTable. The entry is removed when the session returns to idle.
IANA assigned the PCE-PCEP-MIB module the OID { mib-2 227 } under the Internet-Standard Management Framework. This is the authoritative object identifier for the PCEP management module defined in this document.
The PCEP MIB exposes sensitive operational data including session state, peer addresses, timer values, and traffic statistics. SNMPv3 with authentication and privacy (authPriv security level) is strongly recommended to prevent unauthorized read access and to protect counter data from being observed by eavesdroppers who could use it for traffic analysis.
The sole read-write object, pcePcepNotificationsMaxRate, could be used by an attacker to suppress PCEP event notifications entirely by setting it to zero, masking session failures or overload conditions from network management systems. Write access to this object should be strictly controlled via SNMP access control.
The pcePcepEntityOperStatus object defines six operational states for a local PCEP entity: operStatusUp(1), operStatusDown(2), operStatusGoingUp(3), operStatusGoingDown(4), operStatusFailed(5) — will recover automatically, operStatusFailedPerm(6) — requires operator intervention to recover.
The pcePcepSessState object defines four session states: tcpPending(1) — TCP connection being established; openWait(2) — waiting for Open message; keepWait(3) — waiting for Keepalive or PCErr after Open exchange; sessionUp(4) — session fully active. The idle state is not represented because entries are absent from pcePcepSessTable in idle state.