<?xml version="1.0" encoding="utf-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.6.9 (Ruby 3.1.2) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

]>

<?rfc comments="yes"?>

<rfc ipr="trust200902" docName="draft-eckert-detnet-mpls-tc-tcqf-02" category="std" consensus="true" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="detnet-mpls-tc-tcqf">Deterministic Networking (DetNet) Data Plane - MPLS TC Tagging for Cyclic Queuing and Forwarding (MPLS-TC TCQF)</title>

    <author initials="T." surname="Eckert" fullname="Toerless Eckert">
      <organization>Futurewei Technologies USA</organization>
      <address>
        <postal>
          <street>2220 Central Expressway</street>
          <city>Santa Clara</city>
          <code>CA 95050</code>
          <country>USA</country>
        </postal>
        <email>tte@cs.fau.de</email>
      </address>
    </author>
    <author initials="S." surname="Bryant" fullname="Stewart Bryant">
      <organization>University of Surrey ICS</organization>
      <address>
        <email>s.bryant@surrey.ac.uk</email>
      </address>
    </author>
    <author initials="A. G." surname="Malis" fullname="Andrew G. Malis">
      <organization>Malis Consulting</organization>
      <address>
        <email>agmalis@gmail.com</email>
      </address>
    </author>

    <date year="2022" month="May" day="19"/>

    
    <workgroup>DETNET</workgroup>
    

    <abstract>


<t>This memo defines the use of the MPLS TC field of MPLS Label Stack Entries (LSE) to support
cycle tagging of packets for Multiple Buffer Cyclic Queuing and Forwarding (TCQF).
TCQF is a mechanism to support bounded latency forwarding in DetNet network.</t>

<t>Target benefits of TCQF include low end-to-end
jitter, ease of high-speed hardware implementation, optional ability to support large number
of flow in large networks via DiffServ style aggregation by applying TCQF to
the DetNet aggregate instead of each DetNet flow individually, and support of wide-area DetNet
networks with arbitrary link latencies and latency variations.</t>



    </abstract>



  </front>

  <middle>


<section anchor="introduction-informative"><name>Introduction (informative)</name>

<t>Cyclic Queuing and Forwarding <xref target="CQF"/>, is an IEEE standardized queuing mechanism in support of deterministic bounded latency. See also <xref target="I-D.ietf-detnet-bounded-latency"/>, Section 6.6.</t>

<t>CQF benefits for Deterministic QoS include the tightly bounded jitter it provides as well as the per-flow stateless operation, minimizing the complexity of high-speed hardware implementations and allowing to support on transit hops arbitrary number of DetNet flow in the forwarding plane because of the absence of per-hop, per-flow QoS processing. In the terms of the IETF QoS architecture, CQF can be called DiffServ QoS technology, operating only on a traffic aggregate.</t>

<t>CQFs is limited to only limited-scale wide-area network deployments because it cannot take the propagation latency of links into account, nor potential variations thereof. It also requires very high precision clock synchronization, which is uncommon in wide-area network equipment beyond mobile network fronthaul. See <xref target="I-D.eckert-detnet-bounded-latency-problems"/> for more details.</t>

<t>This specification introduces and utilizes an enhanced form of CQF where packets are tagged with a cycle identifier, and a limited number of cycles, e.g.: 3...7 are used to overcome these distance and clock synchronization limitations. Because this memo defines how to use the TC field of MPLS LSE as the tag to carry the cycle identifier, it calls this scheme TC Tagged multiple buffer CQF (TC TCQF). See <xref target="I-D.qiang-DetNet-large-scale-DetNet"/> and <xref target="I-D.dang-queuing-with-multiple-cyclic-buffers"/> for more details of the theory of operations of TCQF. Note that TCQF is not necessarily limited to deterministic operations but could also be used in conjunction with congestion controlled traffic, but those considerations are outside the scope of this memo.</t>

<t>TCQF is likely especially beneficial when MPLS networks are designed to avoid per-hop, per-flow state even for traffic steering, which is the case for networks using SR-MPLS <xref target="RFC8402"/> for traffic steering of MPLS unicast traffic and/or BIER-TE <xref target="I-D.ietf-bier-te-arch"/> for tree engineering of MPLS multicast traffic. In these networks, it is specifically undesirable to require per-flow signaling to P-LSR solely for DetNet QoS because such per-flow state is unnecessary for traffic steering and would only be required for the bounded latency QoS mechanism and require likely even more complex hardware and manageability support than what was previously required for per-hop steering state (e.g. In RSVP-TE). Note that the DetNet architecture <xref target="RFC8655"/> does not include full support for this DiffServ model, which is why this memo describes how to use MPLS TC TCQF with the DetNet architecture per-hop, per-flow processing as well as without it.</t>

</section>
<section anchor="using-tcqf-in-the-detnet-archticture-and-mpls-forwarding-plane-informative"><name>Using TCQF in the DetNet Archticture and MPLS forwarding plane (informative)</name>

<t>This section gives an overview of how the operations of T-CQF relates
to the DetNet architecture. We first revisit QoS with DetNet in the absence of T-CQF.</t>

