The Path Computation Element Protocol (PCEP) is one of several protocols used for communication between a Wide-Area Network (WAN) Software-Define Networking (SDN) controller and network elements.
The Nokia WAN SDN Controller is known as the Network Services Platform (NSP). The NSP is a set of applications which are built on a common framework that hosts and integrates them by providing common functions. The applications are developed in a Java environment.
The NSP provides two major functions:
The network discovery and control implements a common set of standards-based south-bound interfaces to the network elements for both topology discovery and tunnel and flow programming. It is a virtual SR OS (vSROS) image which applies the south-bound interfaces to the network elements and the adaptation layer to the applications. The south-bound interfaces include IGP and BGP-LS for topology discovery, PCEP for handling path computation requests and LSP state updates with the network elements, and forwarding plane programming protocols such as Openflow, BGP flowspec, and I2RS.
The above NSP functions are provided in a number of modules which can be used together or separately as illustrated in Figure 56.
The two main features of the NSP are as follows:
The NRC-P implements the stateful Path Computation Element (PCE) for packet networks. Figure 57 illustrates the NRC-P architecture and its main components.
The NRC-P has the following architecture:
The PCE module uses PCEP to communicate with its clients, such as the PCE Client (PCC). It also uses the PCEP to communicate with other PCEs to coordinate inter-domain path computation. Each router acting as a PCC initiates a PCEP session to the PCE in its domain.
When the user enables PCE control for one or more segment routing or RSVP LSPs, the PCE owns the path updating and periodic re-optimization of the LSP. In this case, the PCE acts in an active stateful role. The PCE can also act in a stateful passive role for other LSPs on the router by discovering them and taking into account their resource consumption when computing the path for the LSPs it has control ownership of.
The following is a high-level description of the PCE and PCC capabilities:
The following PCE parameters cannot be modified while the PCEP session is operational:
The unknown-message-rate PCE parameter can be modified while the PCEP session is operational.
The following PCC parameters cannot be modified while the PCEP session is operational:
The following PCC parameters can be modified while the PCEP session is operational:
The base implementation of PCE uses the PCEP extensions defined in RFC 5440.
The main functions of the PCEP are:
Table 44 lists the base PCEP messages and objects.
TLV, Object, or Message | Contained in Object | Contained in Message |
OPEN Object | N/A | OPEN, PCErr |
Request Parameter (RP) Object | N/A | PCReq, PCRep, PCErr, PCNtf |
NO-PATH Object | N/A | PCRep |
END-POINTS Object | N/A | PCReq |
BANDWIDTH Object | N/A | PCReq, PCRep, PCRpt, PCInitiate |
METRIC Object | N/A | PCReq, PCRep, PCRpt, PCInitiate |
Explicit Route Object (ERO) | N/A | PCRep |
Reported Route Object (RRO) | N/A | PCReq |
LSPA Object | N/A | PCReq, PCRep, PCRpt, PCInitiate |
Include Route Object (IRO) | N/A | PCReq, PCRep |
SVEC Object | N/A | PCReq |
NOTIFICATION Object | N/A | PCNtf |
PCEP-ERROR Object | N/A | PCErr |
LOAD-BALANCING Object | N/A | PCReq |
CLOSE Object | N/A | CLOSE |
The behavior and limitations of the implementation of the objects in Table 44 are as follows:
The following features are not supported in the SR OS:
The PCEP protocol operates over TCP using destination TCP port 4189. The PCC always initiates the connection. Once the user configures the PCEP local address and the peer address on the PCC, the PCC initiates a TCP connection to the PCE. Once a connection is established, the PCC and PCE exchange OPEN messages, which initializes the PCEP session and exchanges the session parameters to be negotiated.
The PCC always checks first if the remote PCE address is reachable out-of-band via the management port. If not, it will try to reach the remote PCE address in-band. When the session comes up out-of-band, the system IP address is always used; the local address configured by the user is ignored and is only used for an in-band session.
A keep-alive mechanism is used as an acknowledgment of the acceptance of the session within the negotiated parameters. It is also used as a maintenance function to detect whether or not the PCEP peer is still alive.
The negotiated parameters include the Keepalive timer and the DeadTimer, and one or more PCEP capabilities such as support of Stateful PCE and the SR-TE LSP Path type.
The PCEP session initialization steps are illustrated in Figure 58.
If the session to the PCE times out, the router acting as a PCC keeps the last successfully-programmed path provided by the PCE until the session to the PCE is re-established. Any subsequent change to the state of an LSP is synchronized at the time the session is re-established.
When a PCEP session to a peer times out or closes, the rate at which the PCEP speaker attempts the establishment of the session is subject to an exponential back-off mechanism.
The following PCEP parameters are user-configurable on both the PCC and PCE. On the PCE, the configured parameter values are used on sessions to all PCCs.
The main function introduced by stateful PCE over the base PCE implementation is the ability to synchronize the LSP state between the PCC and the PCE. This allows the PCE to have all the required LSP information to perform re-optimization and updating of the LSP paths.
Table 45 describes the messages and objects supported by stateful PCE in the SR OS.
TLV, Object, or Message | Contained in Object | Contained in Message |
Path Computation State Report (PCRpt) | N/A | New message |
Path Computation Update Request (PCUpd) | N/A | New message |
Stateful PCE Capability TLV | OPEN | OPEN |
Stateful Request Parameter (SRP) Object | N/A | PCRpt, PCErr, PCInitiate |
LSP Object | ERO | PCRpt, PCReq, PCRep, PCInitiate |
LSP Identifiers TLV | LSP | PCRpt |
Symbolic Path Name TLV | LSP, SRP | PCRpt, PCInitiate |
LSP Error Code TLV | LSP | PCRpt |
RSVP Error Spec TLV | LSP | PCRpt |
The behavior and limitations of the implementation of the objects in Table 45 are as follows:
Stateful PCE uses the additional messages, TLVs, and objects described in Table 46 for PCE initiation of LSPs.
TLV, Object, or Message | Contained in Object | Contained in Message |
PCE LSP Initiate Message (PCInitiate) | N/A | New message |
PCC LSP Create Flag (C-Flag) | LSP | PCRpt |
PATH_PROFILE_ID TLV | Path Profile | N/A |
In order for the PCE and PCC to manage the path of an SR-TE LSP, they both implement the following extensions to PCEP in support of segment routing.
Table 47 describes the segment routing extension objects and TLVs supported in the SR OS.
TLV, Object, or Message | Contained in Object | Contained in Message |
SR PCE CAPABILITY TLV | OPEN | OPEN |
Path Setup Type (PST) TLV | SRP | PCReq, PCRep, PCRpt |
SR-ERO Sub-object | ERO | PCRep, PCRpt |
SR-RRO Sub-object | RRO | PCReq, PCRpt |
Segment-ID (SID) Depth Value in METRIC Object | METRIC | PCReq, PCRpt |
An LSP that is configured on the router is referred to as a PCC-initiated LSP. An LSP that is not configured on the router, but is instead created by the PCE at the request of an application or a service instantiation, is referred to as a PCE-initiated LSP.
The SR OS support three different modes of operations for PCC-initiated LSPs which are configurable on a per-LSP basis.
The SR OS also supports PCE-initiated LSPs. PCE-initiated LSP is a feature that allows a WAN SDN Controller, for example, the Nokia NSP, to automatically instantiate an LSP based on a service or application request. Only SR-TE PCE-initiated LSPs are supported.
The instantiated LSP does not have a configuration on the network routers and is therefore treated the same way as an auto-LSP. The parameters of the LSP are provided using policy lookup in the NSP and are passed to the PCC using PCEP as per RFC 8281. Missing LSP parameters are added using a default or specified LSP template on the PCC.
PCE-initiated LSPs have the following characteristics.
The following is the procedure for configuring and programming a PCC-initiated SR-TE LSP when control is delegated to the PCE.
![]() | Note: For the PCE to be able to use the SRLG path diversity and admin-group constraints in the path computation, the user must configure the SRLG and admin-group membership against the MPLS interface and make sure that the traffic-engineering option is enabled in IGP. This causes IGP to flood the link SRLG and admin-group membership in its participating area, and for PCE to learn it in its TE database. |
The above procedure is followed when the user performs a no shutdown command on a PCE-controlled or PCE-computed LSP. The starting point is an LSP which is administratively down with no active path. For an LSP with an active path, the following items can apply:
The following is the procedure for configuring and programming a PCE-initiated SR-TE LSP.
Controlled by PCE | Controlled by PCC | |||
Invalid | Implicit | Signaled in PCEP | LSP Signaling Options | LSP Usability Options |
auto-bandwidth | pce-report | bandwidth | ||
retry-limit | cspf | exclude | bgp-shortcut | |
retry-timer | pce-control | from | bgp-transport-tunnel | |
shutdown | pce-report | hop-limit | default-path (mandatory, must be empty) | |
least-fill | pce-computation | include | ||
cspf use-te-metric | entropy-label | |||
setup-priority | igp-shortcut | |||
hold-priority | ||||
load-balancing-weight | ||||
max-sr-labels | ||||
additional-frr-labels | ||||
metric | ||||
vprn-auto-bind | ||||
admin-tag |
The following procedures are followed in the instantiation of a PCE-initiated LSP by both the NSP and SR OS router. Further protocol details can be found in RFC 8281.
The following procedures apply in the deletion of a PCE-initiated LSP. More protocol level details are provided in RFC 8281. These procedures are applicable when the user manually deletes the PCE-initiated LSP or the NSP application, or when NSD requests the deletion of the PCE-initiated LSP. The procedures that apply when a network event occurs are described in SR OS Router Procedures.
![]() | Note: The state-timeout timer must be considerably larger than the maximum state timer on the PCC to give the PCC time to clean up PCE-initiated LSPs and prevent PCInit requests for duplicate LSPs. |
Table 49 summarizes the impact of various PCC operational events on the status of PCE-initiated LSPs.
Event | Impact on PCE-initiated LSPs | |
Oper-down | Deleted | |
MPLS shutdown | X 1 | |
no mpls | X 2 | |
no pce-initiated-lsp | X (all) 2 | |
no sr-te | X (sr-te) 2 | |
sr-te shutdown | X (sr-te) 1 | |
pcc shutdown | X (all) 3 | |
pcc peer shutdown | X 3 | |
Delete LSP template ID | X (LSPs using template) 2 | |
Delete default LSP template | X (all) 2 |
Notes:
The following list describes in more detail the actions that the PCC takes on PCE-initiated LSPs as a result of PCC operational events:
This section describes the support of PCE Client-initiated (PCC-initiated) RSVP-TE LSP. The PCEP support of an RSVP-TE LSP provides the same modes of operation as an SR-TE LSP and on per-LSP:
The PCEP support of an RSVP-TE LSP differs from that of an SR-TE LSP in the following areas.
The following MPLS-level and LSP-level CLI commands, used to configure RSVP-TE LSP in a router acting as a PCEP Client (PCC).
The cspf option must first be enabled before enabling the pce-computation or pce-control options. An attempt to disable the cspf option on an RSVP-TE LSP that has the pce-computation or pce-control options enabled will be rejected.
If the LSP has disabled PCE reporting, either due to inheritance or due to LSP-level configuration, enabling the pce-control option for the LSP has no effect. To help troubleshoot this situation, the output of the show commands for the LSP displays operational values of both the pce-report and pce-control.
![]() | Note: The PCE function implemented in the Nokia Network Services Platform (NSP) and referred to as the Network Resource Controller for Packet (NRC-P), supports only Shared Explicit (SE) style bandwidth management for TE LSPs. The PCEP protocol does not have means for the PCC to convey this value to the PCE, so, regardless of whether the LSP configuration option rsvp-resv-style is set to se or ff, the PCE will always use the SE style in the CSPF computation of the path for a PCE-computed or PCE-controlled RSVP-TE LSP. |
A one-hop-p2p or a mesh-p2p RSVP-TE auto-lsp only supports the pce-report command in the LSP template:
config>router>mpls>lsp-template>pce-report {enable | disable | inherit}
The user must first shut down the LSP template before changing the value of the pce-report option.
A manual bypass LSP does not support any of the PCE-related commands. Reporting a bypass LSP to PCE is not required because it does not book bandwidth.
All other MPLS, LSP, and path-level commands are supported, with the exception of backup-class-type, class-type, least-fill, main-ct-retry-limit, mbb-prefer-current-hops, and srlg (on secondary standby path), which, if enabled, will result in a no operation.
The RSVP-TE PCC supports the same instantiation modes as the SR-TE LSP. See LSP Initiation for more information.
When the pce-control option is enabled, the PCC delegates the control of the RSVP-TE LSP to the PCE.
The NRC-P sends a path update using the PCUpd message in the following cases:
The procedures for the path update are the same as those for an SR-TE LSP. See LSP Initiation for more information. However, the PCUpd message from the PCE does not contain the label for each hop in the computed ERO. PCC then signals the path using the ERO returned by the PCE and, if successful, programs the data path, then sends the PCRpt message with the resulting RRO and hop labels provided by RSVP-TE signaling.
If the signaling of the ERO fails, then the ingress LER returns a PCErr message to PCE with the LSP Error code field of the LSP-ERROR-CODE TLV set to a value of 8 (RSVP signaling error).
If an RSVP-TE LSP has the no adaptive option set, the ingress LER cannot perform an MBB for such an LSP. A PCUpd message received from the PCE is then failed by the ingress LER, which returns a PCErr message to PCE with the LSP Error code field of the LSP-ERROR-CODE TLV set to a value of 8 (RSVP signaling error).
When the NRC-P reoptimizes the path of a PCE-controlled RSVP-TE LSP, it is possible that a path that satisfies the constraints of the LSP no longer exists. In this case, the NRC-P sends a PCUpd message with an empty ERO, which forces the PCC to bring down the path of the RSVP-TE LSP.
NRC-P sends a PCUpd message with an empty ERO if the following cases are true.
In addition to the Make-Before-Break (MBB) support when the PCC receives a path update, as described in Behavior of the LSP Path Update, an RSVP-TE LSP supports the MBB procedure for any parameter configuration change, including the PCEP-related commands when they result in a change to the path of the LSP.
If the user adds or modifies the path-profile command for an RSVP-TE LSP, a Config Change MBB is only performed if the pce-computation, pce-report, or pce-control options are enabled on the LSP. Otherwise, no action occurs. When pce-computation, pce-report, or pce-control are enabled on the LSP, the Path Update MBB (tools perform router mpls update-path) will be failed, resulting in a no operation.
MBB is also supported for the Manual Resignal and Auto-Bandwidth MBB types.
When the LSP goes into a MBB state at the ingress LER, the behavior is dependent on the LSP’s operating mode.
The LSP MBB procedures for a PCE-controlled LSP (pce-control enabled) are as follows.
Items 1 through 5 of the following procedures apply to the Config Change, Manual Resignal, and Auto-Bandwidth MBB types. The Delayed Retry MBB type used with the SRLG on secondary standby LSP feature is not supported with a PCE controlled LSP. See Behavior of Secondary LSP Paths for information about the SRLG on secondary standby LSP feature.
All MBB types are supported for PCE-computed LSP. The LSP MBB procedures for a PCE-computed LSP (pce-computation enabled and pce-control disabled) are as follows.
All MBB types are supported for PCC-controlled LSP. The LSP MBB procedures for a PCC-controlled LSP (pce-computation and pce-control disabled) are as follows.
Each of the primary, secondary standby, and secondary non-standby paths of the same LSP must use a separate PLSP-ID. The PCE function of the NSP, the NRC-P, checks the LSP-IDENTIFIERS TLVs in the LSP object and can identify which PLSP-IDs are associated with the same LSP or the same RSVP session. The parameters are the IPv4 Tunnel Sender Address, the Tunnel ID, the Extended Tunnel ID, and the IPv4 Tunnel Endpoint Address. This approach allows the use of all the PCEP procedures for all three types of LSP paths.
PCC indicates to PCE the following states for the path in the LSP object: down, up (signaled but is not carrying traffic), or active (signaled and carrying traffic).
PCE tracks active paths and displays them in the NSP GUI. It also provides only the tunnel ID of an active PLSP-ID to a given destination prefix when a request is made by a service or a steering application.
PCE recomputes the paths of all PLSP-IDs that are affected by a network event. The user can select each path separately on the NSP GUI and trigger a manual resignal of one or more paths of the RSVP-TE LSP.
![]() | Note: Enabling the srlg option on a secondary standby path results in a no operation. The NRC-P supports link and SRLG disjointness using the PCE path profile, and the user can apply to the primary and secondary paths of the same LSP. See PCE Path Profile Support for more information. |
The PCE path profile ID and path group ID are configured at the LSP level.
The NRC-P can enforce path disjointness and bidirectionality among a pair of forward and a pair of reverse LSP paths. Both pairs of LSP paths must use a unique path group ID along with the same Path Profile ID, which is configured on the NRC-P to enforce path disjointness or path bidirectionality constraints.
When the user wants to apply path disjointness and path bidirectionality constraints to RSVP-TE LSP paths, it is important to follow the following guidelines. The user can configure the following sets of LSP paths:
The PCE path profile defined in draft-alvarez-pce-path-profiles is used to request path diversity or a disjoint for two or more LSPs originating on the same or different PE routers. It is also used to request that paths of two unidirectional LSPs between the same two routers use the same TE links. This is referred to as the bidirectionality constraint.
Path profiles are defined by the user directly on the NRC-P Policy Manager with a number of LSP path constraints, which are metrics with upper bounds specified, and with an objective, which are metrics optimized with no bound specified. The NRC-P Policy Manager allows the following PCE constraints to be configured within each PCE Path Profile:
The user can also specify which PCE objective to use to optimize the path of the LSP in the PCE Path Profile:
The CSPF algorithm will optimize this objective. If a constraint is provided for the same metric, then the CSPF algorithm makes sure that the selected path achieves a lower or equal value to the bound specified in the constraint.
For hop-count metrics, if a constraint is sent in a METRIC object, and is also specified in a PCE profile referenced by the LSP, the constraint in the METRIC object is used.
For IGP and TE metrics, if an objective is sent in a METRIC object, and is also specified in a PCE profile referenced by the LSP, the objective in the Path Profile is used.
The constraints in the Bandwidth object and the LSPA object, specifically the include/exclude admin-group constraints and setup and hold priorities, are not supported in the PCE profile.
In order to indicate the path diversity and bidirectionality constraints to the PCE, the user must configure the profile ID and path group ID of the PCE path that the LSP belongs to. The CLI for this is described in the Configuring and Operating SR-TE section. The path group ID does not need to be defined in the PCE as part of the path profile configuration, and identifies implicitly the set of paths which must have the path diversity constraint applied.
The user can only associate a single path group ID with a specific PCE path profile ID for a given LSP. However, the same path group ID can be associated with multiple PCE profile IDs for the same LSP.
The path profiles are inferred using the path ID in the path request by the PCC. When the PE router acting as a PCC wants to request path diversity from a set of other LSPs belonging to a path group ID value, it adds a new path profile object into the PCReq message. The object contains the path profile ID and the path group ID as an extended ID field. In other words, the diversity metric is carried in an opaque way from PCC to PCE.
The bidirectionality constraint operates the same way as the diversity constraint. The user can configure a PCE profile with both the path diversity and bidirectionality constraints. PCE will check if there is an LSP in the reverse direction which belongs to the same path group ID as an originating LSP it is computing the path for, and will enforce the constraint.
In order for the PCE to be aware of the path diversity and bidirectionality constraints for an LSP that is delegated but for which there is no prior state in the NRC-P LSP database, the path profile object is included in the PCRpt message with the P-flag set in the common header to indicate that the object must be processed.
Table 50 describes the new objects introduced in the PCE path profile.
TLV, Object, or Message | Contained in Object | Contained in Message |
PATH-PROFILE-CAPABILITY TLV | OPEN | OPEN |
PATH-PROFILE Object | N/A | PCReq, PCRpt, PCInitiate |
A path profile object can contain multiple TLVs containing each profile-id and extend-id, and should be processed properly. If multiple path profile objects are received, the first object is interpreted and the others are ignored. The PCC and the PCE support all PCEP capability TLVs defined in this chapter and will always advertise them. If the OPEN object received from a PCEP speaker does not contain one or more of the capabilities, the PCE or PCC will not use them during that PCEP session.
This feature introduces resilience support to the PCE and PCC capabilities.
In Release 16.0.R4, a CLI command parameter is introduced in the PCC for configuring the PCEP session to the standby backup PCE peer. A preference parameter value is used to decide the primary and the standby backup PCE peer:
# configure router pcep pcc peer ip-address [preference preference]
A maximum of two PCE peers are supported. The PCE peer that is not in overload is always selected by the PCC as the active PCE. However, if neither of the PCEs are signaling the overload state, the PCE with the higher numerical preference value is selected. In case of a tie, the PCE with the lower IP address is selected.
In order to change the value of the preference parameter, the peer must be deleted and recreated.
Figure 59 illustrates the NSP ecosystem and the provision of resilience across two separate sites. This is referred to as Disaster Recovery (DR) and is also sometimes referred to as geo-redundancy.
NSP ecosystem resilience consists of two mechanisms that can be deployed separately or together:
Each parent NSP cluster establishes a reliable TCP session with a virtual IP to the local VSR-NRC. The TCP session runs an internal protocol, also known as cproto. This configuration is done prior to system startup and cannot be changed with an active NSP; the NSP must be shut down for any changes.
The following describes NSP cluster rules:
The following describes VSR-NRC rules:
![]() | Note: HA is not required for DR operation. VSR-NRCs can also be asymmetrically deployed (VSR-NRC HA at the primary site and standalone at the standby site). |
![]() | Note: If the entire primary site fails, the above actions of the VSR-NRC at the primary site do not apply; however, the remaining actions do apply. |
The following describes PCC rules: