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 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 D flag on the state-sync session
towards the highest priority PCE, D flag will be unset to all other
state-sync sessions. This behavior is similar to the delegation
behavior 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 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
acknowledgment of the PCUpd is done through a cascaded mechanism, and
the PCC is the only responsible for triggering the acknowledgment:
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 acknowledgment is
relayed to the computing PCE.¶
All LSPs belonging to the same association group SHOULD have the
same computation priorities for the PCEs. A PCE SHOULD NOT compute a
path using an association-group
constraint if it has delegation for only a subset of LSPs in the
association-group. In this case, an implementation MAY use a local policy on PCE
to decide if PCE does not compute path at all for this set of LSP or
if it can compute a path by relaxing the association-group
constraint.¶