<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="3"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" category="std" docName="draft-sidor-pce-circuit-style-pcep-extensions-03" ipr="trust200902" obsoletes="" updates="" submissionType="IETF" xml:lang="en" tocInclude="true" tocDepth="3" symRefs="true" sortRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.13.0 -->
  <front>
    <title abbrev="PCEP extensions for CS Policies">
    PCEP extensions for Circuit Style Policies
    </title>
    <seriesInfo name="Internet-Draft" value="draft-sidor-pce-circuit-style-pcep-extensions-03"/>
    <author fullname="Samuel Sidor" initials="S." surname="Sidor">
      <organization>Cisco Systems, Inc.</organization>
      <address>
        <postal>
          <street>Eurovea Central 3.</street>
          <street>Pribinova 10</street>
          <city>Bratislava</city>
          <code>811 09</code>
          <country>Slovakia</country>
        </postal>
        <email>ssidor@cisco.com</email>
      </address>
    </author>
    <author fullname="Zafar Ali" initials="Z." surname="Ali">
      <organization>Cisco Systems, Inc.</organization>
      <address>
        <email>zali@cisco.com</email>
      </address>
    </author>
    <author fullname="Praveen Maheshwari" initials="P." surname="Maheshwari">
      <organization>Airtel India</organization>
      <address>
        <email>Praveen.Maheshwari@airtel.com</email>
      </address>
    </author>
    <author fullname="Reza Rokui" initials="R." surname="Rokui">
      <organization>Ciena</organization>
      <address>
        <email>rrokui@ciena.com</email>
      </address>
    </author>
    <author fullname="Andrew Stone" initials="A." surname="Stone">
      <organization>Nokia</organization>
      <address>
        <email>andrew.stone@nokia.com</email>
      </address>
    </author>
    <author fullname="Luay Jalil" initials="L." surname="Jalil">
      <organization>Verizon</organization>
      <address>
        <email>luay.jalil@verizon.com</email>
      </address>
    </author>
    <author fullname="Shuping Peng" initials="S." surname="Peng">
      <organization>Huawei Technologies</organization>
      <address>
        <email>pengshuping@huawei.com</email>
      </address>
    </author>
    <author fullname="Tarek Saad" initials="T." surname="Saad">
      <organization>Juniper Networks</organization>
      <address>
        <email>tsaad@juniper.net</email>
      </address>
    </author>
    <author fullname="Daniel Voyer" initials="D." surname="Voyer">
      <organization>Bell Canada</organization>
      <address>
        <email>daniel.voyer@bell.ca</email>
      </address>
    </author>
	
    <date year="2023" month="January" day="9"/>
	
    <workgroup>PCE Working Group</workgroup>

    <abstract>
      <t>This document proposes a set of extensions for Path Computation
	  Element Communication Protocol (PCEP) for Circuit Style
	  Policies - Segment-Routing Policy designed to satisfy requirements
	  for connection-oriented transport services.
	  
	  New TLV is introduced to control path recomputation and new
	  flag to add ability to request path with strict hops only.</t>
    </abstract>
    <note>
      <name>Requirements Language</name>
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
      "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
      "OPTIONAL" in this document are to be interpreted as described in BCP
      14 <xref target="RFC2119" format="default"/> <xref target="RFC8174" format="default"/> when,
      and only when, they appear in all capitals, as shown here.</t>
    </note>
  </front>
  <middle>
    <section anchor="Introduction" numbered="true" toc="default">
      <name>Introduction</name>
      <t>Usage of Segment-routing and PCEP in connection-oriented transport
	  services require path persistancy and hop-by-hop behavior for PCE computed paths.</t>
      <t>Circuit-Style Policy introduced in <xref target="I-D.schmutzer-spring-cs-sr-policy" format="default"/>
	  requires PCEP extensions, which are covered in this document. </t>
      <t>This document:</t>
      <ul spacing="normal">
        <li>Introduces possibility to request strict path from the PCE by extending LSP-EXTENDED-FLAG TLV</li>
        <li>Adding new TLV to encode information about disabling path recomputation for specific path to the PCE, to be carried inside the LSPA object, which is defined in <xref target="RFC5440" format="default"/>.</li>
        <li>Clarifies usage of existing O-flag from RP object in Segment-routing</li>
      </ul>
      <t>PCEP extensions described in this document are applicable to RSVP-TE and SR-TE.</t>
    </section>
    <section numbered="true" toc="default">
      <name>Terminology</name>
      <t>The following terminologies are used in this document:
      </t>
      <dl newline="false" spacing="normal">
        <dt>ERO:</dt>
        <dd> Explicit Route Object</dd>
        <dt>IGP:</dt>
        <dd> Interior Gateway Protocol</dd>
        <dt>LSP:</dt>
        <dd> Label Switched Path.</dd>
        <dt>LSPA:</dt>
        <dd> Label Switched Path Attributes.</dd>
        <dt>OTN:</dt>
        <dd> Optical Transport Network.</dd>
        <dt>PCC:</dt>
        <dd> Path Computation Client</dd>
        <dt>PCE:</dt>
        <dd> Path Computation Element</dd>
        <dt>PCEP:</dt>
        <dd> Path Computation Element Protocol.</dd>
        <dt>SDH:</dt>
        <dd> Synchronous Digital Hierarchy</dd>
        <dt>SID:</dt>
        <dd> Segment Identifier</dd>
        <dt>SONET:</dt>
        <dd> Synchronous Optical Network</dd>
        <dt>SR:</dt>
        <dd> Segment Routing.</dd>
        <dt>SR-TE:</dt>
        <dd> Segment Routing Traffic Engineering.</dd>
      </dl>
    </section>
    <section anchor="PCEP_EXTENSIONS" numbered="true" toc="default">
      <name>Overview of Extensions to PCEP</name>
      <section anchor="LSP_EXTENDED_FLAG_TLV" numbered="true" toc="default">
        <name>LSP-EXTENDED-FLAG TLV</name>
        <t>O-flag is proposed in the LSP-EXTENDED-FLAG TLV, which was introduced in 5.1.2 of <xref target="I-D.ietf-pce-lsp-extended-flags" format="default"/> and extended with E-flag in <xref target="I-D.peng-pce-entropy-label-position" format="default"/>. TLV format will be added after assigning O flag bit position by IANA.</t>
        <t>Type (16 bits): the value is TBD1 by IANA.</t>
        <t>Length (16 bits): multiple of 4 octets.</t>
        <t>O (Strict-Path): If set to 1, this indicates to the PCE that a path exclusively made of strict hops is required. Strict hop definition is described in Section 4.1</t>
      </section>
      <section anchor="PATH_RECOMPUTATION_TLV" numbered="true" toc="default">
        <name>PATH-RECOMPUTATION TLV</name>
        <t>This document defines new TLV for the LSPA Object for encoding information whether path recomputation is allowed for delegated LSP. The TLV is optional. If the TLV is included in LSPA object, the PCE MUST NOT recompute path in cases specified by flags in the TLV.</t>
        <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 = TBD2        |             Length = 4         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             Reserved         |      Flags                 |P|F|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork>
        <t>Type (16 bits): the value is TBD2 by IANA.</t>
        <t>Length (16 bits): 4 octets </t>
        <dl newline="false" spacing="normal">
          <dt>Reserved:</dt>
          <dd> MUST be set to zero by the sender and MUST be ignored by the receiver.</dd>
          <dt>Flags:</dt>
          <dd>
            <t> This document defines the following flag bits.  The other bits
              MUST be set to zero by the sender and MUST be ignored by the receiver.
            </t>
            <ul spacing="normal">
              <li>P (Permanent): If set to 1, the PCE MUST NOT recompute path even if current path is not satisfying path computation constraints. Otherwise, if this flag is cleared, then the PCE MAY recompute path if original path is invalidated.</li>
              <li>F (Force): If set to 1, the PCE MUST NOT update path. If flag is cleared, the PCE MAY update path based on explicit request from operator.</li>
            </ul>
          </dd>
        </dl>
      </section>
    </section>
    <section anchor="Operation" numbered="true" toc="default">
      <name>Operation</name>
      <section anchor="STRICT_PATH" numbered="true" toc="default">
        <name>Strict path enforcement</name>
        <t>PCC MAY set the O flag in LSP-EXTENDED-FLAG TLV in PCRpt message to the PCE to indicate that a path exclusively made of strict hops is required.</t>
        <t>O flag cleared or LSP-EXTENDED-FLAG TLV not included indicates that a loose path is acceptable.</t>
        <t>In PCUpdate or PCInitiate messages, PCE MAY set O bit if strict path is provided.</t>
        <t>The flag is applicable only for stateful messages. Existing O flag in RP object MAY be used to indicate similar behavior in PCReq and PCRep messages as described in as described in Section 7.4.1 of <xref target="RFC5440" format="default"/>.</t>
        <t>If O flag is set to 1 for both stateful and stateless messages for SR paths introduced in <xref target="RFC8664" format="default"/>, PCE MUST use only SIDs, which will use explicitly specified adjacencies for packet forwarding. For example Adjacency SIDs MAY be used, but Prefix SIDs MUST NOT be used (even if there is only one adjacency).  
