<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<rfc
      xmlns:xi="http://www.w3.org/2001/XInclude"
      category="std"
      docName="draft-liu-pce-pcep-tunnel-flowspec-00"
      ipr="trust200902"
      obsoletes=""
      updates=""
      submissionType="IETF"
      xml:lang="en"
      tocInclude="true"
      tocDepth="4"
      symRefs="true"
      sortRefs="true"
      version="3">

 <!-- ***** FRONT MATTER ***** -->

 <front>
   <title abbrev="PCEP Tunnel Flow Spec">PCEP Extension for Tunneled Flow Specification</title>
    <seriesInfo name="Internet-Draft" value="draft-liu-pce-pcep-tunnel-flowspec-00"/>
   <author fullname="Yao Liu" surname="Liu">
      <organization>ZTE Corporation</organization>
      <address>
        <postal>
          <street/>
          <!-- Reorder these if your country does things differently -->

         <city></city>
          <region/>
          <code/>
          <country>China</country>
        </postal>
        <phone></phone>
        <email>liu.yao71@zte.com.cn</email>
        <!-- uri and facsimile elements may also be added -->
     </address>
    </author>
	
	
    <date year="2025"/>

   <!-- Meta-data Declarations -->

   <area>Routing</area>
    <workgroup>PCE</workgroup>
    <!-- WG name at the upperleft corner of the doc,
        IETF is fine for individual submissions.  
	 If this element is not present, the default is "Network Working Group",
        which is used by the RFC Editor as a nod to the history of the IETF. -->

   <keyword>PCEP</keyword>
   <keyword>Flow Specification</keyword>
    <!-- Keywords will be incorporated into HTML output
        files in a meta tag but they have no effect on text or nroff
        output. If you submit your draft to the RFC Editor, the
        keywords will be used for the search engine. -->

   <abstract>
    
	  <t>Traffic flows may be categorized and described using "Flow Specifications". RFC8955 defines the Flow Specification and describes how Flow Specification components are used to describe traffic flows. RFC8955 also defines how Flow Specifications may be distributed in BGP to allow specific traffic flows to be associated with routes.</t>
	  <t>RFC 9168 specifies a set of extensions to PCEP to support the dissemination of Flow Specifications. This allows a PCE to indicate what traffic should be placed on each path that it is aware of. </t>


<t>The extensions defined in this document extend the support for tunneled traffic filtering rules.
</t>  
    </abstract>
  </front>
  <middle>
  
    <section numbered="true" toc="default">
      <name>Introduction</name>  


 <t>The description of traffic flows by the combination of multiple Flow Specification components and their dissemination as traffic flow specifications (Flow Specifications) is described for BGP in <xref target="RFC8955"/>.  In BGP, a Flow Specification is comprised of traffic filtering rules and is associated with actions to perform on the packets that match the Flow Specification. The BGP routers that receive a Flow Specification can classify received packets according to the traffic filtering rules and can direct packets based on the associated actions. <xref target="I-D.ietf-idr-flowspec-v2"/> specifies version 2 of the BGP flow specification protocol that resolves some of the issues with version 1.</t>

 <t>When a PCE is used to initiate tunnels (such as TE-LSPs or SR paths) using PCEP, it is important that the head end of the tunnels understands what traffic to place on each tunnel.  The data flows intended for a tunnel can be described using Flow Specification components. When PCEP is in use for tunnel initiation, it makes sense for that same protocol to be used to distribute the Flow Specification components that describe what data is to flow on those tunnels.</t>

 <t><xref target="RFC9168"/> specifies a set of extensions to PCEP to support the dissemination of Flow Specification components.  It includes the creation, update, and withdrawal of Flow Specifications via PCEP. It can be applied to tunnels initiated by the PCE or to tunnels where control is delegated to the PCE by the PCC.  Furthermore, a PCC requesting a new path can include Flow Specifications in the request to indicate the purpose of the tunnel allowing the PCE to factor this into the path computation.</t>
 <t><xref target="I-D.ietf-pce-pcep-l2-flowspec"/> further extends the support for Ethernet Layer 2 (L2) and Layer 2 Virtual Private Network (L2VPN) traffic filtering rules in PCEP Flow Specifications.</t>

    <t><xref target="I-D.ietf-idr-flowspec-nvo3"/> defines a BGP flowspec extension to disseminate tunneled traffic filtering rules and flow specification components are specified for certain tunneling header fields. </t>
    
   <t>This document extends the same support for PCEP by defining a new Tunneled Flow Filter TLV to be carried within the FLOWSPEC object. The context and the procedures for the use of Flow Specifications are as per <xref target="RFC9168"/>.</t>

	  </section>


