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

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
]>

<?rfc toc="yes"?>
<?rfc sortrefs="yes"?>
<?rfc symrefs="yes"?>
<?rfc comments="yes"?>

<rfc ipr="trust200902" docName="draft-eckert-detnet-mpls-tc-tcqf-01" category="std">

  <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="2021" month="October" day="25"/>

    
    <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" title="Introduction (informative)">

<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" title="Using TCQF in the DetNet Archticture and MPLS forwarding plane (informative)">

<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" title="MPLS T-CQF forwarding (normative)">

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

<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" title="Packet processing">

<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" title="TCQF with label stack operations">

<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" title="Ingres operations">

<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" title="TCQF Pseudocode (normative)">

<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" title="Operational considerations (informative)">

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

<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" title="Security Considerations">

<t>TBD.</t>

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

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

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

<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>

</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='Gregory Cauchie'>
	 <organization>Bouygues Telecom</organization>
      </author>
      <author fullname='Michael Menth'>
	 <organization>University of Tuebingen</organization>
      </author>
      <date day='9' month='July' year='2021'/>
      <abstract>
	 <t>   This memo describes per-packet stateless strict and loose path
   steered replication and forwarding for Bit Index Explicit Replication
   packets (RFC8279).  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 bit positions (BP) that
   indicate adjacencies, as opposed to BIER in which BPs indicate Bit-
   Forwarding Egress Routers (BFER).  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 sub-domains (SDs).  Except for the optional
   routed adjacencies, BIER-TE does not require a BIER routing underlay,
   and can therefore operate without depending on an Interior Gateway
   Routing protocol (IGP).

   As it operates on the same per-packet stateless forwarding
   principles, BIER-TE can also be a good fit to support multicast path
   steering in Segment Routing (SR) networks.

	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-ietf-bier-te-arch-10'/>
   <format target='https://www.ietf.org/archive/id/draft-ietf-bier-te-arch-10.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>
      <author fullname='János Farkas'>
	 <organization>Ericsson</organization>
      </author>
      <date day='1' month='September' year='2021'/>
      <abstract>
	 <t>   This document references specific queuing mechanisms, defined in
   other documents, that can be used to control packet transmission at
   each output port and achieve the DetNet qualities of service.  This
   document presents a timing model for sources, destinations, and the
   DetNet transit nodes that relay packets that is applicable to all of
   those referenced queuing mechanisms.  Using the model presented in
   this document, it should be possible for an implementor, user, or
   standards development organization to select a particular set of
   queuing mechanisms for each device in a DetNet network, and to select
   a resource reservation algorithm for that network, so that those
   elements can work together to provide the DetNet service.

	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-ietf-detnet-bounded-latency-07'/>
   <format target='https://www.ietf.org/archive/id/draft-ietf-detnet-bounded-latency-07.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:
H4sIAB8Bd2EAA6VceXPbRpb/X1X6Dl121YSMCUiic1k7mRqZkjPa8hVR2dSW
k/KCRJNEBAIMAEpmHO1n3987utEgKTtTy0pkEujj9bsvIIqiw4NpmWbF/NSs
m1n03eHB4UGTNbk9Nee2sdUyK7K6yabmtW3uyuoGI00Pd/Czb86TJjFv86Sw
JjKv3r4cm+uRuU7mcxo1Kysz2kxzzP1xbdd0KSlS86Ks7pIq5XVoSkRTRj++
6B8eJJNJZW9PTWqbwjbRcpXXUTPFf7/PDg/SclokS4CVVsmsiez0xlZNtGdo
dHxyeHCH85xfXL++uMb5ksbOy2pzauomPTzIVtWpaap13QyPj58dD+nEdQPQ
3id5WWCDja0PD1bZqXnXlNOBqcuqqeysxrfNUr5My+XSFk39K81N1s2irE4P
D4yJ6A9/BNTr0la5rWtzwdD6u2UF8F6sm3Vl72xmru10UZR5Oc9sbX4an/lx
NTa2zakZDofHZoQdqyQ3Fx9WFda8SzZ+3DRrcLpxUoAcozypkvZOmQKO0Zl5
9vXx18fB5TUWw5xwN7tMshyoaew/p3U8S9ZxavedatxYULAxz6sNduwe6qci
u7VVDXhMOTPjdVXZjbkcjbc3qeMJz/5nzUPiZBqvb/ZtdlakQJL5ITavkjyr
u7vxJTMqi3qdN+Co7V2S+ZJG/HNOP2NQjehVlNUyaQAmk+zqxejp8Ntj9/27
b77+2n9/9s1XpzQjK2a7c46f+XFfHQ95nDGX0XmcWcjRJLNV1NgoqaaL084d
5dgJKJDaNMrBnMV048d0+XprVLSqyklul7Uf/nuWFPNI5BGjqrmN6mmSW73k
x6U07HcRw+guaxbRklC2wsgpy2g0Wc9moJweBAJ5KthUZfDo8uLiAqRPzXfH
w/jkx+kiGh6ffHtq9DrkB1LNQv+yBAQs669sU5WrMs9w25xVNnFapIa+eF5l
6RwMTwPlexrePoOEpSRlZvjs9NOK5JFAGgii5xCG7jpb2mhsC7AlSNjRZNfj
131orPrG/FCV61VsZHYKfEPscEBBB4ZFZ9fjLZS8VVRUnzuNPwv4ud4U00VV
FuW6NtdQZTMca7xIVu05altBERDT+bPQMU63YBseR8ffRsfPFCaiPdZfNM2q
Pj06OgG3WUsAAg9HTV0c4Xt08vu0OtqLLZG2/ywXSVHgGOMVdFJDh4+iyCQT
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

-->

</rfc>

