<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-pce-iana-update-03" number="9756" category="std" consensus="true" submissionType="IETF" updates="5440, 8231, 8233, 8281, 8623, 8664, 8685, 8697, 8733, 8745, 8779, 8780, 8800, 8934, 9050, 9059, 9168, 9357, 9504, 9603, 9604" obsoletes="" tocInclude="true" sortRefs="true" symRefs="true" version="3" xml:lang="en">

  <front>
    <title abbrev="PCEP IANA Update">Update to the IANA Path Communication Element Protocol
    (PCEP) Numbers Registration Procedures and the Allowance of Experimental Error
    Codes</title>
    <seriesInfo name="RFC" value="9756"/>
    <author initials="D." surname="Dhody" fullname="Dhruv Dhody">
      <organization>Huawei</organization>
      <address>
        <postal>
          <country>India</country>
        </postal>
        <email>dhruv.ietf@gmail.com</email>
      </address>
    </author>
    <author initials="A." surname="Farrel" fullname="Adrian Farrel">
      <organization>Old Dog Consulting</organization>
      <address>
        <email>adrian@olddog.co.uk</email>
      </address>
    </author>
    <date month="March" year="2025"/>
    <area>RTG</area>
    <workgroup>pce</workgroup>
    <abstract>
      <t>This document updates the registration procedure within the IANA "Path Computation Element Protocol (PCEP) Numbers" registry group. This specification changes some of the registries with Standards Action to IETF Review as defined in RFC 8126 and thus updates RFCs 8231, 8233, 8281, 8623, 8664, 8685, 8697, 8733, 8745, 8779, 8780, 8800, 8934, 9050, 9059, 9168, 9357, 9504, 9603, and 9604.</t>
      <t>Designating "experimental use" sub-ranges within codepoint registries is often beneficial for protocol experimentation in controlled environments. Although the registries for PCEP messages, objects, and TLV types have sub-ranges assigned for Experimental Use, the registry for PCEP Error-Types and Error-values currently does not. This document updates RFC 5440 by designating a specific range of PCEP Error-Types for Experimental Use.</t>
    </abstract>
  </front>
  <middle>


<section anchor="introduction">
      <name>Introduction</name>
      <t>The IANA "Path Computation Element Protocol (PCEP) Numbers" registry group was populated by several RFCs produced by the Path Computation Element (PCE) Working Group. Most of the registries include IETF Review <xref target="RFC8126"/> as the registration procedure. There are a few registries that use Standards Action. Thus, the values in those registries can be assigned only through the Standards Track or Best Current Practice RFCs in the IETF Stream. This memo changes the policy from Standards Action to IETF Review to allow any type of RFC under the IETF Stream to make the allocation request.</t>
      <t>Further, in <xref section="9" sectionFormat="of" target="RFC5440"/>, IANA assigns values to the PCEP parameters.  The allocation policy for each of these parameters specified in <xref target="RFC5440"/> is IETF Review <xref target="RFC8126"/>. In consideration of the benefits of conducting experiments with PCEP and the utility of experimental codepoints <xref target="RFC3692"/>, codepoint ranges for PCEP messages, objects, and TLV types for Experimental Use <xref target="RFC8126"/> are designated in <xref target="RFC8356"/>. However, protocol experiments may also need to return protocol error messages indicating experiment-specific error cases.