<section numbered="true" toc="default">
        <name>Terminology</name>

 <t>This document uses the following terms defined in <xref target="RFC5440"/>: PCC, PCE, PCEP Peer.</t>

 <t>The following term from <xref target="RFC8955"/> is used frequently throughout this document:</t>
       <t>A Flow Specification is an n-tuple consisting of several matching criteria that can be applied to IP traffic. A given IP packet is said to match the defined Flow Specification if it matches all the specified criteria.</t>

 <t>Its usage in PCEP is further clarified in <xref target="RFC9168"/>.</t>

	  
<section numbered="true" toc="default">	  
        <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> <xref target="RFC8174" format="default"></xref> when, and only when, they appear in all capitals, as shown here.</t>
      </section>

</section>


<section title="Tunneled Flow Specifications">

	<t>As per <xref target="RFC9168"/>, to carry Flow Specifications in PCEP messages, a PCEP object called the PCEP FLOWSPEC object is defined. To describe a traffic flow, a PCEP TLV called the Flow Filter TLV is also defined. This document extends the support for tunneled flow specifications by creating a new PCEP TLV called Tunneled Flow Filter TLV and updating the processing rules.</t>	
	<t>The PCEP FLOWSPEC object carries a FlowSpec filter rule encoded in a TLV. To describe a traffic flow based on the fields of the tunnel encapsulation, a new Tunneled Flow Filter TLV is introduced by this document. The PCEP FLOWSPEC object could carry no TLV or any combination of its TLVs, i.e., Flow Filter TLV<xref target="RFC9168"/>, L2 Flow Filter TLV<xref target="I-D.ietf-pce-pcep-l2-flowspec"/> and Tunneled Flow Filter TLV (this document), and TLV of the same type can only appear at most once in the object.</t>

    <t>At most one Tunneled Flow Filter TLV MAY be included in the PCEP FLOWSPEC object. The TLV is OPTIONAL when the R (remove) bit <xref target="RFC9168"/> is set in the object. At least one Flow Filter TLV or one L2 Flow Filter TLV or one Tunneled Flow Filter TLV MUST be present when the R bit is clear. If
 all the  TLVs are missing when the R bit is clear, the PCEP peer MUST respond with a PCErr message with Error-Type 30 (FlowSpec Error) and Error-value 2 (Malformed FlowSpec). When filtering is based on the tunneling header fields and the L3 or L2 fields of the flow, a Flow Filter TLV or an L2 Flow Filter TLV(or both of them) MAY be present together with the Tunneled Flow Filter TLV.</t>

    <t>The Tunneled TLV follows the format of all PCEP TLVs as defined in <xref target="RFC5440" />. The Type field values come from the codepoint space for PCEP TLVs and has the value TBA1. The value field of Tunneled Flow Filter TLV contains one or more sub-TLVs (<xref target="tunl-subtlv"/>), and they are specified for certain tunneling header fields.</t>

	<t>The rest of the procedures are same as <xref target="RFC9168"/>.</t>


	<section title="Tunneled Flow Specification TLVs" anchor="tunl-subtlv">

   <t>The Tunneled Flow Filter TLV carries one or more Tunneled Flow Specification TLVs.  The Tunneled Flow Specification TLV follows the format of all PCEP TLVs as defined in <xref target="RFC5440" />.  However, the Type values are selected from a separate IANA registry (see <xref target="iana-2" />) rather than from the common PCEP TLV registry.</t>

    <t>Type values are chosen so that there can be commonality with Tunneled Flow Specifications defined for use with BGP <xref target="I-D.ietf-idr-flowspec-nvo3"/>.  This is possible because the BGP Flow Spec encoding uses a single octet to encode the type whereas PCEP uses two octets. Thus the space of values for the Type field is partitioned as shown in <xref target="Tul-fspectlvs" />.</t>
	
	    <figure title="Tunneled Flow Specification TLV Type Ranges" anchor="Tul-fspectlvs">
      <artwork>
        <![CDATA[
   Range          |
   ---------------+-------------------------------------------------
   0 .. 255       | Per BGP registry defined by
                  | [I-D.ietf-idr-flowspec-nvo3].
                  | Not to be allocated in this registry.
                  |
   256 ..   65535 | New PCEP Flow Specifications allocated according
                  | to the registry defined in this document.
        ]]>
      </artwork>
    </figure>
	
   <t><xref target="I-D.ietf-idr-flowspec-nvo3"/> is the reference for the registry "Tunneled Flow Spec Component Types" and defines the allocations it contains.</t>

   <t>The content of the Value field in each TLV is specific to the type and describes the parameters of the Flow Specification. The definition of the format of many of these Value fields is inherited from BGP specifications. Specifically, the inheritance is from <xref target="I-D.ietf-idr-flowspec-nvo3"/>, but may also be inherited from future BGP specifications.</t>

   <t>When multiple Tunneled Flow Specification TLVs are present in a single Tunneled Flow Filter TLV, they are combined to produce a more detailed specification of a flow. Similarly, when one of or both the Flow Filter TLV and L2 Flow Filter TLV are present together with Tunneled Flow Filter TLV, they are combined to produce a more detailed specification of a flow.</t>

   <t>An implementation that receives a PCEP message carrying a Tunneled Flow Specification TLV with a type value that it does not recognize or does not support MUST respond with a PCErr message with Error-Type 30 (FlowSpec Error) and Error-value 1 (Unsupported FlowSpec) and MUST NOT install the Flow Specification.</t>

   <t>All Tunneled Flow Specification TLVs with Types in the range 0 to 255 have their Values interpreted as defined for use in BGP (for example, in <xref target="I-D.ietf-idr-flowspec-nvo3"/>) and are set using the BGP encoding, but without the type octet (the relevant information is in the Type field of the TLV).  The Value field is padded with trailing zeros to achieve 4-byte alignment.</t>

   <t>This document defines no new types.</t>

 </section>