<figure title="A DetNet MPLS Network" anchor="FIG-DetNet-MPLS"><artwork><![CDATA[
 DetNet MPLS       Relay       Transit         Relay       DetNet MPLS
 End System        Node         Node           Node        End System
    T-PE1          S-PE1        LSR-P          S-PE2       T-PE2
 +----------+                                             +----------+
 |   Appl.  |<------------ End-to-End Service ----------->|   Appl.  |
 +----------+   +---------+                 +---------+   +----------+
 | Service  |<--| Service |-- DetNet flow --| Service |-->| Service  |
 +----------+   +---------+  +----------+   +---------+   +----------+
 |Forwarding|   |Fwd| |Fwd|  |Forwarding|   |Fwd| |Fwd|   |Forwarding|
 +-------.--+   +-.-+ +-.-+  +----.---.-+   +-.-+ +-.-+   +---.------+
         :  Link  :    /  ,-----.  \   : Link :    /  ,-----.  \
         +........+    +-[ Sub-  ]-+   +......+    +-[ Sub-  ]-+
                         [Network]                   [Network]
                          `-----'                     `-----'
         |<- LSP -->| |<-------- LSP -----------| |<--- LSP -->|
  
         |<----------------- DetNet MPLS --------------------->|
]]></artwork></figure>

<t>The above <xref target="FIG-DetNet-MPLS"/>, is copied from <xref target="RFC8964"/>, Figure 2, 
and only enhanced by numbering the nodes to be able to better refer
to them in the following text.</t>

<t>Assume a DetNet flow is sent from T-PE1 to T-PE2 across S-PE1, LSR, S-PE2. 
In general, bounded latency QoS processing is then required on the
outgoing interface of T-PE1 towards S-PE1, and any further outgoing
interface along the path. When T-PE1 and S-PE2 know that their next-hop
is a service LSR, their DetNet flow label stack may simply have the
DetNet flows Service Label (S-Label) as its Top of Stack (ToS) LSE,
explicitly indicating one DetNet flow.</t>

<t>On S-PE1, the next-hop LSR is
not DetNet aware, which is why S-PE1 would need to send a label stack
where the S-Label is followed by a Forwarding Label (F-Label), and
LSR-P would need to perform bounded latency based QoS on that F-Label.</t>

<t>For bounded latency QoS mechanisms relying on per-flow regulator state,
such as in <xref target="TSN-ATS"/>, this requires the use of a per-detnet flow F-Label
across the network from S-PE1 to S-PE2, for example through RSVP-TE <xref target="RFC3209"/>
enhanced as necessary with QoS parameters matching the underlying bounded
latency mechanism (such as <xref target="TSN-ATS"/>).</t>

<t>With TC TCQF, a sequence of LSR and DetNet service node implements
TC TCQF, ideally from T-PE1 (ingress) to T-PE2 (egress).  The ingress
node needs to perform per-DetNet-flow per-packet "shaping" to  assign
each packet of a flow to a particular TCQF cycle. This ingress-edge-function
is currently out of scope of this document (TBD), but would be based
on the same type of edge function as used in CQF.</t>

<t>All LSR/Service node after the ingress node only have to map a
received TCQF tagged DetNet packet to the configured cycle
on the output interface, not requiring any per-DetNet-flow QoS state.
These LSR/Service nodes do therefore also not require per-flow
interactions with the controller plane for the purpose of bounded latency.</t>

<t>Per-flow state therefore is therefore only required on nodes that are 
DetNet service nodes, or when explicit, per-DetNet flow steering
state is desired, instead of ingress steering through e.g.: SR-MPLS.</t>

<t>Operating TCQF per-flow stateless across a service node, such as S-PE1, S-PE2
in the picture is only an option. It is of course equally feasible to
Have one TCQF domain from T-PE1 to S-PE2, start a new TCQF domain there,
running for example up to S-PE2 and start another one to T-PE2.</t>

<t>A service node must act as an egress/ingress edge of a TCQF domain if it needs
to perform operations that do change the timing of packets other than
the type of latency that can be considered in configuration of TCQF (see <xref target="calculation"></xref>).</t>

<t>For example, if T-PE1 is ingress for a TCQF domain, and T-PE2 is the egress,
S-PE1 could perform the DetNet Packet Replication Function (PRF)  without having to be a TQCF 
edge node as long as it does not introduce latencies not included in the TCQF
setup and the controller plane reserves resources for the multitude of flows
created by the replication taking the allocation of resources in the TCQF cycles into account.</t>

<t>Likewise, S-PE2 could perform the Packet Elimination Function without being
a TCQF edge node as this most likely does not introduce any non-TCQF acceptable
latency - and the controller plane accordingly reserves only for one flow
the resources on the S-PE2-&gt;T-PE2 leg.</t>

<t>If on the other hand, S-PE2 was to perform the Packet Reordering Function (PRF), this could
create large peaks of packets when out-of-order packets are released together.
A PRF would either have to take care of shaping out those bursts for the traffic
of a flow to again conform to the admitted CIR/PIR, or else the service node
would have to be a TCQF egress/ingress, performing that shaping itself as an
ingress function.</t>

</section>
<section anchor="forwarding"><name>MPLS T-CQF forwarding (normative)</name>

<section anchor="model"><name>Configuration Data model and tag processing for MPLS TC TCQF</name>

<figure title="TCQF Configuration Data Model" anchor="FIG-Data-Model"><artwork><![CDATA[
tcqf 
+-- uint16 cycles
+-- uint16 cycle_time
+-- uint32 cycle_clock_offset
+-- if_config[oif] # Outgoing InterFace
    +-- uint32 cycle_clock_offset
    +-- cycle_map[iif] # Incoming InterFace
        +--uint8 oif_cycle[iif_cycle]
 
tcqf_tc[oif]
+--uint8 tc[oif_cycle]
]]></artwork></figure>

