<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent">
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<rfc
      xmlns:xi="http://www.w3.org/2001/XInclude"
      category="std"
      docName="draft-xiong-pce-detnet-bounded-latency-04"
      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 Extension for Bounded Latency">PCEP Extension for Bounded Latency</title>
    <seriesInfo name="Internet-Draft" value="draft-xiong-pce-detnet-bounded-latency-04"/>

   <author fullname="Quan Xiong" initials="Q" role="editor" surname="Xiong">
      <organization>ZTE Corporation</organization>
      <address>
        <postal>
          <street/>
         <city></city>
          <region/>
          <code/>
          <country>China</country>
        </postal>
        <phone></phone>
        <email>xiong.quan@zte.com.cn</email>
     </address>
    </author>
	
    <author fullname="Peng Liu" initials="P" surname="Liu">
      <organization>China Mobile</organization>

      <address>
        <postal>
          <street></street>
          
          <city>Beijing</city>
          
          <region></region>
  
          <code></code>

          <country>China</country>
        </postal>

        <phone/>

        <email>liupengyjy@chinamobile.com</email>
      </address>
    </author>
	
    <author fullname="Rakesh Gandhi" initials="R" surname="Gandhi">
      <organization>Cisco Systems, Inc.</organization>

      <address>
        <postal>
          <street></street>
          
          <city></city>
          
          <region></region>
  
          <code></code>

          <country>Canada</country>
        </postal>

        <phone/>

        <email>rgandhi@cisco.com</email>
      </address>
    </author>	

   <area>Routing</area>
    <workgroup>PCE</workgroup>
   <keyword></keyword>
   
   <abstract>
      <t>In certain networks, such as Deterministic Networking (DetNet), it 
	  is required to consider the bounded latency for path selection. 
	  This document describes the extensions for  Path Computation
      Element Communication Protocol (PCEP) to carry deterministic 
	  latency constraints and distribute deterministic paths for 
	  end-to-end path computation in deterministic services.</t>
	  
    </abstract>
  </front>
  <middle>
    <section numbered="true" toc="default"> <name>Introduction</name>
	
	  <t><xref target="RFC5440" pageno="false" format="default"/> describes the Path Computation Element Protocol (PCEP)
      which is used between a Path Computation Element (PCE) and a Path
      Computation Client (PCC) (or other PCE) to enable computation of
      Multi-protocol Label Switching (MPLS) for Traffic Engineering Label
      Switched Path (TE LSP). PCEP Extensions for the Stateful PCE Model
      <xref target="RFC8231" pageno="false" format="default"/> describes a set of extensions to PCEP to enable active
      control of MPLS-TE and Generalized MPLS (GMPLS) tunnels.  As depicted
      in <xref target="RFC4655" pageno="false" format="default"/>, a PCE MUST be able to compute the path of a TE LSP by
      operating on the TED and considering bandwidth and other constraints
      applicable to the TE LSP service request.  The constraint parameters
      are provided such as metric, bandwidth, delay, affinity, etc.
      However these parameters can't meet the DetNet requirements.</t>
	  
	  <t>According to <xref target="RFC8655" pageno="false" format="default"/>, Deterministic Networking (DetNet) operates 
	  at the IP layer and delivers service which provides extremely low data
      loss rates and bounded latency within a network domain. The bounded 
	  latency indicates	the minimum and maximum end-to-end latency from source 
	  to destination and bounded jitter (packet delay variation). 
	  <xref target="I-D.ietf-detnet-scaling-requirements"></xref>has described the 
	  enhanced requirements for DetNet enhanced data plane including the deterministic 
	  latency guarantees and information used by functions ensuring deterministic
      latency should be supported. A common data fields can be defined as per
      <xref target="I-D.xiong-detnet-data-fields-edp" pageno="false" format="default"/> and 
	  a Deterministic Latency Action (DLA) option has been proposed to carry 
	  queuing-based metadata. The computing method of end-to-end delay bounds 
	  is defined in <xref target="RFC9320" pageno="false" format="default"/>.
	  It is the sum of the 6 delays in DetNet bounded latency model. And these
	  delays should be measured and collected by IGP, but the related mechanisms
      are out of this document. The end-to-end delay bounds can also be computed 
	  as the sum of non queuing delay bound and queuing delay bound along the
	  path. The upper bounds of non queuing delay are constant and depend on the
	  specific network and the value of queuing delay bound depends on the 
	  queuing mechanisms deployed along the path.</t>
	  
	  <t>As per <xref target="I-D.ietf-detnet-controller-plane-framework" pageno="false" format="default"/>, explicit path should 
	  be calculated and established in control plane to guarantee the 
	  deterministic transmission. The corresponding IS-IS and OSPF extensions
	  are specified in <xref target="I-D.peng-lsr-deterministic-traffic-engineering" pageno="false" format="default"/>.
	  When the PCE is deployed, the path computation should be applicable 
	  for deterministic networks. It is required that bounded latency including 
	  minimum and maximum end-to-end latency and bounded delay variation 
	  are considered during the deterministic path selection for PCE. 
	  The bounded latency constraints  should be extended for PCEP. Moreover, 
	  the information along the deterministic path should be provided to the 
	  PCC after the path computation such as queuing parameters. </t>
	  
	  <t>This document describes the extensions for PCEP to carry deterministic 
	  latency constraints and distribute deterministic paths for 
	  end-to-end path computation in deterministic services.</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", "MAY", and "OPTIONAL" in this
       document are to be interpreted as described in <xref target="RFC2119" format="default">RFC 2119</xref>.</t>
	   
      </section>
    </section>
	
    <section anchor="Terminology" numbered="true" toc="default"> <name>Terminology</name>
	<t>The terminology is defined as <xref target="RFC8655" pageno="false" format="default"/> and
	<xref target="RFC5440" pageno="false" format="default"/>.</t>
     
    </section>
	
   <section numbered="true" toc="default"><name>PCEP Extensions</name>
   
   <section numbered="true" toc="default"> <name>METRIC Object</name>
   
     <t>The METRIC object is defined in Section 7.8 of <xref target="RFC5440" pageno="false" format="default"/>, comprising
     metric-value and metric-type (T field), and a flags field, comprising
     a number of bit flags (B bit and C bit).  This document defines two
     types for the METRIC object.</t>
	 
     <section numbered="true" toc="default"> <name>End-to-End Bounded Delay Metric</name>
	 
	 <t> <xref target="RFC8233" pageno="false" format="default"/> has proposed the Path Delay metric type of the METRIC object
     to represent the sum of the Link Delay metric of all links along a P2P path.
     This document proposes the End-to-End Bounded Delay metric in PCEP to 
	 represent the sum of Output delay, Link delay, Frame preemption delay,
	 Processing delay, Regulation delay and Queuing delay as defined in 
	 <xref target="RFC9320" pageno="false" format="default"/> along a deterministic path. Or the 
	 End-to-End Bounded Delay metric can be encoded as the sum of
	 non queuing delay bound and queuing delay bound along the deterministic
	 path. The extensions for End-to-End Bounded Delay Metric are as
	 following shown: </t>
	 
	 <ul spacing="normal">
	 
	 <li>T=TBD1: End-to-End Bounded Delay Metric.</li>
	 <li>The value of End-to-End Bounded Delay Metric is the encoding 
	 in units of microseconds with 32 bits.</li>
	 <li>The B bit MUST be set to suggest a maximum bound for the  
	 end-to-end delay of deterministic path. The end-to-end delay
	 must be less than or equal to the value.</li>
	 </ul>
	 
	 <t>A PCC MAY use the End-to-End Bounded Latency metric in a Path 
	 Computation Request (PCReq) message to request a deterministic path 
	 meeting the end-to-end latency requirement. A PCE MAY use the End-to-End
	 Bounded Latency  metric in a Path Computation Reply (PCRep) message 
	 along with a NO-PATH object in the case where the PCE cannot compute
	 a path meeting this constraint.  A PCE can also use this metric to 
	 send the computed end-to-end bounded latency to the PCC.</t>
     </section>
	
     <section numbered="true" toc="default"> <name>End-to-End Bounded Jitter Metric</name>
	 
     <t><xref target="RFC8233" pageno="false" format="default"/> has proposed the Path Delay Variation metric type of the METRIC 
	 object to represent the sum of the Link Delay Variation metric of all links 
	 along the path. This document proposes the End-to-End Bounded Jitter metric in PCEP to 
	 represent the difference between the end-to-end upper bounded latency and 
	 the end-to-end lower bounded latency along a deterministic path.
	 The extensions for End-to-End Bounded Jitter Metric are as
	 following shown: </t>
	 
	 <ul spacing="normal">
	 
	 <li>T=TBD2: End-to-End Bounded Jitter Metric.</li>
	 
	 <li>The value of End-to-End Bounded Jitter Metric is the encoding 
	 in units of microseconds with 32 bits.</li>
	 
	 <li>The B bit MUST be set to suggest a maximum bound for the  
	 end-to-end jitter of deterministic path. The end-to-end jitter
	 must be less than or equal to the value.</li>
	  </ul>

	 <t>A PCC MAY use the End-to-End Bounded Jitter metric in a PCReq 
	 message to request a deterministic path meeting the end-to-end 
	 delay variation requirement. A PCE MAY use the End-to-End Bounded 
	 Jitter metric in a PCRep message along with a NO-PATH object in 
	 the case where the PCE cannot compute a path meeting this constraint.  
	 A PCE can also use this metric to send the computed end-to-end bounded
	 Jitter to the PCC.</t>
     </section>
   </section>

   <section numbered="true" toc="default"> <name>LSP Object</name>
  
  <t>The LSP Object is defined in Section 7.3 of <xref target="RFC8231"></xref>.  This document
   defines a new flag (D-flag) to present the deterministic path for
   the LSP-EXTENDED-FLAG TLV carried in LSP Object as defined in 
   <xref target="RFC9357" pageno="false" format="default"/>.</t>
   
   <t> D (Request for Deterministic Path) : If the bit is set to 1, it 
   indicates that the PCC requests PCE to compute the deterministic path.
   A PCE would also set this bit to 1 to indicate that the deterministic 
   path is included by PCE and encoded in the PCRep, PCUpd or PCInitiate 
   message.</t>
   
   </section>
	
   <section numbered="true" toc="default"> <name>Deterministic Path ERO Subobject</name>

	<t>As defined in <xref target="RFC9320" pageno="false" format="default"/>, the end-to-end delay bounds
	can be presented as the sum of non queuing delay bound and queuing delay
	bound along the path. The upper bounds of non queuing delay are constant 
	and depend on the specific network, but the value of queuing delay bound 
	depends on the queuing mechanisms deployed along the deterministic path.
    <xref target="I-D.xiong-detnet-data-fields-edp" pageno="false" format="default"/> and 
	a Deterministic Latency Action (DLA) option has been proposed to carry 
	the queuing information. So to meet the requirements of the end-to-end 
	delay, the PCE should select a path with a specific queuing mechanism
	and configure the related parameters to the PCC. And the PCC may insert 
	the queuing-based information into the packet headers.</t>
	
	<t>The ERO specified in <xref target="RFC5440" pageno="false" format="default"/>
	can be used to carry deterministic path information. In order to carry 
	deterministic latency Action Information such as queuing information, 
	this document defines a new ERO subobject referred to as the Deterministic
	Path ERO subobject (DP-ERO). An ERO carrying a deterministic path consists 
	of one or more ERO subobjects, and it MUST carry DP-ERO subobjects.</t>
	
    <t>An DP-ERO subobject is formatted as shown in the following figure.</t>
	