It will often be that previously assigned error codes (in the "PCEP-ERROR Object Error Types and Values" registry) can be used to indicate the error cases within an experiment, but there may also be instances where new, experimental error codes are needed. In order to run experiments, it is important that the codepoint values used in the experiments do not collide with existing codepoints or any future allocations. This document updates <xref target="RFC5440"/> by changing the allocation policy for the registry of PCEP Error-Types to mark some of the codepoints as assigned for Experimental Use.  As stated in <xref target="RFC3692"/>, experiments using these codepoints are not intended to be used in general deployments, and due care must be taken to ensure that two experiments using the same codepoints are not run in the same environment.</t>
    </section>
    <section anchor="standards-action-pcep-registries-affected">
      <name>Standards Action PCEP Registries Affected</name>
      <t>The following table lists the registries under the "Path Computation Element Protocol (PCEP) Numbers" registry group whose registration policies have been changed from Standards Action to IETF Review. The affected registries list this document as an additional reference. Where this change has been applied to a specific range of values within the particular registry, that range is given in the Remarks column.</t>
      <table>
        <name>PCEP Registries Affected</name>
        <thead>
          <tr>
            <th>Registry</th>
            <th>RFC</th>
            <th>Remarks</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td>BU Object Type Field</td>
            <td><xref target="RFC8233"/></td>
            <td></td>
          </tr>
          <tr>
            <td>LSP Object Flag Field</td>
            <td>
              <xref target="RFC8231"/></td>
            <td></td>
          </tr>
          <tr>
            <td>STATEFUL-PCE-CAPABILITY TLV Flag Field</td>
            <td>
              <xref target="RFC8231"/></td>
            <td></td>
          </tr>
          <tr>
            <td>LSP-ERROR-CODE TLV Error Code Field</td>
            <td>
              <xref target="RFC8231"/></td>
            <td></td>
          </tr>
          <tr>
            <td>SRP Object Flag Field</td>
            <td>
              <xref target="RFC8281"/></td>
            <td></td>
          </tr>
          <tr>
            <td>SR-ERO Flag Field</td>
            <td>
              <xref target="RFC8664"/></td>
            <td></td>
          </tr>
          <tr>
            <td>PATH-SETUP-TYPE-CAPABILITY Sub-TLV Type Indicators</td>
            <td>
              <xref target="RFC8664"/></td>
            <td></td>
          </tr>
          <tr>
            <td>SR Capability Flag Field</td>
            <td>
              <xref target="RFC8664"/></td>
            <td></td>
          </tr>
          <tr>
            <td>WA Object Flag Field</td>
            <td>
              <xref target="RFC8780"/></td>
            <td></td>
          </tr>
          <tr>
            <td>Wavelength Restriction TLV Action Values</td>
            <td>
              <xref target="RFC8780"/></td>
            <td></td>
          </tr>
          <tr>
            <td>Wavelength Allocation TLV Flag Field</td>
            <td>
              <xref target="RFC8780"/></td>
            <td></td>
          </tr>
          <tr>
            <td>S2LS Object Flag Field</td>
            <td>
              <xref target="RFC8623"/></td>
            <td></td>
          </tr>
          <tr>
            <td>H-PCE-CAPABILITY TLV Flag Field</td>
            <td>
              <xref target="RFC8685"/></td>
            <td></td>
          </tr>
          <tr>
            <td>H-PCE-FLAG TLV Flag Field</td>
            <td>
              <xref target="RFC8685"/></td>
            <td></td>
          </tr>
          <tr>
            <td>ASSOCIATION Flag Field</td>
            <td>
              <xref target="RFC8697"/></td>
            <td></td>
          </tr>
          <tr>
            <td>ASSOCIATION Type Field</td>
            <td>
              <xref target="RFC8697"/></td>
            <td></td>
          </tr>
          <tr>
            <td>AUTO-BANDWIDTH-CAPABILITY TLV Flag Field</td>
            <td>
              <xref target="RFC8733"/></td>
            <td></td>
          </tr>
          <tr>
            <td>Path Protection Association Group TLV Flag Field</td>
            <td>
              <xref target="RFC8745"/></td>
            <td></td>
          </tr>
          <tr>
            <td>Generalized Endpoint Types</td>
            <td>
              <xref target="RFC8779"/></td>
            <td>0-244</td>
          </tr>
          <tr>
            <td>GMPLS-CAPABILITY TLV Flag Field</td>
            <td>
              <xref target="RFC8779"/></td>
            <td></td>
          </tr>
          <tr>
            <td>DISJOINTNESS-CONFIGURATION TLV Flag Field</td>
            <td>
              <xref target="RFC8800"/></td>
            <td></td>
          </tr>
          <tr>
            <td>SCHED-PD-LSP-ATTRIBUTE TLV Opt Field</td>
            <td>
              <xref target="RFC8934"/></td>
            <td></td>
          </tr>
          <tr>
            <td>Schedule TLVs Flag Field</td>
            <td>
              <xref target="RFC8934"/></td>
            <td></td>
          </tr>
          <tr>
            <td>FLOWSPEC Object Flag Field</td>
            <td>
              <xref target="RFC9168"/></td>
            <td></td>
          </tr>
          <tr>
            <td>Bidirectional LSP Association Group TLV Flag Field</td>
            <td>
              <xref target="RFC9059"/></td>
            <td></td>
          </tr>
          <tr>
            <td>PCECC-CAPABILITY sub-TLV</td>
            <td>
              <xref target="RFC9050"/></td>
            <td></td>
          </tr>
          <tr>
            <td>CCI Object Flag Field for MPLS Label</td>
            <td>
              <xref target="RFC9050"/></td>
            <td></td>
          </tr>
          <tr>
            <td>TE-PATH-BINDING TLV BT Field</td>
            <td>
              <xref target="RFC9604"/></td>
            <td></td>
          </tr>
          <tr>
            <td>TE-PATH-BINDING TLV Flag Field</td>
            <td>
              <xref target="RFC9604"/></td>
            <td></td>
          </tr>
          <tr>
            <td>LSP-EXTENDED-FLAG TLV Flag Field</td>
            <td>
              <xref target="RFC9357"/></td>
            <td></td>
          </tr>
          <tr>
            <td>LSP Exclusion Subobject Flag Field</td>
            <td>
              <xref target="RFC9504"/></td>
            <td></td>
          </tr>
          <tr>
            <td>SRv6-ERO Flag Field</td>
            <td>
              <xref target="RFC9603"/></td>
            <td></td>
          </tr>
          <tr>
            <td>SRv6 Capability Flag Field</td>
            <td>
              <xref target="RFC9603"/></td>
            <td></td>
          </tr>
        </tbody>
      </table>
      <t>Future registries in the "Path Computation Element Protocol (PCEP) Numbers" registry group should prefer to use IETF Review over Standards Action.</t>
    </section>
    <section anchor="experimental-error-types">
      <name>Experimental Error-Types</name>
      <t>Per this document, IANA has designated four PCEP Error-Type codepoints (252-255) for Experimental Use.</t>
      <t>IANA maintains the "PCEP-ERROR Object Error Types and Values" registry under the "Path Computation Element Protocol (PCEP) Numbers" registry group.  IANA has changed the assignment policy for the "PCEP-ERROR Object Error Types and Values" registry as follows:</t>

<table align="center">
  <name>PCEP-ERROR Object Error Types and Values Registry 
  Assignment Policy</name>
  <thead>
    <tr>
      <th>Range</th>
      <th>Registration Procedures</th>
      <th>Note</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>0-251</td>
      <td>IETF Review</td>
      <td>The IETF Review procedure applies to all 
      Error-values (0-255) for Error-Types in 
      this range.</td>
    </tr>
    <tr>
      <td>252-255</td>
      <td>Experimental Use</td>
      <td>The Experimental Use policy applies to all 
      Error-values (0-255) for Error-Types in 
      this range.</td>
    </tr>
  </tbody>
</table>

      <t>Furthermore, IANA has added the following entry to the registry:</t>

<table align="center">
  <name>PCEP-ERROR Object Error Types and Values Registry</name>
        <thead>
          <tr>
            <th>Error-Type</th>
            <th>Meaning</th>
            <th>Error-value</th>
            <th>Reference</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td>252-255</td>
            <td>Reserved for Experimental Use</td>
            <td>0-255: Reserved for Experimental Use</td>
            <td>RFC 9756</td>
          </tr>
        </tbody>
      </table>
      <section anchor="advice-on-experimentation">
        <name>Advice on Experimentation</name>
        <t>An experiment that wishes to return experimental error codes should use one of the experimental Error-Type values as defined in this document. The experiment should agree on, between all participating parties, which Error-Type to use and which Error-values to use within that Error-Type. The experiment will describe what the meanings of those Error-Type/Error-value pairs are. Those Error-Types and Error-values should not be recorded in any public (especially any IETF) documentation. Textual or symbolic names for the Error-Types and Error-values may be used to help keep the documentation clear.</t>
        <t>If multiple experiments are taking place at the same time using the same implementations, care must be taken to keep the sets of Error-Types/Error-values distinct.</t>
        <t>Note that there is no scope for experimental Error-values within existing non-experimental Error-Types. This reduces the complexity of the registry and implementations. Experiments should place all experimental Error-values under the chosen experimental Error-Types.</t>
        <t>If, at some future time, the experiment is declared a success and moved to IETF work targeting publication on the Standards Track, each pair of Error-Types/Error-values will need to be assigned by IANA from the registry. In some cases, this will involve assigning a new Error-Type with its subtended Error-values. In other cases, use may be made of an existing Error-Type with new subtended Error-values being assigned. The resulting change to code in an implementation is as simple as changing the numeric values of the Error-Types and Error-values.</t>
      </section>
      <section anchor="handling-of-unknown-experimentation">
        <name>Handling of Unknown Experimentation</name>
        <t>A PCEP implementation that receives an experimental Error-Type in a PCEP message and does not recognize the Error-Type (i.e., is not part of the experiment) will treat the error as it would treat any other unknown Error-Type (such as from a new protocol extension). An implementation that is notified of a PCEP error will normally close the PCEP session (see <xref target="RFC5440"/>). In general, PCEP implementations are not required to take specific action based on Error-Types but may log the errors for diagnostic purposes.</t>
        <t>An implementation that is part of an experiment may receive an experimental Error-Type but not recognize the Error-value. This could happen because of any of the following reasons:</t>
        <ul spacing="normal">
          <li>
            <t>a faulty implementation</t>
          </li>
          <li>
            <t>two implementations not being synchronized with respect to which Error-values to use in the experiment</t>
          </li>
          <li>
            <t>more than one experiment being run at the same time</t>
          </li>
        </ul>
        <t>As with unknown Error-Types, an implementation receiving an unknown Error-value is not expected to do more than log the received error and may close the PCEP session.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This memo is entirely about updating the IANA "Path Computation Element Protocol (PCEP) Numbers" registry group.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>This memo does not change the security considerations for any of the updated RFCs. Refer to <xref target="RFC5440"/> and <xref target="I-D.ietf-pce-pceps-tls13"/> for further details of the specific security measures applicable to PCEP.</t>
      <t><xref target="RFC3692"/> asserts that the existence of experimental codepoints introduces no new security considerations. However, implementations accepting experimental error codepoints need to consider how they parse and process them in case they come, accidentally, from another experiment. Further, an implementation accepting experimental codepoints needs to consider the security aspects of the experimental extensions. <xref target="RFC6709"/> provides various design considerations for protocol extensions (including those designated as experimental).</t>
    </section>
  </middle>
  <back>
    <displayreference target="I-D.ietf-pce-pceps-tls13" to="PCEPS-UPDATES"/>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5440.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8126.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8231.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8233.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8281.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8356.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8623.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8664.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8685.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8697.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8733.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8745.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8779.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8780.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8800.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8934.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9050.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9059.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9168.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9357.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9504.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9603.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9604.xml"/>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3692.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6709.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-pce-pceps-tls13.xml"/>
      </references>
    </references>

    <section anchor="rationale-for-updating-all-registries-with-standards-action">
      <name>Rationale for Updating All Registries with Standards Action</name>
      <t>This specification updates all the mentioned registries with the Standards Action policy. The PCE WG considered keeping Standards Action for some registries, such as flag fields with limited bits where the space is tight, but decided against it. The Working Group Last Call and IETF Last Call processes should be enough to handle the case of frivolous experiments taking over the few codepoints. The working group could also create a new protocol field and registry for future use as done in the past (see <xref target="RFC9357"/>).</t>
    </section>
    <section anchor="consideration-of-rfc-8356">
      <name>Consideration of RFC 8356</name>
      <t>It is worth noting that <xref target="RFC8356"/> deliberately chose to make experimental codepoints available only in the PCEP messages, objects, and TLV type registries. <xref section="A" sectionFormat="of" target="RFC8356"/> gives a brief explanation of why that decision was taken, stating that:</t>
      <blockquote>
        <t>The justification for this decision is that, if an
