<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent">

<rfc xmlns:xi="http://www.w3.org/2001/XInclude" submissionType="IETF"
     category="std" consensus="true"
     docName="draft-ietf-pce-gmpls-pcep-extensions-16" number="8779"
     ipr="trust200902" obsoletes="" updates="" xml:lang="en" tocInclude="true"
     tocDepth="3" symRefs="true" sortRefs="true" version="3">

  <front>

    <title abbrev="PCEP Extensions for GMPLS">Path Computation Element Communication Protocol (PCEP) Extensions for GMPLS</title>
    <seriesInfo name="RFC" value="8779"/>
    <author fullname="Cyril Margaria" initials="C." role="editor" surname="Margaria">
      <organization>Juniper</organization>
      <address>
        <email>cmargaria@juniper.net</email>
      </address>
    </author>
    <author fullname="Oscar Gonzalez de Dios" initials="O." 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/>
          <code>28050</code>
          <country>Spain</country>
        </postal>
        <phone>+34 91 4833441</phone>
        <email>oscar.gonzalezdedios@telefonica.com</email>
      </address>
    </author>
    <author fullname="Fatai Zhang" role="editor" initials="F." surname="Zhang">
      <organization>Huawei Technologies</organization>
      <address>
        <postal>
          <street>F3-5-B R&amp;D Center, Huawei Base</street>
          <cityarea>Bantian, Longgang District </cityarea>
          <city>Shenzhen</city>
          <region/>
          <code>518129</code>
          <country>China</country>
        </postal>
        <email>zhangfatai@huawei.com</email>
      </address>
    </author>

    <date month="July" year="2020"/>
    <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
      RFC 7025.
      </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 numbered="true" toc="default">
      <name>Introduction</name>
      <t>Although the PCE architecture and framework for both MPLS and GMPLS networks are defined in <xref target="RFC4655" format="default"/>, most pre-existing PCEP RFCs, such as <xref target="RFC5440" format="default"/>, <xref target="RFC5521" format="default"/>, <xref target="RFC5541" format="default"/>, and <xref target="RFC5520" format="default"/>, 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 Networks (OTNs) and Wavelength Switched Optical Networks (WSONs).</t>
      <t>The functional requirements to be addressed by the PCEP
      extensions to support these applications are fully described in <xref target="RFC7025" format="default"/> and <xref target="RFC7449" format="default"/>. 
      </t>
      <section numbered="true" toc="default">
        <name>Terminology</name>
        <t>  
		This document uses terminologies from the PCE architecture document <xref target="RFC4655" format="default"/>; the PCEP documents including <xref target="RFC5440" format="default"/>, <xref target="RFC5521" format="default"/>, <xref target="RFC5541" format="default"/>, <xref target="RFC5520" format="default"/>, <xref target="RFC7025" format="default"/>, and <xref target="RFC7449" format="default"/>; 
		and the GMPLS documents such as <xref target="RFC3471" format="default"/>, <xref target="RFC3473" format="default"/>, and so
                on.  Note that the reader is expected to be familiar
                with these documents.
                The following abbreviations are used in this document:               
        </t>
        <dl newline="false" spacing="normal" indent="10">
          <dt>ERO:</dt>
          <dd>Explicit Route Object</dd>
          <dt>IRO:</dt>
          <dd>Include Route Object</dd>
          <dt>L2SC:</dt>
          <dd>Layer 2 Switch Capable <xref target="RFC3471" format="default"/></dd>
          <dt>LSC:</dt>
          <dd>Lambda Switch Capable <xref target="RFC3471" format="default"/></dd>          
          <dt>LSP:</dt>
          <dd>Label Switched Path</dd>
          <dt>LSPA:</dt>
          <dd>LSP Attribute</dd>
          <dt>MEF:</dt>
          <dd>Metro Ethernet Forum</dd>
          <dt>MT:</dt>
          <dd>Multiplier <xref target="RFC4328" format="default"/> <xref target="RFC4606" format="default"/></dd>
          <dt>NCC:</dt>
          <dd>Number of Contiguous Components <xref target="RFC4606" format="default"/></dd>          
          <dt>NVC:</dt>
          <dd>Number of Virtual Components <xref target="RFC4328" format="default"/> <xref target="RFC4606" format="default"/></dd>
          <dt>ODU:</dt>
          <dd>Optical Data Unit <xref target="G.709-v3" format="default"/></dd>
          <dt>OTN:</dt>
          <dd>Optical Transport Network <xref target="G.709-v3" format="default"/></dd>
          <dt>P2MP:</dt>
          <dd>Point-to-Multipoint</dd>
          <dt>PCC:</dt>
          <dd>Path Computation Client</dd>
          <dt>PCRep:</dt>
          <dd>Path Computation Reply  <xref target="RFC5440" format="default"/></dd>
          <dt>PCReq:</dt>
          <dd>Path Computation Request <xref target="RFC5440" format="default"/></dd>          
          <dt>RCC:</dt>
          <dd>Requested Contiguous Concatenation <xref target="RFC4606" format="default"/></dd>
          <dt>RRO:</dt>
          <dd>Record Route Object</dd>
          <dt>RSVP-TE:</dt>
          <dd>Resource Reservation Protocol - Traffic  Engineering</dd>
          <dt>SDH:</dt>
          <dd>Synchronous Digital Hierarchy </dd>
          <dt>SONET:</dt>
          <dd>Synchronous Optical Network</dd>
          <dt>SRLG:</dt>
          <dd>Shared Risk Link Group</dd>
          <dt>SSON:</dt>
          <dd>Spectrum-Switched Optical Network</dd>
          <dt>TDM:</dt>
          <dd>Time-Division Multiplex Capable <xref target="RFC3471" format="default"/></dd>
          <dt>TE-LSP:</dt>
          <dd>Traffic Engineered LSP</dd>
          <dt>XRO:</dt>
          <dd>Exclude Route Object</dd>
          
        </dl>
        <t>  
		 The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</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" format="default"/> <xref target="RFC8174" format="default"/> when,
		 and only when, they appear in all capitals, as shown here.

        </t>
      </section>
      <section numbered="true" toc="default">
        <name>PCEP Requirements for GMPLS</name>
        <t><xref target="RFC7025" format="default"/> describes the set of PCEP
        requirements that support GMPLS TE-LSPs. This document assumes a
        significant familiarity with <xref target="RFC7025" format="default"/>
        and existing PCEP extensions.  As a short overview, those requirements
        can be broken down into the following categories.
        </t>
        <ul spacing="normal">
          <li>Which data flow is switched by the LSP: a combination
            of a switching type (for instance, 
            L2SC or TDM), an LSP encoding
            type (e.g., Ethernet, SONET/SDH), and sometimes the signal
            type (e.g., in case of a TDM or an LSC switching capability).</li>
          <li>Data-flow-specific traffic parameters, which are
            technology specific. For instance, in SDH/SONET and OTN networks <xref target="G.709-v3" format="default"/>, the concatenation type and the concatenation number have an influence on the switched data and on which link it can be supported.</li>
          <li>Support for asymmetric bandwidth requests.</li>
          <li>Support for unnumbered interface identifiers, as
            defined in <xref target="RFC3477" format="default"/>.</li>
          <li>Label information and technology-specific label(s) such
            as wavelength labels as defined in <xref target="RFC6205" format="default"/>. A PCC should also be able to
            specify a label restriction similar to the one supported
            by RSVP-TE in  <xref target="RFC3473" format="default"/>.</li>
          <li>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.</li>
        </ul>
        <t>
          The requirements of <xref target="RFC7025" format="default"/> apply to several objects conveyed by PCEP; this is described in <xref target="requirement-map" format="default"/>.          
          Some of the requirements of <xref target="RFC7025" format="default"/> are
          already supported in existing documents, as described in
          <xref target="existing-support" format="default"/>.          
        </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 anchor="requirement-map" numbered="true" toc="default">
        <name>Requirements Applicability</name>
        <t> This section follows the organization of <xref target="RFC7025" sectionFormat="comma" section="3"/> and indicates, for each requirement, the affected piece of information carried by PCEP and its scope.</t>
        <section numbered="true" toc="default">
          <name>Requirements on the Path Computation Request</name>

