rfc9050xml2.original.xml | rfc9050.xml | |||
---|---|---|---|---|
<?xml version="1.0" encoding="us-ascii"?> | <?xml version='1.0' encoding='utf-8'?> | |||
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" | <!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent"> | |||
[]> | ||||
<?rfc toc="yes" ?> | ||||
<?rfc tocompact="yes"?> | ||||
<?rfc tocdepth="4"?> | ||||
<?rfc tocindent="yes"?> | ||||
<?rfc symrefs="yes" ?> | ||||
<?rfc sortrefs="no"?> | ||||
<?rfc rfcedstyle="yes"?> | ||||
<?rfc subcompact="no"?> | ||||
<?rfc compact="yes" ?> | ||||
<?rfc iprnotified="Yes" ?> | ||||
<?rfc strict="no" ?> | ||||
<rfc ipr="trust200902" | ||||
category="std" | ||||
docName="draft-ietf-pce-pcep-extension-for-pce-controller-14" | ||||
obsoletes="" | ||||
updates="" | ||||
submissionType="IETF" | ||||
xml:lang="en"> | ||||
<front> | ||||
<title abbrev="PCECC">PCEP Procedures and Protocol Extensions for | ||||
Using PCE as a Central Controller (PCECC) of LSPs</title> | ||||
<author initials="Z" | <rfc xmlns:xi="http://www.w3.org/2001/XInclude" number="9050" consensus="true" i | |||
surname="Li" | pr="trust200902" category="std" docName="draft-ietf-pce-pcep-extension-for-pce-c | |||
fullname="Zhenbin Li"> | ontroller-14" obsoletes="" updates="" submissionType="IETF" xml:lang="en" tocInc | |||
lude="true" tocDepth="4" symRefs="true" sortRefs="false" version="3"> | ||||
<!-- xml2rfc v2v3 conversion 3.5.0 --> | ||||
<front> | ||||
<title abbrev="PCECC">Path Computation Element Communication Protocol (PCEP) | ||||
Procedures and Extensions for Using the PCE as a Central Controller (PCECC) of | ||||
LSPs</title> | ||||
<seriesInfo name="RFC" value="9050"/> | ||||
<author initials="Z" surname="Li" fullname="Zhenbin Li"> | ||||
<organization>Huawei Technologies</organization> | <organization>Huawei Technologies</organization> | |||
<address> | <address> | |||
<postal> | <postal> | |||
<street>Huawei Bld., No.156 Beiqing Rd.</street> | <street>Huawei Bld., No.156 Beiqing Rd.</street> | |||
<city>Beijing </city> | <city>Beijing </city> | |||
<region></region> | <region/> | |||
<code>100095</code> | <code>100095</code> | |||
<country>China</country> | <country>China</country> | |||
</postal> | </postal> | |||
<email>lizhenbin@huawei.com</email> | <email>lizhenbin@huawei.com</email> | |||
</address> | </address> | |||
</author> | </author> | |||
<author initials="S" surname="Peng" fullname="Shuping Peng"> | <author initials="S" surname="Peng" fullname="Shuping Peng"> | |||
<organization>Huawei Technologies</organization> | <organization>Huawei Technologies</organization> | |||
<address> | <address> | |||
<postal> | <postal> | |||
<street>Huawei Bld., No.156 Beiqing Rd.</street> | <street>Huawei Bld., No.156 Beiqing Rd.</street> | |||
<city>Beijing</city> | <city>Beijing</city> | |||
<region></region> | <region/> | |||
<code>100095</code> | <code>100095</code> | |||
<country>China</country> | <country>China</country> | |||
</postal> | </postal> | |||
<email>pengshuping@huawei.com</email> | <email>pengshuping@huawei.com</email> | |||
</address> | </address> | |||
</author> | </author> | |||
<!--<author fullname="Dhruv Dhody" | ||||
initials="D" | ||||
surname="Dhody"> | ||||
<organization abbrev="Huawei Technologies">Huawei | ||||
Technologies</organization> | ||||
<address> | ||||
<postal> | ||||
<street>Divyashree Techno Park, Whitefield</street> | ||||
<city>Bangalore</city> | ||||
<region>Karnataka</region> | ||||
<code>560066</code> | ||||
<country>India</country> | ||||
</postal> | ||||
<email>dhruv.ietf@gmail.com</email> | ||||
</address> | ||||
</author> | ||||
<author initials="S" surname="Karunanithi" fullname="Satish Karunanithi"> | ||||
<organization>Huawei Technologies</organization> | ||||
<address> | ||||
<postal> | ||||
<street>Divyashree Techno Park, Whitefield</street> | ||||
<city>Bangalore</city> | ||||
<region>Karnataka</region> | ||||
<code>560066</code> | ||||
<country>India</country> | ||||
</postal> | ||||
<email>satishk@huawei.com</email> | ||||
</address> | ||||
</author>--> | ||||
<author initials="M" surname="Negi" fullname="Mahendra Singh Negi"> | <author initials="M" surname="Negi" fullname="Mahendra Singh Negi"> | |||
<organization>RtBrick Inc</organization> | <organization>RtBrick Inc</organization> | |||
<address> | <address> | |||
<postal> | <postal> | |||
<street>N-17L, 18th Cross Rd, HSR Layout</street> | <street>N-17L, 18th Cross Rd, HSR Layout</street> | |||
<city>Bangalore</city> | <city>Bangalore</city> | |||
<region>Karnataka</region> | <region>Karnataka</region> | |||
<code>560102</code> | <code>560102</code> | |||
<country>India</country> | <country>India</country> | |||
</postal> | </postal> | |||
<email>mahend.ietf@gmail.com</email> | <email>mahend.ietf@gmail.com</email> | |||
</address> | </address> | |||
</author> | </author> | |||
<author initials="Q" surname="Zhao" fullname="Quintin Zhao"> | ||||
<!--<author initials="A" | ||||
surname="Farrel" | ||||
fullname="Adrian Farrel"> | ||||
<organization>Juniper Networks, Inc</organization> | ||||
<address> | ||||
<postal> | ||||
<street></street> | ||||
<city></city> | ||||
<region></region> | ||||
<code></code> | ||||
<country>UK</country> | ||||
</postal> | ||||
<email>adrian@olddog.co.uk</email> | ||||
</address> | ||||
</author>--> | ||||
<author initials="Q" | ||||
surname="Zhao" | ||||
fullname="Quintin Zhao"> | ||||
<organization>Etheric Networks</organization> | <organization>Etheric Networks</organization> | |||
<address> | <address> | |||
<postal> | <postal> | |||
<street>1009 S CLAREMONT ST</street> | <street>1009 S Claremont St.</street> | |||
<city>SAN MATEO</city> | <city>San Mateo</city> | |||
<region>CA</region> | <region>CA</region> | |||
<code>94402</code> | <code>94402</code> | |||
<country>USA</country> | <country>United States of America</country> | |||
</postal> | </postal> | |||
<email>qzhao@ethericnetworks.com</email> | <email>qzhao@ethericnetworks.com</email> | |||
</address> | </address> | |||
</author> | </author> | |||
<author initials="C" | <author initials="C" surname="Zhou" fullname="Chao Zhou"> | |||
surname="Zhou" | ||||
fullname="Chao Zhou"> | ||||
<organization>HPE</organization> | <organization>HPE</organization> | |||
<address> | <address> | |||
<postal> | <postal> | |||
<street></street> | <street/> | |||
<city></city> | <city/> | |||
<region></region> | <region/> | |||
<code></code> | <code/> | |||
<country></country> | <country/> | |||
</postal> | </postal> | |||
<email>chaozhou_us@yahoo.com</email> | <email>chaozhou_us@yahoo.com</email> | |||
</address> | </address> | |||
</author> | </author> | |||
<date year="2021" /> | <date month="July" year="2021"/> | |||
<area>Routing</area> | <area>Routing</area> | |||
<workgroup>PCE Working Group</workgroup> | <workgroup>PCE Working Group</workgroup> | |||
<keyword>SDN</keyword> | ||||
<keyword>CCI</keyword> | ||||
<keyword>Central Control</keyword> | ||||
<abstract> | <abstract> | |||
<t>The Path Computation Element (PCE) is a core component of Software- | <t>The Path Computation Element (PCE) is a core component of Software-Defi | |||
Defined Networking (SDN) systems.</t> | ned Networking (SDN) systems.</t> | |||
<t>A PCE as a Central Controller (PCECC) can | ||||
<t>A PCE-based Central Controller (PCECC) can | ||||
simplify the processing of a distributed control plane by blending it | simplify 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. | |||
Thus, the LSP can be | Thus, the Label Switched Path (LSP) can be | |||
calculated/set up/initiated and the label forwarding entries can also be | calculated/set up/initiated and the label-forwarding entries can also be | |||
downloaded through a centralized PCE server to each network device | downloaded through a centralized PCE server to each network device | |||
along the path, while leveraging the existing PCE technologies as | along the path while leveraging the existing PCE technologies as | |||
much as possible.</t> | much as possible.</t> | |||
<t>This document specifies the procedures and Path Computation Element Com | ||||
<t>This document specifies the procedures and PCEP extensions for | munication Protocol (PCEP) extensions for | |||
using the PCE as the central controller for provisioning labels along the pat h of the static LSP. | using the PCE as the central controller for provisioning labels along the pat h of the static LSP. | |||
</t> | </t> | |||
</abstract> | ||||
</abstract> | ||||
</front> | </front> | |||
<middle> | <middle> | |||
<section title="Introduction" | <section toc="default" numbered="true"> | |||
toc="default"> | <name>Introduction</name> | |||
<t>The Path Computation Element (PCE) <xref target='RFC4655'/> was developed | <t>The Path Computation Element (PCE) <xref target="RFC4655" format="defau | |||
to offload the | lt"/> was developed to offload the | |||
path computation function from routers in an MPLS traffic-engineered | path computation function from routers in an MPLS traffic-engineered (TE) | |||
network. It can compute optimal paths for | network. It can compute optimal paths for | |||
traffic across a network and can also update the paths to reflect | traffic across a network and can also update the paths to reflect | |||
changes in the network or traffic demands. Since then, the role and function | changes in the network or traffic demands. Since then, the role and function | |||
of the PCE has grown to | of the PCE have grown to | |||
cover a number of other uses (such as GMPLS <xref target='RFC7025'/>) and to | cover a number of other uses (such as GMPLS <xref target="RFC7025" format="de | |||
allow | fault"/>) and to allow | |||
delegated control <xref target='RFC8231'/> and PCE-initiated use of network | delegated control <xref target="RFC8231" format="default"/> and PCE-initiated | |||
resources <xref target='RFC8281'/>.</t> | use of network | |||
resources <xref target="RFC8281" format="default"/>.</t> | ||||
<t>According to <xref target='RFC7399'/>, Software-Defined Networking (SDN) r | <t>According to <xref target="RFC7399" format="default"/>, Software-Define | |||
efers to a | d 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 | |||
component as performing specific computations to place traffic flows | component as performing specific computations to place traffic flows | |||
within the network given knowledge of the availability of network | within the network given knowledge of the availability of network | |||
resources, how other forwarding devices are programmed, and the way | resources, how other forwarding devices are programmed, and the way | |||
that other flows are routed. This is the function and purpose of a | that other flows are routed. This is the function and purpose of a | |||
PCE, and the way that a PCE integrates into a wider network control | PCE, and the way that a PCE integrates into a wider network control | |||
system (including an SDN system) is presented in <xref target='RFC7491'/>.</t | system (including an SDN system) is presented in <xref target="RFC7491" forma | |||
> | t="default"/>.</t> | |||
<t>In early PCE implementations, where the PCE was used to derive paths | <t>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) <xref target='RFC5440' />. | Path Computation Element Communication Protocol (PCEP) <xref target="RFC5440" format="default"/>. | |||
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 <xref target='RFC8281'/>.</t> | requests to the network for LSP establishment <xref target="RFC8281" format=" | |||
default"/>.</t> | ||||
<t>PCE was developed to derive paths for MPLS Label Switched Paths | <t>The PCE was developed to derive paths for MPLS LSPs, which are supplied | |||
(LSPs), which are supplied to the head end of the LSP using the Path | to the head end of the LSP using the PCEP. But SDN has a broader | |||
Computation Element Communication Protocol (PCEP). But SDN has a broader | applicability than signaled MPLS and GMPLS TE networks, and the PCE may be us | |||
applicability than signaled MPLS and GMPLS traffic-engineered | ed to determine paths in a range | |||
(TE) networks, and the PCE may be used to determine paths in a range | ||||
of use cases. PCEP has been proposed as a control protocol for | of use cases. PCEP has been proposed as a control protocol for | |||
use in these environments to allow the PCE to be fully enabled as a | use in these environments to allow the PCE to be fully enabled as a | |||
central controller.</t> | central controller.</t> | |||
<t><xref target="RFC8283" format="default"/> introduces the architecture f | ||||
<t><xref target='RFC8283'/> introduces the architecture for PCE as a central | or the PCE as a central | |||
controller as an extension of the architecture described in <xref target='RFC | controller as an extension to the architecture described in <xref target="RFC | |||
4655'/> | 4655" format="default"/> | |||
and assumes the continued use of PCEP as the protocol used between | and assumes the continued use of PCEP as the protocol used between the PCE an | |||
PCE and PCC. <xref target='RFC8283'/> further examines the motivations and a | d PCC. <xref target="RFC8283" format="default"/> further examines the motivatio | |||
pplicability | ns and applicability | |||
for PCEP as a Southbound Interface (SBI), and introduces the implications for | for PCEP as a Southbound Interface (SBI) and introduces the implications for | |||
the | the | |||
protocol. <xref target='I-D.ietf-teas-pcecc-use-cases'/> describes the use c | protocol. <xref target="I-D.ietf-teas-pcecc-use-cases" format="default"/> de | |||
ases for | scribes the use cases for | |||
the PCECC architecture.</t> | the PCECC architecture.</t> | |||
<t>A PCECC can | ||||
<t>A PCE-based Central Controller (PCECC) can | ||||
simplify the processing of a distributed control plane by blending it | simplify 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. | |||
Thus, the LSP can be | Thus, the LSP can be | |||
calculated/setup/initiated and the label forwarding entries can also be | calculated/set up/initiated and the label-forwarding entries can also be | |||
downloaded through a centralized PCE server to each network device | downloaded through a centralized PCE server to each network device | |||
along the path while leveraging the existing PCE technologies as | along the path while leveraging the existing PCE technologies as | |||
much as possible.</t> | much as possible.</t> | |||
<t>This document specifies the procedures and PCEP extensions for | ||||
<t>This document specifies the procedures and PCEP extensions for | ||||
using the PCE as the central controller for static LSPs, where | using the PCE as the central controller for static LSPs, where | |||
LSPs can be provisioned as explicit label instructions at each | LSPs can be provisioned as explicit label instructions at each | |||
hop on the end-to-end path. Each router along the path must be | 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 PCE-based controller keeps a view of the network and | to reserve. 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 | determines 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. </t> | communicate with each router along the path of the end-to-end LSP. </t> | |||
<t>While this document is focused on the procedures for the static LSPs (r | ||||
<t>While this document is focused on the procedures for the static LSPs (refe | eferred to as the basic PCECC mode in <xref target="SEC_M" format="default"/>), | |||
rred to as basic PCECC mode in <xref target="SEC_M"/>), the mechanisms and proto | the mechanisms and protocol encodings are specified in such a way that extension | |||
col encodings are specified in such a way that extensions for other use cases ar | s for other use cases are easy to achieve. For example, the extensions for the P | |||
e easy to achieve. For example, the extensions for PCECC for Segment Routing (SR | CECC for Segment Routing (SR) are specified in <xref target="I-D.ietf-pce-pcep-e | |||
) are specified in <xref target='I-D.ietf-pce-pcep-extension-pce-controller-sr'/ | xtension-pce-controller-sr" format="default"/> and <xref target="I-D.dhody-pce-p | |||
> and <xref target='I-D.dhody-pce-pcep-extension-pce-controller-srv6'/>.</t> | cep-extension-pce-controller-srv6" format="default"/>.</t> | |||
<!--<t>[Important Note - Note that this document achieves this by defining a | ||||
new PCEP message. | ||||
The authors and WG also debated on the use of existing PCEP messages. | ||||
<xref target="Procedures"/> defines the first approach where as <xref target | ||||
="appendix"/> | ||||
defines the latter. The authors are open to either of the approach and | ||||
will follow the direction of the WG.]</t>--> | ||||
<section title="Requirements Language" | ||||
toc="default"> | ||||
<t>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 <xref target="RFC2119" /> <xref target="RFC8174"/> whe | ||||
n, and only when, they | ||||
appear in all capitals, as shown here.</t> | ||||
</section> | ||||
</section> | </section> | |||
<section title="Terminology" | <section toc="default" numbered="true"> | |||
toc="default"> | <name>Terminology</name> | |||
<t>The terminology used in this document is the same as that described in the | <t>The terminology used in this document is the same as that described in the | |||
<xref target="RFC8283"/>.</t> | <xref target="RFC8283" format="default"/>.</t> | |||
<section toc="default" numbered="true"> | ||||
<name>Requirements Language</name> | ||||
<t> | ||||
The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQU | ||||
IRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL | ||||
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14> | ||||
RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>", | ||||
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to | ||||
be interpreted as | ||||
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> | ||||
when, and only when, they appear in all capitals, as shown here. | ||||
</t> | ||||
</section> | ||||
</section> | </section> | |||
<section title="Basic PCECC Mode" | <section toc="default" anchor="SEC_M" numbered="true"> | |||
toc="default" | <name>Basic PCECC Mode</name> | |||
anchor="SEC_M"> | <t>In this mode, LSPs are provisioned as explicit label instructions at ea | |||
<t>In this mode, LSPs are provisioned as explicit label instructions at each | ch | |||
hop on the end-to-end path. Each router along the path must be | 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.</t> | along the path of the end-to-end LSP.</t> | |||
<t><xref target='RFC8283'/> examines the motivations and applicability for | <t><xref target="RFC8283" format="default"/> examines the motivations and | |||
PCECC and use of PCEP as an SBI. Section 3.1.2. of <xref target='RFC8283'/> | applicability for the | |||
highlights the use of PCECC for label allocation along the static LSPs and | PCECC and use of PCEP as an SBI. <xref target="RFC8283" sectionFormat="of" se | |||
ction="3.1.2"/> | ||||
highlights the use of the PCECC for label allocation along the static LSPs, a | ||||
nd | ||||
it simplifies the processing of a distributed | it simplifies the processing of a distributed | |||
control plane by blending it with elements of SDN and without | control plane by blending it with elements of SDN and without | |||
necessarily completely replacing it. This allows the operator to introduce | necessarily completely replacing it. This allows the operator to introduce | |||
the advantages of SDN (such as programmability) into the network. Further Sec | the advantages of SDN (such as programmability) into the network. Further, <x | |||
tion 3.3. of <xref target='I-D.ietf-teas-pcecc-use-cases'/> describes some of th | ref target="I-D.ietf-teas-pcecc-use-cases" sectionFormat="of" section="3.3"/> de | |||
e scenarios where the PCECC technique could be useful. Section 4 of <xref target | scribes some of the scenarios where the PCECC technique could be useful. <xref t | |||
='RFC8283'/> | arget="RFC8283" sectionFormat="of" section="4"/> | |||
also describe the implications on the protocol when used as an SDN SBI. The o | also describes the implications on the protocol when used as an SDN SBI. The | |||
perator needs to evaluate the advantages offered by PCECC against the operationa | operator needs to evaluate the advantages offered by the PCECC against the opera | |||
l and scalability needs of the PCECC. </t> | tional and scalability needs of the PCECC. </t> | |||
<t>As per Section 3.1.2. of | <t>As per <xref target="RFC8283" sectionFormat="of" section="3.1.2"/>, the | |||
<xref target='RFC8283'/>, the PCE-based controller will take responsibility f | PCE-based controller will take responsibility for | |||
or | ||||
managing some part of the MPLS label space for each of the routers | managing some part of the MPLS label space for each of the routers | |||
that it controls, and may take wider responsibility for partitioning | that it controls and may take wider responsibility for partitioning | |||
the label space for each router and allocating different parts for | the label space for each router and allocating different parts for | |||
different uses. The PCC MUST NOT make allocations from the label space set as ide for the PCE to avoid overlap and collisions of label allocations. It is RECO MMENDED that PCE makes allocations (from the label space set aside for the PCE) for all nodes along the path. For the purpose | different uses. The PCC <bcp14>MUST NOT</bcp14> make allocations from the lab el space set aside for the PCE to avoid overlap and collisions of label allocati ons. It is <bcp14>RECOMMENDED</bcp14> that the PCE makes allocations (from the l abel space set aside for the PCE) for all nodes along the path. For the purpose | |||
of this document, it is assumed that the exclusive label range to be used by a PCE | of this document, 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 capabil ity to | is known and set on both PCEP peers. A future extension could add the capabil ity to | |||
advertise this range via a possible PCEP extension as well (see <xref target= "I-D.li-pce-controlled-id-space"/>). | advertise this range via a possible PCEP extension as well (see <xref target= "I-D.li-pce-controlled-id-space" format="default"/>). | |||
The rest of the processing is similar | The rest of the processing is similar | |||
to the existing stateful PCE mechanism.</t> | to the existing stateful PCE mechanism.</t> | |||
<t>This document also allows a case where the label space is maintained by th | <t>This document also allows a case where the label space is maintained by | |||
e PCC and the labels are | the PCC and the labels are | |||
allocated by it. In this case, the PCE should request the allocation from | allocated by it. In this case, the PCE should request the allocation from t | |||
PCC as described in <xref target="PCC"/>.</t> | he | |||
PCC, as described in <xref target="PCC" format="default"/>.</t> | ||||
</section> | </section> | |||
<section title="PCEP Requirements" | <section toc="default" anchor="SEC_R" numbered="true"> | |||
toc="default" | <name>PCEP Requirements</name> | |||
anchor="SEC_R"> | <t>The following key requirements should be considered when | |||
<t>The following key requirements should be considered when | ||||
designing the PCECC-based solution:</t> | designing the PCECC-based solution:</t> | |||
<t> | <ol spacing="normal" type="1"> | |||
<list style="numbers"> | <li>A PCEP speaker supporting this document needs to have the capability | |||
<t>A PCEP speaker supporting this document needs to have the capability to | to | |||
advertise its PCECC capability to its peers.</t> | advertise its PCECC capability to its peers.</li> | |||
<li>A PCEP speaker needs means to identify PCECC-based LSPs in the | ||||
<!--<t>PCEP speaker not supporting this draft be able to reject | PCEP messages.</li> | |||
PCECC related extensions with a error reason code that indicates that thi | <li>PCEP procedures need to allow for PCC-based label allocations.</li> | |||
s feature is not | <li>PCEP procedures need to provide a means to update (or clean up) labe | |||
supported.</t>--> | l entries downloaded to the PCC.</li> | |||
<li>PCEP procedures need to provide a means to synchronize the labels be | ||||
<t>A PCEP speaker need means to identify PCECC-based LSP in the | tween | |||
PCEP messages.</t> | the PCE and the PCC via PCEP messages.</li> | |||
</ol> | ||||
<t>PCEP procedures need to allow for PCC-based label allocations.</t> | ||||
<t>PCEP procedures need to provide a means to update (or clean up) label entr | ||||
ies downloaded to the PCC.</t> | ||||
<t>PCEP procedures need to provide a means to synchronize the labels between | ||||
the PCE and the PCC via PCEP messages.</t> | ||||
</list> | ||||
</t> | ||||
</section> | </section> | |||
<section title="Procedures for Using the PCE as a Central Controller (PCECC) | <section toc="default" anchor="Procedures" numbered="true"> | |||
" | <name>Procedures for Using the PCE as a Central Controller (PCECC)</name> | |||
toc="default" anchor="Procedures"> | <section toc="default" numbered="true"> | |||
<section title="Stateful PCE Model" | <name>Stateful PCE Model</name> | |||
toc="default"> | <t>Active stateful PCE is described in <xref target="RFC8231" format="de | |||
<t>Active stateful PCE is described in <xref target='RFC8231'/>. PCE | fault"/>. A PCE | |||
as a central controller (PCECC) reuses the existing active stateful PCE | as a Central Controller (PCECC) reuses the existing active stateful PCE | |||
mechanism as much as possible to control LSPs.</t> | mechanism as much as possible to control LSPs.</t> | |||
</section> | </section> | |||
<section toc="default" numbered="true"> | ||||
<section title="New LSP Functions" | <name>New LSP Functions</name> | |||
toc="default"> | <t>Several new functions are required in PCEP to support the PCECC. This | |||
document extends the | ||||
<t>Several new functions are required in PCEP to support PCECC. This document | existing messages to support the new functions required by the PCECC:</t> | |||
extends the | <dl newline="false" spacing="normal"> | |||
existing messages to support the new functions required by PCECC:</t> | <dt>PCInitiate:</dt> | |||
<t> | <dd>A PCEP message described in <xref target="RFC8281" format="default | |||
<list style="hanging"> | "/>. | |||
<t hangText="PCInitiate:">a PCEP message described in <xref target='RF | A PCInitiate message is used to set up a PCE-initiated LSP based on a | |||
C8281'/>. | PCECC mechanism. | |||
PCInitiate message is used to set up PCE-Initiated LSP based on PCECC | It is also extended for Central Controller Instructions (CCI) (downloa | |||
mechanism. | d or clean up the label-forwarding instructions in the context of this document) | |||
It is also extended for Central Controller Instructions (CCI) (downloa | on all nodes along the path, as described in <xref target="SEC_PCInitiate" form | |||
d or clean up the Label forwarding instructions in the context of this document) | at="default"/>.</dd> | |||
on all nodes along the path as described in <xref target='SEC_PCInitiate'/>.</t | <dt>PCRpt:</dt> | |||
> | <dd>A PCEP message described in <xref target="RFC8231" format="default | |||
"/>. | ||||
<t hangText="PCRpt:">a PCEP message described in <xref target='RFC8231 | A PCRpt message is used to send the PCECC LSP Reports. It is also exte | |||
'/>. | nded to report the set of CCI (label-forwarding instructions in the context of t | |||
PCRpt message is used to send PCECC LSP Reports. It is also extended t | his document) received | |||
o report the set of Central Controller Instructions (CCI) (label forwarding inst | from the PCE, as described in <xref target="SEC_PCRpt" format="default | |||
ructions in the context of this document) received | "/>. <xref target="sec_label_db_sync" format="default"/> describes the use of a | |||
from the PCE as described in <xref target='SEC_PCRpt'/>. <xref target= | PCRpt message during synchronization.</dd> | |||
"sec_label_db_sync"/> describes the use of PCRpt message during synchronization. | <dt>PCUpd:</dt> | |||
</t> | <dd>A PCEP message described in <xref target="RFC8231" format="default | |||
"/>. | ||||
<t hangText="PCUpd:">a PCEP message described in <xref target='RFC8231 | A PCUpd message is used to send the PCECC LSP Updates.</dd> | |||
'/>. | </dl> | |||
PCUpd message is used to send PCECC LSP Updates.</t> | <t>The new functions defined in this document are mapped onto the PCEP messa | |||
<!--<t hangText="(PCLabelUpd):">a new PCEP message sent by a PCE to a | ges, as | |||
PCC | shown in <xref target="SEC_FIG1" format="default"/>.</t> | |||
to download or cleanup the Label entry. The PCLabelUpd | <table anchor="SEC_FIG1" align="center"> | |||
message described in <xref target="SEC_PCLabelUpd"/>.</t> | <name>Functions Mapped to the PCEP Messages</name> | |||
<t hangText="(PCLabelRpt):">a new PCEP message sent by a PCC to a PCE | <thead> | |||
to | <tr> | |||
report the set of labels for which explicit action is required | <th align="left">Function</th> | |||
from PCE to update or cleanup or do nothing for these Label entries. | <th align="left">Message</th> | |||
The PCLabelRpt message described in <xref target="SEC_PCLabelRpt"/>.</ | </tr> | |||
t>--> | </thead> | |||
</list> | <tbody> | |||
</t> | <tr> | |||
<td align="left">PCECC Capability advertisement </td> | ||||
<!--<t>[Editor's Note: This document defines new messages PCLabelUpd and | <td align="left">Open </td> | |||
PCLabelRpt. The authors and WG also debated on the use of existing PCEP me | </tr> | |||
ssages. | <tr> | |||
See <xref target="appendix"/> on how the existing messages can be extended | <td align="left">Label entry Add </td> | |||
to add this functionality. WG needs to decide the final direction i.e. new | <td align="left">PCInitiate </td> | |||
specific messages | </tr> | |||
are needed or existing PCEP messages can be extended.]</t>--> | <tr> | |||
<td align="left">Label entry Clean up </td> | ||||
<t>The new functions defined in this document are mapped onto the PCEP messa | <td align="left">PCInitiate </td> | |||
ges as | </tr> | |||
shown in <xref target="SEC_FIG1"/>.</t> | <tr> | |||
<td align="left">PCECC-Initiated LSP </td> | ||||
<texttable anchor="SEC_FIG1" style="none" suppress-title="false" title="Fun | <td align="left">PCInitiate </td> | |||
ctions mapped to the PCEP messages" align="center"> | </tr> | |||
<ttcol align="left" width="70%">Function</ttcol> | <tr> | |||
<ttcol align="left" width="30%">Message</ttcol> | <td align="left">PCECC LSP Update </td> | |||
<c>PCECC Capability advertisement </c> | <td align="left">PCUpd </td> | |||
<c>Open </c> | </tr> | |||
<tr> | ||||
<c>Label entry Add </c> | <td align="left">PCECC LSP State Report </td> | |||
<c>PCInitiate </c> | <td align="left">PCRpt </td> | |||
</tr> | ||||
<c>Label entry Clean up </c> | <tr> | |||
<c>PCInitiate </c> | <td align="left">PCECC LSP Delegation </td> | |||
<td align="left">PCRpt </td> | ||||
<c>PCECC Initiated LSP </c> | </tr> | |||
<c>PCInitiate </c> | <tr> | |||
<td align="left">PCECC Label Report </td> | ||||
<c>PCECC LSP Update </c> | <td align="left">PCRpt </td> | |||
<c>PCUpd </c> | </tr> | |||
</tbody> | ||||
<c>PCECC LSP State Report </c> | </table> | |||
<c>PCRpt </c> | </section> | |||
<section toc="default" numbered="true"> | ||||
<c>PCECC LSP Delegation </c> | <name>New PCEP Object</name> | |||
<c>PCRpt </c> | <t>This document defines a new PCEP object called CCI (<xref target="SEC | |||
_CCI" format="default"/>) to specify the Central Controller Instructions. In the | ||||
<c>PCECC Label Report </c> | scope of this document, this is limited to label-forwarding instructions. Futur | |||
<c>PCRpt </c> | e documents can create new CCI object-types for other types of Central Controlle | |||
r Instructions. The CC-ID is the unique identifier for the CCI in PCEP. The PCEP | ||||
</texttable> | messages are extended in this document to handle the PCECC operations.</t> | |||
</section> | ||||
</section> | <section toc="default" numbered="true"> | |||
<section title="New PCEP Object" | <name>PCECC Capability Advertisement</name> | |||
toc="default"> | <t>During the PCEP initialization phase, PCEP speakers (PCE or PCC) adve | |||
<t>This document defines a new PCEP object called CCI (<xref target="SEC | rtise their support of and willingness to use PCEP extensions for the PCECC usin | |||
_CCI"/>) to specify the central controller instructions. In the scope of this do | g these elements in the OPEN message:</t> | |||
cument, this is limited to Label forwarding instructions. Future documents can c | <ul spacing="normal"> | |||
reate new CCI object-types for other types of central controller instructions. T | <li>a new Path Setup Type (PST) (<xref target="SEC_PATH" format="defau | |||
he CC-ID is the unique identifier for the central controller instructions in PCE | lt"/>) in the PATH-SETUP-TYPE-CAPABILITY TLV to indicate support for PCEP extens | |||
P. The PCEP messages are extended in this document to handle the PCECC operation | ions for the PCECC - 2 (Traffic engineering path is set up using PCECC mode)</li | |||
s.</t> | > | |||
</section> | <li>a new PCECC-CAPABILITY sub-TLV (<xref target="SEC_PCECC_CAP_TLV" f | |||
ormat="default"/>) with the L bit set to '1' inside the PATH-SETUP-TYPE-CAPABILI | ||||
<section title="PCECC Capability Advertisement" | TY TLV to indicate a willingness to use PCEP extensions for the PCECC-based Cent | |||
toc="default"> | ral Controller Instructions for label download</li> | |||
<t>During the PCEP Initialization Phase, PCEP Speakers (PCE or PCC) advertise th | <li>the STATEFUL-PCE-CAPABILITY TLV <xref target="RFC8231" format="def | |||
eir support of and willingness to use PCEP extensions for PCECC using these elem | ault"/> (with the I flag set <xref target="RFC8281" format="default"/>)</li> | |||
ents in the OPEN message:<list style="symbols"> | </ul> | |||
<t>The new PST is to be listed in the PATH-SETUP-TYPE-CAPABILITY TLV by | ||||
<t>A new Path Setup Type (PST) (<xref target="SEC_PATH"/>) in the PATH-SETUP- | all PCEP speakers that support the PCEP extensions for the PCECC in this documen | |||
TYPE-CAPABILITY TLV to indicate support for PCEP extensions for PCECC - TBD1 (Pa | t.</t> | |||
th is set up via PCECC mode)</t> | <t>The new PCECC-CAPABILITY sub-TLV is included in the PATH-SETUP-TYPE-C | |||
<t>A new PCECC-CAPABILITY sub-TLV (<xref target="SEC_PCECC_CAP_TLV"/>) with t | APABILITY TLV in the OPEN object to indicate a willingness to use the PCEP exten | |||
he L bit set to 1 inside the PATH-SETUP-TYPE-CAPABILITY TLV to indicate a willin | sions for the PCECC during the established PCEP session. Using the L bit in this | |||
gness to use PCEP extensions for PCECC based central controller instructions for | TLV, the PCE shows the intention to function as a PCECC server, and the PCC sho | |||
label download</t> | ws a willingness to act as a PCECC client for label download instructions (see < | |||
<t>The STATEFUL-PCE-CAPABILITY TLV (<xref target="RFC8231"/>) (with the I fla | xref target="SEC_PCECC_CAP_TLV" format="default"/>).</t> | |||
g set <xref target="RFC8281"/>)</t> | <t>If the PCECC-CAPABILITY sub-TLV is advertised and the STATEFUL-PCE-CA | |||
</list></t> | PABILITY TLV is not advertised, or is advertised without the I flag set, in the | |||
OPEN object, the receiver <bcp14>MUST</bcp14>:</t> | ||||
<t>The new Path Setup Type is to be listed in the PATH-SETUP-TYPE-CAPABILITY TLV | <ul spacing="normal"> | |||
by all PCEP speakers which support the PCEP extensions for PCECC in this docume | <li>send a PCErr message with Error-Type=19 (Invalid Operation) and Er | |||
nt.</t> | ror-value=17 (Stateful PCE capability was not advertised) and</li> | |||
<li>terminate the session.</li> | ||||
<t>The new PCECC-CAPABILITY sub-TLV is included in PATH-SETUP-TYPE-CAPABILITY TL | </ul> | |||
V in the OPEN object to indicate a willingness to use the PCEP extensions for PC | <t>If a PCEP speaker receives the PATH-SETUP-TYPE-CAPABILITY TLV with th | |||
ECC during the established PCEP session. Using the L bit in this TLV, the PCE sh | e PCECC PST but without the PCECC-CAPABILITY sub-TLV, it <bcp14>MUST</bcp14>:</t | |||
ows the intention to function as a PCECC server, and the PCC shows a willingness | > | |||
to act as a PCECC client for label download instructions (see <xref target="SEC | <ul spacing="normal"> | |||
_PCECC_CAP_TLV"/>).</t> | <li>send a PCErr message with Error-Type=10 (Reception of an invalid o | |||
bject) and Error-value=33 (Missing PCECC Capability sub-TLV) and</li> | ||||
<t>If the PCECC-CAPABILITY sub-TLV is advertised and the STATEFUL-PCE-CAPABILITY | <li>terminate the PCEP session.</li> | |||
TLV is not advertised, or is advertised without the I flag set, in the OPEN Obj | </ul> | |||
ect, the receiver MUST:<list style="symbols"> | <t>The PCECC-CAPABILITY sub-TLV <bcp14>MUST NOT</bcp14> be used without | |||
<t>Send a PCErr message with Error-Type=19 (Invalid Operation) and Error-valu | the corresponding PST being listed in the PATH-SETUP-TYPE-CAPABILITY TLV. If it | |||
e=TBD4 (stateful PCE capability was not advertised)</t> | is present without the corresponding PST listed in the PATH-SETUP-TYPE-CAPABILIT | |||
<t>Terminate the session</t> | Y TLV, it <bcp14>MUST</bcp14> be ignored.</t> | |||
</list></t> | <t>If one or both speakers (PCE and PCC) have not indicated support and | |||
willingness to use the PCEP extensions for the PCECC, the PCEP extensions for th | ||||
<t>If a PCEP speaker receives the PATH-SETUP-TYPE-CAPABILITY TLV with the PCECC | e PCECC <bcp14>MUST NOT</bcp14> be used. If a PCECC operation is attempted when | |||
Path Setup Type but without the PCECC-CAPABILITY sub-TLV, it MUST:<list style="s | both speakers have not agreed in the OPEN messages, the receiver of the message | |||
ymbols"> | <bcp14>MUST</bcp14>:</t> | |||
<t>Send a PCErr message with Error-Type 10 (Reception of an invalid object) a | <ul spacing="normal"> | |||
nd Error-Value TBD2 (Missing PCECC-CAPABILITY sub-TLV)</t> | <li>send a PCErr message with Error-Type=19 (Invalid Operation) and Er | |||
<t>Terminate the PCEP session</t> | ror-value=16 (Attempted PCECC operations when PCECC capability was not advertise | |||
</list></t> | d) and</li> | |||
<li>terminate the PCEP session.</li> | ||||
<t>The PCECC-CAPABILITY sub-TLV MUST NOT be used without the corresponding Path | </ul> | |||
Setup Type being listed in the PATH-SETUP-TYPE-CAPABILITY TLV. If it is present | <t>A legacy PCEP speaker (that does not recognize the PCECC Capability s | |||
without the corresponding Path Setup Type listed in the PATH-SETUP-TYPE-CAPABILI | ub-TLV) will ignore the sub-TLV in accordance with <xref target="RFC8408" format | |||
TY TLV, it MUST be ignored.</t> | ="default"/> and <xref target="RFC5440" format="default"/>. As per <xref target= | |||
"RFC8408" format="default"/>, the legacy PCEP speaker, on receipt of an unsuppor | ||||
<t>If one or both speakers (PCE and PCC) have not indicated support and willingn | ted PST in a Request Parameter (RP) / Stateful PCE Request Parameter (SRP) objec | |||
ess to use the PCEP extensions for PCECC, the PCEP extensions for PCECC MUST NOT | t, will:</t> | |||
be used. If a PCECC operation is attempted when both speakers have not agreed i | <ul spacing="normal"> | |||
n the OPEN messages, the receiver of the message MUST:<list style="symbols"> | <li>send a PCErr message with Error-Type=21 (Invalid traffic engineeri | |||
<t>Send a PCErr message with Error-Type=19 (Invalid Operation) and Error-Valu | ng path setup type) and Error-value=1 (Unsupported path setup type) and </li> | |||
e=TBD3 (Attempted PCECC operations when PCECC capability was not advertised)</t> | <li>terminate the PCEP session.</li> | |||
<t>Terminate the PCEP session</t> | </ul> | |||
</list></t> | ||||
<t>A legacy PCEP speaker (that does not recognize the PCECC Capability sub-TLV) | ||||
will ignore the sub-TLV in accordance with <xref target="RFC8408"/> and <xref ta | ||||
rget="RFC5440"/>. As per <xref target="RFC8408"/>, the legacy PCEP speaker on re | ||||
ceipt of an unsupported PST in RP (Request Parameter) /SRP (Stateful PCE Request | ||||
Parameters) Object will:<list style="symbols"> | ||||
<t>Send a PCErr message with Error-Type = 21 (Invalid traffic engineering pat | ||||
h setup type) and Error-value = 1 (Unsupported path setup type) </t> | ||||
<t>Terminate the PCEP session</t> | ||||
</list></t> | ||||
<!--Old, above is the reworded section from Victoria <t>During the PCEP Initi | ||||
alization Phase, PCEP Speakers (PCE or PCC) | ||||
advertise their support of PCECC extensions.</t> | ||||
<t>This document defines a new Path Setup Type (PST) <xref target='RFC8408'/> | ||||
for PCECC, as follows:<list style="symbols"> | ||||
<t>PST = TBD1: Path is set up via PCECC mode.</t></list></t> | ||||
<t>A PCEP speaker MUST indicate its support of the function described | ||||
in this document by sending a PATH-SETUP-TYPE-CAPABILITY TLV in the | ||||
OPEN object with this new PST included in the PST list.</t> | ||||
<t>This document also defines the PCECC Capability sub-TLV <xref target="SEC_ | ||||
PCECC_CAP_TLV"/>. PCEP | ||||
speakers use this sub-TLV to exchange information about their PCECC | ||||
capability. If a PCEP speaker includes PST=TBD1 in the PST List of the | ||||
PATH-SETUP-TYPE-CAPABILITY TLV then the receiving peer MUST also include the | ||||
PCECC Capability sub-TLV (with the L bit set to 1) inside the PATH-SETUP-TYPE | ||||
-CAPABILITY TLV. If the | ||||
sub-TLV is absent or the L bit is not set to 1, then the receiving PCEP speak | ||||
er MUST send a PCErr message | ||||
with Error-Type 10 (Reception of an invalid object) and Error-Value | ||||
TBD2 (Missing PCECC Capability sub-TLV) and MUST then close the PCEP | ||||
session. If a PCEP speaker receives a PATH-SETUP-TYPE-CAPABILITY TLV | ||||
with a PCECC-CAPABILITY sub-TLV, but the PST list does not contain | ||||
PST=TBD1, then the PCEP speaker MUST ignore the PCECC-CAPABILITY sub-TLV.</t> | ||||
<t>The presence of the PST=TBD1 and PCECC Capability sub-TLV (with the L bit | ||||
set to 1, see <xref target="SEC_PCECC_CAP_TLV"/>) in a PCC's OPEN Object indicat | ||||
es that the PCC is willing to function as a PCECC client for label download inst | ||||
ructions. | ||||
The presence of the PST=TBD1 and PCECC Capability sub-TLV (with the L bit set | ||||
to 1) in a PCE's OPEN message indicates that the PCE is interested in function | ||||
as a PCECC server for label download instructions.</t> | ||||
<t>The PCEP extensions for PCECC for label download MUST NOT be used if one o | ||||
r | ||||
both PCEP Speakers have not included the PST=TBD1 or the PCECC Capability sub | ||||
-TLV (with the L bit set to 1) in their | ||||
respective OPEN message. If a PCEP speaker which supports the extensions of t | ||||
his draft but did not advertise this capability attempts a PCECC operation, then | ||||
a PCErr message with Error-Type=19 (Invalid Operation) and Error-Value=TBD3 (At | ||||
tempted PCECC operations when PCECC capability was not advertised) MUST be gener | ||||
ated by its peer and the PCEP session will be terminated. If a PCEP speaker does | ||||
not recognize the PCECC Capability sub-TLV, it will ignore the sub-TLV in accor | ||||
dance with <xref target='RFC8408'/> and <xref target='RFC5440'/>.</t> | ||||
<t>A PCC or a PCE MUST include both the PCECC-CAPABILITY sub-TLV (with the L | ||||
bit set to 1) and the STATEFUL-PCE-CAPABILITY TLV (<xref target='RFC8231'/>) (wi | ||||
th the I flag set <xref target='RFC8281'/>) in the OPEN Object to support the ex | ||||
tensions defined in this document. If the PCECC-CAPABILITY sub-TLV is advertised | ||||
and the STATEFUL-PCE-CAPABILITY TLV is not advertised in the OPEN Object, it MU | ||||
ST send a PCErr message with Error-Type=19 (Invalid Operation) and Error-value=T | ||||
BD4 (stateful PCE capability was not advertised) and terminate the session. This | ||||
error is also triggered if the PCECC-CAPABILITY sub-TLV is advertised and the I | ||||
flag in the STATEFUL-PCE-CAPABILITY TLV is not set.</t>--> | ||||
</section> | </section> | |||
<section toc="default" numbered="true"> | ||||
<name>LSP Operations</name> | ||||
<t> The PCEP messages pertaining to a PCECC <bcp14>MUST</bcp14> include | ||||
the PATH-SETUP-TYPE | ||||
TLV <xref target="RFC8408" format="default"/> in the SRP object <xref target= | ||||
"RFC8231" format="default"/> with the PST set to '2' | ||||
to clearly identify that the PCECC LSP is intended.</t> | ||||
<section toc="default" anchor="PCE-I" numbered="true"> | ||||
<name>PCE-Initiated PCECC LSP</name> | ||||
<t>The LSP instantiation operation is defined in <xref target="RFC8281 | ||||
" format="default"/>. In order to set up a PCE-initiated LSP based on the PCECC | ||||
mechanism, a PCE | ||||
sends a PCInitiate message with the PST set to '2' for the PCECC | ||||
(see <xref target="SEC_PATH" format="default"/>) to the ingress PCC.</t> | ||||
<t>The label-forwarding instructions (see <xref target="CCI" format="d | ||||
efault"/>) from the PCECC are sent after the initial PCInitiate and PCRpt messag | ||||
e exchange with the ingress PCC, as per <xref target="RFC8281" format="default"/ | ||||
> (see <xref target="SEC_FIG4" format="default"/>). This is done so that the PCE | ||||
P-specific identifier for the LSP (PLSP-ID) and other LSP identifiers can be obt | ||||
ained from the ingress and can be included in the label-forwarding instruction i | ||||
n the next set of PCInitiate messages along the path, as described below.</t> | ||||
<t>An LSP-IDENTIFIERS TLV <xref target="RFC8231" format="default"/> <b | ||||
cp14>MUST</bcp14> be included for the PCECC LSPs; it uniquely identifies the LSP | ||||
in the network. Note that the fields in the LSP-IDENTIFIERS TLV are described f | ||||
or the RSVP-signaled LSPs but are applicable to the PCECC LSP as well. The LSP o | ||||
bject is included in the CCI (label download <xref target="SEC_CCI" format="defa | ||||
ult"/>) to identify the PCECC LSP for this instruction. The PLSP-ID is the orig | ||||
inal identifier used by the ingress PCC, so a transit/egress Label Switching Rou | ||||
ter (LSR) could have multiple Central Controller Instructions that have the same | ||||
PLSP-ID. The PLSP-ID in combination with the source (in the LSP-IDENTIFIERS TLV | ||||
) <bcp14>MUST</bcp14> be unique. The PLSP-ID is included for maintainability rea | ||||
sons to ease debugging. As per <xref target="RFC8281" format="default"/>, the LS | ||||
P object could also include the SPEAKER-ENTITY-ID TLV to identify the PCE that i | ||||
nitiated these instructions. Also, the CC-ID is unique in each PCEP session, as | ||||
described in <xref target="SEC_CCI" format="default"/>.</t> | ||||
<t>On receipt of a PCInitiate message for the PCECC LSP, the PCC respo | ||||
nds with a PCRpt message with the status set to 'Going-up' and carrying the assi | ||||
gned PLSP-ID (see <xref target="SEC_FIG4" format="default"/>). The ingress PCC a | ||||
lso sets the D (Delegate) flag (see <xref target="RFC8231" format="default"/>) a | ||||
nd C (Create) flag (see <xref target="RFC8281" format="default"/>) in the LSP ob | ||||
ject. When the PCE receives this PCRpt message with the PLSP-ID, it assigns labe | ||||
ls along the path and sets up the path by sending a PCInitiate message to each n | ||||
ode along the path of the LSP, as per the PCECC technique. The CC-ID uniquely id | ||||
entifies the Central Controller Instructions within a PCEP session. Each node al | ||||
ong the path (PCC) responds with a PCRpt message to acknowledge the CCI with the | ||||
PCRpt messages including the CCI and LSP objects. </t> | ||||
<t>The ingress node would receive one CCI object with the O bit (out-l | ||||
abel) set. The transit node(s) would receive two CCI objects with the in-label C | ||||
CI without the O bit set and the out-label CCI with the O bit set. The egress no | ||||
de would receive one CCI object without the O bit set (see <xref target="SEC_FIG | ||||
4" format="default"/>). A node can determine its role based on the setting of th | ||||
e O bit in the CCI object(s) and the LSP-IDENTIFIERS TLV in the LSP object.</t> | ||||
<t>The LSP deletion operation for the PCE-initiated PCECC LSP is the s | ||||
ame as defined | ||||
in <xref target="RFC8281" format="default"/>. The PCE should further | ||||
perform the label entry cleanup operation, as described in | ||||
<xref target="SEC_CLEANUP" format="default"/>, for the corresponding LS | ||||
P.</t> | ||||
<section title="LSP Operations" | <figure anchor="SEC_FIG4"> | |||
toc="default"> | <name>PCE-Initiated PCECC LSP</name> | |||
<t> The PCEP messages pertaining to a PCECC MUST include PATH-SETUP-TYPE | <artwork align="left" alt="" name="" type=""><![CDATA[ | |||
TLV <xref target='RFC8408'/> in the SRP object <xref target='RFC8231'/> with | ||||
PST set to TBD1 | ||||
to clearly identify that PCECC LSP is intended.</t> | ||||
<section title="PCE-Initiated PCECC LSP" | ||||
toc="default" anchor="PCE-I"> | ||||
<t>The LSP Instantiation operation is defined in <xref target='RFC8281'/>. I | ||||
n order to set up a PCE-Initiated LSP based on the PCECC mechanism, a PCE | ||||
sends PCInitiate message with PST set to TBD1 for PCECC | ||||
(see <xref target="SEC_PATH"/>) to the ingress PCC.</t> | ||||
<t>The label forwarding instructions (see <xref target='CCI'/>) from PCECC are s | ||||
ent after the initial PCInitiate and PCRpt message exchange with the ingress PCC | ||||
as per <xref target='RFC8281'/> (see <xref target="SEC_FIG4"/>). This is done s | ||||
o that the PLSP-ID and other LSP identifiers can be obtained from the ingress an | ||||
d can be included in the label forwarding instruction in the next set of PCIniti | ||||
ate messages along the path as described below.</t> | ||||
<t>An LSP-IDENTIFIERS TLV <xref target='RFC8231'/> MUST be included for PCEC | ||||
C LSPs, it uniquely identifies the LSP in the network. Note that the fields in t | ||||
he LSP-IDENTIFIERS TLV are described for the RSVP-signaled LSPs but are applicab | ||||
le to the PCECC LSP as well. The LSP object is included in the central controlle | ||||
r instructions (label download <xref target="SEC_CCI"/>) to identify the PCECC L | ||||
SP for this instruction. The PLSP-ID is the original identifier used by the ing | ||||
ress PCC, so a transit/egress LSR could have multiple central controller instruc | ||||
tions 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 maintainabilit | ||||
y reasons to ease debugging. As per <xref target='RFC8281'/>, the LSP object cou | ||||
ld also include the SPEAKER-ENTITY-ID TLV to identify the PCE that initiated the | ||||
se instructions. Also, the CC-ID is unique in each PCEP session as described in | ||||
<xref target="SEC_CCI"/>.</t> | ||||
<t>On receipt of PCInitiate message for the PCECC LSP, the PCC responds with | ||||
a PCRpt message with the status set to "GOING-UP" and carrying the assigned PLS | ||||
P-ID (see <xref target="SEC_FIG4"/>). The ingress PCC also sets the D (Delegate) | ||||
flag (see <xref target='RFC8231'/>) and C (Create) flag (see <xref target='RFC8 | ||||
281'/>) in the LSP object. When the PCE receives this PCRpt message with the PLS | ||||
P-ID, it assigns labels along the path; and sets up the path by sending a PCInit | ||||
iate message to each node along the path of the LSP as per the PCECC technique. | ||||
The CC-ID uniquely identifies the central controller instruction within a PCEP s | ||||
ession. Each node along the path (PCC) responds with a PCRpt message to acknowle | ||||
dge the central controller instruction with the PCRpt messages including the cen | ||||
tral controller instruction (CCI) and the LSP objects. </t> | ||||
<t>The ingress node would receive one CCI object with O bit (out-label) set. | ||||
The transit node(s) would receive two CCI objects with the in-label CCI without | ||||
an O bit set and the out-label CCI with O bit set. The egress node would receive | ||||
one CCI object without O bit set (see <xref target="SEC_FIG4"/>). A node can de | ||||
termine its role based on the setting of the O bit in the CCI object(s) and the | ||||
LSP-IDENTIFIERS TLV in the LSP object.</t> | ||||
<t>The LSP deletion operation for PCE-Initiated PCECC LSP is the same as def | ||||
ined | ||||
in <xref target='RFC8281'/>. The PCE should further | ||||
perform Label entry clean up operation as described in | ||||
<xref target="SEC_CLEANUP"/> for the corresponding LSP.</t> | ||||
<t>The PCE-Initiated PCECC LSP setup sequence is shown in <xref target="SEC_ | ||||
FIG4"/>.</t> | ||||
<figure align="left" | ||||
alt="" | ||||
height="" | ||||
suppress-title="false" | ||||
title="PCE-Initiated PCECC LSP" | ||||
width="" | ||||
anchor="SEC_FIG4"> | ||||
<artwork align="left" | ||||
alt="" | ||||
height="" | ||||
name="" | ||||
type="" | ||||
width="" | ||||
xml:space="preserve"> | ||||
<![CDATA[ | ||||
+-------+ +-------+ | +-------+ +-------+ | |||
|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) | | |||
]]> | ]]></artwork> | |||
</artwork> | </figure> | |||
</figure> | <t>Once the label operations are completed, the PCE <bcp14>MUST</bcp14 | |||
<t>Once the label operations are completed, the PCE MUST send a PCUpd me | > send a PCUpd message to the | |||
ssage to the | ingress PCC. As per <xref target="RFC8231" format="default"/>, the PCUpd mes | |||
ingress PCC. The PCUpd message is as per <xref target='RFC8231'/> with D fla | sage is with the D flag set.</t> | |||
g set.</t> | <t>The PCECC LSPs are considered to be 'up' by default (on receipt of | |||
<t>The PCECC LSPs are considered to be 'up' by default (on receipt of PC | a PCUpd message from the PCE). | |||
Upd message from PCE). | The ingress could further choose to deploy a data-plane check | |||
The ingress could further choose to deploy a data plane check | ||||
mechanism and report the status back to the PCE via a PCRpt message to m ake sure that the correct label instructions are made along the path of the PCEC C LSP (and it is ready to carry traffic). The exact mechanism is out of scope of this document.</t> | mechanism and report the status back to the PCE via a PCRpt message to m ake sure that the correct label instructions are made along the path of the PCEC C LSP (and it is ready to carry traffic). The exact mechanism is out of scope of this document.</t> | |||
<t>In the case where the label allocations are made by the PCC itself | ||||
<t>In the case where the label allocations are made by the PCC itself (see <xref | (see <xref target="PCC" format="default"/>), the PCE could request an allocation | |||
target="PCC"/>), the PCE could request an allocation to be made by the PCC, and | to be made by the PCC; then, the PCC would send a PCRpt message with the alloca | |||
then the PCC would send a PCRpt with the allocated label encoded in | ted label encoded in | |||
the CC-ID object as shown in <xref target="SEC_FIG4b"/> in the configuratio | the CC-ID object (as shown in <xref target="SEC_FIG4b" format="default"/>) | |||
n sequence from the egress towards the ingress along the path.</t> | in the configuration sequence from the egress towards the ingress along the path | |||
<figure align="left" | .</t> | |||
alt="" | <figure anchor="SEC_FIG4b"> | |||
height="" | <name>PCE-Initiated PCECC LSP (PCC Allocation)</name> | |||
suppress-title="false" | <artwork align="left" alt="" name="" type=""><![CDATA[ | |||
title="PCE-Initiated PCECC LSP (PCC allocation)" | ||||
width="" | ||||
anchor="SEC_FIG4b"> | ||||
<artwork align="left" | ||||
alt="" | ||||
height="" | ||||
name="" | ||||
type="" | ||||
width="" | ||||
xml:space="preserve"> | ||||
<![CDATA[ | ||||
+-------+ +-------+ | +-------+ +-------+ | |||
|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 | |||
]]></artwork> | ||||
]]> | </figure> | |||
</artwork> | <t>In this example, it should be noted that the request is made to the | |||
</figure> | ||||
<t>It should be noted that in this example, 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 responds wit | label allocation needs to be done by the egress, and the egress responds wi | |||
h the | th the | |||
allocated label to the PCE. The PCE further inform the | allocated label to the PCE. The PCE further informs the | |||
transit PCC without setting the C bit to 1 in the CCI object for out-label | transit PCC without setting the C bit to '1' in the CCI object for the out- | |||
but the C bit is set to 1 for in-label so the transit node make the label alloca | label, but the C bit is set to '1' for the in-label, so the transit node makes t | |||
tion (for the in-label) and report to the PCE. Similarly, the C bit is unset tow | he label allocation (for the in-label) and reports to the PCE. Similarly, the C | |||
ards the ingress to complete all the label allocation for the PCECC LSP. </t> | bit is unset towards the ingress to complete all the label allocations for the P | |||
CECC LSP. </t> | ||||
<!--<t>[Note: See <xref target="appendix"/> for how | ||||
we could use PCInitiate message instead of PCLabelUpd message.]</t> --> | ||||
</section> | </section> | |||
<section title="PCC-Initiated PCECC LSP" | <section toc="default" anchor="SEC_BASIC_SETUP" numbered="true"> | |||
toc="default" | <name>PCC-Initiated PCECC LSP</name> | |||
anchor="SEC_BASIC_SETUP"> | <t>In order to set up an LSP based on the PCECC mechanism where the LS | |||
<t>In order to set up an LSP based on the PCECC mechanism where the LSP is c | P is configured at the PCC, a PCC <bcp14>MUST</bcp14> delegate the LSP by | |||
onfigured at the PCC, a PCC MUST delegate the LSP by | sending a PCRpt message with the PST set for the PCECC (see <xref target="SE | |||
sending a PCRpt message with PST set for PCECC (see <xref target="SEC_PATH"/ | C_PATH" format="default"/>) and D (Delegate) | |||
>) and D (Delegate) | flag (see <xref target="RFC8231" format="default"/>) set in the LSP object ( | |||
flag (see <xref target='RFC8231'/>) set in the LSP object (see <xref target= | see <xref target="SEC_FIG2" format="default"/>).</t> | |||
"SEC_FIG2"/>).</t> | <t>When a PCE receives the initial PCRpt message with the D flag and PST set | |||
to '2', it <bcp14>SHOULD</bcp14> calculate the path and assign labels along the | ||||
<!--Paragaraph moved up "An LSP-IDENTIFIER TLV MUST be..."--> | path in addition to setting up the path by sending a PCInitiate message to each | |||
node along the path of the LSP, as per the PCECC technique (see <xref target="S | ||||
<t>When a PCE receives the initial PCRpt message with D flag and PST Type se | EC_FIG2" format="default"/>). The CC-ID uniquely identifies the CCI within a PCE | |||
t to TBD1, it SHOULD calculate the path and assigns labels along the path; and s | P session. Each PCC further responds with the PCRpt messages, including the CCI | |||
ets up the path by sending a PCInitiate message to each node along the path of t | and LSP objects.</t> | |||
he LSP as per the PCECC technique (see <xref target="SEC_FIG2"/>). The CC-ID uni | <t>Once the CCI (label operations) are completed, the PCE <bcp14>MUST</bcp14 | |||
quely identifies the central controller instruction within a PCEP session. Each | > send the PCUpd message to the | |||
PCC further responds with the PCRpt messages including the central controller in | ingress PCC. As per <xref target="RFC8231" format="default"/>, this PCUpd me | |||
struction (CCI) and the LSP objects.</t> | ssage should include the path information calculated by the PCE. </t> | |||
<t>Note that the PCECC LSPs <bcp14>MUST</bcp14> be delegated to a PCE | ||||
<!-- Paragaraph moved up | at all times. </t> | |||
<t>The ingress node would receive one CCI object with O bit (out-label) set. | <t>The LSP deletion operation for the PCECC LSPs | |||
The transit node(s) would receive two CCI objects with the in-label CCI without | is the same as defined in <xref target="RFC8231" format="default"/>. If the | |||
an O bit set and the out-label CCI with O bit set. The egress node would receive | PCE receives | |||
one CCI object without O bit set. A node can determine its role based on the se | a PCRpt message for LSP deletion, then it does label the cleanup operation, | |||
tting of the O bit in the CCI object(s) and the LSP-IDENTIFIER TLV in the LSP ob | as | |||
ject.</t> | described in <xref target="SEC_CLEANUP" format="default"/>, for the correspo | |||
--> | nding LSP.</t> | |||
<t>Once the central controller instructions (label operations) are completed | <t>The basic PCECC LSP setup sequence is as shown in <xref target="SEC_FIG2" for | |||
, the PCE MUST send the PCUpd message to the | mat="default"/>.</t> | |||
ingress PCC. As per <xref target='RFC8231'/>, this PCUpd message should incl | <figure anchor="SEC_FIG2"> | |||
ude the path information calculated by the PCE. </t> | <name>PCC-Initiated PCECC LSP</name> | |||
<artwork align="left" alt="" name="" type=""><![CDATA[ | ||||
<t>Note that the PCECC LSPs MUST be delegated to a PCE at all times. </t> | ||||
<t>The LSP deletion operation for PCECC LSPs | ||||
is the same as defined in <xref target='RFC8231'/>. If the PCE receives | ||||
a PCRpt message for LSP deletion then it does label clean up operation as | ||||
described in <xref target="SEC_CLEANUP"/> for the corresponding LSP.</t> | ||||
<t>The Basic PCECC LSP setup sequence is as shown in <xref target="SEC_FIG2" | ||||
/>.</t> | ||||
<figure align="left" | ||||
alt="" | ||||
height="" | ||||
suppress-title="false" | ||||
title="PCC-Initiated PCECC LSP" | ||||
width="" | ||||
anchor="SEC_FIG2"> | ||||
<artwork align="left" | ||||
alt="" | ||||
height="" | ||||
name="" | ||||
type="" | ||||
width="" | ||||
xml:space="preserve"> | ||||
<![CDATA[ | ||||
+-------+ +-------+ | +-------+ +-------+ | |||
|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 | |||
| | | | | | | | | | |||
]]> | ]]></artwork> | |||
</artwork> | </figure> | |||
</figure> | <t>In the case where the label allocations are made by the PCC itself (s | |||
<!-- Paragaraph moved up | ee <xref target="PCC" format="default"/>), the PCE could request an allocation t | |||
<t>The PCECC LSPs are considered to be 'up' by default (on receipt of PC | o be made by the PCC; then, | |||
Upd message from PCE). | the PCC would send a PCRpt message with the allocated label encoded in | |||
The ingress MAY further choose to deploy a data plane check | the CC-ID object, as shown in <xref target="SEC_FIG2b" format="default | |||
mechanism and report the status back to the PCE via a PCRpt message to m | "/>.</t> | |||
ake sure that the correct label instructions are made along the path of the PCEC | <figure anchor="SEC_FIG2b"> | |||
C LSP (and it is ready to carry traffic).</t> | <name>PCC-Initiated PCECC LSP (PCC Allocation)</name> | |||
<t>In the case where the label allocations are made by the PCC itself (s | <artwork align="left" alt="" name="" type=""><![CDATA[ | |||
ee <xref target="PCC"/>), the PCE could request an allocation to be made by the | ||||
PCC, and | ||||
then the PCC would send a PCRpt with the allocated label encoded in | ||||
the CC-ID object as shown in <xref target="SEC_FIG2b"/>.</t> | ||||
<figure align="left" | ||||
alt="" | ||||
height="" | ||||
suppress-title="false" | ||||
title="PCC-Initiated PCECC LSP (PCC allocation)" | ||||
width="" | ||||
anchor="SEC_FIG2b"> | ||||
<artwork align="left" | ||||
alt="" | ||||
height="" | ||||
name="" | ||||
type="" | ||||
width="" | ||||
xml:space="preserve"> | ||||
<![CDATA[ | ||||
+-------+ +-------+ | +-------+ +-------+ | |||
|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 | |||
| | | | | | | | | | |||
]]></artwork> | ||||
- The O bit is set as before (and thus not included) | </figure> | |||
]]> | <aside> | |||
</artwork> | <t>Note:</t> | |||
</figure> | <t>The O bit is set as before (and thus not included).</t> | |||
</aside> | ||||
<t>In the case where the label allocations are made by the PCC itself (see < | <t>In the case where the label allocations are made by the PCC itself | |||
xref target="PCC"/>), the procedure remains the same, with just an additional | (see <xref target="PCC" format="default"/>), the procedure remains the same, wit | |||
h just an additional | ||||
constraint on the configuration sequence.</t> | constraint on the configuration sequence.</t> | |||
<t>The rest of the PCC-initiated PCECC LSP setup operations are the sa | ||||
<t>The rest of the PCC-Initiated PCECC LSP setup operations are the same as tho | me as those described in <xref target="PCE-I" format="default"/>.</t> | |||
se described in <xref target="PCE-I"/>.</t> | ||||
<!-- Paragaraph moved up | ||||
<t>It should be noted that in this example, the request is made to 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 respond | ||||
s with the | ||||
allocated label to the PCE. The PCE further inform the | ||||
transit PCC without setting the C bit to 1 in the CCI object for out-l | ||||
abel but the C bit is set to 1 for in-label so the transit node make the label a | ||||
llocation (for the in-label) and report to the PCE. Similarly, the C bit is unse | ||||
t towards the ingress to complete all the label allocation for the PCECC LSP. </ | ||||
t> | ||||
</section> | </section> | |||
<section toc="default" anchor="CCI" numbered="true"> | ||||
<section title="Central Controller Instructions" | <name>Central Controller Instructions</name> | |||
toc="default" anchor="CCI"> | <t>The new CCI for the label operations in PCEP are done via the PCIni | |||
<t>The new central controller instructions (CCI) for the label operations in | tiate message (<xref target="SEC_PCInitiate" format="default"/>) by | |||
PCEP are done via the PCInitiate message (<xref target="SEC_PCInitiate"/>), by | defining a new PCEP object for CCI operations. The local label range of | |||
defining a new PCEP Object for CCI operations. The local label range of | ||||
each PCC is assumed to be known by both the PCC and the PCE. </t> | each PCC is assumed to be known by both the PCC and the PCE. </t> | |||
<section toc="default" anchor="LabelDownloadCCI" numbered="true"> | ||||
<section title="Label Download CCI" | <name>Label Download CCI</name> | |||
toc="default" anchor="LabelDownloadCCI"> | <t>In order to set up an LSP based on the PCECC, the PCE sends a PCI | |||
<t>In order to set up an LSP based on PCECC, the PCE sends a PCInitiate mess | nitiate message | |||
age | to each node along the path to download the label instructions, as described | |||
to each node along the path to download the Label instruction as described i | in Sections <xref target="PCE-I" format="counter"/> and | |||
n <xref target="PCE-I"/> and | <xref target="SEC_BASIC_SETUP" format="counter"/>. | |||
<xref target="SEC_BASIC_SETUP"/>. | </t> | |||
</t> | <t>The CCI object <bcp14>MUST</bcp14> be included, along with the LS | |||
<t>The CCI object MUST be included, along with the LSP object in the PCIniti | P object in the PCInitiate message. The LSP-IDENTIFIERS TLV <bcp14>MUST</bcp14> | |||
ate message. The LSP-IDENTIFIERS TLV MUST be included in the LSP object. The SPE | be included in the LSP object. The SPEAKER-ENTITY-ID TLV | |||
AKER-ENTITY-ID TLV | <bcp14>SHOULD</bcp14> be included in the LSP object.</t> | |||
SHOULD be included in the LSP object.</t> | <t>If a node (PCC) receives a PCInitiate message that includes a lab | |||
<t>If a node (PCC) receives a PCInitiate message which includes a Label to d | el to download (as part of CCI) that is out | |||
ownload, as part of CCI, that is out | of the range set aside for the PCE, it <bcp14>MUST</bcp14> send a PCErr m | |||
of the range set aside for the PCE, it MUST send a PCErr message with Err | essage with Error-Type=31 | |||
or-type=TBD5 | (PCECC failure) and Error-value=1 (Label out of range) and <bcp14>MUST</bcp14 | |||
(PCECC failure) and Error-value=TBD6 (Label out of range) and MUST include th | > include the | |||
e | SRP object to specify the error is for the corresponding label update via a P | |||
SRP object to specify the error is for the corresponding label update via PCI | CInitiate message. | |||
nitiate message. | ||||
If a PCC receives a PCInitiate message but fails to download | If a PCC receives a PCInitiate message but fails to download | |||
the Label entry, it MUST send a PCErr message with Error-type=TBD5 | the label entry, it <bcp14>MUST</bcp14> send a PCErr message with Error-Type= | |||
(PCECC failure) and Error-value=TBD7 (instruction failed) and MUST include th | 31 | |||
e | (PCECC failure) and Error-value=2 (Instruction failed) and <bcp14>MUST</bcp14 | |||
SRP object to specify the error is for the corresponding label update via PCI | > include the | |||
nitiate message.</t> | SRP object to specify the error is for the corresponding label update via a P | |||
CInitiate message.</t> | ||||
<t>A new PCEP object for central controller instructions (CCI) is defined in | <t>A new PCEP object for CCI is defined in <xref target="SEC_CCI" fo | |||
<xref target='SEC_CCI'/>.</t> | rmat="default"/>.</t> | |||
</section> | </section> | |||
<section toc="default" anchor="SEC_CLEANUP" numbered="true"> | ||||
<section title="Label Clean up CCI" | <name>Label Cleanup CCI</name> | |||
toc="default" | <t>In order to delete an LSP based on the PCECC, the PCE sends Centr | |||
anchor="SEC_CLEANUP"> | al Controller Instructions via a PCInitiate | |||
<t>In order to delete an LSP based on PCECC, the PCE sends a central control | message to each node along the path of the LSP to clean up the label-forward | |||
ler instructions via a PCInitiate | ing instruction. | |||
message to each node along the path of the LSP to clean up the Label forward | </t> | |||
ing instruction. | <t>If the PCC receives a PCInitiate message but does not recognize t | |||
</t> | he | |||
<t>If the PCC receives a PCInitiate message but does not recognize the | label in the CCI, the PCC <bcp14>MUST</bcp14> generate a PCErr message with E | |||
label in the CCI, the PCC MUST generate a PCErr message with Error-Type | rror-Type=19 (Invalid operation) and Error-value=18 (Unknown Label) and | |||
19(Invalid operation) and Error-Value=TBD8, "Unknown Label" and | <bcp14>MUST</bcp14> 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 cleanup (via a PCInitiate message). | |||
corresponding label clean up (via PCInitiate message). | </t> | |||
</t> | <t>The R flag in the SRP object defined in <xref target="RFC8281" fo | |||
<t>The R flag in the SRP object defined in <xref target='RFC8281'/> specifie | rmat="default"/> specifies | |||
s | the deletion of the label entry in the PCInitiate message.</t> | |||
the deletion of Label Entry in the PCInitiate message.</t> | <figure anchor="SEC_FIG3"> | |||
<figure align="left" | <name>Label Cleanup</name> | |||
alt="" | <artwork align="left" alt="" name="" type=""><![CDATA[ | |||
height="" | ||||
suppress-title="false" | ||||
title="Label Cleanup" | ||||
width="" | ||||
anchor="SEC_FIG3"> | ||||
<artwork align="left" | ||||
alt="" | ||||
height="" | ||||
name="" | ||||
type="" | ||||
width="" | ||||
xml:space="preserve"> | ||||
<![CDATA[ | ||||
+-------+ +-------+ | +-------+ +-------+ | |||
|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 | |||
]]> | ]]></artwork> | |||
</artwork> | </figure> | |||
</figure> | <t>As per <xref target="RFC8281" format="default"/>, following the r | |||
<t>As per <xref target='RFC8281'/>, following the removal of the Label f | emoval of the label-forwarding instruction, the PCC <bcp14>MUST</bcp14> send a P | |||
orwarding instruction, the PCC MUST send a PCRpt message. | CRpt message. | |||
The SRP object in the PCRpt MUST include the | The SRP object in the PCRpt message <bcp14>MUST</bcp14> include the | |||
SRP-ID-number from the PCInitiate message that triggered the removal. | SRP-ID-number from the PCInitiate message that triggered the removal. | |||
The R flag in the SRP object MUST be set.</t> | The R flag in the SRP object <bcp14>MUST</bcp14> be set.</t> | |||
<t>In the case where the label allocation is made by the PCC itself (see <xre | <t>In the case where the label allocation is made by the PCC itself | |||
f target="PCC"/>), the removal procedure remains the same, adding the sequence c | (see <xref target="PCC" format="default"/>), the removal procedure remains the s | |||
onstraint.</t> | ame, adding the sequence constraint.</t> | |||
</section> | </section> | |||
</section> | </section> | |||
<section toc="default" numbered="true"> | ||||
<section title="PCECC LSP Update" | <name>PCECC LSP Update</name> | |||
toc="default"> | <t>The update is done as per the make-before-break procedures, i.e., t | |||
<t>The update is done as per the make-before-break procedures, i.e. the PCEC | he PCECC first updates new label instructions based on the updated path and then | |||
C first updates new label instructions based on the updated path and then inform | informs the ingress to switch traffic before cleaning up the former instruction | |||
s the ingress to switch traffic, before cleaning up the former instructions. New | s. New CC-IDs are used to identify the updated instructions; the identifiers in | |||
CC-IDs are used to identify the updated instructions; the identifiers in the LS | the LSP object uniquely identify the existing LSP. Once new instructions are dow | |||
P object uniquely identify the existing LSP. Once new instructions are downloade | nloaded, the PCE further updates the new path at the ingress, which triggers the | |||
d, the PCE further updates the new path at the ingress which triggers the traffi | traffic switch on the updated path. The ingress PCC acknowledges with a PCRpt m | |||
c switch on the updated path. The ingress PCC acknowledges with a PCRpt message, | essage, on receipt of the PCRpt message, the PCE does the cleanup operation for | |||
on receipt of the PCRpt message, the PCE does clean up operation for the former | the former LSP, as described in <xref target="SEC_CLEANUP" format="default"/>.</ | |||
LSP as described in <xref target="SEC_CLEANUP"/>.</t> | t> | |||
<t>The PCECC LSP Update sequence is shown in <xref target="SEC_FIG5"/>. | <figure anchor="SEC_FIG5"> | |||
</t> | <name>PCECC LSP Update</name> | |||
<figure align="left" | <artwork align="left" alt="" name="" type=""><![CDATA[ | |||
alt="" | ||||
height="" | ||||
suppress-title="false" | ||||
title="PCECC LSP Update" | ||||
width="" | ||||
anchor="SEC_FIG5"> | ||||
<artwork align="left" | ||||
alt="" | ||||
height="" | ||||
name="" | ||||
type="" | ||||
width="" | ||||
xml:space="preserve"> | ||||
<![CDATA[ | ||||
+-------+ +-------+ | +-------+ +-------+ | |||
|PCC | | PCE | | |PCC | | PCE | | |||
|ingress| +-------+ | |ingress| +-------+ | |||
+------| | | | +------| | | | |||
| PCC +-------+ | | | PCC +-------+ | | |||
| transit| | | | | transit| | | | |||
+------| | | | | +------| | | | | |||
|PCC +--------+ | | | |PCC +--------+ | | | |||
|egress | | | | | |egress | | | | | |||
+--------+ | | | | +--------+ | | | | |||
skipping to change at line 869 ¶ | skipping to change at line 608 ¶ | |||
|--------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 | | |||
]]> | ]]></artwork> | |||
</artwork> | </figure> | |||
</figure> | <t>The modified PCECC LSPs are considered to be 'up' by default. | |||
The ingress could further choose to deploy a data-plane check | ||||
<t>The modified PCECC LSPs are considered to be 'up' by default. | ||||
The 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 mechanism is out of scope of this document.</t> | mechanism and report the status back to the PCE via a PCRpt message. The exact mechanism is out of scope of this document.</t> | |||
<t>In the case where the label allocations are made by the PCC itself | ||||
<t>In the case where the label allocations are made by the PCC itself (s | (see <xref target="PCC" format="default"/>), the procedure remains the same.</t> | |||
ee <xref target="PCC"/>), the procedure remains the same.</t> | ||||
<!--<t>[Note: We could use PCInitiate message instead of PCLabelUpd mess | ||||
age, See <xref target="appendix"/>]</t>--> | ||||
</section> | </section> | |||
<section toc="default" numbered="true"> | ||||
<section title="Re-Delegation and Clean up" | <name>Re-delegation and Cleanup</name> | |||
toc="default"> | <t>As described in <xref target="RFC8281" format="default"/>, a new PC | |||
E can gain control over an orphaned LSP. In the case of a PCECC LSP, the new PCE | ||||
<t>As described in <xref target='RFC8281'/>, a new PCE can gain control over | <bcp14>MUST</bcp14> also gain control over the CCI in the same way by sending a | |||
an orphaned LSP. In the case of a PCECC LSP, the new PCE MUST also gain control | PCInitiate | |||
over the central controller instructions in the same way by sending a PCInitiate | ||||
message that includes the SRP, LSP, and CCI objects and carries the | message that includes the SRP, LSP, and CCI objects and carries the | |||
CC-ID and PLSP-ID identifying the instruction that it wants to take control o | CC-ID and PLSP-ID identifying the instructions that it wants to take control | |||
f. </t> | of. </t> | |||
<t>Further, as described in <xref target='RFC8281'/>, the State Timeout I | <t>Further, as described in <xref target="RFC8281" format="default"/>, | |||
nterval timer ensures that a PCE crash does not | the State Timeout Interval timer ensures that a PCE crash does not | |||
result in automatic and immediate disruption for the services using | result in automatic and immediate disruption for the services using | |||
PCE-initiated LSPs. Similarly the central controller instructions are not rem oved immediately | PCE-initiated LSPs. Similarly the Central Controller Instructions are not rem oved immediately | |||
upon PCE failure. Instead, they are cleaned up on the expiration of | upon PCE failure. Instead, they are cleaned up on the expiration of | |||
this timer. This allows for network clean up without manual | this timer. This allows for network cleanup without manual | |||
intervention. The PCC MUST support the removal of CCI as | intervention. The PCC <bcp14>MUST</bcp14> support the removal of CCI as | |||
one of the behaviors applied on expiration of the State Timeout | one of the behaviors applied on expiration of the State Timeout | |||
Interval timer.</t> | Interval timer.</t> | |||
<t>In the case of the PCC-initiated PCECC LSP, the control over the or | ||||
<t>In case of PCC-initiated PCECC LSP, the control over the orphaned LSP at t | phaned LSP at the ingress PCC is taken over by the mechanism specified in <xref | |||
he ingress PCC is taken over by the mechanism specified in <xref target='RFC8741 | target="RFC8741" format="default"/> to request delegation. The control over the | |||
'/> to request delegation. The control over the central controller instructions | CCI is described above using <xref target="RFC8281" format="default"/>.</t> | |||
is described above using <xref target='RFC8281'/>.</t> | </section> | |||
<section toc="default" anchor="sec_label_db_sync" numbered="true"> | ||||
</section> | <name>Synchronization of Central Controller Instructions</name> | |||
<t>The purpose of CCI synchronization (labels in the context of this d | ||||
<section title="Synchronization of Central Controllers Instructions" | ocument) is to make sure that the | |||
toc="default" anchor="sec_label_db_sync"> | PCE's view of CCI (labels) matches with the PCC's label allocation. | |||
This synchronization is performed as part of the LSP State Synchronization, | ||||
<t>The purpose of Central Controllers Instructions synchronization (labels in | as described in <xref target="RFC8231" format="default"/> and | |||
the context of this document) is to make sure that the | <xref target="RFC8232" format="default"/>.</t> | |||
PCE's view of CCI (Labels) matches with the PCC's Label allocation. | <t>As per LSP State Synchronization <xref target="RFC8231" format="def | |||
This synchronization is performed as part of the LSP state synchronization | ault"/>, a PCC reports the state of | |||
as described in <xref target='RFC8231'/> and | its LSPs to the PCE using PCRpt messages and, as per <xref target="RFC8281" f | |||
<xref target='RFC8232'/>.</t> | ormat="default"/>, the PCE would | |||
<t>As per LSP State Synchronization <xref target='RFC8231'/>, a PCC reports | ||||
the state of | ||||
its LSPs to the PCE using PCRpt messages and as per <xref target='RFC8281'/>, | ||||
PCE would | ||||
initiate any missing LSPs and/or remove any LSPs that are not wanted. The sam e PCEP messages and procedures are | initiate any missing LSPs and/or remove any LSPs that are not wanted. The sam e PCEP messages and procedures are | |||
also used for the Central Controllers Instructions synchronization. The PCRpt message includes the CCI and the LSP object to report the label forwarding inst ructions. The PCE would further | also used for the CCI synchronization. The PCRpt message includes the CCI and the LSP object to report the label-forwarding instructions. The PCE would furth er | |||
remove any unwanted instructions or initiate any missing instructions.</t> | remove any unwanted instructions or initiate any missing instructions.</t> | |||
<!--<t>[Note: This section currently describe procedure based on new messages | ||||
, | ||||
suitable modification can be made if existing message are used instead | ||||
<xref target="appendix"/>. In the case, some modifications needs to be made | ||||
to the existing | ||||
LSP-DB synchronization mechanism to also handle the label synchronization.]< | ||||
/t>--> | ||||
</section> | </section> | |||
<section toc="default" numbered="true"> | ||||
<section title="PCECC LSP State Report" | <name>PCECC LSP State Report</name> | |||
toc="default"> | <t>As mentioned before, an ingress PCC <bcp14>MAY</bcp14> choose to ap | |||
<t>As mentioned before, an ingress PCC MAY choose to apply any OAM mechanism | ply any Operations, Administration, and Maintenance (OAM) mechanism to check the | |||
to check the status | status | |||
of LSP in the Data plane and MAY further send its status in a PCRpt message | of the LSP in the data plane and <bcp14>MAY</bcp14> further send its status | |||
to the PCE. </t> | in a PCRpt message to the PCE. </t> | |||
</section> | </section> | |||
<section toc="default" anchor="PCC" numbered="true"> | ||||
<section title="PCC-Based Allocations" | <name>PCC-Based Allocations</name> | |||
toc="default" | <t> | |||
anchor="PCC"> | ||||
<t> | ||||
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 | PCInitiate message. The C flag in the | |||
CCI object is set to 1 to indicate that the allocation needs to be done by | CCI object is set to '1' to indicate that the allocation needs to be made b | |||
the PCC. | y the PCC. | |||
The PCC MUST try to allocate the Label and MUST report to the PCE via PCRpt | The PCC <bcp14>MUST</bcp14> try to allocate the label and <bcp14>MUST</bcp1 | |||
or PCErr message. | 4> report to the PCE via a PCRpt or PCErr message. | |||
</t> | </t> | |||
<t>If the value of the Label is 0 and the C flag is set to 1, it | <t>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 PCC. | indicates that the PCE is requesting the allocation to be made by the PCC. | |||
If the | If the | |||
Label is 'n' and the C flag is set to 1 in the CCI object, it | 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 the Label. | indicates that the PCE requests a specific value 'n' for the label. | |||
If | If | |||
the allocation is successful, the PCC MUST report | the allocation is successful, the PCC <bcp14>MUST</bcp14> report | |||
via the PCRpt message with the CCI object. If the value of the Label in th | via the PCRpt message with the CCI object. If the value of the label in th | |||
e CCI object is invalid, it MUST send a PCErr message with Error-Type = | e CCI object is invalid, it <bcp14>MUST</bcp14> send a PCErr message with Error- | |||
TBD5 ("PCECC failure") and Error Value = TBD9 ("Invalid CCI"). If | Type=31 (PCECC failure) and Error-value=3 (Invalid CCI). If | |||
it is valid but the PCC is unable to | it is valid but the PCC is unable to | |||
allocate it, it MUST send a PCErr message with Error-Type = | allocate it, it <bcp14>MUST</bcp14> send a PCErr message with Error-Type=31 | |||
TBD5 ("PCECC failure") and Error Value = TBD10 ("Unable to | (PCECC failure) and Error-value=4 (Unable to | |||
allocate the specified CCI"). | allocate the specified CCI). | |||
</t> | </t> | |||
<t>If the PCC wishes to withdraw or modify the previously assigned label, it | <t>If the PCC wishes to withdraw or modify the previously assigned lab | |||
MUST send a PCRpt message without any Label | el, it <bcp14>MUST</bcp14> send a PCRpt message without any label | |||
or with the Label containing the new value respectively in | or with the label containing the new value, respectively, in | |||
the CCI object. The PCE would further trigger the Label cleanup of older l | the CCI object. The PCE would further trigger the label cleanup of the old | |||
abel as per <xref target="SEC_CLEANUP"/>.</t> | er label, as per <xref target="SEC_CLEANUP" format="default"/>.</t> | |||
</section> | </section> | |||
<!-- move this section to draft-ietf-pce-binding-label-sid | ||||
<section title="Binding Label" | ||||
toc="default" | ||||
anchor="BSID"> | ||||
<t>As per <xref target="I-D.ietf-pce-binding-label-sid"/>, when a stateful PC | ||||
E is deployed for setting up TE paths, it may be desirable to report the binding | ||||
label to the stateful PCE for the purpose of enforcing end-to-end TE. In the ca | ||||
se of the PCECC, the binding label may be allocated by the PCE itself as describ | ||||
ed in this section. This procedure is | ||||
thus applicable for all path setup types including PCECC.</t> | ||||
<t>A P flag in the LSP object is introduced in <xref target="I-D.ietf-pce-sr- | ||||
path-segment"/> to indicate the allocation needs to be made by the PCE. A PCC w | ||||
ould set this bit to 1 (and carry the TE-PATH-BINDING TLV <xref target="I-D.ietf | ||||
-pce-binding-label-sid"/> in the LSP object) to request for | ||||
allocation of the binding label by the PCE in the PCReq or PCRpt | ||||
message. A PCE would also set this bit to 1 to indicate that the | ||||
binding label is allocated by PCE and encoded in the PCRep, | ||||
PCUpd, or PCInitiate message (the TE-PATH-BINDING TLV is present in | ||||
LSP object). Further, a PCE would set this bit to 0 to indicate | ||||
that the allocation is done by the PCC instead.</t> | ||||
<t>The ingress PCC could request the binding label to be allocated by the PCE | ||||
via a PCRpt message as per <xref target="RFC8231"/>. The delegate flag (D-fl | ||||
ag) MUST | ||||
also be set for this LSP. The TE-PATH-BINDING TLV MUST be included with no B | ||||
inding | ||||
Value. The PCECC would allocate the binding label and further respond to | ||||
ingress PCC with PCUpd message as per <xref target="RFC8231"/> and MUST inclu | ||||
de the | ||||
TE-PATH-BINDING TLV in an LSP object. The P flag in the LSP object would be | ||||
set to 1 to indicate that the allocation is made by the PCE.</t> | ||||
<t>The PCE could allocate the binding label on its own accord for a PCE- | ||||
Initiated (or delegated) LSP. The allocated binding label needs to be | ||||
informed to the PCC. The PCE would use the | ||||
PCInitiate message <xref target="RFC8281"/> or PCUpd message <xref target="RF | ||||
C8231"/> towards the | ||||
PCC and MUST include the TE-PATH-BINDING TLV in the LSP object. The P flag in | ||||
the LSP object would be set to 1 to indicate that the allocation is made by the | ||||
PCE.</t> | ||||
<t>Before a PCE can allocate a binding label the PCECC capability MUST be exc | ||||
hanged on the PCEP session. Note that the CCI object is not used for binding all | ||||
ocation; this is done to maintain consistency with the rest of the binding label | ||||
/SID procedures as per <xref target="I-D.ietf-pce-binding-label-sid"/>.</t> | ||||
</section> --> | ||||
</section> | </section> | |||
</section> | </section> | |||
<section toc="default" numbered="true"> | ||||
<section title="PCEP Messages" | <name>PCEP Messages</name> | |||
toc="default"> | <t>As defined in <xref target="RFC5440" format="default"/>, a PCEP message | |||
<t>As defined in <xref target="RFC5440" />, a PCEP message consists of a com | consists of a common header | |||
mon 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 carry. | |||
An implementation MUST form the PCEP messages using the object | An implementation <bcp14>MUST</bcp14> form the PCEP messages using the object | |||
ordering specified in this document.</t> | ordering specified in this document.</t> | |||
<t>The LSP-IDENTIFIERS TLV <bcp14>MUST</bcp14> be included in the LSP obje | ||||
<t>LSP-IDENTIFIERS TLV MUST be included in the LSP object for PCECC | ct for the PCECC | |||
LSP.</t> | LSP.</t> | |||
<t>The message formats in this document are specified using Routing | ||||
<t>The message formats in this document are specified using Routing | Backus-Naur Form (RBNF) encoding, as specified in <xref target="RFC5511" form | |||
Backus-Naur Form (RBNF) encoding as specified in <xref target="RFC5511" />.</ | at="default"/>.</t> | |||
t> | <section toc="default" anchor="SEC_PCInitiate" numbered="true"> | |||
<name>The PCInitiate Message</name> | ||||
<!--<section title="Label Operations" | <t>The PCInitiate message <xref target="RFC8281" format="default"/> can | |||
toc="default" | be used to download or remove the labels; this document extends the message, as | |||
anchor="SEC_LabelOp"> | shown below.</t> | |||
<t>[Editor's Note: This document defines new messages PCLabelUpd and | <sourcecode type=""><![CDATA[ | |||
PCLabelRpt. The authors and WG also debated on the use of existing PCEP me | ||||
ssages. | ||||
See <xref target="appendix"/> on how the existing messages can be extended | ||||
to add this functionality. WG needs to decide the final direction i.e. new | ||||
specific messages | ||||
are needed or existing PCEP messages can be extended.]</t>--> | ||||
<!--<section title="The PCLabelUpd message" | ||||
toc="default" | ||||
anchor="SEC_PCLabelUpd"> | ||||
<t>A new Label Update Message (also referred to as PCLabelUpd) is a | ||||
PCEP message sent by a PCE to a PCC to download label or update the | ||||
label map. The same message is also used to cleanup the Label entry. | ||||
The Message-Type field of the PCEP common header for the PCLabelUpd message | ||||
is set to TBD.</t> | ||||
<t>The format of the PCLabelUpd message is as follows:</t> | ||||
<figure align="left" | ||||
alt="" | ||||
height="" | ||||
suppress-title="true" | ||||
title="" | ||||
width="" | ||||
anchor="SEC_FIG7"> | ||||
<artwork align="left" | ||||
alt="" | ||||
height="" | ||||
name="" | ||||
type="" | ||||
width="" | ||||
xml:space="preserve"> | ||||
<![CDATA[ | ||||
<PCLabelUpd Message> ::= <Common Header> | ||||
<pce-label-update-list> | ||||
Where: | ||||
<pce-label-update-list> ::= <pce-label-update> | ||||
[<pce-label-update-list>] | ||||
<pce-label-update> ::= <pce-label-download> | ||||
Where: | ||||
<pce-label-download> ::= <SRP> | ||||
<LSP> | ||||
<label-list> | ||||
<label-list > ::= <LABEL> | ||||
[<label-list>] | ||||
]]> | ||||
</artwork> | ||||
</figure> | ||||
<t>The PCLabelUpd message is used to download label along the path | ||||
of the LSP.</t> | ||||
<t>The SRP object is defined in <xref target='RFC8231'/> and this | ||||
document extends the use of SRP object in PCLabelUpd message. | ||||
The SRP object is mandatory and MUST be included in PCLabelUpd | ||||
message. If the SRP object is missing, the receiving PCC MUST send | ||||
a PCErr message with Error-type=6 (Mandatory Object missing) and | ||||
Error-value=10 (SRP object missing).</t> | ||||
<t>The LSP object is defined in <xref target='RFC8231'/> and this | ||||
document extends the use of LSP object in PCLabelUpd message. | ||||
LSP Identifiers TLV is defined in <xref target='RFC8231'/>, | ||||
it MAY be included in the LSP object in PCLabelUpd message. | ||||
Either LSP object or FEC object defined in | ||||
<xref target='I-D.zhao-pce-pcep-extension-pce-controller-sr'/> is mandatory | ||||
in | ||||
PCLabelUpd message. | ||||
</t> | ||||
<t>The LABEL object is defined in <xref target="SEC_LABEL"/>. The LABEL is t | ||||
he mandatory object | ||||
and MUST be included in PCLabelUpd message. If the LABEL object is | ||||
missing, the receiving PCC MUST send a PCErr message with Error-type=6 | ||||
(Mandatory Object missing) and Error-value=TBD (LABEL object missing). | ||||
More than one LABEL object MAY be included in the PCLabelUpd message | ||||
for the transit LSR.</t> | ||||
<t>To cleanup the SRP object must set the R (remove) bit.</t> | ||||
</section> | ||||
<section title="The PCLabelRpt message" | ||||
toc="default" | ||||
anchor="SEC_PCLabelRpt"> | ||||
<t>A new Label Report Message (also referred to as PCLabelRpt) is a PCEP | ||||
message sent by a PCC to a PCE to report the label. The Message-Type | ||||
field of the PCEP common header for the PCLabelRpt message is set to TBD.</t> | ||||
<t>The format of the PCLabelRpt message is as follows:</t> | ||||
<figure align="left" | ||||
alt="" | ||||
height="" | ||||
suppress-title="true" | ||||
title="" | ||||
width="" | ||||
anchor="SEC_FIGRPT"> | ||||
<artwork align="left" | ||||
alt="" | ||||
height="" | ||||
name="" | ||||
type="" | ||||
width="" | ||||
xml:space="preserve"> | ||||
<![CDATA[ | ||||
<PCLabelRpt Message> ::= <Common Header> | ||||
<pce-label-report-list> | ||||
Where: | ||||
<pce-label-report-list> ::= <pce-label-report> | ||||
[<pce-label-report-list>] | ||||
<pce-label-report> ::= <pce-label-delegate> | ||||
Where: | ||||
<pce-label-delegate> ::= <SRP> | ||||
<LSP> | ||||
<label-list> | ||||
<label-list > ::= <LABEL> | ||||
[<label-list>] | ||||
]]> | ||||
</artwork> | ||||
</figure> | ||||
<t>The SRP object is defined in <xref target='RFC8231'/> and this | ||||
document extends the use of SRP object in PCLabelRpt message. | ||||
The SRP object is mandatory and MUST be included in PCLabelRpt | ||||
message. If the SRP object is missing, the receiving PCE MUST send | ||||
a PCErr message with Error-type=6 (Mandatory Object missing) and | ||||
Error-value=10 (SRP object missing).</t> | ||||
<t>The LSP object is defined in <xref target='RFC8231'/> and this | ||||
document extends the use of LSP object in PCLabelRpt message. | ||||
LSP Identifiers TLV is defined in <xref target='RFC8231'/>, | ||||
it MAY be included in the LSP object in PCLabelRpt message. | ||||
Either LSP object or FEC object defined in | ||||
<xref target='I-D.zhao-pce-pcep-extension-pce-controller-sr'/> is mandatory | ||||
in | ||||
PCLabelRpt message. | ||||
</t> | ||||
<t>The LABEL object is defined in <xref target="SEC_LABEL"/>. The LABEL is t | ||||
he mandatory object | ||||
and MUST be included in PCLabelRpt message. If the LABEL object is | ||||
missing, the receiving PCE MUST send a PCErr message with Error-type=6 | ||||
(Mandatory Object missing) and Error-value=TBD (LABEL object missing). | ||||
More than one LABEL object MAY be included in the PCLabelRpt message.</t> | ||||
</section>--> | ||||
<section title="The PCInitiate Message" | ||||
toc="default" | ||||
anchor="SEC_PCInitiate"> | ||||
<t>The PCInitiate message <xref target='RFC8281'/> can be used to download or re | ||||
move the labels, this document extends the message as shown below - </t> | ||||
<figure title="" suppress-title="false" align="left" alt="" width="" height= | ||||
""> | ||||
<artwork xml:space="preserve" name="" type="" align="left" alt="" width=" | ||||
" height=""><![CDATA[ | ||||
<PCInitiate Message> ::= <Common Header> | <PCInitiate Message> ::= <Common Header> | |||
<PCE-initiated-lsp-list> | <PCE-initiated-lsp-list> | |||
Where: | ]]></sourcecode> | |||
<Common Header> is defined in [RFC5440] | <t>Where:</t> | |||
<ul spacing="normal"> | ||||
<li><Common Header> is defined in <xref target="RFC5440" format="defa | ||||
ult"/>.</li> | ||||
</ul> | ||||
<sourcecode type=""><![CDATA[ | ||||
<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>] | |||
]]></sourcecode> | ||||
Where: | <t>Where:</t> | |||
<PCE-initiated-lsp-instantiation> and | <ul spacing="normal"> | |||
<PCE-initiated-lsp-deletion> are as per | <li><PCE-initiated-lsp-instantiation> and | |||
[RFC8281]. | <PCE-initiated-lsp-deletion> are as per | |||
<xref target="RFC8281" format="default"/>.</li> | ||||
The LSP and SRP object is defined in [RFC8231]. | <li>The LSP and SRP object is defined in <xref target="RFC8231" format="def | |||
ault"/>.</li> | ||||
]]></artwork> | </ul> | |||
</figure> | <t>When a PCInitiate message is used for the CCI (labels), the SRP, LSP, | |||
and CCI objects <bcp14>MUST</bcp14> be present. | ||||
<t>When PCInitiate message is used for the central controller instructions | The SRP object is defined in <xref target="RFC8231" format="default"/>; | |||
(labels), the SRP, LSP, and CCI objects MUST be present. | if the SRP object is missing, the receiving PCC <bcp14>MUST</bcp14> send | |||
The SRP object is defined in <xref target='RFC8231'/> and if the SRP obj | a PCErr message with Error-Type=6 (Mandatory Object missing) and | |||
ect is missing, the receiving PCC MUST send | Error-value=10 (SRP object missing). The LSP object is defined in <xref targ | |||
a PCErr message with Error-type=6 (Mandatory Object missing) and | et="RFC8231" format="default"/>, and if the LSP object is missing, the receiving | |||
Error-value=10 (SRP object missing). The LSP object is defined in <xref targ | PCC <bcp14>MUST</bcp14> send | |||
et='RFC8231'/> and if the LSP object is missing, the receiving PCC MUST send | a PCErr message with Error-Type=6 (Mandatory Object missing) and | |||
a PCErr message with Error-type=6 (Mandatory Object missing) and | Error-value=8 (LSP object missing). The CCI object is defined in <xref targe | |||
Error-value=8 (LSP object missing). The CCI object is defined in <xref targe | t="SEC_CCI" format="default"/>, and if the CCI object is | |||
t="SEC_CCI"/> and if the CCI object is | missing, the receiving PCC <bcp14>MUST</bcp14> send a PCErr message with Err | |||
missing, the receiving PCC MUST send a PCErr message with Error-type=6 | or-Type=6 | |||
(Mandatory Object missing) and Error-value=TBD11 (CCI object missing). | (Mandatory Object missing) and Error-value=17 (CCI object missing). | |||
More than one CCI object MAY be included in the PCInitiate message | More than one CCI object <bcp14>MAY</bcp14> be included in the PCInitiate me | |||
ssage | ||||
for a transit LSR.</t> | for a transit LSR.</t> | |||
<t>To clean up entries, the R (remove) bit <bcp14>MUST</bcp14> be set in | ||||
<t>To clean up entries, the R (remove) bit MUST be set in the SRP object to | the SRP object to be encoded along with the LSP and CCI objects.</t> | |||
be encoded along with the LSP and the CCI object.</t> | <t>The CCI object received at the ingress node <bcp14>MUST</bcp14> have | |||
the O bit (out-label) set. The CCI object received at the egress <bcp14>MUST</bc | ||||
<t>The CCI object received at the ingress node MUST have the O bit (out-label) s | p14> have the O bit unset. If this is not the case, the PCC <bcp14>MUST</bcp14> | |||
et. The CCI Object received at the egress MUST have the O bit unset. If this is | send a PCErr message with Error-Type=31 (PCECC failure) and Error-value=3 (Inval | |||
not the case, PCC MUST send a PCErr message with Error-Type = TBD5 ("PCECC failu | id CCI). Other instances of the CCI object, if present, <bcp14>MUST</bcp14> be i | |||
re") and Error Value = TBD9 ("Invalid CCI"). Other instances of the CCI object i | gnored.</t> | |||
f present, MUST be ignored.</t> | <t>For the point-to-point (P2P) LSP setup via the PCECC technique, at th | |||
e transit LSR, two CCI objects are expected for incoming and outgoing labels ass | ||||
<t>For the P2P LSP setup via PCECC technique, at the transit LSR two CCI objects | ociated with the LSP object. If any other CCI object is included in the PCInitia | |||
are expected for in-coming and outgoing label associated with the LSP object. I | te message, it <bcp14>MUST</bcp14> be ignored. If the transit LSR did not receiv | |||
f any other CCI object is included in the PCInitiate message, it MUST be ignored | e two CCI objects, with one of them having the O bit set and another with the O | |||
. If the transit LSR did not receive two CCI object with one of them having the | bit unset, it <bcp14>MUST</bcp14> send a PCErr message with Error-Type=31 (PCECC | |||
O bit set and another with O bit unset, it MUST send a PCErr message with Error- | failure) and Error-value=3 (Invalid CCI).</t> | |||
Type = TBD5 ("PCECC failure") and Error Value = TBD9 ("Invalid CCI").</t> | <t>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 and eg | ||||
<t>Note that, on receipt of the PCInitiate message with CCI object, the ingress, | ress IP address encoded in the LSP-IDENTIFIERS TLV.</t> | |||
egress, or transit role of the PCC is identified via the ingress and egress IP | </section> | |||
address encoded in the LSP-IDENTIFIERS TLV.</t> | <section toc="default" anchor="SEC_PCRpt" numbered="true"> | |||
<name>The PCRpt Message</name> | ||||
</section> | <t>The PCRpt message can be used to report the labels that were allocate | |||
d by the PCE to be used during the State Synchronization phase or as an acknowle | ||||
<section title="The PCRpt Message" | dgment to a PCInitiate message. | |||
toc="default" | </t> | |||
anchor="SEC_PCRpt"> | <sourcecode type=""><![CDATA[ | |||
<t>The PCRpt message can be used to report the labels that were allocated by th | ||||
e PCE, to be used during the state synchronization phase or as an acknowledgment | ||||
to PCInitiate message. | ||||
<figure title="" suppress-title="false" align="left" alt="" width="" height= | ||||
""> | ||||
<artwork xml:space="preserve" name="" type="" align="left" alt="" width=" | ||||
" height=""><![CDATA[ | ||||
<PCRpt Message> ::= <Common Header> | <PCRpt Message> ::= <Common Header> | |||
<state-report-list> | <state-report-list> | |||
Where: | ]]></sourcecode> | |||
<t>Where:</t> | ||||
<sourcecode type=""><![CDATA[ | ||||
<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>] | |||
]]></sourcecode> | ||||
Where: | <t>Where:</t> | |||
<path> is as per [RFC8231] and the LSP and SRP object are | <ul spacing="normal"> | |||
also defined in [RFC8231]. | <li><path> is as per <xref target="RFC8231" format="default"/>, and | |||
]]></artwork> | the LSP and SRP objects are | |||
</figure> | also defined in <xref target="RFC8231" format="default"/>.</li> | |||
</t> | </ul> | |||
<t>When PCRpt message is used to report the central controller instruction | <t>When a PCRpt message is used to report the CCI (labels), the LSP and | |||
s (labels), the LSP and CCI objects MUST be present. | CCI objects <bcp14>MUST</bcp14> be present. | |||
The LSP object is defined in <xref target='RFC8231'/> and if the LSP obj | The LSP object is defined in <xref target="RFC8231" format="default"/>, | |||
ect is missing, the receiving PCE MUST send | and if the LSP object is missing, the receiving PCE <bcp14>MUST</bcp14> send | |||
a PCErr message with Error-type=6 (Mandatory Object missing) and | a PCErr message with Error-Type=6 (Mandatory Object missing) and | |||
Error-value=8 (LSP object missing). The CCI object is defined in <xref targe | Error-value=8 (LSP object missing). The CCI object is defined in <xref targe | |||
t="SEC_CCI"/> and if the CCI object is | t="SEC_CCI" format="default"/>, and if the CCI object is | |||
missing, the receiving PCE MUST send a PCErr message with Error-type=6 | missing, the receiving PCE <bcp14>MUST</bcp14> send a PCErr message with Err | |||
(Mandatory Object missing) and Error-value=TBD11 (CCI object missing). | or-Type=6 | |||
(Mandatory Object missing) and Error-value=17 (CCI object missing). | ||||
Two CCI objects can be included in the PCRpt message | Two CCI objects can be included in the PCRpt message | |||
for a transit LSR.</t> | for a transit LSR.</t> | |||
</section> | ||||
</section> | </section> | |||
</section> | <section toc="default" numbered="true"> | |||
<name>PCEP Objects</name> | ||||
<section title="PCEP Objects" | <t>The PCEP objects defined in this document are compliant with the PCEP o | |||
toc="default"> | bject | |||
<t>The PCEP objects defined in this document are compliant with the PCEP obj | format defined in <xref target="RFC5440" format="default"/>. | |||
ect | </t> | |||
format defined in <xref target="RFC5440" />. <!-- The P flag and the I flag | <section toc="default" numbered="true"> | |||
of the PCEP objects | <name>OPEN Object</name> | |||
defined in this document MUST always be set to 0 on transmission and MUST | <t>This document defines a new PST (2) to be included in the PATH-SETUP- | |||
be ignored on receipt since these flags are exclusively related to | TYPE-CAPABILITY TLV in the OPEN object. Further, a new sub-TLV for the PCECC cap | |||
path computation requests.--></t> | ability exchange is also defined.</t> | |||
<section title="OPEN Object" | <section toc="default" anchor="SEC_PCECC_CAP_TLV" numbered="true"> | |||
toc="default"> | <name>PCECC Capability Sub-TLV</name> | |||
<t>This document defines a new PST (TBD1) to be included in the PATH-SETUP-T | <t>The PCECC-CAPABILITY sub-TLV is an optional TLV for use in the OPEN | |||
YPE-CAPABILITY TLV in the OPEN Object. Further, a new sub-TLV for PCECC capabili | object in the PATH-SETUP-TYPE-CAPABILITY TLV when the Path Setup Type list incl | |||
ty exchange is also defined.</t> | udes the PCECC Path Setup Type 2. A PCECC-CAPABILITY sub-TLV <bcp14>MUST</bcp14> | |||
<section title="PCECC Capability sub-TLV" | be ignored if the PST list does not contain PST=2.</t> | |||
toc="default" | <t>Its format is shown in <xref target="SEC_FIG8" format="default"/>.</t> | |||
anchor="SEC_PCECC_CAP_TLV"> | <figure anchor="SEC_FIG8"> | |||
<t>The PCECC-CAPABILITY sub-TLV is an optional TLV for use in the OPEN Objec | <name>PCECC Capability Sub-TLV</name> | |||
t in the PATH-SETUP-TYPE-CAPABILITY TLV, when the Path Setup Type list includes | <artwork align="left" alt="" name="" type=""><![CDATA[ | |||
the PCECC Path Setup Type TBD1. A PCECC-CAPABILITY sub-TLV MUST be ignored if th | ||||
e PST list does not contain PST=TBD1.</t> | ||||
<!--<t>The PCECC-CAPABILITY sub-TLV is an optional TLV for use in the OPEN O | ||||
bject | ||||
for PCECC capability advertisement in PATH-SETUP-TYPE-CAPABILITY TLV. Advert | ||||
isement of the PCECC capability | ||||
implies support of LSPs that are set up through PCECC as per PCEP extensions | ||||
defined in this document.</t>--> | ||||
<t>Its format is shown in <xref target="SEC_FIG8"/>.</t> | ||||
<figure align="left" | ||||
alt="" | ||||
height="" | ||||
suppress-title="false" | ||||
title="PCECC Capability sub-TLV" | ||||
width="" | ||||
anchor="SEC_FIG8"> | ||||
<artwork align="left" | ||||
alt="" | ||||
height="" | ||||
name="" | ||||
type="" | ||||
width="" | ||||
xml:space="preserve"> | ||||
<![CDATA[ | ||||
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| | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
]]> | ]]></artwork> | |||
</artwork> | </figure> | |||
</figure> | <t>The type of the TLV is 1, and it has a fixed length of 4 octets.</t | |||
> | ||||
<t>The type of the TLV is TBD12 and it has a fixed length of 4 octets.</t> | <t>The value comprises a single field: Flags (32 bits). | |||
<t>The value comprises a single field - Flags (32 bits). | ||||
Currently, the following flag bit is | Currently, the following flag bit is | |||
defined: <list style="symbols"> | defined: </t> | |||
<t>L bit (Label): if set to 1 by a PCEP speaker, the L flag | <dl newline="false" spacing="normal"> | |||
indicates that the PCEP speaker support and is willing to handle the PCECC | <dt>L bit (Label):</dt> | |||
based central controller instructions for label download. The bit MUST be set t | <dd>If set to '1' by a PCEP speaker, the L flag | |||
o 1 by both a PCC and a PCE for the PCECC label download/report on a PCEP sessio | indicates that the PCEP speaker will support and is willing to handle the | |||
n.</t> | PCEC-based Central Controller Instructions for label download. The bit <bcp14>MU | |||
<t>Unassigned bits MUST be set to 0 on | ST</bcp14> be set to '1' by both a PCC and a PCE for the PCECC label download/re | |||
transmission and MUST be ignored on receipt.</t> | port on a PCEP session.</dd></dl> | |||
</list></t> | <t>Unassigned bits <bcp14>MUST</bcp14> be set to '0' on | |||
transmission and <bcp14>MUST</bcp14> be ignored on receipt.</t> | ||||
</section> | </section> | |||
</section> | ||||
</section> | <section toc="default" anchor="SEC_PATH" numbered="true"> | |||
<name>PATH-SETUP-TYPE TLV</name> | ||||
<section title="PATH-SETUP-TYPE TLV" | <t>The PATH-SETUP-TYPE TLV is defined in <xref target="RFC8408" format=" | |||
toc="default" | default"/>; | |||
anchor="SEC_PATH"> | ||||
<t>The PATH-SETUP-TYPE TLV is defined in <xref target='RFC8408'/>; | ||||
this document defines a new PST value: | this document defines a new PST value: | |||
<list style="symbols"> | </t> | |||
<t>PST = TBD1: Path is set up via PCECC mode.</t> | <dl newline="false" spacing="normal"> | |||
</list></t> | <dt>PST=2:</dt> | |||
<dd>Path is set up via the PCECC mode.</dd> | ||||
<t>On a PCRpt/PCUpd/PCInitiate message, the PST=TBD1 in the PATH-SETUP-TYPE | </dl> | |||
TLV | <t>On a PCRpt/PCUpd/PCInitiate message, the PST=2 in the PATH-SETUP-TYPE | |||
in the SRP object MUST be included for a LSP set up via the PCECC-based mecha | TLV | |||
nism.</t> | in the SRP object <bcp14>MUST</bcp14> be included for an LSP set up via the P | |||
</section> | CECC-based mechanism.</t> | |||
</section> | ||||
<section title="CCI Object" | <section toc="default" anchor="SEC_CCI" numbered="true"> | |||
toc="default" | <name>CCI Object</name> | |||
anchor="SEC_CCI"> | <t>The CCI object is used by the PCE to specify the forwarding instructi | |||
<t>The Central Controller Instructions (CCI) Object is used by the PCE to sp | ons (label information in the context of this document) to the PCC and | |||
ecify the forwarding instructions (Label information in the context of this docu | <bcp14>MAY</bcp14> be carried within a PCInitiate or PCRpt message for label | |||
ment) to the PCC, and | download/report.</t> | |||
MAY be carried within PCInitiate or PCRpt message for label download/report. | <t>CCI Object-Class is 44.</t> | |||
</t> | <t>CCI Object-Type is 1 for the MPLS label.</t> | |||
<t>CCI Object-Class is TBD13.</t> | <figure anchor="SEC_FIG9"> | |||
<t>CCI Object-Type is 1 for the MPLS Label.</t> | <name>CCI Object</name> | |||
<figure align="left" | <artwork align="left" alt="" name="" type=""><![CDATA[ | |||
alt="" | ||||
height="" | ||||
suppress-title="false" | ||||
title="CCI Object" | ||||
width="" | ||||
anchor="SEC_FIG9"> | ||||
<artwork align="left" | ||||
alt="" | ||||
height="" | ||||
name="" | ||||
type="" | ||||
width="" | ||||
xml:space="preserve"> | ||||
<![CDATA[ | ||||
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 // | |||
| | | | | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
]]> | ]]></artwork> | |||
</artwork> | ||||
</figure> | </figure> | |||
<t>The fields in the CCI object are as follows: | <t>The fields in the CCI object are as follows: | |||
<list style="hanging"> | </t> | |||
<t hangText="CC-ID:"> A PCEP-specific identifier for the CCI | <dl newline="false" spacing="normal"> | |||
information. A PCE creates a CC-ID for each instruction, the value is | <dt>CC-ID:</dt> | |||
<dd> A PCEP-specific identifier for the CCI | ||||
information. A PCE creates a CC-ID for each instruction; the value is | ||||
unique within the scope of the PCE and is constant for the lifetime | unique within the scope of the PCE and is constant for the lifetime | |||
of a PCEP session. The values 0 and 0xFFFFFFFF are reserved | of a PCEP session. The values 0 and 0xFFFFFFFF are reserved | |||
and MUST NOT be used. Note | and <bcp14>MUST NOT</bcp14> be used. Note | |||
that <xref target='I-D.gont-numeric-ids-sec-considerations'/> gives advice on | that <xref target="I-D.gont-numeric-ids-sec-considerations" format="default"/ | |||
assigning transient numeric identifiers such as the CC-ID so as to | > gives advice on | |||
minimize security risks.</t> | assigning transient numeric identifiers, such as the CC-ID, so as to | |||
<t hangText="Reserved1 (16 bit):">Set to zero while sending, ignored on recei | minimize security risks.</dd> | |||
ve.</t> | <dt>Reserved1 (16 bit):</dt> | |||
<t hangText="Flags (16 bit):"> A field used to carry any additional informat | <dd>Set to 'zero' while sending; ignored on receipt.</dd> | |||
ion | <dt>Flags (16 bit):</dt> | |||
<dd> | ||||
<t> 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: <list style="symbols"> | defined: </t> | |||
<t>O bit(Out-label) : If the bit is set to 1, it specifies the label is | <ul spacing="normal"> | |||
the OUT label and it is mandatory to encode the next-hop | <li>O bit (out-label) : If the bit is set to '1', it specifies the | |||
information (via Address TLVs <xref target="AddressTLVs"/> in | label is | |||
the out-label, and it is mandatory to encode the next-hop | ||||
information (via Address TLVs (<xref target="AddressTLVs" format="default"/> | ||||
) in | ||||
the CCI object). If the bit is not set, it specifies the label is | the CCI object). If the bit is not set, it specifies the label is | |||
the IN label and it is optional to encode the local interface | the in-label, and it is optional to encode the local interface | |||
information (via Address TLVs in | information (via Address TLVs in | |||
the CCI object).</t> | the CCI object).</li> | |||
<t>C Bit (PCC Allocation): If the bit is set to 1, it indicates that | <li>C Bit (PCC allocation): If the bit is set to '1', it indicates | |||
the label allocation needs to be done by the PCC for this central | that | |||
controller instruction. A PCE sets this bit to request the PCC to | the label allocation needs to be done by the PCC for the Central | |||
Controller Instruction. A PCE sets this bit to request the PCC to | ||||
make an allocation from its label space. A PCC would set | make an allocation from its label space. A PCC would set | |||
this bit to indicate that it has allocated the label and report it | this bit to indicate that it has allocated the label and report it | |||
to the PCE.</t> | to the PCE.</li> | |||
<t>All unassigned bits MUST be set to zero at transmission and ignored at re | <li>All unassigned bits <bcp14>MUST</bcp14> be set to 'zero' at tr | |||
ceipt.</t> | ansmission and ignored at receipt.</li> | |||
</list></t> | </ul> | |||
<t hangText="Label (20-bit):">The Label information.</t> | </dd> | |||
<t hangText="Reserved2 (12 bit):">Set to zero while sending, ignored on rece | <dt>Label (20-bit):</dt> | |||
ive.</t> | <dd>The label information.</dd> | |||
</list></t> | <dt>Reserved2 (12 bit):</dt> | |||
<dd>Set to 'zero' while sending; ignored on receive.</dd> | ||||
<section title="Address TLVs" | </dl> | |||
toc="default" | <section toc="default" anchor="AddressTLVs" numbered="true"> | |||
anchor="AddressTLVs"> | <name>Address TLVs</name> | |||
<t><xref target="RFC8779"/> defines IPV4-ADDRESS, IPV6-ADDRESS, and UNNUMBER | <t><xref target="RFC8779" format="default"/> defines the IPV4-ADDRESS, | |||
ED-ENDPOINT TLVs for the use of Generalized Endpoint. The same TLVs can also be | IPV6-ADDRESS, and UNNUMBERED-ENDPOINT TLVs for the use of Generalized Endpoint. | |||
used in the CCI object to | The same TLVs can also be used in the CCI object to | |||
associate the next-hop information in the case of an outgoing label and | associate the next-hop information in the case of an outgoing label and | |||
local interface information in the case of an incoming label. The next-hop i | local interface information in the case of an incoming label. The next-hop i | |||
nformation encoded in these TLVs needs to be a directly connected IP address/int | nformation encoded in these TLVs needs to be a directly connected IP address/int | |||
erface information. If the PCC is not able to resolve the next-hop information, | erface information. If the PCC is not able to resolve the next-hop information, | |||
it MUST reject the CCI and respond with a PCErr message with Error-Type = TBD5 ( | it <bcp14>MUST</bcp14> reject the CCI and respond with a PCErr message with Erro | |||
"PCECC failure") and Error | r-Type=31 (PCECC failure) and Error-value=5 (Invalid next-hop information).</t> | |||
Value = TBD15 ("Invalid next-hop information").</t> | ||||
<!--<t>Further, this document specifies a new TLV called LINKLOCAL-IPV6-ADDRE | ||||
SS TLV | ||||
to describe an IPv6 adjacency for an interface that does not | ||||
have a global IPv6 address assigned.</t>--> | ||||
<!--<t>An IPv6 adjacency for an interface that does not have a global IPv6 a | ||||
ddress assigned, could use the link-local IPv6 address in the IPV6-ADDRESS TLV. | ||||
Further, this document specifies a new TLV called LINKLOCAL-IPV6-ADDRESS TLV tha | ||||
t can use the Interface ID and the global IPv6 address of the node to identify t | ||||
he IPv6 adjacency.</t> | ||||
<figure align="left" | ||||
alt="" | ||||
height="" | ||||
suppress-title="false" | ||||
title="LINKLOCAL-IPV6-ADDRESS TLV" | ||||
width="" | ||||
anchor="SEC_FIGC"> | ||||
<artwork align="left" | ||||
alt="" | ||||
height="" | ||||
name="" | ||||
type="" | ||||
width="" | ||||
xml:space="preserve"> | ||||
<![CDATA[ | ||||
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 | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Type=TBD14 | Length = 20 | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | | ||||
| IPv6 address | | ||||
| | | ||||
| | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Interface ID | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
]]> | ||||
</artwork> | ||||
</figure>--> | ||||
<!--<t>The address TLVs are as follows: | ||||
<list style="hanging"> | ||||
<t hangText="IPV4-ADDRESS TLV:">an IPv4 address.</t> | ||||
<t hangText="IPV6-ADDRESS TLV:">an IPv6 address.</t> | ||||
<t hangText="UNNUMBERED-IPV4-ID-ADDRESS TLV:">a Node ID / Interface ID tuple | ||||
.</t> | ||||
<t hangText="LINKLOCAL-IPV6-ID-ADDRESS TLV:">a pair of (global IPv6 | ||||
address, interface ID) tuples as described in Section 4.3.2 of <xref targ | ||||
et="RFC8664"/> for the IPv6 Link-Local Adjacency NAI (Node or Adjacency Identifi | ||||
er).</t> | ||||
</list> | ||||
</t>--> | ||||
<!--<t>The type of the LINKLOCAL-IPV6-ADDRESS TLV is TBD14 and it has a | ||||
fixed length of 20 octets. The value portion of the TLV includes: | ||||
<list style="symbols"> | ||||
<t>IPv6 address: A 128-bit IPv6 address of the node.</t> | ||||
<t>Interface ID: A 32-bit identifier assigned to the link.</t> | ||||
</list></t>--> | ||||
</section> | ||||
</section> | </section> | |||
</section> | ||||
<!--<section title="Extension of SRP object" anchor="SEC_SRP_OBJ"> | ||||
<t> | ||||
SRP object is defined in <xref target="RFC8231"/> | ||||
and extended in <xref target="RFC8281"/>. | ||||
This draft defines a new 'SYNC' flag (S bit) to specify the LABEL-DB synchroniz | ||||
ation operation. | ||||
</t> | ||||
<t>The format of the SRP object is shown <xref target="SEC_SRP_OBJ_FIG"/>:</t> | ||||
<t> | ||||
<figure title="SRP Object format" suppress-title="false" align="center" alt="" w | ||||
idth="" height="" anchor="SEC_SRP_OBJ_FIG"> | ||||
<artwork xml:space="preserve" name="" type="" align="center" alt="" width="" hei | ||||
ght=""> | ||||
<![CDATA[ | ||||
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 | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Flags |S|R| | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| SRP-ID-number | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | | ||||
// Optional TLVs // | ||||
| | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
]]> | ||||
</artwork> | ||||
</figure> | ||||
</t> | ||||
<t>S (SYNC - 1 bit):The S Flag MUST be set to 1 on each PCLabelUpd and | ||||
PCLabelRpt sent from a PCE and PCC respectively during LABEL-DB | ||||
Synchronization. The S Flag MUST be set to 0 in other messages sent | ||||
from the PCE and PCC.</t> | ||||
</section> --> | ||||
</section> | </section> | |||
<section anchor="Imp" title="Implementation Status"> | <section toc="default" numbered="true"> | |||
<t>[Note to the RFC Editor - remove this section before publication, as well as | <name>Security Considerations</name> | |||
remove the reference to RFC 7942.]</t> | <t>As per <xref target="RFC8283" format="default"/>, the security consider | |||
<t>This section records the status of known implementations of the | ations for a PCE-based controller are a little | |||
protocol defined by this specification at the time of posting of | ||||
this Internet-Draft, and is based on a proposal described in | ||||
<xref target="RFC7942"/>. The description of implementations in this secti | ||||
on 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.</t> | ||||
<t>According to <xref target="RFC7942"/>, "this will allow reviewers and wo | ||||
rking | ||||
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".</t> | ||||
<section anchor="Onos" title="Huawei's Proof of Concept based on ONOS"> | ||||
<t>The PCE function was developed in the ONOS open source platform. This exten | ||||
sion was implemented on a private version as a proof of concept for PCECC. | ||||
<list style="symbols"> | ||||
<t>Organization: Huawei</t> | ||||
<t>Implementation: Huawei's PoC based on ONOS</t> | ||||
<t>Description: PCEP as a southbound plugin was added to ONOS. To support PC | ||||
ECC, an earlier version of this I-D was implemented. Refer https://wiki.onosproj | ||||
ect.org/display/ONOS/PCEP+Protocol</t> | ||||
<t>Maturity Level: Prototype</t> | ||||
<t>Coverage: Partial</t> | ||||
<t>Contact: satishk@huawei.com</t> | ||||
</list></t> | ||||
</section> | ||||
</section> | ||||
<section title="Security Considerations" | ||||
toc="default"> | ||||
<t>As per <xref target="RFC8283"/>, the security considerations for a PCE- | ||||
based controller is a little | ||||
different from those for any other PCE system. That is, the | different from those for any other PCE system. That is, the | |||
operation relies heavily on the use and security of PCEP, so | operation relies heavily on the use and security of PCEP, so | |||
consideration should be given to the security features discussed in | consideration should be given to the security features discussed in | |||
<xref target="RFC5440"/> and the additional mechanisms described in <xref tar | <xref target="RFC5440" format="default"/> and the additional mechanisms descr | |||
get="RFC8253"/>. It further lists the vulnerability of a central controller arch | ibed in <xref target="RFC8253" format="default"/>. It further lists the vulnerab | |||
itecture, such as a central | ility of a central controller architecture, such as a central | |||
point of failure, denial-of-service, and a focus for | point of failure, denial of service, and a focus for | |||
interception and modification of messages sent to individual NEs.</t> | interception and modification of messages sent to individual Network Elements | |||
<t>In PCECC operations, the PCEP sessions are also required to the internal r | (NEs).</t> | |||
outers and thus increasing the resources required for the session management at | <t>In the PCECC operations, the PCEP sessions are also required to the int | |||
the PCE. </t> | ernal routers, thus increasing the resources required for the session management | |||
<t>The PCECC extension builds on the existing PCEP messages and thus the s | at the PCE. </t> | |||
ecurity considerations described in <xref target="RFC5440"/>, <xref target="RFC8 | <t>The PCECC extension builds on the existing PCEP messages; thus, the sec | |||
231"/> and | urity considerations described in <xref target="RFC5440" format="default"/>, <xr | |||
<xref target="RFC8281"/> continue to apply. <xref target="RFC8253"/> spec | ef target="RFC8231" format="default"/>, and | |||
ify the support of Transport Layer Security (TLS) in PCEP, as it | <xref target="RFC8281" format="default"/> continue to apply. <xref target | |||
="RFC8253" format="default"/> specifies the support of Transport Layer Security | ||||
(TLS) in PCEP, as it | ||||
provides support for peer authentication, message encryption, and | provides support for peer authentication, message encryption, and | |||
integrity. It further provide mechanisms for | integrity. It further provides mechanisms for | |||
associating peer identities with different levels of access and/or | associating peer identities with different levels of access and/or | |||
authoritativeness via an attribute in X.509 certificates or a local policy wi th a specific accept-list of X.509 certificate. This can be used to check the au thority for the PCECC operations. | authoritativeness via an attribute in X.509 certificates or a local policy wi th a specific accept-list of X.509 certificates. This can be used to check the a uthority for the PCECC operations. | |||
Additional considerations are discussed in following sections.</t> | Additional considerations are discussed in following sections.</t> | |||
<section title="Malicious PCE" | <section toc="default" numbered="true"> | |||
toc="default"> | <name>Malicious PCE</name> | |||
<t>In this extension, the PCE has complete control over the PCC to | <t>In this extension, the PCE has complete control over the PCC to downl | |||
download/remove the labels and can | oad/remove the labels and can | |||
cause the LSP's to behave inappropriately and cause a major impact | cause the LSPs to behave inappropriately and cause a major impact | |||
to the network. As a general precaution, it is RECOMMENDED that | to the network. As a general precaution, it is <bcp14>RECOMMENDED</bcp14> tha | |||
this PCEP extension be activated on mutually-authenticated and encrypted | t | |||
this PCEP extension be activated on mutually authenticated and encrypted | ||||
sessions across PCEs and PCCs belonging to the same administrative | sessions across PCEs and PCCs belonging to the same administrative | |||
authority, using TLS <xref target="RFC8253"/>, | authority, using TLS <xref target="RFC8253" format="default"/>, | |||
as per the recommendations and best current practices in BCP 195 <xref target | as per the recommendations and best current practices in BCP 195 <xref target | |||
="RFC7525"/>. </t> | ="RFC7525" format="default"/>. </t> | |||
<t>Further, an attacker may flood the PCC | <t>Further, an attacker may flood the PCC | |||
with PCECC related messages at a rate that exceeds either the PCC's ability | with the PCECC-related messages at a rate that exceeds either the PCC's abili | |||
ty | ||||
to process them or the network's ability to send them, by | to process them or the network's ability to send them, by | |||
either spoofing messages or compromising the PCE itself. <xref target="RFC828 | either spoofing messages or compromising the PCE itself. <xref target="RFC828 | |||
1"/> provides a mechanism to protect the PCC by imposing a limit. The same can b | 1" format="default"/> provides a mechanism to protect the PCC by imposing a limi | |||
e used for the PCECC operations as well.</t> | t. The same can be used for the PCECC operations as well.</t> | |||
<t>As specified in <xref target="LabelDownloadCCI"/>, a PCC needs to check if | <t>As specified in <xref target="LabelDownloadCCI" format="default"/>, a | |||
the label in the CCI object is in the range set aside for the PCE, otherwise it | PCC needs to check if the label in the CCI object is in the range set aside for | |||
MUST send a PCErr message with Error-type=TBD5 | the PCE; otherwise, it <bcp14>MUST</bcp14> send a PCErr message with Error-Type | |||
(PCECC failure) and Error-value=TBD6 (Label out of range).</t> | =31 | |||
</section> | (PCECC failure) and Error-value=1 (Label out of range).</t> | |||
<section title="Malicious PCC" | </section> | |||
toc="default"> | <section toc="default" numbered="true"> | |||
<t>The PCECC mechanism described in this document requires | <name>Malicious PCC</name> | |||
<t>The PCECC mechanism described in this document requires | ||||
the PCE to keep labels (CCI) that it downloads and relies on the | the PCE to keep labels (CCI) that it downloads and relies on the | |||
PCC responding (with either an acknowledgment or an error message) to | PCC responding (with either an acknowledgment or an error message) to | |||
requests for LSP instantiation. This is an additional attack surface by | request for LSP instantiation. This is an additional attack surface by | |||
placing a requirement for the PCE to keep a CCI/label replica for | placing a requirement for the PCE to keep a CCI/label replica for | |||
each PCC. It is RECOMMENDED that PCE implementations provide a limit | each PCC. It is <bcp14>RECOMMENDED</bcp14> that PCE implementations provide | |||
on resources (in this case the CCI) a single PCC can occupy. <xref target="RF | a limit | |||
C8231"/> provides a notification mechanism when such threshold is reached. </t> | on resources (in this case the CCI) a single PCC can occupy. <xref target="RF | |||
</section> | C8231" format="default"/> provides a notification mechanism when such threshold | |||
is reached. </t> | ||||
</section> | ||||
</section> | </section> | |||
<section toc="default" numbered="true"> | ||||
<section title="Manageability Considerations" | <name>Manageability Considerations</name> | |||
toc="default"> | <section toc="default" numbered="true"> | |||
<section title="Control of Function and Policy" | <name>Control of Function and Policy</name> | |||
toc="default"> | <t>A PCE or PCC implementation <bcp14>SHOULD</bcp14> allow the PCECC cap | |||
<t>A PCE or PCC implementation SHOULD allow the PCECC capability to be e | ability to be enabled/disabled as part of the global configuration. <xref target | |||
nabled/disabled as part of the global configuration. | ="RFC8664" sectionFormat="of" section="6.1"/> list various controlling factors r | |||
egarding the Path Setup Type. They are also applicable to the PCECC Path Setup T | ||||
Section 6.1 of <xref target="RFC8664"/> list various controlling factors rega | ypes. Further, <xref target="RFC8664" sectionFormat="of" section="6.2"/> describ | |||
rding path setup type. They are also applicable to the PCECC path setup types. F | es the migration steps when the Path Setup Type of an existing LSP is changed.</ | |||
urther, Section 6.2 of <xref target="RFC8664"/> describe the migration steps whe | t> | |||
n path setup type of an existing LSP is changed.</t> | ||||
</section> | </section> | |||
<section title="Information and Data Models" | <section toc="default" numbered="true"> | |||
toc="default"> | <name>Information and Data Models</name> | |||
<t><xref target="RFC7420"/> describes the PCEP MIB, this MIB can be exte | <t><xref target="RFC7420" format="default"/> describes the PCEP MIB; thi | |||
nded to get the | s MIB can be extended to get the | |||
PCECC capability status.</t> | PCECC capability status.</t> | |||
<t>The PCEP YANG module <xref target="I-D.ietf-pce-pcep-yang" format="de | ||||
<t>The PCEP YANG module <xref target="I-D.ietf-pce-pcep-yang"/> could be | fault"/> could be extended | |||
extended | to enable/disable the PCECC capability.</t> | |||
to enable/disable PCECC capability.</t> | ||||
</section> | </section> | |||
<section title="Liveness Detection and Monitoring" | <section toc="default" numbered="true"> | |||
toc="default"> | <name>Liveness Detection and Monitoring</name> | |||
<t>Mechanisms defined in this document do not imply any new liveness | <t>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 <xref target="RFC5440"/>.</t> | listed in <xref target="RFC5440" format="default"/>.</t> | |||
</section> | </section> | |||
<section title="Verify Correct Operations" | <section toc="default" numbered="true"> | |||
toc="default"> | <name>Verify Correct Operations</name> | |||
<!--<t>Mechanisms defined in this document do not imply any new operatio | ||||
n | ||||
verification requirements in addition to those already listed in | ||||
<xref target="RFC5440"/> and <xref target="RFC8231"/>.</t>--> | ||||
<t>The operator needs the following information to verify that PCEP is | <t>The operator needs the following information to verify that PCEP is | |||
operating correctly with respect to the PCECC path setup | operating correctly with respect to the PCECC Path Setup | |||
type.</t> | Type.</t> | |||
<t> | <ul spacing="normal"> | |||
<list style="symbols"> | <li>An implementation <bcp14>SHOULD</bcp14> allow the operator to view | |||
<t>An implementation SHOULD allow the operator to view whether the | whether the | |||
PCEP speaker sent the PCECC PST capability to its peer.</t> | PCEP speaker sent the PCECC PST capability to its peer.</li> | |||
<li>An implementation <bcp14>SHOULD</bcp14> allow the operator to view | ||||
<t>An implementation SHOULD allow the operator to view whether the | whether the | |||
peer sent the PCECC PST capability. </t> | peer sent the PCECC PST capability. </li> | |||
<li>An implementation <bcp14>SHOULD</bcp14> allow the operator to view | ||||
<t>An implementation SHOULD allow the operator to view whether the | whether the | |||
PCECC PST is enabled on a PCEP session.</t> | PCECC PST is enabled on a PCEP session.</li> | |||
<li>If one PCEP speaker advertises the PCECC PST capability, | ||||
<t>If one PCEP speaker advertises the PCECC PST capability, | but the other does not, then the implementation <bcp14>SHOULD</bcp14> crea | |||
but the other does not, then the implementation SHOULD create a | te a | |||
log to inform the operator of the capability mismatch.</t> | log to inform the operator of the capability mismatch.</li> | |||
<li>If a PCEP speaker rejects a CCI, then it <bcp14>SHOULD</bcp14> | ||||
<t>If a PCEP speaker rejects a CCI, then it SHOULD | ||||
create a log to inform the operator, giving the reason for the | create a log to inform the operator, giving the reason for the | |||
decision (local policy, Label issues, etc.).</t> | decision (local policy, label issues, etc.).</li> | |||
</ul> | ||||
</list></t> | ||||
</section> | </section> | |||
<section title="Requirements On Other Protocols" | <section toc="default" numbered="true"> | |||
toc="default"> | <name>Requirements on Other Protocols</name> | |||
<t>PCEP extensions defined in this document do not put new requirements | <t>PCEP extensions defined in this document do not put new requirements | |||
on other protocols.</t> | on other protocols.</t> | |||
</section> | </section> | |||
<section title="Impact On Network Operations" | <section toc="default" numbered="true"> | |||
toc="default"> | <name>Impact on Network Operations</name> | |||
<t>PCEP extensions defined in this document do not put new requirements | <t>PCEP extensions defined in this document do not put new requirements | |||
on network operations.</t> | on network operations.</t> | |||
</section> | </section> | |||
</section> | </section> | |||
<section toc="default" numbered="true"> | ||||
<section title="IANA Considerations" | <name>IANA Considerations</name> | |||
toc="default"> | <section toc="default" numbered="true"> | |||
<name>PATH-SETUP-TYPE-CAPABILITY Sub-TLV Type Indicators</name> | ||||
<!--<section title="PCLabelUpd-PCLabelRpt message" toc="default"> | <t><xref target="RFC8408" format="default"/> detailed the creation of th | |||
<t>IANA is requested to allocate a new message type within the "PCEP | e "PATH-SETUP-TYPE-CAPABILITY Sub-TLV Type Indicators" subregistry. Further, IAN | |||
Messages" sub-registry of the PCEP Numbers registry for:</t> | A has allocated the following codepoint:</t> | |||
<texttable anchor="PCEP-LBL-MSG" style="none" suppress-title="true" title=" | <table anchor="PCEP-SUBTYPE-IND" align="center"> | |||
" align="center"> | <name>PATH-SETUP-TYPE-CAPABILITY Sub-TLV Type Indicators Subregistry Ad | |||
<ttcol align="left" width="20%">Value</ttcol> | dition</name> | |||
<ttcol align="left" width="30%">Meaning</ttcol> | <thead> | |||
<ttcol align="left" width="20%">Reference</ttcol> | <tr> | |||
<c>TBD</c> | <th align="left">Value</th> | |||
<c>Label Update</c> | <th align="left">Meaning</th> | |||
<c>This document</c> | <th align="left">Reference</th> | |||
<c>TBD</c> | </tr> | |||
<c>Label Report</c> | </thead> | |||
<c>This document</c> | <tbody> | |||
</texttable> | <tr> | |||
</section>--> | <td align="left">1</td> | |||
<td align="left">PCECC-CAPABILITY</td> | ||||
<!--<section title="PCEP TLV Type Indicators" toc="default"> | <td align="left">RFC 9050</td> | |||
<t>IANA is requested to allocate the following | </tr> | |||
TLV Type Indicator value within the "PCEP TLV Type Indicators" sub-regist | </tbody> | |||
ry of the PCEP Numbers registry:</t> | </table> | |||
<texttable anchor="PCEP-TYPE-IND" style="none" suppress-title="true" title= | ||||
"" align="center"> | ||||
<ttcol align="left" width="20%">Value</ttcol> | ||||
<ttcol align="left" width="30%">Meaning</ttcol> | ||||
<ttcol align="left" width="20%">Reference</ttcol> | ||||
<c>TBD14</c> | ||||
<c>LINKLOCAL-IPV6-ADDRESS TLV</c> | ||||
<c>This document</c> | ||||
</texttable> | ||||
</section>--> | ||||
<section title="PATH-SETUP-TYPE-CAPABILITY Sub-TLV Type Indicators" toc="d | ||||
efault"> | ||||
<t><xref target="RFC8408"/> requested the creation of "PATH-SETUP-TYPE-C | ||||
APABILITY Sub-TLV Type Indicators" sub-registry. Further IANA is requested to al | ||||
locate the following code-point:</t> | ||||
<texttable anchor="PCEP-SUBTYPE-IND" style="none" suppress-title="true" tit | ||||
le="" align="center"> | ||||
<ttcol align="left" width="20%">Value</ttcol> | ||||
<ttcol align="left" width="30%">Meaning</ttcol> | ||||
<ttcol align="left" width="20%">Reference</ttcol> | ||||
<c>TBD12</c> | ||||
<c>PCECC-CAPABILITY</c> | ||||
<c>This document</c> | ||||
</texttable> | ||||
</section> | </section> | |||
<section title="PCECC-CAPABILITY sub-TLV's Flag field" toc="default"> | <section toc="default" numbered="true"> | |||
<name>PCECC-CAPABILITY Sub-TLV's Flag Field</name> | ||||
<t>This document defines the | <t>This document defines the | |||
PCECC-CAPABILITY sub-TLV and requests that IANA to create a new sub-regist | PCECC-CAPABILITY sub-TLV; IANA has created a new subregistry to | |||
ry to | manage the value of the PCECC-CAPABILITY sub-TLV's 32-bit Flag field. Ne | |||
manage the value of the PCECC-CAPABILITY sub-TLV's 32-bits Flag field. N | w | |||
ew | values are to be assigned by Standards Action <xref target="RFC8126" format=" | |||
values are to be assigned by Standards Action <xref target="RFC8126"/>. Each | default"/>. Each bit | |||
bit | should be tracked with the following qualities:</t> | |||
should be tracked with the following qualities:<list style="symbols"> | <ul spacing="normal"> | |||
<li>bit number (counting from bit 0 as the most significant bit)</li> | ||||
<t>Bit number (counting from bit 0 as the most significant bit)</t> | <li>capability description</li> | |||
<li>defining RFC</li> | ||||
<t>Capability description</t> | </ul> | |||
<t>Currently, there is one allocation in this registry.</t> | ||||
<t>Defining RFC</t></list></t> | <table anchor="PCEP-CAP-SubTLv" align="center"> | |||
<t>Currently, there is one allocation in this registry.</t> | <name>Initial Contents of the PCECC-CAPABILITY Sub-TLV Subregistry</nam | |||
<texttable anchor="PCEP-CAP-SubTLv" style="none" suppress-title="true" title= | e> | |||
"" align="center"> | <thead> | |||
<ttcol align="left" width="20%">Bit</ttcol> | <tr> | |||
<ttcol align="left" width="30%">Name</ttcol> | <th align="left">Bit</th> | |||
<ttcol align="left" width="20%">Reference</ttcol> | <th align="left">Name</th> | |||
<c>31</c> | <th align="left">Reference</th> | |||
<c>Label</c> | </tr> | |||
<c>This document</c> | </thead> | |||
<c>0-30</c> | <tbody> | |||
<c>Unassigned</c> | <tr> | |||
<c>This document</c> | <td align="left">0-30</td> | |||
</texttable> | <td align="left">Unassigned</td> | |||
<td align="left">RFC 9050</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left">31</td> | ||||
<td align="left">Label</td> | ||||
<td align="left">RFC 9050</td> | ||||
</tr> | ||||
</tbody> | ||||
</table> | ||||
</section> | </section> | |||
<section toc="default" numbered="true"> | ||||
<section title="Path Setup Type Registry" toc="default"> | <name>PCEP Path Setup Type Registry</name> | |||
<t><xref target="RFC8408"/> created a sub-registry within the "Path Comp | <t><xref target="RFC8408" format="default"/> created a subregistry withi | |||
utation Element | n the "Path Computation Element | |||
Protocol (PCEP) Numbers" registry called "PCEP Path Setup Types". | Protocol (PCEP) Numbers" registry called "PCEP Path Setup Types". | |||
IANA is requested to allocate a new code point within this registry, | IANA has allocated a new codepoint within this registry, | |||
as follows:</t> | as follows:</t> | |||
<texttable anchor="PCEP-PATH-TYPE" style="none" suppress-title="true" title | <table anchor="PCEP-PATH-TYPE" align="center"> | |||
="" align="center"> | <name>Path Setup Type Registry Codepoint Addition</name> | |||
<ttcol align="left" width="20%">Value</ttcol> | <thead> | |||
<ttcol align="left" width="30%">Description</ttcol> | <tr> | |||
<ttcol align="left" width="20%">Reference</ttcol> | <th align="left">Value</th> | |||
<c>TBD1</c> | <th align="left">Description</th> | |||
<c>Traffic engineering path is</c> | <th align="left">Reference</th> | |||
<c>This document</c> | </tr> | |||
<c> </c> | </thead> | |||
<c>set up using PCECC mode</c> | <tbody> | |||
<c> </c> | <tr> | |||
</texttable> | <td align="left">2</td> | |||
<td align="left">Traffic engineering path is set up using PCECC mo | ||||
de</td> | ||||
<td align="left">RFC 9050</td> | ||||
</tr> | ||||
</tbody> | ||||
</table> | ||||
</section> | </section> | |||
<section toc="default" numbered="true"> | ||||
<name>PCEP Object</name> | ||||
<t>IANA has allocated new codepoints in the "PCEP Objects" subregistry f | ||||
or the CCI object as follows:</t> | ||||
<section title="PCEP Object" toc="default"> | <table anchor="PCEP-OBJECT" align="center"> | |||
<t>IANA is requested to allocate new code-point in the "PCEP Objects" su | <name>PCEP Objects Subregistry Additions</name> | |||
b-registry for the CCI object as follows:</t> | <thead> | |||
<texttable anchor="PCEP-OBJECT" style="none" suppress-title="true" title="" | <tr> | |||
align="center"> | <th align="left">Object-Class Value</th> | |||
<ttcol align="left" width="20%">Object-Class Value</ttcol> | <th align="left">Name</th> | |||
<ttcol align="left" width="30%">Name</ttcol> | <th align="left">Object-Type</th> | |||
<ttcol align="left" width="20%">Reference</ttcol> | <th align="left">Reference</th> | |||
<c>TBD13</c> | </tr> | |||
<c>CCI Object-Type</c> | </thead> | |||
<c>This document</c> | <tbody> | |||
<c> </c> | <tr> | |||
<c>0</c> | <td align="left">44</td> | |||
<c>Reserved </c> | <td align="left">CCI Object-Type</td> | |||
<c> </c> | <td align="left"><ul empty="true" spacing="compact" bare="true"><li | |||
<c>1</c> | >0: Reserved</li><li>1: MPLS Label</li><li>2-15: Unassigned</li></ul></td> | |||
<c>MPLS Label</c> | <td align="left">RFC 9050</td> | |||
</texttable> | </tr> | |||
</tbody> | ||||
</table> | ||||
</section> | </section> | |||
<section toc="default" numbered="true"> | ||||
<section title="CCI Object Flag Field" toc="default"> | <name>CCI Object Flag Field</name> | |||
<t>IANA is requested to create a new sub-registry to manage the Flag fie | <t>IANA has created a new subregistry to manage the Flag field | |||
ld | ||||
of the CCI object called "CCI Object Flag Field for MPLS Label". New | of the CCI object called "CCI Object Flag Field for MPLS Label". New | |||
values are to be assigned by Standards Action <xref target="RFC8126"/>. Each | values are to be assigned by Standards Action <xref target="RFC8126" format=" | |||
bit | default"/>. Each bit | |||
should be tracked with the following qualities:<list style="symbols"> | should be tracked with the following qualities:</t> | |||
<ul spacing="normal"> | ||||
<t>Bit number (counting from bit 0 as the most significant bit)</t> | <li>bit number (counting from bit 0 as the most significant bit)</li> | |||
<li>capability description</li> | ||||
<t>Capability description</t> | <li>defining RFC</li> | |||
</ul> | ||||
<t>Defining RFC</t></list></t> | <t>Two bits are defined for the CCI Object flag field in this document a | |||
<t>Two bits to be defined for the CCI Object flag field in this document | s follows:</t> | |||
as follows:</t> | <table anchor="CCI-FLAG" align="center"> | |||
<name>CCI Object Flag Field for MPLS Label Initial Contents</name> | ||||
<texttable anchor="CCI-FLAG" style="none" suppress-title="true" title="" al | <thead> | |||
ign="center"> | <tr> | |||
<ttcol align="left" width="20%">Bit</ttcol> | <th align="left">Bit</th> | |||
<ttcol align="left" width="30%">Description</ttcol> | <th align="left">Description</th> | |||
<ttcol align="left" width="20%">Reference</ttcol> | <th align="left">Reference</th> | |||
<c>0-13</c> | </tr> | |||
<c>Unassigned</c> | </thead> | |||
<c>This document</c> | <tbody> | |||
<c>14</c> | <tr> | |||
<c>C Bit - PCC allocation</c> | <td align="left">0-13</td> | |||
<c>This document</c> | <td align="left">Unassigned</td> | |||
<c>15</c> | <td align="left"></td> | |||
<c>O Bit - Specifies label</c> | </tr> | |||
<c>This document</c> | <tr> | |||
<c> </c> | <td align="left">14</td> | |||
<c>is out-label</c> | <td align="left">C Bit - PCC allocation</td> | |||
<c> </c> | <td align="left">RFC 9050</td> | |||
</tr> | ||||
</texttable> | <tr> | |||
<td align="left">15</td> | ||||
<td align="left">O Bit - Specifies label is out-label</td> | ||||
<td align="left">RFC 9050</td> | ||||
</tr> | ||||
</tbody> | ||||
</table> | ||||
</section> | </section> | |||
<section toc="default" numbered="true"> | ||||
<name>PCEP-Error Object</name> | ||||
<t>IANA has allocated new error types and error values within | ||||
the "PCEP-ERROR Object Error Types and Values" subregistry of the | ||||
"Path Computation Element Protocol (PCEP) Numbers" registry for the fol | ||||
lowing errors:</t> | ||||
<table anchor="error-type"> | ||||
<name>PCEP-ERROR Object Error Types and Values Additions</name> | ||||
<thead> | ||||
<tr> | ||||
<th>Error-Type</th> | ||||
<th>Meaning</th> | ||||
<th>Error-value</th> | ||||
<th>Reference</th> | ||||
</tr> | ||||
</thead> | ||||
<tbody> | ||||
<tr> | ||||
<td>6</td> | ||||
<td>Mandatory Object missing</td> | ||||
<td>17: CCI object missing</td> | ||||
<td>RFC 9050</td> | ||||
</tr> | ||||
<tr> | ||||
<td>10</td> | ||||
<td>Reception of an invalid object</td> | ||||
<td>33: Missing PCECC Capability sub-TLV</td> | ||||
<td>RFC 9050</td> | ||||
</tr> | ||||
<tr> | ||||
<td>19</td> | ||||
<td>Invalid Operation</td> | ||||
<td> | ||||
<t>16: Attempted PCECC operations when PCECC capability was not advertise | ||||
d</t> | ||||
<t>17: Stateful PCE capability was not advertised</t> | ||||
<t>18: Unknown Label</t> | ||||
</td> | ||||
<td>RFC 9050</td> | ||||
</tr> | ||||
<!--<section title="SRP Object Flag Field" toc="default"> | <tr> | |||
<t>SRP object is defined in <xref target="RFC8231"/> and extended in | <td>31</td> | |||
<xref target="RFC8281"/>. IANA is requested to allocate a new | <td>PCECC failure</td> | |||
bit in SRP object flag. Field registry, as follows:</t> | <td> | |||
<texttable anchor="SRP-FLAG" style="none" suppress-title="true" title="" al | <t>1: Label out of range</t> | |||
ign="center"> | <t>2: Instruction failed</t> | |||
<ttcol align="left" width="20%">Bit</ttcol> | <t>3: Invalid CCI</t> | |||
<ttcol align="left" width="30%">Description</ttcol> | <t>4: Unable to allocate the specified CCI</t> | |||
<ttcol align="left" width="20%">Reference</ttcol> | <t>5: Invalid next-hop information</t> | |||
<c>30</c> | </td> | |||
<c>S(SYNC Flag)</c> | <td>RFC 9050</td> | |||
<c>This document</c> | </tr> | |||
</texttable> | </tbody> | |||
</section>--> | </table> | |||
<section title="PCEP-Error Object" toc="default"> | ||||
<t>IANA is requested to allocate new error types and error values within | ||||
the "PCEP-ERROR Object Error Types and Values" sub-registry of the | ||||
PCEP Numbers registry for the following errors: | ||||
<vspace blankLines="1" /> | ||||
<?rfc subcompact="yes"?> | ||||
<list style="hanging" hangIndent="13"> | ||||
<t hangText="Error-Type">Meaning</t> | ||||
<t hangText="---------- -------"></t> | ||||
<t hangText="6">Mandatory Object missing. | ||||
<list style="hanging" hangIndent="37"> | ||||
<t hangText=" Error-value = TBD11 :">CCI object missing</t> | ||||
</list> | ||||
</t> | ||||
<t></t> | ||||
<t hangText="10">Reception of an invalid object. | ||||
<list style="hanging" hangIndent="37"> | ||||
<t hangText=" Error-value = TBD2 :">Missing PCECC Capability sub-TLV | ||||
</t> | ||||
</list></t> | ||||
<t hangText="19">Invalid operation. | ||||
<list style="hanging" hangIndent="37"> | ||||
<t hangText=" Error-value = TBD3 :">Attempted PCECC operations when | ||||
PCECC capability was not advertised</t> | ||||
<t hangText=" Error-value = TBD4 :">Stateful PCE capability was not | ||||
advertised</t> | ||||
<t hangText=" Error-value = TBD8 :">Unknown Label</t> | ||||
</list> | ||||
</t> | ||||
<t></t> | ||||
<t hangText="TBD5">PCECC failure. | ||||
<list style="hanging" hangIndent="37"> | ||||
<t hangText=" Error-value = TBD6 :">Label out of range.</t> | ||||
<t hangText=" Error-value = TBD7 :">Instruction failed.</t> | ||||
<t hangText=" Error-value = TBD9 :">Invalid CCI.</t> | ||||
<t hangText=" Error-value = TBD10 :">Unable to allocate the specifie | ||||
d CCI.</t> | ||||
<t hangText=" Error-value = TBD15 :">Invalid next-hop information.</ | ||||
t> | ||||
</list> | ||||
</t> | ||||
<!--<t hangText="TBD">Label DB synchronization failed. | ||||
<list style="hanging" hangIndent="37"> | ||||
<t hangText=" Error-value = TBD :">Processing label update Failed du | ||||
ring synchronization.</t> | ||||
<t hangText=" Error-value = TBD :">Internal PCE Error during synchro | ||||
nization.</t> | ||||
</list> | ||||
</t> --> | ||||
</list> | ||||
</t> | ||||
</section> | </section> | |||
</section> | </section> | |||
<section title="Acknowledgments" | ||||
toc="default"> | ||||
<t>We would like to thank Robert Tao, Changjing Yan, Tieying Huang, Avanti | ||||
ka, and Aijun Wang for | ||||
their useful comments and suggestions.</t> | ||||
<t>Thanks to Julien Meuric for shepherding this I-D and providing valuable co | ||||
mments. Thanks to Deborah Brungard for being the responsible AD.</t> | ||||
<t>Thanks to Victoria Pritchard for a very detailed RTGDIR review. Thanks to | ||||
Yaron Sheffer for the | ||||
SECDIR review. Thanks to Gyan Mishra for the GENART review.</t> | ||||
<t>Thanks to Alvaro Retana, Murray Kucherawy, Benjamin Kaduk, Roman Danyliw, Rob | ||||
ert Wilton, Eric Vyncke, and Erik Kline for the IESG review.</t> | ||||
</section> | ||||
</middle> | </middle> | |||
<back> | <back> | |||
<references title="Normative References"> | <displayreference target="I-D.ietf-teas-pcecc-use-cases" to="PCECC"/> | |||
<?rfc include="reference.RFC.2119.xml" ?> | <displayreference target="I-D.ietf-pce-pcep-yang" to="PCEP-YANG"/> | |||
<?rfc include="reference.RFC.5440.xml" ?> | <displayreference target="I-D.ietf-pce-pcep-extension-pce-controller-sr" to="PCE | |||
<?rfc include="reference.RFC.5511.xml" ?> | CC-SR"/> | |||
<displayreference target="I-D.dhody-pce-pcep-extension-pce-controller-srv6" to=" | ||||
<?rfc include="reference.RFC.7525.xml" ?> | PCECC-SRv6"/> | |||
<?rfc include="reference.RFC.8126.xml"?> | <displayreference target="I-D.li-pce-controlled-id-space" to="PCE-ID"/> | |||
<?rfc include="reference.RFC.8174.xml"?> | <displayreference target="I-D.gont-numeric-ids-sec-considerations" to="SECURITY- | |||
<?rfc include="reference.RFC.8231.xml"?> | ID"/> | |||
<?rfc include="reference.RFC.8253.xml"?> | <references> | |||
<?rfc include="reference.RFC.8281.xml"?> | <name>References</name> | |||
<?rfc include="reference.RFC.8408.xml"?> | <references> | |||
<?rfc include="reference.RFC.8664.xml"?> | <name>Normative References</name> | |||
<?rfc include="reference.RFC.8779.xml"?> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
FC.2119.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.5440.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.5511.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.7525.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.8126.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.8174.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.8231.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.8253.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.8281.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.8408.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.8664.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.8779.xml"/> | ||||
</references> | </references> | |||
<references> | ||||
<name>Informative References</name> | ||||
<reference anchor='RFC4655' target='https://www.rfc-editor.org/info/rfc4655'> | ||||
<front> | ||||
<title>A Path Computation Element (PCE)-Based Architecture</title> | ||||
<author initials='A.' surname='Farrel' fullname='A. Farrel'><organization /></au | ||||
thor> | ||||
<author initials='JP.' surname='Vasseur' fullname='JP. Vasseur'><organization /> | ||||
</author> | ||||
<author initials='J.' surname='Ash' fullname='J. Ash'><organization /></author> | ||||
<date year='2006' month='August' /> | ||||
</front> | ||||
<seriesInfo name='RFC' value='4655'/> | ||||
<seriesInfo name='DOI' value='10.17487/RFC4655'/> | ||||
</reference> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.7025.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.7399.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.7420.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.7491.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.8232.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.8283.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.8741.xml"/> | ||||
<references title="Informative References"> | <xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D.ietf-te | |||
<?rfc include="reference.RFC.4655.xml"?> | as-pcecc-use-cases.xml"/> | |||
<?rfc include="reference.RFC.7025.xml"?> | ||||
<?rfc include="reference.RFC.7399.xml"?> | ||||
<?rfc include="reference.RFC.7420.xml" ?> | ||||
<?rfc include="reference.RFC.7491.xml"?> | ||||
<?rfc include="reference.RFC.7942.xml" ?> | ||||
<?rfc include="reference.RFC.8232.xml"?> | ||||
<?rfc include="reference.RFC.8283.xml"?> | <reference anchor='I-D.ietf-pce-pcep-yang'> | |||
<?rfc include="reference.RFC.8741.xml"?> | <front> | |||
<?rfc include="reference.I-D.ietf-teas-pcecc-use-cases"?> | <title>A YANG Data Model for Path Computation Element Communications Protocol (P | |||
CEP)</title> | ||||
<author initials='D' surname='Dhody' fullname='Dhruv Dhody' role='editor'> | ||||
</author> | ||||
<author initials='J' surname='Hardwick' fullname='Jonathan Hardwick'> | ||||
</author> | ||||
<author initials='V' surname='Beeram' fullname='Vishnu Beeram'> | ||||
</author> | ||||
<author initials='J' surname='Tantsura' fullname='Jeff Tantsura'> | ||||
</author> | ||||
<date month='February' day='22' year='2021' /> | ||||
</front> | ||||
<seriesInfo name='Internet-Draft' value='draft-ietf-pce-pcep-yang-16' /> | ||||
<format type='TXT' | ||||
target='http://www.ietf.org/internet-drafts/draft-ietf-pce-pcep-yang-16. | ||||
txt' /> | ||||
</reference> | ||||
<?rfc include="reference.I-D.ietf-pce-pcep-yang"?> | <xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D.ietf-pc | |||
<?rfc include="reference.I-D.ietf-pce-pcep-extension-pce-controller-sr"?> | e-pcep-extension-pce-controller-sr.xml"/> | |||
<?rfc include="reference.I-D.dhody-pce-pcep-extension-pce-controller-srv6"?> | ||||
<?rfc include="reference.I-D.li-pce-controlled-id-space"?> | ||||
<?rfc include="reference.I-D.gont-numeric-ids-sec-considerations"?> | ||||
<!--<?rfc include="reference.I-D.ietf-pce-binding-label-sid"?> | <xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D.dhody-p | |||
<?rfc include="reference.I-D.ietf-pce-sr-path-segment"?>--> | ce-pcep-extension-pce-controller-srv6.xml"/> | |||
<!--<?rfc include="reference.I-D.palle-pce-controller-labeldb-sync"?>--> | <xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D .li-pce-controlled-id-space.xml"/> | |||
<xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D .gont-numeric-ids-sec-considerations.xml"/> | ||||
</references> | </references> | |||
<section title="Contributor Addresses" toc="default"> | </references> | |||
<t> | <section toc="default" numbered="false"> | |||
<figure title="" suppress-title="false" align="left" alt="" width="" height= | <name>Acknowledgments</name> | |||
""> | <t>We would like to thank <contact fullname="Robert Tao"/>, <contact fulln | |||
<artwork xml:space="preserve" name="" type="" align="left" alt="" width=" | ame="Changjing Yan"/>, <contact fullname="Tieying Huang"/>, <contact fullname="A | |||
" height=""><![CDATA[ | vantika"/>, and <contact fullname="Aijun Wang"/> for | |||
Dhruv Dhody | their useful comments and suggestions.</t> | |||
Huawei Technologies | <t>Thanks to <contact fullname="Julien Meuric"/> for shepherding this docu | |||
Divyashree Techno Park, Whitefield | ment and providing valuable comments. Thanks to <contact fullname="Deborah Brung | |||
Bangalore, Karnataka 560066 | ard"/> for being the responsible AD.</t> | |||
India | <t>Thanks to <contact fullname="Victoria Pritchard"/> for a very detailed | |||
RTGDIR review. Thanks to <contact fullname="Yaron Sheffer"/> for the | ||||
EMail: dhruv.ietf@gmail.com | SECDIR review. Thanks to <contact fullname="Gyan Mishra"/> for the Gen-ART revie | |||
w.</t> | ||||
Satish Karunanithi | <t>Thanks to <contact fullname="Alvaro Retana"/>, <contact fullname="Murra | |||
Huawei Technologies | y Kucherawy"/>, <contact fullname="Benjamin Kaduk"/>, <contact fullname="Roman D | |||
Divyashree Techno Park, Whitefield | anyliw"/>, <contact fullname="Robert Wilton"/>, <contact fullname="Éric Vyncke"/ | |||
Bangalore, Karnataka 560066 | >, and <contact fullname="Erik Kline"/> for the IESG review.</t> | |||
India | </section> | |||
<section toc="default" numbered="false"> | ||||
EMail: satishk@huawei.com | <name>Contributors</name> | |||
<contact fullname="Dhruv Dhody"> | ||||
Adrian Farrel | <organization>Huawei Technologies</organization> | |||
Old Dog Consulting | <address> | |||
UK | <postal> | |||
<street>Divyashree Techno Park, Whitefield</street> | ||||
EMail: adrian@olddog.co.uk | <city>Bangalore</city> | |||
<region>Karnataka</region> | ||||
Xuesong Geng | <code>560066</code> | |||
Huawei Technologies | <country>India</country> | |||
China | </postal> | |||
<email>dhruv.ietf@gmail.com</email> | ||||
Email: gengxuesong@huawei.com | </address> | |||
</contact> | ||||
Udayasree Palle | ||||
EMail: udayasreereddy@gmail.com | ||||
Katherine Zhao | <contact fullname="Satish Karunanithi"> | |||
Futurewei Technologies | <organization>Huawei Technologies</organization> | |||
<address> | ||||
<postal> | ||||
<street>Divyashree Techno Park, Whitefield</street> | ||||
<city>Bangalore</city> | ||||
<region>Karnataka</region> | ||||
<code>560066</code> | ||||
<country>India</country> | ||||
</postal> | ||||
<email>satishk@huawei.com</email> | ||||
</address> | ||||
</contact> | ||||
EMail: katherine.zhao@futurewei.com | <contact fullname="Adrian Farrel"> | |||
<organization>Old Dog Consulting</organization> | ||||
<address> | ||||
<postal> | ||||
<country>United Kingdom</country> | ||||
</postal> | ||||
<email>adrian@olddog.co.uk</email> | ||||
</address> | ||||
</contact> | ||||
Boris Zhang | <contact fullname="Xuesong Geng"> | |||
Telus Ltd. | <organization>Huawei Technologies</organization> | |||
Toronto | <address> | |||
Canada | <postal> | |||
<country>China</country> | ||||
</postal> | ||||
<email>gengxuesong@huawei.com </email> | ||||
</address> | ||||
</contact> | ||||
EMail: boris.zhang@telus.com | <contact fullname="Udayasree Palle"> | |||
<organization/> | ||||
<address> | ||||
<postal/> | ||||
<email>udayasreereddy@gmail.com</email> | ||||
</address> | ||||
</contact> | ||||
Alex Tokar | <contact fullname="Katherine Zhao"> | |||
Cisco Systems | <organization>Futurewei Technologies</organization> | |||
Slovak Republic | <address> | |||
<postal/> | ||||
<email>katherine.zhao@futurewei.com</email> | ||||
</address> | ||||
</contact> | ||||
EMail: atokar@cisco.com | <contact fullname="Boris Zhang"> | |||
<organization>Telus Ltd.</organization> | ||||
<address> | ||||
<postal> | ||||
<city>Toronto</city> | ||||
<country>Canada</country> | ||||
</postal> | ||||
<email>boris.zhang@telus.com</email> | ||||
</address> | ||||
</contact> | ||||
]]></artwork> | <contact fullname="Alex Tokar"> | |||
</figure> | <organization>Cisco Systems</organization> | |||
</t> | <address> | |||
<postal> | ||||
<country>Slovakia</country> | ||||
</postal> | ||||
<email>atokar@cisco.com</email> | ||||
</address> | ||||
</contact> | ||||
</section> | </section> | |||
</back> | </back> | |||
</rfc> | </rfc> | |||
End of changes. 162 change blocks. | ||||
1921 lines changed or deleted | 1326 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/ |