In computer networks, a path computation element (PCE) is a system component, application, or network node that is capable of determining and finding a suitable route for conveying data between a source and a destination.[1]
Routing can be subject to a set of constraints, such as quality of service (QoS), policy, or price. Constraint-based path computation is a strategic component of traffic engineering in MPLS, GMPLS and Segment Routing networks. It is used to determine the path through the network that traffic should follow, and provides the route for each label-switched path (LSP) that is set up.
Path computation has previously been performed either in a management system or at the head end of each LSP. But path computation in large, multi-domain networks may be very complex and may require more computational power and network information than is typically available at a network element, yet may still need to be more dynamic than can be provided by a management system.
Thus, a PCE is an entity capable of computing paths for a single or set of services. A PCE might be a network node, network management station, or dedicated computational platform that is resource-aware and has the ability to consider multiple constraints for sophisticated path computation. PCE applications compute label-switched paths for MPLS and GMPLS traffic engineering. The various components of the PCE architecture are in the process of being standardized by the IETF's PCE Working Group.[2]
PCE represents a vision of networks that separates route computations from the signaling of end-to-end connections and from actual packet forwarding. There is a basic tutorial on PCE as presented at ISOCORE's MPLS2008 conference[3] and a tutorial on advanced PCE as presented at ISOCORE's SDN/MPLS 2014 conference.[4]
Since the early days, the PCE architecture has evolved considerably to encompass more sophisticated concepts and allow application to more complicated network scenarios. This evolution includes Hierarchical PCE (H-PCE)[5] and both Stateful and Active PCE.[6]
A potential deployment of PCE separates the computation element from the client (the PCC) that request computation services. Communications between the PCE and PCC are achieved using the Path Computation Element Communication Protocol (PCEP)[7] which runs over the Transmission Control Protocol (TCP).
As the architecture has evolved, new protocol extensions have been developed to add functionality to support new applications and the new architectural elements. These developments are tracked by the PACE project[8] which is funded by the European Union's Seventh Framework Programme for research, technological development and demonstration under grant agreement no. 619712.
The PACE project has developed a primer for those interested in PCE. It can be downloaded without charge from the PACE website.[9]
There are several PCE extensions to achieve different goals. For example: