<?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" submissionType="IETF" category="std" consensus="true" docName="draft-ietf-pce-lsp-extended-flags-09" number="9357" ipr="trust200902" obsoletes="" updates="" xml:lang="en" tocInclude="true" tocDepth="4" symRefs="true" sortRefs="true" version="3">
  
  <!-- xml2rfc v2v3 conversion 3.15.1 -->
  <front>
    <title abbrev="LSP Object Flag Extension">Label Switched Path (LSP) Object Flag Extension for Stateful PCE</title>
    <seriesInfo name="RFC" value="9357"/>
    <author fullname="Quan Xiong" initials="Q" surname="Xiong">
      <organization>ZTE Corporation</organization>
      <address>
        <postal>
          <street>No.6 Huashi Park Rd</street>
          <city>Wuhan</city>
          <region>Hubei</region>
          <code>430223</code>
          <country>China</country>
        </postal>
        <phone/>
        <email>xiong.quan@zte.com.cn</email>
      </address>
    </author>
    <date year="2023" month="February"/>
    <area>rtg</area>
    <workgroup>pce</workgroup>
    <keyword>PCEP</keyword>
    <abstract>
      <t>RFC 8231 describes a set of extensions to the Path Computation Element Communication 
		 Protocol (PCEP) to enable stateful control of MPLS-TE and GMPLS Label Switched 
		 Paths (LSPs) via PCEP. One of the extensions is the LSP object, which includes 
		 a Flag field with a length of 12 bits. However, all bits of the Flag field have 
      already been assigned.</t>

      <t>This document defines a new LSP-EXTENDED-FLAG TLV for the 
		 LSP object for an extended Flag field.</t>
    </abstract>
  </front>
  <middle>
    <section numbered="true" toc="default">
      <name>Introduction</name>
      <t><xref target="RFC5440" format="default"/> describes the Path Computation Element
	Communication Protocol (PCEP), which is used between a PCE and a Path Computation 
	Client (PCC) (or other PCE) to enable computation of Multi-protocol Label 
	Switching for Traffic Engineering (MPLS-TE) Label Switched Paths (LSPs). </t>
      <t>PCEP Extensions for the Stateful PCE Model <xref target="RFC8231" format="default"/> 
	describes a set of extensions to PCEP to enable active control of MPLS-TE and 
	Generalized MPLS (GMPLS) tunnels. One of the extensions is the LSP object, 
	which contains a Flag field; bits in the Flag field are used to indicate 
	delegation, synchronization, removal, etc.</t>
<t>As defined in <xref target="RFC8231" format="default"/>, the length of the Flag field is   
12 bits, and all of the bits have already been defined as shown in <xref target="table0"/>. This document extends the
   Flag field of the LSP object for other use by defining a new LSP-EXTENDED-FLAG TLV for an extended Flag field in the LSP object (see <xref target="LSP-EXTENDED-FLAG-TLV"/>).</t>
<table anchor="table0"> 
  <name>LSP Object Flag Field</name>
  <thead>
    <tr>
      <th>Bit</th>
      <th>Description</th>
      <th>Reference</th>
    </tr>
  </thead>
  <tbody> 
    <tr>
      <td>0</td>
      <td>PCE-allocation</td>
      <td><xref target="I-D.ietf-pce-binding-label-sid" format="default"/></td>
    </tr>
    <tr>
      <td>1</td>
      <td>ERO-compression</td>
      <td><xref target="RFC8623"/></td>
    </tr>
    <tr>
      <td>2</td>
      <td>Fragmentation</td>
      <td><xref target="RFC8623"/></td>
    </tr>
    <tr>
      <td>3</td>
      <td>P2MP</td>
      <td><xref target="RFC8623"/></td>
    </tr>
    <tr>
      <td>4</td>
      <td>Create</td>
      <td><xref target="RFC8281"/></td>
    </tr>
    <tr>
      <td>5-7</td>
      <td>Operational (3 bits)</td>
      <td><xref target="RFC8281"/></td>
    </tr>
    <tr>
      <td>8</td>
      <td>Administrative</td>
      <td><xref target="RFC8281"/></td>
    </tr>
    <tr>
      <td>9</td>
      <td>Remove</td>
      <td><xref target="RFC8281"/></td>
    </tr>
    <tr>
      <td>10</td>
      <td>SYNC</td>
      <td><xref target="RFC8281"/></td>
    </tr>
    <tr>
      <td>11</td>
      <td>Delegate</td>
      <td><xref target="RFC8281"/></td>
    </tr>

  </tbody>
