<?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" category="std" docName="draft-ietf-pce-pcep-color-12" number="9863" updates="" obsoletes="" ipr="trust200902" submissionType="IETF" consensus="true" tocInclude="true" tocDepth="3" symRefs="true" sortRefs="true" version="3" xml:lang="en">

  <front>
    <title abbrev="PCEP Color">Path Computation Element Protocol (PCEP) Extension for Color</title>
    <seriesInfo name="RFC" value="9863"/>
    <author initials="B." surname="Rajagopalan" fullname="Balaji Rajagopalan">
      <organization>Juniper Networks</organization>
      <address>
        <email>balajir@juniper.net</email>
      </address>
    </author>
    <author initials="V." surname="Beeram" fullname="Vishnu Pavan Beeram">
      <organization>Juniper Networks</organization>
      <address>
        <email>vbeeram@juniper.net</email>
      </address>
    </author>
    <author initials="S." surname="Peng" fullname="Shaofu Peng">
      <organization>ZTE Corporation</organization>
      <address>
        <email>peng.shaofu@zte.com.cn</email>
      </address>
    </author>
    <author fullname="Mike Koldychev" initials="M." surname="Koldychev">
      <organization>Ciena Corporation</organization>
      <address>
        <email>mkoldych@proton.me</email>
      </address>
    </author>
    <author fullname="Gyan Mishra" initials="G." surname="Mishra">
      <organization>Verizon Communications Inc.</organization>
      <address>
        <email>gyan.s.mishra@verizon.com</email>
      </address>
    </author>
    <date month="October" year="2025"/>

    <area>RTG</area>
    <workgroup>pce</workgroup>

    <keyword>color</keyword>

    <abstract>
      <t>
      Color is a 32-bit numerical (unsigned integer) attribute used to 
      associate a Traffic Engineering (TE) tunnel or policy with an intent 
      or objective. For example, a TE Tunnel constructed to deliver low 
      latency services and whose path is optimized for delay can be tagged 
      with a color that represents "low latency." This document specifies 
      extensions to the Path Computation Element Protocol (PCEP) to carry 
      the color attribute.
      </t>
    </abstract>
  </front>
  <middle>
    <section anchor="intro">
      <name>Introduction</name>
      <t>
      A Traffic Engineering (TE) Tunnel <xref target="RFC3209"/> or Segment Routing 
      (SR) policy <xref target="RFC9256"/> can be associated
      with an intent or objective (e.g., low latency) by tagging it with a color. This 
      color attribute is used as a guiding criterion for mapping services onto the TE 
      Tunnel <xref target="RFC9012"/> or SR Policy <xref target="RFC9256"/>.
      The term "color" used in this document must not be interpreted as the "thread color" 
      specified in <xref target="RFC3063"/> or the "resource color" (also referred to as "link color") 
      specified in <xref target="RFC3630"/>, <xref target="RFC5329"/>,
      <xref target="RFC5305"/>, and <xref target="RFC7308"/>.
      </t>
      <t>
      <xref target="RFC8231"/> specifies extensions to the Path Computation Element 
      Protocol (PCEP) that enable the deployment of a stateful Path Computation Element 
      (PCE) model. These extensions allow a Path Computation Client (PCC) to delegate 
      control of the Label Switched Paths (LSPs) associated with its TE Tunnels to a
      stateful PCE. <xref target="RFC8281"/> specifies extensions that allow a PCE to 
      instantiate and manage PCE-initiated LSPs on a PCC under the stateful PCE model. 
      <xref target="RFC8664"/> specifies extensions that enable stateful control of SR 
      paths via PCEP.
      </t>
      <t>
      This document introduces extensions to PCEP to allow a color tag
      to be assigned to any TE path operated under a stateful PCE model
      (including those set up using RSVP-TE <xref target="RFC8408"/> or 
      Segment Routing <xref target="RFC8664"/>).
      The only exception where the extensions defined in 
      this document <bcp14>MUST NOT</bcp14> be used to carry the color attribute is for SR paths
      established using the extensions defined in <xref target="RFC9862"/>. 
      For these SR paths, the associated color is already included as part of the SR 
      Policy identifier encoding. 
      </t>
      <t>
      The mechanism employed by the PCC for mapping services onto a TE path 
      associated with a color attribute is outside the scope of this document, as 
      is any other use of the color tag.     
      </t>
      <section>
        <name>Requirements Language</name>
        <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&nbsp;14 <xref target="RFC2119"/> <xref target="RFC8174"/> 
    when, and only when, they appear in all capitals, as shown here.
        </t>
      </section>
    </section>
    <section>
      <name>Protocol Operation</name>
      <t>
        When the PCEP session is created, a PCEP (PCE/PCC) speaker sends
        an Open message with an OPEN object that contains the 
        STATEFUL-PCE-CAPABILITY TLV, as defined in <xref target="RFC8231"/>. A
        STATEFUL-PCE-CAPABILITY TLV Flag (see <xref target="Color-Cap"/>)
        is introduced in this document to enable the PCEP speaker to advertise color
        capability.
      </t>
      <t>
        In PCRpt, PCUpd, and PCInitiate messages, the LSP object <xref target="RFC8231"/>  <xref target="RFC8281"/>
        is a mandatory inclusion and is used to carry information specific to the target LSP. A TLV called the COLOR TLV
        (see <xref target="TLV-Format"/>), which <bcp14>MAY</bcp14> be carried in the LSP object, is
        introduced in this document to carry the color attribute associated with the LSP. 
        Only one COLOR TLV <bcp14>SHOULD</bcp14> be included in the LSP object.  If the COLOR TLV appears 
        in the LSP object more than once, only the first occurrence is processed, and any 
        others <bcp14>MUST</bcp14> be ignored.
      </t>
      <t>
        A PCEP speaker that has advertised color capability <bcp14>MUST NOT</bcp14>
        send COLOR TLV encoded in the LSP object to a PCEP Peer <xref target="RFC5440"/> that has not advertised color 
        capability. A PCEP speaker that advertises both color capability and
        SR Policy Association <xref target="RFC9862"/> capability <bcp14>MUST
        NOT</bcp14> send COLOR TLV encoded in the LSP object for SR Paths.
        The COLOR TLV is ignored if it shows up in the LSP object of a message that
        carries an ASSOCIATION object of type SR Policy Association <xref target="RFC9862"/>.
        The color encoded in the SR Policy Association takes precedence in such a scenario.
      </t>
      <t>
	If a PCC is unable to honor a color value passed in a PCUpd
        or a PCInitiate message, the PCC <bcp14>MUST</bcp14> reject the message
        and send a PCErr message with Error-Type=19 (Invalid Operation)
        and Error-value=31 (Invalid color). This is expected behavior 
        in scenarios where a PCC implementation does not support a color 
        value of zero for specific path setup types, and it receives that 
        value in the COLOR TLV of a PCUpd or a PCInitiate message.
      </t>
      <t>
        When LSPs that belong to the same TE Tunnel are within the
        same Path Protection Association Group <xref target="RFC8745"/>, 
        they are all expected to have the same color attached to them.
        If a PCEP speaker
	determines inconsistency in the color associated with the LSPs
        belonging to the same Path Protection Association Group, it <bcp14>MUST</bcp14>
        reject the message carrying the inconsistent color and send a 
        PCErr message with Error-Type=19 (Invalid Operation) and
        Error-value=32 (Inconsistent color).
      </t>
    </section>
    <section anchor="Proto-Ext">
      <name>Protocol Extensions</name>
      <section anchor="Color-Cap">
        <name>Color Capability</name>
        <t>
        <xref target="RFC8231" sectionFormat="of" section="7.1.1"/> defines
        STATEFUL-PCE-CAPABILITY TLV flags. The following flag is used to
        indicate if the speaker supports color capability:
        </t>

	<dl spacing="normal" newline="false">
          <dt>C-bit (Bit 20):</dt><dd>A PCE/PCC indicates that it supports the
          color capability defined in this document by setting this bit.</dd>
	</dl>

      </section>
      <section anchor="TLV-Format">
        <name>COLOR TLV</name>
        <figure anchor="color-tlv">
          <name>COLOR TLV</name>
          <artwork align="left"><![CDATA[
   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=4             |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                             Color                             |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork>
        </figure>

<dl spacing="normal" newline="false">
  <dt>Type:</dt><dd>67</dd>
  <dt>Length:</dt><dd>4</dd>
  <dt>Color:</dt><dd>4-byte field that carries the actual color value
  (specified as an unsigned integer). A value of zero is allowed.</dd>
</dl>
      </section>
    </section>
    <section anchor="sec-con">
      <name>Security Considerations</name>
      <t>
	This document defines a TLV for color and a flag for
	color capability negotiation, which do not add any security
	concerns beyond those discussed in <xref target="RFC5440"/>,
	<xref target="RFC8231"/>, and <xref target="RFC8281"/>.
      </t>
      <t>
	An unauthorized PCE may maliciously associate the LSP with an
	incorrect color. The procedures described in <xref target="RFC8253"/> and <xref target="RFC9325"/> can be used to
	protect against this attack.
      </t>
    </section>
    <section anchor="mgmt-con">
      <name>Manageability Considerations</name>
      <t>
      This section follows the advice and guidance of <xref target="RFC6123"/>.
      </t>
      <section anchor="mgmt-con-cfp">
        <name>Control of Function through Configuration and Policy</name>
        <t>
      An implementation supporting this document <bcp14>SHOULD</bcp14> allow the operator 
      to turn on and off the PCEP color capability advertisement (<xref target="Color-Cap"/>).  
      An implementation supporting this document <bcp14>SHOULD</bcp14> allow the configuration 
      of color assignment to a TE Tunnel or an SR Policy. A PCC <bcp14>MAY</bcp14> have a 
      local policy configuration that specifies how the color tag is used. 
      This policy configuration is outside the scope of this document.
        </t>
      </section>
      <section anchor="mgmt-con-idm">
        <name>Information and Data Models</name>
        <t>
      An implementation supporting this document <bcp14>SHOULD</bcp14> allow the inclusion of color 
      in the data model used to retrieve the operational state of a TE Tunnel or an SR Policy. 
      The YANG model in <xref target="I-D.ietf-teas-yang-te"/> could be used to retrieve the
      operational state of a TE Tunnel, and the YANG model in <xref target="I-D.ietf-spring-sr-policy-yang"/>
      could be used to retrieve the operational state of an SR Policy.
        </t>
      </section>
      <section anchor="mgmt-con-ldm">
        <name>Liveness Detection and Monitoring</name>
        <t>
      The extensions defined in this document do not require any additional
      liveness detection and monitoring support.  See <xref target="RFC5440"/> and
      <xref target="RFC5886"/> for more information.
        </t>
      </section>
      <section anchor="mgmt-con-vco">
        <name>Verifying Correct Operation</name>
        <t>
      The operator <bcp14>MAY</bcp14> retrieve the operational state of TE Paths to verify if they are tagged with the correct intended color.
        </t>
      </section>
      <section anchor="mgmt-con-prot">
        <name>Requirements on Other Protocols</name>
        <t>
      This document places no explicit requirements on other protocols.
        </t>
      </section>
      <section anchor="mgmt-con-ino">
        <name>Impact on Network Operation</name>
        <t>
      The impact on network operations depends on how the color tag is used in the deployment. This is outside the scope of this document.
        </t>
      </section>
    </section>
    <section anchor="IANA">
      <name>IANA Considerations</name>
      <section>
        <name>PCEP TLV Type Indicator</name>
        <t>
         IANA has assigned a value in the
         "PCEP TLV Type Indicators" registry of the
         "Path Computation Element Protocol (PCEP) Numbers" registry group as follows:
        </t>

	<table>
	  <thead><tr><th>Value</th><th>Description</th><th>Reference</th></tr></thead>
	  <tbody><tr><td>67</td><td>Color</td><td>RFC 9863</td></tr></tbody>
	</table>

      </section>
      <section>
        <name>STATEFUL-PCE-CAPABILITY TLV Flag Field</name>
        <t>
         IANA has assigned a bit value in the
         "STATEFUL-PCE-CAPABILITY TLV Flag Field" registry of the
         "Path Computation Element Protocol (PCEP) Numbers" registry group as follows:
        </t>
	<table>
	  <thead><tr><th>Value</th><th>Description</th><th>Reference</th></tr></thead>
	  <tbody><tr><td>20</td><td>COLOR-CAPABILITY</td><td>RFC 9863</td></tr></tbody>
	</table>
      </section>
      <section>
        <name>PCEP-Error Object</name>
        <t>
      IANA has assigned two Error-values for Error-Type=19 (Invalid Operation)
      within the "PCEP-ERROR Object Error Types and Values" registry of the "Path
      Computation Element Protocol (PCEP) Numbers" registry group as follows:
        </t>

	<table>
	  <thead>
	    <tr>
	      <th>Error-Type</th>
	      <th>Meaning</th>
              <th>Error-value</th>
              <th>Reference</th>
	    </tr>
	  </thead>
	  <tbody>
	    <tr>
	      <td rowspan="2">19</td>
	      <td rowspan="2">Invalid Operation</td>
	      <td>31: Invalid Color</td>
	      <td>RFC 9863</td>
	    </tr>
	    <tr>
              <td>32: Inconsistent Color</td>
	      <td>RFC 9863</td>
	    </tr>
	  </tbody>
	</table>

      </section>
      <section>
        <name>LSP-ERROR-CODE TLV Error Code Field</name>
        <t>
   A draft version of this document added an error code in the 
   "LSP-ERROR-CODE TLV Error Code Field" registry of the 
   "Path Computation Element Protocol (PCEP) Numbers" 
   registry group, which was also early allocated by the IANA.  
        </t>
        <t>
	  IANA has marked it as deprecated. 
        </t>
	<table>
	  <thead><tr><th>Value</th><th>Meaning</th><th>Reference</th></tr></thead>
	  <tbody>
	    <tr>
	      <td>9</td>
	      <td>Deprecated (Unsupported Color)</td>
	      <td>RFC 9863</td>
	    </tr>
	  </tbody>
	</table>
      </section>
    </section>

  </middle>
  <back>

    <displayreference target="I-D.ietf-spring-sr-policy-yang" to="SR-POLICY-YANG"/>
    <displayreference target="I-D.ietf-teas-yang-te" to="YANG-TE"/>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"/>
        <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.8231.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8253.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.8408.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.8745.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9012.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9325.xml"/>

        <reference anchor="RFC9862" target="https://www.rfc-editor.org/info/rfc9862">
          <front>
            <title>Path Computation Element Communication Protocol (PCEP) Extensions for Segment Routing (SR) Policy Candidate Paths</title>
            <author initials="M." surname="Koldychev" fullname="Mike Koldychev">
              <organization>Ciena Corporation</organization>
            </author>
            <author initials="S." surname="Sivabalan" fullname="Siva Sivabalan">
              <organization>Ciena Corporation</organization>
            </author>
            <author initials="S." surname="Sidor" fullname="Samuel Sidor">
              <organization>Cisco Systems, Inc.</organization>
            </author>
            <author initials="C." surname="Barth" fullname="Colby Barth">
              <organization>Juniper Networks, Inc.</organization>
            </author>
            <author initials="S." surname="Peng" fullname="Shuping Peng">
              <organization>Huawei Technologies</organization>
            </author>
            <author initials="H." surname="Bidgoli" fullname="Hooman Bidgoli">
              <organization>Nokia</organization>
            </author>
            <date month="October" year="2025"/>
          </front>
          <seriesInfo name="RFC" value="9862"/>
          <seriesInfo name="DOI" value="10.17487/RFC9862"/>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3063.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3209.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3630.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5305.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5329.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5886.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6123.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7308.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9256.xml"/>

<!-- [I-D.ietf-teas-yang-te]
draft-ietf-teas-yang-te-38
IESG State: I-D Exists as of 10/08/25
-->
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-teas-yang-te.xml"/>

<!-- [I-D.ietf-spring-sr-policy-yang]
draft-ietf-spring-sr-policy-yang-05
IESG State: I-D Exists as of 10/08/25
-->
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-spring-sr-policy-yang.xml"/>
      </references>
    </references>

    <section numbered="false">
      <name>Acknowledgments</name>
      <t>The authors would like to thank <contact fullname="Kaliraj
      Vairavakkalai"/>, <contact fullname="Colby Barth"/>, <contact
      fullname="Natrajan Venkataraman"/>, <contact fullname="Tarek Saad"/>,
      <contact fullname="Dhruv Dhody"/>, <contact fullname="Adrian Farrel"/>,
      <contact fullname="Andrew Stone"/>, <contact fullname="Diego Achaval"/>,
      and <contact fullname="Narasimha Kommuri"/> for their review and
      suggestions.</t>
    </section>

    <section numbered="false">
      <name>Contributors</name>
      <t>The following people have contributed to this document:</t>

      <contact fullname="Quan Xiong">
        <organization>ZTE Corporation</organization>
        <address>
          <email>xiong.quan@zte.com.cn</email>
        </address>
      </contact>

    </section>

  </back>


</rfc>