</section>
<section anchor="packet-processing"><name>Packet processing</name>

<t>This section explains the MPLS T-CQF packet processing and through
it, introduces the semantic of the objects in <xref target="FIG-Data-Model"/></t>

<t>tcqf contains the router/LSR wide configuration of TCQF parameters,
independent of the specific tagging mechanism on any interface. Any
interface can have a different tagging method.</t>

<t>The model represents a single TQCF domain, which is a set of
interfaces acting both as ingress (iif) and egress (oif)
interfaces, capable to forward TCQF packets amongst each other. A router/LSR
may have multiple TCQF domains each with a set of interfaces disjoint
from those of any other TCQF domain.</t>

<t>tcqf.cycles is the number of cycles used across all interfaces in the TCQF domain.
router/LSR MUST support 3 and 4 cycles. To support interfaces with MPLS TC tagging,
7 or less cycles MUST be used across all interfaces in the CQF domain.</t>

<t>The unit of tcqf.cycle_time is micro-seconds.
router/LSR MUST support configuration of cycle-times of 20,50,100,200,500,1000,2000 usec.</t>

<t>Cycles start at an offset of tcqf.cycle_clock_offset in units of nsec as follows. 
Let clock1 be a timestamp of the local reference clock for TCQF, at which
cycle 1 starts, then:</t>

<t>tcqf.cycle_clock_offset = (clock1 mod (tcqf.cycle_time * tcqf.cycles) )</t>

<t>The local reference clock of the LSR/router is expected to be synchronized with
the neighboring LSR/router in TCQF domain.  tcqf.cycle_clock_offset can be configurable
by the operator, or it can be read-only. In either case will the operator be
able to configure working TCQF forwarding through appropriately calculated
cycle mapping.</t>

<t>tcqf.if_config[oif] is optional per-interface configuration of TCQF parameters.
tcqf.if_config[oif].cycle_clock_offset may be different from tcqf.cycle_clock_offset,
for example, when interfaces are on line cards with independently synchronized clocks,
or when non-uniform ingress-to-egress propagation latency over a complex router/LSR
fabric makes it beneficial to allow per-egress interface or line card configuration
of cycle_clock_offset. It may be configurable or read-only.</t>

<t>The value of -1 for tcqf.if_config[oif].cycle_clock_offset is used to indicate
that the domain wide tcqf.cycle_clock_offset is to be used for oif.
This is the only permitted negative number for this parameter.</t>

<t>When a packet is received from iif with a cycle value of iif_cycle and the
packet is routed towards oif, then the cycle value (and buffer) to use on
oif is tcqf.if_config[oif].cycle_map[iif].oif_cycle[iif_cycle]. This is
called the cycle mapping and is must be configurable. This cycle mapping
always happens when the packet is received with a cycle tag on an interface
in a TCQF domain and forwarded to another interface in the same TCQF domain.</t>

<t>tcqf_tc[oif].tc[oif_cycle] defines how to map from the internal cycle number
oif_cycle to an MPLS TC value on interface oif. When tcqf_tc[oif] is
configured, oif will use MPLS TC tagging for TCQF. This mapping
not only used to map from internal cycle number to MPLS TC tag when sending
packets, but also to map from MPLS TC tag to the internal cycle number when
receiving packets.</t>

</section>
<section anchor="tcqf-with-label-stack-operations"><name>TCQF with label stack operations</name>

<t>In the terminology of <xref target="RFC3270"/>, TCQF QoS as defined here, is 
TC-Inferred-PSC LSP (E-LSP) behavior: Packets are determined to
belong to the TCQF PSC solely based on the TC of the received
packet.</t>

<t>The internal cycle number SHOULD be assigned from the Top of Stack (ToS)
MPLS label TC bits before any other label stack operations
happens. On the egress side, the TC value of the ToS MPLS label
SHOULD be assigned from the internal cycle number after any label
stack processing.</t>

<t>With this order of processing, TCQF can support forwarding of
packets with any label stack operations such as label swap in the
case of LDP or RSVP-TE created LSP, or no label changes from SID
hop-by-hop forwarding and/or SID/label pop as in the case
of SR-MPLS traffic steering.</t>

</section>
<section anchor="ingres-operations"><name>Ingres operations</name>

<t>The ingress LSR of a TCQF domain has to mark packets with an
internal cycle number and ensure that any such marked traffic
complies with the traffic envelope admitted by the controller plane.</t>

<t>The algorithms to map packets of traffic flows into cycles are
outside the scope of this specification, because there can be
multiple ones of varying complexity. In a most simple admission
model, a particular flow is allocated a maximum number of bytes
in every cycle. This can easily be mapped into an appropriate
policing gate.</t>

<t>For the purpose of this specification, such ingress operations
is simply represented as an (internal/virtual) interface from
which the packet is received, complete with a correctly assigned
internal cycle number.</t>

</section>
</section>
<section anchor="tcqf-pseudocode-normative"><name>TCQF Pseudocode (normative)</name>

<t>The following pseudocode restates the forwarding behavior of <xref target="forwarding"/>
in an algorithmic fashion as pseudocode. It uses the objects of the TCQF configuration
data model defined in <xref target="model"></xref>.</t>