</table>


    </section>
    <section numbered="true" toc="default">
      <name>Conventions Used in this Document</name>
      <section numbered="true" toc="default">
        <name>Terminology</name>
        <t>The terminology is defined in <xref target="RFC5440" format="default"/> and <xref target="RFC8231" format="default"/>.</t>
      </section>
      <section numbered="true" toc="default">
        <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 numbered="true" toc="default">
      <name>PCEP Extension</name>

      <t>The LSP object is defined in <xref target="RFC8231" sectionFormat="of" section="7.3"/>.
	This document defines a new LSP-EXTENDED-FLAG TLV for an extended Flag field in the LSP object.</t>
      <section numbered="true" toc="default" anchor="LSP-EXTENDED-FLAG-TLV">
        <name>The LSP-EXTENDED-FLAG TLV</name>
        <t>The format of the LSP-EXTENDED-FLAG TLV shown in <xref target="fig1" format="default"/> follows the format of
   all PCEP TLVs, as defined in <xref target="RFC5440" format="default"/>.</t>
        <figure anchor="fig1">
          <name>LSP-EXTENDED-FLAG TLV Format</name>
          <artwork align="center" name="" type="" 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=64             |           Length              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
//                 LSP Extended Flags                          //
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        </figure>
        <t keepWithPrevious="true"/>
	<dl newline="false" spacing="normal">
          <dt>Type (16 bits):</dt>
	  <dd>64</dd>
          <dt>Length (16 bits):</dt>
	  <dd>This indicates the length of the value portion in bytes. 
	  It <bcp14>MUST</bcp14> be in multiples of 4 and greater than 0.</dd>
          <dt>LSP Extended Flags:</dt>
	  <dd>This contains an array of units of 32-bit flags
      numbered from the most significant as bit zero, where each bit 
	  represents one LSP flag (for operation, feature, or state). The 
	  LSP Extended Flags field <bcp14>SHOULD</bcp14> use the minimal amount of space 
	  needed to encode the flag bits. Currently, no bits are assigned. 
	  Unassigned bits <bcp14>MUST</bcp14> be set to zero on transmission and <bcp14>MUST</bcp14> be 
	  ignored on receipt. </dd>
	</dl>
        <t>As an example of usage of the LSP-EXTENDED-FLAG TLV, the E-flag 
	is requested for entropy label configuration, as proposed in <xref target="I-D.peng-pce-entropy-label-position" format="default"/>.</t>
      </section>
      <section numbered="true" toc="default">
        <name>Processing</name>
        <t>The LSP Extended Flags field is an array of units of 32 flags that are 
   allocated starting from the most significant bit. The bits of the LSP Extended 
   Flags field will be assigned by future documents. This document does not define 
   any flags. Flags that an implementation is not supporting <bcp14>MUST</bcp14> be set to
   zero on transmission. Implementations that do not understand any particular 
   flag <bcp14>MUST</bcp14> ignore the flag.</t>
        <t>Note that PCEP peers <bcp14>MUST</bcp14> handle varying lengths of the
   LSP-EXTENDED-FLAG TLV.</t>
        <t>If a PCEP speaker receives the LSP-EXTENDED-FLAG TLV
     of a length more than it currently supports or understands,
     it <bcp14>MUST</bcp14> ignore the bits beyond that length.</t>
        <t>If a PCEP speaker receives the LSP-EXTENDED-FLAG TLV of a length less
   than the one supported by the implementation, it <bcp14>MUST</bcp14> act as if the bits
   beyond the length were not set.</t>
      </section>
    </section>
    <section numbered="true" toc="default">
      <name>Advice for Specification of New Flags</name>
      <t>Following the model provided in <xref target="RFC8786" sectionFormat="of" section="3.1"/>, we provide
   the following advice for new specifications that define additional
   flags. Each such specification is expected to describe the
   interaction between these new flags and any existing flags.  In
   particular, new specifications are expected to explain how to handle
   the cases when both new and preexisting flags are set.
   They are also expected to discuss any security implications of the 
   additional flags (if any) and their interactions with existing flags.</t>
    </section>
    <section numbered="true" toc="default">
      <name>Backward Compatibility</name>
      <t>The LSP-EXTENDED-FLAG TLV defined in this document does not introduce
   any backward compatibility issues. An implementation that does not 
   understand or support the LSP-EXTENDED-FLAG TLV <bcp14>MUST</bcp14> ignore 
   the TLV, as per <xref target="RFC5440" format="default"/>. Future documents that 
   define bits in the LSP-EXTENDED-FLAG TLV are expected to also define the error 
   handling required for cases in which the LSP-EXTENDED-FLAG TLV is missing when it <bcp14>MUST</bcp14> 
   be present.</t>
      <t>Further, any additional bits in the LSP-EXTENDED-FLAG TLV that are 
   not understood by an implementation <bcp14>MUST</bcp14> be ignored. 
   It is expected that future documents that define bits in the LSP-EXTENDED-FLAG TLV
   will take that into consideration. </t>
    </section>
    <section anchor="IANA" numbered="true" toc="default">
      <name>IANA Considerations</name>
      <section numbered="true" toc="default">
        <name>LSP Object</name>
        <section numbered="true" anchor="pcep64" toc="default">
          <name>PCEP TLV Type Indicators</name>
          <t>IANA has allocated the following TLV Type Indicator value within
   the "PCEP TLV Type Indicators" registry of the "Path Computation
   Element Protocol (PCEP) Numbers" registry:</t>
          <table anchor="table1" 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">64</td>
                <td align="left">LSP-EXTENDED-FLAG</td>
                <td align="left">RFC 9357</td>
              </tr>
            </tbody>
          </table>
        </section>
        <section numbered="true" toc="default">
          <name>LSP Extended Flags Field</name>
          <t>IANA has created the "LSP-EXTENDED-FLAG TLV Flag Field" registry 
   within the "Path Computation Element Protocol (PCEP) Numbers"
   registry to manage the LSP Extended Flags field of the LSP-EXTENDED-FLAG TLV.  New values are
   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>Reference</li>
          </ul>
          <t>No values are currently defined. Bits 0-31 are initially marked 
    as "Unassigned". Bits with a higher ordinal than 31 will be added to the 
    registry in future documents if necessary.</t>
        </section>
      </section>
    </section>
    <section numbered="true" toc="default">
      <name>Management Considerations</name>
      <t>Implementations receiving set LSP Extended Flags that they do not recognize
   <bcp14>MAY</bcp14> log this.  That could be helpful for diagnosing backward
   compatibility issues with future features that utilize those flags.</t>
    </section>
    <section numbered="true" toc="default">
      <name>Security Considerations</name>
      <t><xref target="RFC8231" format="default"/> sets out security considerations for PCEP when 
	used for communication with a stateful PCE.  This document does not change
    those considerations. For LSP object processing, see <xref target="RFC8231" format="default"/>.</t>
      <t>The flags for the LSP object and their associated security
    considerations are specified in <xref target="RFC8231" format="default"/>, <xref target="RFC8281" format="default"/>, <xref target="RFC8623" format="default"/>,
    and <xref target="I-D.ietf-pce-binding-label-sid" format="default"/>.</t>
      <t>This document provides for the future addition of flags in the LSP object. 
   Any future document that specifies new flags must also discuss any 
   associated security implications. No additional security issues are 
   raised in this document beyond those that exist in the referenced 
   documents.
   Note that <xref target="RFC8231" format="default"/> recommends 
   that the stateful PCEP extension be authenticated and encrypted 
   using Transport Layer Security (TLS) <xref target="RFC8253" format="default"/> <xref target="I-D.dhody-pce-pceps-tls13" format="default"/>, as per the
   recommendations and best current practices in <xref target="RFC9325" format="default"/>.
   Assuming that the recommendation is followed, then the flags will be protected by TLS.</t>
    </section>
  </middle>
  <back>