<figure title=" DP-ERO Subobject Format " align="center" suppress-title="false" alt="" width="" height="">
         <artwork align="center" xml:space="preserve" name="" type="" alt="" width="" height="">	
 
    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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |L|  Type=TBD3  |     Length    |     Class     |    DLA Type   |        
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   //                DLA Information(variable, optional)          //
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   
   	   </artwork>
 </figure>
    <t>L (1bit): The L bit is an attribute of the subobject.  The L bit is set
    if the subobject represents a loose hop in the explicit route.
    If the bit is not set, the subobject represents a strict hop in
    the explicit route.</t>
	
	<t>Type (8bits):  Set to TBD3.</t>
	
    <t>Length (8bits): Contains the total length of the subobject in octets.  
	The Length MUST be at least 8 and MUST be a multiple of 4. </t>
	
	<t>Class (8bits): indicates the deterministic forwarding class. </t>

	<t>DLA Type (8bits): indicates the type of DLA information. </t>
	 
	<t>DLA Information (variable): indicates the corresponding 
	 Deterministic Latency Action parameters. The format depends on 
	 the value in the DLA type and the following sections shows
	 the examples of the DLA information.</t>
	 
    <section numbered="true" toc="default"> <name>Deadline Information</name>
	
	 <t>When the DLA Type is deadline-based queuing mechanisms, it should carry 
	 deadline information for the DP-ERO subobject. For example, the deadline-based 
	 queuing mechanism has been proposed in <xref target="I-D.stein-srtsn" format="default"/> and 
	<xref target="I-D.peng-detnet-deadline-based-forwarding" format="default"/>. 
	The deadlines parameters along the path should be computed at PCE and 
	configured to the PCC, and then inserted into the packet headers. 
	The format of the deadline information is shown as following figure.</t> 
	  
 <figure title="Deadline Information" align="center" suppress-title="false" alt="" width="" height="">
         <artwork align="center" xml:space="preserve" name="" type="" alt="" width="" height="">	
    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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                        Deadline                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   
   	   </artwork>
 </figure>		   

	<t>Deadline (32bits): indicates the deadline or budget delay for 
	a node to forward a flow.</t>
	</section>
		
		
    <section numbered="true" toc="default"><name>Cycle Information</name>
	
    <t>When the DLA Type is cyclic-based queuing mechanisms, it should carry 
	 Cycle information for the DP-ERO subobject. For example, the cyclic-based
	 queuing mechanism has been proposed in [IEEE802.1Qch] and improved in
	 <xref target="I-D.chen-detnet-sr-based-bounded-latency" format="default"/>. 
	 The cycle parameters along the path should be computed at PCE and 
	 configured to the PCC, and then inserted into the packet headers. 
     The format of the cycle information is shown as following figure.</t>	 
    