experiment finds that it wants to use a new codepoint in another PCEP
sub-registry, it can implement the same function using a new
experimental object or TLV instead.</t>
      </blockquote>
      <t>While it is true that an experimental implementation could assign an experimental PCEP object and designate it the "experimental errors object", using it to carry arbitrary contents including experimental error codes, such an approach would cause unnecessary divergence in the code.  The allowance of experimental Error-Types is a better approach that will more easily enable the migration of successful experiments onto the Standards Track.</t>
    </section>

<section anchor="acknowledgements" numbered="false">
      <name>Acknowledgements</name>
      <t>Thanks to <contact fullname="John Scudder"/> for the initial discussion behind this document. Thanks to <contact fullname="Ketan Talaulikar"/>, <contact fullname="Andrew Stone"/>, <contact fullname="Samuel Sidor"/>, <contact fullname="Quan Xiong"/>, <contact fullname="Cheng Li"/>, and <contact fullname="Aijun Wang"/> for the review comments. Thanks to <contact fullname="Carlos Pignataro"/> for the OPSDIR review. Thanks to <contact fullname="Meral Shirazipour"/> for the GENART review. Thanks to <contact fullname="Paul Kyzivat"/> for the ArtArt review. Thanks to <contact fullname="Alexey Melnikov"/> for the SECDIR review.</t>
    </section>
    
    <section anchor="contributors" numbered="false">
      <name>Contributors</name>

    <contact fullname="Haomian Zheng">
      <organization>Huawei Technologies</organization>
      <address>
        <email>zhenghaomian@huawei.com</email>
      </address>
    </contact>
    </section>
  </back>
</rfc>
