rfc9050.original | rfc9050.txt | |||
---|---|---|---|---|
PCE Working Group Z. Li | Internet Engineering Task Force (IETF) Z. Li | |||
Internet-Draft S. Peng | Request for Comments: 9050 S. Peng | |||
Intended status: Standards Track Huawei Technologies | Category: Standards Track Huawei Technologies | |||
Expires: September 5, 2021 M. Negi | ISSN: 2070-1721 M. Negi | |||
RtBrick Inc | RtBrick Inc | |||
Q. Zhao | Q. Zhao | |||
Etheric Networks | Etheric Networks | |||
C. Zhou | C. Zhou | |||
HPE | HPE | |||
March 4, 2021 | July 2021 | |||
PCEP Procedures and Protocol Extensions for Using PCE as a Central | Path Computation Element Communication Protocol (PCEP) Procedures and | |||
Controller (PCECC) of LSPs | Extensions for Using the PCE as a Central Controller (PCECC) of LSPs | |||
draft-ietf-pce-pcep-extension-for-pce-controller-14 | ||||
Abstract | Abstract | |||
The Path Computation Element (PCE) is a core component of Software- | The Path Computation Element (PCE) is a core component of Software- | |||
Defined Networking (SDN) systems. | Defined Networking (SDN) systems. | |||
A PCE-based Central Controller (PCECC) can simplify the processing of | A PCE as a Central Controller (PCECC) can simplify the processing of | |||
a distributed control plane by blending it with elements of SDN and | a distributed control plane by blending it with elements of SDN and | |||
without necessarily completely replacing it. Thus, the LSP can be | without necessarily completely replacing it. Thus, the Label | |||
calculated/set up/initiated and the label forwarding entries can also | Switched Path (LSP) can be calculated/set up/initiated and the label- | |||
be downloaded through a centralized PCE server to each network device | forwarding entries can also be downloaded through a centralized PCE | |||
along the path, while leveraging the existing PCE technologies as | server to each network device along the path while leveraging the | |||
much as possible. | existing PCE technologies as much as possible. | |||
This document specifies the procedures and PCEP extensions for using | This document specifies the procedures and Path Computation Element | |||
the PCE as the central controller for provisioning labels along the | Communication Protocol (PCEP) extensions for using the PCE as the | |||
path of the static LSP. | central controller for provisioning labels along the path of the | |||
static LSP. | ||||
Status of This Memo | Status of This Memo | |||
This Internet-Draft is submitted in full conformance with the | This is an Internet Standards Track document. | |||
provisions of BCP 78 and BCP 79. | ||||
Internet-Drafts are working documents of the Internet Engineering | This document is a product of the Internet Engineering Task Force | |||
Task Force (IETF). Note that other groups may also distribute | (IETF). It represents the consensus of the IETF community. It has | |||
working documents as Internet-Drafts. The list of current Internet- | received public review and has been approved for publication by the | |||
Drafts is at https://datatracker.ietf.org/drafts/current/. | Internet Engineering Steering Group (IESG). Further information on | |||
Internet Standards is available in Section 2 of RFC 7841. | ||||
Internet-Drafts are draft documents valid for a maximum of six months | Information about the current status of this document, any errata, | |||
and may be updated, replaced, or obsoleted by other documents at any | and how to provide feedback on it may be obtained at | |||
time. It is inappropriate to use Internet-Drafts as reference | https://www.rfc-editor.org/info/rfc9050. | |||
material or to cite them other than as "work in progress." | ||||
This Internet-Draft will expire on September 5, 2021. | ||||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2021 IETF Trust and the persons identified as the | Copyright (c) 2021 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 | Provisions Relating to IETF Documents | |||
(https://trustee.ietf.org/license-info) in effect on the date of | (https://trustee.ietf.org/license-info) in effect on the date of | |||
publication of this document. Please review these documents | publication of this document. Please review these documents | |||
carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
described in the Simplified BSD License. | described in the Simplified BSD License. | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction | |||
1.1. Requirements Language . . . . . . . . . . . . . . . . . . 5 | 2. Terminology | |||
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 5 | 2.1. Requirements Language | |||
3. Basic PCECC Mode . . . . . . . . . . . . . . . . . . . . . . 5 | 3. Basic PCECC Mode | |||
4. PCEP Requirements . . . . . . . . . . . . . . . . . . . . . . 6 | 4. PCEP Requirements | |||
5. Procedures for Using the PCE as a Central Controller (PCECC) 6 | 5. Procedures for Using the PCE as a Central Controller (PCECC) | |||
5.1. Stateful PCE Model . . . . . . . . . . . . . . . . . . . 6 | 5.1. Stateful PCE Model | |||
5.2. New LSP Functions . . . . . . . . . . . . . . . . . . . . 6 | 5.2. New LSP Functions | |||
5.3. New PCEP Object . . . . . . . . . . . . . . . . . . . . . 7 | 5.3. New PCEP Object | |||
5.4. PCECC Capability Advertisement . . . . . . . . . . . . . 7 | 5.4. PCECC Capability Advertisement | |||
5.5. LSP Operations . . . . . . . . . . . . . . . . . . . . . 9 | 5.5. LSP Operations | |||
5.5.1. PCE-Initiated PCECC LSP . . . . . . . . . . . . . . . 9 | 5.5.1. PCE-Initiated PCECC LSP | |||
5.5.2. PCC-Initiated PCECC LSP . . . . . . . . . . . . . . . 12 | 5.5.2. PCC-Initiated PCECC LSP | |||
5.5.3. Central Controller Instructions . . . . . . . . . . . 15 | 5.5.3. Central Controller Instructions | |||
5.5.3.1. Label Download CCI . . . . . . . . . . . . . . . 16 | 5.5.3.1. Label Download CCI | |||
5.5.3.2. Label Clean up CCI . . . . . . . . . . . . . . . 16 | 5.5.3.2. Label Cleanup CCI | |||
5.5.4. PCECC LSP Update . . . . . . . . . . . . . . . . . . 17 | 5.5.4. PCECC LSP Update | |||
5.5.5. Re-Delegation and Clean up . . . . . . . . . . . . . 20 | 5.5.5. Re-delegation and Cleanup | |||
5.5.6. Synchronization of Central Controllers Instructions . 20 | 5.5.6. Synchronization of Central Controller Instructions | |||
5.5.7. PCECC LSP State Report . . . . . . . . . . . . . . . 21 | 5.5.7. PCECC LSP State Report | |||
5.5.8. PCC-Based Allocations . . . . . . . . . . . . . . . . 21 | 5.5.8. PCC-Based Allocations | |||
6. PCEP Messages . . . . . . . . . . . . . . . . . . . . . . . . 21 | 6. PCEP Messages | |||
6.1. The PCInitiate Message . . . . . . . . . . . . . . . . . 22 | 6.1. The PCInitiate Message | |||
6.2. The PCRpt Message . . . . . . . . . . . . . . . . . . . . 23 | 6.2. The PCRpt Message | |||
7. PCEP Objects . . . . . . . . . . . . . . . . . . . . . . . . 24 | 7. PCEP Objects | |||
7.1. OPEN Object . . . . . . . . . . . . . . . . . . . . . . . 24 | 7.1. OPEN Object | |||
7.1.1. PCECC Capability sub-TLV . . . . . . . . . . . . . . 25 | 7.1.1. PCECC Capability Sub-TLV | |||
7.2. PATH-SETUP-TYPE TLV . . . . . . . . . . . . . . . . . . . 25 | 7.2. PATH-SETUP-TYPE TLV | |||
7.3. CCI Object . . . . . . . . . . . . . . . . . . . . . . . 26 | 7.3. CCI Object | |||
7.3.1. Address TLVs . . . . . . . . . . . . . . . . . . . . 27 | 7.3.1. Address TLVs | |||
8. Implementation Status . . . . . . . . . . . . . . . . . . . . 27 | 8. Security Considerations | |||
8.1. Huawei's Proof of Concept based on ONOS . . . . . . . . . 28 | 8.1. Malicious PCE | |||
9. Security Considerations . . . . . . . . . . . . . . . . . . . 28 | 8.2. Malicious PCC | |||
9.1. Malicious PCE . . . . . . . . . . . . . . . . . . . . . . 29 | 9. Manageability Considerations | |||
9.2. Malicious PCC . . . . . . . . . . . . . . . . . . . . . . 29 | 9.1. Control of Function and Policy | |||
10. Manageability Considerations . . . . . . . . . . . . . . . . 29 | 9.2. Information and Data Models | |||
10.1. Control of Function and Policy . . . . . . . . . . . . . 29 | 9.3. Liveness Detection and Monitoring | |||
10.2. Information and Data Models . . . . . . . . . . . . . . 30 | 9.4. Verify Correct Operations | |||
10.3. Liveness Detection and Monitoring . . . . . . . . . . . 30 | 9.5. Requirements on Other Protocols | |||
10.4. Verify Correct Operations . . . . . . . . . . . . . . . 30 | 9.6. Impact on Network Operations | |||
10.5. Requirements On Other Protocols . . . . . . . . . . . . 30 | 10. IANA Considerations | |||
10.6. Impact On Network Operations . . . . . . . . . . . . . . 31 | 10.1. PATH-SETUP-TYPE-CAPABILITY Sub-TLV Type Indicators | |||
11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 31 | 10.2. PCECC-CAPABILITY Sub-TLV's Flag Field | |||
11.1. PATH-SETUP-TYPE-CAPABILITY Sub-TLV Type Indicators . . . 31 | 10.3. PCEP Path Setup Type Registry | |||
11.2. PCECC-CAPABILITY sub-TLV's Flag field . . . . . . . . . 31 | 10.4. PCEP Object | |||
11.3. Path Setup Type Registry . . . . . . . . . . . . . . . . 31 | 10.5. CCI Object Flag Field | |||
11.4. PCEP Object . . . . . . . . . . . . . . . . . . . . . . 32 | 10.6. PCEP-Error Object | |||
11.5. CCI Object Flag Field . . . . . . . . . . . . . . . . . 32 | 11. References | |||
11.6. PCEP-Error Object . . . . . . . . . . . . . . . . . . . 32 | 11.1. Normative References | |||
12. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 33 | 11.2. Informative References | |||
13. References . . . . . . . . . . . . . . . . . . . . . . . . . 33 | Acknowledgments | |||
13.1. Normative References . . . . . . . . . . . . . . . . . . 33 | Contributors | |||
13.2. Informative References . . . . . . . . . . . . . . . . . 35 | Authors' Addresses | |||
Appendix A. Contributor Addresses . . . . . . . . . . . . . . . 38 | ||||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 39 | ||||
1. Introduction | 1. Introduction | |||
The Path Computation Element (PCE) [RFC4655] was developed to offload | The Path Computation Element (PCE) [RFC4655] was developed to offload | |||
the path computation function from routers in an MPLS traffic- | the path computation function from routers in an MPLS traffic- | |||
engineered network. It can compute optimal paths for traffic across | engineered (TE) network. It can compute optimal paths for traffic | |||
a network and can also update the paths to reflect changes in the | across a network and can also update the paths to reflect changes in | |||
network or traffic demands. Since then, the role and function of the | the network or traffic demands. Since then, the role and function of | |||
PCE has grown to cover a number of other uses (such as GMPLS | the PCE have grown to cover a number of other uses (such as GMPLS | |||
[RFC7025]) and to allow delegated control [RFC8231] and PCE-initiated | [RFC7025]) and to allow delegated control [RFC8231] and PCE-initiated | |||
use of network resources [RFC8281]. | use of network resources [RFC8281]. | |||
According to [RFC7399], Software-Defined Networking (SDN) refers to a | According to [RFC7399], Software-Defined Networking (SDN) refers to a | |||
separation between the control elements and the forwarding components | separation between the control elements and the forwarding components | |||
so that software running in a centralized system, called a | so that software running in a centralized system, called a | |||
controller, can act to program the devices in the network to behave | controller, can act to program the devices in the network to behave | |||
in specific ways. A required element in an SDN architecture is a | in specific ways. A required element in an SDN architecture is a | |||
component that plans how the network resources will be used and how | component that plans how the network resources will be used and how | |||
the devices will be programmed. It is possible to view this | the devices will be programmed. It is possible to view this | |||
skipping to change at page 4, line 16 ¶ | skipping to change at line 152 ¶ | |||
system (including an SDN system) is presented in [RFC7491]. | system (including an SDN system) is presented in [RFC7491]. | |||
In early PCE implementations, where the PCE was used to derive paths | In early PCE implementations, where the PCE was used to derive paths | |||
for MPLS Label Switched Paths (LSPs), paths were requested by network | for MPLS Label Switched Paths (LSPs), paths were requested by network | |||
elements (known as Path Computation Clients (PCCs)), and the results | elements (known as Path Computation Clients (PCCs)), and the results | |||
of the path computations were supplied to network elements using the | of the path computations were supplied to network elements using the | |||
Path Computation Element Communication Protocol (PCEP) [RFC5440]. | Path Computation Element Communication Protocol (PCEP) [RFC5440]. | |||
This protocol was later extended to allow a PCE to send unsolicited | This protocol was later extended to allow a PCE to send unsolicited | |||
requests to the network for LSP establishment [RFC8281]. | requests to the network for LSP establishment [RFC8281]. | |||
PCE was developed to derive paths for MPLS Label Switched Paths | The PCE was developed to derive paths for MPLS LSPs, which are | |||
(LSPs), which are supplied to the head end of the LSP using the Path | supplied to the head end of the LSP using the PCEP. But SDN has a | |||
Computation Element Communication Protocol (PCEP). But SDN has a | broader applicability than signaled MPLS and GMPLS TE networks, and | |||
broader applicability than signaled MPLS and GMPLS traffic-engineered | the PCE may be used to determine paths in a range of use cases. PCEP | |||
(TE) networks, and the PCE may be used to determine paths in a range | has been proposed as a control protocol for use in these environments | |||
of use cases. PCEP has been proposed as a control protocol for use | to allow the PCE to be fully enabled as a central controller. | |||
in these environments to allow the PCE to be fully enabled as a | ||||
central controller. | ||||
[RFC8283] introduces the architecture for PCE as a central controller | [RFC8283] introduces the architecture for the PCE as a central | |||
as an extension of the architecture described in [RFC4655] and | controller as an extension to the architecture described in [RFC4655] | |||
assumes the continued use of PCEP as the protocol used between PCE | and assumes the continued use of PCEP as the protocol used between | |||
and PCC. [RFC8283] further examines the motivations and | the PCE and PCC. [RFC8283] further examines the motivations and | |||
applicability for PCEP as a Southbound Interface (SBI), and | applicability for PCEP as a Southbound Interface (SBI) and introduces | |||
introduces the implications for the protocol. | the implications for the protocol. [PCECC] describes the use cases | |||
[I-D.ietf-teas-pcecc-use-cases] describes the use cases for the PCECC | for the PCECC architecture. | |||
architecture. | ||||
A PCE-based Central Controller (PCECC) can simplify the processing of | A PCECC can simplify the processing of a distributed control plane by | |||
a distributed control plane by blending it with elements of SDN and | blending it with elements of SDN and without necessarily completely | |||
without necessarily completely replacing it. Thus, the LSP can be | replacing it. Thus, the LSP can be calculated/set up/initiated and | |||
calculated/setup/initiated and the label forwarding entries can also | the label-forwarding entries can also be downloaded through a | |||
be downloaded through a centralized PCE server to each network device | centralized PCE server to each network device along the path while | |||
along the path while leveraging the existing PCE technologies as much | leveraging the existing PCE technologies as much as possible. | |||
as possible. | ||||
This document specifies the procedures and PCEP extensions for using | This document specifies the procedures and PCEP extensions for using | |||
the PCE as the central controller for static LSPs, where LSPs can be | the PCE as the central controller for static LSPs, where LSPs can be | |||
provisioned as explicit label instructions at each hop on the end-to- | provisioned as explicit label instructions at each hop on the end-to- | |||
end path. Each router along the path must be told what label- | end path. Each router along the path must be told what label- | |||
forwarding instructions to program and what resources to reserve. | forwarding instructions to program and what resources to reserve. | |||
The PCE-based controller keeps a view of the network and determines | The PCE-based controller keeps a view of the network and determines | |||
the paths of the end-to-end LSPs, and the controller uses PCEP to | the paths of the end-to-end LSPs, and 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. | |||
While this document is focused on the procedures for the static LSPs | While this document is focused on the procedures for the static LSPs | |||
(referred to as basic PCECC mode in Section 3), the mechanisms and | (referred to as the basic PCECC mode in Section 3), the mechanisms | |||
protocol encodings are specified in such a way that extensions for | and protocol encodings are specified in such a way that extensions | |||
other use cases are easy to achieve. For example, the extensions for | for other use cases are easy to achieve. For example, the extensions | |||
PCECC for Segment Routing (SR) are specified in | for the PCECC for Segment Routing (SR) are specified in [PCECC-SR] | |||
[I-D.ietf-pce-pcep-extension-pce-controller-sr] and | and [PCECC-SRv6]. | |||
[I-D.dhody-pce-pcep-extension-pce-controller-srv6]. | ||||
1.1. Requirements Language | ||||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | ||||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | ||||
"OPTIONAL" in this document are to be interpreted as described in BCP | ||||
14 [RFC2119] [RFC8174] when, and only when, they appear in all | ||||
capitals, as shown here. | ||||
2. Terminology | 2. Terminology | |||
The terminology used in this document is the same as that described | The terminology used in this document is the same as that described | |||
in the [RFC8283]. | in the [RFC8283]. | |||
2.1. Requirements Language | ||||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | ||||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | ||||
"OPTIONAL" in this document are to be interpreted as described in | ||||
BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all | ||||
capitals, as shown here. | ||||
3. Basic PCECC Mode | 3. Basic PCECC Mode | |||
In this mode, LSPs are provisioned as explicit label instructions at | In this mode, LSPs are provisioned as explicit label instructions at | |||
each hop on the end-to-end path. Each router along the path must be | each hop on the end-to-end path. Each router along the path must be | |||
told what label forwarding instructions to program and what resources | told what label-forwarding instructions to program and what resources | |||
to reserve. The controller uses PCEP to communicate with each router | to reserve. The controller uses PCEP to communicate with each router | |||
along the path of the end-to-end LSP. | along the path of the end-to-end LSP. | |||
[RFC8283] examines the motivations and applicability for PCECC and | [RFC8283] examines the motivations and applicability for the PCECC | |||
use of PCEP as an SBI. Section 3.1.2. of [RFC8283] highlights the | and use of PCEP as an SBI. Section 3.1.2 of [RFC8283] highlights the | |||
use of PCECC for label allocation along the static LSPs and it | use of the PCECC for label allocation along the static LSPs, and it | |||
simplifies the processing of a distributed control plane by blending | simplifies the processing of a distributed control plane by blending | |||
it with elements of SDN and without necessarily completely replacing | it with elements of SDN and without necessarily completely replacing | |||
it. This allows the operator to introduce the advantages of SDN | it. This allows the operator to introduce the advantages of SDN | |||
(such as programmability) into the network. Further Section 3.3. of | (such as programmability) into the network. Further, Section 3.3 of | |||
[I-D.ietf-teas-pcecc-use-cases] describes some of the scenarios where | [PCECC] describes some of the scenarios where the PCECC technique | |||
the PCECC technique could be useful. Section 4 of [RFC8283] also | could be useful. Section 4 of [RFC8283] also describes the | |||
describe the implications on the protocol when used as an SDN SBI. | implications on the protocol when used as an SDN SBI. The operator | |||
The operator needs to evaluate the advantages offered by PCECC | needs to evaluate the advantages offered by the PCECC against the | |||
against the operational and scalability needs of the PCECC. | operational and scalability needs of the PCECC. | |||
As per Section 3.1.2. of [RFC8283], the PCE-based controller will | As per Section 3.1.2 of [RFC8283], the PCE-based controller will take | |||
take responsibility for managing some part of the MPLS label space | responsibility for managing some part of the MPLS label space for | |||
for each of the routers that it controls, and may take wider | each of the routers that it controls and may take wider | |||
responsibility for partitioning the label space for each router and | responsibility for partitioning the label space for each router and | |||
allocating different parts for different uses. The PCC MUST NOT make | allocating different parts for different uses. The PCC MUST NOT make | |||
allocations from the label space set aside for the PCE to avoid | allocations from the label space set aside for the PCE to avoid | |||
overlap and collisions of label allocations. It is RECOMMENDED that | overlap and collisions of label allocations. It is RECOMMENDED that | |||
PCE makes allocations (from the label space set aside for the PCE) | the PCE makes allocations (from the label space set aside for the | |||
for all nodes along the path. For the purpose of this document, it | PCE) for all nodes along the path. For the purpose of this document, | |||
is assumed that the exclusive label range to be used by a PCE is | it is assumed that the exclusive label range to be used by a PCE is | |||
known and set on both PCEP peers. A future extension could add the | known and set on both PCEP peers. A future extension could add the | |||
capability to advertise this range via a possible PCEP extension as | capability to advertise this range via a possible PCEP extension as | |||
well (see [I-D.li-pce-controlled-id-space]). The rest of the | well (see [PCE-ID]). The rest of the processing is similar to the | |||
processing is similar to the existing stateful PCE mechanism. | existing stateful PCE mechanism. | |||
This document also allows a case where the label space is maintained | This document also allows a case where the label space is maintained | |||
by the PCC and the labels are allocated by it. In this case, the PCE | by the PCC and the labels are allocated by it. In this case, the PCE | |||
should request the allocation from PCC as described in Section 5.5.8. | should request the allocation from the PCC, as described in | |||
Section 5.5.8. | ||||
4. PCEP Requirements | 4. PCEP Requirements | |||
The following key requirements should be considered when designing | The following key requirements should be considered when designing | |||
the PCECC-based solution: | the PCECC-based solution: | |||
1. A PCEP speaker supporting this document needs to have the | 1. A PCEP speaker supporting this document needs to have the | |||
capability to advertise its PCECC capability to its peers. | capability to advertise its PCECC capability to its peers. | |||
2. A PCEP speaker need means to identify PCECC-based LSP in the PCEP | 2. A PCEP speaker needs means to identify PCECC-based LSPs in the | |||
messages. | PCEP messages. | |||
3. PCEP procedures need to allow for PCC-based label allocations. | 3. PCEP procedures need to allow for PCC-based label allocations. | |||
4. PCEP procedures need to provide a means to update (or clean up) | 4. PCEP procedures need to provide a means to update (or clean up) | |||
label entries downloaded to the PCC. | label entries downloaded to the PCC. | |||
5. PCEP procedures need to provide a means to synchronize the labels | 5. PCEP procedures need to provide a means to synchronize the labels | |||
between the PCE and the PCC via PCEP messages. | between the PCE and the PCC via PCEP messages. | |||
5. Procedures for Using the PCE as a Central Controller (PCECC) | 5. Procedures for Using the PCE as a Central Controller (PCECC) | |||
5.1. Stateful PCE Model | 5.1. Stateful PCE Model | |||
Active stateful PCE is described in [RFC8231]. PCE as a central | Active stateful PCE is described in [RFC8231]. A PCE as a Central | |||
controller (PCECC) reuses the existing active stateful PCE mechanism | Controller (PCECC) reuses the existing active stateful PCE mechanism | |||
as much as possible to control LSPs. | as much as possible to control LSPs. | |||
5.2. New LSP Functions | 5.2. New LSP Functions | |||
Several new functions are required in PCEP to support PCECC. This | Several new functions are required in PCEP to support the PCECC. | |||
document extends the existing messages to support the new functions | This document extends the existing messages to support the new | |||
required by PCECC: | functions required by the PCECC: | |||
PCInitiate: a PCEP message described in [RFC8281]. PCInitiate | PCInitiate: A PCEP message described in [RFC8281]. A PCInitiate | |||
message is used to set up PCE-Initiated LSP based on PCECC | message is used to set up a PCE-initiated LSP based on a PCECC | |||
mechanism. It is also extended for Central Controller | mechanism. It is also extended for Central Controller | |||
Instructions (CCI) (download or clean up the Label forwarding | Instructions (CCI) (download or clean up the label-forwarding | |||
instructions in the context of this document) on all nodes along | instructions in the context of this document) on all nodes along | |||
the path as described in Section 6.1. | the path, as described in Section 6.1. | |||
PCRpt: a PCEP message described in [RFC8231]. PCRpt message is used | PCRpt: A PCEP message described in [RFC8231]. A PCRpt message is | |||
to send PCECC LSP Reports. It is also extended to report the set | used to send the PCECC LSP Reports. It is also extended to report | |||
of Central Controller Instructions (CCI) (label forwarding | the set of CCI (label-forwarding instructions in the context of | |||
instructions in the context of this document) received from the | this document) received from the PCE, as described in Section 6.2. | |||
PCE as described in Section 6.2. Section 5.5.6 describes the use | Section 5.5.6 describes the use of a PCRpt message during | |||
of PCRpt message during synchronization. | synchronization. | |||
PCUpd: a PCEP message described in [RFC8231]. PCUpd message is used | PCUpd: A PCEP message described in [RFC8231]. A PCUpd message is | |||
to send PCECC LSP Updates. | used to send the PCECC LSP Updates. | |||
The new functions defined in this document are mapped onto the PCEP | The new functions defined in this document are mapped onto the PCEP | |||
messages as shown in Table 1. | messages, as shown in Table 1. | |||
Function Message | +================================+============+ | |||
PCECC Capability advertisement Open | | Function | Message | | |||
Label entry Add PCInitiate | +================================+============+ | |||
Label entry Clean up PCInitiate | | PCECC Capability advertisement | Open | | |||
PCECC Initiated LSP PCInitiate | +--------------------------------+------------+ | |||
PCECC LSP Update PCUpd | | Label entry Add | PCInitiate | | |||
PCECC LSP State Report PCRpt | +--------------------------------+------------+ | |||
PCECC LSP Delegation PCRpt | | Label entry Clean up | PCInitiate | | |||
PCECC Label Report PCRpt | +--------------------------------+------------+ | |||
| PCECC-Initiated LSP | PCInitiate | | ||||
+--------------------------------+------------+ | ||||
| PCECC LSP Update | PCUpd | | ||||
+--------------------------------+------------+ | ||||
| PCECC LSP State Report | PCRpt | | ||||
+--------------------------------+------------+ | ||||
| PCECC LSP Delegation | PCRpt | | ||||
+--------------------------------+------------+ | ||||
| PCECC Label Report | PCRpt | | ||||
+--------------------------------+------------+ | ||||
Table 1: Functions mapped to the PCEP messages | Table 1: Functions Mapped to the PCEP Messages | |||
5.3. New PCEP Object | 5.3. New PCEP Object | |||
This document defines a new PCEP object called CCI (Section 7.3) to | This document defines a new PCEP object called CCI (Section 7.3) to | |||
specify the central controller instructions. In the scope of this | specify the Central Controller Instructions. In the scope of this | |||
document, this is limited to Label forwarding instructions. Future | document, this is limited to label-forwarding instructions. Future | |||
documents can create new CCI object-types for other types of central | documents can create new CCI object-types for other types of Central | |||
controller instructions. The CC-ID is the unique identifier for the | Controller Instructions. The CC-ID is the unique identifier for the | |||
central controller instructions in PCEP. The PCEP messages are | CCI in PCEP. The PCEP messages are extended in this document to | |||
extended in this document to handle the PCECC operations. | handle the PCECC operations. | |||
5.4. PCECC Capability Advertisement | 5.4. PCECC Capability Advertisement | |||
During the PCEP Initialization Phase, PCEP Speakers (PCE or PCC) | During the PCEP initialization phase, PCEP speakers (PCE or PCC) | |||
advertise their support of and willingness to use PCEP extensions for | advertise their support of and willingness to use PCEP extensions for | |||
PCECC using these elements in the OPEN message: | the PCECC using these elements in the OPEN message: | |||
o A new Path Setup Type (PST) (Section 7.2) in the PATH-SETUP-TYPE- | * a new Path Setup Type (PST) (Section 7.2) in the PATH-SETUP-TYPE- | |||
CAPABILITY TLV to indicate support for PCEP extensions for PCECC - | CAPABILITY TLV to indicate support for PCEP extensions for the | |||
TBD1 (Path is set up via PCECC mode) | PCECC - 2 (Traffic engineering path is set up using PCECC mode) | |||
o A new PCECC-CAPABILITY sub-TLV (Section 7.1.1) with the L bit set | * a new PCECC-CAPABILITY sub-TLV (Section 7.1.1) with the L bit set | |||
to 1 inside the PATH-SETUP-TYPE-CAPABILITY TLV to indicate a | to '1' inside the PATH-SETUP-TYPE-CAPABILITY TLV to indicate a | |||
willingness to use PCEP extensions for PCECC based central | willingness to use PCEP extensions for the PCECC-based Central | |||
controller instructions for label download | Controller Instructions for label download | |||
o The STATEFUL-PCE-CAPABILITY TLV ([RFC8231]) (with the I flag set | * the STATEFUL-PCE-CAPABILITY TLV [RFC8231] (with the I flag set | |||
[RFC8281]) | [RFC8281]) | |||
The new Path Setup Type is to be listed in the PATH-SETUP-TYPE- | The new PST is to be listed in the PATH-SETUP-TYPE-CAPABILITY TLV by | |||
CAPABILITY TLV by all PCEP speakers which support the PCEP extensions | all PCEP speakers that support the PCEP extensions for the PCECC in | |||
for PCECC in this document. | this document. | |||
The new PCECC-CAPABILITY sub-TLV is included in PATH-SETUP-TYPE- | The new PCECC-CAPABILITY sub-TLV is included in the PATH-SETUP-TYPE- | |||
CAPABILITY TLV in the OPEN object to indicate a willingness to use | CAPABILITY TLV in the OPEN object to indicate a willingness to use | |||
the PCEP extensions for PCECC during the established PCEP session. | the PCEP extensions for the PCECC during the established PCEP | |||
Using the L bit in this TLV, the PCE shows the intention to function | session. Using the L bit in this TLV, the PCE shows the intention to | |||
as a PCECC server, and the PCC shows a willingness to act as a PCECC | function as a PCECC server, and the PCC shows a willingness to act as | |||
client for label download instructions (see Section 7.1.1). | a PCECC client for label download instructions (see Section 7.1.1). | |||
If the PCECC-CAPABILITY sub-TLV is advertised and the STATEFUL-PCE- | If the PCECC-CAPABILITY sub-TLV is advertised and the STATEFUL-PCE- | |||
CAPABILITY TLV is not advertised, or is advertised without the I flag | CAPABILITY TLV is not advertised, or is advertised without the I flag | |||
set, in the OPEN Object, the receiver MUST: | set, in the OPEN object, the receiver MUST: | |||
o Send a PCErr message with Error-Type=19 (Invalid Operation) and | * send a PCErr message with Error-Type=19 (Invalid Operation) and | |||
Error-value=TBD4 (stateful PCE capability was not advertised) | Error-value=17 (Stateful PCE capability was not advertised) and | |||
o Terminate the session | * terminate the session. | |||
If a PCEP speaker receives the PATH-SETUP-TYPE-CAPABILITY TLV with | If a PCEP speaker receives the PATH-SETUP-TYPE-CAPABILITY TLV with | |||
the PCECC Path Setup Type but without the PCECC-CAPABILITY sub-TLV, | the PCECC PST but without the PCECC-CAPABILITY sub-TLV, it MUST: | |||
it MUST: | ||||
o Send a PCErr message with Error-Type 10 (Reception of an invalid | * send a PCErr message with Error-Type=10 (Reception of an invalid | |||
object) and Error-Value TBD2 (Missing PCECC-CAPABILITY sub-TLV) | object) and Error-value=33 (Missing PCECC Capability sub-TLV) and | |||
o Terminate the PCEP session | * terminate the PCEP session. | |||
The PCECC-CAPABILITY sub-TLV MUST NOT be used without the | The PCECC-CAPABILITY sub-TLV MUST NOT be used without the | |||
corresponding Path Setup Type being listed in the PATH-SETUP-TYPE- | corresponding PST being listed in the PATH-SETUP-TYPE-CAPABILITY TLV. | |||
CAPABILITY TLV. If it is present without the corresponding Path | If it is present without the corresponding PST listed in the PATH- | |||
Setup Type listed in the PATH-SETUP-TYPE-CAPABILITY TLV, it MUST be | SETUP-TYPE-CAPABILITY TLV, it MUST be ignored. | |||
ignored. | ||||
If one or both speakers (PCE and PCC) have not indicated support and | If one or both speakers (PCE and PCC) have not indicated support and | |||
willingness to use the PCEP extensions for PCECC, the PCEP extensions | willingness to use the PCEP extensions for the PCECC, the PCEP | |||
for PCECC MUST NOT be used. If a PCECC operation is attempted when | extensions for the PCECC MUST NOT be used. If a PCECC operation is | |||
both speakers have not agreed in the OPEN messages, the receiver of | attempted when both speakers have not agreed in the OPEN messages, | |||
the message MUST: | the receiver of the message MUST: | |||
o Send a PCErr message with Error-Type=19 (Invalid Operation) and | * send a PCErr message with Error-Type=19 (Invalid Operation) and | |||
Error-Value=TBD3 (Attempted PCECC operations when PCECC capability | Error-value=16 (Attempted PCECC operations when PCECC capability | |||
was not advertised) | was not advertised) and | |||
o Terminate the PCEP session | * terminate the PCEP session. | |||
A legacy PCEP speaker (that does not recognize the PCECC Capability | A legacy PCEP speaker (that does not recognize the PCECC Capability | |||
sub-TLV) will ignore the sub-TLV in accordance with [RFC8408] and | sub-TLV) will ignore the sub-TLV in accordance with [RFC8408] and | |||
[RFC5440]. As per [RFC8408], the legacy PCEP speaker on receipt of | [RFC5440]. As per [RFC8408], the legacy PCEP speaker, on receipt of | |||
an unsupported PST in RP (Request Parameter) /SRP (Stateful PCE | an unsupported PST in a Request Parameter (RP) / Stateful PCE Request | |||
Request Parameters) Object will: | Parameter (SRP) object, will: | |||
o Send a PCErr message with Error-Type = 21 (Invalid traffic | * send a PCErr message with Error-Type=21 (Invalid traffic | |||
engineering path setup type) and Error-value = 1 (Unsupported path | engineering path setup type) and Error-value=1 (Unsupported path | |||
setup type) | setup type) and | |||
o Terminate the PCEP session | * terminate the PCEP session. | |||
5.5. LSP Operations | 5.5. LSP Operations | |||
The PCEP messages pertaining to a PCECC MUST include PATH-SETUP-TYPE | The PCEP messages pertaining to a PCECC MUST include the PATH-SETUP- | |||
TLV [RFC8408] in the SRP object [RFC8231] with PST set to TBD1 to | TYPE TLV [RFC8408] in the SRP object [RFC8231] with the PST set to | |||
clearly identify that PCECC LSP is intended. | '2' to clearly identify that the PCECC LSP is intended. | |||
5.5.1. PCE-Initiated PCECC LSP | 5.5.1. PCE-Initiated PCECC LSP | |||
The LSP Instantiation operation is defined in [RFC8281]. In order to | The LSP instantiation operation is defined in [RFC8281]. In order to | |||
set up a PCE-Initiated LSP based on the PCECC mechanism, a PCE sends | set up a PCE-initiated LSP based on the PCECC mechanism, a PCE sends | |||
PCInitiate message with PST set to TBD1 for PCECC (see Section 7.2) | a PCInitiate message with the PST set to '2' for the PCECC (see | |||
to the ingress PCC. | Section 7.2) to the ingress PCC. | |||
The label forwarding instructions (see Section 5.5.3) from PCECC are | ||||
sent after the initial PCInitiate and PCRpt message exchange with the | ||||
ingress PCC as per [RFC8281] (see Figure 1). This is done so that | ||||
the PLSP-ID and other LSP identifiers can be obtained from the | ||||
ingress and can be included in the label forwarding instruction in | ||||
the next set of PCInitiate messages along the path as described | ||||
below. | ||||
An LSP-IDENTIFIERS TLV [RFC8231] MUST be included for PCECC LSPs, it | The label-forwarding instructions (see Section 5.5.3) from the PCECC | |||
uniquely identifies the LSP in the network. Note that the fields in | are sent after the initial PCInitiate and PCRpt message exchange with | |||
the LSP-IDENTIFIERS TLV are described for the RSVP-signaled LSPs but | the ingress PCC, as per [RFC8281] (see Figure 1). This is done so | |||
are applicable to the PCECC LSP as well. The LSP object is included | that the PCEP-specific identifier for the LSP (PLSP-ID) and other LSP | |||
in the central controller instructions (label download Section 7.3) | identifiers can be obtained from the ingress and can be included in | |||
to identify the PCECC LSP for this instruction. The PLSP-ID is the | the label-forwarding instruction in the next set of PCInitiate | |||
original identifier used by the ingress PCC, so a transit/egress LSR | messages along the path, as described below. | |||
could have multiple central controller instructions that have the | ||||
same PLSP-ID. The PLSP-ID in combination with the source (in LSP- | ||||
IDENTIFIERS TLV) MUST be unique. The PLSP-ID is included for | ||||
maintainability reasons to ease debugging. As per [RFC8281], the LSP | ||||
object could also include the SPEAKER-ENTITY-ID TLV to identify the | ||||
PCE that initiated these instructions. Also, the CC-ID is unique in | ||||
each PCEP session as described in Section 7.3. | ||||
On receipt of PCInitiate message for the PCECC LSP, the PCC responds | An LSP-IDENTIFIERS TLV [RFC8231] MUST be included for the PCECC LSPs; | |||
with a PCRpt message with the status set to "GOING-UP" and carrying | it uniquely identifies the LSP in the network. Note that the fields | |||
the assigned PLSP-ID (see Figure 1). The ingress PCC also sets the D | in the LSP-IDENTIFIERS TLV are described for the RSVP-signaled LSPs | |||
(Delegate) flag (see [RFC8231]) and C (Create) flag (see [RFC8281]) | but are applicable to the PCECC LSP as well. The LSP object is | |||
in the LSP object. When the PCE receives this PCRpt message with the | included in the CCI (label download Section 7.3) to identify the | |||
PLSP-ID, it assigns labels along the path; and sets up the path by | PCECC LSP for this instruction. The PLSP-ID is the original | |||
sending a PCInitiate message to each node along the path of the LSP | identifier used by the ingress PCC, so a transit/egress Label | |||
as per the PCECC technique. The CC-ID uniquely identifies the | Switching Router (LSR) could have multiple Central Controller | |||
central controller instruction within a PCEP session. Each node | Instructions that have the same PLSP-ID. The PLSP-ID in combination | |||
along the path (PCC) responds with a PCRpt message to acknowledge the | with the source (in the LSP-IDENTIFIERS TLV) MUST be unique. The | |||
central controller instruction with the PCRpt messages including the | PLSP-ID is included for maintainability reasons to ease debugging. | |||
central controller instruction (CCI) and the LSP objects. | As per [RFC8281], the LSP object could also include the SPEAKER- | |||
ENTITY-ID TLV to identify the PCE that initiated these instructions. | ||||
Also, the CC-ID is unique in each PCEP session, as described in | ||||
Section 7.3. | ||||
The ingress node would receive one CCI object with O bit (out-label) | On receipt of a PCInitiate message for the PCECC LSP, the PCC | |||
set. The transit node(s) would receive two CCI objects with the in- | responds with a PCRpt message with the status set to 'Going-up' and | |||
label CCI without an O bit set and the out-label CCI with O bit set. | carrying the assigned PLSP-ID (see Figure 1). The ingress PCC also | |||
The egress node would receive one CCI object without O bit set (see | sets the D (Delegate) flag (see [RFC8231]) and C (Create) flag (see | |||
Figure 1). A node can determine its role based on the setting of the | [RFC8281]) in the LSP object. When the PCE receives this PCRpt | |||
O bit in the CCI object(s) and the LSP-IDENTIFIERS TLV in the LSP | message with the PLSP-ID, it assigns labels along the path and sets | |||
object. | up the path by sending a PCInitiate message to each node along the | |||
path of the LSP, as per the PCECC technique. The CC-ID uniquely | ||||
identifies the Central Controller Instructions within a PCEP session. | ||||
Each node along the path (PCC) responds with a PCRpt message to | ||||
acknowledge the CCI with the PCRpt messages including the CCI and LSP | ||||
objects. | ||||
The LSP deletion operation for PCE-Initiated PCECC LSP is the same as | The ingress node would receive one CCI object with the O bit (out- | |||
defined in [RFC8281]. The PCE should further perform Label entry | label) set. The transit node(s) would receive two CCI objects with | |||
clean up operation as described in Section 5.5.3.2 for the | the in-label CCI without the O bit set and the out-label CCI with the | |||
corresponding LSP. | O bit set. The egress node would receive one CCI object without the | |||
O bit set (see Figure 1). A node can determine its role based on the | ||||
setting of the O bit in the CCI object(s) and the LSP-IDENTIFIERS TLV | ||||
in the LSP object. | ||||
The PCE-Initiated PCECC LSP setup sequence is shown in Figure 1. | The LSP deletion operation for the PCE-initiated PCECC LSP is the | |||
same as defined in [RFC8281]. The PCE should further perform the | ||||
label entry cleanup operation, as described in Section 5.5.3.2, for | ||||
the corresponding LSP. | ||||
+-------+ +-------+ | +-------+ +-------+ | |||
|PCC | | PCE | | |PCC | | PCE | | |||
|ingress| +-------+ | |ingress| +-------+ | |||
+------| | | | +------| | | | |||
| PCC +-------+ | | | PCC +-------+ | | |||
| transit| | | | | transit| | | | |||
+------| | |<--PCInitiate,PLSP-ID=0,PST=TBD1------| PCECC LSP | +------| | |<--PCInitiate,PLSP-ID=0,PST=2---------| PCECC LSP | |||
|PCC +--------+ | | Initiate | |PCC +--------+ | | Initiate | |||
|egress | | |----PCRpt,PLSP-ID=2,D=1,C=1---------->| PCECC LSP | |egress | | |----PCRpt,PLSP-ID=2,D=1,C=1---------->| PCECC LSP | |||
+--------+ | | (GOING-UP) | | +--------+ | | (GOING-UP) | | |||
| | | | | | | | | | |||
|<-------PCInitiate,CC-ID=X,PLSP-ID=2----------------| Label | |<-------PCInitiate,CC-ID=X,PLSP-ID=2----------------| Label | |||
| | | | download | | | | | download | |||
|--------PCRpt,CC-ID=X,PLSP-ID=2-------------------->| CCI | |--------PCRpt,CC-ID=X,PLSP-ID=2-------------------->| CCI | |||
| | | | | | | | | | |||
| |<------PCInitiate,CC-ID=Y1,Y2,PLSP-ID=2-----| Label | | |<------PCInitiate,CC-ID=Y1,Y2,PLSP-ID=2-----| Label | |||
| | | | download | | | | | download | |||
| |-------PCRpt,CC-ID=Y1,Y2,PLSP-ID=2--------->| CCI | | |-------PCRpt,CC-ID=Y1,Y2,PLSP-ID=2--------->| CCI | |||
| | | | | | | | | | |||
| | |<----PCInitiate,CC-ID=Z,PLSP-ID=2-----| Label | | | |<----PCInitiate,CC-ID=Z,PLSP-ID=2-----| Label | |||
| | | | download | | | | | download | |||
| | |-----PCRpt,CC-ID=Z,PLSP-ID=2--------->| CCI | | | |-----PCRpt,CC-ID=Z,PLSP-ID=2--------->| CCI | |||
| | | | | | | | | | |||
| | |<---PCUpd,PLSP-ID=2,PST=TBD1,D=1------| PCECC LSP | | | |<---PCUpd,PLSP-ID=2,PST=2,D=1---------| PCECC LSP | |||
| | | (UP) | Update | | | | (UP) | Update | |||
| | |----PCRpt,PLSP-ID=2,D=1,C=1---------->| | | | |----PCRpt,PLSP-ID=2,D=1,C=1---------->| | |||
| | | (UP) | | | | | (UP) | | |||
Figure 1: PCE-Initiated PCECC LSP | Figure 1: PCE-Initiated PCECC LSP | |||
Once the label operations are completed, the PCE MUST send a PCUpd | Once the label operations are completed, the PCE MUST send a PCUpd | |||
message to the ingress PCC. The PCUpd message is as per [RFC8231] | message to the ingress PCC. As per [RFC8231], the PCUpd message is | |||
with D flag set. | with the D flag set. | |||
The PCECC LSPs are considered to be 'up' by default (on receipt of | The PCECC LSPs are considered to be 'up' by default (on receipt of a | |||
PCUpd message from PCE). The ingress could further choose to deploy | PCUpd message from the PCE). The ingress could further choose to | |||
a data plane check mechanism and report the status back to the PCE | deploy a data-plane check mechanism and report the status back to the | |||
via a PCRpt message to make sure that the correct label instructions | PCE via a PCRpt message to make sure that the correct label | |||
are made along the path of the PCECC LSP (and it is ready to carry | instructions are made along the path of the PCECC LSP (and it is | |||
traffic). The exact mechanism is out of scope of this document. | ready to carry traffic). The exact mechanism is out of scope of this | |||
document. | ||||
In the case where the label allocations are made by the PCC itself | In the case where the label allocations are made by the PCC itself | |||
(see Section 5.5.8), the PCE could request an allocation to be made | (see Section 5.5.8), the PCE could request an allocation to be made | |||
by the PCC, and then the PCC would send a PCRpt with the allocated | by the PCC; then, the PCC would send a PCRpt message with the | |||
label encoded in the CC-ID object as shown in Figure 2 in the | allocated label encoded in the CC-ID object (as shown in Figure 2) in | |||
configuration sequence from the egress towards the ingress along the | the configuration sequence from the egress towards the ingress along | |||
path. | the path. | |||
+-------+ +-------+ | +-------+ +-------+ | |||
|PCC | | PCE | | |PCC | | PCE | | |||
|ingress| +-------+ | |ingress| +-------+ | |||
+------| | | | +------| | | | |||
| PCC +-------+ | | | PCC +-------+ | | |||
| transit| | | | | transit| | | | |||
+------| | |<--PCInitiate,PLSP-ID=0,PST=TBD1,-----| PCECC LSP | +------| | |<--PCInitiate,PLSP-ID=0,PST=2,--------| PCECC LSP | |||
|PCC +--------+ | | Initiate | |PCC +--------+ | | Initiate | |||
|egress | | |----PCRpt,PLSP-ID=2,D=1,C=1---------->| PCECC LSP | |egress | | |----PCRpt,PLSP-ID=2,D=1,C=1---------->| PCECC LSP | |||
+--------+ | | (GOING-UP) | | +--------+ | | (GOING-UP) | | |||
| | | | | | | | | | |||
|<-------PCInitiate,CC-ID=X,PLSP-ID=2----------------| Label | |<-------PCInitiate,CC-ID=X,PLSP-ID=2----------------| Label | |||
| | | C=1,O=0 | download | | | | C=1,O=0 | download | |||
|--------PCRpt,CC-ID=X,PLSP-ID=2-------------------->| CCI | |--------PCRpt,CC-ID=X,PLSP-ID=2-------------------->| CCI | |||
| | | Label=L1 | | | | | Label=L1 | | |||
| |<------PCInitiate,PLSP-ID=2,----------------| Labels | | |<------PCInitiate,PLSP-ID=2,----------------| Labels | |||
| | | CC-ID=Y1,C=1,O=0 | download | | | | CC-ID=Y1,C=1,O=0 | download | |||
| | | CC-ID=Y2,C=0,O=1,L1 | CCI | | | | CC-ID=Y2,C=0,O=1,L1 | CCI | |||
| |-------PCRpt,PLSP-ID=2--------------------->| | | |-------PCRpt,PLSP-ID=2--------------------->| | |||
| | | CC-ID=Y1,O=0,Label=L2 | | | | | CC-ID=Y1,O=0,Label=L2 | | |||
| | | CC-ID=Y2,O=1 | | | | | CC-ID=Y2,O=1 | | |||
| | |<----PCInitiate,CC-ID=Z,PLSP-ID=2-----| Label | | | |<----PCInitiate,CC-ID=Z,PLSP-ID=2-----| Label | |||
| | | C=0,O=1,L2 | download | | | | C=0,O=1,L2 | download | |||
| | |-----PCRpt,CC-ID=Z,PLSP-ID=2--------->| CCI | | | |-----PCRpt,CC-ID=Z,PLSP-ID=2--------->| CCI | |||
| | | | | | | | | | |||
| | |<---PCUpd,PLSP-ID=2,PST=TBD1,D=1------| PCECC LSP | | | |<---PCUpd,PLSP-ID=2,PST=2,D=1---------| PCECC LSP | |||
| | | (UP) | Update | | | | (UP) | Update | |||
Figure 2: PCE-Initiated PCECC LSP (PCC allocation) | Figure 2: PCE-Initiated PCECC LSP (PCC Allocation) | |||
It should be noted that in this example, the request is made to the | In this example, it should be noted that the request is made to the | |||
egress node with the C bit set in the CCI object to indicate that the | egress node with the C bit set in the CCI object to indicate that the | |||
label allocation needs to be done by the egress and the egress | label allocation needs to be done by the egress, and the egress | |||
responds with the allocated label to the PCE. The PCE further inform | responds with the allocated label to the PCE. The PCE further | |||
the transit PCC without setting the C bit to 1 in the CCI object for | informs the transit PCC without setting the C bit to '1' in the CCI | |||
out-label but the C bit is set to 1 for in-label so the transit node | object for the out-label, but the C bit is set to '1' for the in- | |||
make the label allocation (for the in-label) and report to the PCE. | label, so the transit node makes the label allocation (for the in- | |||
Similarly, the C bit is unset towards the ingress to complete all the | label) and reports to the PCE. Similarly, the C bit is unset towards | |||
label allocation for the PCECC LSP. | the ingress to complete all the label allocations for the PCECC LSP. | |||
5.5.2. PCC-Initiated PCECC LSP | 5.5.2. PCC-Initiated PCECC LSP | |||
In order to set up an LSP based on the PCECC mechanism where the LSP | In order to set up an LSP based on the PCECC mechanism where the LSP | |||
is configured at the PCC, a PCC MUST delegate the LSP by sending a | is configured at the PCC, a PCC MUST delegate the LSP by sending a | |||
PCRpt message with PST set for PCECC (see Section 7.2) and D | PCRpt message with the PST set for the PCECC (see Section 7.2) and D | |||
(Delegate) flag (see [RFC8231]) set in the LSP object (see Figure 3). | (Delegate) flag (see [RFC8231]) set in the LSP object (see Figure 3). | |||
When a PCE receives the initial PCRpt message with D flag and PST | When a PCE receives the initial PCRpt message with the D flag and PST | |||
Type set to TBD1, it SHOULD calculate the path and assigns labels | set to '2', it SHOULD calculate the path and assign labels along the | |||
along the path; and sets up the path by sending a PCInitiate message | path in addition to setting up the path by sending a PCInitiate | |||
to each node along the path of the LSP as per the PCECC technique | message to each node along the path of the LSP, as per the PCECC | |||
(see Figure 3). The CC-ID uniquely identifies the central controller | technique (see Figure 3). The CC-ID uniquely identifies the CCI | |||
instruction within a PCEP session. Each PCC further responds with | within a PCEP session. Each PCC further responds with the PCRpt | |||
the PCRpt messages including the central controller instruction (CCI) | messages, including the CCI and LSP objects. | |||
and the LSP objects. | ||||
Once the central controller instructions (label operations) are | Once the CCI (label operations) are completed, the PCE MUST send the | |||
completed, the PCE MUST send the PCUpd message to the ingress PCC. | PCUpd message to the ingress PCC. As per [RFC8231], this PCUpd | |||
As per [RFC8231], this PCUpd message should include the path | message should include the path information calculated by the PCE. | |||
information calculated by the PCE. | ||||
Note that the PCECC LSPs MUST be delegated to a PCE at all times. | Note that the PCECC LSPs MUST be delegated to a PCE at all times. | |||
The LSP deletion operation for PCECC LSPs is the same as defined in | The LSP deletion operation for the PCECC LSPs is the same as defined | |||
[RFC8231]. If the PCE receives a PCRpt message for LSP deletion then | in [RFC8231]. If the PCE receives a PCRpt message for LSP deletion, | |||
it does label clean up operation as described in Section 5.5.3.2 for | then it does label the cleanup operation, as described in | |||
the corresponding LSP. | Section 5.5.3.2, for the corresponding LSP. | |||
The Basic PCECC LSP setup sequence is as shown in Figure 3. | The basic PCECC LSP setup sequence is as shown in Figure 3. | |||
+-------+ +-------+ | +-------+ +-------+ | |||
|PCC | | PCE | | |PCC | | PCE | | |||
|ingress| +-------+ | |ingress| +-------+ | |||
+------| | | | +------| | | | |||
| PCC +-------+ | | | PCC +-------+ | | |||
| transit| | | | | transit| | | | |||
+------| | |---PCRpt,PLSP-ID=1,PST=TBD1,D=1----->| PCECC LSP | +------| | |---PCRpt,PLSP-ID=1,PST=2,D=1-------->| PCECC LSP | |||
|PCC +--------+ | | | |PCC +--------+ | | | |||
|egress | | | | | |egress | | | | | |||
+--------+ | | | | +--------+ | | | | |||
| | | | | | | | | | |||
|<-------PCInitiate,CC-ID=X,PLSP-ID=1---------------| Label | |<-------PCInitiate,CC-ID=X,PLSP-ID=1---------------| Label | |||
| | | L1,O=0 | download | | | | L1,O=0 | download | |||
|--------PCRpt,CC-ID=X,PLSP-ID=1------------------->| CCI | |--------PCRpt,CC-ID=X,PLSP-ID=1------------------->| CCI | |||
| | | | | | | | | | |||
| |<------PCInitiate,PLSP-ID=1,---------------| Labels | | |<------PCInitiate,PLSP-ID=1,---------------| Labels | |||
| | | CC-ID=Y1,O=0,L2 | download | | | | CC-ID=Y1,O=0,L2 | download | |||
| | | CC-ID=Y2,O=1,L1 | CCI | | | | CC-ID=Y2,O=1,L1 | CCI | |||
| |-------PCRpt,CC-ID=Y1,Y2,PLSP-ID=1-------->| | | |-------PCRpt,CC-ID=Y1,Y2,PLSP-ID=1-------->| | |||
| | | | | | | | | | |||
| | |<----PCInitiate,CC-ID=Z,PLSP-ID=1----| Label | | | |<----PCInitiate,CC-ID=Z,PLSP-ID=1----| Label | |||
| | | L2,O=1 | download | | | | L2,O=1 | download | |||
| | |-----PCRpt,CC-ID=Z,PLSP-ID=1-------->| CCI | | | |-----PCRpt,CC-ID=Z,PLSP-ID=1-------->| CCI | |||
| | | | | | | | | | |||
| | |<---PCUpd,PLSP-ID=1,PST=TBD1,D=1-----| PCECC LSP | | | |<---PCUpd,PLSP-ID=1,PST=2,D=1--------| PCECC LSP | |||
| | | | Update | | | | | Update | |||
| | | | | | | | | | |||
Figure 3: PCC-Initiated PCECC LSP | Figure 3: PCC-Initiated PCECC LSP | |||
In the case where the label allocations are made by the PCC itself | In the case where the label allocations are made by the PCC itself | |||
(see Section 5.5.8), the PCE could request an allocation to be made | (see Section 5.5.8), the PCE could request an allocation to be made | |||
by the PCC, and then the PCC would send a PCRpt with the allocated | by the PCC; then, the PCC would send a PCRpt message with the | |||
label encoded in the CC-ID object as shown in Figure 4. | allocated label encoded in the CC-ID object, as shown in Figure 4. | |||
+-------+ +-------+ | +-------+ +-------+ | |||
|PCC | | PCE | | |PCC | | PCE | | |||
|ingress| +-------+ | |ingress| +-------+ | |||
+------| | | | +------| | | | |||
| PCC +-------+ | | | PCC +-------+ | | |||
| transit| | | | | transit| | | | |||
+------| | |---PCRpt,PLSP-ID=1,PST=TBD1,D=1----->| PCECC LSP | +------| | |---PCRpt,PLSP-ID=1,PST=2,D=1-------->| PCECC LSP | |||
|PCC +--------+ | | | |PCC +--------+ | | | |||
|egress | | | | | |egress | | | | | |||
+--------+ | | | | +--------+ | | | | |||
| | | | | | | | | | |||
|<-------PCInitiate,CC-ID=X,PLSP-ID=1---------------| Label | |<-------PCInitiate,CC-ID=X,PLSP-ID=1---------------| Label | |||
| | | C=1 | download | | | | C=1 | download | |||
|--------PCRpt,CC-ID=X,PLSP-ID=1------------------->| CCI | |--------PCRpt,CC-ID=X,PLSP-ID=1------------------->| CCI | |||
| | | Label=L1 | | | | | Label=L1 | | |||
| |<------PCInitiate,PLSP-ID=1,---------------| Labels | | |<------PCInitiate,PLSP-ID=1,---------------| Labels | |||
| | | CC-ID=Y1,C=1 | download | | | | CC-ID=Y1,C=1 | download | |||
| | | CC-ID=Y2,C=0,L1 | CCI | | | | CC-ID=Y2,C=0,L1 | CCI | |||
| |-------PCRpt,PLSP-ID=1-------------------->| | | |-------PCRpt,PLSP-ID=1-------------------->| | |||
| | | CC-ID=Y1,Label=L2 | | | | | CC-ID=Y1,Label=L2 | | |||
| | | CC-ID=Y2 | | | | | CC-ID=Y2 | | |||
| | |<----PCInitiate,CC-ID=Z,PLSP-ID=1----| Label | | | |<----PCInitiate,CC-ID=Z,PLSP-ID=1----| Label | |||
| | | C=0,L2 | download | | | | C=0,L2 | download | |||
| | |-----PCRpt,CC-ID=Z,PLSP-ID=1-------->| CCI | | | |-----PCRpt,CC-ID=Z,PLSP-ID=1-------->| CCI | |||
| | | | | | | | | | |||
| | |<---PCUpd,PLSP-ID=1,PST=TBD1,D=1-----| PCECC LSP | | | |<---PCUpd,PLSP-ID=1,PST=2,D=1--------| PCECC LSP | |||
| | | | Update | | | | | Update | |||
| | | | | | | | | | |||
- The O bit is set as before (and thus not included) | Figure 4: PCC-Initiated PCECC LSP (PCC Allocation) | |||
Figure 4: PCC-Initiated PCECC LSP (PCC allocation) | | Note: | |||
| | ||||
| The O bit is set as before (and thus not included). | ||||
In the case where the label allocations are made by the PCC itself | In the case where the label allocations are made by the PCC itself | |||
(see Section 5.5.8), the procedure remains the same, with just an | (see Section 5.5.8), the procedure remains the same, with just an | |||
additional constraint on the configuration sequence. | additional constraint on the configuration sequence. | |||
The rest of the PCC-Initiated PCECC LSP setup operations are the same | The rest of the PCC-initiated PCECC LSP setup operations are the same | |||
as those described in Section 5.5.1. | as those described in Section 5.5.1. | |||
5.5.3. Central Controller Instructions | 5.5.3. Central Controller Instructions | |||
The new central controller instructions (CCI) for the label | The new CCI for the label operations in PCEP are done via the | |||
operations in PCEP are done via the PCInitiate message (Section 6.1), | PCInitiate message (Section 6.1) by defining a new PCEP object for | |||
by defining a new PCEP Object for CCI operations. The local label | CCI operations. The local label range of each PCC is assumed to be | |||
range of each PCC is assumed to be known by both the PCC and the PCE. | known by both the PCC and the PCE. | |||
5.5.3.1. Label Download CCI | 5.5.3.1. Label Download CCI | |||
In order to set up an LSP based on PCECC, the PCE sends a PCInitiate | In order to set up an LSP based on the PCECC, the PCE sends a | |||
message to each node along the path to download the Label instruction | PCInitiate message to each node along the path to download the label | |||
as described in Section 5.5.1 and Section 5.5.2. | instructions, as described in Sections 5.5.1 and 5.5.2. | |||
The CCI object MUST be included, along with the LSP object in the | The CCI object MUST be included, along with the LSP object in the | |||
PCInitiate message. The LSP-IDENTIFIERS TLV MUST be included in the | PCInitiate message. The LSP-IDENTIFIERS TLV MUST be included in the | |||
LSP object. The SPEAKER-ENTITY-ID TLV SHOULD be included in the LSP | LSP object. The SPEAKER-ENTITY-ID TLV SHOULD be included in the LSP | |||
object. | object. | |||
If a node (PCC) receives a PCInitiate message which includes a Label | If a node (PCC) receives a PCInitiate message that includes a label | |||
to download, as part of CCI, that is out of the range set aside for | to download (as part of CCI) that is out of the range set aside for | |||
the PCE, it MUST send a PCErr message with Error-type=TBD5 (PCECC | the PCE, it MUST send a PCErr message with Error-Type=31 (PCECC | |||
failure) and Error-value=TBD6 (Label out of range) and MUST include | failure) and Error-value=1 (Label out of range) and MUST include the | |||
the SRP object to specify the error is for the corresponding label | SRP object to specify the error is for the corresponding label update | |||
update via PCInitiate message. If a PCC receives a PCInitiate | via a PCInitiate message. If a PCC receives a PCInitiate message but | |||
message but fails to download the Label entry, it MUST send a PCErr | fails to download the label entry, it MUST send a PCErr message with | |||
message with Error-type=TBD5 (PCECC failure) and Error-value=TBD7 | Error-Type=31 (PCECC failure) and Error-value=2 (Instruction failed) | |||
(instruction failed) and MUST include the SRP object to specify the | and MUST include the SRP object to specify the error is for the | |||
error is for the corresponding label update via PCInitiate message. | corresponding label update via a PCInitiate message. | |||
A new PCEP object for central controller instructions (CCI) is | A new PCEP object for CCI is defined in Section 7.3. | |||
defined in Section 7.3. | ||||
5.5.3.2. Label Clean up CCI | 5.5.3.2. Label Cleanup CCI | |||
In order to delete an LSP based on PCECC, the PCE sends a central | In order to delete an LSP based on the PCECC, the PCE sends Central | |||
controller instructions via a PCInitiate message to each node along | Controller Instructions via a PCInitiate message to each node along | |||
the path of the LSP to clean up the Label forwarding instruction. | the path of the LSP to clean up the label-forwarding instruction. | |||
If the PCC receives a PCInitiate message but does not recognize the | If the PCC receives a PCInitiate message but does not recognize the | |||
label in the CCI, the PCC MUST generate a PCErr message with Error- | label in the CCI, the PCC MUST generate a PCErr message with Error- | |||
Type 19(Invalid operation) and Error-Value=TBD8, "Unknown Label" and | Type=19 (Invalid operation) and Error-value=18 (Unknown Label) and | |||
MUST include the SRP object to specify the error is for the | MUST include the SRP object to specify the error is for the | |||
corresponding label clean up (via PCInitiate message). | corresponding label cleanup (via a PCInitiate message). | |||
The R flag in the SRP object defined in [RFC8281] specifies the | The R flag in the SRP object defined in [RFC8281] specifies the | |||
deletion of Label Entry in the PCInitiate message. | deletion of the label entry in the PCInitiate message. | |||
+-------+ +-------+ | +-------+ +-------+ | |||
|PCC | | PCE | | |PCC | | PCE | | |||
|ingress| +-------+ | |ingress| +-------+ | |||
+------| | | | +------| | | | |||
| PCC +-------+ | | | PCC +-------+ | | |||
| transit| | | | | transit| | | | |||
+------| | | | | +------| | | | | |||
|PCC +--------+ | | | |PCC +--------+ | | | |||
|egress | | | | | |egress | | | | | |||
+--------+ | | | | +--------+ | | | | |||
| | | | | | | | | | |||
|<-------PCInitiate,CC-ID=X,PLSP-ID=2----------------| Label | |<-------PCInitiate,CC-ID=X,PLSP-ID=2----------------| Label | |||
| | | R=1 | clean up | | | | R=1 | cleanup | |||
|--------PCRpt,CC-ID=X,PLSP-ID=2-------------------->| CCI | |--------PCRpt,CC-ID=X,PLSP-ID=2-------------------->| CCI | |||
| | | R=1 | | | | | R=1 | | |||
| |<------PCInitiate,CC-ID=Y1,Y2,PLSP-ID=2-----| Label | | |<------PCInitiate,CC-ID=Y1,Y2,PLSP-ID=2-----| Label | |||
| | | R=1 | clean up | | | | R=1 | cleanup | |||
| |-------PCRpt,CC-ID=Y1,Y2,PLSP-ID=2--------->| CCI | | |-------PCRpt,CC-ID=Y1,Y2,PLSP-ID=2--------->| CCI | |||
| | | R=1 | | | | | R=1 | | |||
| | |<----PCInitiate,CC-ID=Z,PLSP-ID=2-----| Label | | | |<----PCInitiate,CC-ID=Z,PLSP-ID=2-----| Label | |||
| | | R=1 | clean up | | | | R=1 | cleanup | |||
| | |-----PCRpt,CC-ID=Z,PLSP-ID=2--------->| CCI | | | |-----PCRpt,CC-ID=Z,PLSP-ID=2--------->| CCI | |||
| | | R=1 | | | | | R=1 | | |||
| | |<--PCInitiate,PLSP-ID=2,PST=TBD1,R=1--| PCECC LSP | | | |<--PCInitiate,PLSP-ID=2,PST=2,R=1-----| PCECC LSP | |||
| | | | remove | | | | | remove | |||
Figure 5: Label Cleanup | Figure 5: Label Cleanup | |||
As per [RFC8281], following the removal of the Label forwarding | As per [RFC8281], following the removal of the label-forwarding | |||
instruction, the PCC MUST send a PCRpt message. The SRP object in | instruction, the PCC MUST send a PCRpt message. The SRP object in | |||
the PCRpt MUST include the SRP-ID-number from the PCInitiate message | the PCRpt message MUST include the SRP-ID-number from the PCInitiate | |||
that triggered the removal. The R flag in the SRP object MUST be | message that triggered the removal. The R flag in the SRP object | |||
set. | MUST be set. | |||
In the case where the label allocation is made by the PCC itself (see | In the case where the label allocation is made by the PCC itself (see | |||
Section 5.5.8), the removal procedure remains the same, adding the | Section 5.5.8), the removal procedure remains the same, adding the | |||
sequence constraint. | sequence constraint. | |||
5.5.4. PCECC LSP Update | 5.5.4. PCECC LSP Update | |||
The update is done as per the make-before-break procedures, i.e. the | The update is done as per the make-before-break procedures, i.e., the | |||
PCECC first updates new label instructions based on the updated path | PCECC first updates new label instructions based on the updated path | |||
and then informs the ingress to switch traffic, before cleaning up | and then informs the ingress to switch traffic before cleaning up the | |||
the former instructions. New CC-IDs are used to identify the updated | former instructions. New CC-IDs are used to identify the updated | |||
instructions; the identifiers in the LSP object uniquely identify the | instructions; the identifiers in the LSP object uniquely identify the | |||
existing LSP. Once new instructions are downloaded, the PCE further | existing LSP. Once new instructions are downloaded, the PCE further | |||
updates the new path at the ingress which triggers the traffic switch | updates the new path at the ingress, which triggers the traffic | |||
on the updated path. The ingress PCC acknowledges with a PCRpt | switch on the updated path. The ingress PCC acknowledges with a | |||
message, on receipt of the PCRpt message, the PCE does clean up | PCRpt message, on receipt of the PCRpt message, the PCE does the | |||
operation for the former LSP as described in Section 5.5.3.2. | cleanup operation for the former LSP, as described in | |||
Section 5.5.3.2. | ||||
The PCECC LSP Update sequence is shown in Figure 6. | ||||
+-------+ +-------+ | +-------+ +-------+ | |||
|PCC | | PCE | | |PCC | | PCE | | |||
|ingress| +-------+ | |ingress| +-------+ | |||
+------| | | | +------| | | | |||
| PCC +-------+ | | | PCC +-------+ | | |||
| transit| | | | | transit| | | | |||
+------| | | | | +------| | | | | |||
|PCC +--------+ | | | |PCC +--------+ | | | |||
|egress | | | | | |egress | | | | | |||
skipping to change at page 19, line 28 ¶ | skipping to change at line 782 ¶ | |||
|--------PCRpt,CC-ID=XX,PLSP-ID=1------------------>| new CCI | |--------PCRpt,CC-ID=XX,PLSP-ID=1------------------>| new CCI | |||
| | | | | | | | | | |||
| |<------PCInitiate,CC-ID=YY1,YY2,PLSP-ID=1--| Label | | |<------PCInitiate,CC-ID=YY1,YY2,PLSP-ID=1--| Label | |||
| | | | download | | | | | download | |||
| |-------PCRpt,CC-ID=YY1,YY2,PLSP-ID=1------>| CCI | | |-------PCRpt,CC-ID=YY1,YY2,PLSP-ID=1------>| CCI | |||
| | | | | | | | | | |||
| | |<----PCInitiate,CC-ID=ZZ,PLSP-ID=1---| Label | | | |<----PCInitiate,CC-ID=ZZ,PLSP-ID=1---| Label | |||
| | | | download | | | | | download | |||
| | |-----PCRpt,CC-ID=ZZ,PLSP-ID=1------->| CCI | | | |-----PCRpt,CC-ID=ZZ,PLSP-ID=1------->| CCI | |||
| | | | | | | | | | |||
| | |<---PCUpd,PLSP-ID=1,PST=TBD1,D=1-----| PCECC | | | |<---PCUpd,PLSP-ID=1,PST=2,D=1--------| PCECC | |||
| | | SRP=S | LSP Update | | | | SRP=S | LSP Update | |||
| | | | | | | | | | |||
| | |---PCRpt,PLSP-ID=1,PST=TBD1,D=1----->| Trigger | | | |---PCRpt,PLSP-ID=1,PST=2,D=1-------->| Trigger | |||
| | | (SRP=S) | Delete | | | | (SRP=S) | Delete | |||
| | | | former CCI | | | | | former CCI | |||
| | | | | | | | | | |||
|<-------PCInitiate,CC-ID=X,PLSP-ID=1---------------| Label | |<-------PCInitiate,CC-ID=X,PLSP-ID=1---------------| Label | |||
| | | R=1 | clean up | | | | R=1 | cleanup | |||
|--------PCRpt,CC-ID=X,PLSP-ID=1------------------->| CCI | |--------PCRpt,CC-ID=X,PLSP-ID=1------------------->| CCI | |||
| | | R=1 | | | | | R=1 | | |||
| |<------PCInitiate,CC-ID=Y1,Y2,PLSP-ID=1----| Label | | |<------PCInitiate,CC-ID=Y1,Y2,PLSP-ID=1----| Label | |||
| | | R=1 | clean up | | | | R=1 | cleanup | |||
| |-------PCRpt,CC-ID=Y1,Y2,PLSP-ID=1-------->| CCI | | |-------PCRpt,CC-ID=Y1,Y2,PLSP-ID=1-------->| CCI | |||
| | | R=1 | | | | | R=1 | | |||
| | |<----PCInitiate,CC-ID=Z,PLSP-ID=1----| Label | | | |<----PCInitiate,CC-ID=Z,PLSP-ID=1----| Label | |||
| | | R=1 | clean up | | | | R=1 | cleanup | |||
| | |-----PCRpt,CC-ID=Z,PLSP-ID=1-------->| CCI | | | |-----PCRpt,CC-ID=Z,PLSP-ID=1-------->| CCI | |||
| | | R=1 | | | | | R=1 | | |||
Figure 6: PCECC LSP Update | Figure 6: PCECC LSP Update | |||
The modified PCECC LSPs are considered to be 'up' by default. The | The modified PCECC LSPs are considered to be 'up' by default. The | |||
ingress could further choose to deploy a data plane check mechanism | ingress could further choose to deploy a data-plane check mechanism | |||
and report the status back to the PCE via a PCRpt message. The exact | and report the status back to the PCE via a PCRpt message. The exact | |||
mechanism is out of scope of this document. | mechanism is out of scope of this document. | |||
In the case where the label allocations are made by the PCC itself | In the case where the label allocations are made by the PCC itself | |||
(see Section 5.5.8), the procedure remains the same. | (see Section 5.5.8), the procedure remains the same. | |||
5.5.5. Re-Delegation and Clean up | 5.5.5. Re-delegation and Cleanup | |||
As described in [RFC8281], a new PCE can gain control over an | As described in [RFC8281], a new PCE can gain control over an | |||
orphaned LSP. In the case of a PCECC LSP, the new PCE MUST also gain | orphaned LSP. In the case of a PCECC LSP, the new PCE MUST also gain | |||
control over the central controller instructions in the same way by | control over the CCI in the same way by sending a PCInitiate message | |||
sending a PCInitiate message that includes the SRP, LSP, and CCI | that includes the SRP, LSP, and CCI objects and carries the CC-ID and | |||
objects and carries the CC-ID and PLSP-ID identifying the instruction | PLSP-ID identifying the instructions that it wants to take control | |||
that it wants to take control of. | of. | |||
Further, as described in [RFC8281], the State Timeout Interval timer | Further, as described in [RFC8281], the State Timeout Interval timer | |||
ensures that a PCE crash does not result in automatic and immediate | ensures that a PCE crash does not result in automatic and immediate | |||
disruption for the services using PCE-initiated LSPs. Similarly the | disruption for the services using PCE-initiated LSPs. Similarly the | |||
central controller instructions are not removed immediately upon PCE | Central Controller Instructions are not removed immediately upon PCE | |||
failure. Instead, they are cleaned up on the expiration of this | failure. Instead, they are cleaned up on the expiration of this | |||
timer. This allows for network clean up without manual intervention. | timer. This allows for network cleanup without manual intervention. | |||
The PCC MUST support the removal of CCI as one of the behaviors | The PCC MUST support the removal of CCI as one of the behaviors | |||
applied on expiration of the State Timeout Interval timer. | applied on expiration of the State Timeout Interval timer. | |||
In case of PCC-initiated PCECC LSP, the control over the orphaned LSP | In the case of the PCC-initiated PCECC LSP, the control over the | |||
at the ingress PCC is taken over by the mechanism specified in | orphaned LSP at the ingress PCC is taken over by the mechanism | |||
[RFC8741] to request delegation. The control over the central | specified in [RFC8741] to request delegation. The control over the | |||
controller instructions is described above using [RFC8281]. | CCI is described above using [RFC8281]. | |||
5.5.6. Synchronization of Central Controllers Instructions | 5.5.6. Synchronization of Central Controller Instructions | |||
The purpose of Central Controllers Instructions synchronization | The purpose of CCI synchronization (labels in the context of this | |||
(labels in the context of this document) is to make sure that the | document) is to make sure that the PCE's view of CCI (labels) matches | |||
PCE's view of CCI (Labels) matches with the PCC's Label allocation. | with the PCC's label allocation. This synchronization is performed | |||
This synchronization is performed as part of the LSP state | as part of the LSP State Synchronization, as described in [RFC8231] | |||
synchronization as described in [RFC8231] and [RFC8232]. | and [RFC8232]. | |||
As per LSP State Synchronization [RFC8231], a PCC reports the state | As per LSP State Synchronization [RFC8231], a PCC reports the state | |||
of its LSPs to the PCE using PCRpt messages and as per [RFC8281], PCE | of its LSPs to the PCE using PCRpt messages and, as per [RFC8281], | |||
would initiate any missing LSPs and/or remove any LSPs that are not | the PCE would initiate any missing LSPs and/or remove any LSPs that | |||
wanted. The same PCEP messages and procedures are also used for the | are not wanted. The same PCEP messages and procedures are also used | |||
Central Controllers Instructions synchronization. The PCRpt message | for the CCI synchronization. The PCRpt message includes the CCI and | |||
includes the CCI and the LSP object to report the label forwarding | the LSP object to report the label-forwarding instructions. The PCE | |||
instructions. The PCE would further remove any unwanted instructions | would further remove any unwanted instructions or initiate any | |||
or initiate any missing instructions. | missing instructions. | |||
5.5.7. PCECC LSP State Report | 5.5.7. PCECC LSP State Report | |||
As mentioned before, an ingress PCC MAY choose to apply any OAM | As mentioned before, an ingress PCC MAY choose to apply any | |||
mechanism to check the status of LSP in the Data plane and MAY | Operations, Administration, and Maintenance (OAM) mechanism to check | |||
further send its status in a PCRpt message to the PCE. | the status of the LSP in the data plane and MAY further send its | |||
status in a PCRpt message to the PCE. | ||||
5.5.8. PCC-Based Allocations | 5.5.8. PCC-Based Allocations | |||
The PCE can request the PCC to allocate the label using the | The PCE can request the PCC to allocate the label using the | |||
PCInitiate message. The C flag in the CCI object is set to 1 to | PCInitiate message. The C flag in the CCI object is set to '1' to | |||
indicate that the allocation needs to be done by the PCC. The PCC | indicate that the allocation needs to be made by the PCC. The PCC | |||
MUST try to allocate the Label and MUST report to the PCE via PCRpt | MUST try to allocate the label and MUST report to the PCE via a PCRpt | |||
or PCErr message. | or PCErr message. | |||
If the value of the Label is 0 and the C flag is set to 1, it | If the value of the label is 0 and the C flag is set to '1', it | |||
indicates that the PCE is requesting the allocation to be done by the | indicates that the PCE is requesting the allocation to be made by the | |||
PCC. If the Label is 'n' and the C flag is set to 1 in the CCI | PCC. If the label is 'n' and the C flag is set to '1' in the CCI | |||
object, it indicates that the PCE requests a specific value 'n' for | object, it indicates that the PCE requests a specific value 'n' for | |||
the Label. If the allocation is successful, the PCC MUST report via | the label. If the allocation is successful, the PCC MUST report via | |||
the PCRpt message with the CCI object. If the value of the Label in | the PCRpt message with the CCI object. If the value of the label in | |||
the CCI object is invalid, it MUST send a PCErr message with Error- | the CCI object is invalid, it MUST send a PCErr message with Error- | |||
Type = TBD5 ("PCECC failure") and Error Value = TBD9 ("Invalid CCI"). | Type=31 (PCECC failure) and Error-value=3 (Invalid CCI). If it is | |||
If it is valid but the PCC is unable to allocate it, it MUST send a | valid but the PCC is unable to allocate it, it MUST send a PCErr | |||
PCErr message with Error-Type = TBD5 ("PCECC failure") and Error | message with Error-Type=31 (PCECC failure) and Error-value=4 (Unable | |||
Value = TBD10 ("Unable to allocate the specified CCI"). | to allocate the specified CCI). | |||
If the PCC wishes to withdraw or modify the previously assigned | If the PCC wishes to withdraw or modify the previously assigned | |||
label, it MUST send a PCRpt message without any Label or with the | label, it MUST send a PCRpt message without any label or with the | |||
Label containing the new value respectively in the CCI object. The | label containing the new value, respectively, in the CCI object. The | |||
PCE would further trigger the Label cleanup of older label as per | PCE would further trigger the label cleanup of the older label, as | |||
Section 5.5.3.2. | per Section 5.5.3.2. | |||
6. PCEP Messages | 6. PCEP Messages | |||
As defined in [RFC5440], a PCEP message consists of a common header | As defined in [RFC5440], a PCEP message consists of a common header | |||
followed by a variable-length body made of a set of objects that can | followed by a variable-length body made of a set of objects that can | |||
be either mandatory or optional. An object is said to be mandatory | be either mandatory or optional. An object is said to be mandatory | |||
in a PCEP message when the object must be included for the message to | in a PCEP message when the object must be included for the message to | |||
be considered valid. For each PCEP message type, a set of rules is | be considered valid. For each PCEP message type, a set of rules is | |||
defined that specify the set of objects that the message can carry. | defined, which specifies the set of objects that the message can | |||
An implementation MUST form the PCEP messages using the object | carry. An implementation MUST form the PCEP messages using the | |||
ordering specified in this document. | object ordering specified in this document. | |||
LSP-IDENTIFIERS TLV MUST be included in the LSP object for PCECC LSP. | The LSP-IDENTIFIERS TLV MUST be included in the LSP object for the | |||
PCECC LSP. | ||||
The message formats in this document are specified using Routing | The message formats in this document are specified using Routing | |||
Backus-Naur Form (RBNF) encoding as specified in [RFC5511]. | Backus-Naur Form (RBNF) encoding, as specified in [RFC5511]. | |||
6.1. The PCInitiate Message | 6.1. The PCInitiate Message | |||
The PCInitiate message [RFC8281] can be used to download or remove | The PCInitiate message [RFC8281] can be used to download or remove | |||
the labels, this document extends the message as shown below - | the labels; this document extends the message, as shown below. | |||
<PCInitiate Message> ::= <Common Header> | <PCInitiate Message> ::= <Common Header> | |||
<PCE-initiated-lsp-list> | <PCE-initiated-lsp-list> | |||
Where: | ||||
<Common Header> is defined in [RFC5440] | Where: | |||
* <Common Header> is defined in [RFC5440]. | ||||
<PCE-initiated-lsp-list> ::= <PCE-initiated-lsp-request> | <PCE-initiated-lsp-list> ::= <PCE-initiated-lsp-request> | |||
[<PCE-initiated-lsp-list>] | [<PCE-initiated-lsp-list>] | |||
<PCE-initiated-lsp-request> ::= | <PCE-initiated-lsp-request> ::= | |||
(<PCE-initiated-lsp-instantiation>| | (<PCE-initiated-lsp-instantiation>| | |||
<PCE-initiated-lsp-deletion>| | <PCE-initiated-lsp-deletion>| | |||
<PCE-initiated-lsp-central-control>) | <PCE-initiated-lsp-central-control>) | |||
<PCE-initiated-lsp-central-control> ::= <SRP> | <PCE-initiated-lsp-central-control> ::= <SRP> | |||
<LSP> | <LSP> | |||
<cci-list> | <cci-list> | |||
<cci-list> ::= <CCI> | <cci-list> ::= <CCI> | |||
[<cci-list>] | [<cci-list>] | |||
Where: | Where: | |||
<PCE-initiated-lsp-instantiation> and | ||||
<PCE-initiated-lsp-deletion> are as per | ||||
[RFC8281]. | ||||
The LSP and SRP object is defined in [RFC8231]. | * <PCE-initiated-lsp-instantiation> and <PCE-initiated-lsp-deletion> | |||
are as per [RFC8281]. | ||||
When PCInitiate message is used for the central controller | * The LSP and SRP object is defined in [RFC8231]. | |||
instructions (labels), the SRP, LSP, and CCI objects MUST be present. | ||||
The SRP object is defined in [RFC8231] and if the SRP object is | When a PCInitiate message is used for the CCI (labels), the SRP, LSP, | |||
missing, the receiving PCC MUST send a PCErr message with Error- | and CCI objects MUST be present. The SRP object is defined in | |||
type=6 (Mandatory Object missing) and Error-value=10 (SRP object | [RFC8231]; if the SRP object is missing, the receiving PCC MUST send | |||
missing). The LSP object is defined in [RFC8231] and if the LSP | a PCErr message with Error-Type=6 (Mandatory Object missing) and | |||
object is missing, the receiving PCC MUST send a PCErr message with | Error-value=10 (SRP object missing). The LSP object is defined in | |||
Error-type=6 (Mandatory Object missing) and Error-value=8 (LSP object | [RFC8231], and if the LSP object is missing, the receiving PCC MUST | |||
missing). The CCI object is defined in Section 7.3 and if the CCI | send a PCErr message with Error-Type=6 (Mandatory Object missing) and | |||
object is missing, the receiving PCC MUST send a PCErr message with | Error-value=8 (LSP object missing). The CCI object is defined in | |||
Error-type=6 (Mandatory Object missing) and Error-value=TBD11 (CCI | Section 7.3, and if the CCI object is missing, the receiving PCC MUST | |||
object missing). More than one CCI object MAY be included in the | send a PCErr message with Error-Type=6 (Mandatory Object missing) and | |||
PCInitiate message for a transit LSR. | Error-value=17 (CCI object missing). More than one CCI object MAY be | |||
included in the PCInitiate message for a transit LSR. | ||||
To clean up entries, the R (remove) bit MUST be set in the SRP object | To clean up entries, the R (remove) bit MUST be set in the SRP object | |||
to be encoded along with the LSP and the CCI object. | to be encoded along with the LSP and CCI objects. | |||
The CCI object received at the ingress node MUST have the O bit (out- | The CCI object received at the ingress node MUST have the O bit (out- | |||
label) set. The CCI Object received at the egress MUST have the O | label) set. The CCI object received at the egress MUST have the O | |||
bit unset. If this is not the case, PCC MUST send a PCErr message | bit unset. If this is not the case, the PCC MUST send a PCErr | |||
with Error-Type = TBD5 ("PCECC failure") and Error Value = TBD9 | message with Error-Type=31 (PCECC failure) and Error-value=3 (Invalid | |||
("Invalid CCI"). Other instances of the CCI object if present, MUST | CCI). Other instances of the CCI object, if present, MUST be | |||
be ignored. | ignored. | |||
For the P2P LSP setup via PCECC technique, at the transit LSR two CCI | For the point-to-point (P2P) LSP setup via the PCECC technique, at | |||
objects are expected for in-coming and outgoing label associated with | the transit LSR, two CCI objects are expected for incoming and | |||
the LSP object. If any other CCI object is included in the | outgoing labels associated with the LSP object. If any other CCI | |||
PCInitiate message, it MUST be ignored. If the transit LSR did not | object is included in the PCInitiate message, it MUST be ignored. If | |||
receive two CCI object with one of them having the O bit set and | the transit LSR did not receive two CCI objects, with one of them | |||
another with O bit unset, it MUST send a PCErr message with Error- | having the O bit set and another with the O bit unset, it MUST send a | |||
Type = TBD5 ("PCECC failure") and Error Value = TBD9 ("Invalid CCI"). | PCErr message with Error-Type=31 (PCECC failure) and Error-value=3 | |||
(Invalid CCI). | ||||
Note that, on receipt of the PCInitiate message with CCI object, the | Note that, on receipt of the PCInitiate message with CCI object, the | |||
ingress, egress, or transit role of the PCC is identified via the | ingress, egress, or transit role of the PCC is identified via the | |||
ingress and egress IP address encoded in the LSP-IDENTIFIERS TLV. | ingress and egress IP address encoded in the LSP-IDENTIFIERS TLV. | |||
6.2. The PCRpt Message | 6.2. The PCRpt Message | |||
The PCRpt message can be used to report the labels that were | The PCRpt message can be used to report the labels that were | |||
allocated by the PCE, to be used during the state synchronization | allocated by the PCE to be used during the State Synchronization | |||
phase or as an acknowledgment to PCInitiate message. | phase or as an acknowledgment to a PCInitiate message. | |||
<PCRpt Message> ::= <Common Header> | <PCRpt Message> ::= <Common Header> | |||
<state-report-list> | <state-report-list> | |||
Where: | ||||
Where: | ||||
<state-report-list> ::= <state-report>[<state-report-list>] | <state-report-list> ::= <state-report>[<state-report-list>] | |||
<state-report> ::= (<lsp-state-report>| | <state-report> ::= (<lsp-state-report>| | |||
<central-control-report>) | <central-control-report>) | |||
<lsp-state-report> ::= [<SRP>] | <lsp-state-report> ::= [<SRP>] | |||
<LSP> | <LSP> | |||
<path> | <path> | |||
<central-control-report> ::= [<SRP>] | <central-control-report> ::= [<SRP>] | |||
<LSP> | <LSP> | |||
<cci-list> | <cci-list> | |||
<cci-list> ::= <CCI> | <cci-list> ::= <CCI> | |||
[<cci-list>] | [<cci-list>] | |||
Where: | Where: | |||
<path> is as per [RFC8231] and the LSP and SRP object are | ||||
also defined in [RFC8231]. | ||||
When PCRpt message is used to report the central controller | * <path> is as per [RFC8231], and the LSP and SRP objects are also | |||
instructions (labels), the LSP and CCI objects MUST be present. The | defined in [RFC8231]. | |||
LSP object is defined in [RFC8231] and if the LSP object is missing, | ||||
the receiving PCE MUST send a PCErr message with Error-type=6 | When a PCRpt message is used to report the CCI (labels), the LSP and | |||
(Mandatory Object missing) and Error-value=8 (LSP object missing). | CCI objects MUST be present. The LSP object is defined in [RFC8231], | |||
The CCI object is defined in Section 7.3 and if the CCI object is | and if the LSP object is missing, the receiving PCE MUST send a PCErr | |||
missing, the receiving PCE MUST send a PCErr message with Error- | message with Error-Type=6 (Mandatory Object missing) and Error- | |||
type=6 (Mandatory Object missing) and Error-value=TBD11 (CCI object | value=8 (LSP object missing). The CCI object is defined in | |||
missing). Two CCI objects can be included in the PCRpt message for a | Section 7.3, and if the CCI object is missing, the receiving PCE MUST | |||
transit LSR. | send a PCErr message with Error-Type=6 (Mandatory Object missing) and | |||
Error-value=17 (CCI object missing). Two CCI objects can be included | ||||
in the PCRpt message for a transit LSR. | ||||
7. PCEP Objects | 7. PCEP Objects | |||
The PCEP objects defined in this document are compliant with the PCEP | The PCEP objects defined in this document are compliant with the PCEP | |||
object format defined in [RFC5440]. | object format defined in [RFC5440]. | |||
7.1. OPEN Object | 7.1. OPEN Object | |||
This document defines a new PST (TBD1) to be included in the PATH- | This document defines a new PST (2) to be included in the PATH-SETUP- | |||
SETUP-TYPE-CAPABILITY TLV in the OPEN Object. Further, a new sub-TLV | TYPE-CAPABILITY TLV in the OPEN object. Further, a new sub-TLV for | |||
for PCECC capability exchange is also defined. | the PCECC capability exchange is also defined. | |||
7.1.1. PCECC Capability sub-TLV | 7.1.1. PCECC Capability Sub-TLV | |||
The PCECC-CAPABILITY sub-TLV is an optional TLV for use in the OPEN | The PCECC-CAPABILITY sub-TLV is an optional TLV for use in the OPEN | |||
Object in the PATH-SETUP-TYPE-CAPABILITY TLV, when the Path Setup | object in the PATH-SETUP-TYPE-CAPABILITY TLV when the Path Setup Type | |||
Type list includes the PCECC Path Setup Type TBD1. A PCECC- | list includes the PCECC Path Setup Type 2. A PCECC-CAPABILITY sub- | |||
CAPABILITY sub-TLV MUST be ignored if the PST list does not contain | TLV MUST be ignored if the PST list does not contain PST=2. | |||
PST=TBD1. | ||||
Its format is shown in Figure 7. | Its format is shown in Figure 7. | |||
0 1 2 3 | 0 1 2 3 | |||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Type=TBD12 | Length=4 | | | Type=1 | Length=4 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Flags |L| | | Flags |L| | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 7: PCECC Capability sub-TLV | Figure 7: PCECC Capability Sub-TLV | |||
The type of the TLV is TBD12 and it has a fixed length of 4 octets. | The type of the TLV is 1, and it has a fixed length of 4 octets. | |||
The value comprises a single field - Flags (32 bits). Currently, the | The value comprises a single field: Flags (32 bits). Currently, the | |||
following flag bit is defined: | following flag bit is defined: | |||
o L bit (Label): if set to 1 by a PCEP speaker, the L flag indicates | L bit (Label): If set to '1' by a PCEP speaker, the L flag indicates | |||
that the PCEP speaker support and is willing to handle the PCECC | that the PCEP speaker will support and is willing to handle the | |||
based central controller instructions for label download. The bit | PCEC-based Central Controller Instructions for label download. | |||
MUST be set to 1 by both a PCC and a PCE for the PCECC label | The bit MUST be set to '1' by both a PCC and a PCE for the PCECC | |||
download/report on a PCEP session. | label download/report on a PCEP session. | |||
o Unassigned bits MUST be set to 0 on transmission and MUST be | Unassigned bits MUST be set to '0' on transmission and MUST be | |||
ignored on receipt. | ignored on receipt. | |||
7.2. PATH-SETUP-TYPE TLV | 7.2. PATH-SETUP-TYPE TLV | |||
The PATH-SETUP-TYPE TLV is defined in [RFC8408]; this document | The PATH-SETUP-TYPE TLV is defined in [RFC8408]; this document | |||
defines a new PST value: | defines a new PST value: | |||
o PST = TBD1: Path is set up via PCECC mode. | PST=2: Path is set up via the PCECC mode. | |||
On a PCRpt/PCUpd/PCInitiate message, the PST=TBD1 in the PATH-SETUP- | On a PCRpt/PCUpd/PCInitiate message, the PST=2 in the PATH-SETUP-TYPE | |||
TYPE TLV in the SRP object MUST be included for a LSP set up via the | TLV in the SRP object MUST be included for an LSP set up via the | |||
PCECC-based mechanism. | PCECC-based mechanism. | |||
7.3. CCI Object | 7.3. CCI Object | |||
The Central Controller Instructions (CCI) Object is used by the PCE | The CCI object is used by the PCE to specify the forwarding | |||
to specify the forwarding instructions (Label information in the | instructions (label information in the context of this document) to | |||
context of this document) to the PCC, and MAY be carried within | the PCC and MAY be carried within a PCInitiate or PCRpt message for | |||
PCInitiate or PCRpt message for label download/report. | label download/report. | |||
CCI Object-Class is TBD13. | CCI Object-Class is 44. | |||
CCI Object-Type is 1 for the MPLS Label. | CCI Object-Type is 1 for the MPLS label. | |||
0 1 2 3 | 0 1 2 3 | |||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| CC-ID | | | CC-ID | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Reserved1 | Flags |C|O| | | Reserved1 | Flags |C|O| | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Label | Reserved2 | | | Label | Reserved2 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | | | | | |||
// Optional TLV // | // Optional TLV // | |||
| | | | | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 8: CCI Object | Figure 8: CCI Object | |||
The fields in the CCI object are as follows: | The fields in the CCI object are as follows: | |||
CC-ID: A PCEP-specific identifier for the CCI information. A PCE | CC-ID: A PCEP-specific identifier for the CCI information. A PCE | |||
creates a CC-ID for each instruction, the value is unique within | creates a CC-ID for each instruction; the value is unique within | |||
the scope of the PCE and is constant for the lifetime of a PCEP | the scope of the PCE and is constant for the lifetime of a PCEP | |||
session. The values 0 and 0xFFFFFFFF are reserved and MUST NOT be | session. The values 0 and 0xFFFFFFFF are reserved and MUST NOT be | |||
used. Note that [I-D.gont-numeric-ids-sec-considerations] gives | used. Note that [SECURITY-ID] gives advice on assigning transient | |||
advice on assigning transient numeric identifiers such as the CC- | numeric identifiers, such as the CC-ID, so as to minimize security | |||
ID so as to minimize security risks. | risks. | |||
Reserved1 (16 bit): Set to zero while sending, ignored on receive. | Reserved1 (16 bit): Set to 'zero' while sending; ignored on receipt. | |||
Flags (16 bit): A field used to carry any additional information | Flags (16 bit): A field used to carry any additional information | |||
pertaining to the CCI. Currently, the following flag bits are | pertaining to the CCI. Currently, the following flag bits are | |||
defined: | defined: | |||
* O bit(Out-label) : If the bit is set to 1, it specifies the | * O bit (out-label) : If the bit is set to '1', it specifies the | |||
label is the OUT label and it is mandatory to encode the next- | label is the out-label, and it is mandatory to encode the next- | |||
hop information (via Address TLVs Section 7.3.1 in the CCI | hop information (via Address TLVs (Section 7.3.1) in the CCI | |||
object). If the bit is not set, it specifies the label is the | object). If the bit is not set, it specifies the label is the | |||
IN label and it is optional to encode the local interface | in-label, and it is optional to encode the local interface | |||
information (via Address TLVs in the CCI object). | information (via Address TLVs in the CCI object). | |||
* C Bit (PCC Allocation): If the bit is set to 1, it indicates | * C Bit (PCC allocation): If the bit is set to '1', it indicates | |||
that the label allocation needs to be done by the PCC for this | that the label allocation needs to be done by the PCC for the | |||
central controller instruction. A PCE sets this bit to request | Central Controller Instruction. A PCE sets this bit to request | |||
the PCC to make an allocation from its label space. A PCC | the PCC to make an allocation from its label space. A PCC | |||
would set this bit to indicate that it has allocated the label | would set this bit to indicate that it has allocated the label | |||
and report it to the PCE. | and report it to the PCE. | |||
* All unassigned bits MUST be set to zero at transmission and | * All unassigned bits MUST be set to 'zero' at transmission and | |||
ignored at receipt. | ignored at receipt. | |||
Label (20-bit): The Label information. | Label (20-bit): The label information. | |||
Reserved2 (12 bit): Set to zero while sending, ignored on receive. | Reserved2 (12 bit): Set to 'zero' while sending; ignored on receive. | |||
7.3.1. Address TLVs | 7.3.1. Address TLVs | |||
[RFC8779] defines IPV4-ADDRESS, IPV6-ADDRESS, and UNNUMBERED-ENDPOINT | [RFC8779] defines the IPV4-ADDRESS, IPV6-ADDRESS, and UNNUMBERED- | |||
TLVs for the use of Generalized Endpoint. The same TLVs can also be | ENDPOINT TLVs for the use of Generalized Endpoint. The same TLVs can | |||
used in the CCI object to associate the next-hop information in the | also be used in the CCI object to associate the next-hop information | |||
case of an outgoing label and local interface information in the case | in the case of an outgoing label and local interface information in | |||
of an incoming label. The next-hop information encoded in these TLVs | the case of an incoming label. The next-hop information encoded in | |||
needs to be a directly connected IP address/interface information. | these TLVs needs to be a directly connected IP address/interface | |||
If the PCC is not able to resolve the next-hop information, it MUST | information. If the PCC is not able to resolve the next-hop | |||
reject the CCI and respond with a PCErr message with Error-Type = | information, it MUST reject the CCI and respond with a PCErr message | |||
TBD5 ("PCECC failure") and Error Value = TBD15 ("Invalid next-hop | with Error-Type=31 (PCECC failure) and Error-value=5 (Invalid next- | |||
information"). | hop information). | |||
8. Implementation Status | ||||
[Note to the RFC Editor - remove this section before publication, as | ||||
well as remove the reference to RFC 7942.] | ||||
This section records the status of known implementations of the | ||||
protocol defined by this specification at the time of posting of this | ||||
Internet-Draft, and is based on a proposal described in [RFC7942]. | ||||
The description of implementations in this section is intended to | ||||
assist the IETF in its decision processes in progressing drafts to | ||||
RFCs. Please note that the listing of any individual implementation | ||||
here does not imply endorsement by the IETF. Furthermore, no effort | ||||
has been spent to verify the information presented here that was | ||||
supplied by IETF contributors. This is not intended as, and must not | ||||
be construed to be, a catalog of available implementations or their | ||||
features. Readers are advised to note that other implementations may | ||||
exist. | ||||
According to [RFC7942], "this will allow reviewers and working groups | ||||
to assign due consideration to documents that have the benefit of | ||||
running code, which may serve as evidence of valuable experimentation | ||||
and feedback that have made the implemented protocols more mature. | ||||
It is up to the individual working groups to use this information as | ||||
they see fit". | ||||
8.1. Huawei's Proof of Concept based on ONOS | ||||
The PCE function was developed in the ONOS open source platform. | ||||
This extension was implemented on a private version as a proof of | ||||
concept for PCECC. | ||||
o Organization: Huawei | ||||
o Implementation: Huawei's PoC based on ONOS | ||||
o Description: PCEP as a southbound plugin was added to ONOS. To | ||||
support PCECC, an earlier version of this I-D was implemented. | ||||
Refer https://wiki.onosproject.org/display/ONOS/PCEP+Protocol | ||||
o Maturity Level: Prototype | ||||
o Coverage: Partial | ||||
o Contact: satishk@huawei.com | ||||
9. Security Considerations | 8. Security Considerations | |||
As per [RFC8283], the security considerations for a PCE-based | As per [RFC8283], the security considerations for a PCE-based | |||
controller is a little different from those for any other PCE system. | controller are a little different from those for any other PCE | |||
That is, the operation relies heavily on the use and security of | system. That is, the operation relies heavily on the use and | |||
PCEP, so consideration should be given to the security features | security of PCEP, so consideration should be given to the security | |||
discussed in [RFC5440] and the additional mechanisms described in | features discussed in [RFC5440] and the additional mechanisms | |||
[RFC8253]. It further lists the vulnerability of a central | described in [RFC8253]. It further lists the vulnerability of a | |||
controller architecture, such as a central point of failure, denial- | central controller architecture, such as a central point of failure, | |||
of-service, and a focus for interception and modification of messages | denial of service, and a focus for interception and modification of | |||
sent to individual NEs. | messages sent to individual Network Elements (NEs). | |||
In PCECC operations, the PCEP sessions are also required to the | In the PCECC operations, the PCEP sessions are also required to the | |||
internal routers and thus increasing the resources required for the | internal routers, thus increasing the resources required for the | |||
session management at the PCE. | session management at the PCE. | |||
The PCECC extension builds on the existing PCEP messages and thus the | The PCECC extension builds on the existing PCEP messages; thus, the | |||
security considerations described in [RFC5440], [RFC8231] and | security considerations described in [RFC5440], [RFC8231], and | |||
[RFC8281] continue to apply. [RFC8253] specify the support of | [RFC8281] continue to apply. [RFC8253] specifies the support of | |||
Transport Layer Security (TLS) in PCEP, as it provides support for | Transport Layer Security (TLS) in PCEP, as it provides support for | |||
peer authentication, message encryption, and integrity. It further | peer authentication, message encryption, and integrity. It further | |||
provide mechanisms for associating peer identities with different | provides mechanisms for associating peer identities with different | |||
levels of access and/or authoritativeness via an attribute in X.509 | 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 or a local policy with a specific accept-list of X.509 | |||
certificate. This can be used to check the authority for the PCECC | certificates. This can be used to check the authority for the PCECC | |||
operations. Additional considerations are discussed in following | operations. Additional considerations are discussed in following | |||
sections. | sections. | |||
9.1. Malicious PCE | 8.1. Malicious PCE | |||
In this extension, the PCE has complete control over the PCC to | In this extension, the PCE has complete control over the PCC to | |||
download/remove the labels and can cause the LSP's to behave | download/remove the labels and can cause the LSPs to behave | |||
inappropriately and cause a major impact to the network. As a | inappropriately and cause a major impact to the network. As a | |||
general precaution, it is RECOMMENDED that this PCEP extension be | general precaution, it is RECOMMENDED that this PCEP extension be | |||
activated on mutually-authenticated and encrypted sessions across | activated on mutually authenticated and encrypted sessions across | |||
PCEs and PCCs belonging to the same administrative authority, using | PCEs and PCCs belonging to the same administrative authority, using | |||
TLS [RFC8253], as per the recommendations and best current practices | TLS [RFC8253], as per the recommendations and best current practices | |||
in BCP 195 [RFC7525]. | in BCP 195 [RFC7525]. | |||
Further, an attacker may flood the PCC with PCECC related messages at | Further, an attacker may flood the PCC with the PCECC-related | |||
a rate that exceeds either the PCC's ability to process them or the | messages at a rate that exceeds either the PCC's ability to process | |||
network's ability to send them, by either spoofing messages or | them or the network's ability to send them, by either spoofing | |||
compromising the PCE itself. [RFC8281] provides a mechanism to | messages or compromising the PCE itself. [RFC8281] provides a | |||
protect the PCC by imposing a limit. The same can be used for the | mechanism to protect the PCC by imposing a limit. The same can be | |||
PCECC operations as well. | used for the PCECC operations as well. | |||
As specified in Section 5.5.3.1, a PCC needs to check if the label in | As specified in Section 5.5.3.1, a PCC needs to check if the label in | |||
the CCI object is in the range set aside for the PCE, otherwise it | the CCI object is in the range set aside for the PCE; otherwise, it | |||
MUST send a PCErr message with Error-type=TBD5 (PCECC failure) and | MUST send a PCErr message with Error-Type=31 (PCECC failure) and | |||
Error-value=TBD6 (Label out of range). | Error-value=1 (Label out of range). | |||
9.2. Malicious PCC | 8.2. Malicious PCC | |||
The PCECC mechanism described in this document requires the PCE to | The PCECC mechanism described in this document requires the PCE to | |||
keep labels (CCI) that it downloads and relies on the PCC responding | keep labels (CCI) that it downloads and relies on the PCC responding | |||
(with either an acknowledgment or an error message) to requests for | (with either an acknowledgment or an error message) to request for | |||
LSP instantiation. This is an additional attack surface by placing a | LSP instantiation. This is an additional attack surface by placing a | |||
requirement for the PCE to keep a CCI/label replica for each PCC. It | requirement for the PCE to keep a CCI/label replica for each PCC. It | |||
is RECOMMENDED that PCE implementations provide a limit on resources | is RECOMMENDED that PCE implementations provide a limit on resources | |||
(in this case the CCI) a single PCC can occupy. [RFC8231] provides a | (in this case the CCI) a single PCC can occupy. [RFC8231] provides a | |||
notification mechanism when such threshold is reached. | notification mechanism when such threshold is reached. | |||
10. Manageability Considerations | 9. Manageability Considerations | |||
10.1. Control of Function and Policy | 9.1. Control of Function and Policy | |||
A PCE or PCC implementation SHOULD allow the PCECC capability to be | A PCE or PCC implementation SHOULD allow the PCECC capability to be | |||
enabled/disabled as part of the global configuration. Section 6.1 of | enabled/disabled as part of the global configuration. Section 6.1 of | |||
[RFC8664] list various controlling factors regarding path setup type. | [RFC8664] list various controlling factors regarding the Path Setup | |||
Type. They are also applicable to the PCECC Path Setup Types. | ||||
They are also applicable to the PCECC path setup types. Further, | Further, Section 6.2 of [RFC8664] describes the migration steps when | |||
Section 6.2 of [RFC8664] describe the migration steps when path setup | the Path Setup Type of an existing LSP is changed. | |||
type of an existing LSP is changed. | ||||
10.2. Information and Data Models | 9.2. Information and Data Models | |||
[RFC7420] describes the PCEP MIB, this MIB can be extended to get the | [RFC7420] describes the PCEP MIB; this MIB can be extended to get the | |||
PCECC capability status. | PCECC capability status. | |||
The PCEP YANG module [I-D.ietf-pce-pcep-yang] could be extended to | The PCEP YANG module [PCEP-YANG] could be extended to enable/disable | |||
enable/disable PCECC capability. | the PCECC capability. | |||
10.3. Liveness Detection and Monitoring | 9.3. Liveness Detection and Monitoring | |||
Mechanisms defined in this document do not imply any new liveness | Mechanisms defined in this document do not imply any new liveness | |||
detection and monitoring requirements in addition to those already | detection and monitoring requirements in addition to those already | |||
listed in [RFC5440]. | listed in [RFC5440]. | |||
10.4. Verify Correct Operations | 9.4. Verify Correct Operations | |||
The operator needs the following information to verify that PCEP is | The operator needs the following information to verify that PCEP is | |||
operating correctly with respect to the PCECC path setup type. | operating correctly with respect to the PCECC Path Setup Type. | |||
o An implementation SHOULD allow the operator to view whether the | * An implementation SHOULD allow the operator to view whether the | |||
PCEP speaker sent the PCECC PST capability to its peer. | PCEP speaker sent the PCECC PST capability to its peer. | |||
o An implementation SHOULD allow the operator to view whether the | * An implementation SHOULD allow the operator to view whether the | |||
peer sent the PCECC PST capability. | peer sent the PCECC PST capability. | |||
o An implementation SHOULD allow the operator to view whether the | * An implementation SHOULD allow the operator to view whether the | |||
PCECC PST is enabled on a PCEP session. | PCECC PST is enabled on a PCEP session. | |||
o If one PCEP speaker advertises the PCECC PST capability, but the | * If one PCEP speaker advertises the PCECC PST capability, but the | |||
other does not, then the implementation SHOULD create a log to | other does not, then the implementation SHOULD create a log to | |||
inform the operator of the capability mismatch. | inform the operator of the capability mismatch. | |||
o If a PCEP speaker rejects a CCI, then it SHOULD create a log to | * If a PCEP speaker rejects a CCI, then it SHOULD create a log to | |||
inform the operator, giving the reason for the decision (local | inform the operator, giving the reason for the decision (local | |||
policy, Label issues, etc.). | policy, label issues, etc.). | |||
10.5. Requirements On Other Protocols | 9.5. Requirements on Other Protocols | |||
PCEP extensions defined in this document do not put new requirements | PCEP extensions defined in this document do not put new requirements | |||
on other protocols. | on other protocols. | |||
10.6. Impact On Network Operations | 9.6. Impact on Network Operations | |||
PCEP extensions defined in this document do not put new requirements | PCEP extensions defined in this document do not put new requirements | |||
on network operations. | on network operations. | |||
11. IANA Considerations | 10. IANA Considerations | |||
11.1. PATH-SETUP-TYPE-CAPABILITY Sub-TLV Type Indicators | ||||
[RFC8408] requested the creation of "PATH-SETUP-TYPE-CAPABILITY Sub- | ||||
TLV Type Indicators" sub-registry. Further IANA is requested to | ||||
allocate the following code-point: | ||||
Value Meaning Reference | ||||
TBD12 PCECC-CAPABILITY This document | ||||
11.2. PCECC-CAPABILITY sub-TLV's Flag field | ||||
This document defines the PCECC-CAPABILITY sub-TLV and requests that | ||||
IANA to create a new sub-registry to manage the value of the PCECC- | ||||
CAPABILITY sub-TLV's 32-bits Flag field. New values are to be | ||||
assigned by Standards Action [RFC8126]. Each bit should be tracked | ||||
with the following qualities: | ||||
o Bit number (counting from bit 0 as the most significant bit) | 10.1. PATH-SETUP-TYPE-CAPABILITY Sub-TLV Type Indicators | |||
o Capability description | [RFC8408] detailed the creation of the "PATH-SETUP-TYPE-CAPABILITY | |||
Sub-TLV Type Indicators" subregistry. Further, IANA has allocated | ||||
the following codepoint: | ||||
o Defining RFC | +=======+==================+===========+ | |||
| Value | Meaning | Reference | | ||||
+=======+==================+===========+ | ||||
| 1 | PCECC-CAPABILITY | RFC 9050 | | ||||
+-------+------------------+-----------+ | ||||
Currently, there is one allocation in this registry. | Table 2: PATH-SETUP-TYPE-CAPABILITY | |||
Sub-TLV Type Indicators Subregistry | ||||
Addition | ||||
Bit Name Reference | 10.2. PCECC-CAPABILITY Sub-TLV's Flag Field | |||
31 Label This document | ||||
0-30 Unassigned This document | ||||
11.3. Path Setup Type Registry | This document defines the PCECC-CAPABILITY sub-TLV; IANA has created | |||
a new subregistry to manage the value of the PCECC-CAPABILITY sub- | ||||
TLV's 32-bit Flag field. New values are to be assigned by Standards | ||||
Action [RFC8126]. Each bit should be tracked with the following | ||||
qualities: | ||||
[RFC8408] created a sub-registry within the "Path Computation Element | * bit number (counting from bit 0 as the most significant bit) | |||
Protocol (PCEP) Numbers" registry called "PCEP Path Setup Types". | ||||
IANA is requested to allocate a new code point within this registry, | ||||
as follows: | ||||
Value Description Reference | * capability description | |||
TBD1 Traffic engineering path is This document | ||||
set up using PCECC mode | ||||
11.4. PCEP Object | * defining RFC | |||
IANA is requested to allocate new code-point in the "PCEP Objects" | Currently, there is one allocation in this registry. | |||
sub-registry for the CCI object as follows: | ||||
Object-Class Value Name Reference | +======+============+===========+ | |||
TBD13 CCI Object-Type This document | | Bit | Name | Reference | | |||
0 Reserved | +======+============+===========+ | |||
1 MPLS Label | | 0-30 | Unassigned | RFC 9050 | | |||
+------+------------+-----------+ | ||||
| 31 | Label | RFC 9050 | | ||||
+------+------------+-----------+ | ||||
11.5. CCI Object Flag Field | Table 3: Initial Contents of | |||
the PCECC-CAPABILITY Sub-TLV | ||||
Subregistry | ||||
IANA is requested to create a new sub-registry to manage the Flag | 10.3. PCEP Path Setup Type Registry | |||
field of the CCI object called "CCI Object Flag Field for MPLS | ||||
Label". New values are to be assigned by Standards Action [RFC8126]. | ||||
Each bit should be tracked with the following qualities: | ||||
o Bit number (counting from bit 0 as the most significant bit) | [RFC8408] created a subregistry within the "Path Computation Element | |||
Protocol (PCEP) Numbers" registry called "PCEP Path Setup Types". | ||||
IANA has allocated a new codepoint within this registry, as follows: | ||||
o Capability description | +=======+============================+===========+ | |||
| Value | Description | Reference | | ||||
+=======+============================+===========+ | ||||
| 2 | Traffic engineering path | RFC 9050 | | ||||
| | is set up using PCECC mode | | | ||||
+-------+----------------------------+-----------+ | ||||
o Defining RFC | Table 4: Path Setup Type Registry Codepoint | |||
Addition | ||||
Two bits to be defined for the CCI Object flag field in this document | 10.4. PCEP Object | |||
as follows: | ||||
Bit Description Reference | IANA has allocated new codepoints in the "PCEP Objects" subregistry | |||
0-13 Unassigned This document | for the CCI object as follows: | |||
14 C Bit - PCC allocation This document | ||||
15 O Bit - Specifies label This document | ||||
is out-label | ||||
11.6. PCEP-Error Object | +==============+=============+=====================+===========+ | |||
| Object-Class | Name | Object-Type | Reference | | ||||
| Value | | | | | ||||
+==============+=============+=====================+===========+ | ||||
| 44 | CCI Object- | 0: Reserved | RFC 9050 | | ||||
| | Type | 1: MPLS Label | | | ||||
| | | 2-15: Unassigned | | | ||||
+--------------+-------------+---------------------+-----------+ | ||||
IANA is requested to allocate new error types and error values within | Table 5: PCEP Objects Subregistry Additions | |||
the "PCEP-ERROR Object Error Types and Values" sub-registry of the | ||||
PCEP Numbers registry for the following errors: | ||||
Error-Type Meaning | 10.5. CCI Object Flag Field | |||
---------- ------- | ||||
6 Mandatory Object missing. | ||||
Error-value = TBD11 : CCI object missing | IANA has created a new subregistry to manage the Flag field of the | |||
CCI object called "CCI Object Flag Field for MPLS Label". New values | ||||
are to be assigned by Standards Action [RFC8126]. Each bit should be | ||||
tracked with the following qualities: | ||||
10 Reception of an invalid object. | * bit number (counting from bit 0 as the most significant bit) | |||
Error-value = TBD2 : Missing PCECC | * capability description | |||
Capability sub-TLV | ||||
19 Invalid operation. | ||||
Error-value = TBD3 : Attempted PCECC | * defining RFC | |||
operations when | ||||
PCECC capability | ||||
was not advertised | ||||
Error-value = TBD4 : Stateful PCE | ||||
capability was not | ||||
advertised | ||||
Error-value = TBD8 : Unknown Label | ||||
TBD5 PCECC failure. | Two bits are defined for the CCI Object flag field in this document | |||
as follows: | ||||
Error-value = TBD6 : Label out of range. | +======+======================================+===========+ | |||
Error-value = TBD7 : Instruction failed. | | Bit | Description | Reference | | |||
Error-value = TBD9 : Invalid CCI. | +======+======================================+===========+ | |||
Error-value = TBD10 : Unable to allocate | | 0-13 | Unassigned | | | |||
the specified CCI. | +------+--------------------------------------+-----------+ | |||
Error-value = TBD15 : Invalid next-hop | | 14 | C Bit - PCC allocation | RFC 9050 | | |||
information. | +------+--------------------------------------+-----------+ | |||
| 15 | O Bit - Specifies label is out-label | RFC 9050 | | ||||
+------+--------------------------------------+-----------+ | ||||
12. Acknowledgments | Table 6: CCI Object Flag Field for MPLS Label Initial | |||
Contents | ||||
We would like to thank Robert Tao, Changjing Yan, Tieying Huang, | 10.6. PCEP-Error Object | |||
Avantika, and Aijun Wang for their useful comments and suggestions. | ||||
Thanks to Julien Meuric for shepherding this I-D and providing | IANA has allocated new error types and error values within the "PCEP- | |||
valuable comments. Thanks to Deborah Brungard for being the | ERROR Object Error Types and Values" subregistry of the "Path | |||
responsible AD. | Computation Element Protocol (PCEP) Numbers" registry for the | |||
following errors: | ||||
Thanks to Victoria Pritchard for a very detailed RTGDIR review. | +============+===========+=======================+===========+ | |||
Thanks to Yaron Sheffer for the SECDIR review. Thanks to Gyan Mishra | | Error-Type | Meaning | Error-value | Reference | | |||
for the GENART review. | +============+===========+=======================+===========+ | |||
| 6 | Mandatory | 17: CCI object | RFC 9050 | | ||||
| | Object | missing | | | ||||
| | missing | | | | ||||
+------------+-----------+-----------------------+-----------+ | ||||
| 10 | Reception | 33: Missing PCECC | RFC 9050 | | ||||
| | of an | Capability sub-TLV | | | ||||
| | invalid | | | | ||||
| | object | | | | ||||
+------------+-----------+-----------------------+-----------+ | ||||
| 19 | Invalid | 16: Attempted PCECC | RFC 9050 | | ||||
| | Operation | operations when PCECC | | | ||||
| | | capability was not | | | ||||
| | | advertised | | | ||||
| | | | | | ||||
| | | 17: Stateful PCE | | | ||||
| | | capability was not | | | ||||
| | | advertised | | | ||||
| | | | | | ||||
| | | 18: Unknown Label | | | ||||
+------------+-----------+-----------------------+-----------+ | ||||
| 31 | PCECC | 1: Label out of range | RFC 9050 | | ||||
| | failure | | | | ||||
| | | 2: Instruction failed | | | ||||
| | | | | | ||||
| | | 3: Invalid CCI | | | ||||
| | | | | | ||||
| | | 4: Unable to allocate | | | ||||
| | | the specified CCI | | | ||||
| | | | | | ||||
| | | 5: Invalid next-hop | | | ||||
| | | information | | | ||||
+------------+-----------+-----------------------+-----------+ | ||||
Thanks to Alvaro Retana, Murray Kucherawy, Benjamin Kaduk, Roman | Table 7: PCEP-ERROR Object Error Types and Values Additions | |||
Danyliw, Robert Wilton, Eric Vyncke, and Erik Kline for the IESG | ||||
review. | ||||
13. References | 11. References | |||
13.1. Normative References | 11.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, | |||
DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
<https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
[RFC5440] Vasseur, JP., Ed. and JL. Le Roux, Ed., "Path Computation | [RFC5440] Vasseur, JP., Ed. and JL. Le Roux, Ed., "Path Computation | |||
Element (PCE) Communication Protocol (PCEP)", RFC 5440, | Element (PCE) Communication Protocol (PCEP)", RFC 5440, | |||
DOI 10.17487/RFC5440, March 2009, | DOI 10.17487/RFC5440, March 2009, | |||
<https://www.rfc-editor.org/info/rfc5440>. | <https://www.rfc-editor.org/info/rfc5440>. | |||
skipping to change at page 35, line 17 ¶ | skipping to change at line 1486 ¶ | |||
Protocol (PCEP) Extensions for Segment Routing", RFC 8664, | Protocol (PCEP) Extensions for Segment Routing", RFC 8664, | |||
DOI 10.17487/RFC8664, December 2019, | DOI 10.17487/RFC8664, December 2019, | |||
<https://www.rfc-editor.org/info/rfc8664>. | <https://www.rfc-editor.org/info/rfc8664>. | |||
[RFC8779] Margaria, C., Ed., Gonzalez de Dios, O., Ed., and F. | [RFC8779] Margaria, C., Ed., Gonzalez de Dios, O., Ed., and F. | |||
Zhang, Ed., "Path Computation Element Communication | Zhang, Ed., "Path Computation Element Communication | |||
Protocol (PCEP) Extensions for GMPLS", RFC 8779, | Protocol (PCEP) Extensions for GMPLS", RFC 8779, | |||
DOI 10.17487/RFC8779, July 2020, | DOI 10.17487/RFC8779, July 2020, | |||
<https://www.rfc-editor.org/info/rfc8779>. | <https://www.rfc-editor.org/info/rfc8779>. | |||
13.2. Informative References | 11.2. Informative References | |||
[RFC4655] Farrel, A., Vasseur, J., and J. Ash, "A Path Computation | [RFC4655] Farrel, A., Vasseur, JP., and J. Ash, "A Path Computation | |||
Element (PCE)-Based Architecture", RFC 4655, | Element (PCE)-Based Architecture", RFC 4655, | |||
DOI 10.17487/RFC4655, August 2006, | DOI 10.17487/RFC4655, August 2006, | |||
<https://www.rfc-editor.org/info/rfc4655>. | <https://www.rfc-editor.org/info/rfc4655>. | |||
[RFC7025] Otani, T., Ogaki, K., Caviglia, D., Zhang, F., and C. | [RFC7025] Otani, T., Ogaki, K., Caviglia, D., Zhang, F., and C. | |||
Margaria, "Requirements for GMPLS Applications of PCE", | Margaria, "Requirements for GMPLS Applications of PCE", | |||
RFC 7025, DOI 10.17487/RFC7025, September 2013, | RFC 7025, DOI 10.17487/RFC7025, September 2013, | |||
<https://www.rfc-editor.org/info/rfc7025>. | <https://www.rfc-editor.org/info/rfc7025>. | |||
[RFC7399] Farrel, A. and D. King, "Unanswered Questions in the Path | [RFC7399] Farrel, A. and D. King, "Unanswered Questions in the Path | |||
skipping to change at page 35, line 45 ¶ | skipping to change at line 1514 ¶ | |||
Hardwick, "Path Computation Element Communication Protocol | Hardwick, "Path Computation Element Communication Protocol | |||
(PCEP) Management Information Base (MIB) Module", | (PCEP) Management Information Base (MIB) Module", | |||
RFC 7420, DOI 10.17487/RFC7420, December 2014, | RFC 7420, DOI 10.17487/RFC7420, December 2014, | |||
<https://www.rfc-editor.org/info/rfc7420>. | <https://www.rfc-editor.org/info/rfc7420>. | |||
[RFC7491] King, D. and A. Farrel, "A PCE-Based Architecture for | [RFC7491] King, D. and A. Farrel, "A PCE-Based Architecture for | |||
Application-Based Network Operations", RFC 7491, | Application-Based Network Operations", RFC 7491, | |||
DOI 10.17487/RFC7491, March 2015, | DOI 10.17487/RFC7491, March 2015, | |||
<https://www.rfc-editor.org/info/rfc7491>. | <https://www.rfc-editor.org/info/rfc7491>. | |||
[RFC7942] Sheffer, Y. and A. Farrel, "Improving Awareness of Running | ||||
Code: The Implementation Status Section", BCP 205, | ||||
RFC 7942, DOI 10.17487/RFC7942, July 2016, | ||||
<https://www.rfc-editor.org/info/rfc7942>. | ||||
[RFC8232] Crabbe, E., Minei, I., Medved, J., Varga, R., Zhang, X., | [RFC8232] Crabbe, E., Minei, I., Medved, J., Varga, R., Zhang, X., | |||
and D. Dhody, "Optimizations of Label Switched Path State | and D. Dhody, "Optimizations of Label Switched Path State | |||
Synchronization Procedures for a Stateful PCE", RFC 8232, | Synchronization Procedures for a Stateful PCE", RFC 8232, | |||
DOI 10.17487/RFC8232, September 2017, | DOI 10.17487/RFC8232, September 2017, | |||
<https://www.rfc-editor.org/info/rfc8232>. | <https://www.rfc-editor.org/info/rfc8232>. | |||
[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>. | |||
[RFC8741] Raghuram, A., Goddard, A., Karthik, J., Sivabalan, S., and | [RFC8741] Raghuram, A., Goddard, A., Karthik, J., Sivabalan, S., and | |||
M. Negi, "Ability for a Stateful Path Computation Element | M. Negi, "Ability for a Stateful Path Computation Element | |||
(PCE) to Request and Obtain Control of a Label Switched | (PCE) to Request and Obtain Control of a Label Switched | |||
Path (LSP)", RFC 8741, DOI 10.17487/RFC8741, March 2020, | Path (LSP)", RFC 8741, DOI 10.17487/RFC8741, March 2020, | |||
<https://www.rfc-editor.org/info/rfc8741>. | <https://www.rfc-editor.org/info/rfc8741>. | |||
[I-D.ietf-teas-pcecc-use-cases] | [PCECC] Li, Z. (., Dhody, D., Zhao, Q., Ke, K., Khasanov, B., | |||
Li, Z., Khasanov, B., Dhody, D., Zhao, Q., Ke, Z., Fang, | Fang, L., Zhou, C., Zhang, B., Rachitskiy, A., and A. | |||
L., Zhou, C., Communications, T., Rachitskiy, A., and A. | ||||
Gulida, "The Use Cases for Path Computation Element (PCE) | Gulida, "The Use Cases for Path Computation Element (PCE) | |||
as a Central Controller (PCECC).", draft-ietf-teas-pcecc- | as a Central Controller (PCECC).", Work in Progress, | |||
use-cases-06 (work in progress), September 2020. | Internet-Draft, draft-ietf-teas-pcecc-use-cases-07, 8 | |||
March 2021, <https://datatracker.ietf.org/doc/html/draft- | ||||
ietf-teas-pcecc-use-cases-07>. | ||||
[I-D.ietf-pce-pcep-yang] | [PCEP-YANG] | |||
Dhody, D., Hardwick, J., Beeram, V., and J. Tantsura, "A | Dhody, D., Ed., Hardwick, J., Beeram, V., and J. Tantsura, | |||
YANG Data Model for Path Computation Element | "A YANG Data Model for Path Computation Element | |||
Communications Protocol (PCEP)", draft-ietf-pce-pcep- | Communications Protocol (PCEP)", Work in Progress, | |||
yang-15 (work in progress), October 2020. | Internet-Draft, draft-ietf-pce-pcep-yang-16, 22 February | |||
2021, <https://datatracker.ietf.org/doc/html/draft-ietf- | ||||
pce-pcep-yang-16>. | ||||
[I-D.ietf-pce-pcep-extension-pce-controller-sr] | [PCECC-SR] Li, Z., Peng, S., Negi, M. S., Zhao, Q., and C. Zhou, | |||
Li, Z., Peng, S., Negi, M., Zhao, Q., and C. Zhou, "PCEP | "PCEP Procedures and Protocol Extensions for Using PCE as | |||
Procedures and Protocol Extensions for Using PCE as a | a Central Controller (PCECC) for Segment Routing (SR) MPLS | |||
Central Controller (PCECC) for Segment Routing (SR) MPLS | ||||
Segment Identifier (SID) Allocation and Distribution.", | Segment Identifier (SID) Allocation and Distribution.", | |||
draft-ietf-pce-pcep-extension-pce-controller-sr-00 (work | Work in Progress, Internet-Draft, draft-ietf-pce-pcep- | |||
in progress), December 2020. | extension-pce-controller-sr-02, 25 March 2021, | |||
<https://datatracker.ietf.org/doc/html/draft-ietf-pce- | ||||
pcep-extension-pce-controller-sr-02>. | ||||
[I-D.dhody-pce-pcep-extension-pce-controller-srv6] | [PCECC-SRv6] | |||
Li, Z., Peng, S., Geng, X., and M. Negi, "PCEP Procedures | Li, Z., Peng, S., Geng, X., and M. S. Negi, "PCEP | |||
and Protocol Extensions for Using PCE as a Central | Procedures and Protocol Extensions for Using PCE as a | |||
Controller (PCECC) for SRv6", draft-dhody-pce-pcep- | Central Controller (PCECC) for SRv6", Work in Progress, | |||
extension-pce-controller-srv6-05 (work in progress), | Internet-Draft, draft-dhody-pce-pcep-extension-pce- | |||
November 2020. | controller-srv6-06, 21 February 2021, | |||
<https://datatracker.ietf.org/doc/html/draft-dhody-pce- | ||||
pcep-extension-pce-controller-srv6-06>. | ||||
[I-D.li-pce-controlled-id-space] | [PCE-ID] 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", draft-li-pce-controlled-id-space-07 | draft-li-pce-controlled-id-space-08, 22 February 2021, | |||
(work in progress), October 2020. | <https://datatracker.ietf.org/doc/html/draft-li-pce- | |||
controlled-id-space-08>. | ||||
[I-D.gont-numeric-ids-sec-considerations] | [SECURITY-ID] | |||
Gont, F. and I. Arce, "Security Considerations for | Gont, F. and I. Arce, "Security Considerations for | |||
Transient Numeric Identifiers Employed in Network | Transient Numeric Identifiers Employed in Network | |||
Protocols", draft-gont-numeric-ids-sec-considerations-06 | Protocols", Work in Progress, Internet-Draft, draft-gont- | |||
(work in progress), December 2020. | numeric-ids-sec-considerations-06, 5 December 2020, | |||
<https://datatracker.ietf.org/doc/html/draft-gont-numeric- | ||||
ids-sec-considerations-06>. | ||||
Appendix A. Contributor Addresses | Acknowledgments | |||
We would like to thank Robert Tao, Changjing Yan, Tieying Huang, | ||||
Avantika, and Aijun Wang for their useful comments and suggestions. | ||||
Thanks to Julien Meuric for shepherding this document and providing | ||||
valuable comments. Thanks to Deborah Brungard for being the | ||||
responsible AD. | ||||
Thanks to Victoria Pritchard for a very detailed RTGDIR review. | ||||
Thanks to Yaron Sheffer for the SECDIR review. Thanks to Gyan Mishra | ||||
for the Gen-ART review. | ||||
Thanks to Alvaro Retana, Murray Kucherawy, Benjamin Kaduk, Roman | ||||
Danyliw, Robert Wilton, Éric Vyncke, and Erik Kline for the IESG | ||||
review. | ||||
Contributors | ||||
Dhruv Dhody | Dhruv Dhody | |||
Huawei Technologies | Huawei Technologies | |||
Divyashree Techno Park, Whitefield | Divyashree Techno Park, Whitefield | |||
Bangalore, Karnataka 560066 | Bangalore 560066 | |||
Karnataka | ||||
India | India | |||
EMail: dhruv.ietf@gmail.com | Email: dhruv.ietf@gmail.com | |||
Satish Karunanithi | Satish Karunanithi | |||
Huawei Technologies | Huawei Technologies | |||
Divyashree Techno Park, Whitefield | Divyashree Techno Park, Whitefield | |||
Bangalore, Karnataka 560066 | Bangalore 560066 | |||
Karnataka | ||||
India | India | |||
EMail: satishk@huawei.com | Email: satishk@huawei.com | |||
Adrian Farrel | Adrian Farrel | |||
Old Dog Consulting | Old Dog Consulting | |||
UK | United Kingdom | |||
EMail: adrian@olddog.co.uk | Email: adrian@olddog.co.uk | |||
Xuesong Geng | Xuesong Geng | |||
Huawei Technologies | Huawei Technologies | |||
China | China | |||
Email: gengxuesong@huawei.com | Email: gengxuesong@huawei.com | |||
Udayasree Palle | Udayasree Palle | |||
EMail: udayasreereddy@gmail.com | Email: udayasreereddy@gmail.com | |||
Katherine Zhao | Katherine Zhao | |||
Futurewei Technologies | Futurewei Technologies | |||
EMail: katherine.zhao@futurewei.com | Email: katherine.zhao@futurewei.com | |||
Boris Zhang | Boris Zhang | |||
Telus Ltd. | Telus Ltd. | |||
Toronto | Toronto | |||
Canada | Canada | |||
EMail: boris.zhang@telus.com | Email: boris.zhang@telus.com | |||
Alex Tokar | Alex Tokar | |||
Cisco Systems | Cisco Systems | |||
Slovak Republic | Slovakia | |||
EMail: atokar@cisco.com | Email: atokar@cisco.com | |||
Authors' Addresses | Authors' Addresses | |||
Zhenbin Li | Zhenbin Li | |||
Huawei Technologies | Huawei Technologies | |||
Huawei Bld., No.156 Beiqing Rd. | Huawei Bld., No.156 Beiqing Rd. | |||
Beijing 100095 | Beijing | |||
100095 | ||||
China | China | |||
EMail: lizhenbin@huawei.com | Email: lizhenbin@huawei.com | |||
Shuping Peng | Shuping Peng | |||
Huawei Technologies | Huawei Technologies | |||
Huawei Bld., No.156 Beiqing Rd. | Huawei Bld., No.156 Beiqing Rd. | |||
Beijing 100095 | Beijing | |||
100095 | ||||
China | China | |||
EMail: pengshuping@huawei.com | Email: pengshuping@huawei.com | |||
Mahendra Singh Negi | Mahendra Singh Negi | |||
RtBrick Inc | RtBrick Inc | |||
N-17L, 18th Cross Rd, HSR Layout | N-17L, 18th Cross Rd, HSR Layout | |||
Bangalore, Karnataka 560102 | Bangalore 560102 | |||
Karnataka | ||||
India | India | |||
EMail: mahend.ietf@gmail.com | Email: mahend.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 | |||
USA | United States of America | |||
EMail: qzhao@ethericnetworks.com | Email: qzhao@ethericnetworks.com | |||
Chao Zhou | Chao Zhou | |||
HPE | HPE | |||
EMail: chaozhou_us@yahoo.com | Email: chaozhou_us@yahoo.com | |||
End of changes. 264 change blocks. | ||||
785 lines changed or deleted | 791 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/ |