<ol spacing="normal" type="(%d)">
  <li>Switching capability/type: As described in <xref target="RFC3471" format="default"/>, 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" format="default"/>) when considering multiple network layers.

 Inter-layer path computation requirements are addressed in <xref
 target="RFC8282" format="default"/>, which focuses on the TE-LSP itself but
 does not address the TE-LSP endpoints.
	    </li>
         
	    <li>Encoding type: See (1).
	    </li>
   
	    <li>Signal type: See (1).
	    </li>
          
	    <li>Concatenation type: This parameter and the concatenation
              number (see (5)) are specific to some TDM (SDH and ODU)
              switching technologies. They <bcp14>MUST</bcp14> 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 BANDWIDTH object <xref target="RFC5440" format="default"/> in MPLS networks. See concatenation
              information in <xref target="RFC4606" format="default"/> and <xref target="RFC4328" format="default"/>.
	    </li>
            
            <li>Concatenation number: See (4).
	    </li>
            
	     <li>Technology-specific label(s): As described in <xref target="RFC3471" format="default"/>, 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" format="default"/>. The label restriction can apply to endpoints, and on each hop, the related PCEP objects are END-POINTS, IRO, XRO, and RRO.
	    </li>
       
            <li>End-to-End (E2E) path protection type: As defined in <xref target="RFC4872" format="default"/>, this is applicable to the TE-LSP. In MPLS networks, the related PCEP object is LSPA (carrying local protection information).
	    </li>
            
	    <li>Administrative group: As defined in <xref target="RFC3630" format="default"/>, this information is already carried in the LSPA object.
	    </li>
          
	     <li>Link protection type: As defined in <xref target="RFC4872" format="default"/>, this is applicable to the TE-LSP and is carried in association with the E2E path protection type.
	    </li>
           
	    <li>Support for unnumbered interfaces: As defined in <xref target="RFC3477" format="default"/>. Its scope and related objects are the same as labels.
	    </li>
           
	     <li>Support for asymmetric bandwidth requests: As defined in <xref target="RFC6387" format="default"/>, the scope is similar to (4).
	    </li>
           
	    <li>Support for explicit label control during the path
	    computation: This affects the TE-LSP and the amount of information
	    returned in the ERO.
	    </li>
           
	     <li> Support of label restrictions in the requests/responses:
              This is described in (6).
	    </li>
          </ol>
        </section>
        <section numbered="true" toc="default">
          <name>Requirements on the Path Computation Response</name>
       <ol spacing="normal" type="(%d)">
            
	   <li>Path computation with concatenation: This is related to
            the 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.
	  </li>
            
	    <li>Label constraint: The PCE should be able to include labels in the path returned to the PCC; the related object is the ERO object.
	  </li>
          
	    <li>Roles of the routes: As defined in <xref target="RFC4872" format="default"/>, this is applicable to the TE-LSP and is carried in association with the E2E path protection type.	    
	  </li>
          </ol>
        </section>
      </section>
    
      <section anchor="existing-support" numbered="true" toc="default">
        <name>Existing Support and Limitations for GMPLS in Base PCEP Objects</name>
        <t> The support provided by specifications in <xref target="RFC8282" format="default"/> and <xref target="RFC5440" format="default"/>  for the
          requirements listed in <xref target="RFC7025" format="default"/> is summarized in Tables <xref target="rfc7025_pcreq_reqss" format="counter"/> and <xref target="rfc7025_pcrep_reqss" format="counter"/>.  In
          some cases, the support may not be complete, as noted, and additional support
          needs to be provided as indicated in this specification.
        </t>
        <table anchor="rfc7025_pcreq_reqss" align="center">
          <name>Requirements Support per RFC 7025, Section 3.1</name>
          <thead>
            <tr>
              <th align="left">Req.</th>
              <th align="left">Name</th>
              <th align="left">Support</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left"> 1   </td>
              <td align="left"> Switching capability/type                                      </td>
              <td align="left"> SWITCH-LAYER (RFC 8282) </td>
            </tr>
            <tr>
              <td align="left"> 2   </td>
              <td align="left"> Encoding type                                                  </td>
              <td align="left"> SWITCH-LAYER (RFC 8282) </td>
            </tr>
            <tr>
              <td align="left"> 3   </td>
              <td align="left"> Signal type                                                    </td>
              <td align="left"> SWITCH-LAYER (RFC 8282) </td>
            </tr>
            <tr>
              <td align="left"> 4   </td>
              <td align="left"> Concatenation type                                             </td>
              <td align="left"> No                     </td>
            </tr>
            <tr>
              <td align="left"> 5   </td>
              <td align="left"> Concatenation number                                           </td>
              <td align="left"> No                     </td>
            </tr>
            <tr>
              <td align="left"> 6   </td>
              <td align="left"> Technology-specific label                                      </td>
              <td align="left"> (Partial) ERO (RFC 5440)</td>
            </tr>
            <tr>
              <td align="left"> 7   </td>
              <td align="left"> End-to-End (E2E) path protection type                          </td>
              <td align="left"> No </td>
            </tr>
            <tr>
              <td align="left"> 8   </td>
              <td align="left"> Administrative group                                           </td>
              <td align="left"> LSPA (RFC 5440) </td>
            </tr>
            <tr>
              <td align="left"> 9   </td>
              <td align="left"> Link protection type                                           </td>
              <td align="left"> No </td>
            </tr>
            <tr>
              <td align="left"> 10  </td>
              <td align="left"> Support for unnumbered interfaces                              </td>
              <td align="left"> (Partial) ERO (RFC 5440)</td>
            </tr>
            <tr>
              <td align="left"> 11  </td>
              <td align="left"> Support for asymmetric bandwidth requests                      </td>
              <td align="left"> No </td>
            </tr>
            <tr>
              <td align="left"> 12  </td>
              <td align="left"> Support for explicit label control during the path computation </td>
              <td align="left"> No</td>
            </tr>
            <tr>
              <td align="left"> 13  </td>
              <td align="left"> Support of label restrictions in the requests/responses        </td>
              <td align="left"> No </td>
            </tr>
          </tbody>
        </table>
      
        <table anchor="rfc7025_pcrep_reqss" align="center">
          <name>Requirements Support per RFC 7025, Section 3.2</name>
          <thead>
            <tr>
              <th align="left">Req.</th>
              <th align="left">Name</th>
              <th align="left">Support</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">1</td>
              <td align="left">Path computation with concatenation </td>
              <td align="left"> No      </td>
            </tr>
            <tr>
              <td align="left">2</td>
              <td align="left">Label constraint                    </td>
              <td align="left"> No      </td>
            </tr>
            <tr>
              <td align="left">3</td>
              <td align="left">Roles of the routes                 </td>
              <td align="left"> No      </td>
            </tr>
          </tbody>
        </table>
        <t>Per <xref target="requirement-map" format="default"/>, PCEP (as
        described in <xref target="RFC5440" format="default"/>, <xref
        target="RFC5521" format="default"/>, and <xref target="RFC8282"
        format="default"/>) supports the following objects, included in
        requests and responses, that are related to the described
        requirements.</t>

        <t>From <xref target="RFC5440" format="default"/>:
        </t>
  <ul spacing="normal" empty="true"><li>        
<dl newline="false" spacing="normal">
          <dt>END-POINTS:</dt><dd>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.</dd>
          <dt>BANDWIDTH:</dt><dd>related to requirements 4, 5, and 11. The data rate is encoded in the BANDWIDTH object (as an IEEE 32-bit float). <xref target="RFC5440" format="default"/> does not include the ability to convey an encoding proper to all GMPLS-controlled networks.</dd>
          <dt>ERO:</dt><dd>related to requirements 6, 10, 12, and 13. The ERO
          content is defined in RSVP in
          <xref target="RFC3209" format="default"/>, <xref target="RFC3473" format="default"/>, <xref target="RFC3477" format="default"/>, and <xref target="RFC7570" format="default"/> and
          already supports all of the requirements. </dd>

          <dt>LSPA:</dt><dd>related to requirements 7, 8, and 9. Requirement 8 (Administrative group) is already supported.</dd>
        </dl></li></ul>
        <t>From <xref target="RFC5521" format="default"/>:</t>
    
        <ul spacing="normal" empty="true">
          <li>
            <t>XRO:
            </t>
            <ul spacing="normal">
              <li>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).</li>
              <li>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.
          </li>
            </ul>
          </li>
        </ul>

        <t>From <xref target="RFC8282" format="default"/>:</t>
        <ul spacing="normal" empty="true"><li>
<dl newline="false" spacing="normal">
          <dt>SWITCH-LAYER:</dt><dd>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.</dd>

          <dt>REQ-ADAP-CAP:</dt><dd>indicates the adaptation capabilities requested; it can also be used for the endpoints in case of mono-layer computation.</dd>
        </dl></li></ul>

        <t>
          The gaps in functional coverage of the base PCEP objects are:
        </t>
        <ul empty="false" spacing="normal">
          <li>The BANDWIDTH and LOAD-BALANCING objects do not describe the details of the traffic request (requirements 4 and 5, for example, NVC and multiplier) in the context of GMPLS networks, for instance, in TDM or OTN networks.</li>

          <li>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.</li>

          <li>The IROs/XROs do not allow the inclusion/exclusion of labels (requirements 6, 10, and 13).</li>
          <li>Base attributes do not allow expressing the requested link protection level and/or the end-to-end protection attributes.</li>
        </ul>
        <t>As defined later in this document, the PCEP extensions that cover the gaps are:
        </t>
        <ul empty="false" spacing="normal">
          <li>Two new object types are defined for the BANDWIDTH object
	  (Generalized bandwidth and Generalized bandwidth of an existing TE-LSP for which a reoptimization is requested).</li>
          <li>A new object type is defined for the
                  LOAD-BALANCING object (Generalized Load Balancing).</li>
          <li>A new object type is defined for the END-POINTS object (Generalized Endpoint).</li>
          <li>A new TLV is added to the Open message for capability negotiation.</li>
          <li>A new TLV is added to the LSPA object. </li>
          <!-- [mc] TLV -> subobject -->
          <li>The Label subobject is now allowed in the IRO and XRO objects.</li>
          <li>In order to indicate the routing granularity used in the response, a new flag is added in the RP object.</li>
        </ul>
      </section>
    </section>
    <section numbered="true" toc="default">
      <name>PCEP Objects and Extensions</name>
      <t>
        This section describes the necessary PCEP objects and extensions. The PCReq and PCRep messages are defined in <xref target="RFC5440" format="default"/>. This document does not change the existing grammar.</t>
      <section anchor="capability" numbered="true" toc="default">
        <name>GMPLS Capability Advertisement</name>
        <section anchor="IGP-discovery" numbered="true" toc="default">
          <name>GMPLS Computation TLV in the Existing PCE Discovery Protocol</name>
          <t>
	   IGP-based PCE Discovery (PCED) is defined in <xref target="RFC5088" format="default"/> and <xref target="RFC5089" format="default"/> for the
         OSPF and IS-IS protocols. Those documents have defined bit 0
         in the 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
<bcp14>MUST</bcp14> follow the procedures in <xref target="open-extensions"/> to further qualify the level of support during PCEP session establishment.</t>
        </section>
        <section anchor="open-extensions" numbered="true" toc="default">
          <name>OPEN Object Extension GMPLS-CAPABILITY TLV</name>
          <t>
	   In addition to the IGP advertisement, a PCEP speaker <bcp14>MUST</bcp14> 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 supports the PCEP extensions defined in the document.
	   A PCEP speaker that is able to support the GMPLS extensions
           defined in this document <bcp14>MUST</bcp14> include the GMPLS-CAPABILITY
           TLV in the Open message.
           If one of the PCEP peers does not include the GMPLS-CAPABILITY TLV
           in the Open message, the peers <bcp14>MUST NOT</bcp14> 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 <bcp14>MUST</bcp14> generate a PCEP Error (PCErr) with Error-Type=10
           (Reception of an invalid object) and Error-value=31
           (Missing GMPLS-CAPABILITY TLV), and it
           <bcp14>SHOULD</bcp14> terminate the PCEP session. 
          </t>
          <t>
	   As documented in <xref target="iana-tlvs" format="default"/> ("New
	   PCEP TLVs"), IANA has allocated value 45 (GMPLS-CAPABILITY) from
	   the "PCEP TLV Type Indicators" sub-registry.
	   The format for the GMPLS-CAPABILITY TLV is shown in the following figure.
          </t>
          <artwork name="" type="" align="left" alt=""><![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=45         |           Length              |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                             Flags                             |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   ]]></artwork>
          <t>
              No flags are defined in this document; they are reserved for future use. Unassigned flags
 <bcp14>MUST</bcp14> be set to zero on transmission and  <bcp14>MUST</bcp14> be ignored on receipt.
          </t>
        </section>
      </section>
      <section anchor="rp-extensions" numbered="true" toc="default">
        <name>RP Object Extension</name>
        <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 the policies or switching layer, it might 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 in <xref target="RFC7025" sectionFormat="of" section="3.1"/>.
         The possible granularities can be node, link, or label. The
         granularities are interdependent, 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 15-16) is defined in
         the RP object. The values are defined as follows:</t>

