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

   <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>
	
	
	
    <date year="2022"/>

   <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 bounded 
	  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). The computing 
	  method of end-to-end delay bounds is defined in [draft-ietf-detnet-bounded-latency].
	  It is the sum of the 6 delays in DetNet bounded latency model. And these
	  delays should be measured and ccollected, 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 [draft-ietf-detnet-controller-plane-framework], 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 bounded 
	  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 [RFC5440], 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 Latency Metric</name>
	 
	 <t>[RFC8233] 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 Latency 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 
	 [draft-ietf-detnet-bounded-latency] along a deterministic path. Or the 
	 End-to-End Bounded Latency 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 Latency Metric are as
	 following shown: </t>
	 
	 <ul spacing="normal">
	 
	 <li>T=TBD1: End-to-End Bounded Latency Metric.</li>
	 <li>The value of End-to-End Bounded Latency 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 latency of deterministic path. The end-to-end latency
	 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>RFC8233 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 
   [draft-ietf-pce-lsp-extended-flags].</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>ERO Object</name>
	
	<t>The Explicit Route Object (ERO) is defined in RFC5440 to encode
	the path of a TE LSP through the network. SR-ERO subobject is used 
	for SR-TE path which consists of one or more SIDs as defined in <xref target="RFC8664"></xref>. 
	SRV6-ERO subobject is used for SRv6 path as defined in 
	[draft-ietf-pce-segment-routing-ipv6]. This document defines 
	deterministic path information for ERO, SR-ERO and SRv6-ERO subobjects.</t>
	
    <section numbered="true" toc="default"><name>Queue Information Structure</name>

	<t>As defined in [draft-ietf-detnet-bounded-latency], 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.
	So to meet the requirements of the end-to-end delay, the PCE should
	select a queuing mechanism and configure the related parameters to the
	PCC. This document proposes the Queuing Information Structure carried
	in ERO or SR-ERO as shown in Figure 2.</t>
	
	
<figure title="Queuing Information Structure" 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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |      Queuing Identifier       |   Queuing Algorithm Type      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |             Queuing Parameters Sub-TLV (variable)             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   
   	   </artwork>
 </figure>
	
	<t>Queuing Identifier (16bits): indicates the unique identifier of 
	a queue for the node forwarding a DetNet flow.</t>
	
	<t>Queuing Algorithm 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 [draft-ietf-detnet-bounded-latency].
	More types can be defined due to the new queuing mechanisms.</t>
	
	 <t>Queuing Algorithm Type = 1: indicates the Time Aware Shaping [IIEEE802.1Qbv].</t>

     <t>Queuing Algorithm Type = 2: indicates the Credit-Based Shaper[IEEE802.1Q-2014] with 
	 Asynchronous Traffic Shaping[IEEE802.1Qcr].</t>
	 
	 <t>Queuing Algorithm Type = 3: indicates the Guaranteed-Service IntServ [RFC2212].</t>
	 
	 <t>Queuing Algorithm Type = 4: indicates the Cyclic Queuing and Forwarding [IEEE802.1Qch].</t>
	 
	 <t>Queuing Algorithm Type = 5: indicates the Deadline Based Forwarding [draft-peng-detnet-deadline-based-forwarding].</t>
	 
	 <t>Queuing Algorithm Type = 6: indicates the Multiple Cyclic Buffers Queuing Mechanism
	 [draft-dang-queuing-with-multiple-cyclic-buffers].</t>
	 
	 <t> Queuing Parameters Sub-TLV (variable): indicuates the corresponding
	 Queuing Parameters. The current Sub-TLVs including Deadline Sub-TLV and 
	 Cycle Sub-TLV are proposed as following sections.</t>
	
    <section numbered="true" toc="default"> <name>Deadline Sub-TLV</name>
	
	 <t>Deadline Sub-TLV is optional for the Queuing Information Structure.
	 The deadline-based queue mechanism has been proposed in [draft-stein-srtsn] and 
	[draft-peng-detnet-deadline-based-forwarding]. 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 Sub-TLV should be used 
	to carry the deadline parameters.</t> 
	  
 <figure title="Deadline Sub-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 Sub-TLV.</t>
	<t>Length (16bits): indicated the length of Deadline Sub-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 Sub-TLV</name>
	
    <t>Cycle Sub-TLV is optional for the Queuing Information Structure.
	 The cyclic-based queue mechanism has been proposed in [IEEE802.1Qch] and 
	 improved in [draft-dang-queuing-with-multiple-cyclic-buffers]. 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
	 Sub-TLV should be used to carry the cycle parameters.</t> 
    
