<?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-02"
      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 DetNet Bounded Latency">PCEP Extension for DetNet Bounded Latency</title>
    <seriesInfo name="Internet-Draft" value="draft-xiong-pce-detnet-bounded-latency-02"/>

   <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 to PCEP to carry deterministic 
	  latency constraints and distribute deterministic paths for 
	  end-to-end path computation in DetNet service.</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.xiong-detnet-large-scale-enhancements" format="default"/> has proposed the 
	  packet treatment which should support new functions such as
	  queuing mechanisms to ensure the deterministic latency. 
	  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 transimission. When the PCE is deployed, the path 
	  computation should be applicable for DetNet 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 constriants should be 
	  extended for PCEP. Moreover, the information along the deterministic 
	  path should be provided to the PCC after the path conputation such as 
	  queuing parameters. </t>
	  
	  <t>This document describes the extensions to PCEP to carry deterministic 
	  latency constraints and distribute deterministic paths for 
	  end-to-end path computation in DetNet service.</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 latecny and 
	 the end-to-end lower bounded latecny 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
   defiend 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 Object</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 pakects headers. This document 
	defines Deterministic Path Object (DPO) to distribute the deterministic 
	latency Action Information through DetNet networks.</t>
	
    <t>DPO Object-Class is TBD3.</t>

    <t>DPO Object-Type is TBD4.</t>

    <t>The format of the DPO object body is as follows:</t>
	
	
<figure title=" DPO Object Body 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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |          DLA Type             |            Reserved           | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   //    Deterministic Latency Action Information Optional TLVs   //
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   
   	   </artwork>
 </figure>
	

	<t>DLA (Deterministic Latency Action) Type (16bits): indicates the type
	of queuing algorithm and each type represents the corresponding queuing 
	mechanisms. The type can be defined refer to the queuing mechanisms
	which have been discussed such as <xref target="RFC9320" pageno="false" format="default"/>.
	More types can be defined due to the new queuing mechanisms.</t>
	
	 <t>1: indicates the Time Aware Shaping [IIEEE802.1Qbv].</t>

     <t>2: indicates the Credit-Based Shaper[IEEE802.1Q-2014].</t>
	 
	 <t>3: indicates the Asynchronous Traffic Shaping [IEEE802.1Qcr].</t>
	 
	 <t>4: indicates the Cyclic Queuing and Forwarding [IEEE802.1Qch].</t>
	 
	 <t>5: indicates the Deadline Based Forwarding <xref target="I-D.peng-detnet-deadline-based-forwarding" format="default"/>.</t>
	 
	 <t>6: indicates the Multiple Cyclic Buffers Queuing Mechanism
	<xref target="I-D.dang-queuing-with-multiple-cyclic-buffers" format="default"/>.</t>
	
     <t>7: indicates the ADN mechanism defined in 
	<xref target="I-D.joung-detnet-asynch-detnet-framework" format="default"/>.</t>
	
     <t>8: indicates the SR TSN local deadline mechanism defined in 
	 <xref target="I-D.stein-srtsn" format="default"/>.</t>
	 
     <t>9: indicates the Packet Timeslot mechanism defined in 
	 <xref target="I-D.peng-detnet-packet-timeslot-mechanism" format="default"/>.</t>
	 
	 <t> Deterministic Latency Action Infomation Optional TLVs (variable): indicuates 
	 the corresponding Deterministic Latency Action parameters. The current
	 TLVs including Deadline TLV, Cycle TLV and Timeslot TLV are proposed
	 as following sections.</t>
	
    <section numbered="true" toc="default"> <name>Deadline TLV</name>
	
	 <t>Deadline TLV is optional for the Deterministic Path Object.
	 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 along the path 
	should be computed at PCE and configured to the PCC, and then inserted 
	into the packet headers. When the Queuing Algorithm Type is set to indicate 
	the deadline-based queuing mechanisms, the Deadline TLV should be used 
	to carry the deadline parameters.</t> 
	  
 <figure title="Deadline TLV" 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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |            Type               |          Length               | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                        Deadline                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   
   	   </artwork>
 </figure>		   

	<t>Type (16bits): TBD3, indicates the type of Deadline TLV.</t>
	<t>Length (16bits): indicated the length of Deadline TLV.</t>
	<t>Deadline (32bits): indicates the deadline time for a node to 
	forward a DetNet flow.</t>
	</section>
		
		
    <section numbered="true" toc="default"><name>Cycle TLV</name>
	
    <t>Cycle TLV is optional for the Deterministic Path Object.
	 The cyclic-based queuing mechanism has been proposed in [IEEE802.1Qch] and 
	 improved in <xref target="I-D.dang-queuing-with-multiple-cyclic-buffers" format="default"/>. The clycle
	 along the path should be computed at PCE and configured to the PCC, 
	 and then inserted into the packet headers. When the Queuing Algorithm 
	 Type is set to indicate the cycle-based queuing mechanisms, the Cycle
	 TLV should be used to carry the cycle parameters.</t> 
    
<figure title="Cycle TLV" 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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |            Type               |          Length               | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     Cycle Profile ID                          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                        Cycle ID                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
	
   	   </artwork>
 </figure>	
 
    <t>Type (16bits): TBD4, indicates the type of Cycle TLV.</t>
	<t>Length (16bits): indicated the length of Cycle TLV.</t>
    <t>Cycle Profile ID (32bits): indicates the profile ID which the 
	cyclic queue applied at a node.</t>
 	<t>Cycle ID (32bits): indicates the Cycle ID for a node to 
	forward a DetNet flow.</t>
      
      
	</section>

    <section numbered="true" toc="default"><name>Timeslot TLV</name>
	
    <t>Timeslot TLV is optional for the Deterministic Path Object. The 
	 timeslot-based queuing mechanism has been proposed in <xref target="I-D.peng-detnet-packet-timeslot-mechanism" format="default"/>. 
	 The timeslot ID along the path should be computed at PCE and configured 
	 to the PCC, and then inserted into the packet headers. When the 
	 Queuing Algorithm Type is set to indicate the Timeslot-based queuing 
	 mechanisms, the Timeslot TLV should be used to carry the parameters.</t> 
    
<figure title="Timeslot TLV" 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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |            Type               |          Length               | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                        Timeslot ID                            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
	
   	   </artwork>
 </figure>	
 
    <t>Type (16bits): TBD4, indicates the type of Timeslot TLV.</t>
	<t>Length (16bits): indicated the length of Timeslot TLV.</t>
 	<t>Timeslot ID (32bits): indicates the Timeslot ID for a node to 
	forward a DetNet 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>
   <t>TBA</t>
   </section> 
   <section numbered="true" toc="default"> <name>Acknowledgements</name>
   <t>TBA</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-joung-detnet-asynch-detnet-framework.xml"/>
  	    <xi:include href="https://datatracker.ietf.org/doc/bibxml3/draft-dang-queuing-with-multiple-cyclic-buffers.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"/>
		
      </references>
    </references>
 
 </back>
</rfc>