<ul empty="true" spacing="normal"><li>
<dl spacing="normal" >
<dt>0:</dt><dd>reserved</dd>                          
<dt>1:</dt><dd>node</dd>                         
<dt>2:</dt><dd>link</dd>                    
<dt>3:</dt><dd>label</dd> 
</dl></li></ul>
        <t>The RG flag in the RP object indicates the requested
            route granularity. The PCE <bcp14>SHOULD</bcp14> follow this granularity and <bcp14>MAY</bcp14> return a NO-PATH if the requested granularity cannot be provided. The PCE <bcp14>MAY</bcp14> 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 <bcp14>MUST</bcp14> indicate the selected routing
	    granularity in the RP object included in the response. Otherwise, the PCE <bcp14>MUST</bcp14> use the reserved RG to leave the check of the ERO to the PCC. The RG flag is backward compatible with <xref target="RFC5440" format="default"/>: the value sent by an implementation (PCC or PCE) not supporting it will indicate a reserved value.
        </t>
      </section>
      <section anchor="generalized-bandwidth" numbered="true" toc="default">
        <name>BANDWIDTH Object Extensions</name>
        <t>
	   Per <xref target="RFC5440" format="default"/>, the object carrying
	   the requested size for the TE-LSP is the BANDWIDTH object. Object
	   types 1 and 2 defined in <xref target="RFC5440" format="default"/>
	   do not provide 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" format="default"/>.  RSVP-TE extensions for GMPLS
	   provide a set of encodings that allow such representation in an
	   unambiguous way; this is encoded in the RSVP-TE Traffic
	   Specification (TSpec) and Flow Specification (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:
        </t>
        <ul spacing="normal">
          <li>Asymmetric bandwidth (different bandwidth in forward and reverse direction), as described in <xref target="RFC6387" format="default"/>.</li>
          <li>GMPLS (SDH/SONET, G.709, ATM, MEF, etc.) parameters.</li>
        </ul>
        <t>
         This corresponds to requirements 3, 4, 5, and 11 in <xref target="RFC7025" sectionFormat="of" section="3.1"/>.
        </t>
        <t>
	 This document defines two object types for the BANDWIDTH object:
        </t>
<ul spacing="normal" empty="true"><li>
        <dl newline="false" spacing="normal">
          <dt>3:</dt>
          <dd>Generalized bandwidth</dd>
          <dt>4:</dt>
          <dd>Generalized bandwidth of an existing TE-LSP for which a
          reoptimization is requested</dd>
        </dl></li></ul>
        <t>
	  The definitions below apply for object types 3 and 4. The body is as follows:
        </t>
        <artwork name="" type="" align="left" alt=""><![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                     ~
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   ~            Reverse Generalized Bandwidth (optional)           ~
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   ~                       Optional TLVs                           ~ 
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   ]]></artwork>
        <t>BANDWIDTH object types 3 and 4 have a variable length.
	 The 16-bit Bandwidth Spec Length field indicates the length of the Generalized Bandwidth field.
	 The Bandwidth Spec Length <bcp14>MUST</bcp14> 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 <bcp14>MAY</bcp14> 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 Generalized Bandwidth and Reverse Generalized
        Bandwidth fields is the same as the traffic parameters carried in
        RSVP-TE; they can be found in the following references.

         Note that the RSVP-TE traffic specification <bcp14>MAY</bcp14> also
         include TLVs that are different from the PCEP TLVs (e.g., the TLVs defined in <xref
         target="RFC6003" format="default"/>).</t>
         <table anchor="TSpec_encoding" align="center">
           <!-- [mc] Should it say Fields? -->
          <name>Generalized Bandwidth and Reverse Generalized Bandwidth Field Encoding</name>
          <thead>
            <tr>
              <th align="left">Bw Spec Type</th>
              <th align="left">Name </th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">2</td>
              <td align="left">Intserv</td>
              <td align="left">
                <xref target="RFC2210" format="default"/></td>
            </tr>
            <tr>
              <td align="left">4</td>
              <td align="left">SONET/SDH</td>
              <td align="left">
                <xref target="RFC4606" format="default"/></td>
            </tr>
            <tr>
              <td align="left">5</td>
              <td align="left">G.709</td>
              <td align="left">
                <xref target="RFC4328" format="default"/></td>
            </tr>
            <tr>
              <td align="left">6</td>
              <td align="left">Ethernet</td>
              <td align="left">
                <xref target="RFC6003" format="default"/></td>
            </tr>
            <tr>
              <td align="left">7</td>
              <td align="left">OTN-TDM</td>
              <td align="left">
                <xref target="RFC7139" format="default"/></td>
            </tr>
            <tr>
              <td align="left">8</td>
              <td align="left">SSON</td>
              <td align="left">
                <xref target="RFC7792" format="default"/></td>
            </tr>
          </tbody>
        </table>
        <t>
           When a PCC requests a bidirectional path with symmetric bandwidth,
   it <bcp14>SHOULD</bcp14> only specify the Generalized Bandwidth field and set the Reverse Bandwidth Spec
   Length to 0.

	When a PCC needs to request a bidirectional path with
        asymmetric bandwidth, it <bcp14>SHOULD</bcp14> specify the different bandwidth in the forward and reverse directions with Generalized Bandwidth and Reverse Generalized Bandwidth fields.
        </t>
        <t>The procedure described in <xref target="RFC5440" format="default"/> for the PCRep is unchanged: a PCE <bcp14>MAY</bcp14> include the BANDWIDTH objects in the response to indicate the BANDWIDTH of the path.</t>

        <t>As specified in <xref target="RFC5440" format="default"/>, in the case of the reoptimization of a TE-LSP, the bandwidth of the
   existing TE-LSP <bcp14>MUST</bcp14> also be included in addition to the requested
   bandwidth if and only if the two values differ.  The object type 4 <bcp14>MAY</bcp14> be used instead of the previously specified object
   type 2 to indicate the existing TE-LSP bandwidth, which was originally specified with
   object type 3. A PCC that requested a path with a BANDWIDTH object of
   object type 1 <bcp14>MUST</bcp14> use object type 2 to represent the existing TE-LSP
   bandwidth.
        </t>

        <t>Optional TLVs <bcp14>MAY</bcp14> be included within the object body to specify
         more specific bandwidth requirements. No TLVs for object types 3 and 4 are defined by this document.
        </t>
      </section>
   
       <section anchor="generalized-load-balancing" numbered="true" toc="default">
        <name>LOAD-BALANCING Object Extensions</name>
        <t>
         The LOAD-BALANCING object <xref target="RFC5440" format="default"/>
         is used to request a set of at most Max-LSP TE-LSPs having in total
         the bandwidth specified in BANDWIDTH, with each TE-LSP having at
         least a specified minimum bandwidth.

 The LOAD-BALANCING object follows the bandwidth
         encoding of the BANDWIDTH object; thus, the existing definition from
         <xref target="RFC5440" format="default"/> does not describe enough
         details for the bandwidth specification expected by GMPLS.
        </t>
        <t>
	   Similar 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 object type 2 (Generalized Load Balancing) 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>
        <artwork name="" type="" align="left" alt=""><![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>


<dl spacing="normal">
        <dt>Bandwidth Spec Length (16 bits):</dt><dd>the total length of
         the Min Bandwidth Spec field. The length <bcp14>MUST</bcp14> be strictly greater than 0.</dd>

        <dt>Reverse Bandwidth Spec Length (16 bits):</dt><dd>the total
         length of the Min Reverse Bandwidth Spec field. It <bcp14>MAY</bcp14> be equal to 0.</dd>

        <dt>Bw Spec Type (8 bits):</dt><dd>the bandwidth specification type; it corresponds to RSVP-TE SENDER_TSPEC (Object Class 12) C-Types.</dd>

        <dt>Max-LSP (8 bits):</dt><dd>the maximum number of TE-LSPs in the set.</dd>

        <dt>Min Bandwidth Spec (variable):</dt><dd>specifies the minimum bandwidth specification of each
	 element of the TE-LSP set.</dd>

        <dt>Min Reverse Bandwidth Spec (variable):</dt><dd>specifies the minimum reverse bandwidth specification of each
	 element of the TE-LSP set.</dd></dl>

        <t>The encoding of the Min Bandwidth Spec and Min
        Reverse Bandwidth Spec fields is the same as in the RSVP-TE SENDER_TSPEC
        object; it can be found in <xref target="TSpec_encoding" format="default"/>
        in <xref target="generalized-bandwidth" format="default"/> of this document.</t>
        <t>
	 When a PCC requests a bidirectional path with symmetric
         bandwidth while specifying load-balancing constraints, it <bcp14>SHOULD</bcp14>
         specify the Min Bandwidth Spec field and set the Reverse
         Bandwidth Spec Length to 0. When a PCC needs to request a bidirectional path with
         asymmetric bandwidth while specifying load-balancing
         constraints, it <bcp14>MUST</bcp14> specify the different bandwidth in
         forward and reverse directions through Min Bandwidth Spec
         and Min Reverse Bandwidth Spec fields.
        </t>
        <t>Optional TLVs <bcp14>MAY</bcp14> 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 the bandwidth for all TE-LSPs in the set is greater than X.
        The mapping of the 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" format="default"/>.</t>
        <t>
          In all other cases, including technologies based on statistical
          multiplexing (e.g., InterServ and Ethernet), the exact bandwidth
          management (e.g., the 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 BANDWIDTH and LOAD-BALANCING Bw Spec Type can be different depending on the architecture of the endpoint node. When the PCE is not able to handle those two Bw Spec Types, it <bcp14>MUST</bcp14> return a NO-PATH with the bit "LOAD-BALANCING could not be performed with the bandwidth constraints" set in the  NO-PATH-VECTOR TLV.</t>
      </section>
  

       <section anchor="endpoints_extensions" numbered="true" toc="default">
        <name>END-POINTS Object Extensions</name>
        <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.
           Per <xref target="RFC5440" format="default"/>, 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:
        </t>
        <ul spacing="normal">
          <li>Different source and destination endpoint types.</li>
          <li>Label restrictions on the endpoint.</li>
          <li>Specification of unnumbered endpoints type as seen in GMPLS networks.</li>
        </ul>
        <t>
           The object encoding is described in the following sections.
        </t>
        <t>In path computation within a GMPLS context, the endpoints can:
        </t>
        <ul spacing="normal">
          <li>Be unnumbered as described in <xref target="RFC3477" format="default"/>.</li>
          <li>Have labels associated to them, specifying a set of constraints on the allocation of labels.</li>
          <li>Have different switching capabilities.</li>
        </ul>
        <t>
           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 types of endpoints.
        </t>
        <t>           
           This document defines object type 5 (Generalized Endpoint) 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 in <xref target="RFC7025"
           sectionFormat="of" section="3.1"/>.
        </t>
        <section anchor="endpoints_generalized" numbered="true" toc="default">
          <name>Generalized Endpoint Object Type</name>
          <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" format="default"/>. 
For each endpoint type, a different grammar is defined.


            The TLVs defined to describe an endpoint are:
          </t>
          <ol spacing="normal" type="1">
            <li>IPV4-ADDRESS</li>
            <li>IPV6-ADDRESS</li>
            <li>UNNUMBERED-ENDPOINT</li>
            <li>LABEL-REQUEST</li>
            <li>LABEL-SET</li>
          </ol>
          <t>
	   The  LABEL-SET TLV is used to restrict or suggest the label
	   allocation in the PCE. This TLV expresses the set of restrictions
	   that may apply to signaling. Label restriction support can be an
	   explicit or a suggested value (LABEL-SET describing one label, with
	   the L bit cleared or set, respectively), mandatory range
	   restrictions (LABEL-SET with the L bit cleared), and optional range
	   restriction (LABEL-SET with the L bit set).  Endpoints label
	   restriction may not be part of the RRO or IRO. They can be
	   included when following <xref target="RFC4003" format="default"/>
	   in signaling for the egress endpoint, but ingress endpoint
	   properties can be local to the PCC and not signaled. To support
	   this case, the  LABEL-SET allows indication of which labels are used
	   in case of reoptimization.

	   The label range restrictions are valid in GMPLS-controlled 
           networks, depending on either the PCC policy or the switching 
           technology used, for instance, on a 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 the Generalized
	   Endpoint object type is encoded as follows:
          </t>
          <artwork name="" type="" align="left" alt=""><![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>
          <t>Reserved bits <bcp14>SHOULD</bcp14> be set to 0 when a message is sent and ignored when the message is received.</t>

          <t>The values for the Endpoint Type field are defined as follows:</t>
          <table anchor="endpoints_generalized_endpoint-type" align="center">
            <name>Generalized Endpoint Types</name>
            <thead>
              <tr>
                <th align="left">Value</th>
                <th align="left">Type</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">0</td>
                <td align="left">Point-to-Point</td>
     
              </tr>
              <tr>
                <td align="left">1</td>
                <td align="left">Point-to-Multipoint with leaf type 1</td>
  
              </tr>
              <tr>
                <td align="left">2</td>
                <td align="left">Point-to-Multipoint with leaf type 2</td>
            
              </tr>
              <tr>
                <td align="left">3</td>
                <td align="left">Point-to-Multipoint with leaf type 3</td>
          
              </tr>
              <tr>
                <td align="left">4</td>
                <td align="left">Point-to-Multipoint with leaf type 4</td>
         
              </tr>
              <tr>
                <td align="left">5-244</td>
                <td align="left">Unassigned</td>
       
              </tr>
              <tr>
                <td align="left">245-255</td>
                <td align="left">Experimental Use</td>
     
              </tr>
            </tbody>
          </table>


          <t>
	    The Endpoint Type field is used to cover both point-to-point and
	    different point-to-multipoint endpoints.  A PCE may only accept
	    endpoint type 0; endpoint types 1-4 apply if the PCE
	    implementation supports P2MP path calculation.  The leaf types for P2MP are as per <xref target="RFC8306" format="default"/>. A PCE not
	    supporting a given endpoint type <bcp14>SHOULD</bcp14> respond
	    with a PCErr with Error-Type=4 (Not supported object) and
	    Error-value=7 (Unsupported endpoint type in END-POINTS
	    Generalized Endpoint object type).
            As per <xref target="RFC5440" format="default"/>, a PCE unable to
            process Generalized Endpoints may respond with
            Error-Type=3 (Unknown Object) and Error-value=2 (Unrecognized object
            type) or with Error-Type=4 (Not supported object) and
            Error-value=2 (Not supported object Type).

            The TLVs present in the request object body <bcp14>MUST</bcp14> follow
            the grammar per <xref target="RFC5511" format="default"/>:
          </t>

         <sourcecode type="rbnf"><![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>]]...
            ]]></sourcecode>
          <t>For endpoint type Point-to-Point, two endpoint TLVs <bcp14>MUST</bcp14>
   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-POINTS objects <bcp14>MAY</bcp14>
   be present in the message, and the exact meaning depends on the
   endpoint type defined for the object. The first endpoint TLV is the
   root, and other endpoint TLVs are the leaves. The root endpoint
   <bcp14>MUST</bcp14> be the same for all END-POINTS objects for that P2MP tree
   request.
   If the root endpoint is not the same for all END-POINTS, a
   PCErr with Error-Type=17 (P2MP END-POINTS Error) and Error-value=4 (The PCE cannot satisfy the
   request due to inconsistent END-POINTS) <bcp14>MUST</bcp14> be returned. The
   procedure defined in <xref target="RFC8306" sectionFormat="comma" section="3.10"/> also applies
   to the Generalized Endpoint with Point-to-Multipoint endpoint types.
          </t>
          <t>An endpoint is defined as follows:</t>
         <sourcecode type=""><![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>
        ]]></sourcecode>
          <t>The different TLVs are described in the following sections.  A PCE <bcp14>MAY</bcp14> support any or all of the IPV4-ADDRESS, IPV6-ADDRESS, and UNNUMBERED-ENDPOINT TLVs.


          When receiving a PCReq, a PCE unable to resolve the identifier in one of
          those TLVs <bcp14>MUST</bcp14> respond by using a PCRep with NO-PATH and setting the bit
          "Unknown destination" or "Unknown source" in the NO-PATH-VECTOR TLV.
          The response <bcp14>SHOULD</bcp14> include the END-POINTS object with only the unsupported TLV(s).
          </t>
          <t>
            A PCE <bcp14>MAY</bcp14> 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
            <bcp14>MUST</bcp14> respond with a PCErr message with Error-Type=4
            (Not supported object) and Error-value=8 (Unsupported TLV present
            in END-POINTS Generalized Endpoint object type), and the message
            <bcp14>SHOULD</bcp14> 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 fulfill the label restriction <bcp14>MUST</bcp14> send a
            response with a NO-PATH object that has the bit "No endpoint label
            resource" or "No endpoint label resource in range" set in the
            NO-PATH-VECTOR TLV.  The response <bcp14>SHOULD</bcp14> include an
            END-POINTS object containing only the TLV(s) related to the
            constraints the PCE could not meet.

          </t>
        </section>
    

        <section anchor="endpoints_tlvs" numbered="true" toc="default">
          <name>END-POINTS TLV Extensions</name>
          <t>All endpoint TLVs have the standard PCEP TLV header as defined in <xref target="RFC5440" sectionFormat="comma" section="7.1"/>. For the Generalized Endpoint object type, the TLVs <bcp14>MUST</bcp14> follow the ordering defined in <xref target="endpoints_generalized" format="default"/>. </t>
          <section anchor="endpoints_tlvs_ipv4" numbered="true" toc="default">
            <name>IPV4-ADDRESS TLV</name>
            <t>The IPV4-ADDRESS TLV (Type 39) represents a numbered endpoint
            using IPv4 numbering. The format of the TLV value is as follows:
            </t>
            <artwork name="" type="" align="left" alt=""><![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>
            <t>
            This TLV <bcp14>MAY</bcp14> be ignored, in which case a PCRep with NO-PATH <bcp14>SHOULD</bcp14> be returned, as described in <xref target="endpoints_generalized" format="default"/>.
            </t>
          </section>
          <section anchor="endpoints_tlvs_ipv6" numbered="true" toc="default">
            <name>IPV6-ADDRESS TLV</name>
            <t>The IPv6-ADDRESS TLV (Type 40) represents a numbered endpoint
            using IPV6 numbering.  The format of the TLV value is as follows:
            </t>
            <artwork name="" type="" align="left" alt=""><![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>
            <t>
            This TLV <bcp14>MAY</bcp14> be ignored, in which case a PCRep with NO-PATH <bcp14>SHOULD</bcp14> be returned, as described in <xref target="endpoints_generalized" format="default"/>.
            </t>
          </section>
          <section anchor="endpoints_tlvs_unnumbered-if" numbered="true" toc="default">
            <name>UNNUMBERED-ENDPOINT TLV</name>
            <t>The UNNUMBERED-ENDPOINT TLV (Type 41) represents an unnumbered interface. This TLV has the
            same semantic as in <xref target="RFC3477" format="default"/>.
            The TLV value is encoded as follows:
            </t>
            <artwork name="" type="" align="left" alt=""><![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>
            <t>
            This TLV <bcp14>MAY</bcp14> be ignored, in which case a PCRep with NO-PATH <bcp14>SHOULD</bcp14> be returned, as described in <xref target="endpoints_generalized" format="default"/>.
            </t>
          </section>
          <section anchor="endpoints_tlvs_label-request" numbered="true" toc="default">
            <name>LABEL-REQUEST TLV</name>

            <t>The LABEL-REQUEST TLV (Type 42) 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" sectionFormat="of"
            section="3.1"/> for the Generalized Label Request. The LSP
            Encoding Type field indicates the encoding type, e.g., SONET, SDH,
            GigE, etc., of the LSP with which the data is associated. The
            Switching Type field indicates the type of switching that is being
            requested on the endpoint. The Generalized Protocol Identifier
            (G-PID) field identifies the payload. This TLV and the following
            one are defined to satisfy requirement 13 in <xref
            target="RFC7025" sectionFormat="of" section="3.1"/> 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 <bcp14>MAY</bcp14> be ignored, in which case a PCRep with NO-PATH <bcp14>SHOULD</bcp14> be returned, as described in <xref target="endpoints_generalized" format="default"/>.
            </t>
          </section>

          <section anchor="endpoints_tlvs_labels" numbered="true" toc="default">
            <name>LABEL-SET TLV</name>


            <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 needs to be interpreted with a description on the
            encoding and switching type. The REQ-ADAP-CAP object <xref
            target="RFC8282" format="default"/> can be used in case of a
            mono-layer request; however, in case of a multi-layer request, 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
            <bcp14>MAY</bcp14> be ignored, in which case a response with
            NO-PATH <bcp14>SHOULD</bcp14> be returned, as described in <xref
            target="endpoints_generalized" format="default"/>.  Per <xref
            target="RFC5440" format="default"/>, the LABEL-SET TLV is encoded as follows.
            The type of the LABEL-SET TLV is 43. The TLV Length is
            variable, and the value encoding follows <xref target="RFC3471"
	    sectionFormat="of" section="3.5"/>, 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 as defined by <xref target="RFC3471" format="default"/>. 
                </t>
                <artwork name="" type="" align="left" alt=""><![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>
            <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 <bcp14>MUST</bcp14> 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" sectionFormat="comma" section="3.5.1"/>.
            </t>
            <t>
              The U, O, and L bits are defined as follows:
            </t>
                   
<ul spacing="normal" empty="true"><li>
<dl spacing="normal" indent="5">
                <dt>U:</dt>
                  <dd>Upstream direction. Set for the upstream (reverse)
                  direction in case of bidirectional LSP.</dd>
              
                <dt>O:</dt><dd>Old label. Set when the TLV represents the old
                (previously allocated) label in case of reoptimization.  The R
                bit of the RP object <bcp14>MUST</bcp14> be set to 1. If the L
                bit is set, this bit <bcp14>SHOULD</bcp14> be set to 0 and
                ignored on receipt.  When this bit is set, the Action field
                <bcp14>MUST</bcp14> be set to 0 (Inclusive List), and the
                 LABEL-SET <bcp14>MUST</bcp14> contain one subchannel.</dd>

               <dt>L:</dt><dd>Loose label. Set when the TLV indicates to the
               PCE that a set of preferred (ordered) labels are to be
               used. The PCE <bcp14>MAY</bcp14> use those labels for label
               allocation.  </dd></dl></li></ul>
              
            <t>
              Several LABEL_SET TLVs <bcp14>MAY</bcp14> be present with the O bit
              cleared; LABEL_SET TLVs with the L bit set can
              be combined with a LABEL_SET TLV with the L bit cleared.

              There <bcp14>MUST NOT</bcp14> be more than two LABEL_SET TLVs present with the
              O bit set. If there are two LABEL_SET TLVs present, there <bcp14>MUST NOT</bcp14>
              be more than one with the U bit set, and there <bcp14>MUST NOT</bcp14> 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 <bcp14>MUST</bcp14> be processed, and the following TLVs
              that have the same U and O bits <bcp14>MUST</bcp14> be ignored.

            </t>
            <t>
              A LABEL-SET TLV with the O and L bits set <bcp14>MUST</bcp14> trigger a
              PCErr message with Error-Type=10 (Reception of an invalid
              object) and Error-value=29 (Wrong LABEL-SET TLV present with O
              and L bits set).
            </t>
            <t>
              A LABEL-SET TLV that has the O bit set and an Action field
              not set to 0 (Inclusive List) or that contains more than
              one subchannel <bcp14>MUST</bcp14> trigger a PCErr message with Error-Type=10 (Reception of an invalid object) and Error-value=30 (Wrong
              LABEL-SET TLV present with O bit set and wrong format).
            </t>
            <t>If a LABEL-SET TLV is present with the O bit set, the R bit of
            the RP object <bcp14>MUST</bcp14> be set; otherwise, a PCErr
            message <bcp14>MUST</bcp14> be sent with Error-Type=10 (Reception
            of an invalid object) and Error-value=28 (LABEL-SET TLV
            present with O bit set but without R bit set in RP).</t>
          </section>
     
        </section>
   
      </section>

<section anchor="iro-label" numbered="true" toc="default">
        <name>IRO Extension</name>
        <t>The IRO as defined in <xref target="RFC5440" format="default"/> is used to
  include specific objects in the path. RSVP-TE allows the inclusion of a
  label definition. In order to fulfill requirement 13 in <xref target="RFC7025" sectionFormat="of" section="3.1"/>, the IRO needs to support the new subobject type as defined in <xref target="RFC3473" format="default"/>:
        </t>
        <table align="center">
          <thead>
            <tr>
              <th align="left">Type</th>
              <th align="left">Subobject</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">10</td>
              <td align="left">Label</td>
            </tr>
          </tbody>
        </table>
        <t>The Label subobject <bcp14>MUST</bcp14> 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 <bcp14>MUST</bcp14> be associated with
        a link.  More than one Label subobject <bcp14>MAY</bcp14> follow each
        subobject identifying a link.  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 <bcp14>MUST</bcp14> 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>

<section anchor="xro-label" numbered="true" toc="default">
        <name>XRO Extension</name>
        <t>The XRO as defined in <xref target="RFC5521" format="default"/> is used to
  exclude specific objects in the path. RSVP-TE allows the exclusion of certain
  labels <xref target="RFC6001" format="default"/>. In order to fulfill requirement
  13 in <xref target="RFC7025" sectionFormat="of" 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 ERO Label subobject defined in <xref target="RFC3473" format="default"/> and the XRO subobject defined in <xref target="RFC5521" format="default"/>. The
   XRO Label subobject (Type 10) represents one label and is defined as follows:
        </t>

        <artwork name="" type="" align="left" alt=""><![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=10  |    Length     |U|   Reserved  |   C-Type      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                             Label                             |
|                              ...                              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>

<dl newline="false" spacing="normal">
          <dt>X (1 bit):</dt><dd>See <xref target="RFC5521"
          format="default"/>.  The X bit indicates whether the exclusion is
          mandatory or desired.  0 indicates that the resource specified
          <bcp14>MUST</bcp14> be excluded from the path computed by the PCE. 1
          indicates that the resource specified <bcp14>SHOULD</bcp14> be
          excluded from the path computed by the PCE, but it
          <bcp14>MAY</bcp14> be included subject to the PCE policy and the
          absence of a viable path that meets the other constraints and
          excludes the resource.</dd>

          <dt>Type (7 bits):</dt><dd>The type of the XRO Label subobject is
	  10.</dd>

          <dt>Length (8 bits):</dt><dd>See <xref target="RFC5521"
          format="default"/>. The total length of the subobject in bytes
          (including the Type and Length fields). The length is always
          divisible by 4.</dd>

          <dt>U (1 bit):</dt><dd>See <xref target="RFC3471"
          sectionFormat="comma" section="6.1"/>.</dd>

          <dt>C-Type (8 bits):</dt><dd>The C-Type of the included Label object
	  as defined in <xref target="RFC3473" format="default"/>.</dd>

          <dt>Label:</dt><dd>See <xref target="RFC3471"
	  format="default"/>.</dd>
</dl>

        <t>
    The Label subobject <bcp14>MUST</bcp14> 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, the
   given IP address <bcp14>MUST</bcp14> be associated with a link. More than one
   label subobject <bcp14>MAY</bcp14> follow a subobject identifying a link.
        </t>
        <table align="center">
          <thead>
            <tr>
              <th align="left">Type</th>
              <th align="left">Subobject</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">10</td>
              <td align="left">Label</td>
            </tr>
          </tbody>
        </table>
      </section>

      <section anchor="lspa" numbered="true" toc="default">
        <name>LSPA Extensions</name>
        <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 fulfill requirement 7 in <xref target="RFC7025" sectionFormat="of" section="3.1"/> and requirement 3 in <xref target="RFC7025" sectionFormat="of" section="3.2"/>. This TLV contains the information of the PROTECTION object defined by <xref target="RFC4872" format="default"/> and can be used as a policy input.
          The LSPA object <bcp14>MAY</bcp14> carry a PROTECTION-ATTRIBUTE TLV
	(Type 44), which is defined as follows:</t>
        <artwork name="" type="" align="left" alt=""><![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>
        <t>The content is as defined in <xref target="RFC4872" sectionFormat="comma" section="14"/> and <xref target="RFC4873" sectionFormat="comma" section="6.1"/>.</t>
        <t>The LSP (protection) Flags field or the 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 <bcp14>OPTIONAL</bcp14> and <bcp14>MAY</bcp14> be ignored by the PCE. If ignored by the PCE, it
   <bcp14>MUST NOT</bcp14> include the TLV in the LSPA of the response.
        When the TLV is used by the PCE, an LSPA object and the PROTECTION-ATTRIBUTE TLV <bcp14>MUST</bcp14> be included in the response. Fields that were not considered <bcp14>MUST</bcp14> be set to 0.

        </t>
      </section>
      <section numbered="true" toc="default">
        <name>NO-PATH Object Extension</name>
        <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, the PCE <bcp14>MUST</bcp14>
          include a NO-PATH object in the PCRep message.

          The NO-PATH object <bcp14>MAY</bcp14> 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 anchor="no-path_bits" numbered="true" toc="default">
          <name>Extensions to NO-PATH-VECTOR TLV</name>
          <t>
            The modified NO-PATH-VECTOR TLV carrying the additional information
            is as follows:
          </t>

          <ul empty="true" spacing="normal"><li>
<dl spacing="normal">
            <dt>Bit number 18:</dt><dd>Protection Mismatch (1 bit). Specifies the mismatch of the protection type in the PROTECTION-ATTRIBUTE TLV in the request. </dd>
            <dt>Bit number 17:</dt><dd>No Resource (1 bit). Specifies that the resources are not currently sufficient to provide the path. </dd>
            <dt>Bit number 16:</dt><dd>Granularity not supported
              (1 bit). Specifies that the PCE is not able to provide a
              path with the requested granularity. </dd>
            <dt>Bit number 15:</dt><dd>No endpoint label resource (1 bit). Specifies that the PCE is not able to provide a path because of the endpoint label restriction.</dd>
            <dt>Bit number 14:</dt><dd>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. </dd>
            <dt>Bit number 13:</dt><dd>No label resource in range (1
            bit). Specifies that the PCE is not able to provide a path because
            of the label set restriction.</dd>
            <dt>Bit number 12:</dt><dd>LOAD-BALANCING could not be performed
            with the bandwidth constraints (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.</dd>

          </dl></li></ul>
        </section>
      </section>
    </section>


    <section anchor="error-codes" numbered="true" toc="default">
      <name>Additional Error-Types and Error-Values Defined</name>
      <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 and an
        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,
        which are related to GMPLS networks.

        For each PCEP error, an Error-Type and an Error-value are defined.
        Error-Types 1 to 10 are already defined in <xref target="RFC5440"
	format="default"/>. Additional Error-values are defined for
	Error-Types 4 and 10. A new Error-Type 29 (Path computation failure)
        is defined in this document.
      </t>
      <t>
        Error-Type 29 (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 those constraints,
        NO-PATH is to be used.
      </t>

        <table align="center">
          <thead>
            <tr>
              <th align="left">Error-Type</th>
              <th align="left">Meaning</th>
              <th align="left">Error-value</th>
            </tr>
          </thead>
          <tbody>

            <tr>
              <td align="left">4</td>
              <td align="left">Not supported object</td>
              <td></td>
            </tr>

            <tr>
              <td></td>
              <td></td>
              <td align="left">6: BANDWIDTH object type 3 or 4 not supported</td>
            </tr>
            <tr>
              <td></td>
              <td></td>
              <td align="left">7: Unsupported endpoint type in END-POINTS
              Generalized Endpoint object type</td>
            </tr>
            <tr>
              <td></td>
              <td></td>
              <td align="left">8: Unsupported TLV present in END-POINTS
              Generalized Endpoint object type</td>
            </tr>
            <tr>
              <td></td>
              <td></td>
              <td align="left">9: Unsupported granularity in the RP object
	      flags</td>
            </tr>

            <tr>
              <td align="left">10</td>
              <td align="left">Reception of an invalid object </td>
              <td></td>
            </tr>

            <tr>
              <td></td>
              <td></td>
              <td align="left">24: Bad BANDWIDTH object type 3 or 4</td>
            </tr>
            <tr>
              <td></td>
              <td></td>
              <td align="left">25: Unsupported LSP Protection Flags in
              PROTECTION-ATTRIBUTE TLV</td>

            </tr>
            <tr>
              <td></td>
              <td></td>
              <td align="left">26: Unsupported Secondary LSP Protection Flags
              in PROTECTION-ATTRIBUTE TLV</td>
            </tr>
            <tr>
              <td></td>
              <td></td>
              <td align="left">27: Unsupported Link Protection Type in
              PROTECTION-ATTRIBUTE TLV</td>
            </tr>
            <tr>
              <td></td>
              <td></td>
              <td align="left">28: LABEL-SET TLV present with O bit set but
              without R bit set in RP</td>
            </tr>
            <tr>
              <td></td>
              <td></td>
              <td align="left">29: Wrong LABEL-SET TLV present with O and L
	      bits set</td>
            </tr>
            <tr>
              <td></td>
              <td></td>
              <td align="left">30: Wrong LABEL-SET TLV present with O bit set and wrong
	      format</td>
            </tr>
            <tr>
              <td></td>
              <td></td>
              <td align="left">31: Missing GMPLS-CAPABILITY TLV</td>
            </tr>

            <tr>
              <td align="left">29</td>
              <td align="left">Path computation failure</td>
              <td></td>

            </tr>
            <tr>
              <td></td>
              <td></td>
              <td align="left">0: Unassigned</td>

            </tr>
            <tr>
              <td></td>
              <td></td>
              <td align="left">1: Unacceptable request message</td>

            </tr>
            <tr>
              <td></td>
              <td></td>
              <td align="left">2: Generalized bandwidth value not
	      supported</td>

            </tr>
            <tr>
              <td></td>
              <td></td>
              <td align="left">3: Label set constraint could not be met</td>

            </tr>
            <tr>
              <td></td>
              <td></td>
              <td align="left">4: Label constraint could not be met</td>

            </tr>
          </tbody>
        </table>

    </section>
    <section numbered="true" toc="default">
      <name>Manageability Considerations</name>
      <t>This section follows the guidance of <xref target="RFC6123" format="default"/>.</t>
      <section numbered="true" toc="default">
        <name>Control of Function through Configuration and Policy</name>
        <t>
          This document makes no change to the basic operation of PCEP, so
          the requirements described in
          <xref target="RFC5440" sectionFormat="comma" section="8.1"/> also apply to this document.
          In addition to those requirements, a PCEP implementation may allow the
          configuration of the following parameters:
        </t>
        <ul empty="false" spacing="normal">
          <li>Accepted RG in the RP object.</li>
          <li>Default RG to use (overriding the one present in the PCReq).</li>
          <li>Accepted BANDWIDTH object type 3 and 4 parameters in the
	  request and default mapping to use when not specified in the request.</li>
          <li>Accepted LOAD-BALANCING object type 2 parameters in request.</li>
          <li>Accepted endpoint type and allowed TLVs in object END-POINTS with the object type Generalized Endpoint.</li>

          <li>Accepted range for label restrictions in END-POINTS or IRO/XRO objects.</li>

          <li>Acceptance and suppression of the PROTECTION-ATTRIBUTE TLV.</li>
        </ul>
        <t>
          The configuration of the above parameters is applicable to the different sessions as described in <xref target="RFC5440" sectionFormat="comma" section="8.1"/> (by default, per PCEP peer, etc.).
          
        </t>
      </section>
      <section numbered="true" toc="default">
        <name>Information and Data Models</name>
        <t>
          This document makes no change to the basic operation of PCEP, so
          the requirements described in
          <xref target="RFC5440" sectionFormat="comma" section="8.2"/> also apply to this document.
          This document  does not introduce any new ERO subobjects; the ERO information model is already covered in <xref target="RFC4802" format="default"/>.
        </t>
      </section>
      <section numbered="true" toc="default">
        <name>Liveness Detection and Monitoring</name>
        <t>
          This document makes no change to the basic operation of PCEP, so
          there are no changes to the requirements for liveness detection and
          monitoring in <xref target="RFC4657" format="default"/> and <xref target="RFC5440" sectionFormat="comma" section="8.3"/>.
        </t>
      </section>
      <section numbered="true" toc="default">
        <name>Verifying Correct Operation</name>
        <t>
          This document makes no change to the basic operations of PCEP and the considerations described in <xref target="RFC5440" sectionFormat="comma" section="8.4"/>.
          New errors defined by this document should satisfy the requirement to log error events.
        </t>
      </section>
      <section numbered="true" toc="default">
        <name>Requirements on Other Protocols and Functional Components</name>
        <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 Groups can be adopted without modifying the operations defined in this document. </t>
      </section>
      <section numbered="true" toc="default">
        <name>Impact on Network Operation</name>
        <t>This document makes no change to the basic operations of PCEP and the considerations described in <xref target="RFC5440" sectionFormat="comma" section="8.6"/>.
        In addition to the limit on the rate of messages sent by a PCEP speaker, a limit <bcp14>MAY</bcp14> be placed on the size of the PCEP messages.
        </t>
      </section>
    </section>
    <section numbered="true" toc="default">



      <name>IANA Considerations</name>
      <t>
        IANA assigns values to PCEP objects and TLVs. IANA has
        made allocations for the newly defined objects and
        TLVs defined in this document. In addition, IANA manages
        the space of flags that have been newly added in the TLVs.
      </t>
      <section numbered="true" toc="default">
        <name>PCEP Objects</name>

        <t>New object types are defined in Sections <xref
        target="generalized-bandwidth" format="counter"/>, <xref
        target="generalized-load-balancing" format="counter"/>, and <xref
        target="endpoints_generalized" format="counter"/>.  IANA has made
        the following Object-Type allocations in the "PCEP Objects"
        subregistry.
        </t>


    <table anchor="iana_gen_bw" align="center">
          <thead>
            <tr>
              <th align="left">Object-Class Value</th>
              <th align="left">Name</th>
              <th align="left">Object-Type</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">5</td>
              <td align="left">BANDWIDTH</td>
              <td align="left">3: Generalized bandwidth</td>
              <td align="left">RFC 8779, <xref target="generalized-bandwidth" format="default"/></td>
            </tr>
            <tr>
              <td align="left"></td>
              <td align="left"></td>
              <td align="left">4: Generalized bandwidth of an existing TE-LSP
              for which a reoptimization is requested</td>
              <td align="left">RFC 8779, <xref target="generalized-bandwidth" format="default"/></td>
            </tr>
            <tr>
              <td align="left">14</td>
              <td align="left">LOAD-BALANCING</td>
              <td align="left">2: Generalized Load Balancing</td>
              <td align="left">RFC 8779, <xref target="generalized-load-balancing" format="default"/></td>
            </tr>
            <tr>
              <td align="left">4</td>
              <td align="left">END-POINTS</td>
              <td align="left">5: Generalized Endpoint</td>
              <td align="left">RFC 8779, <xref target="endpoints_extensions" format="default"/></td>
            </tr>
          </tbody>
        </table>    
      </section>

      <section numbered="true" toc="default">
        <name>Endpoint Type Field in the Generalized END-POINTS Object</name>
        <t>IANA has created a new "Generalized Endpoint Types" registry to
        manage the Endpoint Type field of the END-POINTS object, the object
        type Generalized Endpoint, and the code space.</t>
        <t>New endpoint types in the Unassigned range are assigned by
        Standards Action <xref target="RFC8126" format="default"/>. Each
        endpoint type should be tracked with the following attributes:
        </t>
        <ul spacing="normal">
          <li>Value</li>
          <li>Type</li>
          <li>Defining RFC</li>
        </ul>
        <t>New endpoint types in the Experimental Use range will not be
        registered with IANA and <bcp14>MUST NOT</bcp14> be mentioned by any
        RFCs.</t>

        <t>The following values are defined by this document
	   (see <xref target="endpoints_generalized_endpoint-type" format="default"/> in <xref target="endpoints_generalized" format="default"/>):</t>
        <table align="center">
          <thead>
            <tr>
              <th align="left">Value</th>
              <th align="left">Type</th>
   
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">0</td>
              <td align="left">Point-to-Point</td>
           
            </tr>
            <tr>
              <td align="left">1</td>
              <td align="left">Point-to-Multipoint with leaf type 1</td>
   
            </tr>
            <tr>
              <td align="left">2</td>
              <td align="left">Point-to-Multipoint with leaf type 2</td>
           
            </tr>
            <tr>
              <td align="left">3</td>
              <td align="left">Point-to-Multipoint with leaf type 3</td>
       
            </tr>
            <tr>
              <td align="left">4</td>
              <td align="left">Point-to-Multipoint with leaf type 4</td>
        
            </tr>
            <tr>
              <td align="left">5-244</td>
              <td align="left">Unassigned</td>
          
            </tr>
            <tr>
              <td align="left">245-255</td>
              <td align="left">Experimental Use</td>
            </tr>
          </tbody>
        </table>
      </section>


      <section anchor="iana-tlvs" numbered="true" toc="default">
        <name>New PCEP TLVs</name>
        <t>
	  IANA manages a registry for PCEP TLV code points (see <xref
	  target="RFC5440" format="default"/>), which
	  is maintained as the "PCEP TLV Type Indicators" subregistry of the
	  "Path Computation Element Protocol (PCEP) Numbers" registry.

	  IANA has allocated the following per this document:
      
        </t>
        <table align="center">
          <thead>
            <tr>
              <th align="center">Value</th>
              <th align="left">Meaning</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="center">39</td>
              <td align="left">IPV4-ADDRESS</td>
              <td align="left">RFC 8779, <xref target="endpoints_tlvs_ipv4" format="default"/></td>
            </tr>
            <tr>
              <td align="center">40</td>
              <td align="left">IPV6-ADDRESS</td>
              <td align="left">RFC 8779, <xref target="endpoints_tlvs_ipv6" format="default"/></td>
            </tr>
            <tr>
              <td align="center">41</td>
              <td align="left">UNNUMBERED-ENDPOINT</td>
              <td align="left">RFC 8779, <xref target="endpoints_tlvs_unnumbered-if" format="default"/></td>
            </tr>
            <tr>
              <td align="center">42</td>
              <td align="left">LABEL-REQUEST</td>
              <td align="left">RFC 8779, <xref target="endpoints_tlvs_label-request" format="default"/></td>
            </tr>
            <tr>
              <td align="center">43</td>
              <td align="left">LABEL-SET</td>
              <td align="left">RFC 8779, <xref target="endpoints_tlvs_labels" format="default"/></td>
            </tr>
            <tr>
              <td align="center">44 </td>
              <td align="left">PROTECTION-ATTRIBUTE</td>
              <td align="left">RFC 8779, <xref target="lspa" format="default"/></td>
            </tr>
            <tr>
              <td align="center">45</td>
              <td align="left">GMPLS-CAPABILITY</td>
              <td align="left">RFC 8779, <xref target="open-extensions" format="default"/></td>
            </tr>
          </tbody>
        </table>
      </section>

      <section numbered="true" toc="default">
        <name>RP Object Flag Field</name>

        <t>
	  A new flag is defined in <xref target="rp-extensions"
	  format="default"/> for the Flags field of the RP object.  IANA has
	  made the following allocation in the "RP Object Flag
	  Field" subregistry:

        </t>
        <table align="center">
          <thead>
            <tr>
              <th align="center">Bit</th>
              <th align="left">Description</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="center">15-16</td>
              <td align="left">Routing Granularity (RG)</td>
              <td align="left">RFC 8779, <xref target="rp-extensions" format="default"/></td>
            </tr>
          </tbody>
        </table>
      </section>

      <section numbered="true" toc="default">
        <name>New PCEP Error Codes</name>
        <t>New PCEP Error-Types and Error-values are defined in <xref
        target="error-codes" format="default"/>. IANA has made the
        following allocations in the "PCEP-ERROR Object Error Types and Values"
        registry:

        </t>
        <table align="center">
          <thead>
            <tr>
              <th align="left">Error-Type</th>
              <th align="left">Meaning</th>
              <th align="left">Error-value</th>              
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>

            <tr>
              <td align="left">4</td>
              <td align="left">Not supported object</td>
              <td></td>
              <td align="left"><xref target="RFC5440" format="default"/></td>
            </tr>

            <tr>
              <td></td>
              <td></td>
              <td align="left">6: BANDWIDTH object type 3 or 4 not supported</td>
              <td align="left">RFC 8779</td>
            </tr>
            <tr>
              <td></td>
              <td></td>
              <td align="left">7: Unsupported endpoint type in END-POINTS
              Generalized Endpoint object type</td>
              <td align="left">RFC 8779</td>
            </tr>
            <tr>
              <td></td>
              <td></td>
              <td align="left">8: Unsupported TLV present in END-POINTS
              Generalized Endpoint object type</td>
              <td align="left">RFC 8779</td>
            </tr>
            <tr>
              <td></td>
              <td></td>
              <td align="left">9: Unsupported granularity in the RP object flags</td>
              <td align="left">RFC 8779</td>
            </tr>

            <tr>
              <td align="left">10</td>
              <td align="left">Reception of an invalid object </td>
              <td></td>
              <td align="left"><xref target="RFC5440" format="default"/></td>
            </tr>

            <tr>
              <td></td>
              <td></td>
              <td align="left">24: Bad BANDWIDTH object type 3 or 4</td>
              <td align="left">RFC 8779</td>
            </tr>
            <tr>
              <td></td>
              <td></td>
              <td align="left">25: Unsupported LSP Protection Flags in
              PROTECTION-ATTRIBUTE TLV</td>
              <td align="left">RFC 8779</td>
            </tr>
            <tr>
              <td></td>
              <td></td>
              <td align="left">26: Unsupported Secondary LSP Protection Flags
              in PROTECTION-ATTRIBUTE TLV</td>
              <td align="left">RFC 8779</td>
            </tr>
            <tr>
              <td></td>
              <td></td>
              <td align="left">27: Unsupported Link Protection Type in
              PROTECTION-ATTRIBUTE TLV</td>
              <td align="left">RFC 8779</td>
            </tr>
            <tr>
              <td></td>
              <td></td>
              <td align="left">28: LABEL-SET TLV present with O bit set but
              without R bit set in RP</td>
              <td align="left">RFC 8779</td>
            </tr>
            <tr>
              <td></td>
              <td></td>
              <td align="left">29: Wrong LABEL-SET TLV present with O and L bits set</td>
              <td align="left">RFC 8779</td>
            </tr>
            <tr>
              <td></td>
              <td></td>
              <td align="left">30: Wrong LABEL-SET TLV present with O bit set and wrong format</td>
              <td align="left">RFC 8779</td>
            </tr>
            <tr>
              <td></td>
              <td></td>
              <td align="left">31: Missing GMPLS-CAPABILITY TLV</td>
              <td align="left">RFC 8779</td>
            </tr>

            <tr>
              <td align="left">29</td>
              <td align="left">Path computation failure</td>
              <td></td>
              <td align="left">RFC 8779</td>
            </tr>
            <tr>
              <td></td>
              <td></td>
              <td align="left">0: Unassigned</td>
              <td align="left">RFC 8779</td>
            </tr>
            <tr>
              <td></td>
              <td></td>
              <td align="left">1: Unacceptable request message</td>
              <td align="left">RFC 8779</td>
            </tr>
            <tr>
              <td></td>
              <td></td>
              <td align="left">2: Generalized bandwidth value not supported</td>
              <td align="left">RFC 8779</td>
            </tr>
            <tr>
              <td></td>
              <td></td>
              <td align="left">3: Label set constraint could not be met</td>
              <td align="left">RFC 8779</td>
            </tr>
            <tr>
              <td></td>
              <td></td>
              <td align="left">4: Label constraint could not be met</td>
              <td align="left">RFC 8779</td>
            </tr>
          </tbody>
        </table>
      </section>

      <section numbered="true" toc="default">
        <name>New Bits in NO-PATH-VECTOR TLV</name>
        <t>New NO-PATH-VECTOR TLV bits are defined in <xref
        target="no-path_bits" format="default"/>.  IANA has made the
        following allocations in the "NO-PATH-VECTOR TLV Flag Field"
        subregistry:
        </t>


<table anchor="no-path-vector-iana">
  <thead>
    <tr>
      <th>Bit</th> 
      <th>Description</th>
      <th>Reference</th>
    </tr>
  </thead>
  <tbody>          
    <tr>
      <td>18</td>
      <td>Protection Mismatch</td>
      <td>RFC 8779</td>
    </tr>
    <tr>
      <td>17</td>
      <td>No Resource</td>
      <td>RFC 8779</td>
    </tr>
    <tr>
      <td>16</td>
      <td>Granularity not supported</td>
      <td>RFC 8779</td>
    </tr>
    <tr>
      <td>15</td>
      <td>No endpoint label resource</td>
      <td>RFC 8779</td>
    </tr>
    <tr>
      <td>14</td>
      <td>No endpoint label resource in range</td>
      <td>RFC 8779</td>
    </tr>
    <tr>
      <td>13</td>
      <td>No label resource in range</td>
      <td>RFC 8779</td>
    </tr>
    <tr>
      <td>12</td>
      <td>LOAD-BALANCING could not be performed with the bandwidth constraints</td>
      <td>RFC 8779</td>
    </tr>
  </tbody>
</table>

      </section>
      <section numbered="true" toc="default">
        <name>New Subobject for the Include Route Object</name>
        <t>IANA has added a new subobject in the "IRO Subobjects" subregistry of the
   "Path Computation Element Protocol (PCEP) Numbers" registry.</t>
        <t>
          IANA has added a new subobject that can be carried in the IRO as
          follows:
        </t>
        <table align="center">
          <thead>
            <tr>
              <th align="left">Value</th>
              <th align="left">Description</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">10</td>
              <td align="left">Label</td>
              <td align="left">RFC 8779</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section numbered="true" toc="default">
        <name>New Subobject for the Exclude Route Object</name>
        <t>IANA has added a new subobject in the "XRO Subobjects" subregistry of the
        "Path Computation Element Protocol (PCEP) Numbers" registry.</t>
        <t>
          IANA has added a new subobject that can be carried in the XRO as
          follows:
        </t>
        <table align="center">
          <thead>
            <tr>
              <th align="left">Value</th>
              <th align="left">Description</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">10</td>
              <td align="left">Label</td>
              <td align="left">RFC 8779</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section numbered="true" toc="default">
        <name>New GMPLS-CAPABILITY TLV Flag Field</name>
        <t>IANA has created a new "GMPLS-CAPABILITY TLV Flag Field"
        subregistry within the "Path Computation Element Protocol (PCEP)
        Numbers" registry to manage the Flag field of the GMPLS-CAPABILITY TLV.</t>
        <t>New bit numbers are to be assigned by Standards Action <xref target="RFC8126" format="default"/>. 
   Each bit should be tracked with the following qualities:
        </t>
        <ul spacing="normal">
          <li>Bit number (counting from bit 0 as the most significant bit)</li>
          <li>Capability description</li>
          <li>Defining RFC</li>
        </ul>
        <t>The initial contents of the subregistry are empty, with bits 0-31
   marked as Unassigned.</t>
      </section>
    </section>
    <section numbered="true" toc="default">
      <name>Security Considerations</name>
      <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; thus, it is important to ensure the identity of the 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. There are three main
	situations in case an attack in the GMPLS PCE context happens:
      </t>
      <ul spacing="normal" empty="true">
        <li>
<dl spacing="normal">
	    <dt>PCE Identity theft:</dt><dd>A legitimate PCC could request a path for a GMPLS LSP to
	    a malicious PCE, which poses as a legitimate PCE.
            The response may be 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 and avoiding some SRLGs), which could make
	    the LSP that will be set up later look perfectly fine, but it 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.</dd>
	 
        <dt>
	    PCC Identity theft:</dt><dd>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 learn enough details to plan a later physical
	    attack.
	 </dd>
        <dt>
	    Message inspection:</dt><dd>As in the previous case, knowledge of an infrastructure can
	    be obtained by sniffing PCEP messages.
	 </dd></dl></li>
      </ul>
      <t>

	The security mechanisms can provide authentication and
        confidentiality for those scenarios where PCC-PCE communication
        cannot be completely trusted.  <xref target="RFC8253" format="default"/> provides origin
        verification, message integrity, and replay protection, and it 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
        <bcp14>SHOULD</bcp14> have policies in place to accept or not accept the path provided by
        the PCE. Those policies can verify if the path follows the provided
        constraints. In addition, a technology-specific data-plane mechanism
        can be used (following <xref target="RFC5920" sectionFormat="comma" section="5.8"/>) to verify the data-plane connectivity and deviation from constraints.
      </t>
      <t>
	The usage of Transport Layer
	Security (TLS) to enhance PCEP security is described in <xref target="RFC8253" format="default"/>. The document describes the initiation
	of 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 <bcp14>SHOULD</bcp14> use the mechanism in <xref target="RFC8253" format="default"/> to protect against malicious
        PCC and PCE.
      </t>
      <t>
	Finally, as mentioned by <xref target="RFC7025" format="default"/>, the PCEP extensions that 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 an overview of the security considerations, not only related to PCE/PCEP, and vulnerabilities of a GMPLS control plane, see <xref target="RFC5920" format="default"/>.
      </t>
    </section>
  
  </middle>


 <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>

        <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 
            </title>
            <author>
              <organization>ITU-T</organization>
            </author>
            <date year="2016" month="June"/>
          </front>
         <refcontent>Recommendation G.709/Y.1331</refcontent>
        </reference>
        <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/>
        <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2210.xml"/>
        <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.3209.xml"/>
        <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.3471.xml"/>
        <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.3473.xml"/>
        <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.3477.xml"/>
        <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.3630.xml"/>
        <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.4003.xml"/>
        <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.4328.xml"/>
        <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.4606.xml"/>
        <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.4802.xml"/>
        <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.4872.xml"/>
        <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.4873.xml"/>
        <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5088.xml"/>
        <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5089.xml"/>
        <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5440.xml"/>
        <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5511.xml"/>
        <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5520.xml"/>
        <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5521.xml"/>
        <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5541.xml"/>
        <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6001.xml"/>
        <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6003.xml"/>
        <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6205.xml"/>
        <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6387.xml"/>
        <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7570.xml"/>
        <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7139.xml"/>
        <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7792.xml"/>
        <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8126.xml"/>
        <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"/>
        <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8253.xml"/>
        <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8282.xml"/>
        <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8306.xml"/>
      </references>
      <references>
        <name>Informative References</name>
        <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.4655.xml"/>
        <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.4657.xml"/>
        <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5920.xml"/>
        <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6123.xml"/>
        <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6163.xml"/>
        <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7025.xml"/>
        <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7449.xml"/>
      </references>
    </references>
    <section anchor="appendix" numbered="true" toc="default">
      <name>LOAD-BALANCING Usage for SDH Virtual Concatenation</name>
      <t>As an example, a request for one co-signaled n x VC-4 TE-LSP
      will not use LOAD-BALANCING. 
      In case the VC-4 components can
      use different paths, the BANDWIDTH with object type 3 will
      contain the complete n x VC-4 traffic specification,
      and the LOAD-BALANCING object will contain the minimum
      co-signaled VC-4.
      For an SDH network, a request for a TE-LSP group with 10 VC-4 
   containers, with each path using at minimum 2 x VC-4 containers, can 
   be represented with a BANDWIDTH object with object type 3, the Bw Spec Type 
   set to 4, and the content of the Generalized Bandwidth field with ST=6, 
   RCC=0, NCC=0, NVC=10, and MT=1.

    The LOAD-BALANCING with object type 2 with the Bw Spec Type set
    to 4 and Max-LSP=5, Min Bandwidth Spec is ST=6, RCC=0, NCC=0, NVC=2, MT=1.
 
      The PCE can respond with a maximum of 5 paths, with each path having a 
      BANDWIDTH object type 3 and a Generalized Bandwidth field matching the Min Bandwidth 
      Spec from the LOAD-BALANCING object of the corresponding request.</t>
    </section>


  <section numbered="false" toc="default">
      <name>Acknowledgments</name>
      <t>
        The research of <contact fullname="Ramon Casellas"/>, <contact
        fullname="Francisco Javier Jimenez Chico"/>, <contact fullname="Oscar
        Gonzalez de Dios"/>, <contact fullname="Cyril Margaria"/>, and
        <contact fullname="Franz Rambach"/> that led to the results in this
        document 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 <contact fullname="Julien Meuric"/>,
        <contact fullname="Lyndon Ong"/>, <contact fullname="Giada Lander"/>,
        <contact fullname="Jonathan Hardwick"/>, <contact fullname="Diego
        Lopez"/>, <contact fullname="David Sinicrope"/>, <contact
        fullname="Vincent Roca"/>, <contact fullname="Dhruv Dhody"/>, <contact
        fullname="Adrian Farrel"/>, and <contact fullname="Tianran Zhou"/> for
        their review and useful comments.
      </t>

      <t> Thanks to <contact fullname="Alisa Cooper"/>, <contact
      fullname="Benjamin Kaduk"/>, <contact fullname="Elwyn Davies"/>,
      <contact fullname="Martin Vigoureux"/>, <contact fullname="Roman
      Danyliw"/>, and <contact fullname="Suresh Krishnan"/> for the
      IESG-related comments.</t>
    </section>

  <section numbered="false" toc="default">
      <name>Contributors</name>

 <contact fullname="Elie Sfeir" >
        <organization>Coriant</organization>
        <address>
          <postal>
            <street>St. Martin Strasse 76</street>
            <city>Munich</city>
            <region></region><code>81541</code>
            <country>Germany</country>
          </postal>
          <email>elie.sfeir@coriant.com</email>
        </address>
      </contact>

<contact fullname="Franz Rambach" >
        <organization></organization>
        <address>
          <postal>
            <street>Nockherstrasse 2-4</street>
            <city>Munich</city>
            <region></region><code>81541</code>
            <country>Germany</country>
          </postal>
          <phone>+49 178 8855738</phone>
          <email>franz.rambach@cgi.com</email>
        </address>
      </contact>

 <contact fullname="Francisco Javier Jimenez Chico" >
        <organization>Telefonica Investigacion y Desarrollo</organization>
        <address>
          <postal>
            <street>C/ Emilio Vargas 6</street>
            <city>Madrid</city>
            <region></region><code>28043</code>
            <country>Spain</country>
          </postal>
          <phone>+34 91 3379037</phone>
          <email>fjjc@tid.es</email>
        </address>
      </contact>

 <contact fullname="Suresh Babu" >
        <organization></organization>
        <address>
          <postal>
            <street></street>
            <city></city>
            <region></region><code></code>
            <country></country>
          </postal>
          <email>sureshhimnish@gmail.com</email>
        </address>
      </contact>

 <contact fullname="Young Lee" >
        <organization>Samsung Electronics</organization>
        <address>
          <postal>
            <street></street>
            <city></city>
            <region></region><code></code>
            <country></country>
          </postal>
          <phone></phone>
          <email>younglee.tx@gmail.com</email>
        </address>
      </contact>

 <contact fullname="Senthil Kumar S" >
        <organization></organization>
        <address>
          <postal>
            <street></street>
            <city></city>
            <region></region><code></code>
            <country></country>
          </postal>
          <email>ssenthilkumar@gmail.com</email>
        </address>
      </contact>

 <contact fullname="Jun Sun" >
        <organization>Huawei Technologies</organization>
        <address>
          <postal>
            <street></street>
            <city>Shenzhen</city>
            <region></region><code></code>
            <country>China</country>
          </postal>
          <email>johnsun@huawei.com</email>
        </address>
      </contact>

 <contact fullname="Ramon Casellas" >
        <organization>CTTC - Centre Tecnologic de Telecomunicacions de Catalunya</organization>
        <address>
          <postal>
            <street>PMT Ed B4 Av. Carl Friedrich Gauss 7</street>
            <city>Castelldefels,</city>
            <region>Barcelona</region><code>08660</code>
            <country>Spain</country>
          </postal>
            <phone>+34 93 6452916</phone>
          <email>ramon.casellas@cttc.e</email>
        </address>
      </contact>
    </section>

  </back>
</rfc>