</section>



<section title="IANA Considerations">

 <t>IANA maintains the "Path Computation Element Protocol (PCEP) Numbers" registry. This document requests IANA actions to allocate code points for the protocol elements defined in this document.</t>

 <section title="PCEP TLV Type Indicators">

   <t>IANA maintains a registry called "PCEP TLV Type Indicators" under the "Path Computation Element Protocol (PCEP) Numbers" registry group.  IANA is requested to make an assignment from this registry as follows:</t>


     <artwork>
       <![CDATA[
Value   | Meaning                      | Reference
--------+------------------------------+-------------
 TBA1   |Tunneled FLOW FILTER TLV      | this document
       ]]>
     </artwork>

 </section>



 <section title="Tunneled Flow Specification TLV Type Indicators" anchor="iana-2">

   <t>IANA is requested to create a new registry called the "PCEP Tunneled Flow Specification TLV Type Indicators" registry.</t>

   <t>Allocations from this registry are to be made according to the following assignment policies <xref target="RFC8126" />:</t>


     <artwork>
       <![CDATA[
 Range          | Assignment policy
 ---------------+---------------------------------------------------
 0 .. 255       | Reserved - must not be allocated.
                | Usage mirrors the BGP Tunneled FlowSpec registry
                | [I-D.ietf-idr-flowspec-nvo3].
                |
 256 ..   64506 | IETF Review
                |
 64507 .. 65531 | First Come First Served
                |
 65532 .. 65535 | Experimental
       ]]>
     </artwork>

   <t>This document makes no allocations in the newly created registry.</t>

 </section>


</section>

<section title="Security Considerations" anchor="Security">

 <t>The security considerations in <xref target="RFC9168"/> apply to this document as well.</t>
<t>No new security issues are introduced to the PCEP protocol by this specification.</t> 

</section>


    <section title="Manageability Considerations" toc="default">
      <section title="Control of Function and Policy" toc="default">
        <t><xref target="RFC9168"/> describe the management of multiple flowspecs as well as control via configurations and policies. This is applicable to the Tunneled flowspec defined in this document.</t>

      </section>

      <section title="Information and Data Models" toc="default">
        <t>The PCEP YANG module <xref target="RFC9826"/> would need to be augmented to cover tunneled flowspec.</t>
      </section>

      <section title="Liveness Detection and Monitoring" toc="default">
        <t>Mechanisms defined in this document do not imply any new liveness  detection and monitoring requirements in addition to those already listed in <xref target="RFC5440"/>.</t>
      </section>

      <section title="Verify Correct Operations" toc="default">
        <t>Mechanisms defined in this document do not imply any new operation verification requirements in addition to those already listed in <xref target="RFC9168"/>.</t>
      </section>

      <section title="Requirements On Other Protocols" toc="default">
        <t>Mechanisms defined in this document do not imply any new requirements on other protocols.</t>
      </section>

      <section title="Impact On Network Operations" toc="default">
        <t>Mechanisms defined in this document do not have any new impact on network operations in addition to those already listed in <xref target="RFC9168"/>.</t>
      </section>
    </section>	
  </middle>
  <!--  *****BACK MATTER ***** -->

 <back>

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

		<?rfc include="reference.RFC.2119.xml"?>
		<?rfc include="reference.RFC.8174.xml"?>		
		<?rfc include="reference.RFC.5440.xml"?>
		<?rfc include='reference.I-D.ietf-idr-flowspec-nvo3'?>
		<?rfc include="reference.RFC.8955.xml"?>		
		<?rfc include="reference.RFC.9168.xml"?>		
	  
      </references>
      <references>
        <name>Informative References</name>
	<?rfc include="reference.RFC.8126.xml"?>
	<?rfc include="reference.RFC.9826.xml"?>
	<?rfc include='reference.I-D.ietf-idr-flowspec-l2vpn'?>
	<?rfc include='reference.I-D.ietf-idr-flowspec-v2'?>
    <?rfc include='reference.I-D.ietf-pce-pcep-l2-flowspec'?>	
      </references>
    </references>


 </back>
</rfc>