the PCE MUST use Adjacency SIDs only.</t>
      </section>
      <section anchor="PATH_RECOMP" numbered="true" toc="default">
        <name>Path recomputation</name>
        <t>PCC MAY set flags in PATH-RECOMPUTATION TLV to control path computation behavior on PCE side. If TLV is not included, then the PCE MAY use local policy to trigger path-computation or LSP path update.</t>
        <t>The presence of the TLV is blocking path recomputation based on various triggers like topology update, any periodic update or changed state of other LSPs in the network. LSP path MAY be modified if forwarded packets will still use same path - for example if same path can be encoded using Adjacency and Prefix SIDs, then PCE MAY switch between various representations of same path.</t>
        <t>If P flag is cleared, the PCE MAY recompute if current path is not considered valid, for example after topology update resulting in path not satisfying LSP's path constraints, but it MUST NOT recompute path if current path is not optimal.</t>
        <t>If P flag is set, the PCE MUST NOT recompute path during LSP lifetime even if path is invalidated. Only exception is explicit request from operator to recompute path</t>
        <t>If F flag is cleared, path update triggered manually by operator or any northbound interface of PCE MAY be done. If flag is set the PCE CAN update path only to tear down LSP by sending PCUpdate message with empty ERO.</t>
        <t>TLV MAY be included in PCInitiate and PCUpdate messages to indicate, which triggers will be disabled on the PCE. PCC should reflect flag values in PCRpt messages to forward requirement to other PCEs in the network.</t>
      </section>
    </section>
    <section anchor="Security" numbered="true" toc="default">
      <name>Security Considerations</name>
      <t>No additional security measure is required.</t>
    </section>
    <section anchor="IANA" numbered="true" toc="default">
      <name>IANA Considerations</name>
      <section anchor="IANA_O_FLAG" numbered="true" toc="default">
        <name>LSP-EXTENDED-FLAG TLV</name>
        <t><xref target="I-D.ietf-pce-lsp-extended-flags" format="default"/> defines the LSP-EXTENDED-FLAG TLV.
   IANA is requested to make the following assignment from the "LSP-EXTENDED-FLAG TLV Flag Field" registry:</t>
        <table anchor="EXTENDED_TLV_O_FLAG-VALUE" 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">TBD1</td>
              <td align="left">Strict-Path Flag (O)</td>
              <td align="left">This document</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="IANA_RECOMP_TLV" numbered="true" toc="default">
        <name>PATH-RECOMPUTATION TLV</name>
        <t>IANA is requested to make the assignment of a new value for the existing "PCEP TLV Type Indicators" registry as follows:</t>
        <table anchor="RECOMP_TLV_TYPE" align="center">
          <thead>
            <tr>
              <th align="center">TLV Type</th>
              <th align="left">TLV Name</th>
              <th align="left">Reference </th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="center">TBD2</td>
              <td align="left">PATH-RECOMPUTATION TLV</td>
              <td align="left">This document</td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author initials="S." surname="Bradner" fullname="S. Bradner">
              <organization/>
            </author>
            <date year="1997" month="March"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification.  These words are often capitalized. This document defines these words as they should be interpreted in IETF documents.  This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC5440" target="https://www.rfc-editor.org/info/rfc5440" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5440.xml">
          <front>
            <title>Path Computation Element (PCE) Communication Protocol (PCEP)</title>
            <author initials="JP." surname="Vasseur" fullname="JP. Vasseur" role="editor">
              <organization/>
            </author>
            <author initials="JL." surname="Le Roux" fullname="JL. Le Roux" role="editor">
              <organization/>
            </author>
            <date year="2009" month="March"/>
            <abstract>
              <t>This document specifies the Path Computation Element (PCE) Communication Protocol (PCEP) for communications between a Path Computation Client (PCC) and a PCE, or between two PCEs.  Such interactions include path computation requests and path computation replies as well as notifications of specific states related to the use of a PCE in the context of Multiprotocol Label Switching (MPLS) and Generalized MPLS (GMPLS) Traffic Engineering.  PCEP is designed to be flexible and extensible so as to easily allow for the addition of further messages and objects, should further requirements be expressed in the future.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5440"/>
          <seriesInfo name="DOI" value="10.17487/RFC5440"/>
        </reference>
        <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author initials="B." surname="Leiba" fullname="B. Leiba">
              <organization/>
            </author>
            <date year="2017" month="May"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol  specifications.  This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the  defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC8231" target="https://www.rfc-editor.org/info/rfc8231" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8231.xml">
          <front>
            <title>Path Computation Element Communication Protocol (PCEP) Extensions for Stateful PCE</title>
            <author initials="E." surname="Crabbe" fullname="E. Crabbe">
              <organization/>
            </author>
            <author initials="I." surname="Minei" fullname="I. Minei">
              <organization/>
            </author>
            <author initials="J." surname="Medved" fullname="J. Medved">
              <organization/>
            </author>
            <author initials="R." surname="Varga" fullname="R. Varga">
              <organization/>
            </author>
            <date year="2017" month="September"/>
            <abstract>
              <t>The Path Computation Element Communication Protocol (PCEP) provides mechanisms for Path Computation Elements (PCEs) to perform path computations in response to Path Computation Client (PCC) requests.</t>
              <t>Although PCEP explicitly makes no assumptions regarding the information available to the PCE, it also makes no provisions for PCE control of timing and sequence of path computations within and across PCEP sessions.  This document describes a set of extensions to PCEP to enable stateful control of MPLS-TE and GMPLS Label Switched Paths (LSPs) via PCEP.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8231"/>
          <seriesInfo name="DOI" value="10.17487/RFC8231"/>
        </reference>
        <reference anchor="RFC8664" target="https://www.rfc-editor.org/info/rfc8664" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8664.xml">
          <front>
            <title>Path Computation Element Communication Protocol (PCEP) Extensions for Segment Routing</title>
            <author initials="S." surname="Sivabalan" fullname="S. Sivabalan">
              <organization/>
            </author>
            <author initials="C." surname="Filsfils" fullname="C. Filsfils">
              <organization/>
            </author>
            <author initials="J." surname="Tantsura" fullname="J. Tantsura">
              <organization/>
            </author>
            <author initials="W." surname="Henderickx" fullname="W. Henderickx">
              <organization/>
            </author>
            <author initials="J." surname="Hardwick" fullname="J. Hardwick">
              <organization/>
            </author>
            <date year="2019" month="December"/>
            <abstract>
              <t>Segment Routing (SR) enables any head-end node to select any path without relying on a hop-by-hop signaling technique (e.g., LDP or RSVP-TE). It depends only on "segments" that are advertised by link-state Interior Gateway Protocols (IGPs). An SR path can be derived from a variety of mechanisms, including an IGP Shortest Path Tree (SPT), an explicit configuration, or a Path Computation Element (PCE). This document specifies extensions to the Path Computation Element Communication Protocol (PCEP) that allow a stateful PCE to compute and initiate Traffic-Engineering (TE) paths, as well as a Path Computation Client (PCC) to request a path subject to certain constraints and optimization criteria in SR networks.</t>
              <t>This document updates RFC 8408.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8664"/>
          <seriesInfo name="DOI" value="10.17487/RFC8664"/>
        </reference>
        <reference anchor="I-D.ietf-pce-lsp-extended-flags" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-pce-lsp-extended-flags.xml" target="https://www.ietf.org/archive/id/draft-ietf-pce-lsp-extended-flags-09.txt">
          <front>
            <title>LSP Object Flag Extension of Stateful PCE</title>
            <author fullname="Quan Xiong">
              <organization>ZTE Corporation</organization>
            </author>
            <date month="October" day="23" year="2022"/>
            <abstract>
              <t>   RFC 8231 describes a set of extensions to 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 of the length of 12
   bits.  However, 11 bits of the Flag field have already been assigned
   in RFC 8231, RFC 8281 and RFC 8623.

   This document proposes to define a new LSP-EXTENDED-FLAG TLV for the
   LSP object for an extended flag field.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-pce-lsp-extended-flags-09"/>
        </reference>
        <reference anchor="I-D.peng-pce-entropy-label-position" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.peng-pce-entropy-label-position.xml" target="https://www.ietf.org/archive/id/draft-peng-pce-entropy-label-position-08.txt">
          <front>
            <title>PCEP Extension for SR-MPLS Entropy Label Position</title>
            <author fullname="Quan Xiong">
              <organization>ZTE Corporation</organization>
            </author>
            <author fullname="Shaofu Peng">
              <organization>ZTE Corporation</organization>
            </author>
            <author fullname="Fengwei Qin">
              <organization>China Mobile</organization>
            </author>
            <date month="August" day="29" year="2022"/>
            <abstract>
              <t>   This document proposes a set of extensions for PCEP to configure the
   entropy label position for SR-MPLS networks.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-peng-pce-entropy-label-position-08"/>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="I-D.schmutzer-spring-cs-sr-policy" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.schmutzer-spring-cs-sr-policy.xml" target="https://www.ietf.org/archive/id/draft-schmutzer-spring-cs-sr-policy-00.txt">
          <front>
            <title>Circuit Style Segment Routing Policies</title>
            <author fullname="Christian Schmutzer">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="Clarence Filsfils">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="Zafar Ali">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="Francois Clad">
              <organization>Cisco Systems</organization>
            </author>
            <date month="July" day="24" year="2022"/>
            <abstract>
              <t>   This document describes how Segment Routing (SR) policies can be used
   to satisfy the requirements for strict bandwidth guarantees, end-to-
   end recovery and persistent paths within a segment routing network.
   SR policies satisfying these requirements are called "circuit-style"
   SR policies (CS-SR policies).

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-schmutzer-spring-cs-sr-policy-00"/>
        </reference>
        <reference anchor="SONET">
          <front>
            <title>
		  Synchronous Optical Network (SONET) Basic Description including Multiplex Structure, Rates, and Formats  
            </title>
            <author>
              <organization>American National Standards Institute</organization>
            </author>
            <date month="January" year="1995"/>
          </front>
          <seriesInfo name="ANSI" value="T1.105"/>
        </reference>
        <reference anchor="SDH">
          <front>
            <title>
		  Network node interface for the synchronous digital hierarchy (SDH)  
            </title>
            <author>
              <organization>International Telecommunication Union</organization>
            </author>
            <date month="October" year="2020"/>
          </front>
          <seriesInfo name="ITU-T Recommendation" value="G.707"/>
        </reference>
      </references>
    </references>
  </back>
</rfc>