<displayreference target="I-D.ietf-pce-binding-label-sid" to="BIND-LABEL-SID"/>
<displayreference target="I-D.peng-pce-entropy-label-position" to="PCEP-ENTROPY-LABEL"/>
<displayreference target="I-D.dhody-pce-pceps-tls13" to="PCEPS-TLS1.3"/>

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

<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5440.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8231.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8126.xml"/>

      </references>
      <references>
        <name>Informative References</name>

<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5088.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5089.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.9325.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8253.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8281.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8623.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8786.xml"/>

<reference anchor="I-D.ietf-pce-binding-label-sid">
<front>
<title>
Carrying Binding Label/Segment Identifier (SID) in PCE-based Networks.
</title>
<author initials="S." surname="Sivabalan" fullname="Siva Sivabalan">
<organization>Ciena Corporation</organization>
</author>
<author initials="C." surname="Filsfils" fullname="Clarence Filsfils">
<organization>Cisco Systems, Inc.</organization>
</author>
<author initials="J." surname="Tantsura" fullname="Jeff Tantsura">
<organization>Microsoft Corporation</organization>
</author>
<author initials="S." surname="Previdi" fullname="Stefano Previdi">
<organization>Huawei Technologies</organization>
</author>
<author initials="C." surname="Li" fullname="Cheng Li" role="editor">
<organization>Huawei Technologies</organization>
</author>
<date month="March" day="20" year="2022"/>
</front>
<seriesInfo name="Internet-Draft" value="draft-ietf-pce-binding-label-sid-15"/>
<format type="TXT" target="https://www.ietf.org/archive/id/draft-ietf-pce-binding-label-sid-15.txt"/>
</reference>

<xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D.peng-pce-entropy-label-position.xml"/>

<xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D.dhody-pce-pceps-tls13.xml"/>

      </references>
    </references>
    <section numbered="true" toc="default">
      <name>Working Group Discussion</name>
      <t>
        The working group discussed the idea of a fixed length (with 32 bits) for the
	LSP-EXTENDED-FLAG TLV.  Though 32 bits would be sufficient for quite a
   while, the use of variable length with a multiple of 32 bits allows
   for future extensibility where we would never run out of flags and
   there would not be a need to define yet another TLV in the future.
   Further, note that <xref target="RFC5088" format="default"/> and <xref target="RFC5089" format="default"/> use the same approach for
   the PCE-CAP-FLAGS sub-TLV and are found to be useful.
      </t>
    </section>
    <section anchor="Acknowledgements" numbered="false" toc="default">
      <name>Acknowledgements</name>
      <t>The authors would like to thank <contact fullname="Loa Andersson"/>, <contact fullname="Adrian Farrel"/>, <contact fullname="Aijun Wang"/>, and <contact fullname="Gyan Mishra"/> for their reviews, suggestions, and comments for this document.</t>
    </section>
    <section numbered="false" toc="default">
      <name>Contributors</name>
      <t>The following people have substantially contributed to this document:</t>
      <contact fullname="Dhruv Dhody">
	<organization>Huawei Technologies</organization>
	<address>
	  <email>dhruv.ietf@gmail.com</email>
	</address>
      </contact>
      <contact fullname="Greg Mirsky">
	<organization>Ericsson</organization>
	<address>
	  <email>gregimirsky@gmail.com</email>
	</address>
      </contact>
    </section>
  </back>
</rfc>