<figure title="Cycle Information" align="center" suppress-title="false" alt="" width="" height="">
         <artwork align="center" xml:space="preserve" name="" type="" alt="" width="" height="">	
    
    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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     Cycle Profile ID                          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                        Cycle ID                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
	
   	   </artwork>
 </figure>	
    <t>Cycle Profile ID (32bits): indicates the profile number which the 
	cyclic queue applied at a node.</t>
 	<t>Cycle ID (32bits): indicates the clycle number for a node to 
	forward a flow.</t>
      
      
	</section>

    <section numbered="true" toc="default"><name>Timeslot Information</name>
	
    <t>When the DLA Type is timeslot-based queuing mechanisms, it should carry 
	 timeslot information for the DP-ERO subobject. For example, the 
	 timeslot-based queuing mechanism has been proposed in <xref target="I-D.peng-detnet-packet-timeslot-mechanism" format="default"/>. 
	 The timeslot parameters along the path should be computed at PCE 
	 and configured to the PCC, and then inserted into the packet headers. 
	 The format of the timeslot information is shown as following figure.</t>
    
<figure title="Timeslot Information" align="center" suppress-title="false" alt="" width="" height="">
         <artwork align="center" xml:space="preserve" name="" type="" alt="" width="" height="">	
    
    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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                        Timeslot ID                            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
	
   	   </artwork>
 </figure>	
 

 	<t>Timeslot ID (32bits): indicates the timeslot number for a node to 
	forward a flow.</t>
      
	</section>	
	
 	</section>
	
   </section>
   
   <section  numbered="true" toc="default"> <name>Security Considerations</name>
   <t>TBA</t>
   </section>
   <section numbered="true" toc="default"> <name>IANA Considerations</name>
   
    <section numbered="true" toc="default"> <name>New Metric Types</name>
    <t>This document defines two new metric type for the PCEP.
	IANA is requested to allocate the following codepoint in 
	the PCEP "METRIC Object T Field" registry:	</t>
	<artwork><![CDATA[
     Value     Description                        Reference
     ------    -------------------------------    -------------
     TBD1      End-to-End Bounded Delay Metric    This document
     TBD2      End-to-End Bounded Jitter Metric   This document
]]></artwork>
	 
    </section>
   
  <section numbered="true" toc="default"> <name>New LSP-EXTENDED-FLAG Flag Registry</name> 
	<t><xref target="RFC9357" format="default"/> defines the LSP-EXTENDED-FLAG TLV.  
	IANA is requested to make allocations from the Flag field registry, as follows:</t>
	 
	 <artwork><![CDATA[
     Bit       Description                       Reference
     ------    ------------------------------    -------------
     D flag    Request for Deterministic Path    This document
]]></artwork>
    </section>
	
	<section numbered="true" toc="default"> <name>New ERO Subobject</name> 
   <t>This document defines a new subobject type for the PCEP explicit
   route object (ERO).  The code points for subobject types of these
   objects is maintained in the RSVP parameters registry, under the
   EXPLICIT_ROUTE objects.  IANA is requested to confirm the following 
   allocations in the RSVP Parameters registry for
   each of the new subobject types defined in this document.</t>
   
  <artwork><![CDATA[
   Object                Subobject                  Subobject Type
   --------------        ---------------------      ---------------
   EXPLICIT_ROUTE        DP-ERO (PCEP-specific)     TBD3

]]></artwork>
	 
     </section>
	
    </section>
	
   <section numbered="true" toc="default"> <name>Acknowledgements</name>
   <t>The authors would like to thank Dhruv Dhody, 	Andrew Stone, Lou Berger, 
   Janos Farkas for their review, suggestions and comments to this document.</t>
   </section> 
   
  </middle>
  
  <!--  *****BACK MATTER ***** -->

 <back>
 
    <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.7752.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5120.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4915.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4655.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.6549.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8664.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8655.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.9357.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.9320.xml"/>	
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8233.xml"/>
        <xi:include href="https://datatracker.ietf.org/doc/bibxml3/draft-ietf-detnet-scaling-requirements.xml"/>
        <xi:include href="https://datatracker.ietf.org/doc/bibxml3/draft-joung-detnet-asynch-detnet-framework.xml"/>
  	    <xi:include href="https://datatracker.ietf.org/doc/bibxml3/draft-chen-detnet-sr-based-bounded-latency.xml"/>
        <xi:include href="https://datatracker.ietf.org/doc/bibxml3/draft-peng-detnet-deadline-based-forwarding.xml"/>
        <xi:include href="https://datatracker.ietf.org/doc/bibxml3/draft-peng-6man-deadline-option.xml"/>
	    <xi:include href="https://datatracker.ietf.org/doc/bibxml3/draft-xiong-detnet-large-scale-enhancements.xml"/>
        <xi:include href="https://datatracker.ietf.org/doc/bibxml3/draft-ietf-detnet-controller-plane-framework.xml"/>
	    <xi:include href="https://datatracker.ietf.org/doc/bibxml3/draft-peng-detnet-packet-timeslot-mechanism.xml"/>
	    <xi:include href="https://datatracker.ietf.org/doc/bibxml3/draft-stein-srtsn.xml"/>
	    <xi:include href="https://datatracker.ietf.org/doc/bibxml3/draft-ietf-pce-segment-routing-ipv6.xml"/>
	    <xi:include href="https://datatracker.ietf.org/doc/bibxml3/draft-xiong-detnet-data-fields-edp.xml"/>
		<xi:include href="https://datatracker.ietf.org/doc/bibxml3/draft-peng-lsr-deterministic-traffic-engineering.xml"/>
		
      </references>
    </references>
 
 </back>
</rfc>