<figure title="TCQF Pseudocode" anchor="FIG-Pseudocode"><artwork><![CDATA[
void receive(pak) {
  // Receive side TCQF - remember cycle in
  // packet internal header
  iif = pak.context.iif
  if (tcqf.if_config[iif]) { // TCQF enabled on iif
    if (tcqf_tc[iif]) {      // MPLS TCQF enabled on iif
      tc = pak.mpls_header.lse[tos].tc
      pak.context.tcqf_cycle = map_tc2cycle( tc, tcqf_tc[iif])
    } else // other future encap/tagging options for TCQF
  }
  forward(pak);
}

void inject_tcqf_pak(pak, cycle) {
  pak.context.iif = INTERNAL  
  pak.context.tcqf_cycle = cycle
  forward(pak);
}

void forward(pak) {
  // Forwarding including any LSE operations
  oif = pak.context.oif = forward_process(pak)

  // ... optional  DetNet PREOF functions here
  // ... if router is DetNet service node

  if(pak.context.tcqf_cycle && // non TCQF packets cycle is 0
     tcqf.if_config[oif]) {    // TCQF enabled
    // Map tcqf_cycle iif to oif
    cycle = pak.context.tcqf_cycle
          = map_cycle(cycle,
            tcqf.if_config[oif].cycle_map[[iif])

    if(tcqf.mpls_tc_tag[iif]) { // TC-TCQF
      pak.mpls_header.lse[tos].tc =
        map_cycle2tc(cycle, tcqf_tc[oif])
    } else // other future encap/tagging options for TCQF

    tcqf_enqueue(pak, oif.cycleq[cycle])
  }
}

// Started when TCQF is enabled on an interface
// dequeues packets from oif.cycleq
void send_tcqf(oif) {
  cycle = 1
  cc =  tcqf.cycle_time *
        tcqf.cycle_time
  o =   tcqf.cycle_clock_offset
  nextcyclestart = floor(tnow / cc) * cc + cc + o

  while(1) {
    while(tnow < nextcyclestart) { }
    while(pak = dequeue(oif.cycleq(cycle)) {
      send(pak)
    } 
    cycle = (cycle + 1) mod tcqf.cycles + 1
    nextcyclestart += tcqf.cycle_time
  }
}
]]></artwork></figure>

</section>
<section anchor="operational-considerations-informative"><name>Operational considerations (informative)</name>

<section anchor="calculation"><name>Controller plane computation of cycle mappings</name>

<t>The cycle mapping is computed by the controller plane by taking at minimum
the link, interface serialization and node internal forwarding latencies as well
as the cycle_clock_offsets into account.</t>

<figure title="Calculation reference" anchor="Calc1"><artwork><![CDATA[
Router  . O1
 R1     . | cycle 1 | cycle 2 | cycle 3 | cycle 1 |
        .    .
        .     ............... Delay D
        .                    .
        .                    O1'
        .                     | cycle 1 |
Router  .   | cycle 1 | cycle 2 | cycle 3 | cycle 1 |
  R2    .   O2

CT  = cycle_time
C   = cycles
CC  = CT * C
O1  = cycle_clock_offset router R1, interface towards R2
O2  = cycle_clock_offset router R2, output interface of interest
O1' = O1 + D
]]></artwork></figure>

<t>Consider in {#Calc1} that Router R1 sends packets via C = 3 cycles with a
cycle_clock offset of O1 towards Router R2. These packets arrive
at R2 with a cycle_clock offset of O1' which includes through D all latencies
incurred between releasing a packet on R1 from the cycle buffer until
it can be put into a cycle buffer on R2: serialization delay on R1,
link delay, non_CQF delays in R1 and R2, especially forwarding in
R2, potentially across an internal fabric to the output interface
with the sending cycle buffers.</t>

<figure title="Calculating cycle mapping" anchor="Calc2"><artwork><![CDATA[
A = ( ceil( ( O1' - O2 ) / CT) + C + 1) mod CC
map(i) = (i - 1 + A) mod C + 1
]]></artwork></figure>

<t>{#Calc2} shows a formula to calculate the cycle mapping between
R1 and R2, using the first available cycle on R2. In the example
of {#Calc1} with CT = 1, (O1' - O2) =~ 1.8, A will be 0, resulting
in map(1) to be 1, map(2) to be 2 and map(3) to be 3.</t>

<t>The offset "C" for the calculation of A is included so that
a negative (O1 - O2) will still lead to a positive A.</t>

<t>In general, D will be variable [Dmin...Dmax], for example because
of differences in serialization latency between min and max size
packets, variable link latency because of temperature based length
variations, link-layer variability (radio links) or in-router
processing variability. In addition, D also needs to account for the
drift between the synchronized clocks for R1 and R2. This
is called the Maximum Time Interval Error (MTIE).</t>

<t>Let A(d) be A where O1' is calculated with D = d. To account for
the variability of latency and clock synchronization, map(i) has to
be calculated with A(Dmax), and the controller plane needs to
ensure that that A(Dmin)...A(Dmax) does cover at most (C - 1) cycles.</t>

<t>If it does cover C cycles, then C and/or CT are chosen too small,
and the controller plane needs to use larger numbers for either.</t>

<t>This (C - 1) limitation is based on the understanding that there is only
one buffer for each cycle, so a cycle cannot receive packets
when it is sending packets. While this could be changed by
using double buffers, this would create additional implementation
complexity and not solve the limitation for all cases, because
the number of cycles to cover [Dmin...Dmax] could also be (C + 1)
or larger, in which case a tag of 1...C would not suffice.</t>

</section>
</section>
<section anchor="security-considerations"><name>Security Considerations</name>

<t>TBD.</t>

</section>
<section anchor="iana-considerations"><name>IANA Considerations</name>

<t>This document has no IANA considerations.</t>

</section>
<section anchor="changelog"><name>Changelog</name>

<t>00</t>

<t>Initial version</t>

<t>01</t>

<t>Added new co-author.</t>

<t>Changed Data Model to "Configuration Data Model",</t>

<t>and changed syntax from YANG tree to a non-YANG tree, removed empty section
targeted for YANG model. Reason: the configuration parameters that we need
to specify the forwarding behavior is only a subset of what likely would
be a good YANG model, and any work to define such a YANG model not necessary
to specify the algorithm would be scope creep for this specification. Better
done in a separate YANG document. 
Example additional YANG aspects for such a document are
how to map parameters to configuration/operational space, what additional
operational/monitoring parameter to support and how to map the
YANG objects required into various pre-existing YANG trees.</t>

<t>Improved text in forwarding section, simplified sentences, used simplified
configuration data model.</t>

<t>02</t>

<t>Refresh</t>

</section>


  </middle>

  <back>


    <references title='Normative References'>





<reference anchor='RFC3270' target='https://www.rfc-editor.org/info/rfc3270'>
<front>
<title>Multi-Protocol Label Switching (MPLS) Support of Differentiated Services</title>
<author fullname='F. Le Faucheur' initials='F.' surname='Le Faucheur'><organization/></author>
<author fullname='L. Wu' initials='L.' surname='Wu'><organization/></author>
<author fullname='B. Davie' initials='B.' surname='Davie'><organization/></author>
<author fullname='S. Davari' initials='S.' surname='Davari'><organization/></author>
<author fullname='P. Vaananen' initials='P.' surname='Vaananen'><organization/></author>
<author fullname='R. Krishnan' initials='R.' surname='Krishnan'><organization/></author>
<author fullname='P. Cheval' initials='P.' surname='Cheval'><organization/></author>
<author fullname='J. Heinanen' initials='J.' surname='Heinanen'><organization/></author>
<date month='May' year='2002'/>
<abstract><t>This document defines a flexible solution for support of Differentiated Services (Diff-Serv) over Multi-Protocol Label Switching (MPLS) networks.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='3270'/>
<seriesInfo name='DOI' value='10.17487/RFC3270'/>
</reference>



<reference anchor='RFC8655' target='https://www.rfc-editor.org/info/rfc8655'>
<front>
<title>Deterministic Networking Architecture</title>
<author fullname='N. Finn' initials='N.' surname='Finn'><organization/></author>
<author fullname='P. Thubert' initials='P.' surname='Thubert'><organization/></author>
<author fullname='B. Varga' initials='B.' surname='Varga'><organization/></author>
<author fullname='J. Farkas' initials='J.' surname='Farkas'><organization/></author>
<date month='October' year='2019'/>
<abstract><t>This document provides the overall architecture for Deterministic Networking (DetNet), which provides a capability to carry specified unicast or multicast data flows for real-time applications with extremely low data loss rates and bounded latency within a network domain.  Techniques used include 1) reserving data-plane resources for individual (or aggregated) DetNet flows in some or all of the intermediate nodes along the path of the flow, 2) providing explicit routes for DetNet flows that do not immediately change with the network topology, and 3) distributing data from DetNet flow packets over time and/or space to ensure delivery of each packet's data in spite of the loss of a path.  DetNet operates at the IP layer and delivers service over lower-layer technologies such as MPLS and Time- Sensitive Networking (TSN) as defined by IEEE 802.1.</t></abstract>
</front>
<seriesInfo name='RFC' value='8655'/>
<seriesInfo name='DOI' value='10.17487/RFC8655'/>
</reference>



<reference anchor='RFC8964' target='https://www.rfc-editor.org/info/rfc8964'>
<front>
<title>Deterministic Networking (DetNet) Data Plane: MPLS</title>
<author fullname='B. Varga' initials='B.' role='editor' surname='Varga'><organization/></author>
<author fullname='J. Farkas' initials='J.' surname='Farkas'><organization/></author>
<author fullname='L. Berger' initials='L.' surname='Berger'><organization/></author>
<author fullname='A. Malis' initials='A.' surname='Malis'><organization/></author>
<author fullname='S. Bryant' initials='S.' surname='Bryant'><organization/></author>
<author fullname='J. Korhonen' initials='J.' surname='Korhonen'><organization/></author>
<date month='January' year='2021'/>
<abstract><t>This document specifies the Deterministic Networking (DetNet) data plane when operating over an MPLS Packet Switched Network.  It leverages existing pseudowire (PW) encapsulations and MPLS Traffic Engineering (MPLS-TE) encapsulations and mechanisms.  This document builds on the DetNet architecture and data plane framework.</t></abstract>
</front>
<seriesInfo name='RFC' value='8964'/>
<seriesInfo name='DOI' value='10.17487/RFC8964'/>
</reference>




    </references>

    <references title='Informative References'>





<reference anchor='RFC3209' target='https://www.rfc-editor.org/info/rfc3209'>
<front>
<title>RSVP-TE: Extensions to RSVP for LSP Tunnels</title>
<author fullname='D. Awduche' initials='D.' surname='Awduche'><organization/></author>
<author fullname='L. Berger' initials='L.' surname='Berger'><organization/></author>
<author fullname='D. Gan' initials='D.' surname='Gan'><organization/></author>
<author fullname='T. Li' initials='T.' surname='Li'><organization/></author>
<author fullname='V. Srinivasan' initials='V.' surname='Srinivasan'><organization/></author>
<author fullname='G. Swallow' initials='G.' surname='Swallow'><organization/></author>
<date month='December' year='2001'/>
<abstract><t>This document describes the use of RSVP (Resource Reservation Protocol), including all the necessary extensions, to establish label-switched paths (LSPs) in MPLS (Multi-Protocol Label Switching).  Since the flow along an LSP is completely identified by the label applied at the ingress node of the path, these paths may be treated as tunnels.  A key application of LSP tunnels is traffic engineering with MPLS as specified in RFC 2702.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='3209'/>
<seriesInfo name='DOI' value='10.17487/RFC3209'/>
</reference>



<reference anchor='RFC8402' target='https://www.rfc-editor.org/info/rfc8402'>
<front>
<title>Segment Routing Architecture</title>
<author fullname='C. Filsfils' initials='C.' role='editor' surname='Filsfils'><organization/></author>
<author fullname='S. Previdi' initials='S.' role='editor' surname='Previdi'><organization/></author>
<author fullname='L. Ginsberg' initials='L.' surname='Ginsberg'><organization/></author>
<author fullname='B. Decraene' initials='B.' surname='Decraene'><organization/></author>
<author fullname='S. Litkowski' initials='S.' surname='Litkowski'><organization/></author>
<author fullname='R. Shakir' initials='R.' surname='Shakir'><organization/></author>
<date month='July' year='2018'/>
<abstract><t>Segment Routing (SR) leverages the source routing paradigm.  A node steers a packet through an ordered list of instructions, called &quot;segments&quot;.  A segment can represent any instruction, topological or service based.  A segment can have a semantic local to an SR node or global within an SR domain.  SR provides a mechanism that allows a flow to be restricted to a specific topological path, while maintaining per-flow state only at the ingress node(s) to the SR domain.</t><t>SR can be directly applied to the MPLS architecture with no change to the forwarding plane.  A segment is encoded as an MPLS label.  An ordered list of segments is encoded as a stack of labels.  The segment to process is on the top of the stack.  Upon completion of a segment, the related label is popped from the stack.</t><t>SR can be applied to the IPv6 architecture, with a new type of routing header.  A segment is encoded as an IPv6 address.  An ordered list of segments is encoded as an ordered list of IPv6 addresses in the routing header.  The active segment is indicated by the Destination Address (DA) of the packet.  The next active segment is indicated by a pointer in the new routing header.</t></abstract>
</front>
<seriesInfo name='RFC' value='8402'/>
<seriesInfo name='DOI' value='10.17487/RFC8402'/>
</reference>


<reference anchor='I-D.ietf-bier-te-arch'>
   <front>
      <title>Tree Engineering for Bit Index Explicit Replication (BIER-TE)</title>
      <author fullname='Toerless Eckert'>
	 <organization>Futurewei Technologies Inc.</organization>
      </author>
      <author fullname='Michael Menth'>
	 <organization>University of Tuebingen</organization>
      </author>
      <author fullname='Gregory Cauchie'>
	 <organization>KOEVOO</organization>
      </author>
      <date day='25' month='April' year='2022'/>
      <abstract>
	 <t>   This memo describes per-packet stateless strict and loose path
   steered replication and forwarding for &quot;Bit Index Explicit
   Replication&quot; (BIER, RFC8279) packets.  It is called BIER Tree
   Engineering (BIER-TE) and is intended to be used as the path steering
   mechanism for Traffic Engineering with BIER.

   BIER-TE introduces a new semantic for &quot;bit positions&quot; (BP).  They
   indicate adjacencies of the network topology, as opposed to (non-TE)
   BIER in which BPs indicate &quot;Bit-Forwarding Egress Routers&quot; (BFER).  A
   BIER-TE packets BitString therefore indicates the edges of the (loop-
   free) tree that the packet is forwarded across by BIER-TE.  BIER-TE
   can leverage BIER forwarding engines with little changes.  Co-
   existence of BIER and BIER-TE forwarding in the same domain is
   possible, for example by using separate BIER &quot;sub-domains&quot; (SDs).
   Except for the optional routed adjacencies, BIER-TE does not require
   a BIER routing underlay, and can therefore operate without depending
   on an &quot;Interior Gateway Routing protocol&quot; (IGP).

	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-ietf-bier-te-arch-13'/>
   <format target='https://www.ietf.org/archive/id/draft-ietf-bier-te-arch-13.txt' type='TXT'/>
</reference>


<reference anchor='I-D.ietf-detnet-bounded-latency'>
   <front>
      <title>DetNet Bounded Latency</title>
      <author fullname='Norman Finn'>
	 <organization>Huawei Technologies Co. Ltd</organization>
      </author>
      <author fullname='Jean-Yves Le Boudec'>
	 <organization>EPFL</organization>
      </author>
      <author fullname='Ehsan Mohammadpour'>
	 <organization>EPFL</organization>
      </author>
      <author fullname='Jiayi Zhang'>
	 <organization>Huawei Technologies Co. Ltd</organization>
      </author>
      <author fullname='Balázs Varga'>
	 <organization>Ericsson</organization>
      </author>
      <date day='8' month='April' year='2022'/>
      <abstract>
	 <t>   This document presents a timing model for sources, destinations, and
   DetNet transit nodes.  Using the model, it provides a methodology to
   compute end-to-end latency and backlog bounds for various queuing
   methods.  The methodology can be used by the management and control
   planes and by resource reservation algorithms to provide bounded
   latency and zero congestion loss for the DetNet service.

	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-ietf-detnet-bounded-latency-10'/>
   <format target='https://www.ietf.org/archive/id/draft-ietf-detnet-bounded-latency-10.txt' type='TXT'/>
</reference>


<reference anchor='I-D.eckert-detnet-bounded-latency-problems'>
   <front>
      <title>Problems with existing DetNet bounded latency queuing mechanisms</title>
      <author fullname='Toerless Eckert'>
	 <organization>Futurewei Technologies USA</organization>
      </author>
      <author fullname='Stewart Bryant'>
	 <organization>Stewart Bryant Ltd</organization>
      </author>
      <date day='12' month='July' year='2021'/>
      <abstract>
	 <t>   The purpose of this memo is to explain the challenges and limitations
   of existing (standardized) bounded latency queuing mechanisms for
   desirable (large scale) MPLS and/or IP based networks to allow them
   to support DetNet services.  These challenges relate to low-cost,
   high-speed hardware implementations, desirable network design
   approaches, system complexity, reliability, scalability, cost of
   signaling, performance and jitter experience for the DetNet
   applications.  Many of these problems are rooted in the use of per-
   hop, per-flow (DetNet) forwarding and queuing state, but highly
   accurate network wide time synchronization can be another challenge
   for some networks.

   This memo does not intend to propose a specific queuing solution, but
   in the same way in which it describes the challenges of mechanisms,
   it reviews how those problem are addressed by currently proposed new
   queuing mechanisms.

	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-eckert-detnet-bounded-latency-problems-00'/>
   <format target='https://www.ietf.org/archive/id/draft-eckert-detnet-bounded-latency-problems-00.txt' type='TXT'/>
</reference>


<reference anchor='I-D.qiang-DetNet-large-scale-DetNet'>
   <front>
      <title>Large-Scale Deterministic IP Network</title>
      <author fullname='Li Qiang'>
	 <organization>Huawei</organization>
      </author>
      <author fullname='Xuesong Geng'>
	 <organization>Huawei</organization>
      </author>
      <author fullname='Bingyang Liu'>
	 <organization>Huawei</organization>
      </author>
      <author fullname='Toerless Eckert'>
	 <organization>Huawei</organization>
      </author>
      <author fullname='Liang Geng'>
	 <organization>China Mobile</organization>
      </author>
      <author fullname='Guangpeng Li'>
	 </author>
      <date day='2' month='September' year='2019'/>
      <abstract>
	 <t>   This document presents the overall framework and key method for
   Large-scale Deterministic Network (LDN).  LDN can provide bounded
   latency and delay variation (jitter) without requiring precise time
   synchronization among nodes, or per-flow state in transit nodes.

	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-qiang-DetNet-large-scale-DetNet-05'/>
   <format target='https://www.ietf.org/archive/id/draft-qiang-DetNet-large-scale-DetNet-05.txt' type='TXT'/>
</reference>


<reference anchor='I-D.dang-queuing-with-multiple-cyclic-buffers'>
   <front>
      <title>A Queuing Mechanism with Multiple Cyclic Buffers</title>
      <author fullname='Bingyang Liu'>
	 <organization>Huawei</organization>
      </author>
      <author fullname='Joanna Dang'>
	 <organization>Huawei</organization>
      </author>
      <date day='22' month='February' year='2021'/>
      <abstract>
	 <t>   This document presents a queuing mechanism with multiple cyclic
   buffers.

	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-dang-queuing-with-multiple-cyclic-buffers-00'/>
   <format target='https://www.ietf.org/archive/id/draft-dang-queuing-with-multiple-cyclic-buffers-00.txt' type='TXT'/>
</reference>


<reference anchor="CQF" >
  <front>
    <title>IEEE Std 802.1Qch-2017: IEEE Standard for Local and Metropolitan Area Networks - Bridges and Bridged Networks - Amendment 29: Cyclic Queuing and Forwarding</title>
    <author >
      <organization>IEEE Time-Sensitive Networking (TSN) Task Group.</organization>
    </author>
    <date year="2017"/>
  </front>
</reference>
<reference anchor="TSN-ATS" target="https://1.ieee802.org/tsn/802-1qcr/">
  <front>
    <title>P802.1Qcr - Bridges and Bridged Networks Amendment: Asynchronous Traffic Shaping</title>
    <author initials="J." surname="Specht" fullname="Johannes Specht">
      <organization></organization>
    </author>
    <date year="2020" month="July" day="09"/>
  </front>
  <seriesInfo name="IEEE" value=""/>
</reference>


    </references>



  </back>

<!-- ##markdown-source:
H4sIAAAAAAAAA6VceXPbRpb/X1X6Dl121YSMCUiic1k7mRqZkjPa8hVR2dSW
k/KCRJNEBAIMAEpmHO1n3987utEgKTtTy0pkEujj9bsvIIqiw4NpmWbF/NSs
m1n03eHB4UGTNbk9Nee2sdUyK7K6yabmtW3uyuoGI00Pd/Czb86TJjFv86Sw
JjKv3r4cm+uRuU7mcxo1Kysz2kxzzP1xbdd0KSlS86Ks7pIq5XVoSkRTRj++
6B8eJJNJZW9PTWqbwjbRcpXXUTPFf7/PDg/SclokS4CVVsmsiez0xlZNtGdo
dDw8PLjDec4vrl9fXON8SWPnZbU5NXWTHh5kq+rUNNW6bobHx89o8OFB3QC0
90leFthgY+vDg1V2at415XRg6rJqKjur8W2zlC/Tcrm0RVP/SnOTdbMoq9PD
A2Mi+sMfAfW6tFVu69pcMLT+blkBvBfrZl3ZO5uZaztdFGVezjNbm5/GZ35c
jY1tc2qGw+GxGWHHKsnNxYdVhTXvko0fN80anG6cFCDHKE+qpL1TpoBjdGae
fX389XFweY3FMCfczS6TLAdqGvvPaR3PknWc2n2nGjcWFGzM82qDHbuH+qnI
bm1VAx5Tzsx4XVV2Yy5H4+1N6njCs/9Z85A4mcbrm32bnRUpkGR+iM2rJM/q
7m58yYzKol7nDThqe5dkvqQR/5zTzxhUI3oVZbVMGoDJJLt6MXo6/PbYff/u
m6+/9t+fffPVKc3IitnunONnftxXx0MeZ8xldB5nFnI0yWwVNTZKqunitHNH
OXYCCqQ2jXIwZzHd+DFdvt4aFa2qcpLbZe2H/54lxTwSecSoam6jeprkVi/5
cSkN+13EMLrLmkW0JJStMHLKMhpN1rMZKKcHgUCeCjZVGTy6vLi4AOlT893x
MD75cbqIhscn354avQ75gVSz0L8sAQHL+ivbVOWqzDPcNmeVTZwWqaEvnldZ
OgfD00D5noa3zyBhKUmZGT47/bQieSSQBoLoOYShu86WNhrbAmwJEnY02fX4
dR8aq74xP1TlehUbmZ0C3xA7HFDQgWHR2fV4CyVvFRXV507jzwJ+rjfFdFGV
RbmuzTVU2QzHGi+SVXuO2lZQBMR0/ix0jNMt2IbH0fG30fEzhYloj/UXTbOq
T4+OTsBt1hKAwMNRUxdH+B6d/D6tjvZiS6TtP8tFUhQ4xngFndTQ4aMoMskE
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
OYBVQWUA64b+5tS2K+3lpb6e6EzUdvehmXN/Kn5DA2Hsl3fnMImwCOfL5MMv
v3afFtCcEqPO1Rq15t8VD/8UhcrmUusZWBPh+x82yLz7nYO3tWw6b+GwS3Yr
yCmWJHRuizkVndvXSgx4dgSJg8DKivKUcK9K0qyUV1T0uXZcRKJ+AULb0xNM
kfRXmmaSNTrXXnD3DIAabUeww4O0ymaNPyiL325plId7jpWklzTyt8WoV5ox
o/dKSYfVLb2Xraowtffq+vJC8iTUaXDWSymnT1zJ2T3iV1lMq9P6JCw5nNzy
EUAtnk6Io6Dd98E3PwycCpAcKxULdrY76xHPyMM2+z0vh0V6tKTNufIfmpwV
fTCeLiMNoVOpCzeSjuyNSPv0XTOLdmW6rlwZO/KvveAK48jlpCHcVPOYUnsO
6FSWpl4C+QN59O2T4HJ9ilszK03OCUGl36B974cDr31LBlGlUzjhZ2P4bUC+
pVEStNrYTo85eMvDe1DvkQaQdWub9NUsmitztpYfkyrcewPUCrhilPmZ4pCg
65SLnJzYJ1/58EDUaFquJ63V0C5VadfUJlUnHODO7st5NEsur/MRb7mh8pE8
mBaihVu9oXmoIFAPWr2ytxWK+zWItFu6aevFFz2xW9yEIMQa8Gth2J/ggkci
ldcZVHocj9yDYATjmlLumk5+TO9MWld0hlEnhmE6Pz93oy7PXp/tG9F5AIfE
pShlbDci0vzuiAmQl3P6eXwspcBM3ppDrzwkrOLGCW96lqZcyr/DWpG8ak06
mpSKbf8jIe3Rg82RA37DJMm6ToS0N1DN7Cn999nrH+TNFWxBqJXDXyLbtyyp
oA2lTC9hsPpMkrwoTpsReDindmNzBZ+sLE47z/QIPMHjYywHdyJw/DiDpO43
Dyav/WMgIN1EnUd+B4Q2k99JVzW3Ys1L+CktSO1znPyEXOPeWqPlsmBk54Us
mx24fJ68fbRKCjIQE7tqGyw6ZQh6a07D1iclQeeif20JFRAs3tqxDrHZhdrd
QOJ4TEJrapO2gu05jqtEQV0/RHPZJcFRGcTr9YofpmIstvtBmtoxR0vYg0Ya
vPyy4Tu4CLPB1mwfGWBXJPDPMLGjTUaIXli4qmwEpVGzt+h5TfX7kt4zRibS
fuAuvIAdlPsGUr6htwVxtqlhp2QgDQLtrbb3QF14X5XgjeSVrVd2Bu8OvsX/
AR3Sk8vEVgAA

-->

</rfc>

