<?xml version="1.0" encoding="iso-8859-1" ?>
<?rfc toc="yes" ?>
<?rfc symrefs="yes" ?>
<?rfc sortrefs="yes" ?>
<?rfc compact="yes" ?>
<?rfc subcompact="no" ?>

<rfc category="std" ipr="trust200902" docName="draft-sx-detnet-mpls-queue-00" consensus="true" submissionType="IETF">

<front>
        <title abbrev="DetNet MPLS Queue"> DetNet Queue Encapsulation with MPLS Data Plane
 </title>

  <author fullname="Xueyan Song" initials="X." surname="Song">
      <organization>ZTE Corp.</organization>
     <address>
       <postal>
         <street/>

         <!-- Reorder these if your country does things differently -->

         <city>Nanjing</city>

         <region/>

         <code/>

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

       <email>song.xueyan2@zte.com.cn</email>

       <!-- uri and facsimile elements may also be added -->
     </address>
    </author>
	
  <author fullname="Quan Xiong" initials="Q." surname="Xiong">
      <organization>ZTE Corp.</organization>
     <address>
       <postal>
         <street/>

         <!-- Reorder these if your country does things differently -->

         <city>Wuhan</city>

         <region/>

         <code/>

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

       <phone/>

       <email>xiong.quan@zte.com.cn</email>

       <!-- uri and facsimile elements may also be added -->
     </address>
    </author>
	
	
    <date year="2022"/>
  
    <area>Routing</area>
    <workgroup>DetNet Working Group</workgroup>

    <keyword>Request for Comments</keyword>
    <keyword>RFC</keyword>
    <keyword>Internet Draft</keyword>
    <keyword>I-D</keyword>

    <abstract>
    <t>  This document specifies format and principals for the MPLS header which contains the queuing delay information, designed for use 
    over a DetNet network with MPLS data plane. The guaranteed delay support enables forwarding and scheduling decisions for time-sensitive 
    service running on DetNet transit nodes that operate within a constrained network domain. This document also specifies a representation 
    for the delay field values in such networks.  </t>
    </abstract>
    
</front>
  
<middle>

  <section title="Introduction">
  
   <t> As specified in <xref target="RFC8655"/>, 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 DetNet data planes specification refers to <xref target="RFC8938"/>. </t>
  
  <t> Based on the updates for DetNet Charter at March, 2022. It is required to support a data plane method of packet treatment including forwarding,
  service protection, and queuing over Layer 3. As defined in <xref target="RFC8964"/>, the DetNet MPLS data plane provides a foundation of building 
  blocks to enable PREOF (Packet Replication, Elimination and Ordering Functions (PREOF)) functions to DetNet service and forwarding sub-layer. 
  The DetNet service sub-layer includes a DetNet Control Word (d-CW) and an identifying service label (S-Label), an aggregation label (A-Label) 
  is a special case of S-Label used for aggregation. The DetNet forwarding sub-layer supports one or more forwarding labels (F-Labels) for providing 
  necessary resource allocation and explicit routes.  </t> 
  
  <t> To support time-sensitive service with ultra-low packet loss rates and bounded end-to-end delivery latency, necessary and feasible queuing 
  mechanisms applied to specific applicability on DetNet flows are required. As described in <xref target="I-D.ietf-detnet-bounded-latency"/>, 
  the end-to-end bounded latency depends on the value of queuing delay bound along with the queuing mechanisms. The queuing methodology, mentioned 
  in <xref target="I-D.ietf-detnet-bounded-latency"/> and <xref target="RFC8655"/>, describes queuing mechanisms that can be used in packets of 
  control and data plane to achieve DetNet service with bounded latency guarantee. The queuing mechanisms include, time-scheduling queuing mechanisms 
  that include the Time Aware Shaping IEEE802.1Qbv, priority-scheduling queuing mechanisms that include the Credit-Based Shaper IEEE802.1Q-2014 
  with Asynchronous Traffic Shaping IEEE802.1Qcr, the cyclic-scheduling queuing mechanism proposed in IEEE802.1Qch. </t>
  
  <t> This draft uses the queuing mechanisms described in <xref target="I-D.ietf-detnet-bounded-latency"/> as the proof for queuing selection, 
  leverages the existing DetNet MPLS encapsulations and mechanisms <xref target="RFC8964"/>, and defines the extensible DetNet MPLS options for 
  queuing support over DetNet flows in the context of MPLS data plane so as to make appropriate packet forwarding and scheduling decisions to 
  achieve the end-to-end bounded latency from customers' SLA requirements. </t>
  
  </section>
  
  <section title="Conventions">
 
  <section title="Requirements Language">  
	<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"/> <xref target="RFC8174"/> when, and only when, they appear in all capitals, as shown here.</t>	
  </section>
  
  <section title="Terminology"> 
   <t> Refer to <xref target="RFC8655"/>, <xref target="RFC8964"/>, and <xref target="I-D.ietf-detnet-bounded-latency"/> for the key terms used in this document.</t>  
  </section>
  
  </section>

  <section title="DetNet queue encapsulation with MPLS data plane">
  
	<section title="Queuing delay">  
	
     <t> <xref target="RFC8655"/> provides the architecture for deterministic networking (DetNet) enables the service delivery of DetNet flows with extremely
	 low packet loss rates and bounded end-to-end latency. The reference for computation and selection for methodology of queuing is described
	 at <xref target="I-D.ietf-detnet-bounded-latency"/>. The end-to-end latency bound for one DetNet flow is the sum of delay bound of non-queuing and 
	 queuing processing. The delay bound for non-queuing processing may include output delay, link delay, frame preemption delay, and processing
	 delay, the delay bound for queuing processing may include regulator delay, queuing delay. It is assumed that the delay of non-queuing 
	 processing is fixed or be ignorable, the delay of queuing processing is variable. To realize the guarantee of bounded latency service 
	 it is important to select right queuing methodology applied to specific applications and carry necessary queuing delay information for 
	 computation of end-to-end latency. </t>
	 
     <t> The DetNet data plane encapsulation in transport network with MPLS data plane is specified in <xref target="RFC8964"/>. This document provides 
	 additional encapsulation for the queuing delay of DetNet flows in MPLS data plane.</t>	
	 
	</section>  

