Optimizations of Label Switched Path State Synchronization Procedures for a Stateful PCE
Extracted elements (25)
Incremental (delta) LSP-DB State Synchronization is introduced to reduce overhead when only a small number of LSPs changed during a PCEP session outage. Full synchronization wastes bandwidth and time when the majority of LSPs are unchanged, particularly over low-bandwidth in-band control channels.
PCE-Triggered Initial Synchronization allows the PCE to control the timing of initial State Synchronization to avoid overloading limited-bandwidth control channels (e.g., in-band overhead in optical transport networks) when a large amount of state must be synchronized upon session restart.
State Synchronization is not always necessary following a PCEP session restart. If the state of both PCEP peers did not change, the synchronization phase may be skipped, resulting in significant savings in both control-plane data exchanges and the time it takes for the stateful PCE to become fully operational.
When a PCC's or PCE's IP address changes during PCEP session re-establishment (e.g., line card change or VNF migration), the SPEAKER-ENTITY-ID TLV is used to recognize a previously connected peer, enabling state synchronization optimizations to be applied to the re-established session.
For PCE-triggered resynchronization of a single LSP, the PCC MUST respond with a PCRpt with the LSP state, SYNC=0, and MUST include the SRP-ID-number of the triggering PCUpd. If the LSP is not found, the PCC MUST also set the R (remove) flag in the LSP object.
If a PCC finds it does not have sufficient information to complete incremental synchronization after advertising the capability, it MUST send a PCErr with Error-type=20 and Error-value=5 and terminate the session. The PCC SHOULD re-establish the session with the D bit set to 0.
If a PCEP speaker receives the SPEAKER-ENTITY-ID on a new PCEP session that matches an existing alive PCEP session, the PCEP speaker MUST send a PCErr with Error-type=20 and Error-value=7 'Received an invalid Speaker Entity Identifier', and close the PCEP session.
If both PCEP speakers include the LSP-DB-VERSION TLV in the OPEN object and the TLV values match, the PCC MAY skip State Synchronization. Otherwise, the PCC MUST perform full State Synchronization or incremental State Synchronization.
If both PCEP speakers set the S flag in the OPEN object's STATEFUL-PCE-CAPABILITY TLV to 1, the PCC MUST include the LSP-DB-VERSION TLV in each LSP object of the PCRpt message. If missing, the PCE generates an error with Error-type=6 and Error-value=12 'LSP-DB-VERSION TLV missing', and closes the session.
If either reserved LSP-DB Version Number value (0 or 0xFFFFFFFFFFFFFFFF) is used during LSP State (re)Synchronization, the PCE speaker receiving this value MUST send back a PCErr with Error-type=20 and Error-value=6 'Received an invalid LSP-DB Version Number', and close the PCEP session.
If the PCC attempts to skip State Synchronization when a version mismatch exists, the PCE MUST send back a PCErr with Error-type=20 and Error-value=2 'LSP-DB version mismatch', and close the PCEP session.
If the TRIGGERED-INITIAL-SYNC capability is not advertised by a PCE and the PCC receives a PCUpd with SYNC=1, the PCC MUST send a PCErr with Error-type=20 and Error-value=4 'Attempt to trigger a synchronization when the PCE triggered synchronization capability has not been advertised'.
Incremental State Synchronization proceeds only when both the D bit (DELTA-LSP-SYNC-CAPABILITY) and S bit (INCLUDE-DB-VERSION) are set to 1 by both PCC and PCE. Other combinations of D and S flags result in full LSP-DB synchronization.
Prior to completing the initialization phase when State Synchronization is required, the PCE MUST mark any LSPs in the LSP-DB that were previously reported by the PCC as stale. After receiving the end-of-synchronization marker, the PCE MUST purge any LSPs from the LSP-DB that are still marked as stale.
The LSP-DB Version Number MUST be incremented by 1 for each successive change in the PCC's LSP-DB. It MUST start at 1 and may wrap around. Values 0 and 0xFFFFFFFFFFFFFFFF are reserved.
The LSP-DB-VERSION TLV MUST be included in the end-of-synchronization PCRpt message (PLSP-ID=0, SYNC=0). If a PCEP speaker's LSP-DB did not survive a restart or the database is empty at startup, the PCEP speaker MUST NOT include the LSP-DB-VERSION TLV in the OPEN object.
To enable PCE-triggered initial synchronization, both PCEP speakers MUST set the F bit (TRIGGERED-INITIAL-SYNC) to 1 in the OPEN message. The PCE triggers synchronization by sending a PCUpd with PLSP-ID=0 and SYNC=1; the PCC MUST NOT trigger State Synchronization on its own when this capability is advertised.
To trigger resynchronization of the entire LSP-DB, the PCE MUST first mark all LSPs previously reported by the PCC as stale, then send a PCUpd with PLSP-ID=0, SYNC=1, and an empty ERO. After receiving the end-of-synchronization marker, the PCE will purge LSPs not refreshed.
Four new capability flags are defined in the STATEFUL-PCE-CAPABILITY TLV: S bit (bit 30, INCLUDE-DB-VERSION), D bit (bit 27, DELTA-LSP-SYNC-CAPABILITY), F bit (bit 26, TRIGGERED-INITIAL-SYNC), and T bit (bit 28, TRIGGERED-RESYNC). Each must be advertised during session establishment.
IANA has allocated four new flag bits in the 'STATEFUL-PCE-CAPABILITY TLV Flag Field' registry: bit 26 (TRIGGERED-INITIAL-SYNC), bit 27 (DELTA-LSP-SYNC-CAPABILITY), bit 28 (TRIGGERED-RESYNC), and bit 30 (INCLUDE-DB-VERSION).
IANA has allocated new error values in the 'PCEP-ERROR Object Error Types and Values' registry: Error-type=6, Error-value=12 (LSP-DB-VERSION TLV missing); Error-type=20, Error-values=2,3,4,6,7 for various LSP State Synchronization errors defined by this document.
IANA has allocated two new values in the 'PCEP TLV Type Indicators' registry: Type=23 for LSP-DB-VERSION TLV and Type=24 for SPEAKER-ENTITY-ID TLV.
This document introduces new attack vectors: an attacker could spoof the SPEAKER-ENTITY-ID to impersonate another PCEP speaker, or flood a PCC with triggered resynchronization requests to exhaust its processing capacity. Securing the PCEP session using TLS (PCEPS) as per RFC 7525 is RECOMMENDED, and the Speaker Entity Identifier could be exposed in a certificate for peer identity verification.
The LSP-DB-VERSION TLV has Type=23 and a fixed Length=8 octets. The value field contains a 64-bit unsigned integer in network byte order representing the LSP-DB Version Number.
The SPEAKER-ENTITY-ID TLV has Type=24 and a variable length greater than 0. The value contains the Speaker Entity Identifier, padded to 4-octet alignment (padding not included in the Length field).