Hi Ben, In the absence of a response from the authors this last month, I'm jumping in because I want to see this published.
Authors/shepherd/chairs/AD: attached is an xml file that makes these changes. I can't post it cos I'm not an author. Cheers, Adrian === > Thank you for addressing my Discuss points! Thanks for clearing. > I do have some additional comments on the -15. Perfect. I'm trying to answer them below. > Section 2.3 > > I'm still a bit concerned that the references linked from Table 4 may not > provide a clear description of what count as Traffic Parameters for our > purposes (and how they are encoded), but not in a way that I can express > more concretely. Perhaps this is made clear by some RSVP-TE documents > with which I am not familiar. Agree that it is pretty convoluted. But I just checked all of the references and they are clear how to encode the traffic parameters for each of the different technology types in RSVP-TE. And since the PCEP objects are direct copies of the RSVP-TE ones, and since they are describing the same things, I think we are safe. It's true that it's a lot of reading, but the PCE that supports one of these bandwidth types must understand the technology as well as an RSVP-TE implementation that signals one. I think we're OK on this point. > Section 2.5.1 > > root and other endpoints TLVs are the leaves. The root endpoint MUST > be the same for all END-POINTS objects. If the root endpoint is not > > I'm not sure how broadly scoped this restriction is -- it is, e.g., per-LSP? This is all in the scope of a single PCEP request message for a path. So, yes, per LSP, but multiple END-POINT objects can be present on one request. So... OLD The root endpoint MUST be the same for all END-POINTS objects. NEW The root endpoint MUST be the same for all END-POINTS objects carried in a single PCEP request message. END > Section 2.5.2.5 > > with L bit cleared. At most 2 LABEL_SET TLVs MAY be present with the > O bit set, with at most one of these having the U bit set and at most > one of these having the U bit cleared. For a given U bit value, if > > This went MUST->MAY in this rev, though I think it might be fine to just use > a lowercase "may", since the requirements language doesn't map terribly well > to the restriction we're making. I would prefer to make this definitive. I think the language is all mixed around. How about we do: OLD At most 2 LABEL_SET TLVs MAY be present with the O bit set, with at most one of these having the U bit set and at most one of these having the U bit cleared. NEW There MUST NOT be more than two LABEL_SET TLVs present with the O bit set. If there are two LABEL_SET TLVs present, there MUST NOT be more than one with the U bit set, and there MUST NOT be more than one with the U bit cleared. END
<?xml version="1.0" encoding="US-ASCII"?> <?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?> <?rfc strict="yes" ?> <?rfc toc="yes"?> <?rfc tocompact="yes"?> <?rfc tocdepth="3"?> <?rfc tocindent="yes"?> <?rfc symrefs="yes"?> <?rfc sortrefs="yes" ?> <?rfc comments="yes"?> <?rfc inline="yes"?> <?rfc compact="no"?> <?rfc subcompact="no"?> <!DOCTYPE rfc SYSTEM "rfc2629.dtd" [ <!-- One method to get references from the online citation libraries. There has to be one entity for each item to be referenced. An alternate method (rfc include) is described in the references. --> ]> <rfc category="std" docName="draft-ietf-pce-gmpls-pcep-extensions-16" ipr="trust200902" > <front> <title abbrev="PCEP Ext for GMPLS">PCEP extensions for GMPLS</title> <author fullname="Cyril Margaria" initials="C.M." role="editor" surname="Margaria"> <organization>Juniper</organization> <address> <email>cmarga...@juniper.net</email> <!-- uri and facsimile elements may also be added --> </address> </author> <author fullname="Oscar Gonzalez de Dios" initials="O.G." role="editor" surname="Gonzalez de Dios" > <organization>Telefonica Investigacion y Desarrollo</organization> <address> <postal> <street>C/ Ronda de la Comunicacion</street> <city>Madrid</city> <region></region> <code>28050</code> <country>Spain</country> </postal> <phone>+34 91 4833441</phone> <email>oscar.gonzalezded...@telefonica.com</email> </address> </author> <author fullname="Fatai Zhang" role="editor" initials="F.Z." surname="Zhang"> <organization>Huawei Technologies</organization> <address> <postal> <street>F3-5-B R&D Center, Huawei Base</street> <street>Bantian, Longgang District </street> <city>Shenzhen</city> <region></region> <code>518129</code> <country>P.R.China</country> </postal> <email>zhangfa...@huawei.com</email> </address> </author> <!-- Meta-data Declarations --> <date day="15" month="October" year="2019" /> <area>Routing</area> <workgroup>Network Working Group</workgroup> <keyword>RSVP-TE</keyword> <keyword>GMPLS</keyword> <keyword>PCE</keyword> <abstract> <t>A Path Computation Element (PCE) provides path computation functions for Multiprotocol Label Switching (MPLS) and Generalized MPLS (GMPLS) networks. Additional requirements for GMPLS are identified in RFC7025. </t> <t> This memo provides extensions to the Path Computation Element communication Protocol (PCEP) for the support of the GMPLS control plane to address those requirements. </t> </abstract> </front> <middle> <section title="Introduction"> <t>Although <xref target="RFC4655" /> defines the PCE architecture and framework for both MPLS and GMPLS networks, most preexisting PCEP RFCs <xref target="RFC5440" />, <xref target="RFC5521" />, <xref target="RFC5541" />, <xref target="RFC5520" /> are focused on MPLS networks, and do not cover the wide range of GMPLS networks. This document complements these RFCs by addressing the extensions required for GMPLS applications and routing requests, for example for Optical Transport Network (OTN) and Wavelength Switched Optical Network (WSON) networks.</t> <t>The functional requirements to be addressed by the PCEP extensions to support these applications are fully described in <xref target="RFC7025" /> and <xref target='RFC7449' />. </t> <section title ="Terminology"> <t> This document uses terminologies from the PCE architecture document <xref target="RFC4655"/>, the PCEP documents including <xref target="RFC5440"/>, <xref target="RFC5521"/>, <xref target="RFC5541"/>, <xref target="RFC5520"/>, <xref target="RFC7025"/> and <xref target="RFC7449"/>, and the GMPLS documents such as <xref target="RFC3471"/>, <xref target="RFC3473"/> and so on. Note that it is expected the reader is familiar with these documents. The following abbreviations are used in this document <list style="hanging" hangIndent="6"> <t hangText="ODU"> ODU Optical Channel Data Unit <xref target="G.709-v3" /></t> <t hangText="OTN"> Optical Transport Network <xref target="G.709-v3" /></t> <t hangText="L2SC"> Layer-2 Switch Capable <xref target="RFC3471" /></t> <t hangText="TDM"> Time-Division Multiplex Capable <xref target="RFC3471" /></t> <t hangText="LSC"> Lambda Switch Capable <xref target="RFC3471" /></t> <t hangText="SONET"> Synchronous Optical Networking </t> <t hangText="SDH"> Synchronous Digital Hierarchy </t> <t hangText="PCC"> Path Computation Client</t> <t hangText="RSVP-TE"> Resource Reservation Protocol - Traffic Engineering</t> <t hangText="LSP"> Label Switched Path</t> <t hangText="TE-LSP">Traffic Engineering LSP</t> <t hangText="IRO">Include Route Object</t> <t hangText="ERO">Explicit Route Object</t> <t hangText="XRO"> eXclude Route Object</t> <t hangText="RRO"> Record Route Object</t> <t hangText="LSPA"> LSP Attribute</t> <t hangText="SRLG">Shared Risk Link Group</t> <t hangText="NVC">Number of Virtual Components <xref target="RFC4328" /><xref target="RFC4606" /></t> <t hangText="NCC">Number of Contiguous Components <xref target="RFC4328" /><xref target="RFC4606" /></t> <t hangText="MT">Multiplier <xref target="RFC4328" /><xref target="RFC4606" /></t> <t hangText="RCC">Requested Contiguous Concatenation <xref target="RFC4606" /></t> <t hangText="PCReq">Path Computation Request <xref target="RFC5440" /></t> <t hangText="PCRep">Path Computation Reply <xref target="RFC5440" /></t> <t hangText="MEF">Metro Ethernet Forum</t> <t hangText="SSON">Spectrum-Switched Optical Network</t> <t hangText="P2MP">Point to Multi-Point</t> </list> </t> <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"/> when, and only when, they appear in all capitals, as shown here. </t> </section> <section title="PCEP Requirements for GMPLS"> <t>The document <xref target="RFC7025" /> describes the set of PCEP requirements to support GMPLS TE-LSPs. This document assumes a significant familiarity with <xref target="RFC7025" /> and existing PCEP extensions. As a short overview, those requirements can be broken down into the following categories. </t> <t> <list style="symbols"> <t>Which data flow is switched by the LSP: a combination of Switching type (for instance L2SC or TDM ), LSP Encoding type (e.g., Ethernet, SONET/SDH) and sometimes the Signal Type (e.g., in case of TDM/LSC switching capability).</t> <t>Data flow specific traffic parameters, which are technology specific. For instance, in SDH/SONET and <xref target="G.709-v3" /> OTN networks the Concatenation Type and the Concatenation Number have an influence on the switched data and on which link it can be supported</t> <t>Support for asymmetric bandwidth requests.</t> <t>Support for unnumbered interface identifiers, as defined in <xref target="RFC3477"></xref></t> <t>Label information and technology specific label(s) such as wavelength labels as defined in <xref target="RFC6205" />. A PCC should also be able to specify a label restriction similar to the one supported by RSVP-TE in <xref target="RFC3473" />.</t> <t>Ability to indicate the requested granularity for the path ERO: node, link or label. This is to allow the use of the explicit label control feature of RSVP-TE.</t> </list> The requirements of <xref target="RFC7025" /> apply to several objects conveyed by PCEP, this is described in <xref target="requirement-map" />. Some of the requirements of <xref target="RFC7025" /> are already supported in existing documents, as described in <xref target="existing-support" />. </t> <t> This document describes a set of PCEP extensions, including new object types, TLVs, encodings, error codes and procedures, in order to fulfill the aforementioned requirements not covered in existing RFCs.</t> </section> <section title="Requirements Applicability" anchor="requirement-map"> <t> This section follows the organization of <xref target="RFC7025" /> Section 3 and indicates, for each requirement, the affected piece of information carried by PCEP and its scope.</t> <section title="Requirements on Path Computation Request"> <t> <list style="hanging" hangIndent="6"><t hangText="(1)"> Switching capability/type: as described in <xref target="RFC3471" /> this piece of information is used with the Encoding Type and Signal Type to fully describe the switching technology and data carried by the TE-LSP. This is applicable to the TE-LSP itself and also to the TE-LSP endpoint (Carried in the END-POINTS object for MPLS networks in <xref target="RFC5440" />) when considering multiple network layers. Inter-layer path computation requirements are addressed in in <xref target="RFC8282" /> which addressing the TE-LSP itself, but the TE-LSP endpoints are not addressed. </t> <t hangText="(2)"> Encoding type: see (1). </t> <t hangText="(3)"> Signal type: see (1). </t> <t hangText="(4)"> Concatenation type: this parameter and the Concatenation Number (5) are specific to some TDM (SDH and ODU) switching technology. They MUST be described together and are used to derive the requested resource allocation for the TE-LSP. It is scoped to the TE-LSP and is related to the <xref target="RFC5440" /> BANDWIDTH object in MPLS networks. See <xref target="RFC4606" /> and <xref target="RFC4328" /> about concatenation information. </t> <t hangText="(5)"> Concatenation number: see (4). </t> <t hangText="(6)"> Technology-specific label(s): as described in <xref target="RFC3471" /> the GMPLS Labels are specific to each switching technology. They can be specified on each link and also on the TE-LSP endpoints , in WSON networks for instance, as described in <xref target="RFC6163" />. The label restriction can apply to endpoints and on each hop, the related PCEP objects are END-POINTS, IRO, XRO and RRO. </t> <t hangText="(7)"> End-to-End (E2E) path protection type: as defined in <xref target="RFC4872"/>, this is applicable to the TE-LSP. In MPLS networks the related PCEP object is LSPA (carrying local protection information). </t> <t hangText="(8)"> Administrative group: as defined in <xref target="RFC3630"/>, this information is already carried in the LSPA object. </t> <t hangText="(9)"> Link protection type: as defined in <xref target="RFC4872"/>, this is applicable to the TE-LSP and is carried in association with the E2E path protection type. </t> <t hangText="(10)"> Support for unnumbered interfaces: as defined in <xref target="RFC3477"/>. Its scope and related objects are the same as labels </t> <t hangText="(11)"> Support for asymmetric bandwidth requests: as defined <xref target="RFC6387"/>, the scope is similar to (4) </t> <t hangText="(12)"> Support for explicit label control during the path computation. This affects the TE-LSP and amount of information returned in the ERO. </t> <t hangText="(13)"> Support of label restrictions in the requests/responses: This is described in (6). </t> </list> </t> </section> <section title="Requirements on Path Computation Response"> <t><list style="hanging" hangIndent="5"><t hangText="(1)"> Path computation with concatenation: This is related to Path Computation request requirement (4). In addition there is a specific type of concatenation called virtual concatenation that allows different routes to be used between the endpoints. It is similar to the semantic and scope of the LOAD-BALANCING in MPLS networks. </t> <t hangText="(2)"> Label constraint: The PCE should be able to include Labels in the path returned to the PCC, the related object is the ERO object. </t> <t hangText="(3)"> Roles of the routes: as defined in <xref target="RFC4872"/>, this is applicable to the TE-LSP and is carried in association with the E2E path protection type. </t> </list> </t> </section> </section> <!-- End Requirements on Protocol Objects --> <section title="Existing Support for GMPLS in Base PCEP Objects and its Limitations" anchor="existing-support"> <t> The support provided by specifications in <xref target="RFC8282" /> and <xref target="RFC5440" /> for the requirements listed in <xref target="RFC7025" /> is summarized in <xref target="rfc7025_pcreq_reqss" /> and <xref target="rfc7025_pcrep_reqss"/>. In some cases the support may not be complete, as noted, and additional support need to be provided in this specification. </t> <texttable anchor='rfc7025_pcreq_reqss' suppress-title='false' style='none' title='RFC7025 Section 3.1 requirements support'> <ttcol align='left'></ttcol> <ttcol align='left'></ttcol> <ttcol align='left'></ttcol> <c>Req. </c><c> Name </c><c> Support </c> <c> 1 </c><c> Switching capability/type </c><c> SWITCH-LAYER (RFC8282) </c> <c> 2 </c><c> Encoding type </c><c> SWITCH-LAYER (RFC8282) </c> <c> 3 </c><c> Signal type </c><c> SWITCH-LAYER (RFC8282) </c> <c> 4 </c><c> Concatenation type </c><c> No </c> <c> 5 </c><c> Concatenation number </c><c> No </c> <c> 6 </c><c> Technology-specific label </c><c> (Partial) ERO (RFC5440)</c> <c> 7 </c><c> End-to-End (E2E) path protection type </c><c> No </c> <c> 8 </c><c> Administrative group </c><c> LSPA (RFC5440) </c> <c> 9 </c><c> Link protection type </c><c> No </c> <c> 10 </c><c> Support for unnumbered interfaces </c><c> (Partial) ERO (RFC5440)</c> <c> 11 </c><c> Support for asymmetric bandwidth requests </c><c> No </c> <c> 12 </c><c> Support for explicit label control during the path computation </c><c> No </c> <c> 13 </c><c> Support of label restrictions in the requests/responses </c><c> No </c> </texttable> <t><vspace blankLines="2"/></t> <texttable anchor='rfc7025_pcrep_reqss' suppress-title='false' style='none' title='RFC7025 Section 3.2 requirements support'> <ttcol align='left'></ttcol> <ttcol align='left'></ttcol> <ttcol align='left'></ttcol> <c>Req. </c><c> Name </c><c> Support </c> <c>1</c><c>Path computation with concatenation </c><c> No </c> <c>2</c><c>Label constraint </c><c> No </c> <c>3</c><c>Roles of the routes </c><c> No </c> </texttable> <t> As described in <xref target="requirement-map" /> PCEP as of <xref target="RFC5440"></xref>, <xref target="RFC5521"></xref> and <xref target="RFC8282" />, supports the following objects, included in requests and responses, related to the described requirements.</t> <t>From <xref target="RFC5440"></xref>: <list style='symbols'> <t>END-POINTS: related to requirements (1, 2, 3, 6, 10 and 13). The object only supports numbered endpoints. The context specifies whether they are node identifiers or numbered interfaces.</t> <t>BANDWIDTH: related to requirements (4, 5 and 11). The data rate is encoded in the bandwidth object (as IEEE 32 bit float). <xref target="RFC5440" /> does not include the ability to convey an encoding proper to all GMPLS-controlled networks.</t> <t>ERO: related to requirements (6, 10, 12 and 13). The ERO content is defined in RSVP in <xref target="RFC3209" /><xref target="RFC3473" /><xref target="RFC3477" /><xref target="RFC7570" /> and supports all the requirements already. </t> <t>LSPA: related to requirements (7, 8 and 9). The requirement 8 (setup and holding priorities) is already supported.</t> </list></t> <t>From <xref target="RFC5521"></xref>: <list style='symbols'> <t>XRO: <list style='symbols'> <t>This object allows excluding (strict or not) resources and is related to requirements (6, 10 and 13). It also includes the requested diversity (node, link or SRLG).</t> <t>When the F bit is set, the request indicates that the existing path has failed and the resources present in the RRO can be reused. </t></list> </t> </list> </t> <t>From <xref target="RFC8282"></xref>:<list style='symbols'> <t>SWITCH-LAYER: addresses requirements (1, 2 and 3) for the TE-LSP and indicates which layer(s) should be considered. The object can be used to represent the RSVP-TE generalized label request. It does not address the endpoints case of requirements (1, 2 and 3).</t> <t>REQ-ADAP-CAP: indicates the adaptation capabilities requested, can also be used for the endpoints in case of mono-layer computation</t> </list></t> <t> The gaps in functional coverage of the base PCEP objects are: <list> <t>The BANDWIDTH and LOAD-BALANCING objects do not describe the details of the traffic request (requirements 4 and 5, for example NVC, multiplier) in the context of GMPLS networks, for instance TDM or OTN networks.</t> <t>The END-POINTS object does not allow specifying an unnumbered interface, nor potential label restrictions on the interface (requirements 6, 10 and 13). Those parameters are of interest in case of switching constraints.</t> <t>The Include/eXclude Route Objects (IRO/XRO) do not allow the inclusion/exclusion of labels (requirements 6, 10 and 13).</t> <t>Base attributes do not allow expressing the requested link protection level and/or the end-to-end protection attributes.</t> </list> </t> <t>The PCEP extensions defined later in this document to cover the gaps are: <list> <t>Two new object types are defined for the BANDWIDTH object (Generalized bandwidth, Generalized bandwidth of existing TE-LSP for which a reoptimization is requested).</t> <t>A new object type is defined for the LOAD-BALANCING object (Generalized Load Balancing).</t> <t>A new object type is defined for the END-POINTS object (Generalized Endpoint).</t> <t>A new TLV is added to the Open message for capability negotiation.</t> <t>A new TLV is added to the LSPA object. </t> <t>The Label TLV is now allowed in the IRO and XRO objects.</t> <t>In order to indicate the used routing granularity in the response, a new flag in the RP object is added.</t> </list> </t> </section> </section> <section title="PCEP Objects and Extensions"> <t> This section describes the necessary PCEP objects and extensions. The PCReq and PCRep messages are defined in <xref target="RFC5440"></xref>. This document does not change the existing grammars.</t> <section title="GMPLS Capability Advertisement" anchor="capability"> <t> </t> <section title="GMPLS Computation TLV in the Existing PCE Discovery Protocol" anchor="IGP-discovery"> <t> IGP-based PCE Discovery (PCED) is defined in <xref target="RFC5088" /> and <xref target="RFC5089" /> for the OSPF and IS-IS protocols. Those documents have defined bit 0 in PCE-CAP-FLAGS Sub-TLV of the PCED TLV as "Path computation with GMPLS link constraints". This capability is optional and can be used to detect GMPLS-capable PCEs. PCEs that set the bit to indicate support of GMPLS path computation MUST follow the procedures in Section 2.1.2 to further qualify the level of support during PCEP session establishment.</t> </section> <section title="OPEN Object Extension GMPLS-CAPABILITY TLV" anchor="open-extensions"> <t> In addition to the IGP advertisement, a PCEP speaker MUST be able to discover the other peer GMPLS capabilities during the Open message exchange. This capability is also useful to avoid misconfigurations. This document defines a GMPLS-CAPABILITY TLV for use in the OPEN object to negotiate the GMPLS capability. The inclusion of this TLV in the Open message indicates that the PCEP speaker support the PCEP extensions defined in the document. A PCEP speaker that is able to support the GMPLS extensions defined in this document MUST include the GMPLS-CAPABILITY TLV on the Open message. If one of the PCEP peers does not include the GMPLS-CAPABILITY TLV in the Open message, the peers MUST NOT make use of the objects and TLVs defined in this document. </t> <t> If the PCEP speaker supports the extensions of this specification but did not advertise the GMPLS-CAPABILITY capability, upon receipt of a message from the PCE including an extension defined in this document, it MUST generate a PCEP Error (PCErr) with Error-Type=10 (Reception of an invalid object) and Error-value=TBA-42 (Missing GMPLS-CAPABILITY TLV), and it SHOULD terminate the PCEP session. </t> <t> IANA has allocated value TBA-1 from the "PCEP TLV Type Indicators" sub-registry, as documented in <xref target="iana-tlvs" /> ("New PCEP TLVs"). The description is "GMPLS-CAPABILITY". Its format is shown in the following figure. </t> <figure > <artwork><![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=TBA-1 | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Flags | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ]]></artwork> </figure> <t> No Flags are defined in this document, they are reserved for future use. </t> </section> </section> <section title="RP Object Extension" anchor="rp-extensions"> <t> Explicit label control (ELC) is a procedure supported by RSVP-TE, where the outgoing labels are encoded in the ERO. As a consequence, the PCE can provide such labels directly in the path ERO. Depending on policies or switching layer, it can be necessary for the PCC to use explicit label control or explicit link ids, thus it needs to indicate in the PCReq which granularity it is expecting in the ERO. This corresponds to requirement 12 of <xref target="RFC7025" />. The possible granularities can be node, link or label. The granularities are inter-dependent, in the sense that link granularity implies the presence of node information in the ERO; similarly, a label granularity implies that the ERO contains node, link and label information. </t> <t>A new 2-bit routing granularity (RG) flag (Bits TBA-13) is defined in the RP object. The values are defined as follows</t> <texttable anchor='rp_bits' suppress-title='false' style='none' title='RG flag'> <ttcol align='center'></ttcol> <ttcol align='left'></ttcol> <c>0:</c><c>reserved </c> <c>1:</c><c>node </c> <c>2:</c><c>link </c> <c>3:</c><c>label </c> </texttable> <t>The flag in the RP object indicates the requested route granularity. The PCE SHOULD follow this granularity and MAY return a NO-PATH if the requested granularity cannot be provided. The PCE MAY return any granularity on the route based on its policy. The PCC can decide if the ERO is acceptable based on its content. </t> <t> If a PCE honored the requested routing granularity for a request, it MUST indicate the selected routing granularity in the RP object included in the response. Otherwise, the PCE MUST use the reserved RG to leave the check of the ERO to the PCC. The RG flag is backward-compatible with <xref target="RFC5440" />: the value sent by an implementation (PCC or PCE) not supporting it will indicate a reserved value. </t> </section> <section title="BANDWIDTH Object Extensions" anchor="generalized-bandwidth"> <t> From <xref target="RFC5440"/> the object carrying the requested size for the TE-LSP is the BANDWIDTH object. The object types 1 and 2 defined in <xref target="RFC5440"/> do not describe enough information to describe the TE-LSP bandwidth in GMPLS networks. The BANDWIDTH object encoding has to be extended to allow the object to express the bandwidth as described in <xref target="RFC7025" />. RSVP-TE extensions for GMPLS provide a set of encodings allowing such representation in an unambiguous way, this is encoded in the RSVP-TE TSpec and FlowSpec objects. This document extends the BANDWIDTH object with new object types reusing the RSVP-TE encoding. </t> <t>The following possibilities are supported by the extended encoding: <list style='symbols'> <t>Asymmetric bandwidth (different bandwidth in forward and reverse direction), as described in <xref target="RFC6387"></xref></t> <t>GMPLS (SDH/SONET, G.709, ATM, MEF, etc.) parameters.</t> </list> This corresponds to requirements 3, 4, 5 and 11 of <xref target="RFC7025" /> Section 3.1. </t> <t> This document defines two Object Types for the BANDWIDTH object: <list style='hanging'> <t hangText="TBA-2">Generalized bandwidth</t> <t hangText="TBA-3">Generalized bandwidth of an existing TE-LSP for which a reoptimization is requested</t> </list> The definitions below apply for Object Type TBA-2 and TBA-3. The body is as follows: </t> <figure> <artwork><![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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Bandwidth Spec Length | Rev. Bandwidth Spec Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Bw Spec Type | Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | ~ Generalized Bandwidth ~ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | ~ Optional: Reverse Generalized Bandwidth ~ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | ~ Optional TLVs ~ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ]]></artwork> </figure> <t>The BANDWIDTH object type TBA-2 and TBA-3 have a variable length. The 16-bit Bandwidth Spec Length field indicates the length of the Generalized Bandwidth field. The Bandwidth Spec Length MUST be strictly greater than 0. The 16-bit Reverse Bandwidth Spec Length field indicates the length of the Reverse Generalized Bandwidth field. The Reverse Bandwidth Spec Length MAY be equal to 0.</t> <t>The Bw Spec Type field determines which type of bandwidth is represented by the object.</t> <t>The Bw Spec Type corresponds to the RSVP-TE SENDER_TSPEC (Object Class 12) C-Types</t> <t> The encoding of the fields Generalized Bandwidth and Reverse Generalized Bandwidth is the same as the Traffic Parameters carried in RSVP-TE, it can be found in the following references. It is to be noted that the RSVP-TE traffic specification MAY also include TLVs (e.g., <xref target="RFC6003" /> different from the PCEP TLVs).</t> <texttable anchor='TSpec_encoding' suppress-title='false' style='none' title='Generalized Bandwidth and Reverse Generalized Bandwidth field encoding'> <ttcol align='left'>Bw Spec Type</ttcol> <ttcol align='left'>Name </ttcol> <ttcol align='left'>Reference</ttcol> <c>2</c><c>Intserv</c><c><xref target="RFC2210"></xref></c> <c>4</c><c>SONET/SDH</c><c><xref target="RFC4606"></xref></c> <c>5</c><c>G.709</c><c><xref target="RFC4328"></xref></c> <c>6</c><c>Ethernet</c><c><xref target="RFC6003"></xref></c> <c>7</c><c>OTN-TDM</c><c><xref target="RFC7139"></xref></c> <c>8</c><c>SSON</c><c><xref target="RFC7792"></xref></c> </texttable> <t> When a PCC requests a bi-directional path with symmetric bandwidth, it SHOULD only specify the Generalized Bandwidth field, and set the Reverse Bandwidth Spec Length to 0. When a PCC needs to request a bi-directional path with asymmetric bandwidth, it SHOULD specify the different bandwidth in the forward and reverse directions with a Generalized Bandwidth and Reverse Generalized Bandwidth fields. </t> <t>The procedure described in <xref target="RFC5440" /> for the PCRep is unchanged: a PCE MAY include the BANDWIDTH objects in the response to indicate the BANDWIDTH of the path.</t> <t>As specified in <xref target="RFC5440" /> in the case of the reoptimization of a TE-LSP, the bandwidth of the existing TE-LSP MUST also be included in addition to the requested bandwidth if and only if the two values differ. The Object Type TBA-3 MAY be used instead of the previously specified object type 2 to indicate the existing TE-LSP bandwidth originally specified with object type TBA-2. A PCC that requested a path with a BANDWIDTH object of object type 1 MUST use object type 2 to represent the existing TE-LSP BANDWIDTH. </t> <t>OPTIONAL TLVs MAY be included within the object body to specify more specific bandwidth requirements. No TLVs for the Object Type TBA-2 and TBA-3 are defined by this document. </t> </section> <!-- Generalized BW--> <section title="LOAD-BALANCING Object Extensions" anchor="generalized-load-balancing"> <t> The LOAD-BALANCING object <xref target="RFC5440" /> is used to request a set of at most Max-LSP TE-LSP having in total the bandwidth specified in BANDWIDTH, with each TE-LSP having at least a specified minimum bandwidth. The LOAD-BALANCING follows the bandwidth encoding of the BANDWIDTH object, and thus the existing definition from <xref target="RFC5440" /> does not describe enough details for the bandwidth specification expected by GMPLS. </t> <t> Similarly to the BANDWIDTH object, a new object type is defined to allow a PCC to represent the bandwidth types supported by GMPLS networks. </t> <t> This document defines the Generalized Load Balancing object type TBA-4 for the LOAD-BALANCING object. The Generalized Load Balancing object type has a variable length. </t> <t>The format of the Generalized Load Balancing object type is as follows:</t> <figure> <artwork><![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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Bandwidth Spec Length | Reverse Bandwidth Spec Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Bw Spec Type | Max-LSP | Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Min Bandwidth Spec | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Min Reverse Bandwidth Spec (optional) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | ~ Optional TLVs ~ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ]]></artwork> </figure> <t>Bandwidth Spec Length (16 bits): the total length of the Min Bandwidth Spec field. The length MUST be strictly greater than 0.</t> <t>Reverse Bandwidth Spec Length (16 bits): the total length of the Min Reverse Bandwidth Spec field. It MAY be equal to 0.</t> <t>Bw Spec Type (8 bits): the bandwidth specification type, it corresponds to the RSVP-TE SENDER_TSPEC (Object Class 12) C-Types.</t> <t>Max-LSP (8 bits): maximum number of TE-LSPs in the set.</t> <t>Min Bandwidth Spec (variable): specifies the minimum bandwidth specification of each element of the TE-LSP set.</t> <t>Min Reverse Bandwidth Spec (variable): specifies the minimum reverse bandwidth specification of each element of the TE-LSP set.</t> <t>The encoding of the fields Min Bandwidth Spec and Min Reverse Bandwidth Spec is the same as in RSVP-TE SENDER_TSPEC object, it can be found in <xref target="TSpec_encoding"/> from <xref target="generalized-bandwidth" /> from this document.</t> <t> When a PCC requests a bi-directional path with symmetric bandwidth while specifying load balancing constraints it SHOULD specify the Min Bandwidth Spec field, and set the Reverse Bandwidth Spec Length to 0. When a PCC needs to request a bi-directional path with asymmetric bandwidth while specifying load balancing constraints, it MUST specify the different bandwidth in forward and reverse directions through a Min Bandwidth Spec and Min Reverse Bandwidth Spec fields. </t> <t>OPTIONAL TLVs MAY be included within the object body to specify more specific bandwidth requirements. No TLVs for the Generalized Load Balancing object type are defined by this document. </t> <t>The semantic of the LOAD-BALANCING object is not changed. If a PCC requests the computation of a set of TE-LSPs with at most N TE-LSPs so that it can carry generalized bandwidth X , each TE-LSP must at least transport bandwidth B, it inserts a BANDWIDTH object specifying X as the required bandwidth and a LOAD-BALANCING object with the Max-LSP and Min Bandwidth Spec fields set to N and B, respectively. When the BANDWIDTH and Min Bandwidth Spec can be summarized as scalars, the sum of all TE-LSPs bandwith in the set is greater than X. The mapping of X over N path with (at least) bandwidth B is technology and possibly node specific. Each standard definition of the transport technology is defining those mappings and are not repeated in this document. A simplified example for SDH is described in <xref target="appendix" /> </t> <t> In all other cases, including for technologies based on statistical multiplexing (e.g., InterServ, Ethernet), the exact bandwidth management (e.g., Ethernet's Excessive Rate) is left to the PCE's policies, according to the operator's configuration. If required, further documents may introduce a new mechanism to finely express complex load balancing policies within PCEP. </t> <t>The BANDWITH and LOAD-BALANCING Bw Spec Type can be different depending on the endpoint nodes architecture. When the PCE is not able to handle those two Bw Spec Type, it MUST return a NO-PATH with the bit "LOAD-BALANCING could not be performed with the bandwidth constraits " set in the NO-PATH-VECTOR TLV.</t> </section> <!-- Generalized BW--> <section title="END-POINTS Object Extensions" anchor='endpoints_extensions'> <t> The END-POINTS object is used in a PCEP request message to specify the source and the destination of the path for which a path computation is requested. From <xref target="RFC5440"/>, the source IP address and the destination IP address are used to identify those. A new Object Type is defined to address the following possibilities: <list style='symbols'> <t>Different source and destination endpoint types.</t> <t>Label restrictions on the endpoint.</t> <t>Specification of unnumbered endpoints type as seen in GMPLS networks.</t> </list> The Object encoding is described in the following sections. </t> <t>In path computation within a GMPLS context the endpoints can: <list style='symbols'> <t>Be unnumbered as described in <xref target="RFC3477" />.</t> <t>Have labels associated to them, specifying a set of constraints on the allocation of labels.</t> <t>Have different switching capabilities</t> </list> The IPv4 and IPv6 endpoints are used to represent the source and destination IP addresses. The scope of the IP address (Node or numbered Link) is not explicitly stated. It is also possible to request a Path between a numbered link and an unnumbered link, or a P2MP path between different type of endpoints. </t> <t> This document defines the Generalized Endpoint object type TBA-5 for the END-POINTS object. This new type also supports the specification of constraints on the endpoint label to be used. The PCE might know the interface restrictions but this is not a requirement. This corresponds to requirements 6 and 10 of <xref target="RFC7025" />. </t> <section anchor="endpoints_generalized" title="Generalized Endpoint Object Type "> <t> The Generalized Endpoint object type format consists of a body and a list of TLVs scoped to this object. The TLVs give the details of the endpoints and are described in <xref target="endpoints_tlvs" />. For each Endpoint Type, a different grammar is defined. The TLVs defined to describe an endpoint are: <list style='numbers'> <t>IPv4 address endpoint.</t> <t>IPv6 address endpoint.</t> <t>Unnumbered endpoint.</t> <t>Label request.</t> <t>Label set.</t> </list> The Label set TLV is used to restrict or suggest the label allocation in the PCE. This TLV expresses the set of restrictions which may apply to signaling. Label restriction support can be an explicit or a suggested value (Label set describing one label, with the L bit respectively cleared or set), mandatory range restrictions (Label set with L bit cleared) and optional range restriction (Label set with L bit set). Endpoints label restriction may not be part of the RRO or IRO. They can be included when following <xref target="RFC4003" /> in signaling for egress endpoint, but ingress endpoint properties can be local to the PCC and not signaled. To support this case the label set allows indication which label are used in case of reoptimization. The label range restrictions are valid in GMPLS-controlled networks, either by PCC policy or depending on the switching technology used, for instance on given Ethernet or ODU equipment having limited hardware capabilities restricting the label range. Label set restriction also applies to WSON networks where the optical senders and receivers are limited in their frequency tunability ranges, consequently restricting the possible label ranges on the interface in GMPLS. The END-POINTS Object with Generalized Endpoint object type is encoded as follow: </t> <figure> <artwork><![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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Reserved | Endpoint Type | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | ~ TLVs ~ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ]]> </artwork> </figure> <t>Reserved bits SHOULD be set to 0 when a message is sent and ignored when the message is received.</t> <t>The Endpoint Type is defined as follow:</t> <texttable anchor='endpoints_generalized_endpoint-type' suppress-title='false' style='none' title='Generalized Endpoint endpoint types'> <ttcol align='left'>Value</ttcol> <ttcol align='left'>Type</ttcol> <ttcol align='left'>Meaning</ttcol> <c>0</c><c>Point-to-Point</c><c></c> <c>1</c><c>Point-to-Multipoint</c><c>New leaves to add</c> <c>2</c><c></c><c>Old leaves to remove</c> <c>3</c><c></c><c>Old leaves whose path can be modified/reoptimized</c> <c>4</c><c></c><c>Old leaves whose path has to be</c> <c></c><c></c><c>left unchanged</c> <c>5-244</c><c>Reserved </c><c></c> <c>245-255</c><c>Experimental range</c><c></c> </texttable> <t> The Endpoint Type is used to cover both point-to-point and different point-to-multipoint endpoints. A PCE may accept only Endpoint Type 0: Endpoint Types 1-4 apply if the PCE implementation supports P2MP path calculation. A PCE not supporting a given Endpoint Type SHOULD respond with a PCErr with Error-Type=4 (Not supported object), Error-value=TBA-15 (Unsupported endpoint type in END-POINTS Generalized Endpoint object type). As per <xref target="RFC5440" />, a PCE unable to process Generalized Endpoints may respond with Error-Type=3 (Unknown Object), Error-value=2 (Unrecognized object Type) or Error-Type=4 (Not supported object), Error-value=2 (Not supported object Type). The TLVs present in the request object body MUST follow the following <xref target='RFC5511' /> grammar: </t> <figure> <artwork><![CDATA[ <generalized-endpoint-tlvs>::= <p2p-endpoints> | <p2mp-endpoints> <p2p-endpoints> ::= <endpoint> [<endpoint-restriction-list>] <endpoint> [<endpoint-restriction-list>] <p2mp-endpoints> ::= <endpoint> [<endpoint-restriction-list>] <endpoint> [<endpoint-restriction-list>] [<endpoint> [<endpoint-restriction-list>]]... ]]> </artwork> </figure> <t>For endpoint type Point-to-Point, 2 endpoint TLVs MUST be present in the message. The first endpoint is the source and the second is the destination. </t> <t>For endpoint type Point-to-Multipoint, several END-POINT objects MAY be present in the message and the exact meaning depending on the endpoint type defined for the object. The first endpoint TLV is the root and other endpoints TLVs are the leaves. The root endpoint MUST be the same for all END-POINTS objects carried in a single PCEP request message. If the root endpoint is not the same for all END-POINTS, a PCErr with Error-Type=17 (P2MP END-POINTS Error), Error-value=4 (the PCE cannot satisfy the request due to inconsistent END-POINTS) MUST be returned. The procedure defined in <xref target="RFC8306" /> Section 3.10 also apply to the Generalized Endpoint with Point-to-Multipoint endpoint types. </t> <t>An endpoint is defined as follows:</t> <figure> <artwork><![CDATA[ <endpoint>::=<IPV4-ADDRESS>|<IPV6-ADDRESS>|<UNNUMBERED-ENDPOINT> <endpoint-restriction-list> ::= <endpoint-restriction> [<endpoint-restriction-list>] <endpoint-restriction> ::= [<LABEL-REQUEST>][<label-restriction-list>] <label-restriction-list> ::= <label-restriction> [<label-restriction-list>] <label-restriction> ::= <LABEL-SET> ]]></artwork> </figure> <t>The different TLVs are described in the following sections. A PCE MAY support any or all of IPV4-ADDRESS, IPV6-ADDRESS, and UNNUMBERED-ENDPOINT TLVs. When receiving a PCReq, a PCE unable to resolve the identifier in one of those TLVs MUST respond using a PCRep with NO-PATH and set the bit "Unknown destination" or "Unknown source" in the NO-PATH-VECTOR TLV. The response SHOULD include the END-POINTS object with only the unsupported TLV(s). </t> <t> A PCE MAY support either or both of the LABEL-REQUEST and LABEL-SET TLVs. If a PCE finds a non-supported TLV in the END-POINTS the PCE MUST respond with a PCErr message with Error-Type=4 (Not supported object) and Error-value=TBA-15 (Unsupported TLV present in END-POINTS Generalized Endpoint object type) and the message SHOULD include the END-POINTS object in the response with only the endpoint and endpoint restriction TLV it did not understand. A PCE supporting those TLVs but not being able to fulfil the label restriction MUST send a response with a NO-PATH object which has the bit "No endpoint label resource" or "No endpoint label resource in range" set in the NO-PATH-VECTOR TLV. The response SHOULD include an END-POINTS object containing only the TLV(s) related to the constraints the PCE could not meet. </t> </section> <!--New ENDPOINTS ObjType : generalized --> <section title="END-POINTS TLV Extensions" anchor="endpoints_tlvs"> <t>All endpoint TLVs have the standard PCEP TLV header as defined in <xref target="RFC5440"/> Section 7.1. For the Generalized Endpoint Object Type the TLVs MUST follow the ordering defined in <xref target="endpoints_generalized" />. </t> <section title="IPV4-ADDRESS TLV" anchor="endpoints_tlvs_ipv4"> <t>This TLV represents a numbered endpoint using IPv4 numbering, the format of the IPv4-ADDRESS TLV value (TLV-Type=TBA-6) is as follows: </t> <figure> <artwork><![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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IPv4 address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ]]></artwork> </figure> <t> This TLV MAY be ignored, in which case a PCRep with NO-PATH SHOULD be returned, as described in <xref target="endpoints_generalized" />. </t> </section> <section title="IPV6-ADDRESS TLV" anchor="endpoints_tlvs_ipv6"> <t>This TLV represents a numbered endpoint using IPV6 numbering, the format of the IPv6-ADDRESS TLV value (TLV-Type=TBA-7) is as follows: </t> <figure> <artwork><![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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IPv6 address (16 bytes) | | | | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ]]></artwork> </figure> <t> This TLV MAY be ignored, in which case a PCRep with NO-PATH SHOULD be returned, as described in <xref target="endpoints_generalized" />. </t> </section> <section title="UNNUMBERED-ENDPOINT TLV" anchor="endpoints_tlvs_unnumbered-if"> <t>This TLV represents an unnumbered interface. This TLV has the same semantic as in <xref target="RFC3477"/>. The TLV value is encoded as follows (TLV-Type=TBA-8) </t> <figure> <artwork><![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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | LSR's Router ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Interface ID (32 bits) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ]]></artwork> </figure> <t> This TLV MAY be ignored, in which case a PCRep with NO-PATH SHOULD be returned, as described in <xref target="endpoints_generalized" />. </t> </section> <section title="LABEL-REQUEST TLV" anchor="endpoints_tlvs_label-request"> <t>The LABEL-REQUEST TLV indicates the switching capability and encoding type of the following label restriction list for the endpoint. The value format and encoding is the same as described in <xref target="RFC3471"></xref> Section 3.1 Generalized label request. The LABEL-REQUEST TLV uses TLV-Type=TBA-9. The Encoding Type indicates the encoding type, e.g., SONET/SDH/GigE etc., of the LSP with which the data is associated. The Switching type indicates the type of switching that is being requested on the endpoint. G-PID identifies the payload. This TLV and the following one are defined to satisfy requirement 13 of <xref target="RFC7025"/> for the endpoint. It is not directly related to the TE-LSP label request, which is expressed by the SWITCH-LAYER object.</t> <t> On the path calculation request only the GENERALIZED-BANDWIDTH and SWITCH-LAYER need to be coherent, the endpoint labels could be different (supporting a different LABEL-REQUEST). Hence the label restrictions include a Generalized label request in order to interpret the labels. This TLV MAY be ignored, in which case a PCRep with NO-PATH SHOULD be returned, as described in <xref target="endpoints_generalized" />. </t> </section> <section title="LABEL-SET TLV" anchor="endpoints_tlvs_labels"> <t>Label or label range restrictions can be specified for the TE-LSP endpoints. Those are encoded using the LABEL-SET TLV. The label value need to be interpreted with a description on the Encoding and switching type. The REQ-ADAP-CAP object from <xref target="RFC8282"></xref> can be used in case of mono-layer request, however in case of multilayer it is possible to have more than one object, so it is better to have a dedicated TLV for the label and label request. These TLVs MAY be ignored, in which case a response with NO-PATH SHOULD be returned, as described in <xref target="endpoints_generalized" />. TLVs are encoded as follows (following <xref target="RFC5440"></xref>): </t> <t><list style='symbols'> <t>LABEL-SET TLV, Type=TBA-10. The TLV Length is variable, Encoding follows <xref target="RFC3471"></xref> Section 3.5 "Label set" with the addition of a U bit, O bit and L bit. The L bit is used to represent a suggested set of labels, following the semantic of SUGGESTED_LABEL defined by <xref target="RFC3471"></xref>. <figure> <artwork><![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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Action | Reserved |L|O|U| Label Type | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Subchannel 1 | | ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ : : : : : : +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Subchannel N | | ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ]]></artwork> </figure></t> </list> </t> <t> A LABEL-SET TLV represents a set of possible labels that can be used on an interface. If the L bit is cleared, the label allocated on the first endpoint MUST be within the label set range. The action parameter in the Label set indicates the type of list provided. These parameters are described by <xref target="RFC3471"></xref> Section 3.5.1. </t> <t> The U, O and L bits have the following meaning: </t> <texttable anchor='endpoints_tlvs_labels_bits' suppress-title='true' style='none' title='Labels TLV bits'> <ttcol align='center'></ttcol> <ttcol align='left'></ttcol> <c>U:</c><c>Upstream direction: The U bit is set for upstream (revers) direction in case of bidirectional LSP.</c> <c>O:</c><c>Old Label: set when the TLV represent the old (previously allocated) label in case of re-optimization. The R bit of the RP object MUST be set to 1. If the L bit is set, this bit SHOULD be set to 0 and ignored on receipt. When this bit is set, the Action field MUST be set to 0 (Inclusive List) and the Label Set MUST contain one subchannel.</c> <c>L:</c><c>Loose Label: set when the TLV indicates to the PCE a set of preferred (ordered) labels to be used. The PCE MAY use those labels for label allocation. </c> </texttable> <t> Several LABEL_SET TLVs MAY be present with the O bit cleared, LABEL_SET TLVs with L bit set can be combined with a LABEL_SET TLV with L bit cleared. There MUST NOT be more than two LABEL_SET TLVs present with the O bit set. If there are two LABEL_SET TLVs present, there MUST NOT be more than one with the U bit set, and there MUST NOT be more than one with the U bit cleared. For a given U bit value, if more than one LABEL_SET TLV with the O bit set is present, the first TLV MUST be processed and the following TLVs with the same U and O bit MUST be ignored. </t> <t> A LABEL-SET TLV with the O and L bit set MUST trigger a PCErr message with Error-Type=10 (Reception of an invalid object) Error-value=TBA-25 (Wrong LABEL-SET TLV present with O and L bit set). </t> <t> A LABEL-SET TLV with the O bit set and an Action Field not set to 0 (Inclusive list) or containing more than one subchannel MUST trigger a PCErr message with Error-Type=10 (Reception of an invalid object) Error-value=TBA-26 (Wrong LABEL-SET TLV present with O bit and wrong format). </t> <t>If a LABEL-SET TLV is present with O bit set, the R bit of the RP object MUST be set, otherwise a PCErr message MUST be sent with Error-Type=10 (Reception of an invalid object) Error-value=TBA-24 (LABEL-SET TLV present with O bit set but without R bit set in RP).</t> </section> <!-- end Label TLV --> </section> <!-- ENDPOINTS TLVs extensions --> </section> <!-- ENDPOINTS extensions --> <!-- IRO extension --> <section title="IRO Extension" anchor="iro-label"> <t>The IRO as defined in <xref target="RFC5440" /> is used to include specific objects in the path. RSVP-TE allows the inclusion of a label definition. In order to fulfill requirement 13 of <xref target="RFC7025"/> the IRO needs to support the new subobject type as defined in <xref target="RFC3473" />: </t> <texttable suppress-title='true' style='none' > <ttcol align='left'></ttcol> <ttcol align='left'></ttcol> <c>Type</c><c>Sub-object </c> <c>TBA-38</c><c> LABEL</c> </texttable> <t>The Label subobject MUST follow a subobject identifying a link, currently an IP address subobject (Type 1 or 2) or an interface ID (type 4) subobject. If an IP address subobject is used, then the given IP address MUST be associated with a link. More than one label subobject MAY follow each link subobject. The procedure associated with this subobject is as follows. </t> <t> If the PCE is able to allocate labels (e.g., via explicit label control) the PCE MUST allocate one label from within the set of label values for the given link. If the PCE does not assign labels, then it sends a response with a NO-PATH object, containing a NO-PATH-VECTOR TLV with the bit 'No label resource in range' set. </t> </section> <!-- End IRO --> <!-- XRO extension --> <section title="XRO Extension" anchor="xro-label"> <t>The XRO as defined in <xref target="RFC5521" /> is used to exclude specific objects in the path. RSVP-TE allows the exclusion of certain labels (<xref target="RFC6001"/>). In order to fulfill requirement 13 of <xref target="RFC7025" /> Section 3.1, the PCEP's XRO needs to support a new subobject to enable label exclusion.</t> <t> The encoding of the XRO Label subobject follows the encoding of the Label ERO subobject defined in <xref target="RFC3473" /> and XRO subobject defined in <xref target="RFC5521" />. The XRO Label subobject represent one Label and is defined as follows: </t> <figure> <preamble>XRO Subobject Type TBA-39: Label Subobject.</preamble> <artwork><![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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |X| Type=TBA-39 | Length |U| Reserved | C-Type | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Label | | ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ]]></artwork> </figure> <t> <list style='empty'> <t>X (1 bit): as per <xref target="RFC5521" />. The X-bit indicates whether the exclusion is mandatory or desired. 0 indicates that the resource specified MUST be excluded from the path computed by the PCE. 1 indicates that the resource specified SHOULD be excluded from the path computed by the PCE, but MAY be included subject to PCE policy and the absence of a viable path that meets the other constraints and excludes the resource. </t> <t>Type (7 bits): The Type of the XRO Label subobject is TBA-39<!--, suggested value 3-->.</t> <t>Length (8 bits): see <xref target="RFC5521" />, the total length of the subobject in bytes (including the Type and Length fields). The Length is always divisible by 4.</t> <t>U (1 bit): see <xref target="RFC3471" /> Section 6.1.</t> <t>C-Type (8 bits): the C-Type of the included Label Object as defined in <xref target="RFC3473" />.</t> <t>Label: see <xref target="RFC3471" />.</t> </list> The Label subobject MUST follow a subobject identifying a link, currently an IP address subobject (Type 1 or 2) or an interface ID (type 4) subobject. If an IP address subobject is used, then the given IP address MUST be associated with a link. More than one label subobject MAY follow each link subobject. </t> <texttable suppress-title='true' style='none' > <ttcol align='left'></ttcol> <ttcol align='left'></ttcol> <c>Type</c><c>Sub-object </c> <c>3</c><c>LABEL</c> </texttable> </section> <!-- End XRO--> <section title="LSPA Extensions" anchor="lspa"> <t> The LSPA carries the LSP attributes. In the end-to-end recovery context, this also includes the protection state information. A new TLV is defined to fulfil requirement 7 of <xref target="RFC7025" /> Section 3.1 and requirement 3 of <xref target="RFC7025" /> Section 3.2. This TLV contains the information of the PROTECTION object defined by <xref target="RFC4872"/> and can be used as a policy input. The LSPA object MAY carry a PROTECTION-ATTRIBUTE TLV defined as: Type TBA-12: PROTECTION-ATTRIBUTE</t> <figure> <artwork><![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 | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |S|P|N|O| Reserved | LSP Flags | Reserved | Link Flags| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |I|R| Reserved | Seg.Flags | Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ]]></artwork> <postamble>The content is as defined in <xref target="RFC4872"></xref> Section 14, <xref target="RFC4873"></xref> Section 6.1.</postamble> </figure> <t>LSP (protection) Flags or Link flags field can be used by a PCE implementation for routing policy input. The other attributes are only meaningful for a stateful PCE.</t> <t>This TLV is OPTIONAL and MAY be ignored by the PCE. If ignored by the PCE, it MUST NOT include the TLV in the LSPA of the response. When the TLV is used by the PCE, a LSPA object and the PROTECTION-ATTRIBUTE TLV MUST be included in the response. Fields that were not considered MUST be set to 0. </t> </section> <section title="NO-PATH Object Extension"> <t> The NO-PATH object is used in PCRep messages in response to an unsuccessful path computation request (the PCE could not find a path satisfying the set of constraints). In this scenario, PCE MUST include a NO-PATH object in the PCRep message. The NO-PATH object MAY carry the NO-PATH-VECTOR TLV that specifies more information on the reasons that led to a negative reply. In case of GMPLS networks there could be some additional constraints that led to the failure such as protection mismatch, lack of resources, and so on. Several new flags have been defined in the 32-bit flag field of the NO-PATH-VECTOR TLV but no modifications have been made in the NO-PATH object. </t> <section title="Extensions to NO-PATH-VECTOR TLV" anchor="no-path_bits"> <t> The modified NO-PATH-VECTOR TLV carrying the additional information is as follows: <list> <t>Bit number TBA-32 - Protection Mismatch (1-bit). Specifies the mismatch of the protection type in the PROTECTION-ATTRIBUTE TLV in the request. </t> <t>Bit number TBA-33 - No Resource (1-bit). Specifies that the resources are not currently sufficient to provide the path. </t> <t>Bit number TBA-34 - Granularity not supported (1-bit). Specifies that the PCE is not able to provide a path with the requested granularity. </t> <t>Bit number TBA-35 - No endpoint label resource (1-bit). Specifies that the PCE is not able to provide a path because of the endpoint label restriction. </t> <t>Bit number TBA-36 - No endpoint label resource in range (1-bit). Specifies that the PCE is not able to provide a path because of the endpoint label set restriction. </t> <t>Bit number TBA-37 - No label resource in range (1-bit). Specifies that the PCE is not able to provide a path because of the label set restriction. </t> </list> </t> </section> <!-- NO-Path vector TLV --> </section> <!-- end NO-PATH --> </section> <!-- End PCEP Object and Extensions--> <section title="Additional Error-Types and Error-Values Defined" anchor="error-codes"> <t> A PCEP-ERROR object is used to report a PCEP error and is characterized by an Error-Type that specifies the type of error while Error-value that provides additional information about the error. An additional error type and several error values are defined to represent some of the errors related to the newly identified objects related to GMPLS networks. For each PCEP error, an Error-Type and an Error-value are defined. Error-Type 1 to 10 are already defined in <xref target="RFC5440"></xref>. Additional Error-values are defined for Error-Types 4 and 10. A new Error-Type is defined (value TBA-27). </t> <t> The Error-Type TBA-27 (path computation failure) is used to reflect constraints not understood by the PCE, for instance when the PCE is not able to understand the generalized bandwidth. If the constraints are understood, but the PCE is unable to find with those constraints, the NO-PATH is to be used. </t> <texttable suppress-title='true' style='none'> <ttcol align='center' width="4%">Error-Type</ttcol> <ttcol align='left' width="14%">Error-value</ttcol> <ttcol align='left' width="53%"></ttcol> <c>4</c><c>Not supported object </c><c></c> <c></c><c>value=TBA-14:</c><c>Bandwidth Object type TBA-2 or TBA-3 not supported</c> <c></c><c>value=TBA-15:</c><c>Unsupported endpoint type in </c> <c></c><c></c><c>END-POINTS Generalized Endpoint</c> <c></c><c></c><c>object type</c> <c></c><c>value=TBA-16:</c><c>Unsupported TLV present in END-POINTS Generalized Endpoint object type</c> <c></c><c>value=TBA-17:</c><c>Unsupported granularity in the RP object flags</c> <c>10</c><c>Reception of an invalid object</c><c></c> <c></c><c>value=TBA-18:</c><c>Bad Bandwidth Object type TBA-2(Generalized bandwidth) or TBA-3( Generalized bandwidth of existing TE-LSP for which a reoptimization is requested)</c> <c></c><c>value=TBA-20:</c><c>Unsupported LSP Protection Flags in PROTECTION-ATTRIBUTE TLV</c> <c></c><c>value=TBA-21:</c><c>Unsupported Secondary LSP Protection Flags in PROTECTION-ATTRIBUTE TLV</c> <c></c><c>value=TBA-22:</c><c>Unsupported Link Protection Type in PROTECTION-ATTRIBUTE TLV</c> <c></c><c>value=TBA-24:</c><c>LABEL-SET TLV present with 0 bit set but without R bit set in RP</c> <c></c><c>value=TBA-25:</c><c>Wrong LABEL-SET</c> <c></c><c></c><c>TLV present with</c> <c></c><c></c><c>0 and L bit set</c> <c></c><c>value=TBA-26:</c><c>Wrong LABEL-SET with O bit set and wrong format</c> <c></c><c>value=TBA-42:</c><c>Missing GMPLS-CAPABILITY TLV</c> <c>TBA-27</c><c>Path computation failure</c><c></c> <c></c><c>value=0:</c><c>Unassigned</c> <c></c><c>value=TBA-28:</c><c>Unacceptable request message</c> <c></c><c>value=TBA-29:</c><c>Generalized bandwidth value not supported</c> <c></c><c>value=TBA-30:</c><c>Label Set constraint could not be</c> <c></c><c></c><c>met</c> <c></c><c>value=TBA-31:</c><c>Label constraint could not be</c> <c></c><c></c><c>met</c> </texttable> </section> <section title="Manageability Considerations"> <t>This section follows the guidance of <xref target="RFC6123" />.</t> <section title="Control of Function through Configuration and Policy"> <t> This document makes no change to the basic operation of PCEP and so the requirements described in <xref target="RFC5440" /> Section 8.1. also apply to this document. In addition to those requirements a PCEP implementation may allow the configuration of the following parameters: <list> <t>Accepted RG in the RP object.</t> <t>Default RG to use (overriding the one present in the PCReq)</t> <t>Accepted BANDWIDTH object type TBA-2 and TBA-3 parameters in request, default mapping to use when not specified in the request</t> <t>Accepted LOAD-BALANCING object type TBA-4 parameters in request.</t> <t>Accepted endpoint type and allowed TLVs in object END-POINTS with object type Generalized Endpoint.</t> <t>Accepted range for label restrictions in label restriction in END-POINTS, or IRO or XRO objects</t> <t>PROTECTION-ATTRIBUTE TLV acceptance and suppression.</t> </list> The configuration of the above parameters is applicable to the different sessions as described in <xref target="RFC5440" /> Section 8.1 (by default, per PCEP peer, etc.). </t> </section> <section title="Information and Data Models"> <t> This document makes no change to the basic operation of PCEP and so the requirements described in <xref target="RFC5440" /> Section 8.2. also apply to this document. This document does not introduce any new ERO sub objects, so that the, ERO information model is already covered in <xref target="RFC4802"/>. </t> </section> <section title="Liveness Detection and Monitoring"> <t> This document makes no change to the basic operation of PCEP and so there are no changes to the requirements for liveness detection and monitoring set out in <xref target="RFC4657" /> and <xref target="RFC5440" /> Section 8.3. </t> </section> <section title="Verifying Correct Operation"> <t> This document makes no change to the basic operations of PCEP and considerations described in <xref target="RFC5440" /> Section 8.4. New errors defined by this document should satisfy the requirement to log error events. </t> </section> <section title="Requirements on Other Protocols and Functional Components"> <t>No new Requirements on Other Protocols and Functional Components are made by this document. This document does not require ERO object extensions. Any new ERO subobject defined in the TEAS or CCAMP working group can be adopted without modifying the operations defined in this document. </t> </section> <section title="Impact on Network Operation"> <t>This document makes no change to the basic operations of PCEP and considerations described in <xref target="RFC5440" /> Section 8.6. In addition to the limit on the rate of messages sent by a PCEP speaker, a limit MAY be placed on the size of the PCEP messages. </t> </section> </section> <section title="IANA Considerations"> <t> IANA assigns values to the PCEP objects and TLVs. IANA is requested to make some allocations for the newly defined objects and TLVs defined in this document. Also, IANA is requested to manage the space of flags that are newly added in the TLVs. </t> <section title="PCEP Objects"> <t>As described in <xref target="generalized-bandwidth"/>, <xref target="generalized-load-balancing"/> and <xref target="endpoints_generalized" /> new Objects types are defined. IANA is requested to make the following Object-Type allocations from the "PCEP Objects" sub-registry. </t> <texttable suppress-title='true' style='none' anchor='iana_gen_bw'> <ttcol align='left'></ttcol> <ttcol align='left'></ttcol> <c>Object Class</c><c>5</c> <c>Name</c><c> BANDWIDTH</c> <c>Object-Type</c><c>TBA-2: Generalized bandwidth </c> <c> </c><c>TBA-3: Generalized bandwidth of an existing TE-LSP for which a reoptimization is requested </c> <c>Reference</c><c>This document (<xref target="generalized-bandwidth"></xref>)</c> <c /><c /> <c>Object Class</c><c>14</c> <c>Name</c><c> LOAD-BALANCING</c> <c>Object-Type</c><c>TBA-4: Generalized Load Balancing </c> <c /><c /> <c>Reference</c><c>This document (<xref target="generalized-load-balancing"></xref>)</c> <c>Object Class</c><c>4</c> <c>Name</c><c> END-POINTS</c> <c>Object-Type</c><c>TBA-5: Generalized Endpoint </c> <c>Reference</c><c>This document (<xref target="endpoints_extensions"></xref>)</c> </texttable> </section> <!-- End New PCEP Objects--> <section title="Endpoint type field in Generalized END-POINTS Object"> <t>IANA is requested to create a registry to manage the Endpoint Type field of the END-POINTS object, Object Type Generalized Endpoint and manage the code space.</t> <t>New endpoint type in the Reserved range are assigned by Standards Action <xref target="RFC8126"/>. Each endpoint type should be tracked with the following attributes: <list style='symbols'> <t>Endpoint type</t> <t>Description</t> <t>Defining RFC</t> </list> </t> <t>New endpoint type in the Experimental range are for experimental use; these will not be registered with IANA and MUST NOT be mentioned by RFCs.</t> <t>The following values have been defined by this document. (<xref target="endpoints_generalized"></xref>, <xref target="endpoints_generalized_endpoint-type" />):</t> <texttable suppress-title='true' style='none'> <ttcol align='left'>Value</ttcol> <ttcol align='left'>Type</ttcol> <ttcol align='left'>Meaning</ttcol> <c>0</c><c>Point-to-Point</c> <c></c> <c>1</c><c>Point-to-Multipoint</c><c>New leaves to add</c> <c>2</c><c></c> <c>Old leaves to remove</c> <c>3</c><c></c> <c>Old leaves whose path can be modified/reoptimized</c> <c>4</c><c></c> <c>Old leaves whose path has to be</c> <c></c><c></c> <c>left unchanged</c> <c>5-244</c><c>Unassigned</c><c></c> <c>245-255</c> <c>Experimental range</c><c></c> </texttable> </section> <!-- End END-POINTS object, Object Type Generalized Endpoint--> <section title="New PCEP TLVs" anchor='iana-tlvs'> <t> IANA manages the PCEP TLV code point registry (see <xref target="RFC5440"></xref>). This is maintained as the "PCEP TLV Type Indicators" sub-registry of the "Path Computation Element Protocol (PCEP) Numbers" registry. IANA is requested to do the following allocation. Note: TBA-11 is not used <!-- The values here are suggested for use by IANA. --> </t> <texttable suppress-title='true' style='none'> <ttcol align='center'>Value</ttcol> <ttcol align='left'>Meaning</ttcol> <ttcol align='left'>Reference</ttcol> <c>TBA-6</c><c>IPV4-ADDRESS</c><c> This document (<xref target="endpoints_tlvs_ipv4"></xref>) </c> <c>TBA-7</c><c>IPV6-ADDRESS</c><c> This document (<xref target="endpoints_tlvs_ipv6"></xref>) </c> <c>TBA-8</c><c>UNNUMBERED-ENDPOINT</c><c> This document (<xref target="endpoints_tlvs_unnumbered-if"></xref>) </c> <c>TBA-9</c><c>LABEL-REQUEST</c><c> This document (<xref target="endpoints_tlvs_label-request"></xref>) </c> <c>TBA-10</c><c>LABEL-SET</c><c> This document (<xref target="endpoints_tlvs_labels"></xref>) </c> <c>TBA-12 </c><c>PROTECTION-ATTRIBUTE</c><c> This document (<xref target="lspa"></xref>) </c> <c>TBA-1</c><c>GMPLS-CAPABILITY</c><c> This document (<xref target="open-extensions"></xref>) </c> </texttable> </section> <!-- End New PCEP TLVs--> <section title="RP Object Flag Field"> <t> As described in <xref target="rp-extensions"></xref> new flag are defined in the RP Object Flag IANA is requested to make the following Object-Type allocations from the "RP Object Flag Field" sub-registry. <!-- The values here are suggested for use by IANA. --> </t> <texttable suppress-title='true' style='none'> <ttcol align='center'>Bit</ttcol> <ttcol align='left'>Description</ttcol> <ttcol align='left'>Reference</ttcol> <c>TBA-13</c><c>routing granularity (2 bits)</c><c>This document, <xref target="rp-extensions"></xref></c> <c><!-- (suggested bit 17-16) --></c><c> (RG)</c><c></c> </texttable> </section> <!-- RP object flag--> <section title="New PCEP Error Codes"> <t>As described in <xref target="error-codes"></xref>, new PCEP Error-Types and Error-values are defined. IANA is requested to make the following allocation in the "PCEP-ERROR Object Error Types and Values" registry. <!-- The values here are suggested for use by IANA. --> </t> <texttable suppress-title='true' style='none'> <ttcol align='left' >Error</ttcol> <ttcol align='left' width="50">name</ttcol> <ttcol align='left' >Reference</ttcol> <c>Type=4</c><c>Not supported object </c><c><xref target="RFC5440" /></c> <c>Value=TBA-14:</c><c>Bandwidth Object type TBA-2 or TBA-3 not supported</c><c>This Document</c> <c>Value=TBA-15:</c><c>Unsupported endpoint type in END-POINTS Generalized Endpoint object type</c><c>This Document</c> <c>Value=TBA-16:</c><c>Unsupported TLV present in END-POINTS Generalized Endpoint object type</c><c>This Document</c> <c>Value=TBA-17:</c><c>Unsupported granularity in the RP object flags</c><c>This Document</c> <c>Type=10</c><c>Reception of an invalid object </c><c><xref target="RFC5440" /></c> <c>Value=TBA-18:</c><c> Bad Bandwidth Object type TBA-2(Generalized bandwidth) or TBA-3(Generalized bandwidth of existing TE-LSP for which a reoptimization is requested)</c><c>This Document</c> <c>Value=TBA-20:</c><c> Unsupported LSP Protection Flags in PROTECTION-ATTRIBUTE TLV</c><c>This Document</c> <c>Value=TBA-21:</c><c> Unsupported Secondary LSP Protection Flags in PROTECTION-ATTRIBUTE TLV</c><c>This Document</c> <c>Value=TBA-22:</c><c> Unsupported Link Protection Type in PROTECTION-ATTRIBUTE TLV</c><c>This Document</c> <c>Value=TBA-24:</c><c> LABEL-SET TLV present with 0 bit set but without R bit set in RP</c><c>This Document</c> <c>Value=TBA-25:</c><c> Wrong LABEL-SET TLV present with 0 and L bit set</c><c>This Document</c> <c>Value=TBA-26:</c><c> Wrong LABEL-SET with O bit set and wrong format</c><c>This Document</c> <c>Value=TBA-42:</c><c> Missing GMPLS-CAPABILITY TLV</c><c>This Document</c> <c>Type=TBA-27</c><c>Path computation failure</c><c>This Document</c> <c>Value=0</c><c> Unassigned</c><c>This Document</c> <c>Value=TBA-28:</c><c>Unacceptable request message</c><c>This Document</c> <c>Value=TBA-29:</c><c>Generalized bandwidth value not supported</c><c>This Document</c> <c>Value=TBA-30:</c><c>Label Set constraint could not be met</c><c>This Document</c> <c>Value=TBA-31:</c><c>Label constraint could not be met</c><c>This Document</c> </texttable> </section> <section title="New NO-PATH-VECTOR TLV Fields"> <t>As described in <xref target="no-path_bits"></xref>, new NO-PATH-VECTOR TLV Flag Fields have been defined. IANA is requested to do the following allocations in the "NO-PATH-VECTOR TLV Flag Field" sub-registry. <!-- The values here are suggested for use by IANA. --> <list> <t>Bit number TBA-32 - Protection Mismatch (1-bit). Specifies the mismatch of the protection type of the PROTECTION-ATTRIBUTE TLV in the request. </t> <t>Bit number TBA-33 - No Resource (1-bit). Specifies that the resources are not currently sufficient to provide the path. </t> <t>Bit number TBA-34 - Granularity not supported (1-bit). Specifies that the PCE is not able to provide a path with the requested granularity. </t> <t>Bit number TBA-35 - No endpoint label resource (1-bit). Specifies that the PCE is not able to provide a path because of the endpoint label restriction. </t> <t>Bit number TBA-36 - No endpoint label resource in range (1-bit). Specifies that the PCE is not able to provide a path because of the endpoint label set restriction. </t> <t>Bit number TBA-37 - No label resource in range (1-bit). Specifies that the PCE is not able to provide a path because of the label set restriction. </t> <t>Bit number TBA-40 - LOAD-BALANCING could not be performed with the bandwidth constraits (1 bit). Specifies that the PCE is not able to provide a path because it could not map the BANDWIDTH into the parameters specified by the LOAD-BALANCING. </t> </list> </t> </section> <section title="New Subobject for the Include Route Object" > <t>The "PCEP Parameters" registry contains a subregistry "IRO Subobjects" with an entry for the Include Route Object (IRO).</t> <t> IANA is requested to add a further subobject that can be carried in the IRO as follows: </t> <texttable suppress-title='true' style='none'> <ttcol align='left'>Subobject</ttcol> <ttcol align='left'>type</ttcol> <ttcol align='left'>Reference</ttcol> <c>TBA-38<!-- , suggested value 3--></c><c>Label subobject</c><c>This Document</c> </texttable> </section> <section title="New Subobject for the Exclude Route Object" > <t>The "PCEP Parameters" registry contains a subregistry "XRO Subobjects" with an entry for the XRO object (Exclude Route Object).</t> <t> IANA is requested to add a further subobject that can be carried in the XRO as follows: </t> <texttable suppress-title='true' style='none'> <ttcol align='left'>Subobject</ttcol> <ttcol align='left'>type</ttcol> <ttcol align='left'>Reference</ttcol> <c>TBA-39<!--, suggested value 3--></c><c>Label subobject</c><c>This Document</c> </texttable> </section> <section title="New GMPLS-CAPABILITY TLV Flag Field" > <t>IANA is requested to create a sub-registry to manage the Flag field of the GMPLS-CAPABILITY TLV within the "Path Computation Element Protocol (PCEP) Numbers" registry.</t> <t>New bit numbers are to be assigned by Standards Action <xref target="RFC8126"/>. Each bit should be tracked with the following qualities: <list style="symbols"> <t>Bit number (counting from bit 0 as the most significant bit)</t> <t>Capability description</t> <t>Defining RFC</t> </list></t> <t>The initial contents of the sub-registry are empty, with all bits marked unassigned</t> </section> </section> <!-- End IANA --> <section title="Security Considerations"> <t> GMPLS controls multiple technologies and types of network elements. The LSPs that are established using GMPLS, whose paths can be computed using the PCEP extensions to support GMPLS described in this document, can carry a high volume of traffic and can be a critical part of a network infrastructure. The PCE can then play a key role in the use of the resources and in determining the physical paths of the LSPs and thus it is important to ensure the identity of PCE and PCC, as well as the communication channel. In many deployments there will be a completely isolated network where an external attack is of very low probability. However, there are other deployment cases in which the PCC-PCE communication can be more exposed and there could be more security considerations. Three main situations in case of an attack in the GMPLS PCE context could happen: <list style="symbols"> <t> PCE Identity theft: A legitimate PCC could request a path for a GMPLS LSP to a malicious PCE, which poses as a legitimate PCE. The answer can make that the LSP traverses some geographical place known to the attacker where confidentiality (sniffing), integrity (traffic modification) or availability (traffic drop) attacks could be performed by use of an attacker-controlled middlebox device. Also, the resulting LSP can omit constraints given in the requests (e.g., excluding certain fibers, avoiding some SRLGs) which could make that the LSP which will be later set-up can look perfectly fine, but will be in a risky situation. Also, the result can lead to the creation of an LSP that does not provide the desired quality and gives less resources than necessary. </t> <t> PCC Identity theft: A malicious PCC, acting as a legitimate PCC, requesting LSP paths to a legitimate PCE can obtain a good knowledge of the physical topology of a critical infrastructure. It could get to know enough details to plan a later physical attack. </t> <t> Message inspection: As in the previous case, knowledge of an infrastructure can be obtained by sniffing PCEP messages. </t> </list> The security mechanisms can provide authentication and confidentiality for those scenarios where the PCC-PCE communication cannot be completely trusted. <xref target="RFC8253" /> provides origin verification, message integrity and replay protection, and ensures that a third party cannot decipher the contents of a message. </t> <t> In order to protect against the malicious PCE case the PCC SHOULD have policies in place to accept or not the path provided by the PCE. Those policies can verify if the path follows the provided constraints. In addition, technology specific data plane mechanism can be used (following <xref target="RFC5920" /> Section 5.8) to verify the data plane connectivity and deviation from constraints. </t> <t> The document <xref target="RFC8253" /> describes the usage of Transport Layer Security (TLS) to enhance PCEP security. The document describes the initiation of the TLS procedures, the TLS handshake mechanisms, the TLS methods for peer authentication, the applicable TLS ciphersuites for data exchange, and the handling of errors in the security checks. PCE and PCC SHOULD use <xref target="RFC8253" /> mechanism to protect against malicious PCC and PCE. </t> <t> Finally, as mentioned by <xref target="RFC7025" /> the PCEP extensions to support GMPLS should be considered under the same security as current PCE work and this extension will not change the underlying security issues. However, given the critical nature of the network infrastructures under control by GMPLS, the security issues described above should be seriously considered when deploying a GMPLS-PCE based control plane for such networks. For more information on the security considerations on a GMPLS control plane, not only related to PCE/PCEP, <xref target="RFC5920" /> provides an overview of security vulnerabilities of a GMPLS control plane. </t> </section> <section title="Contributing Authors"> <t>Elie Sfeir<vspace blankLines='0'/> Coriant<vspace blankLines='0'/> St Martin Strasse 76<vspace blankLines='0'/> Munich, 81541<vspace blankLines='0'/> Germany<vspace blankLines='1'/> Email: elie.sf...@coriant.com<vspace blankLines='0'/> </t> <t> Franz Rambach<vspace blankLines='0'/> Nockherstrasse 2-4,<vspace blankLines='0'/> Munich 81541<vspace blankLines='0'/> Germany<vspace blankLines='1'/> Phone: +49 178 8855738<vspace blankLines='0'/> Email: franz.ramb...@cgi.com<vspace blankLines='0'/> </t> <t> Francisco Javier Jimenez Chico<vspace blankLines='0'/> Telefonica Investigacion y Desarrollo<vspace blankLines='0'/> C/ Emilio Vargas 6<vspace blankLines='0'/> Madrid, 28043<vspace blankLines='0'/> Spain<vspace blankLines='1'/> Phone: +34 91 3379037<vspace blankLines='0'/> Email: f...@tid.es<vspace blankLines='0'/> </t> <t> Huawei Technologies <list> <t>Suresh BR<vspace blankLines='0'/> Shenzhen<vspace blankLines='0'/> China<vspace blankLines='0'/> Email: sures...@huawei.com<vspace blankLines='0'/> </t> <t> Young Lee<vspace blankLines='0'/> 1700 Alma Drive, Suite 100<vspace blankLines='0'/> Plano, TX 75075<vspace blankLines='0'/> USA<vspace blankLines='1'/> Phone: (972) 509-5599 (x2240)<vspace blankLines='0'/> Email: y...@huawei.com<vspace blankLines='0'/> </t> <t> SenthilKumar S<vspace blankLines='0'/> Shenzhen<vspace blankLines='0'/> China<vspace blankLines='0'/> Email: senthilkum...@huawei.com<vspace blankLines='0'/> </t> <t> Jun Sun<vspace blankLines='0'/> Shenzhen<vspace blankLines='0'/> China<vspace blankLines='0'/> Email: john...@huawei.com <vspace blankLines='0'/> </t> </list> </t> <t> CTTC - Centre Tecnologic de Telecomunicacions de Catalunya <list> <t>Ramon Casellas<vspace blankLines='0'/> PMT Ed B4 Av. Carl Friedrich Gauss 7<vspace blankLines='0'/> 08860 Castelldefels (Barcelona)<vspace blankLines='0'/> Spain<vspace blankLines='0'/> Phone: (34) 936452916 <vspace blankLines='0'/> Email: ramon.casel...@cttc.es<vspace blankLines='0'/> </t> </list> </t> </section> <section title="Acknowledgments"> <t> The research of Ramon Casellas, Francisco Javier Jimenez Chico, Oscar Gonzalez de Dios, Cyril Margaria, and Franz Rambach leading to these results has received funding from the European Community's Seventh Framework Program FP7/2007-2013 under grant agreement no 247674 and no 317999. </t> <t> The authors would like to thank Julien Meuric, Lyndon Ong, Giada Lander, Jonathan Hardwick, Diego Lopez, David Sinicrope, Vincent Roca and Tianran Zhou for their review and useful comments to the document. </t> </section> </middle> <!-- *****BACK MATTER ***** --> <back> <references title="Normative References"> <reference anchor="G.709-v3" target="https://www.itu.int/rec/T-REC-G.709-201606-I/en"> <front> <title> Interfaces for the optical transport network, Recommendation G.709/Y.1331 </title> <author> <organization>ITU-T</organization></author> <date year="2016" month="June"/> </front> </reference> <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml"?> <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.2210.xml"?> <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.3209.xml"?> <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.3471.xml"?> <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.3473.xml"?> <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.3477.xml"?> <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.3630.xml"?> <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.4003.xml"?> <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.4328.xml"?> <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.4606.xml"?> <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.4802.xml"?> <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.4872.xml"?> <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.4873.xml"?> <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.5088.xml"?> <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.5089.xml"?> <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.5440.xml"?> <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.5511.xml"?> <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.5520.xml"?> <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.5521.xml"?> <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.5541.xml"?> <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.6001.xml"?> <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.6003.xml"?> <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.6205.xml"?> <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.6387.xml"?> <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.7570.xml"?> <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.7139.xml"?> <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.7792.xml"?> <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.8126.xml"?> <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.8174.xml"?> <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.8253.xml"?> <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.8282.xml"?> <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.8306.xml"?> </references> <references title="Informative References"> <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.4655.xml"?> <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.4657.xml"?> <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.5920.xml"?> <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.6123.xml"?> <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.6163.xml"?> <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.7025.xml"?> <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.7449.xml"?> </references> <section anchor="appendix" title="LOAD-BALANCING Usage for SDH Virtual Concatenation"> <t>For example a request for one co-signaled n x VC-4 TE-LSP will not use the LOAD-BALANCING. In case the VC-4 components can use different paths, the BANDWIDTH with object type TBA-2 will contain a traffic specification indicating the complete n x VC-4 traffic specification and the LOAD-BALANCING the minimum co-signaled VC-4. For an SDH network, a request to have a TE-LSP group with 10 VC-4 containers, each path using at minimum 2 x VC-4 containers, can be represented with a BANDWIDTH object with OT=TBA-2, Bw Spec Type set to 4, the content of the Generalized Bandwidth is ST=6, RCC=0, NCC=0, NVC=10, MT=1. The LOAD-BALANCING, OT=TBA-4 with Bw Spec Type set to 4, Max-LSP=5, Min Bandwidth Spec is (ST=6, RCC=0, NCC=0, NVC=2, MT=1). The PCE can respond with a response with maximum 5 paths, each of them having a BANDWIDTH OT=TBA-2 and Generalized Bandwidth matching the Min Bandwidth Spec from the LOAD-BALANCING object of the corresponding request.</t> </section> </back> </rfc>
_______________________________________________ Pce mailing list Pce@ietf.org https://www.ietf.org/mailman/listinfo/pce