<section title="DetNet MPLS Queue Encapsulation">  

<t> DetNet MPLS Queue, uses DetNet-MPLS based encapsulation with queuing option extension, listed as the below,</t>		

<figure anchor="Figure_1" title="DetNet queue encapsulation in MPLS data plane">
<artwork align="center"> <![CDATA[		 
+---------------------------+
|       DetNet App-Flow     |
|       Payload Packet      |
+---------------------------+--\
|     DetNet Control Word   |   | 
+---------------------------+   |    
|          S-Label          |   | DetNet Data Plane   
+---------------------------+   | MPLS Encapsulation
|          F-Label(s)       |   |
+---------------------------+   |    
|     SPL (DetNet Queque)   |   |  
+---------------------------+--/
|         Data-Link         |
+---------------------------+
|          Physical         |
+---------------------------+					
]]></artwork>
 </figure>	 
	 
<t> The SPL (Special Purpose Label) may be B-SPL <xref target="RFC9017"/>, new-SPL, extended SPL [RFC9017]. Refer to 
<xref target="I-D.andersson-mpls-mna-fwk"/>, the SPL carries the action indicator for queue support showed as the Figure 2.</t>

<figure anchor="Figure_2" title="SPL encapsulation for DetNet queuing indicator">
<artwork align="left"> <![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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                Label                  |x x x|S|H|x x x x x x x|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
	 Label:  Label value, 20 bits
	 x:      Bit available for other solutions definition
	 S:      Bottom of Stack, 1 bit
	 H:      Indicator of hop-by-hop processing, 1 bit
]]></artwork></figure>
					 

<t> Generally speaking the queuing mechanisms are processed hop by hop, end-to-end processing for queuing support is FFS.</t>

<figure anchor="Figure_3" title="Uniform queuing options TLV">
<artwork align="left"> <![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      |      Flags    |           Length              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                         sub-TLV(s)                            |
+                                                               +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
	 Type      :  Type value, TBD, 1 Octet
	 Flags     :  Identifier for quequing mechanisms, 1 Octet
	 Length    :  Length value, 2 Octet
	 sub-TLV(s):  Specific ququing information carried, 8 Octet
]]></artwork></figure>

<t>The Flags field is designed as follow:</t>