<figure title="Cycle Sub-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 Sub-TLV.</t>
	<t>Length (16bits): indicated the length of Cycle Sub-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>
	  
    </section>
	
   </section>	
	
  <section numbered="true" toc="default"> <name>Acknowledgements</name>
   <t>TBA</t>
   </section>
	
   <section numbered="true" toc="default"> <name>IANA Considerations</name>
   <t>TBA</t>
	
   </section>
   
   <section  numbered="true" toc="default"> <name>Security Considerations</name>
   <t>TBA</t>
   </section>
  </middle>
  
  <!--  *****BACK MATTER ***** -->

 <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>
            <seriesInfo name="DOI" value="10.17487/RFC2119"/>
            <seriesInfo name="RFC" value="2119"/>
            <seriesInfo name="BCP" value="14"/>
            <author initials="S." surname="Bradner" fullname="S. Bradner">
              <organization/>
            </author>
            <date year="1997" month="March"/>
          </front>
        </reference>
		<reference anchor="RFC5440" target="https://www.rfc-editor.org/info/RFC5440">
		<front>
            <title>Path Computation Element (PCE) Communication Protocol (PCEP)</title>
			<author>
              <organization/>
            </author>
			<date year="2009" month="March"/>
          </front>
        </reference>
		<reference anchor="RFC8174" target="https://www.rfc-editor.org/info/RFC8174">
		<front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
			<author>
              <organization/>
            </author>
			<date year="2017" month="May"/>
          </front>
        </reference>
		<reference anchor="RFC8231" target="https://www.rfc-editor.org/info/RFC8231">
		<front>
            <title>Path Computation Element Communication Protocol (PCEP) Extensions for Stateful PCE</title>
			<author>
              <organization/>
            </author>
			<date year="2017" month="September"/>			
          </front>
        </reference>
		<reference anchor="RFC7752" target="https://www.rfc-editor.org/info/RFC7752">
		<front>
            <title>North-Bound Distribution of Link-State and Traffic Engineering (TE) Information Using BGP</title>
			<author>
              <organization/>
            </author>
			<date year="2016" month="March"/>
          </front>
        </reference>
		<reference anchor="RFC5120" target="https://www.rfc-editor.org/info/RFC5120">
		<front>
            <title>M-ISIS: Multi Topology (MT) Routing in Intermediate System to Intermediate Systems (IS-ISs)</title>
			<author>
              <organization/>
            </author>
			<date year="2008" month="February"/>
          </front>
        </reference>
		<reference anchor="RFC4915" target="https://www.rfc-editor.org/info/RFC4915">
		<front>
            <title>Multi-Topology (MT) Routing in OSPF</title>
			<author>
              <organization/>
            </author>
			<date year="2007" month="June"/>
          </front>
        </reference>
		<reference anchor="RFC4655" target="https://www.rfc-editor.org/info/RFC4655">
		<front>
            <title>A Path Computation Element (PCE)-Based Architecture</title>
			<author>
              <organization/>
            </author>
			<date year="2006" month="August"/>
          </front>
        </reference>		
        <reference anchor="RFC6549" target="https://www.rfc-editor.org/info/RFC6549">
		<front>
            <title>OSPFv2 Multi-Instance Extensions</title>
			<author>
              <organization/>
            </author>
			<date year="2012" month="March"/>
          </front>
        </reference>
        <reference anchor="RFC8664" target="https://www.rfc-editor.org/info/RFC8664">
		<front>
            <title>SR-PCE</title>
			<author>
              <organization/>
            </author>
			<date year="2020" month="August"/>
          </front>
        </reference>
        <reference anchor="RFC8655" target="https://www.rfc-editor.org/info/RFC8655">
		<front>
            <title>DetNet Architecture</title>
			<author>
              <organization/>
            </author>
			<date year="2017" month="June"/>
          </front>
        </reference>
        <reference anchor="draft-ietf-pce-lsp-extended-flags" target="https://www.rfc-editor.org/info/draft-ietf-pce-lsp-extended-flags">
		<front>
            <title>LSP Extended Flags</title>
			<author>
              <organization/>
            </author>
			<date year="2021" month="July"/>
          </front>
        </reference>		
	</references>

    </references>
 </back>
</rfc>
