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/