<figure anchor="Figure_4" title="Flag field">
<artwork align="center"> <![CDATA[
	0 1 2 3 4 5 6 7 8
	+-+-+-+-+-+-+-+-+
	|T|P|C|         |
	+-+-+-+-+-+-+-+-+
]]></artwork></figure>
 
<t>T flag:  1 bit, time-scheduling queuing indicator, e.g., Time Aware Shaping [IIEEE802.1Qbv]. If the flag is set 1, the time-scheduling 
queuing mechanism is used for the DetNet flows, the can be correlated with the special label encapsulated in figure 2, or be mapped 
with F-Label (s) or S-Label showed in figure 1.</t>

<t>P Flag:  1 bit, priority-scheduling queuing indicator, e.g., Credit-Based Shaper [IEEE802.1q-2014]. </t>
	 
<t>C Flag:  1 bit, cyclic-scheduling queueing indicator, e.g., CQF [IEEE802.1Qch]. </t>

<t>Note: For one specific DetNet flow, there is one or more choices for queuing mechanisms selection, the queuing mechanisms can be used 
respectively or combined with each other.</t>

<t>If the flag field is set 1 it will associate its sub-TLV to carry detailed or ancillary data for specific queuing delay information. 
The encapsulation for sub-TLV is showed below:</t>

<figure anchor="Figure_5" title="Special Queuing options Sub-TLV">
<artwork align="left"> <![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      |    Length     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     Special Queuing Ancillary Data                            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork></figure>

<t> The encapsulation for queuing delay information will follow the requirements and framework of MPLS MNA discussed in MPLS WG.</t>

<t> The encapsulation for Special Queuing Ancillary Data field is specific for queuing mechanisms. E.g., the sub-TLV for queuing 
scheduling mechanism may carry deadline time data related, refer to <xref target="I-D.peng-6man-deadline-option"/>.The sub-TLV for 
cyclic-scheduling queuing mechanism may carry cycle time related, refer to <xref target="I-D.dang-queuing-with-multiple-cyclic-buffers"/></t> 

</section>  
 
</section>   
  
<section title="IANA Considerations">
<t> This document describes a new IANA-managed registry to identify DetNet MPLS Queue Flags Bits.  The registration procedure is "IETF Review" 
<xref target="RFC8126"/>.  The registry name is "DetNet MPLS Queue Flags". There are 4 flags in the 8-bit Flags field, defined as in Table 1.</t>

<texttable title="DetNet MPLS Queue Flags" anchor="Tab-DetNet-MPLS-Queue-Flags">
      <ttcol align='left'>Bit</ttcol>
      <ttcol align='left'>Description</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c>0-7</c>
      <c>unassigned</c>
      <c>this document</c>
</texttable>

</section>

  
<section title="Security Considerations">
<t> Security considerations for DetNet are covered in the DetNet Architecture RFC8655 and DetNet Security Considerations 
<xref target="RFC9055"/>. MPLS security considerations are covered in <xref target="RFC8964"/>, <xref target="RFC3031"/>, <xref target="RFC3032"/>. 
These security considerations also apply to this document. </t>
</section>

<section title="Acknowledgements">
<t> The authors would like to acknowledge Shaofu Peng for his thorough review and very helpful comments. </t>
</section>  
  
</middle>
  
<back>
    <references title="Normative References">
		<?rfc include="reference.RFC.2119"?>
		<?rfc include="reference.RFC.3031"?>
		<?rfc include="reference.RFC.3032"?>
		<?rfc include="reference.RFC.8655"?>
		<?rfc include="reference.RFC.8126"?>
		<?rfc include="reference.RFC.8174"?>
		<?rfc include="reference.RFC.8964"?>
		<?rfc include="reference.RFC.9017"?>	
    </references>
	
    <references title="Informative References">
		<?rfc include="reference.RFC.8938"?>
		<?rfc include="reference.RFC.9055"?>	
		<?rfc include="reference.I-D.ietf-detnet-bounded-latency"?>
	    <?rfc include='reference.I-D.andersson-mpls-mna-fwk'?>	
	    <?rfc include='reference.I-D.dang-queuing-with-multiple-cyclic-buffers'?>	
	    <?rfc include='reference.I-D.peng-6man-deadline-option'?>		
    </references>	
</back>

</rfc>

