A computation priority is necessary to ensure that a single PCE
will perform the computation for all the LSPs in an association group:
this will allow for a more optimized LSP placement and will prevent
computation loops.¶
All PCEs in the network that are handling LSPs in a common LSP
association group SHOULD be aware of each other including the
computation priority of each PCE. Note that there is no need for PCC
to be aware of this. The computation priority is a number and the PCE
having the highest priority MUST be responsible for the computation.
If several PCEs have the same priority value, their IP address MUST
be used as a tie-breaker to provide a rank: the highest IP address has
more priority.¶
The computation priorities could be set through local configurations.
The priority for local and remote PCEs could be set at the global level
so the highest
priority PCE will handle all path computations or more granular, so a
PCE may have the highest priority for only a subset of LSPs or
association groups. See Section 9.1 for more details.
In future, PCEs could also advertise and discover these parameters via PCEP,
those details are out
of the scope of this document and left for future specification.¶
A PCEP Speaker receiving a PCRpt from a PCC with the D flag set
that does not have the highest computation priority, SHOULD forward
the PCRpt on all state-sync sessions (as per Section 3.3) and SHOULD set the D flag on the state-sync session
towards the highest priority PCE, the D flag will be unset to all other
state-sync sessions. This behavior is similar to the delegation
behaviour handled at the PCC side and is called a sub-delegation (the
PCE sub-delegates the control of the LSP to another PCE). When a PCEP
Speaker sub-delegates an LSP to another PCE, it loses control of the
LSP and cannot update it anymore by its own decision. When a PCE
receives a PCRpt with the D flag set on a state-sync session, as a regular
PCE, it is granted control over the LSP.¶
If the highest priority PCE is failing or if the state-sync session
between the local PCE and the highest priority PCE failed, the operator
MAY decide to instruct a switch-over to delegate the LSP to the next highest priority PCE or
to take back control of the LSP. It is a local policy decision.¶
When a PCE has the delegation for an LSP and needs to update this
LSP, it MUST send a PCUpd message to all state-sync sessions and to
the PCC session on which it received the delegation. The D-Flag would
be unset in the PCUpd for state-sync sessions whereas the D-Flag would
be set for the PCC. In the case of sub-delegation, the computing PCE
will send the PCUpd only to all state-sync sessions (as it has no
direct delegation from a PCC). The D-Flag would be set for the
state-sync session to the PCE that sub-delegated this LSP and the
D-Flag would be unset for other state-sync sessions.¶
The PCUpd sent over a state-sync session MUST contain the
SPEAKER-ENTITY-ID TLV in the LSP Object (the value used must identify
the target PCC). The PLSP-ID used is the original PLSP-ID generated by
the PCC and learned from the forwarded PCRpt. If a PCE receives a
PCUpd on a state-sync session without the SPEAKER-ENTITY-ID TLV, it
MUST discard the PCUpd and MUST reply with a PCErr message using
error-type=6 (Mandatory Object missing) and error-value=TBD1
(SPEAKER-ENTITY-ID TLV missing).¶
When a PCE receives a valid PCUpd on a state-sync session, it
SHOULD forward the PCUpd to the appropriate PCC (identified based on
the SPEAKER-ENTITY-ID TLV value) that delegated the LSP originally and
SHOULD remove the SPEAKER-ENTITY-ID TLV from the LSP Object. The
acknowledgement of the PCUpd is done through a cascaded mechanism, and
the PCC is only responsible for triggering the acknowledgement:
when the PCC receives the PCUpd from the local PCE, it acknowledges it
with a PCRpt as per [RFC8231]. When
receiving the new PCRpt from the PCC, the local PCE uses the defined
forwarding rules on the state-sync session so the acknowledgement is
relayed to the computing PCE.¶
To ensure uniform information across all PCEs, each PCE needs to relay the information it receives from the PCCs in the Open message to other PCEs via the state-sync session. This includes various PCC capabilities and parameters such as Maximum Segment Identifier (SID) Depth (MSD).¶
As per [RFC5440], the PCEP Notification message (PCNtf) can be sent by a PCEP speaker to notify its peer of a specific event. A PCE should notify the other state-sync PCEs of the information it receives from the PCC's open message. Section 7.14 of [RFC5440] specifies the NOTIFICATION object. This document adds a new Notification-type=TBD6 (Inter-PCE State-sync) and two Notification-values (Notification-value=1 (Add PCC's Open Information) and Notification-value=2 (Remove PCC's Open Information)).¶
For Notification-type=TBD6, the NOTIFICATION object encodes the SPEAKER-ENTITY-ID TLV (with values that identify the PCC) and any other TLV that can be carried inside the OPEN object as a way to signal the PCC's information it received via the open message to other state-sync PCEs.¶
- Notification-value=1: Add PCC's Open Information. On session establishment with a PCC, a PCE with state-sync capability MUST send this notification to other state-sync PCEs with the SPEAKER-ENTITY-ID TLV with values that identify the PCC and any other TLVs encoded in the OPEN object received from the PCC. On session establishment with a state-sync PCE, the PCE MUST also exchange notifications for each of the PCCs it already has a session established. The PCE MUST exchange this notification prior to the State Synchronization (described in Section 3.2). Note that the PCNtf can be used to carry multiple NOTIFICATION objects, one for each PCC. On receiving this notification, PCE adds the information to its database.¶
- Notification-value=2: Remove PCC's Open Information. On session down with a PCC, a PCE with state-sync capability MUST send this notification to other state-sync PCEs with the SPEAKER-ENTITY-ID TLV with values that identify the PCC to remove the information from the database.¶
A PCE may receive this Notification from multiple PCEs that a given PCC has a session and can use a similar mechanism as described in Section 3.4 to keep the freshest state. In case of the termination of a state-sync session, this information is also cleaned up alongside LSP-DB.¶
All LSPs belonging to the same association group SHOULD have the
same computation priorities for the PCEs. A PCE SHOULD only compute
a path using an association-group constraint if it has delegation for
all of the LSPs in the association group. In this case, an implementation
MAY use a local policy on PCE to decide if PCE does not compute a path
at all for this set of LSP or if it can compute a path by relaxing
the association-group constraint.¶