RFC 8051
Applicability of a Stateful Path Computation Element (PCE)
Okay bestie, RFC 8051 is here π It's called Applicability of a Stateful Path Computation Element (PCE) π. It's Informational, so it's not a Standards Track spec. It was published in January 2017 and the ISSN is 2070-1721 β¨. The authors are X. Zhang, Ed. from Huawei Technologies and I. Minei, Ed. from Google, Inc. π«Ά It doesn't list anything it obsoletes or updates, so no drama there π§.
Abstract β¨
okay so a stateful PCE keeps track of LSP stuff (characteristics and resource usage) across the whole network π¦. That lets it do traffic-engineering calculations for the PCCs it works with π . This doc walks through general deployment vibes, how useful it is, the challenges, and the limits, using a bunch of use cases πΈ. The PCEP extensions you need for stateful PCE usage are in separate docs π.
Status of This Memo β¨
This doc is not an Internet Standards Track spec. It's published for info purposes only π.
It's a product of the IETF π. It reflects what the IETF community agrees on, got public review, and was approved for publication by the IESG π. Not every IESG-approved doc is a candidate for any level of Internet Standard, so check Section 2 of RFC 7841 for that π₯.
For the current status, errata, and how to send feedback, go to http://www.rfc-editor.org/info/rfc8051 π.
Copyright Notice β¨
Copyright (c) 2017 IETF Trust and the persons identified as the document authors. All rights reserved π.
This doc is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) as they stand on the publication date π. Read these carefully, because they're your rights and restrictions for this doc π«Ά. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions, and they come without warranty as described in the Simplified BSD License π
.
Table of Contents πΈ
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4
3. Application Scenarios . . . . . . . . . . . . . . . . . . . . 5
3.1. Optimization of LSP Placement . . . . . . . . . . . . . . 5
3.1.1. Throughput Maximization and Bin Packing . . . . . . . 6
3.1.2. Deadlock . . . . . . . . . . . . . . . . . . . . . . 7
3.1.3. Minimum Perturbation . . . . . . . . . . . . . . . . 9
3.1.4. Predictability . . . . . . . . . . . . . . . . . . . 10
3.2. Auto-Bandwidth Adjustment . . . . . . . . . . . . . . . . 11
3.3. Bandwidth Scheduling . . . . . . . . . . . . . . . . . . 12
3.4. Recovery . . . . . . . . . . . . . . . . . . . . . . . . 12
3.4.1. Protection . . . . . . . . . . . . . . . . . . . . . 13
3.4.2. Restoration . . . . . . . . . . . . . . . . . . . . . 14
3.4.3. SRLG Diversity . . . . . . . . . . . . . . . . . . . 15
3.5. Maintenance of Virtual Network Topology (VNT) . . . . . . 15
3.6. LSP Reoptimization . . . . . . . . . . . . . . . . . . . 16
3.7. Resource Defragmentation . . . . . . . . . . . . . . . . 17
3.8. Point-to-Multipoint Applications . . . . . . . . . . . . 17
3.9. Impairment-Aware Routing and Wavelength Assignment
(IA-RWA) . . . . . . . . . . . . . . . . . . . . . . . . . 18
4. Deployment Considerations . . . . . . . . . . . . . . . . . . 19
4.1. Multi-PCE Deployments . . . . . . . . . . . . . . . . . . 19
4.2. LSP State Synchronization . . . . . . . . . . . . . . . . 19
4.3. PCE Survivability . . . . . . . . . . . . . . . . . . . . 19
5. Security Considerations . . . . . . . . . . . . . . . . . . . 20
6. References . . . . . . . . . . . . . . . . . . . . . . . . . 20
6.1. Normative References . . . . . . . . . . . . . . . . . . 20
6.2. Informative References . . . . . . . . . . . . . . . . . 21
Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 22
Contributors . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 24
1. Introduction π
okay so [RFC4655] lays out the PCE-based architecture for computing MPLS and GMPLS Traffic Engineering Label Switched Paths (TE LSPs) π¦. To do that constrained computation, a PCE stores the network topology (TE links and nodes) and the resource info (TE attributes) in its TE Database (TED) π§. [RFC5440] describes the Path Computation Element Protocol (PCEP), which is how a Path Computation Client (PCC) and a PCE talk to each other, or how two PCEs talk, to make TE LSPs happen π«Ά.
As per [RFC4655], a PCE can be stateful or stateless π . A stateful PCE keeps two sets of info for path computation β¨. The first is the Traffic Engineering Database (TED), with the topology and resource state of the network π. A stateful PCE can get this info the same way a stateless PCE does (see [RFC4655]) π. The second is the LSP State Database (LSP-DB), where the PCE stores attributes of all active LSPs in the network π₯. Those attributes include their paths through the network, bandwidth/resource usage, switching types, and LSP constraints π. This state lets the PCE compute constrained paths while looking at individual LSPs and how they depend on each other π. But it needs reliable state synchronization between the PCE and the network, between the PCE and the PCCs, and between cooperating PCEs π. That can mean a lot of control-plane overhead and a big pile of state data to maintain, as explained in [RFC4655] π.
This doc shows how a stateful PCE can solve different problems for MPLS-TE and GMPLS networks, and what benefits it brings to those deployments π. Stateless PCEs might also solve some of these use cases, and those alternatives get mentioned where it makes sense, just for completeness πΈ.
2. Terminology β¨
This doc uses the following terms defined in [RFC5440]: PCC, PCE, and PCEP peer π¦.
This doc defines these terms too π§:
- Stateful PCE: a PCE that can access not only the network state, but also the set of active paths and their reserved resources for its computations π. It might also keep info about LSPs under construction, to cut down on churn and resource contention π . That extra state lets the PCE compute constrained paths while considering individual LSPs and how they interact π₯. This needs reliable state synchronization between the PCE and the network, the PCE and the PCC, and between cooperating PCEs π«Ά.
- Passive Stateful PCE: a PCE that uses LSP state info it learned from PCCs to optimize path computations π. It doesn't actively update LSP state π. A PCC keeps synchronization with the PCE π.
- Active Stateful PCE: a PCE that may issue recommendations to the network π. For example, an Active Stateful PCE may use the Delegation mechanism to update LSP parameters in those PCCs that delegate control over their LSPs to the PCE β¨.
- Delegation: an operation that grants a PCE temporary rights to modify a subset of LSP parameters on one or more LSPs of a PCC π. LSPs get delegated from a PCC to a PCE, and they're called "delegated" LSPs π¦. The PCC that owns the PCE state for the LSP has the right to delegate it π . An LSP is owned by a single PCC at any given point in time π§. For intra-domain LSPs, this PCC should be the LSP head end π.
- LSP State Database: info about all LSPs and their attributes π.
- PCE Initiation: assuming LSP delegation is granted by default, a PCE can issue recommendations to the network πΈ.
- Minimum Cut Set: the minimum set of links for a specific source-destination pair that, when removed from the network, leaves a specific source completely isolated from a specific destination π. The summed capacity of these links equals the maximum capacity from the source to the destination, by the max-flow min-cut theorem π₯.
3. Application Scenarios π
In the sections below, several use cases get described, showing scenarios that benefit from deploying a stateful PCE π .
3.1. Optimization of LSP Placement β¨
The use cases below need visibility into global LSP states in PCE path computations π. They also need PCE control over the sequence and timing of changes to LSP path characteristics, within and across PCEP sessions π«Ά. The reference topologies for the use cases later in this section are shown in Figures 1 and 2 π¦.
Some of the use cases below focus on MPLS-TE deployments but may also apply to GMPLS π. Unless otherwise cited, the use cases assume that all LSPs listed exist at the same LSP priority π.
The main benefit in these cases comes from moving away from an asynchronous PCC-driven mode of operation, toward a model that allows central control over LSP computations and maintenance π§. It focuses specifically on the active stateful PCE model of operation π₯.
+-----+
| A |
+-----+
\
+-----+ +-----+
| C |----------------------| E |
+-----+ +-----+
/ \ +-----+ /
+-----+ +-----| D |-----+
| B | +-----+
+-----+
Figure 1: Reference Topology 1
+-----+ +-----+ +-----+
| A | | B | | C |
+--+--+ +--+--+ +--+--+
| | |
| | |
+--+--+ +--+--+ +--+--+
| E +--------+ F +--------+ G |
+-----+ +-----+ +-----+
Figure 2: Reference Topology 2
3.1.1. Throughput Maximization and Bin Packing β¨
okay so bestie, because LSP attribute changes in [RFC5440] are driven by Path Computation Request (PCReq) messages under control of a PCC's local timers, the order that resource reservations show up in the network gets randomized π². Add a stateless PCE that has zero global LSP state visibility and you can end up with suboptimal throughput in a given topology. we'll see that in the example below π
Reference Topology 2 in Figure 2 and Tables 1 and 2 show an example where throughput is at 50% of optimal because the PCEs can't see the whole picture and the PCCs aren't synchronized π. In this scenario, a decision has to be made about whether to route any portion of the E-G demand, since any demand routed for this source and destination will decrease system throughput.
+------+--------+----------+
| Link | Metric | Capacity |
+------+--------+----------+
| A-E | 1 | 10 |
| B-F | 1 | 10 |
| C-G | 1 | 10 |
| E-F | 1 | 10 |
| F-G | 1 | 10 |
+------+--------+----------+
Table 1: Link Parameters for Throughput Use Case
+------+-----+-----+-----+--------+----------+-------+
| Time | LSP | Src | Dst | Demand | Routable | Path |
+------+-----+-----+-----+--------+----------+-------+
| 1 | 1 | E | G | 10 | Yes | E-F-G |
| 2 | 2 | A | B | 10 | No | --- |
| 3 | 1 | F | C | 10 | No | --- |
+------+-----+-----+-----+--------+----------+-------+
Table 2: Throughput Use Case Demand Time Series
In a lot of cases, throughput maximization turns into a bin-packing problem π¦. Bin packing is NP-hard, but a bunch of common heuristics that run in polynomial time can still give big throughput wins over random reservation event distribution π. That's especially true when you're going over links that are members of the minimum cut set for a large subset of source destination pairs.
Tables 3 and 4 show a simple use case using Reference Topology 1 in Figure 1, where LSP state visibility and control of reservation order across PCCs would lead to a huge boost in total throughput π.
+------+--------+----------+
| Link | Metric | Capacity |
+------+--------+----------+
| A-C | 1 | 10 |
| B-C | 1 | 10 |
| C-E | 10 | 5 |
| C-D | 1 | 10 |
| D-E | 1 | 10 |
+------+--------+----------+
Table 3: Link Parameters for Bin-Packing Use Case
+------+-----+-----+-----+--------+----------+---------+
| Time | LSP | Src | Dst | Demand | Routable | Path |
+------+-----+-----+-----+--------+----------+---------+
| 1 | 1 | A | E | 5 | Yes | A-C-D-E |
| 2 | 2 | B | E | 10 | No | --- |
+------+-----+-----+-----+--------+----------+---------+
Table 4: Bin-Packing Use Case Demand Time Series
3.1.2. Deadlock π
this section is about cross-LSP impact when things are running in degraded mode π¬. Most existing RSVP-TE implementations won't tear down established LSPs when the bandwidth increase procedure in [RFC3209] fails. [RFC3209] basically implies this is correct, and operators often like it, because either a) the destination prefixes can't be reached any way other than MPLS, or b) tearing down would cause significant packet loss as demand gets shifted to other LSPs in the overlay mesh.
also, there are barely any implementations offering dynamic ingress admission control (policing the traffic volume mapped onto an LSP) at the Label Edge Router (LER) π ββοΈ. Per-LSP ingress admission control isn't necessarily desirable operationally, because a) you have to over-provision tunnels a lot to avoid nasty effects from stacked transport and flow control systems (for example, for tunnels that get dynamically resized based on current traffic), and b) there's currently no efficient, commonly available northbound interface for dynamically configuring per-LSP ingress admission control.
Lack of ingress admission control combined with the behavior in [RFC3209] can leave LSPs operating out of profile for long stretches π. Those out-of-profile LSPs will probably be running in a degraded state and experiencing traffic loss. Worse, those LSPs end up sharing common network interfaces with other LSPs that are operating within their bandwidth reservations, so they'll mess with the in-profile LSPs, even when there's unused capacity elsewhere in the network π₯². And this behavior causes information loss in the TED about the actual available bandwidth on the links used by the out-of-profile LSPs, since the reservations on those links no longer reflect the capacity actually used π.
Reference Topology 1 in Figure 1 and Tables 5 and 6 show a use case that demonstrates this π¬. Two LSPs, LSP 1 and LSP 2, are signaled with demand 2 and routed along paths A-C-D-E and B-C-D-E, respectively. Later on, the demand of LSP 1 goes up to 20. At that demand, the LSP can't be resignaled. However, the existing LSP won't be torn down. Without ingress policing, traffic on LSP 1 will degrade traffic on LSP 2 (because of oversubscription on the links C-D and D-E), plus you get information loss in the TED about the real network state π« .
The problem could be easily improved with global visibility of the LSP state, coupled with PCC-external demand measurements and placement of the two LSPs on disjoint links π§ . Note that even though the demand of 20 for LSP 1 could never be satisfied in this topology, isolation from the ill effects of that (unsatisfiable) increased demand could still be achieved β¨.
+------+--------+----------+
| Link | Metric | Capacity |
+------+--------+----------+
| A-C | 1 | 10 |
| B-C | 1 | 10 |
| C-E | 10 | 5 |
| C-D | 1 | 10 |
| D-E | 1 | 10 |
+------+--------+----------+
Table 5: Link Parameters for the 'Degraded Operation' Example
+------+-----+-----+-----+--------+----------+---------+
| Time | LSP | Src | Dst | Demand | Routable | Path |
+------+-----+-----+-----+--------+----------+---------+
| 1 | 1 | A | E | 2 | Yes | A-C-D-E |
| 2 | 2 | B | E | 2 | Yes | B-C-D-E |
| 3 | 1 | A | E | 20 | No | --- |
+------+-----+-----+-----+--------+----------+---------+
Table 6: 'Degraded Operation' Demand Time Series
3.1.3. Minimum Perturbation π
because of both the lack of visibility into global LSP state and the lack of control over event ordering across PCE sessions, a stateless PCE can accidentally introduce unnecessary perturbations into the network π€. Tables 7 and 8 show an example of an unnecessary network perturbation using Reference Topology 1 in Figure 1. Here, an unimportant LSP (high LSP priority value) called LSP1 gets set up along the shortest path first. At time 2, which is assumed to be pretty close to time 1, a second, more important LSP (lower LSP-priority value) called LSP2 gets established, preempting LSP1 and potentially causing traffic loss π. LSP1 then gets reestablished on the longer A-C-E path.
+------+--------+----------+
| Link | Metric | Capacity |
+------+--------+----------+
| A-C | 1 | 10 |
| B-C | 1 | 10 |
| C-E | 10 | 10 |
| C-D | 1 | 10 |
| D-E | 1 | 10 |
+------+--------+----------+
Table 7: Link Parameters for the 'Minimum-Perturbation' Example
+------+-----+-----+-----+--------+----------+----------+---------+
| Time | LSP | Src | Dst | Demand | LSP Prio | Routable | Path |
+------+-----+-----+-----+--------+----------+----------+---------+
| 1 | 1 | A | E | 7 | 7 | Yes | A-C-D-E |
| 2 | 2 | B | E | 7 | 0 | Yes | B-C-D-E |
| 3 | 1 | A | E | 7 | 7 | Yes | A-C-E |
+------+-----+-----+-----+--------+----------+----------+---------+
Table 8: 'Minimum-Perturbation' LSP and Demand Time Series
a stateful PCE can help here by computing both routes at the same time π§©. The advantages of using a stateful PCE over exploiting a stateless PCE via Global Concurrent Optimization (GCO) are threefold π . First, it can handle concurrent path computation from different PCCs. Second, it cuts down control-plane overhead, since the stateful PCE already has the route information of the affected LSPs. Thirdly, the stateful PCE can use the LSP-DB to further optimize the placement of LSPs π. This makes sure the more important LSP gets placed along the shortest path, so you avoid the setup and then subsequent preemption of the lower priority LSP. Similarly, when a new higher priority LSP needs to preempt existing lower priority LSP(s), a stateful PCE can work out the minimum number of lower priority LSPs to reroute using the Make-Before-Break (MBB) mechanism, without disrupting any service, and then set up the higher priority LSP π¦.
3.1.4. Predictability β¨
okay so when reservation events get randomized because nobody controls the order they happen in across PCE sessions, LSP routing becomes super unpredictable π. An offline system that uses a consistent optimization method will give results you can predict, either within the boundary of forecast error (if reservations are over-provisioned by reasonable margins) or within the variability of the signal and the forecast error (if you apply some hysteresis to cut down on churn) π . Predictable results are seriously valuable π₯ because they let you simulate the network and test it reliably under all kinds of scenarios, especially failure modes and planned maintenance, where you want predictable path characteristics while everything is competing for network resources π«Ά.
Reference Topology 1 and Tables 9, 10, and 11 show how event ordering affects predictability of LSP routing π.
+------+--------+----------+
| Link | Metric | Capacity |
+------+--------+----------+
| A-C | 1 | 10 |
| B-C | 1 | 10 |
| C-E | 1 | 10 |
| C-D | 1 | 10 |
| D-E | 1 | 10 |
+------+--------+----------+
Table 9: Link Parameters for the 'Predictability' Example
+------+-----+-----+-----+--------+----------+---------+
| Time | LSP | Src | Dst | Demand | Routable | Path |
+------+-----+-----+-----+--------+----------+---------+
| 1 | 1 | A | E | 7 | Yes | A-C-E |
| 2 | 2 | B | E | 7 | Yes | B-C-D-E |
+------+-----+-----+-----+--------+----------+---------+
Table 10: 'Predictability' LSP and Demand Time Series 1
+------+-----+-----+-----+--------+----------+---------+
| Time | LSP | Src | Dst | Demand | Routable | Path |
+------+-----+-----+-----+--------+----------+---------+
| 1 | 2 | B | E | 7 | Yes | B-C-E |
| 2 | 1 | A | E | 7 | Yes | A-C-D-E |
+------+-----+-----+-----+--------+----------+---------+
Table 11: 'Predictability' LSP and Demand Time Series 2
As the example shows, both LSPs get routed in both cases, but they end up on really different paths π. That's a real problem if you're trying to simulate the network reliably. An active stateful PCE can fix this by controlling LSP ordering π. Based on triggers like a failure or an optimization trigger, the PCE can order the computations and path setup in a deterministic way β¨.
3.2. Auto-Bandwidth Adjustment
The bandwidth needs of LSPs often change over time, so they need resizing π. In most implementations out there today, the head-end node handles this by monitoring the actual bandwidth usage and triggering a recomputation and resignaling once a threshold is reached. This is called "auto-bandwidth adjustment" π. The head-end node either recomputes the path locally, or it asks a PCE for a recomputation by sending a PCReq message. In that second case, the PCE computes a new path and sends back its new route suggestion. Once the PCC gets the reply, it resignals the LSP in Shared-Explicit (SE) mode along the newly computed path π¦. With a stateless PCE, the head-end node has to pass along the currently used bandwidth and the route information in path computation request messages π¨. Here the head-end node is the one driving the LSP resizing based on local information. The difference between a stateless and a passive stateful PCE comes down to how well the LSP placement gets optimized, which we already covered in the previous section π§.
Now a more interesting smart bandwidth adjustment case is when an external entity makes the LSP resizing decision. That entity has access to extra info like historical trending data, application-specific info about expected demands, policy information, and knowledge of the actual desired flow volumes π. In that case, an active stateful PCE has the edge, both in computation (since it knows about all the LSPs in the domain) and in its ability to trigger bandwidth modification of the LSP π .
3.3. Bandwidth Scheduling
Bandwidth scheduling lets network operators reserve resources in advance based on agreements with their customers π . It also lets them transmit data with a specified starting time and duration, like a scheduled bulk data replication between data centers π«§.
Traditionally, this could be supported by Network Management System (NMS) operations, using path pre-establishment and activation at the agreed starting time. But that isn't very efficient π€, because the established paths can't be used by other services even when nobody is actually using them. It can also be done with GMPLS protocol extensions that carry the related request information (for example, the starting time and duration) across the network. The catch is that this inevitably makes the signaling and routing process more complicated π.
A passive stateful PCE can support this application more efficiently π, since it takes some of the processing burden off the network elements. This requires the PCE to maintain the scheduled LSPs and their associated resource usage, and it requires head-ends to be able to trigger signaling for LSP setup and deletion at the right time β°. This approach needs coarse time synchronization between PCEs and PCCs. With PCE initiation capability, a PCE can trigger the setup and deletion of scheduled requests in a centralized way, without changing how head-ends already behave, by telling the PCCs to set up or tear down the paths π¦.
3.4. Recovery
The recovery use cases in the following sections show how a stateful PCE can simplify computing recovery path(s) π. Two characteristics of a stateful PCE do the heavy lifting here: 1) it uses information stored in the LSP-DB to determine shared protection resources, and 2) it performs computations with knowledge of all LSPs in a domain π§ .
3.4.1. Protection
If a PCC can say in a request whether the computation is for a working path or for protection, and it can report the resource as a working or protection path, then the following text applies π‘οΈ. A PCC can send multiple requests to the PCE asking for two LSPs, then use them as working and backup paths separately. Either way, the resources tied to backup paths can be shared by different LSPs to boost overall network efficiency. Examples are m:n protection or pre-configured shared mesh recovery techniques, as specified in [RFC4427] πΈ. If resource sharing is supported for LSP protection, the information about existing LSPs is required so you don't allocate shared protection resources to two LSPs that might fail together, which would cause protection contention issues π¬. A stateless PCE can handle this use case if the PCC passes this information as a constraint in the path computation request. A passive stateful PCE can handle it more easily by using the information stored in its LSP-DB. And an active stateful PCE can help with (re)optimizing protection resource sharing, as well as with LSP maintenance operations that have less impact on protection resources π.
+----+
|PCE |
+----+
+------+ +------+ +------+
| A +----------+ B +----------+ C |
+--+---+ +---+--+ +---+--+
| | |
| +---------+ |
| | |
| +--+---+ +------+ |
+-----+ E +----------+ D +-----+
+------+ +------+
Figure 3: Reference Topology 3
Take the network in Figure 3 as an example πΊοΈ. Say there's an LSP1 with working path LSP1_working following A->E, and backup path LSP1_backup following A->B->E. Then a request comes in asking for a working and backup path pair to be computed for LSP2 from B to E. If the PCE decides LSP2_working follows B->A->E, then LSP2_backup shouldn't share the same protection resource with LSP1, because LSP2 shares part of its resource (specifically A->E) with LSP1. In other words, these two LSPs are in the same shared risk group π¨. There's no such constraint if B->C->D->E gets chosen for LSP2_working β¨.
If a stateless PCE is used, the head node B needs to know about the existence of LSPs that share the route of LSP2_working, and about the details of their protection resources. B must pass this information to the PCE as a constraint so it can request a path with diversity π. Another option is that a stateless PCE may be able to compute paths diversified by SRLG (Shared Risk Link Group), but only if the TED is extended to include the SRLG information protected by a given backup resource. The downside is that this comes at the expense of high complexity in routing π΅βπ«. A stateful PCE, on the other hand, can get the LSP information by itself, given the LSP identifier(s), and then find SRLG-diversified protection paths for both LSPs π. It does this by comparing LSP resource usage using the LSP-DB that the stateful PCE can access π¦.
3.4.2. Restoration β¨
okay so bestie, picture a fiber cut πβοΈ. Like, one snip and suddenly a bunch of LSPs go down at the same time. The source nodes of those affected LSPs get told about the failure by whichever nodes spotted it first, and then they all rush off to ask a PCE for new routes πββοΈπ¨. To make it smart, the source node can send a PCReq message that has the Exclude Route Object (XRO) with the Fail (F) bit set, plus the Record Route Object (RRO) showing the current route info, as specified in [RFC5521]. The XRO with F set is basically the move that lets the LSP reuse the resources it's already holding π§ π.
okay now the tea β. If you've got a stateless PCE, it's gonna answer each rerouting request separately if they show up at different times. Lowkey messy π, because that can end up being suboptimal resource usage. Even worse π, it might block some of the rerouting requests that arrive later, just because it ran out of resources for them. Not it. π«
If you've got a passive stateful PCE instead, the whole thing gets so much simpler π₯Ήβ¨. The PCCs reporting the failures can just send LSP identifiers instead of all the detailed info, and the PCE goes "oh I got this" and looks up the relevant LSP info in the LSP-DB ποΈ. It can even recompute the affected LSPs concurrently and reuse part of the existing LSP's resources once it hears about the failed link identifier from the first request π₯. This works because the passive stateful PCE can check which other LSPs are affected by the failed link and what their routes look like, just by checking its LSP-DB π. The result is better performance, like better resource usage, and a much lower chance of blocking new rerouting requests that pop up because of that same link failure π .
And if the goal is to avoid resource contention during a big burst of LSP rerouting requests, a stateful PCE can hold onto the resource usage info for under-construction LSPs for a given amount of time and exclude that from being used for a forthcoming LSP's request π¦. This way, resources don't get double-booked, so resource contention and computation crankbacks get way less likely πΈπ«Ά.
3.4.3. SRLG Diversity π
okay so an alternative way to get efficient resilience is to keep SRLG disjointness between LSPs π, no matter whether those LSPs share the same source and destination nodes or not. You can get this at provisioning time if all the routes are requested together and computed in one synchronized go with the SRLG disjointness constraint π§©. But if the LSPs need to get provisioned at different times, the PCC can tell the path computation which set of SRLGs to avoid using the Exclude Route Object [RFC5521] π ββοΈ. The catch is that for this to actually work, the entity asking the PCE for routes has to keep up-to-date SRLG info for all the LSPs it needs to stay disjoint from π. A stateless PCE can still compute an SRLG-disjoint path by checking the TED and cutting out any links that share the SRLG values listed in the PCReq message the PCC sent βοΈ.
A passive stateful PCE keeps the updated SRLG info for established LSPs in one centralized spot π§ β¨. So the PCC can say "keep me disjoint from these already-established LSPs" by only giving the LSP identifiers πͺͺ. Same deal with a passive stateful PCE for other constraints too, like link, node, or path segment disjointness π.
3.5. Maintenance of Virtual Network Topology (VNT) π
okay so in Multi-Layer Networks (MLN), a Virtual Network Topology (VNT) [RFC5212] is made of one or more TE LSPs in the lower layer, and those give TE links to the upper layer πͺ. [RFC5623] proposes a PCE-based architecture to support path computation in MLN networks so you can get inter-layer TE π¦.
Setting up or tearing down a TE link in the VNT has to take into account the state of existing LSPs and/or new LSP requests in the higher layer π« . So if a stateless PCE can't find a route for a request based on the upper-layer topology info, it doesn't have enough info to decide whether to set up or remove a TE link π¬. That can lead to non-optimal resource usage, and that's not the vibe π ββοΈ.
A passive stateful PCE, on the other hand, can make a better call on when and how to modify the VNT π. It can accommodate new LSP requests or reoptimize resource usage across layers, irrespective of the PCE models described in [RFC5623] π . And since an active capability is available, the stateful PCE can even issue VNT modification suggestions to accommodate path setup requests or reoptimize resource usage across layers ππ.
3.6. LSP Reoptimization π
okay so sometimes it's really worth reoptimizing one or more LSPs dynamically to use network resources efficiently π. With a stateless PCE, doing this through online planning means the PCC has to send a request to the PCE along with detailed path and bandwidth info for all the LSPs that need to be optimized at the same time π. Which means the PCC has to figure out when and which LSPs should be optimized by itself π .
With a passive stateful PCE, the LSP state info in the LSP database makes the dynamic optimization so much easier π₯Ή. The PCC doesn't have to send detailed LSP state info at all β¨. And an active stateful PCE can even automate the whole thing by triggering the request itself π€π.
Because a stateful PCE keeps track of all the LSPs that are being set up, and it might be able to control the timing and sequence of LSP setup and deletion, optimization can happen more intelligently and effectively π§ π. A stateful PCE can also decide which LSP to reoptimize based on network events π. For example, when an LSP gets torn down, its resources are freed up π«§, and that can trigger the stateful PCE to automatically figure out which LSP should be reoptimized so the newly freed resources can go to it π¦.
A special case of LSP reoptimization is GCO [RFC5557] π. Global control of the LSP operation sequence in [RFC5557] depends on what's basically a stateful (or semi-stateful) NMS π . That NMS can either live somewhere not local to the network nodes, in which case another northbound interface is needed for LSP attribute changes, or it can be local/collocated, in which case there are big efficiency issues with resource usage π©. A stateful PCE adds a few features that:
- Roll the NMS visibility into the PCE and remove the requirement for an additional northbound interface. π«Ά
- Allow the PCE to determine when reoptimization is needed, and with which level (GCO or a more incremental optimization). π°οΈ
- Allow the PCE to determine which LSPs should be reoptimized. π―
- Allow a PCE to control the sequence of events across multiple PCCs, allowing for bulk (and truly global) optimization, LSP shuffling, etc. πβ¨
3.7. Resource Defragmentation π§©
okay so if LSPs keep getting allocated and released over time, the resource gets fragmented π₯². In networks with link bundles, the overall available resource on a (bundle) link might be enough for a new LSP request, but if that available resource isn't contiguous, the request gets rejected π. Stateful PCEs can do the defragmentation because they need global visibility of LSPs in the network to accurately assess resources on the LSPs and defragment while keeping network disruption minimal π«§. A stateless PCE can't handle this use case because it doesn't have the detailed info about existing LSPs in the network π ββοΈ.
Another case that's especially interesting is optical spectrum defragmentation in flexible-grid networks π. In flexible-grid networks [RFC7698], LSPs with different optical spectrum sizes (like 12.5GHz, 25GHz, etc.) can coexist so they can serve services with different bandwidth requests πΈ. So even if the overall spectrum size can meet a service request, it might not be usable if the available spectrum is fragmented into smaller, non-contiguous pieces π. With the help of existing LSP state info, a stateful PCE can group the resource together so it becomes usable πͺ. A stateful PCE can also proactively choose routes for upcoming path requests to reduce the chance of spectrum fragmentation π§ π.
3.8. Point-to-Multipoint Applications π¦
PCE has been identified as an appropriate technology for determining the paths of Point-to-Multipoint (P2MP) TE LSPs [RFC5671] π. The application scenarios and use cases described in Sections 3.1, 3.4, and 3.6 also apply to P2MP TE LSPs π .
On top of that, the stateful nature of a PCE simplifies the info conveyed in PCEP messages, since you can refer to LSPs via an identifier πͺͺ. For P2MP this is an extra big win, because the size of the PCEP message is much larger otherwise π±. With stateless PCEs, modifying a P2MP tree means encoding all the leaves along with the paths in a PCReq message π¦. But with a stateful PCE that has P2MP capability, the PCEP message can just convey the modifications, since the other info can be retrieved from the identifier via the LSP-DB π«Άβ¨.
3.9. Impairment-Aware Routing and Wavelength Assignment (IA-RWA) π
Okay so in Wavelength Switched Optical Networks (WSONs) [RFC6163], a wavelength-switched LSP hops across one or more fiber links β¨. The client signals riding on those wavelength LSPs can have the same bit rate or totally different ones π , so one fiber link can carry a bunch of wavelength LSPs with equal or mixed bit-rate signals. Like, a fiber link might multiplex wavelengths with only 10 Gbit/s signals, or mixed 10 Gbit/s and 40 Gbit/s signals, or mixed 40 Gbit/s and 100 Gbit/s signals. Mixing is giving variety π
IA-RWA in WSONs is the process (i.e., lightpath computation) that takes the optical layer and transmission imperfections into account as extra physical layer constraints π₯. To be more specific, the linear and non-linear effects of the optical network elements should be built into the route and wavelength assignment procedure. For example, a physical imperfection can cause two adjacent lightpaths to interfere with each other π. So a guard band should be reserved between them to ease those effects. How wide that guard band needs to be depends on the characteristics of the two wavelengths, like their modulation formats and bit rates. Two adjacent wavelengths with different characteristics (e.g., different bit rates) may need a wider guard band, while those with the same characteristics may need a narrower one. For example, 50 GHz spacing may be acceptable for two adjacent wavelengths with 40 G signals. But for two adjacent wavelengths with different bit rates (e.g., 10 G and 40 G), a larger spacing such as 300 GHz may be needed. So the characteristics (states) of the existing wavelength LSPs should be considered for a new RWA request in WSON π
In summary, when stateful PCEs do the IA-RWA procedure, they need to know the characteristics of the existing wavelength LSPs π§. Nodes in WSON networks can get the impairment information for existing and to-be-established LSPs through external configuration, or through other means like monitoring or estimation based on a vendor-specific impair model. The catch is that WSON-related routing protocols, i.e., [RFC7688] and [RFC7580], only advertise limited information (i.e., availability) about the existing wavelengths, without defining the supported client bit rates π. Extending routing protocols to disseminate the new information relevant for the IA-RWA process would incur a substantial amount of control-plane overhead. So in this scenario, stateful PCE(s) would be a more appropriate mechanism to solve this problem. Stateful PCE(s) can use the impairment information of LSPs stored in the LSP-DB to give accurate RWA calculations π
4. Deployment Considerations π
This section talks about general issues with stateful PCE deployments and points out the areas where extra protocol extensions and procedures are needed to deal with them π«Ά. Definitions of protocol mechanisms are beyond the scope of this document, so don't come for them here π
4.1. Multi-PCE Deployments
Stateless and stateful PCEs can coexist in the same network and be in charge of different types of path computation π¦. To tell the two types of PCEs apart, either discovery or configuration may be used.
Multiple stateful PCEs can coexist in the same network too πΈ. They might provide redundancy for load sharing, resilience, or partitioning of computation features. No matter why there are multiple PCEs, an LSP is only delegated to one of the PCEs at any given point in time π . Still, an LSP can be redelegated between PCEs, for example, when a PCE fails π. [RFC7399] discusses various approaches for synchronizing state among the PCEs when multiple PCEs are used for load sharing or backup and compute LSPs for the same network π
4.2. LSP State Synchronization
The LSP-DB gets filled in with information received from the PCC π. The accuracy of the computations depends on how accurate the databases are, and the updates have to reach the PCE from the network, so the PCE view lags behind the true state of the network β³. Thus, using a stateful PCE reduces but cannot eliminate the possibility of crankbacks, and it can't guarantee optimal computations all the time π. [RFC7399] discusses these limitations and potential ways to ease them.
When there are multiple PCEs with different capabilities in the same network, such as a passive stateful PCE and an active stateful PCE, it's useful to refer to an LSP by a unique identifier π§©. That's better than spelling out detailed information (e.g., route, bandwidth) about it, especially when these PCEs cooperate on path computation, such as for load sharing β¨. This is true whether the LSP is delegated or not.
4.3. PCE Survivability
For a stateful PCE, a big deal is getting the LSP state information resynchronized after a restart π. LSP state synchronization procedures can be applied equally to a network node or to another PCE, so there are multiple ways to reacquire the LSP database on a restart π. Synchronization can also be skipped. If a PCE implementation has a way to retrieve its database differently (for example, from a backup copy stored locally), the state can be restored without further overhead in the network π«Ά. A hybrid approach is also possible, where the bulk of the state is recovered locally and a small amount is reacquired from the network π. Just note that recovering the state locally would still need some degree of resynchronization to make sure the recovered state is actually up-to-date π. Depending on the resynchronization mechanism used, there may be extra load on the PCE, and there may be a delay in reaching the synchronized state, which may negatively affect survivability π¬. Different resynchronization methods suit different deployments and objectives.
5. Security Considerations π
This document describes general considerations for a stateful PCE deployment and looks at its applicability and benefits, as well as its challenges and limitations, through a number of use cases. No new protocol extensions to PCEP are defined in this document π
The PCEP extensions that support the stateful PCE and the delegation of path control ability can make more information and control available to a hypothetical adversary, and they open a number of additional attack surfaces that must be protected π¨ This includes, but is not limited to, the authentication and encryption of PCEP sessions, snooping of the state of the LSPs active in the network, etc. Seriously, this is a big deal π So documents that define PCEP protocol extensions need to consider the issues and risks associated with a stateful PCE π₯
6. References π
6.1. Normative References
[RFC4655] Farrel, A., Vasseur, J., and J. Ash, "A Path Computation
Element (PCE)-Based Architecture", RFC 4655,
DOI 10.17487/RFC4655, August 2006,
<http://www.rfc-editor.org/info/rfc4655>.
[RFC5440] Vasseur, JP., Ed. and JL. Le Roux, Ed., "Path Computation
Element (PCE) Communication Protocol (PCEP)", RFC 5440,
DOI 10.17487/RFC5440, March 2009,
<http://www.rfc-editor.org/info/rfc5440>.
[RFC7399] Farrel, A. and D. King, "Unanswered Questions in the Path
Computation Element Architecture", RFC 7399,
DOI 10.17487/RFC7399, October 2014,
<http://www.rfc-editor.org/info/rfc7399>.
6.2. Informative References
[RFC3209] Awduche, D., Berger, L., Gan, D., Li, T., Srinivasan, V.,
and G. Swallow, "RSVP-TE: Extensions to RSVP for LSP
Tunnels", RFC 3209, DOI 10.17487/RFC3209, December 2001,
<http://www.rfc-editor.org/info/rfc3209>.
[RFC4427] Mannie, E., Ed. and D. Papadimitriou, Ed., "Recovery
(Protection and Restoration) Terminology for Generalized
Multi-Protocol Label Switching (GMPLS)", RFC 4427,
DOI 10.17487/RFC4427, March 2006,
<http://www.rfc-editor.org/info/rfc4427>.
[RFC5212] Shiomoto, K., Papadimitriou, D., Le Roux, JL., Vigoureux,
M., and D. Brungard, "Requirements for GMPLS-Based Multi-
Region and Multi-Layer Networks (MRN/MLN)", RFC 5212,
DOI 10.17487/RFC5212, July 2008,
<http://www.rfc-editor.org/info/rfc5212>.
[RFC5521] Oki, E., Takeda, T., and A. Farrel, "Extensions to the
Path Computation Element Communication Protocol (PCEP) for
Route Exclusions", RFC 5521, DOI 10.17487/RFC5521, April
2009, <http://www.rfc-editor.org/info/rfc5521>.
[RFC5557] Lee, Y., Le Roux, JL., King, D., and E. Oki, "Path
Computation Element Communication Protocol (PCEP)
Requirements and Protocol Extensions in Support of Global
Concurrent Optimization", RFC 5557, DOI 10.17487/RFC5557,
July 2009, <http://www.rfc-editor.org/info/rfc5557>.
[RFC5623] Oki, E., Takeda, T., Le Roux, JL., and A. Farrel,
"Framework for PCE-Based Inter-Layer MPLS and GMPLS
Traffic Engineering", RFC 5623, DOI 10.17487/RFC5623,
September 2009, <http://www.rfc-editor.org/info/rfc5623>.
[RFC5671] Yasukawa, S. and A. Farrel, Ed., "Applicability of the
Path Computation Element (PCE) to Point-to-Multipoint
(P2MP) MPLS and GMPLS Traffic Engineering (TE)", RFC 5671,
DOI 10.17487/RFC5671, October 2009,
<http://www.rfc-editor.org/info/rfc5671>.
[RFC6163] Lee, Y., Ed., Bernstein, G., Ed., and W. Imajuku,
"Framework for GMPLS and Path Computation Element (PCE)
Control of Wavelength Switched Optical Networks (WSONs)",
RFC 6163, DOI 10.17487/RFC6163, April 2011,
<http://www.rfc-editor.org/info/rfc6163>.
[RFC7580] Zhang, F., Lee, Y., Han, J., Bernstein, G., and Y. Xu,
"OSPF-TE Extensions for General Network Element
Constraints", RFC 7580, DOI 10.17487/RFC7580, June 2015,
<http://www.rfc-editor.org/info/rfc7580>.
[RFC7688] Lee, Y., Ed. and G. Bernstein, Ed., "GMPLS OSPF
Enhancement for Signal and Network Element Compatibility
for Wavelength Switched Optical Networks", RFC 7688,
DOI 10.17487/RFC7688, November 2015,
<http://www.rfc-editor.org/info/rfc7688>.
[RFC7698] Gonzalez de Dios, O., Ed., Casellas, R., Ed., Zhang, F.,
Fu, X., Ceccarelli, D., and I. Hussain, "Framework and
Requirements for GMPLS-Based Control of Flexi-Grid Dense
Wavelength Division Multiplexing (DWDM) Networks",
RFC 7698, DOI 10.17487/RFC7698, November 2015,
<http://www.rfc-editor.org/info/rfc7698>.
Acknowledgements π«Ά
We would like to thank Cyril Margaria, Adrian Farrel, JP Vasseur, and Ravi Torvi for the useful comments and discussions π you all are the real MVPs β¨
Contributors β¨
okay bestie, these are the people who put SO much work into this doc π«Ά listed alphabetically, no cap. they all contributed significantly, so they get the spotlight π
Ramon Casellas
CTTC - Centre Tecnologic de Telecomunicacions de Catalunya
Av. Carl Friedrich Gauss n7
Castelldefels, Barcelona 08860
Spain
Email: ramon.casellas@cttc.es
Edward Crabbe
Email: edward.crabbe@gmail.com
Dhruv Dhody
Huawei Technology
Leela Palace
Bangalore, Karnataka 560008
India
Email: dhruv.dhody@huawei.com
Oscar Gonzalez de Dios
Telefonica Investigacion y Desarrollo
Emilio Vargas 6
Madrid, 28045
Spain
Phone: +34 913374013
Email: ogondio@tid.es
Young Lee
Huawei
1700 Alma Drive, Suite 100
Plano, TX 75075
United States of America
Phone: +1 972 509 5599 x2240
Fax: +1 469 229 5397
Email: leeyoung@huawei.com
Jan Medved
Cisco Systems, Inc.
170 West Tasman Dr.
San Jose, CA 95134
United States of America
Email: jmedved@cisco.com
Robert Varga
Pantheon Technologies LLC
Mlynske Nivy 56
Bratislava 821 05
Slovakia
Email: robert.varga@pantheon.sk
Fatai Zhang
Huawei Technologies
F3-5-B R&D Center, Huawei Base
Bantian, Longgang District
Shenzhen 518129
China
Phone: +86-755-28972912
Email: zhangfatai@huawei.com
Xiaobing Zi
Authors' Addresses β¨
and last but not least, the two editors who kept this whole thing together ππ
Xian Zhang (editor)
Huawei Technologies
F3-5-B R&D Center
Huawei Industrial Base
Bantian, Longgang District
Shenzhen, Guangdong 518129
China
Email: zhang.xian@huawei.com
Ina Minei (editor)
Google, Inc.
1600 Amphitheatre Parkway
Mountain View, CA 94043
United States of America
Email: inaminei@google.com
π¦ where this page comes from
- ietf: rfc8051 2017-01
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms