draft-ietf-teas-pcecc-use-cases-08.txt | draft-ietf-teas-pcecc-use-cases-09.txt | |||
---|---|---|---|---|
TEAS Working Group Z. Li | TEAS Working Group Z. Li | |||
Internet-Draft D. Dhody | Internet-Draft D. Dhody | |||
Intended status: Informational Huawei Technologies | Intended status: Informational Huawei Technologies | |||
Expires: 28 April 2022 Q. Zhao | Expires: 8 September 2022 Q. Zhao | |||
Etheric Networks | Etheric Networks | |||
K. Ke | K. Ke | |||
Tencent Holdings Ltd. | Tencent Holdings Ltd. | |||
B. Khasanov | B. Khasanov | |||
Yandex LLC | Yandex LLC | |||
L. Fang | 7 March 2022 | |||
Expedia, Inc. | ||||
C. Zhou | ||||
HPE | ||||
B. Zhang | ||||
Telus Communications | ||||
A. Rachitskiy | ||||
Mobile TeleSystems JLLC | ||||
A. Gulida | ||||
LLC "Lifetech" | ||||
25 October 2021 | ||||
The Use Cases for Path Computation Element (PCE) as a Central Controller | The Use Cases for Path Computation Element (PCE) as a Central Controller | |||
(PCECC). | (PCECC). | |||
draft-ietf-teas-pcecc-use-cases-08 | draft-ietf-teas-pcecc-use-cases-09 | |||
Abstract | Abstract | |||
The Path Computation Element (PCE) is a core component of a Software- | The Path Computation Element (PCE) is a core component of a Software- | |||
Defined Networking (SDN) system. It can compute optimal paths for | Defined Networking (SDN) system. It can compute optimal paths for | |||
traffic across a network and can also update the paths to reflect | traffic across a network and can also update the paths to reflect | |||
changes in the network or traffic demands. PCE was developed to | changes in the network or traffic demands. PCE was developed to | |||
derive paths for MPLS Label Switched Paths (LSPs), which are supplied | derive paths for MPLS Label Switched Paths (LSPs), which are supplied | |||
to the head end of the LSP using the Path Computation Element | to the head end of the LSP using the Path Computation Element | |||
Communication Protocol (PCEP). | Communication Protocol (PCEP). | |||
SDN has a broader applicability than signaled MPLS traffic-engineered | SDN has a broader applicability than signaled MPLS traffic-engineered | |||
(TE) networks, and the PCE may be used to determine paths in a range | (TE) networks, and the PCE may be used to determine paths in a range | |||
of use cases including static LSPs, segment routing (SR), Service | of use cases including static LSPs, segment routing (SR), Service | |||
Function Chaining (SFC), and most forms of a routed or switched | Function Chaining (SFC), and most forms of a routed or switched | |||
network. It is, therefore, reasonable to consider PCEP as a control | network. It is, therefore, reasonable to consider PCEP as a control | |||
protocol for use in these environments to allow the PCE to be fully | protocol for use in these environments to allow the PCE to be fully | |||
enabled as a central controller. | enabled as a central controller. | |||
This document describes general considerations for PCECC deployment | A PCE as a Central Controller (PCECC) can simplify the processing of | |||
and examines its applicability and benefits, as well as its | a distributed control plane by blending it with elements of SDN and | |||
challenges and limitations, through a number of use cases. PCEP | without necessarily completely replacing it. This document describes | |||
extensions required for stateful PCE usage are covered in separate | general considerations for PCECC deployment and examines its | |||
documents. | applicability and benefits, as well as its challenges and | |||
limitations, through a number of use cases. PCEP extensions required | ||||
for stateful PCE usage are covered in separate documents. | ||||
Requirements Language | Requirements Language | |||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
"OPTIONAL" in this document are to be interpreted as described in BCP | "OPTIONAL" in this document are to be interpreted as described in BCP | |||
14 [RFC2119] [RFC8174] when, and only when, they appear in all | 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
capitals, as shown here. | capitals, as shown here. | |||
Status of This Memo | Status of This Memo | |||
This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
skipping to change at page 2, line 34 ¶ | skipping to change at page 2, line 25 ¶ | |||
Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
Drafts is at https://datatracker.ietf.org/drafts/current/. | Drafts is at https://datatracker.ietf.org/drafts/current/. | |||
Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
This Internet-Draft will expire on 28 April 2022. | This Internet-Draft will expire on 8 September 2022. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2021 IETF Trust and the persons identified as the | Copyright (c) 2022 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents (https://trustee.ietf.org/ | Provisions Relating to IETF Documents (https://trustee.ietf.org/ | |||
license-info) in effect on the date of publication of this document. | license-info) in effect on the date of publication of this document. | |||
Please review these documents carefully, as they describe your rights | Please review these documents carefully, as they describe your rights | |||
and restrictions with respect to this document. Code Components | and restrictions with respect to this document. Code Components | |||
extracted from this document must include Simplified BSD License text | extracted from this document must include Revised BSD License text as | |||
as described in Section 4.e of the Trust Legal Provisions and are | described in Section 4.e of the Trust Legal Provisions and are | |||
provided without warranty as described in the Simplified BSD License. | provided without warranty as described in the Revised BSD License. | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4 | 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
3. Application Scenarios . . . . . . . . . . . . . . . . . . . . 4 | 3. Application Scenarios . . . . . . . . . . . . . . . . . . . . 4 | |||
3.1. Use Cases of PCECC for Label Management . . . . . . . . . 4 | 3.1. Use Cases of PCECC for Label Management . . . . . . . . . 5 | |||
3.2. Using PCECC for SR . . . . . . . . . . . . . . . . . . . 6 | 3.2. Using PCECC for SR . . . . . . . . . . . . . . . . . . . 6 | |||
3.2.1. PCECC SID Allocation . . . . . . . . . . . . . . . . 7 | 3.2.1. PCECC SID Allocation . . . . . . . . . . . . . . . . 8 | |||
3.2.2. Use Cases of PCECC for SR Best Effort (BE) Path . . . 8 | 3.2.2. Use Cases of PCECC for SR Best Effort (BE) Path . . . 9 | |||
3.2.3. Use Cases of PCECC for SR Traffic Engineering (TE) | 3.2.3. Use Cases of PCECC for SR Traffic Engineering (TE) | |||
Path . . . . . . . . . . . . . . . . . . . . . . . . 8 | Path . . . . . . . . . . . . . . . . . . . . . . . . 9 | |||
3.2.4. SR Policy . . . . . . . . . . . . . . . . . . . . . . 9 | ||||
3.3. Use Cases of PCECC for TE LSP . . . . . . . . . . . . . . 9 | 3.2.4. SR Policy . . . . . . . . . . . . . . . . . . . . . . 10 | |||
3.3.1. PCECC Load Balancing (LB) Use Case . . . . . . . . . 11 | 3.3. Use Cases of PCECC for TE LSP . . . . . . . . . . . . . . 11 | |||
3.3.2. PCECC and Inter-AS TE . . . . . . . . . . . . . . . . 13 | 3.3.1. PCECC Load Balancing (LB) Use Case . . . . . . . . . 13 | |||
3.4. Use Cases of PCECC for Multicast LSPs . . . . . . . . . . 16 | 3.3.2. PCECC and Inter-AS TE . . . . . . . . . . . . . . . . 15 | |||
3.4.1. Using PCECC for P2MP/MP2MP LSPs' Setup . . . . . . . 17 | 3.4. Use Cases of PCECC for Multicast LSPs . . . . . . . . . . 18 | |||
3.4.1. Using PCECC for P2MP/MP2MP LSPs' Setup . . . . . . . 18 | ||||
3.4.2. Use Cases of PCECC for the Resiliency of P2MP/MP2MP | 3.4.2. Use Cases of PCECC for the Resiliency of P2MP/MP2MP | |||
LSPs . . . . . . . . . . . . . . . . . . . . . . . . 18 | LSPs . . . . . . . . . . . . . . . . . . . . . . . . 20 | |||
3.5. Use Cases of PCECC for LSP in the Network Migration . . . 20 | 3.5. Using PCECC for Traffic Classification Information . . . 22 | |||
3.6. Use Cases of PCECC for L3VPN and PWE3 . . . . . . . . . . 22 | 3.6. Use Cases of PCECC for SRv6 . . . . . . . . . . . . . . . 23 | |||
3.7. Using PCECC for Traffic Classification Information . . . 23 | 3.7. Use Cases of PCECC for SFC . . . . . . . . . . . . . . . 24 | |||
3.8. Use Cases of PCECC for SRv6 . . . . . . . . . . . . . . . 23 | 3.8. Use Cases of PCECC for Native IP . . . . . . . . . . . . 25 | |||
3.9. Use Cases of PCECC for SFC . . . . . . . . . . . . . . . 25 | 3.9. Use Cases of PCECC for BIER . . . . . . . . . . . . . . . 26 | |||
3.10. Use Cases of PCECC for Native IP . . . . . . . . . . . . 26 | 4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 26 | |||
3.11. Use Cases of PCECC for Local Protection (RSVP-TE) . . . . 26 | 5. Security Considerations . . . . . . . . . . . . . . . . . . . 26 | |||
3.12. Use Cases of PCECC for BIER . . . . . . . . . . . . . . . 26 | ||||
4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 27 | ||||
5. Security Considerations . . . . . . . . . . . . . . . . . . . 27 | ||||
6. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 27 | 6. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 27 | |||
7. References . . . . . . . . . . . . . . . . . . . . . . . . . 27 | 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 27 | |||
7.1. Normative References . . . . . . . . . . . . . . . . . . 27 | 7.1. Normative References . . . . . . . . . . . . . . . . . . 27 | |||
7.2. Informative References . . . . . . . . . . . . . . . . . 28 | 7.2. Informative References . . . . . . . . . . . . . . . . . 28 | |||
Appendix A. Using reliable P2MP TE based multicast delivery for | Appendix A. Other Use Cases of PCECC . . . . . . . . . . . . . . 33 | |||
distributed computations (MapReduce-Hadoop) . . . . . . . 32 | A.1. Use Cases of PCECC for LSP in the Network Migration . . . 33 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 35 | A.2. Use Cases of PCECC for L3VPN and PWE3 . . . . . . . . . . 34 | |||
A.3. Use Cases of PCECC for Local Protection (RSVP-TE) . . . . 35 | ||||
A.4. Using reliable P2MP TE based multicast delivery for | ||||
distributed computations (MapReduce-Hadoop) . . . . . . . 36 | ||||
Appendix B. Contributor Addresses . . . . . . . . . . . . . . . 38 | ||||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 39 | ||||
1. Introduction | 1. Introduction | |||
An Architecture for Use of PCE and PCEP [RFC5440] in a Network with | The Path Computation Element (PCE) [RFC4655] was developed to offload | |||
Central Control [RFC8283] describes SDN architecture where the Path | the path computation function from routers in an MPLS traffic- | |||
Computation Element (PCE) determines paths for variety of different | engineered (TE) network. It can compute optimal paths for traffic | |||
usecases, with PCEP as a general southbound communication protocol | across a network and can also update the paths to reflect changes in | |||
with all the nodes along the path.. | the network or traffic demands. Since then, the role and function of | |||
the PCE have grown to cover a number of other uses (such as GMPLS | ||||
[RFC7025]) and to allow delegated control [RFC8231] and PCE-initiated | ||||
use of network resources [RFC8281]. | ||||
According to [RFC7399], Software-Defined Networking (SDN) refers to a | ||||
separation between the control elements and the forwarding components | ||||
so that software running in a centralized system, called a | ||||
controller, can act to program the devices in the network to behave | ||||
in specific ways. A required element in an SDN architecture is a | ||||
component that plans how the network resources will be used and how | ||||
the devices will be programmed. It is possible to view this | ||||
component as performing specific computations to place traffic flows | ||||
within the network given knowledge of the availability of network | ||||
resources, how other forwarding devices are programmed, and the way | ||||
that other flows are routed. This is the function and purpose of a | ||||
PCE, and the way that a PCE integrates into a wider network control | ||||
system (including an SDN system) is presented in [RFC7491]. | ||||
[RFC8283] introduces the architecture for the PCE as a central | ||||
controller as an extension to the architecture described in [RFC4655] | ||||
and assumes the continued use of PCEP as the protocol used between | ||||
the PCE and PCC. [RFC8283] further examines the motivations and | ||||
applicability for PCEP as a Southbound Interface (SBI) and introduces | ||||
the implications for the protocol. | ||||
[RFC9050] introduces the procedures and extensions for PCEP to | [RFC9050] introduces the procedures and extensions for PCEP to | |||
support the PCECC architecture [RFC8283]. | support the PCECC architecture [RFC8283]. | |||
This draft describes the various usecases for the PCECC architecture. | This draft describes the various other usecases for the PCECC | |||
architecture. | ||||
This is a living document to catalog the use cases for PCECC. There | ||||
is currently no intention to publish this work as an RFC. [Update: | ||||
Chairs are evaluating if the document should be published instead.] | ||||
2. Terminology | 2. Terminology | |||
The following terminology is used in this document. | The following terminology is used in this document. | |||
IGP: Interior Gateway Protocol. Either of the two routing | IGP: Interior Gateway Protocol. Either of the two routing | |||
protocols, Open Shortest Path First (OSPF) or Intermediate System to | protocols, Open Shortest Path First (OSPF) or Intermediate System to | |||
Intermediate System (IS-IS). | Intermediate System (IS-IS). | |||
PCC: Path Computation Client: any client application requesting a | PCC: Path Computation Client: any client application requesting a | |||
skipping to change at page 5, line 13 ¶ | skipping to change at page 5, line 22 ¶ | |||
ranges to the router using PCEP. | ranges to the router using PCEP. | |||
[RFC9050] describe a mode where LSPs are provisioned as explicit | [RFC9050] describe a mode where LSPs are provisioned as explicit | |||
label instructions at each hop on the end-to-end path. Each router | label instructions at each hop on the end-to-end path. Each router | |||
along the path must be told what label forwarding instructions to | along the path must be told what label forwarding instructions to | |||
program and what resources to reserve. The controller uses PCEP to | program and what resources to reserve. The controller uses PCEP to | |||
communicate with each router along the path of the end-to-end LSP. | communicate with each router along the path of the end-to-end LSP. | |||
For this to work, the PCE- based controller will take responsibility | For this to work, the PCE- based controller will take responsibility | |||
for managing some part of the MPLS label space for each of the | for managing some part of the MPLS label space for each of the | |||
routers that it controls. An extension to PCEP could be done to | routers that it controls. An extension to PCEP could be done to | |||
allow a PCC to inform the PCE of such a label space to control. | allow a PCC to inform the PCE of such a label space to control. (See | |||
[I-D.li-pce-controlled-id-space] for a possible PCEP extension to | ||||
support advertisement of the MPLS label space to the PCE to control.) | ||||
[RFC8664] specifies extensions to PCEP that allow a stateful PCE to | [RFC8664] specifies extensions to PCEP that allow a stateful PCE to | |||
compute, update or initiate SR-TE paths. | compute, update or initiate SR-TE paths. | |||
[I-D.ietf-pce-pcep-extension-pce-controller-sr] describes the | [I-D.ietf-pce-pcep-extension-pce-controller-sr] describes the | |||
mechanism for PCECC to allocate and provision the node/prefix/ | mechanism for PCECC to allocate and provision the node/prefix/ | |||
adjacency label (SID) via PCEP. To make such allocation PCE needs to | adjacency label (SID) via PCEP. To make such allocation PCE needs to | |||
be aware of the label space from Segment Routing Global Block (SRGB) | be aware of the label space from Segment Routing Global Block (SRGB) | |||
or Segment Routing Local Block (SRLB) [RFC8402] of the node that it | or Segment Routing Local Block (SRLB) [RFC8402] of the node that it | |||
controls. A mechanism for a PCC to inform the PCE of such a label | controls. A mechanism for a PCC to inform the PCE of such a label | |||
space to control is needed within PCEP. The full SRGB/SRLB of a node | space to control is needed within PCEP. The full SRGB/SRLB of a node | |||
could be learned via existing IGP or BGP-LS mechanism too. | could be learned via existing IGP or BGP-LS mechanism too. | |||
[I-D.li-pce-controlled-id-space] defines a PCEP extension to support | Further, there have been various proposals for Global Labels in MPLS, | |||
advertisement of the MPLS label space to the PCE to control. | the PCECC architecture could be used as means to learn the label | |||
space of nodes, and could also be used to determine and provision the | ||||
There have been various proposals for Global Labels, the PCECC | global label range. | |||
architecture could be used as means to learn the label space of | ||||
nodes, and could also be used to determine and provision the global | ||||
label range. | ||||
+------------------------------+ +------------------------------+ | +------------------------------+ +------------------------------+ | |||
| PCE DOMAIN 1 | | PCE DOMAIN 2 | | | PCE DOMAIN 1 | | PCE DOMAIN 2 | | |||
| +--------+ | | +--------+ | | | +--------+ | | +--------+ | | |||
| | | | | | | | | | | | | | | | | | |||
| | PCECC1 | ---------PCEP---------- | PCECC2 | | | | | PCECC1 | ---------PCEP---------- | PCECC2 | | | |||
| | | | | | | | | | | | | | | | | | |||
| | | | | | | | | | | | | | | | | | |||
| +--------+ | | +--------+ | | | +--------+ | | +--------+ | | |||
| ^ ^ | | ^ ^ | | | ^ ^ | | ^ ^ | | |||
skipping to change at page 6, line 43 ¶ | skipping to change at page 7, line 15 ¶ | |||
(and PCECC) could be one such means. | (and PCECC) could be one such means. | |||
[RFC8664] specify the SR specific PCEP extensions. PCECC may further | [RFC8664] specify the SR specific PCEP extensions. PCECC may further | |||
use PCEP protocol for SR SID (Segment Identifier) distribution to the | use PCEP protocol for SR SID (Segment Identifier) distribution to the | |||
SR nodes (PCC) with some benefits. If the PCECC allocates and | SR nodes (PCC) with some benefits. If the PCECC allocates and | |||
maintains the SID in the network for the nodes and adjacencies; and | maintains the SID in the network for the nodes and adjacencies; and | |||
further distributes them to the SR nodes directly via the PCEP | further distributes them to the SR nodes directly via the PCEP | |||
session has some advantage over the configurations on each SR node | session has some advantage over the configurations on each SR node | |||
and flooding via IGP, especially in a SDN environment. | and flooding via IGP, especially in a SDN environment. | |||
When the PCECC is used for the distribution of the node segment ID | When the PCECC is used for the distribution of the node SID and | |||
and adjacency segment ID, the node segment ID is allocated from the | adjacency SID, the node SID is allocated from the SRGB of the node. | |||
SRGB of the node. For the allocation of adjacency segment ID, the | For the allocation of adjacency SID, the allocation is from the SRLB | |||
allocation is from the SRLB of the node as described in | of the node as described in | |||
[I-D.ietf-pce-pcep-extension-pce-controller-sr]. | [I-D.ietf-pce-pcep-extension-pce-controller-sr]. | |||
[RFC8355] identifies various protection and resiliency usecases for | [RFC8355] identifies various protection and resiliency usecases for | |||
SR. Path protection lets the ingress node be in charge of the | SR. Path protection lets the ingress node be in charge of the | |||
failure recovery (used for SR-TE). Also protection can be performed | failure recovery (used for SR-TE). Also protection can be performed | |||
by the node adjacent to the failed component, commonly referred to as | by the node adjacent to the failed component, commonly referred to as | |||
local protection techniques or fast-reroute (FRR) techniques. In | local protection techniques or fast-reroute (FRR) techniques. In | |||
case of PCECC, the protection paths can be pre-computed and setup by | case of PCECC, the protection paths can be pre-computed and setup by | |||
the PCE. | the PCE. | |||
skipping to change at page 8, line 8 ¶ | skipping to change at page 8, line 49 ¶ | |||
in the domain, it enforces the ECMP-aware shortest-path forwarding of | in the domain, it enforces the ECMP-aware shortest-path forwarding of | |||
the packet towards the related node. | the packet towards the related node. | |||
For each adjacency in the network, PCECC can allocate an Adj-SID. | For each adjacency in the network, PCECC can allocate an Adj-SID. | |||
The PCECC sends PCInitiate message to update the label map of each | The PCECC sends PCInitiate message to update the label map of each | |||
Adj to the corresponding nodes in the domain. Each node (PCC) | Adj to the corresponding nodes in the domain. Each node (PCC) | |||
download the label forwarding instructions accordingly. The | download the label forwarding instructions accordingly. The | |||
forwarding behavior and the end result is similar to IGP based "Adj- | forwarding behavior and the end result is similar to IGP based "Adj- | |||
SID" in SR. | SID" in SR. | |||
The various mechanism are described in | These mechanism are described in | |||
[I-D.ietf-pce-pcep-extension-pce-controller-sr]. | [I-D.ietf-pce-pcep-extension-pce-controller-sr]. | |||
3.2.2. Use Cases of PCECC for SR Best Effort (BE) Path | 3.2.2. Use Cases of PCECC for SR Best Effort (BE) Path | |||
In this mode of the solution, the PCECC just need to allocate the | In this mode of the solution, the PCECC just need to allocate the | |||
node segment ID and adjacency ID (without calculating the explicit | node SID (without calculating the explicit path for the SR path). | |||
path for the SR path). The ingress of the forwarding path just need | The ingress of the forwarding path just need to encapsulate the | |||
to encapsulate the destination node segment ID on top of the packet. | destination node SID on top of the packet. All the intermediate | |||
All the intermediate nodes will forward the packet based on the | nodes will forward the packet based on the destination node SID. It | |||
destination node SID. It is similar to the LDP LSP. | is similar to the LDP LSP. | |||
R1 may send a packet to R8 simply by pushing an SR header with | R1 may send a packet to R8 simply by pushing an SR header with | |||
segment list {1008} (Node SID for R8). The path would be the based | segment list {1008} (Node SID for R8). The path would be the based | |||
on the routing/nexthop calculation on the routers. | on the routing/nexthop calculation on the routers. | |||
3.2.3. Use Cases of PCECC for SR Traffic Engineering (TE) Path | 3.2.3. Use Cases of PCECC for SR Traffic Engineering (TE) Path | |||
SR-TE paths may not follow an IGP SPT. Such paths may be chosen by a | SR-TE paths may not follow an IGP SPT. Such paths may be chosen by a | |||
PCECC and provisioned on the ingress node of the SR-TE path. The SR | PCECC and provisioned on the ingress node of the SR-TE path. The SR | |||
header consists of a list of SIDs (or MPLS labels). The header has | header consists of a list of SIDs (or MPLS labels). The header has | |||
skipping to change at page 9, line 40 ¶ | skipping to change at page 10, line 33 ¶ | |||
list {1004, 1008}. The path could be : R1-R2-R4-R3-R8. | list {1004, 1008}. The path could be : R1-R2-R4-R3-R8. | |||
* When node R2 receives the packet from R1 which has the header of | * When node R2 receives the packet from R1 which has the header of | |||
{1004, 1008}, and also finds out there is a node failure for | {1004, 1008}, and also finds out there is a node failure for | |||
node4, then it can enforce the traffic over the bypass and send | node4, then it can enforce the traffic over the bypass and send | |||
out the packet with header of {1005, 1008} to node5 instead of | out the packet with header of {1005, 1008} to node5 instead of | |||
node4. | node4. | |||
3.2.4. SR Policy | 3.2.4. SR Policy | |||
[TODO: BORIS - will be added in next version to be published after | [RFC8402] defines Segment Routing architecture, which uses a SR | |||
the blockade is lifted :) ] | Policy to steer packets from a node through a ordered list of | |||
segments. The SR Policy could be configured on the headed or | ||||
instantiated by an SR controller. The SR architecture does not | ||||
restrict how the controller programs the network. The options are | ||||
Network Configuration Protocol (NETCONF), PCEP, and BGP. SR Policy | ||||
can be based on either SR-MPLS or SRv6 dataplane. | ||||
A SR Policy architecture is described in | ||||
[I-D.ietf-spring-segment-routing-policy]. An SR Policy is a | ||||
framework that enables the instantiation of an ordered list of | ||||
segments on a node for implementing a source routing policy for the | ||||
steering of traffic for a specific purpose (e.g. for a specific SLA) | ||||
from that node. | ||||
A SR Policy is identified through the tuple <headend, color, | ||||
endpoint>. In the context of a specific headend, one may identify an | ||||
SR policy by the <color, endpoint> tuple. | ||||
The headend is the node where the policy is instantiated/implemented. | ||||
The endpoint indicates the destination of the policy. The color is a | ||||
32-bit numerical value that associates the SR Policy with an intent | ||||
or objective. | ||||
A SR Policy should have one or more Candidate Paths. A candidate | ||||
path is the unit for signaling of an SR Policy to a headend via | ||||
protocol extensions like [I-D.ietf-pce-segment-routing-policy-cp] or | ||||
BGP SR Policy [I-D.ietf-idr-segment-routing-te-policy]. Each | ||||
candidate path must have one or mode Segment-Lists. A Segment- List | ||||
represents a specific source-routed path to send traffic from the | ||||
headend to the endpoint of the corresponding SR Policy. | ||||
A candidate path is either dynamic, explicit, or composite. For | ||||
PCECC use case a candidate path should be either dynamic (i.e. when | ||||
PCE provides its according to specific optimization objective) or | ||||
composite (a composite candidate path construct enables the | ||||
combination of SR Policies, each with explicit candidate paths and/or | ||||
dynamic candidate paths with potentially different optimization | ||||
objectives and constraints). | ||||
[I-D.ietf-pce-segment-routing-policy-cp] defines a new ASSOCIATION | ||||
type that binds previously separated LSPs in the PCEP (Candidate | ||||
Paths) into common SR Policy hierarchy. This is applicable in the | ||||
PCECC scenario as well. | ||||
Further one could also use the PCECC mechanism directly to create an | ||||
SR policy container at the PCC by defining a new CCI for it. The | ||||
advantage of that approach would be to allow SR Policy to be created | ||||
without signaling candidate paths. | ||||
3.3. Use Cases of PCECC for TE LSP | 3.3. Use Cases of PCECC for TE LSP | |||
In the Section 3.2 the case of SR path via PCECC is discussed. | In the Section 3.2 the case of SR path via PCECC is discussed. | |||
Although those cases give the simplicity and scalability, but there | Although those cases give the simplicity and scalability, but there | |||
are existing functionalities for the traffic engineering path such as | are existing functionalities for the traffic engineering path such as | |||
the bandwidth guarantee, monitoring where SR based solution are | the bandwidth guarantee, monitoring where SR based solution are | |||
complex. Also there are cases where the depth of the label stack is | complex. Also there are cases where the depth of the label stack is | |||
an issue for existing deployment and certain vendors. | an issue for existing deployment and certain vendors. | |||
So to address these issues, PCECC architecture also support the TE | So to address these issues, PCECC architecture also support the TE | |||
LSP functionalities. To achieve this, the existing PCEP can be used | LSP functionalities. To achieve this, the existing PCEP can be used | |||
to communicate between the PCECC and nodes along the path. This is | to communicate between the PCECC and nodes along the path. This is | |||
similar to static LSPs, where LSPs can be provisioned as explicit | similar to static LSPs, where LSPs can be provisioned as explicit | |||
label instructions at each hop on the end-to-end path. Each router | label instructions at each hop on the end-to-end path. Each router | |||
along the path must be told what label- forwarding instructions to | along the path must be told what label-forwarding instructions to | |||
program and what resources to reserve. The PCE-based controller | program and what resources to reserve. The PCE-based controller | |||
keeps a view of the network and determines the paths of the end-to- | keeps a view of the network and determines the paths of the end-to- | |||
end LSPs, and the controller uses PCEP to communicate with each | end LSPs, and the controller uses PCEP to communicate with each | |||
router along the path of the end-to-end LSP. | router along the path of the end-to-end LSP. | |||
192.0.2.1/32 | 192.0.2.1/32 | |||
+----------+ | +----------+ | |||
| R1 | | | R1 | | |||
+----------+ | +----------+ | |||
| | | | | | |||
skipping to change at page 12, line 36 ¶ | skipping to change at page 14, line 36 ¶ | |||
manual intervention. | manual intervention. | |||
* Provide flexibility for Service Router placement (anywhere in the | * Provide flexibility for Service Router placement (anywhere in the | |||
network by creation of transport LSPs to them). | network by creation of transport LSPs to them). | |||
Since other tasks are already considered by other PCECC use cases, in | Since other tasks are already considered by other PCECC use cases, in | |||
this section, the focus is on load balancing (LB) task. LB task | this section, the focus is on load balancing (LB) task. LB task | |||
could be solved by means of PCECC in the following way: | could be solved by means of PCECC in the following way: | |||
* After application or network service or operator can ask SDN | * After application or network service or operator can ask SDN | |||
controller (PCECC) for LSP based LB between AGG X and AGG N/AGG | controller (PCECC) for LSP based load balancing between AGG X and | |||
N-1 (egress AGG routers which have connections to core) via North | AGG N/AGG N-1 (egress AGG routers which have connections to core). | |||
Bound Interface (NBI). Each of these would have associated | Each of these would have associated constrains (i.e. bandwidth, | |||
constrains (i.e. Path Setup Type (PST), bandwidth, inclusion or | inclusion or exclusion specific links or nodes, number of paths, | |||
exclusion specific links or nodes, number of paths, objective | objective function (OF), need for disjoint LSP paths etc.). | |||
function (OF), need for disjoint LSP paths etc.). | ||||
* PCECC could calculate multiple (Say N) LSPs according to given | * PCECC could calculate multiple (say N) LSPs according to given | |||
constrains, calculation is based on results of Objective Function | constrains, calculation is based on results of Objective Function | |||
(OF) [RFC5541], constraints, endpoints, same or different | (OF) [RFC5541], constraints, endpoints, same or different | |||
bandwidth (BW) , different links (in case of disjoint paths) and | bandwidth (BW) , different links (in case of disjoint paths) and | |||
other constrains. | other constrains. | |||
* Depending on given LSP Path setup type (PST), PCECC would use | * Depending on given LSP Path setup type (PST), PCECC would use | |||
download instructions to the PCC. At this stage it is assumed the | download instructions to the PCC. At this stage it is assumed the | |||
PCECC is aware of the label space it controls and in case of SR | PCECC is aware of the label space it controls and in case of SR | |||
the SID allocation and distribution is already done. | the SID allocation and distribution is already done. | |||
* PCECC would send PCInitiate PCEP message [RFC8281] towards ingress | * PCECC would send PCInitiate message [RFC8281] towards ingress AGG | |||
AGG X router(PCC) for each of N LSPs and receives PCRpt PCEP | X router(PCC) for each of N LSPs and receives PCRpt PCEP message | |||
message [RFC8231] back from PCCs. If the PST is PCECC-SR, the | [RFC8231] back from PCCs. If the PST is PCECC-SR, the PCECC would | |||
PCECC would include the SID stack as per [RFC8664]. If the PST is | include the SID stack as per [RFC8664]. If the PST is PCECC | |||
PCECC (basic), then the PCECC would assigns labels along the | (basic), then the PCECC would assigns labels along the calculated | |||
calculated path; and set up the path by sending central controller | path; and set up the path by sending central controller | |||
instructions in PCEP message to each node along the path of the | instructions in PCEP message to each node along the path of the | |||
LSP as per [RFC9050] and then send PCUpd message to the ingress | LSP as per [RFC9050] and then send PCUpd message to the ingress | |||
AGG X router with information about new LSP and AGG X(PCC) would | AGG X router with information about new LSP and AGG X(PCC) would | |||
respond with PCRpt with LSP status. | respond with PCRpt with LSP status. | |||
* AGG X as ingress router now have N LSPs towards AGG N and AGG N-1 | * AGG X as ingress router now have N LSPs towards AGG N and AGG N-1 | |||
which are available for installing to router's forwarding and LB | which are available for installing to router's forwarding and LB | |||
of traffic between them. Traffic distribution between those LSPs | of traffic between them. Traffic distribution between those LSPs | |||
depends on particular realization of hash-function on that router. | depends on particular realization of hash-function on that router. | |||
skipping to change at page 16, line 21 ¶ | skipping to change at page 17, line 47 ¶ | |||
including those from [RFC5376]: priority, AS sequence, preferred | including those from [RFC5376]: priority, AS sequence, preferred | |||
ASBR, disjoint paths, protection. On this step we would have two | ASBR, disjoint paths, protection. On this step we would have two | |||
paths: R1-ASBR1-ASBR3-R3, R1-ASBR5-ASBR6-R3 | paths: R1-ASBR1-ASBR3-R3, R1-ASBR5-ASBR6-R3 | |||
* Depending on given LSP PST (PCECC or PCECC-SR), PCECC would use | * Depending on given LSP PST (PCECC or PCECC-SR), PCECC would use | |||
central control download instructions to the PCC. At this stage | central control download instructions to the PCC. At this stage | |||
it is assumed the PCECC is aware of the label space it controls | it is assumed the PCECC is aware of the label space it controls | |||
and in case of SR the SID allocation and distribution is already | and in case of SR the SID allocation and distribution is already | |||
done. | done. | |||
* PCECC would send PCInitiate PCEP message [RFC8281] towards ingress | * PCECC would send PCInitiate message [RFC8281] towards ingress | |||
router R1 (PCC) in AS1 and receives PCRpt PCEP message [RFC8231] | router R1 (PCC) in AS1 and receives PCRpt PCEP message [RFC8231] | |||
back from PCC. If the PST is PCECC-SR, the PCECC would include | back from PCC. If the PST is PCECC-SR, the PCECC would include | |||
the SID stack as per [RFC8664]. It may also include binding SID | the SID stack as per [RFC8664]. It may also include binding SID | |||
based on AS boundary. The backup SID stack could also be | based on AS boundary. The backup SID stack could also be | |||
installed at ingress but more importantly each node along the SR | installed at ingress but more importantly each node along the SR | |||
path could also do local protection just based on the top segment. | path could also do local protection just based on the top segment. | |||
If the PST is PCECC (basic), then the PCECC would assigns labels | If the PST is PCECC (basic), then the PCECC would assigns labels | |||
along the calculated paths (R1-ASBR1-ASBR3-R3, R1-ASBR5-ASBR6-R3); | along the calculated paths (R1-ASBR1-ASBR3-R3, R1-ASBR5-ASBR6-R3); | |||
and set up the path by sending central controller instructions in | and set up the path by sending central controller instructions in | |||
PCEP message to each node along the path of the LSPs as per | PCEP message to each node along the path of the LSPs as per | |||
[RFC9050] and then send PCUpd message to the ingress R1 router | [RFC9050] and then send PCUpd message to the ingress R1 router | |||
with information about new LSPs and R1 would respond with PCRpt | with information about new LSPs and R1 would respond with PCRpt | |||
with LSP(s) status. | with LSP(s) status. | |||
* After that step R1 now have primary and backup TEs (LSP1 and LSP2) | * After that step R1 now have primary and backup TEs (LSP1 and LSP2) | |||
towards R3. It is up to router implementation how to make | towards R3. It is up to router implementation how to make | |||
switchover to backup LSP2 if LSP1 fails. | switchover to backup LSP2 if LSP1 fails. | |||
3.4. Use Cases of PCECC for Multicast LSPs | 3.4. Use Cases of PCECC for Multicast LSPs | |||
The current multicast LSPs are setup either using the RSVP-TE P2MP or | The multicast LSPs can be setup via the RSVP-TE P2MP or mLDP | |||
mLDP protocols. The setup of these LSPs may require manual | protocols. The setup of these LSPs may require manual configurations | |||
configurations and complex signaling when the protection is | and complex signaling when the protection is considered. By using | |||
considered. By using the PCECC solution, the multicast LSP can be | the PCECC solution, the multicast LSP can be computed and setup | |||
computed and setup through centralized controller which has the full | through centralized controller which has the full picture of the | |||
picture of the topology and bandwidth usage for each link. It not | topology and bandwidth usage for each link. It not only reduces the | |||
only reduces the complex configurations comparing the distributed | complex configurations comparing the distributed RSVP-TE P2MP or mLDP | |||
RSVP-TE P2MP or mLDP signaling, but also it can compute the disjoint | signaling, but also it can compute the disjoint primary path and | |||
primary path and secondary P2MP path efficiently. | secondary P2MP path efficiently. | |||
3.4.1. Using PCECC for P2MP/MP2MP LSPs' Setup | 3.4.1. Using PCECC for P2MP/MP2MP LSPs' Setup | |||
It is assumed the PCECC is aware of the label space it controls for | It is assumed the PCECC is aware of the label space it controls for | |||
all nodes and make allocations accordingly. | all nodes and make allocations accordingly. | |||
+----------+ | +----------+ | |||
| R1 | Root node of the multicast LSP | | R1 | Root node of the multicast LSP | |||
+----------+ | +----------+ | |||
|6000 | |6000 | |||
skipping to change at page 18, line 4 ¶ | skipping to change at page 19, line 47 ¶ | |||
constrains (i.e.bandwidth). | constrains (i.e.bandwidth). | |||
* PCECC would provision each node along the path and assign incoming | * PCECC would provision each node along the path and assign incoming | |||
and outgoing labels from R1 to {R6, R8} with the path: {R1, 6000}, | and outgoing labels from R1 to {R6, R8} with the path: {R1, 6000}, | |||
{6000, R2, {9001,9002}}, {9001, R4, 9003}, {9002, R5, 9004} {9003, | {6000, R2, {9001,9002}}, {9001, R4, 9003}, {9002, R5, 9004} {9003, | |||
R3, 9005}, {9004, R6}, {9005, R8}. The main difference is in the | R3, 9005}, {9004, R6}, {9005, R8}. The main difference is in the | |||
branch node instruction at R2 where two copies of packet are sent | branch node instruction at R2 where two copies of packet are sent | |||
towards R4 and R5 with 9001 and 9002 labels respectively. | towards R4 and R5 with 9001 and 9002 labels respectively. | |||
The packet forwarding involves - | The packet forwarding involves - | |||
Step1: R1 may send a packet P1 to R2 simply by pushing an label of | ||||
6000 to the packet. | ||||
Step2: After R2 receives the packet with label 6000, it will | Step 1: R1 may send a packet P1 to R2 simply by pushing an label | |||
of 6000 to the packet. | ||||
Step 2: After R2 receives the packet with label 6000, it will | ||||
forwarding to R4 by swapping label to 9001 and by swapping label | forwarding to R4 by swapping label to 9001 and by swapping label | |||
of 9002 towards R5. | of 9002 towards R5. | |||
Step3: After R4 receives the packet with label 9001, it will | Step 3: After R4 receives the packet with label 9001, it will | |||
forwarding to R3 by swapping to 9003. After R5 receives the | forwarding to R3 by swapping to 9003. After R5 receives the | |||
packet with label 9002, it will forwarding to R6 by swapping to | packet with label 9002, it will forwarding to R6 by swapping to | |||
9004. | 9004. | |||
Step4: After R3 receives the packet with label 9003, it will | Step 4: After R3 receives the packet with label 9003, it will | |||
forwarding to R8 by swapping to 9005 and when R5 receives the | forwarding to R8 by swapping to 9005 and when R5 receives the | |||
packet with label 9004, it will swap to 9004 and send to R6. | packet with label 9004, it will swap to 9004 and send to R6. | |||
Step5: Packet received at R8 and 9005 is popped; packet receives | Step 5: Packet received at R8 and 9005 is popped; packet receives | |||
at R6 and 9004 is popped. | at R6 and 9004 is popped. | |||
3.4.2. Use Cases of PCECC for the Resiliency of P2MP/MP2MP LSPs | 3.4.2. Use Cases of PCECC for the Resiliency of P2MP/MP2MP LSPs | |||
3.4.2.1. PCECC for the End-to-End Protection of the P2MP/MP2MP LSPs | 3.4.2.1. PCECC for the End-to-End Protection of the P2MP/MP2MP LSPs | |||
In this section we describe the end-to-end managed path protection | In this section we describe the end-to-end managed path protection | |||
service as well as the local protection with the operation management | service as well as the local protection with the operation management | |||
in the PCECC network for the P2MP/MP2MP LSP. | in the PCECC network for the P2MP/MP2MP LSP. | |||
skipping to change at page 20, line 45 ¶ | skipping to change at page 22, line 45 ¶ | |||
R50}. Both the these two primary forwarding path and secondary | R50}. Both the these two primary forwarding path and secondary | |||
bypass forwarding path will be downloaded to each routers along the | bypass forwarding path will be downloaded to each routers along the | |||
primary path and the secondary bypass path. The traffic will be | primary path and the secondary bypass path. The traffic will be | |||
forwarded through the R10->R20->{R40, R50} path normally, and when | forwarded through the R10->R20->{R40, R50} path normally, and when | |||
there is a node failure for node R20, then the PLR node R10 will | there is a node failure for node R20, then the PLR node R10 will | |||
switch the flow to the backup path, which is R10->R30->{R40, R50}. | switch the flow to the backup path, which is R10->R30->{R40, R50}. | |||
By using the PCECC, the path computation and forwarding path | By using the PCECC, the path computation and forwarding path | |||
downloading can all be done without the complex signaling used in the | downloading can all be done without the complex signaling used in the | |||
P2MP RSVP-TE or mLDP. | P2MP RSVP-TE or mLDP. | |||
3.5. Use Cases of PCECC for LSP in the Network Migration | 3.5. Using PCECC for Traffic Classification Information | |||
One of the main advantages for PCECC solution is that it has backward | ||||
compatibility naturally since the PCE server itself can function as a | ||||
proxy node of MPLS network for all the new nodes which may no longer | ||||
support the signaling protocols. | ||||
As it is illustrated in the following example, the current network | ||||
could migrate to a total PCECC controlled network gradually by | ||||
replacing the legacy nodes. During the migration, the legacy nodes | ||||
still need to signal using the existing MPLS protocol such as LDP and | ||||
RSVP-TE, and the new nodes setup their portion of the forwarding path | ||||
through PCECC directly. With the PCECC function as the proxy of | ||||
these new nodes, MPLS signaling can populate through network as | ||||
normal. | ||||
Example described in this section is based on network configurations | ||||
illustrated using the following figure: | ||||
+------------------------------------------------------------------+ | ||||
| PCE DOMAIN | | ||||
| +-----------------------------------------------------+ | | ||||
| | PCECC | | | ||||
| +-----------------------------------------------------+ | | ||||
| ^ ^ ^ ^ | | ||||
| | PCEP | | PCEP | | | ||||
| V V V V | | ||||
| +--------+ +--------+ +--------+ +--------+ +--------+ | | ||||
| | NODE 1 | | NODE 2 | | NODE 3 | | NODE 4 | | NODE 5 | | | ||||
| | |...| |...| |...| |...| | | | ||||
| | Legacy |if1| Legacy |if2|Legacy |if3| PCECC |if4| PCECC | | | ||||
| | Node | | Node | |Enabled | |Enabled | | Enabled| | | ||||
| +--------+ +--------+ +--------+ +--------+ +--------+ | | ||||
| | | ||||
+------------------------------------------------------------------+ | ||||
Example: PCECC Initiated LSP Setup In the Network Migration | ||||
In this example, there are five nodes for the TE LSP from head end | ||||
(Node1) to the tail end (Node5). Where the Node4 and Node5 are | ||||
centrally controlled and other nodes are legacy nodes. | ||||
* Node1 sends a path request message for the setup of LSP | ||||
destinating to Node5. | ||||
* PCECC sends to node1 a reply message for LSP setup with the path: | ||||
(Node1, if1),(Node2, if2), (Node3, if3), (Node4, if4), Node5. | ||||
* Node1, Node2, Node3 will setup the LSP to Node5 using the local | ||||
labels as usual. Node 3 with help of PCECC could proxy the | ||||
signaling. | ||||
* Then the PCECC will program the out-segment of Node3, the in- | ||||
segment/ out-segment of Node4, and the in-segment for Node5. | ||||
3.6. Use Cases of PCECC for L3VPN and PWE3 | ||||
As described in [RFC8283], various network services may be offered | ||||
over a network. These include protection services (including Virtual | ||||
Private Network (VPN) services (such as Layer 3 VPNs [RFC4364] or | ||||
Ethernet VPNs [RFC7432]); or Pseudowires [RFC3985]. Delivering | ||||
services over a network in an optimal way requires coordination in | ||||
the way that network resources are allocated to support the services. | ||||
A PCE-based central controller can consider the whole network and all | ||||
components of a service at once when planning how to deliver the | ||||
service. It can then use PCEP to manage the network resources and to | ||||
install the necessary associations between those resources. | ||||
In the case of L3VPN, VPN labels can be assigned and distributed | ||||
through the PCECC PCEP among the PE router instead of using the BGP | ||||
protocols. | ||||
Example described in this section is based on network configurations | ||||
illustrated using the following figure: | ||||
+-------------------------------------------+ | ||||
| PCE DOMAIN | | ||||
| +-----------------------------------+ | | ||||
| | PCECC | | | ||||
| +-----------------------------------+ | | ||||
| ^ ^ ^ | | ||||
|PWE3/L3VPN | PCEP PCEP|LSP PWE3/L3VPN|PCEP | | ||||
| V V V | | ||||
+--------+ | +--------+ +--------+ +--------+ | +--------+ | ||||
| CE | | | PE1 | | NODE x | | PE2 | | | CE | | ||||
| |...... | |...| |...| |.....| | | ||||
| Legacy | |if1 | PCECC |if2|PCCEC |if3| PCECC |if4 | Legacy | | ||||
| Node | | | Enabled| |Enabled | |Enabled | | | Node | | ||||
+--------+ | +--------+ +--------+ +--------+ | +--------+ | ||||
| | | ||||
+-------------------------------------------+ | ||||
Example: Using PCECC for L3VPN and PWE3 | ||||
In the case PWE3, instead of using the LDP signaling protocols, the | ||||
label and port pairs assigned to each pseudowire can be assigned | ||||
through PCECC among the PE routers and the corresponding forwarding | ||||
entries will be distributed into each PE routers through the extended | ||||
PCEP protocols and PCECC mechanism. | ||||
3.7. Using PCECC for Traffic Classification Information | ||||
As described in [RFC8283], traffic classification is an important | As described in [RFC8283], traffic classification is an important | |||
part of traffic engineering. It is the process of looking at a | part of traffic engineering. It is the process of looking at a | |||
packet to determine how it should be treated as it is forwarded | packet to determine how it should be treated as it is forwarded | |||
through the network. It applies in many scenarios including MPLS | through the network. It applies in many scenarios including MPLS | |||
traffic engineering (where it determines what traffic is forwarded | traffic engineering (where it determines what traffic is forwarded | |||
onto which LSPs); segment routing (where it is used to select which | onto which LSPs); segment routing (where it is used to select which | |||
set of forwarding instructions to add to a packet); and SFC (where it | set of forwarding instructions to add to a packet); and SFC (where it | |||
indicates along which service function path a packet should be | indicates along which service function path a packet should be | |||
forwarded). In conjunction with traffic engineering, traffic | forwarded). In conjunction with traffic engineering, traffic | |||
classification is an important enabler for load balancing. Traffic | classification is an important enabler for load balancing. Traffic | |||
classification is closely linked to the computational elements of | classification is closely linked to the computational elements of | |||
planning for the network functions just listed because it determines | planning for the network functions just listed because it determines | |||
how traffic load is balanced and distributed through the network. | how traffic load is balanced and distributed through the network. | |||
Therefore, selecting what traffic classification should be performed | Therefore, selecting what traffic classification should be performed | |||
by a router is an important part of the work done by a PCECC. | by a router is an important part of the work done by a PCECC. | |||
Instructions can be passed from the controller to the routers using | Instructions can be passed from the controller to the routers using | |||
PCEP. These instructions tell the routers how to map traffic to | PCEP. These instructions tell the routers how to map traffic to | |||
paths or connections. Refer [I-D.ietf-pce-pcep-flowspec]. | paths or connections. Refer [RFC9168]. | |||
Along with traffic classification, there are few more question that | Along with traffic classification, there are few more question that | |||
needs to be considered once the path is setup - | needs to be considered once the path is setup - | |||
* how to use it | * how to use it | |||
* Whether it is a virtual link | * Whether it is a virtual link | |||
* Whether to advertise it in the IGP as a virtual link | * Whether to advertise it in the IGP as a virtual link | |||
* What bits of this information to signal to the tail end | * What bits of this information to signal to the tail end | |||
These are out of scope of this document. | These are out of scope of this document. | |||
3.8. Use Cases of PCECC for SRv6 | 3.6. Use Cases of PCECC for SRv6 | |||
As per [RFC8402], with Segment Routing (SR), a node steers a packet | As per [RFC8402], with Segment Routing (SR), a node steers a packet | |||
through an ordered list of instructions, called segments. Segment | through an ordered list of instructions, called segments. Segment | |||
Routing can be applied to the IPv6 architecture with the Segment | Routing can be applied to the IPv6 architecture with the Segment | |||
Routing Header (SRH) [RFC8754]. A segment is encoded as an IPv6 | Routing Header (SRH) [RFC8754]. A segment is encoded as an IPv6 | |||
address. An ordered list of segments is encoded as an ordered list | address. An ordered list of segments is encoded as an ordered list | |||
of IPv6 addresses in the routing header. The active segment is | of IPv6 addresses in the routing header. The active segment is | |||
indicated by the Destination Address of the packet. Upon completion | indicated by the Destination Address of the packet. Upon completion | |||
of a segment, a pointer in the new routing header is incremented and | of a segment, a pointer in the new routing header is incremented and | |||
indicates the next segment. | indicates the next segment. | |||
skipping to change at page 25, line 5 ¶ | skipping to change at page 24, line 40 ¶ | |||
In this case, PCECC could assign the SRv6 SID (in form of a IPv6 | In this case, PCECC could assign the SRv6 SID (in form of a IPv6 | |||
address) to be used for node and adjacency. Later SRv6 path in form | address) to be used for node and adjacency. Later SRv6 path in form | |||
of list of SRv6 SID could be used at the ingress. Some examples - | of list of SRv6 SID could be used at the ingress. Some examples - | |||
* SRv6 SID-List={2001:db8::8} - The best path towards R8 | * SRv6 SID-List={2001:db8::8} - The best path towards R8 | |||
* SRv6 SID-List={2001:db8::5, 2001:db8::8} - The path towards R8 via | * SRv6 SID-List={2001:db8::5, 2001:db8::8} - The path towards R8 via | |||
R5 | R5 | |||
3.9. Use Cases of PCECC for SFC | 3.7. Use Cases of PCECC for SFC | |||
Service Function Chaining (SFC) is described in [RFC7665]. It is the | Service Function Chaining (SFC) is described in [RFC7665]. It is the | |||
process of directing traffic in a network such that it passes through | process of directing traffic in a network such that it passes through | |||
specific hardware devices or virtual machines (known as service | specific hardware devices or virtual machines (known as service | |||
function nodes) that can perform particular desired functions on the | function nodes) that can perform particular desired functions on the | |||
traffic. The set of functions to be performed and the order in which | traffic. The set of functions to be performed and the order in which | |||
they are to be performed is known as a service function chain. The | they are to be performed is known as a service function chain. The | |||
chain is enhanced with the locations at which the service functions | chain is enhanced with the locations at which the service functions | |||
are to be performed to derive a Service Function Path (SFP). Each | are to be performed to derive a Service Function Path (SFP). Each | |||
packet is marked as belonging to a specific SFP, and that marking | packet is marked as belonging to a specific SFP, and that marking | |||
skipping to change at page 26, line 5 ¶ | skipping to change at page 25, line 38 ¶ | |||
forwarding instructions to each SFFs along the way so that they could | forwarding instructions to each SFFs along the way so that they could | |||
process the NSH and forward accordingly. Instructions to the service | process the NSH and forward accordingly. Instructions to the service | |||
classifier handle the context header, meta data etc. | classifier handle the context header, meta data etc. | |||
It is also possible to support SFC with SR in conjunction with or | It is also possible to support SFC with SR in conjunction with or | |||
without NSH such as [I-D.ietf-spring-nsh-sr] and | without NSH such as [I-D.ietf-spring-nsh-sr] and | |||
[I-D.ietf-spring-sr-service-programming]. PCECC technique can also | [I-D.ietf-spring-sr-service-programming]. PCECC technique can also | |||
be used for service function related segments and SR service | be used for service function related segments and SR service | |||
policies. | policies. | |||
3.10. Use Cases of PCECC for Native IP | 3.8. Use Cases of PCECC for Native IP | |||
[RFC8735] describes the scenarios, and suggestions for the "Centrally | [RFC8735] describes the scenarios, and suggestions for the "Centrally | |||
Control Dynamic Routing (CCDR)" architecture, which integrates the | Control Dynamic Routing (CCDR)" architecture, which integrates the | |||
merit of traditional distributed protocols (IGP/BGP), and the power | merit of traditional distributed protocols (IGP/BGP), and the power | |||
of centrally control technologies (PCE/SDN) to provide one feasible | of centrally control technologies (PCE/SDN) to provide one feasible | |||
traffic engineering solution in various complex scenarios for the | traffic engineering solution in various complex scenarios for the | |||
service provider. [I-D.ietf-teas-pce-native-ip] defines the | service provider. [RFC8821] defines the framework for CCDR traffic | |||
framework for CCDR traffic engineering within Native IP network, | engineering within Native IP network, using Dual/Multi-BGP session | |||
using Dual/Multi-BGP session strategy and CCDR architecture. PCEP | strategy and CCDR architecture. PCEP protocol can be used to | |||
protocol can be used to transfer the key parameters between PCE and | transfer the key parameters between PCE and the underlying network | |||
the underlying network devices (PCC) using PCECC technique. The | devices (PCC) using PCECC technique. The central control | |||
central control instructions from PCECC to identify which prefix | instructions from PCECC to identify which prefix should be advertised | |||
should be advertised on which BGP session. | on which BGP session. | |||
3.11. Use Cases of PCECC for Local Protection (RSVP-TE) | ||||
[I-D.cbrt-pce-stateful-local-protection] describes the need for the | ||||
PCE to maintain and associate the local protection paths for the | ||||
RSVP-TE LSP. Local protection requires the setup of a bypass at the | ||||
PLR. This bypass can be PCC-initiated and delegated, or PCE- | ||||
initiated. In either case, the PLR MUST maintain a PCEP session to | ||||
the PCE. The Bypass LSPs need to mapped to the primary LSP. This | ||||
could be done locally at the PLR based on a local policy but there is | ||||
a need for a PCE to do the mapping as well to exert greater control. | ||||
This mapping can be done via PCECC procedures where the PCE could | ||||
instruct the PLR to the mapping and identify the primary LSP for | ||||
which bypass should be used. | ||||
3.12. Use Cases of PCECC for BIER | 3.9. Use Cases of PCECC for BIER | |||
Bit Index Explicit Replication (BIER) [RFC8279] defines an | Bit Index Explicit Replication (BIER) [RFC8279] defines an | |||
architecture where all intended multicast receivers are encoded as a | architecture where all intended multicast receivers are encoded as a | |||
bitmask in the multicast packet header within different | bitmask in the multicast packet header within different | |||
encapsulations. A router that receives such a packet will forward | encapsulations. A router that receives such a packet will forward | |||
the packet based on the bit position in the packet header towards the | the packet based on the bit position in the packet header towards the | |||
receiver(s) following a precomputed tree for each of the bits in the | receiver(s) following a precomputed tree for each of the bits in the | |||
packet. Each receiver is represented by a unique bit in the bitmask. | packet. Each receiver is represented by a unique bit in the bitmask. | |||
BIER-TE [I-D.ietf-bier-te-arch] shares architecture and packet | BIER-TE [I-D.ietf-bier-te-arch] shares architecture and packet | |||
skipping to change at page 27, line 20 ¶ | skipping to change at page 26, line 37 ¶ | |||
router with various parameters used in the BIER encapsulation such as | router with various parameters used in the BIER encapsulation such as | |||
BIER subdomain-ID, BFR-ID, BIER Encapsulation etc etc for both node | BIER subdomain-ID, BFR-ID, BIER Encapsulation etc etc for both node | |||
and adjacency. | and adjacency. | |||
4. IANA Considerations | 4. IANA Considerations | |||
This document does not require any action from IANA. | This document does not require any action from IANA. | |||
5. Security Considerations | 5. Security Considerations | |||
TODO: DHRUV - we plan to add this in the next revision after the | [RFC8283] describes how the security considerations for a PCE-based | |||
draft submission blockade is lifted. | controller are little different from those for any other PCE system. | |||
That is, the operation relies heavily on the use and security of | ||||
PCEP, so due consideration should be given to the security features | ||||
discussed in [RFC5440] and the additional mechanisms described in | ||||
[RFC8253]. It further lists the vulnerability of a central | ||||
controller architecture, such as a central point of failure, denial | ||||
of service, and a focus for interception and modification of messages | ||||
sent to individual Network Elements (NEs). | ||||
As per [RFC9050], the use of Transport Layer Security (TLS) in PCEP | ||||
is recommended, as it provides support for peer authentication, | ||||
message encryption, and integrity. It further provides mechanisms | ||||
for associating peer identities with different levels of access and/ | ||||
or authoritativeness via an attribute in X.509 certificates or a | ||||
local policy with a specific accept-list of X.509 certificates. This | ||||
can be used to check the authority for the PCECC operations. | ||||
It is expected that each new document that is produced for a specific | ||||
use case will also include considerations of the security impacts of | ||||
the use of a PCE-based central controller on the network type and | ||||
services being managed. | ||||
6. Acknowledgments | 6. Acknowledgments | |||
We would like to thank Adrain Farrel, Aijun Wang, Robert Tao, | We would like to thank Adrian Farrel, Aijun Wang, Robert Tao, | |||
Changjiang Yan, Tieying Huang, Sergio Belotti, Dieter Beller, Andrey | Changjiang Yan, Tieying Huang, Sergio Belotti, Dieter Beller, Andrey | |||
Elperin and Evgeniy Brodskiy for their useful comments and | Elperin and Evgeniy Brodskiy for their useful comments and | |||
suggestions. | suggestions. | |||
7. References | 7. References | |||
7.1. Normative References | 7.1. Normative References | |||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
skipping to change at page 28, line 5 ¶ | skipping to change at page 28, line 5 ¶ | |||
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
May 2017, <https://www.rfc-editor.org/info/rfc8174>. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
[RFC8283] Farrel, A., Ed., Zhao, Q., Ed., Li, Z., and C. Zhou, "An | [RFC8283] Farrel, A., Ed., Zhao, Q., Ed., Li, Z., and C. Zhou, "An | |||
Architecture for Use of PCE and the PCE Communication | Architecture for Use of PCE and the PCE Communication | |||
Protocol (PCEP) in a Network with Central Control", | Protocol (PCEP) in a Network with Central Control", | |||
RFC 8283, DOI 10.17487/RFC8283, December 2017, | RFC 8283, DOI 10.17487/RFC8283, December 2017, | |||
<https://www.rfc-editor.org/info/rfc8283>. | <https://www.rfc-editor.org/info/rfc8283>. | |||
[RFC8253] Lopez, D., Gonzalez de Dios, O., Wu, Q., and D. Dhody, | ||||
"PCEPS: Usage of TLS to Provide a Secure Transport for the | ||||
Path Computation Element Communication Protocol (PCEP)", | ||||
RFC 8253, DOI 10.17487/RFC8253, October 2017, | ||||
<https://www.rfc-editor.org/info/rfc8253>. | ||||
7.2. Informative References | 7.2. Informative References | |||
[RFC3985] Bryant, S., Ed. and P. Pate, Ed., "Pseudo Wire Emulation | [RFC3985] Bryant, S., Ed. and P. Pate, Ed., "Pseudo Wire Emulation | |||
Edge-to-Edge (PWE3) Architecture", RFC 3985, | Edge-to-Edge (PWE3) Architecture", RFC 3985, | |||
DOI 10.17487/RFC3985, March 2005, | DOI 10.17487/RFC3985, March 2005, | |||
<https://www.rfc-editor.org/info/rfc3985>. | <https://www.rfc-editor.org/info/rfc3985>. | |||
[RFC4206] Kompella, K. and Y. Rekhter, "Label Switched Paths (LSP) | [RFC4206] Kompella, K. and Y. Rekhter, "Label Switched Paths (LSP) | |||
Hierarchy with Generalized Multi-Protocol Label Switching | Hierarchy with Generalized Multi-Protocol Label Switching | |||
(GMPLS) Traffic Engineering (TE)", RFC 4206, | (GMPLS) Traffic Engineering (TE)", RFC 4206, | |||
DOI 10.17487/RFC4206, October 2005, | DOI 10.17487/RFC4206, October 2005, | |||
<https://www.rfc-editor.org/info/rfc4206>. | <https://www.rfc-editor.org/info/rfc4206>. | |||
[RFC4364] Rosen, E. and Y. Rekhter, "BGP/MPLS IP Virtual Private | [RFC4364] Rosen, E. and Y. Rekhter, "BGP/MPLS IP Virtual Private | |||
Networks (VPNs)", RFC 4364, DOI 10.17487/RFC4364, February | Networks (VPNs)", RFC 4364, DOI 10.17487/RFC4364, February | |||
2006, <https://www.rfc-editor.org/info/rfc4364>. | 2006, <https://www.rfc-editor.org/info/rfc4364>. | |||
[RFC4655] Farrel, A., Vasseur, J.-P., and J. Ash, "A Path | ||||
Computation Element (PCE)-Based Architecture", RFC 4655, | ||||
DOI 10.17487/RFC4655, August 2006, | ||||
<https://www.rfc-editor.org/info/rfc4655>. | ||||
[RFC5150] Ayyangar, A., Kompella, K., Vasseur, JP., and A. Farrel, | [RFC5150] Ayyangar, A., Kompella, K., Vasseur, JP., and A. Farrel, | |||
"Label Switched Path Stitching with Generalized | "Label Switched Path Stitching with Generalized | |||
Multiprotocol Label Switching Traffic Engineering (GMPLS | Multiprotocol Label Switching Traffic Engineering (GMPLS | |||
TE)", RFC 5150, DOI 10.17487/RFC5150, February 2008, | TE)", RFC 5150, DOI 10.17487/RFC5150, February 2008, | |||
<https://www.rfc-editor.org/info/rfc5150>. | <https://www.rfc-editor.org/info/rfc5150>. | |||
[RFC5151] Farrel, A., Ed., Ayyangar, A., and JP. Vasseur, "Inter- | [RFC5151] Farrel, A., Ed., Ayyangar, A., and JP. Vasseur, "Inter- | |||
Domain MPLS and GMPLS Traffic Engineering -- Resource | Domain MPLS and GMPLS Traffic Engineering -- Resource | |||
Reservation Protocol-Traffic Engineering (RSVP-TE) | Reservation Protocol-Traffic Engineering (RSVP-TE) | |||
Extensions", RFC 5151, DOI 10.17487/RFC5151, February | Extensions", RFC 5151, DOI 10.17487/RFC5151, February | |||
skipping to change at page 28, line 46 ¶ | skipping to change at page 29, line 11 ¶ | |||
Communication Protocol (PCEP)", RFC 5541, | Communication Protocol (PCEP)", RFC 5541, | |||
DOI 10.17487/RFC5541, June 2009, | DOI 10.17487/RFC5541, June 2009, | |||
<https://www.rfc-editor.org/info/rfc5541>. | <https://www.rfc-editor.org/info/rfc5541>. | |||
[RFC5376] Bitar, N., Zhang, R., and K. Kumaki, "Inter-AS | [RFC5376] Bitar, N., Zhang, R., and K. Kumaki, "Inter-AS | |||
Requirements for the Path Computation Element | Requirements for the Path Computation Element | |||
Communication Protocol (PCECP)", RFC 5376, | Communication Protocol (PCECP)", RFC 5376, | |||
DOI 10.17487/RFC5376, November 2008, | DOI 10.17487/RFC5376, November 2008, | |||
<https://www.rfc-editor.org/info/rfc5376>. | <https://www.rfc-editor.org/info/rfc5376>. | |||
[RFC7025] Otani, T., Ogaki, K., Caviglia, D., Zhang, F., and C. | ||||
Margaria, "Requirements for GMPLS Applications of PCE", | ||||
RFC 7025, DOI 10.17487/RFC7025, September 2013, | ||||
<https://www.rfc-editor.org/info/rfc7025>. | ||||
[RFC7399] Farrel, A. and D. King, "Unanswered Questions in the Path | ||||
Computation Element Architecture", RFC 7399, | ||||
DOI 10.17487/RFC7399, October 2014, | ||||
<https://www.rfc-editor.org/info/rfc7399>. | ||||
[RFC7432] Sajassi, A., Ed., Aggarwal, R., Bitar, N., Isaac, A., | [RFC7432] Sajassi, A., Ed., Aggarwal, R., Bitar, N., Isaac, A., | |||
Uttaro, J., Drake, J., and W. Henderickx, "BGP MPLS-Based | Uttaro, J., Drake, J., and W. Henderickx, "BGP MPLS-Based | |||
Ethernet VPN", RFC 7432, DOI 10.17487/RFC7432, February | Ethernet VPN", RFC 7432, DOI 10.17487/RFC7432, February | |||
2015, <https://www.rfc-editor.org/info/rfc7432>. | 2015, <https://www.rfc-editor.org/info/rfc7432>. | |||
[RFC7491] King, D. and A. Farrel, "A PCE-Based Architecture for | ||||
Application-Based Network Operations", RFC 7491, | ||||
DOI 10.17487/RFC7491, March 2015, | ||||
<https://www.rfc-editor.org/info/rfc7491>. | ||||
[RFC7665] Halpern, J., Ed. and C. Pignataro, Ed., "Service Function | [RFC7665] Halpern, J., Ed. and C. Pignataro, Ed., "Service Function | |||
Chaining (SFC) Architecture", RFC 7665, | Chaining (SFC) Architecture", RFC 7665, | |||
DOI 10.17487/RFC7665, October 2015, | DOI 10.17487/RFC7665, October 2015, | |||
<https://www.rfc-editor.org/info/rfc7665>. | <https://www.rfc-editor.org/info/rfc7665>. | |||
[RFC8231] Crabbe, E., Minei, I., Medved, J., and R. Varga, "Path | [RFC8231] Crabbe, E., Minei, I., Medved, J., and R. Varga, "Path | |||
Computation Element Communication Protocol (PCEP) | Computation Element Communication Protocol (PCEP) | |||
Extensions for Stateful PCE", RFC 8231, | Extensions for Stateful PCE", RFC 8231, | |||
DOI 10.17487/RFC8231, September 2017, | DOI 10.17487/RFC8231, September 2017, | |||
<https://www.rfc-editor.org/info/rfc8231>. | <https://www.rfc-editor.org/info/rfc8231>. | |||
skipping to change at page 30, line 15 ¶ | skipping to change at page 30, line 37 ¶ | |||
[RFC8751] Dhody, D., Lee, Y., Ceccarelli, D., Shin, J., and D. King, | [RFC8751] Dhody, D., Lee, Y., Ceccarelli, D., Shin, J., and D. King, | |||
"Hierarchical Stateful Path Computation Element (PCE)", | "Hierarchical Stateful Path Computation Element (PCE)", | |||
RFC 8751, DOI 10.17487/RFC8751, March 2020, | RFC 8751, DOI 10.17487/RFC8751, March 2020, | |||
<https://www.rfc-editor.org/info/rfc8751>. | <https://www.rfc-editor.org/info/rfc8751>. | |||
[RFC8754] Filsfils, C., Ed., Dukes, D., Ed., Previdi, S., Leddy, J., | [RFC8754] Filsfils, C., Ed., Dukes, D., Ed., Previdi, S., Leddy, J., | |||
Matsushima, S., and D. Voyer, "IPv6 Segment Routing Header | Matsushima, S., and D. Voyer, "IPv6 Segment Routing Header | |||
(SRH)", RFC 8754, DOI 10.17487/RFC8754, March 2020, | (SRH)", RFC 8754, DOI 10.17487/RFC8754, March 2020, | |||
<https://www.rfc-editor.org/info/rfc8754>. | <https://www.rfc-editor.org/info/rfc8754>. | |||
[RFC8821] Wang, A., Khasanov, B., Zhao, Q., and H. Chen, "PCE-Based | ||||
Traffic Engineering (TE) in Native IP Networks", RFC 8821, | ||||
DOI 10.17487/RFC8821, April 2021, | ||||
<https://www.rfc-editor.org/info/rfc8821>. | ||||
[RFC8986] Filsfils, C., Ed., Camarillo, P., Ed., Leddy, J., Voyer, | [RFC8986] Filsfils, C., Ed., Camarillo, P., Ed., Leddy, J., Voyer, | |||
D., Matsushima, S., and Z. Li, "Segment Routing over IPv6 | D., Matsushima, S., and Z. Li, "Segment Routing over IPv6 | |||
(SRv6) Network Programming", RFC 8986, | (SRv6) Network Programming", RFC 8986, | |||
DOI 10.17487/RFC8986, February 2021, | DOI 10.17487/RFC8986, February 2021, | |||
<https://www.rfc-editor.org/info/rfc8986>. | <https://www.rfc-editor.org/info/rfc8986>. | |||
[RFC9050] Li, Z., Peng, S., Negi, M., Zhao, Q., and C. Zhou, "Path | [RFC9050] Li, Z., Peng, S., Negi, M., Zhao, Q., and C. Zhou, "Path | |||
Computation Element Communication Protocol (PCEP) | Computation Element Communication Protocol (PCEP) | |||
Procedures and Extensions for Using the PCE as a Central | Procedures and Extensions for Using the PCE as a Central | |||
Controller (PCECC) of LSPs", RFC 9050, | Controller (PCECC) of LSPs", RFC 9050, | |||
DOI 10.17487/RFC9050, July 2021, | DOI 10.17487/RFC9050, July 2021, | |||
<https://www.rfc-editor.org/info/rfc9050>. | <https://www.rfc-editor.org/info/rfc9050>. | |||
[I-D.ietf-pce-pcep-flowspec] | [RFC9168] Dhody, D., Farrel, A., and Z. Li, "Path Computation | |||
Dhody, D., Farrel, A., and Z. Li, "PCEP Extension for Flow | Element Communication Protocol (PCEP) Extension for Flow | |||
Specification", Work in Progress, Internet-Draft, draft- | Specification", RFC 9168, DOI 10.17487/RFC9168, January | |||
ietf-pce-pcep-flowspec-13, 14 October 2021, | 2022, <https://www.rfc-editor.org/info/rfc9168>. | |||
<https://www.ietf.org/archive/id/draft-ietf-pce-pcep- | ||||
flowspec-13.txt>. | ||||
[I-D.ietf-pce-pcep-extension-pce-controller-sr] | [I-D.ietf-pce-pcep-extension-pce-controller-sr] | |||
Li, Z., Peng, S., Negi, M. S., Zhao, Q., and C. Zhou, | Li, Z., Peng, S., Negi, M. S., Zhao, Q., and C. Zhou, | |||
"PCEP Procedures and Protocol Extensions for Using PCE as | "Path Computation Element Communication Protocol (PCEP) | |||
a Central Controller (PCECC) for Segment Routing (SR) MPLS | Procedures and Extensions for Using PCE as a Central | |||
Segment Identifier (SID) Allocation and Distribution.", | Controller (PCECC) for Segment Routing (SR) MPLS Segment | |||
Work in Progress, Internet-Draft, draft-ietf-pce-pcep- | Identifier (SID) Allocation and Distribution.", Work in | |||
extension-pce-controller-sr-03, 30 September 2021, | Progress, Internet-Draft, draft-ietf-pce-pcep-extension- | |||
pce-controller-sr-04, 6 March 2022, | ||||
<https://www.ietf.org/archive/id/draft-ietf-pce-pcep- | <https://www.ietf.org/archive/id/draft-ietf-pce-pcep- | |||
extension-pce-controller-sr-03.txt>. | extension-pce-controller-sr-04.txt>. | |||
[I-D.li-pce-controlled-id-space] | [I-D.li-pce-controlled-id-space] | |||
Li, C., Chen, M., Wang, A., Cheng, W., and C. Zhou, "PCE | Li, C., Chen, M., Wang, A., Cheng, W., and C. Zhou, "PCE | |||
Controlled ID Space", Work in Progress, Internet-Draft, | Controlled ID Space", Work in Progress, Internet-Draft, | |||
draft-li-pce-controlled-id-space-09, 22 August 2021, | draft-li-pce-controlled-id-space-10, 24 February 2022, | |||
<https://www.ietf.org/archive/id/draft-li-pce-controlled- | <https://www.ietf.org/archive/id/draft-li-pce-controlled- | |||
id-space-09.txt>. | id-space-10.txt>. | |||
[I-D.ietf-pce-stateful-interdomain] | [I-D.ietf-pce-stateful-interdomain] | |||
Dugeon, O., Meuric, J., Lee, Y., and D. Ceccarelli, "PCEP | Dugeon, O., Meuric, J., Lee, Y., and D. Ceccarelli, "PCEP | |||
Extension for Stateful Inter-Domain Tunnels", Work in | Extension for Stateful Inter-Domain Tunnels", Work in | |||
Progress, Internet-Draft, draft-ietf-pce-stateful- | Progress, Internet-Draft, draft-ietf-pce-stateful- | |||
interdomain-02, 12 July 2021, | interdomain-03, 4 March 2022, | |||
<https://www.ietf.org/archive/id/draft-ietf-pce-stateful- | <https://www.ietf.org/archive/id/draft-ietf-pce-stateful- | |||
interdomain-02.txt>. | interdomain-03.txt>. | |||
[I-D.cbrt-pce-stateful-local-protection] | [I-D.cbrt-pce-stateful-local-protection] | |||
Barth, C. and R. Torvi, "PCEP Extensions for RSVP-TE | Barth, C. and R. Torvi, "PCEP Extensions for RSVP-TE | |||
Local-Protection with PCE-Stateful", Work in Progress, | Local-Protection with PCE-Stateful", Work in Progress, | |||
Internet-Draft, draft-cbrt-pce-stateful-local-protection- | Internet-Draft, draft-cbrt-pce-stateful-local-protection- | |||
01, 29 June 2018, <https://www.ietf.org/archive/id/draft- | 01, 29 June 2018, <https://www.ietf.org/archive/id/draft- | |||
cbrt-pce-stateful-local-protection-01.txt>. | cbrt-pce-stateful-local-protection-01.txt>. | |||
[I-D.ietf-pce-segment-routing-ipv6] | [I-D.ietf-pce-segment-routing-ipv6] | |||
Li, C., Negi, M., Sivabalan, S., Koldychev, M., | Li, C., Negi, M., Sivabalan, S., Koldychev, M., | |||
Kaladharan, P., and Y. Zhu, "PCEP Extensions for Segment | Kaladharan, P., and Y. Zhu, "PCEP Extensions for Segment | |||
Routing leveraging the IPv6 data plane", Work in Progress, | Routing leveraging the IPv6 data plane", Work in Progress, | |||
Internet-Draft, draft-ietf-pce-segment-routing-ipv6-09, 27 | Internet-Draft, draft-ietf-pce-segment-routing-ipv6-11, 10 | |||
May 2021, <https://www.ietf.org/internet-drafts/draft- | January 2022, <https://www.ietf.org/internet-drafts/draft- | |||
ietf-pce-segment-routing-ipv6-09.txt>. | ietf-pce-segment-routing-ipv6-11.txt>. | |||
[I-D.ietf-teas-pce-native-ip] | ||||
Wang, A., Khasanov, B., Zhao, Q., and H. Chen, "PCE-Based | ||||
Traffic Engineering (TE) in Native IP Networks", Work in | ||||
Progress, Internet-Draft, draft-ietf-teas-pce-native-ip- | ||||
17, 1 February 2021, <https://www.ietf.org/archive/id/ | ||||
draft-ietf-teas-pce-native-ip-17.txt>. | ||||
[I-D.ietf-bier-te-arch] | [I-D.ietf-bier-te-arch] | |||
Eckert, T., Cauchie, G., and M. Menth, "Tree Engineering | Eckert, T., Cauchie, G., and M. Menth, "Tree Engineering | |||
for Bit Index Explicit Replication (BIER-TE)", Work in | for Bit Index Explicit Replication (BIER-TE)", Work in | |||
Progress, Internet-Draft, draft-ietf-bier-te-arch-10, 9 | Progress, Internet-Draft, draft-ietf-bier-te-arch-10, 9 | |||
July 2021, <https://www.ietf.org/archive/id/draft-ietf- | July 2021, <https://www.ietf.org/archive/id/draft-ietf- | |||
bier-te-arch-10.txt>. | bier-te-arch-10.txt>. | |||
[I-D.chen-pce-bier] | [I-D.chen-pce-bier] | |||
Chen, R., Zhang, Z., Chen, H., Dhanaraj, S., Qin, F., and | Chen, R., Zhang, Z., Chen, H., Dhanaraj, S., Qin, F., and | |||
skipping to change at page 32, line 13 ¶ | skipping to change at page 32, line 36 ¶ | |||
S. Salsano, "Service Programming with Segment Routing", | S. Salsano, "Service Programming with Segment Routing", | |||
Work in Progress, Internet-Draft, draft-ietf-spring-sr- | Work in Progress, Internet-Draft, draft-ietf-spring-sr- | |||
service-programming-05, 10 September 2021, | service-programming-05, 10 September 2021, | |||
<https://www.ietf.org/archive/id/draft-ietf-spring-sr- | <https://www.ietf.org/archive/id/draft-ietf-spring-sr- | |||
service-programming-05.txt>. | service-programming-05.txt>. | |||
[I-D.ietf-spring-nsh-sr] | [I-D.ietf-spring-nsh-sr] | |||
Guichard, J. N. and J. Tantsura, "Integration of Network | Guichard, J. N. and J. Tantsura, "Integration of Network | |||
Service Header (NSH) and Segment Routing for Service | Service Header (NSH) and Segment Routing for Service | |||
Function Chaining (SFC)", Work in Progress, Internet- | Function Chaining (SFC)", Work in Progress, Internet- | |||
Draft, draft-ietf-spring-nsh-sr-09, 26 July 2021, | Draft, draft-ietf-spring-nsh-sr-10, 13 December 2021, | |||
<https://www.ietf.org/archive/id/draft-ietf-spring-nsh-sr- | <https://www.ietf.org/archive/id/draft-ietf-spring-nsh-sr- | |||
09.txt>. | 10.txt>. | |||
[I-D.ietf-idr-segment-routing-te-policy] | ||||
Previdi, S., Filsfils, C., Talaulikar, K., Mattes, P., | ||||
Jain, D., and S. Lin, "Advertising Segment Routing | ||||
Policies in BGP", Work in Progress, Internet-Draft, draft- | ||||
ietf-idr-segment-routing-te-policy-14, 10 November 2021, | ||||
<https://www.ietf.org/archive/id/draft-ietf-idr-segment- | ||||
routing-te-policy-14.txt>. | ||||
[I-D.ietf-spring-segment-routing-policy] | ||||
Filsfils, C., Talaulikar, K., Voyer, D., Bogdanov, A., and | ||||
P. Mattes, "Segment Routing Policy Architecture", Work in | ||||
Progress, Internet-Draft, draft-ietf-spring-segment- | ||||
routing-policy-18, 17 February 2022, | ||||
<https://www.ietf.org/archive/id/draft-ietf-spring- | ||||
segment-routing-policy-18.txt>. | ||||
[I-D.ietf-pce-segment-routing-policy-cp] | ||||
Koldychev, M., Sivabalan, S., Barth, C., Peng, S., and H. | ||||
Bidgoli, "PCEP extension to support Segment Routing Policy | ||||
Candidate Paths", Work in Progress, Internet-Draft, draft- | ||||
ietf-pce-segment-routing-policy-cp-06, 22 October 2021, | ||||
<https://www.ietf.org/archive/id/draft-ietf-pce-segment- | ||||
routing-policy-cp-06.txt>. | ||||
[MAP-REDUCE] | [MAP-REDUCE] | |||
Lee, K., Choi, T., Ganguly, A., Wolinsky, D., Boykin, P., | Lee, K., Choi, T., Ganguly, A., Wolinsky, D., Boykin, P., | |||
and R. Figueiredo, "Parallel Processing Framework on a P2P | and R. Figueiredo, "Parallel Processing Framework on a P2P | |||
System Using Map and Reduce Primitives", , May 2011, | System Using Map and Reduce Primitives", , May 2011, | |||
<http://leeky.me/publications/mapreduce_p2p.pdf>. | <http://leeky.me/publications/mapreduce_p2p.pdf>. | |||
[MPLS-DC] Afanasiev, D. and D. Ginsburg, "MPLS in DC and inter-DC | [MPLS-DC] Afanasiev, D. and D. Ginsburg, "MPLS in DC and inter-DC | |||
networks: the unified forwarding mechanism for network | networks: the unified forwarding mechanism for network | |||
programmability at scale", , March 2014, | programmability at scale", , March 2014, | |||
<https://www.slideshare.net/DmitryAfanasiev1/yandex- | <https://www.slideshare.net/DmitryAfanasiev1/yandex- | |||
nag201320131031>. | nag201320131031>. | |||
Appendix A. Using reliable P2MP TE based multicast delivery for | Appendix A. Other Use Cases of PCECC | |||
distributed computations (MapReduce-Hadoop) | ||||
This section list some more advanced use cases of PCECC that were | ||||
discussed and could be worked on in future. | ||||
A.1. Use Cases of PCECC for LSP in the Network Migration | ||||
One of the main advantages for PCECC solution is that it has backward | ||||
compatibility naturally since the PCE server itself can function as a | ||||
proxy node of MPLS network for all the new nodes which may no longer | ||||
support the signaling protocols. | ||||
As it is illustrated in the following example, the current network | ||||
could migrate to a total PCECC controlled network gradually by | ||||
replacing the legacy nodes. During the migration, the legacy nodes | ||||
still need to signal using the existing MPLS protocol such as LDP and | ||||
RSVP-TE, and the new nodes setup their portion of the forwarding path | ||||
through PCECC directly. With the PCECC function as the proxy of | ||||
these new nodes, MPLS signaling can populate through network as | ||||
normal. | ||||
Example described in this section is based on network configurations | ||||
illustrated using the following figure: | ||||
+------------------------------------------------------------------+ | ||||
| PCE DOMAIN | | ||||
| +-----------------------------------------------------+ | | ||||
| | PCECC | | | ||||
| +-----------------------------------------------------+ | | ||||
| ^ ^ ^ ^ | | ||||
| | PCEP | | PCEP | | | ||||
| V V V V | | ||||
| +--------+ +--------+ +--------+ +--------+ +--------+ | | ||||
| | NODE 1 | | NODE 2 | | NODE 3 | | NODE 4 | | NODE 5 | | | ||||
| | |...| |...| |...| |...| | | | ||||
| | Legacy |if1| Legacy |if2|Legacy |if3| PCECC |if4| PCECC | | | ||||
| | Node | | Node | |Enabled | |Enabled | | Enabled| | | ||||
| +--------+ +--------+ +--------+ +--------+ +--------+ | | ||||
| | | ||||
+------------------------------------------------------------------+ | ||||
Example: PCECC Initiated LSP Setup In the Network Migration | ||||
In this example, there are five nodes for the TE LSP from head end | ||||
(Node1) to the tail end (Node5). Where the Node4 and Node5 are | ||||
centrally controlled and other nodes are legacy nodes. | ||||
* Node1 sends a path request message for the setup of LSP | ||||
destinating to Node5. | ||||
* PCECC sends to node1 a reply message for LSP setup with the path: | ||||
(Node1, if1),(Node2, if2), (Node3, if3), (Node4, if4), Node5. | ||||
* Node1, Node2, Node3 will setup the LSP to Node5 using the local | ||||
labels as usual. Node 3 with help of PCECC could proxy the | ||||
signaling. | ||||
* Then the PCECC will program the out-segment of Node3, the in- | ||||
segment/ out-segment of Node4, and the in-segment for Node5. | ||||
A.2. Use Cases of PCECC for L3VPN and PWE3 | ||||
As described in [RFC8283], various network services may be offered | ||||
over a network. These include protection services (including Virtual | ||||
Private Network (VPN) services (such as Layer 3 VPNs [RFC4364] or | ||||
Ethernet VPNs [RFC7432]); or Pseudowires [RFC3985]. Delivering | ||||
services over a network in an optimal way requires coordination in | ||||
the way that network resources are allocated to support the services. | ||||
A PCE-based central controller can consider the whole network and all | ||||
components of a service at once when planning how to deliver the | ||||
service. It can then use PCEP to manage the network resources and to | ||||
install the necessary associations between those resources. | ||||
In the case of L3VPN, VPN labels can be assigned and distributed | ||||
through the PCECC PCEP among the PE router instead of using the BGP | ||||
protocols. | ||||
Example described in this section is based on network configurations | ||||
illustrated using the following figure: | ||||
+-------------------------------------------+ | ||||
| PCE DOMAIN | | ||||
| +-----------------------------------+ | | ||||
| | PCECC | | | ||||
| +-----------------------------------+ | | ||||
| ^ ^ ^ | | ||||
|PWE3/L3VPN | PCEP PCEP|LSP PWE3/L3VPN|PCEP | | ||||
| V V V | | ||||
+--------+ | +--------+ +--------+ +--------+ | +--------+ | ||||
| CE | | | PE1 | | NODE x | | PE2 | | | CE | | ||||
| |...... | |...| |...| |.....| | | ||||
| Legacy | |if1 | PCECC |if2|PCCEC |if3| PCECC |if4 | Legacy | | ||||
| Node | | | Enabled| |Enabled | |Enabled | | | Node | | ||||
+--------+ | +--------+ +--------+ +--------+ | +--------+ | ||||
| | | ||||
+-------------------------------------------+ | ||||
Example: Using PCECC for L3VPN and PWE3 | ||||
In the case PWE3, instead of using the LDP signaling protocols, the | ||||
label and port pairs assigned to each pseudowire can be assigned | ||||
through PCECC among the PE routers and the corresponding forwarding | ||||
entries will be distributed into each PE routers through the extended | ||||
PCEP protocols and PCECC mechanism. | ||||
A.3. Use Cases of PCECC for Local Protection (RSVP-TE) | ||||
[I-D.cbrt-pce-stateful-local-protection] describes the need for the | ||||
PCE to maintain and associate the local protection paths for the | ||||
RSVP-TE LSP. Local protection requires the setup of a bypass at the | ||||
PLR. This bypass can be PCC-initiated and delegated, or PCE- | ||||
initiated. In either case, the PLR MUST maintain a PCEP session to | ||||
the PCE. The Bypass LSPs need to mapped to the primary LSP. This | ||||
could be done locally at the PLR based on a local policy but there is | ||||
a need for a PCE to do the mapping as well to exert greater control. | ||||
This mapping can be done via PCECC procedures where the PCE could | ||||
instruct the PLR to the mapping and identify the primary LSP for | ||||
which bypass should be used. | ||||
A.4. Using reliable P2MP TE based multicast delivery for distributed | ||||
computations (MapReduce-Hadoop) | ||||
MapReduce model of distributed computations in computing clusters is | MapReduce model of distributed computations in computing clusters is | |||
widely deployed. In Hadoop (https://hadoop.apache.org/) 1.0 | widely deployed. In Hadoop (https://hadoop.apache.org/) 1.0 | |||
architecture MapReduce operations on big data in the Hadoop | architecture MapReduce operations on big data in the Hadoop | |||
Distributed File System (HDFS), where NameNode has the knowledge | Distributed File System (HDFS), where NameNode has the knowledge | |||
about resources of the cluster and where actual data (chunks) for | about resources of the cluster and where actual data (chunks) for | |||
particular task are located (which DataNode). Each chunk of data | particular task are located (which DataNode). Each chunk of data | |||
(64MB or more) should have 3 saved copies in different DataNodes | (64MB or more) should have 3 saved copies in different DataNodes | |||
based on their proximity. | based on their proximity. | |||
skipping to change at page 35, line 14 ¶ | skipping to change at page 38, line 31 ¶ | |||
Phase 3. NameNode SHOULD send this information to client, PCECC | Phase 3. NameNode SHOULD send this information to client, PCECC | |||
informs client about optimal P2MP path towards DataNodes via PCEP | informs client about optimal P2MP path towards DataNodes via PCEP | |||
message. | message. | |||
Phase 4. Client sends data blocks to those DataNodes for writing via | Phase 4. Client sends data blocks to those DataNodes for writing via | |||
created P2MP tunnel. | created P2MP tunnel. | |||
When this task will be finished, P2MP tunnel could be turned down. | When this task will be finished, P2MP tunnel could be turned down. | |||
Appendix B. Contributor Addresses | ||||
Following authors contributed text for this document and should be considered as co-authors: | ||||
Luyuan Fang | ||||
Expedia, Inc. | ||||
United States of America | ||||
Email: luyuanf@gmail.com | ||||
Chao Zhou | ||||
HPE | ||||
Email: chaozhou_us@yahoo.com | ||||
Boris Zhang | ||||
Telus Communications | ||||
Email: Boris.zhang@telus.com | ||||
Artem Rachitskiy | ||||
Mobile TeleSystems JLLC | ||||
Nezavisimosti ave., 95 | ||||
220043, Minsk | ||||
Belarus | ||||
Email: arachitskiy@mts.by | ||||
Anton Gulida | ||||
LLC "Lifetech" | ||||
Krasnoarmeyskaya str., 24 | ||||
220030, Minsk | ||||
Belarus | ||||
Email: anton.gulida@life.com.by | ||||
Authors' Addresses | Authors' Addresses | |||
Zhenbin (Robin) Li | Zhenbin (Robin) Li | |||
Huawei Technologies | Huawei Technologies | |||
Huawei Bld., No.156 Beiqing Rd. | Huawei Bld., No.156 Beiqing Rd. | |||
Beijing | Beijing | |||
100095 | 100095 | |||
China | China | |||
Email: lizhenbin@huawei.com | Email: lizhenbin@huawei.com | |||
Dhruv Dhody | Dhruv Dhody | |||
Huawei Technologies | Huawei Technologies | |||
Divyashree Techno Park, Whitefield | Divyashree Techno Park, Whitefield | |||
Bangalore | Bangalore | |||
Karnataka 560066 | Karnataka 560066 | |||
India | India | |||
Email: dhruv.ietf@gmail.com | Email: dhruv.ietf@gmail.com | |||
Quintin Zhao | Quintin Zhao | |||
Etheric Networks | Etheric Networks | |||
1009 S CLAREMONT ST | 1009 S CLAREMONT ST | |||
SAN MATEO, CA 94402 | SAN MATEO, CA 94402 | |||
United States of America | United States of America | |||
Email: qzhao@ethericnetworks.com | Email: qzhao@ethericnetworks.com | |||
King Ke | King Ke | |||
Tencent Holdings Ltd. | Tencent Holdings Ltd. | |||
Shenzhen | Shenzhen | |||
China | China | |||
Email: kinghe@tencent.com | Email: kinghe@tencent.com | |||
Boris Khasanov | Boris Khasanov | |||
Yandex LLC | Yandex LLC | |||
Ulitsa Lva Tolstogo 16 | Ulitsa Lva Tolstogo 16 | |||
Moscow | Moscow | |||
Email: bhassanov@yahoo.com | Email: bhassanov@yahoo.com | |||
Luyuan Fang | ||||
Expedia, Inc. | ||||
United States of America | ||||
Email: luyuanf@gmail.com | ||||
Chao Zhou | ||||
HPE | ||||
Email: chaozhou_us@yahoo.com | ||||
Boris Zhang | ||||
Telus Communications | ||||
Email: Boris.zhang@telus.com | ||||
Artem Rachitskiy | ||||
Mobile TeleSystems JLLC | ||||
Nezavisimosti ave., 95 | ||||
220043, Minsk | ||||
Belarus | ||||
Email: arachitskiy@mts.by | ||||
Anton Gulida | ||||
LLC "Lifetech" | ||||
Krasnoarmeyskaya str., 24 | ||||
220030, Minsk | ||||
Belarus | ||||
Email: anton.gulida@life.com.by | ||||
End of changes. 65 change blocks. | ||||
274 lines changed or deleted | 438 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |