<?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.7.8 (Ruby 2.6.10) -->


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

]>

<?rfc comments="yes"?>

<rfc ipr="trust200902" docName="draft-eckert-detnet-tcqf-06" category="std" consensus="true" submissionType="IETF" tocDepth="5" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="detnet-tcqf">Deterministic Networking (DetNet) Data Plane - Tagged Cyclic Queuing and Forwarding (TCQF) for bounded latency with low jitter in large scale DetNets</title>

    <author initials="T." surname="Eckert" fullname="Toerless Eckert" role="editor">
      <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="Y." surname="Li" fullname="Yizhou Li" role="editor">
      <organization>Huawei Technologies</organization>
      <address>
        <postal>
          <city>Nanjing</city>
          <country>China</country>
        </postal>
        <email>liyizhou@huawei.com</email>
      </address>
    </author>
    <author initials="S." surname="Bryant" fullname="Stewart Bryant">
      <organization>University of Surrey ICS</organization>
      <address>
        <postal>
          <country>United Kingdom</country>
        </postal>
        <email>s.bryant@surrey.ac.uk</email>
      </address>
    </author>
    <author initials="A. G." surname="Malis" fullname="Andrew G. Malis">
      <organization>Malis Consulting</organization>
      <address>
        <postal>
          <country>USA</country>
        </postal>
        <email>agmalis@gmail.com</email>
      </address>
    </author>
    <author initials="J.-d." surname="Ryoo" fullname="Jeong-dong Ryoo">
      <organization>ETRI</organization>
      <address>
        <postal>
          <country>South Korea</country>
        </postal>
        <email>ryoo@etri.re.kr</email>
      </address>
    </author>
    <author initials="P." surname="Liu" fullname="Peng Liu">
      <organization>China Mobile</organization>
      <address>
        <postal>
          <country>China</country>
        </postal>
        <email>liupengyjy@chinamobile.com</email>
      </address>
    </author>
    <author initials="G." surname="Li" fullname="Guangpeng Li">
      <organization>Huawei Technologies</organization>
      <address>
        <postal>
          <city>Beijing</city>
          <country>China</country>
        </postal>
        <email>liguangpeng@huawei.com</email>
      </address>
    </author>
    <author initials="S." surname="Ren" fullname="Shoushou Ren">
      <organization>Huawei Technologies</organization>
      <address>
        <postal>
          <city>Beijing</city>
          <country>China</country>
        </postal>
        <email>renshoushou@huawei.com</email>
      </address>
    </author>
    <author initials="F." surname="Yang" fullname="Fan Yang">
      <organization>Huawei Technologies</organization>
      <address>
        <postal>
          <city>Beijing</city>
          <country>China</country>
        </postal>
        <email>shirley.yangfan@huawei.com</email>
      </address>
    </author>

    <date year="2024" month="July" day="06"/>

    
    <workgroup>DETNET</workgroup>
    

    <abstract>


<?line 178?>

<t>This memo specifies a forwarding method for bounded latency and bounded jitter for Deterministic Networks and is a variant of the IEEE TSN Cyclic Queuing and Forwarding (CQF) method. Tagged CQF (TCQF) supports more than 2 cycles and indicates the cycle number via an existing or new packet header field called the tag to replace the cycle mapping in CQF which is based purely on synchronized reception clock.</t>

<t>This memo standardizes TCQF as a mechanism independent of the tagging method used. It also specifies tagging via the (1) the existing MPLS packet Traffic Class (TC) field for MPLS packets, (2)  the IP/IPv6 DSCP field for IP/IPv6 packets, and (3) a new TCQF Option header for IPv6 packets.</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 as well as low accuracy clock synchronization.</t>



    </abstract>



  </front>

  <middle>


<?line 188?>

<section anchor="introduction"><name>Introduction</name>

<section anchor="terminology"><name>Terminology</name>

<dl>
  <dt>CQF</dt>
  <dd>
    <t>Cyclic Queuing and Forwarding.  A queuing mechanism defined by annex T of <xref target="IEEE802.1Q"/>.</t>
  </dd>
  <dt>DT</dt>
  <dd>
    <t>Dead Time. A term from CQF indicating the time during each cycle in which no frames can be sent because the the receiving node could not receive it into the desired cycle buffer.</t>
  </dd>
  <dt>TCQF</dt>
  <dd>
    <t>Tagged Cyclic Queuing and Forwarding. The mechanism specified in this memo.</t>
  </dd>
</dl>

</section>
</section>
<section anchor="overview-informative"><name>Overview (informative)</name>

<section anchor="cyclic-queuing-and-forwarding-cqf"><name>Cyclic Queuing and Forwarding (CQF)</name>

<t>Cyclic Queuing and Forwarding (CQF) is a bounded (guaranteed) per-hop
latency forwarding mechanism standardized for use in ethernet switched
networks by the IEEE TSN working group originally via <xref target="IEEE802.1Qch"/>
(802.1 Qch), which later became annex T of <xref target="IEEE802.1Q"/>.  See also <xref target="RFC9320"/>, Section 6.6.</t>

<t>CQF is not a separate forwarding mechanism, but it is simple a profile
of the IEEE Time Aware Shaper (TAS) standard, <xref target="IEEE802.1Qbv"/>, which introduce
Time-Gated Queues.</t>

<t>CQF uses a two-queue based forwarding mechanism on every switch along a
path between a sender and receiver. One queue is used to receive and
store frames destined toward a particular outgoing interface on the switch,
the other queue is used simultaneously to send frames to the same outgoing
interface. At every cycle time T_c interval these two queues are swapped, or
in terms of Time-Gated Queus, one is closed for sending, the other is opened
for sending. This operation is synchronized across all switches in the 
network by network wide synchronized clocks, so that all queues
open and close at the same time.</t>

<t>For a path of h hops, the end-to-end latency bound is between (h-1) * T_c + DT
and (h+1) * T_c. DT is the so-called dead time at the end of a cycle
during which no frames can be transmitted from the sending queue to ensure
that the last byte of the last frame will be received earlier than
the end of the same cycle on the receiving switch.</t>

<t>A core contributor to DT is the (physical) link between the sending
and receiving switch. DT needs to be larger than the latency of
this link, including physical propagation latency (speed of light), possible
error correction latencies, and interface serialization latency.</t>

<t>T_c needs to be choosen carefully: The larger it is, the higher the
bounded latency. The smaller it is, the fewer bytes (and hence frames)
will fit into a cycle.</t>

<t>To admit flows into a CQF network, the ingress switch uses per-flow
Time-Gated Queues. In the most simple case, such a gate is configured
to admit a maximum amount of bytes from the flow into every cycle. More
advanced admission control can be performed for bursty flows. For example
N bursty flows f_i = 0...(N-1) could share admitted bandwidth by each having their
burst admitted in different cycles c_i = c % N + c_i, where c is a continuous
increasing cycle number.</t>

</section>
<section anchor="highspeed"><name>Benefits of CQF with higher speed links</name>

<t>The typical CQF deployments in manufacturing networks with 1Gbps links
uses no less than hundreds of microseconds as a cycle interval.  In a
network with a small diameter, say less than 8 hops, it is sufficiently good to provide an
end-to-end latency bound in the order of several milliseconds.</t>

<t>With the increasing of link speed from 100Mbps to 1Gbps, 10Gbps, 100Gbps
or even higher in larger networks, either more bytes can be transmitted
within the same cycle interval or the smaller cycle interval is
required to transmit the same amount of bytes in a cycle as that in
low speed networks. Likewise, the serialization latency reduces with
higher speed links and DT reduces. This overall makes CQF for higher speed
networks more attractive than for lower speed networks.</t>

<t><xref target="Fig1"/> shows a simple calculation on the number of bytes that can
be transmitted in a cycle with different cycle intervals and link
speeds. A minimum of 1500 bytes is labeled with * as a baseline because
a typical maximum Ethernet frame is 1500 bytes and a selected cycle interval
should at least allow one such frame size to be transmitted unless
otherwise specified.</t>

<t>TBD: These numbers probbly need to be adjusted to reflect reducing DT based on
serialization latency.</t>

<figure title="Bytes transmitted within one cycle interval" anchor="Fig1"><artwork><![CDATA[
+----------+------------------------------------------------+
|          |           Bytes Transmitted in a Cycle         |
|Cycle Time+------------------------------------------------+
|          |             Link Speed                         |
|  (us)    |   100Mbps  |   1Gbps     |   10Gbps  | 100Gbps |
+----------+------------+-------------+-----------+---------+
|    1     |    12.5    |    125      |    1250   |   12500*|
+----------+------------+-------------+-----------+---------+
|   1.2    |     15     |    150      |    1500*  |   15000 |
+----------+------------+-------------+-----------+---------+
|    2     |     25     |    250      |    2500   |   25000 |
+----------+------------+-------------+-----------+---------+
|    4     |     50     |    500      |    5000   |   50000 |
+----------+------------+-------------+-----------+---------+
|    10    |    125     |   1250      |   12500   |  125000 |
+----------+------------+-------------+-----------+---------+
|    12    |    150     |   1500*     |   15000   |  150000 |
+----------+------------+-------------+-----------+---------+
|   120    |    1500*   |   15000     |   150000  | 1500000 |
+----------+------------+-------------+-----------+---------+
]]></artwork></figure>

<t>When the link speed is at 10Gbps, the cycle interval could be as
small as 1.2 us if a 1500 byte frame needs to be transmitted in one
cycle interval, and with 100Gbps links even 1 usec cycle time
allows for 8 frames of 1500 byte each.  These are not accurate calculations because there are
certainly other factors to determine the cycle interval.  However, it
shows that as the link speed increases, cycle interval can be greatly
reduced in practice while satisfying the minimum amount of data
transmitted in a single cycle.  The end-to-end latency bound when
applying CQF is determined by cycle interval and number of hops.
That is to say, CQFs with a smaller cycle interval have the potential
to meet more strict end-to-end latency requirements in higher link
speed networks or meet the same end-to-end latency requirement in
networks with much larger network diameter (number of hops).</t>

<t>Industry automation has some typical application period requirement,
e.g.  100 us to 2 ms for isochronous traffic, 500 us to 1 ms for
cyclic-synchronous and 2 to 20 ms for cyclic-asynchronous traffic.
The network cycle interval is usually a fraction of the application
period.  When the cycle interval is in the order of tens of
microseconds, CQF can be used to meet the most strict end-to-end
latency requirements.  For instance, if we assume the number of hops
is 24, when cycle interval is set to 10us, the end-to-end latency
bound can be around (24+1)*10 = 250 us which has the potential to
meet the latency bound requirement for isochronous traffic.</t>

<t>In summary a higher speed network makes the shorter cycle interval
feasible because sufficiently large traffic volume can be transmitted
within one cycle interval.  A shorter cycle interval further offers
shorter end-to-end latency and jitter bounds which provide CQF with
the potentials to meet more strict latency requirements in wider
deployments while preserving its simplicity of latency calculation
and provisioning.  Therefore there is a strong motivation to leverage
CQF and at the same time to make cycle interval as short as possible.</t>

</section>
<section anchor="cqfdt"><name>Challenges of CQF with higher latency links</name>

<t>Unlike the original targets for IEEE TSN work, DetNet not only targets
to support IETF forwarding planes (IP, MPLS,...), but also wide-area
networks with therefore longer physcial propagation latencies.</t>

<t>As shown in <xref target="Fig2"/> for fundamental (two buffer) CQF, the last byte
sent by node A in cycle (i-1) has to be ready for sending at node B
before the start of cycle i.  To realize it, DT or dead time is
imposed.  It is a time interval usually at the end of a cycle so that
a node should not send the scheduled CQF packets.</t>

<t>Dead time is at least the sum of the maximum propagation delay to the
next node, the maximum processing delay at the next node and the
maximum other time variations.  Therefore either the longer
propagation or longer processing delay makes dead time larger.
Packets from DetNet service is likely to be propagated over long
links in the wider area.  It takes around 5us per kilometer to
propagate, i.e. 0.5ms every hundred kilometers.  Hence the dead time
can be as large as milliseconds or tens of milliseconds in case of
hundred kilometers of longer links and larger processing delays.
That would make the dead time eat up most of the cycle interval when
cycle interval is short (e.g., at the same order or one order higher
of magnitude in time as dead time).  Then the useful time in a cycle
will be much reduced.  In some extreme cases, when the link is long
and the cycle interval is set to extremely short, the first packet
sent in a cycle by a node will not be possibly received in the same
cycle interval at the next node.  That makes the useful time in a
cycle reaches zero in two buffer CQF.  Then two buffer CQF will be no
longer suitable.</t>

<t>In result of these considerations, reasonable limits for the size
of TSN CQF networks are in the order of at most few Km per hop,
beyond which DT exceeds common cycle times and possible through
of CQF traffic is hence 0.</t>

<figure title="Fundamental Two Buffer CQF" anchor="Fig2"><artwork><![CDATA[
--------------------------------------------------------> Time

          |             |             |             |
Node A    |  cycle i-1  |   cycle i   |  cycle i+1  |
          |             |             |             |
Sending  ---------------+----------------------------------
          |+------+     |+------+     |+------+     |
          ||//////|     ||//////|     ||//////|     |
          |+------+     |+------+     |+------+     |
          |  buf_1      |  buf_2      |  buf_1      |
          |       |     |       |     |       |     |
          |       | DT  |       | DT  |       | DT  |
Node B    |       |<--->|       |<--->|       |<--->|
          |             |             |             |
Receiving--------------------------------------------------
          |     +------+|     +------+|     +------+|
          |     |//////||     |//////||     |//////||
          |     +------+|     +------+|     +------+|
          |       buf_1 |       buf_2 |       buf_1 |
          |             |             |             |
          |             |             |             |
Node B    |             |             |             |
          |             |             |             |
Sending  --------------------------------------------------
          |             |+------+     |+------+     |
          |             ||//////|     ||//////|     |
          |             |+------+     |+------+     |
          |             |  buf_1      |  buf_2

DT=Dead Time
]]></artwork></figure>

</section>
<section anchor="cqf-review"><name>Review of CQF benefits and challenges for DetNet</name>

<t>In review, CQF has a range of benefits for DetNet.</t>

<t><list style="numbers">
  <t>It provides bounded latency.</t>
  <t>It provided tightly bounded jitter.</t>
  <t>It has a very simple and easily standardized calculus for its bounded latency and jitter.</t>
  <t>It has very simple per-hop forwarding machinery (cyclic queues) easily supportable in high-speed network equipment.</t>
  <t>Like Diffserv forwarding, it does not use per-hop,per-flow state in the forwarding plane and therefore does not require per-hop,per-flow signaling with the DetNet controller-plane, allowing it to scale to large number of flows.</t>
  <t>The faster the links are, the lower the per-hop latency impact of the cyclic queuing mechanism.</t>
</list></t>

<t>The core limitation of CQF, which TCQF intends to solve, lies in its use of arrival time clock to determine the cycle into which the packet is to be placed, see <xref target="I-D.eckert-detnet-bounded-latency-problems"/> for more details.</t>

<t><list style="numbers">
  <t>Cycles times should be as short as feasible to support lower end to end latency (<xref target="highspeed"/>).</t>
  <t>When networks have longer links, or links with higher propagation jitter as in Metro and WAN, this increases the dead time, and hence reduces the possible utilization or need to increase cycle times.</t>
  <t>When shorter cycle times are feasible because of higher speed links, this would require an increase in clock-synchronization accuracy.</t>
</list></t>

</section>
<section anchor="tagged-cqf"><name>Tagged CQF</name>

<t>Tagging of CQF packets with cycle identifiers can be used to solve
the dilemma aforementioned with minor changes to the fundamental two buffer CQF.
This section introduces this mechanism with multipl buffers and
CQF cycle identification in the packet header. Note that we are also now
using the term packet (as used for IP, MPLS and other IETF forwarding planes) and
buffers for packets, as opposed to frames as used by IEEE.</t>

<section anchor="cqf-with-more-than-two-buffers"><name>CQF with more than two buffers</name>

<t>CQF can use more than two buffers to minimize the dead time and
increase the useful time in a cycle so as to support long link delay.
<xref target="Fig3"/> shows how a three buffer CQF works in a rotating manner in
general.  Node A sends packets in cycle (i-1).  The time interval
over which node B receives these packet spans two cycles, cycle (i-1)
and cycle i.  Hence a method is needed to make node B send them all
at once in cycle (i+1) in order to ensure packets in a single cycle
from the previous node always being sent out in one cycle at the
current node.</t>

<figure title="Three Buffer CQF" anchor="Fig3"><artwork><![CDATA[
--------------------------------------------------------> Time

          |             |             |             |
Node A    |  cycle i-1  |   cycle i   |  cycle i+1  |
          |             |             |             |
Sending  ---------------+----------------------------------
          |+----------+ |+----------+ |+----------+ |
          ||//////////| ||//////////| ||//////////| |
          |+----------+ |+----------+ |+----------+ |
          |  buf_1      |  buf_2         buf_3      |
          |           | |           | |           | |
          |         ->| |<-       ->| |<-       ->| |<-
          |            DT            DT            DT
          |
          -------------------------------------------------
Node B    |     +-----------+ +-----------+ +-----------+
          |     |///////////| |///////////| |///////////|
Receiving |     +-----------+ +-----------+ +-----------+
          |       buf_1 |       buf_2 |       buf_3 |
          |             |             |             |
          |             |             |             |
          |             |             |             |
          |             |             |             |
         ---------------|----------------------------------
Node B    |             |             |+----------+ |+----------+
          |             |             ||//////////| ||//////////|
Sending   |             |             |+----------+ |+----------+
          |             |                buf_1         buf_2

DT=Dead Time
]]></artwork></figure>

<t>More than three buffers will be required when the receiving interval
at node B for packets sent in a single cycle interval from node A
spans over more than two cycle interval boundaries.  This can happen
when the time variance (jitter) including propagation, processing, regulation,
clock synchronization variance (so called Maximum Time Interval Error - MTIE)
and other factors between two neighbouring DetNet nodes can become larger
than a single cycle tim.</t>

</section>
<section anchor="from-cqf-with-multiple-buffers-to-tcqf"><name>From CQF with multiple buffers to TCQF</name>

<t>Note that due to the variance in time, the receiving interval at the
downstream node can be much larger than one cycle interval in which
the upstream node transmits.  When time variance is large and cycle
interval and dead time are set small, the possible receiving time of
the last few packets from node A’s cycle (i-1) at node B can overlap
with the possible receiving time of the first few packets from node
A’s cycle i in different rounds of buffer rotations.  Hence, when the
buffer number is larger than two, if the receiving side still uses
the traditional CQF implicit time borderline to demarcate the
receiving packets from the consecutive cycles of the upstream node,
it may cause the ambiguity in identifying the right sending cycle at
the upstream node and further affect the correctness of the decision
of which output buffer to put the received packets at the current
node.</t>

<t><xref target="Fig4"/> shows such an ambiguity when time based cycle demarcation is
used.  The packet sent by node A in its cycle (i-1) can be received
at any time in the receiving interval indicated as “receiving window
for A’s buf_1” in Figure 4.  The receiving window refers to the time
interval between the earliest time that the first packet sent in a
given cycle from an upstream node is processed and enqueued in an
output buffer and the latest time that the last packet of the cycle
is processed and enqueued in an output buffer.  Network operators may
configure the size of the receiving window, taking the time variance
of their networks into account.  It can be seen that the spanning
time period of receiving window is longer than the cycle interval.
This is because there is a large time variance experienced between A
and B, e.g. varying processing time for different packets in
different cycles.  It does not mean the receiving interval for every
cycle always constantly span over such a large receiving window.  The
receiving window time interval indeed is determined by the worst case
time variance value and that should be used for regular time cycle
demarcation.</t>

<figure title="Three Buffer ambiguity" anchor="Fig4"><artwork><![CDATA[
--------------------------------------------------------> Time

           |        |        |        |        |
Node A     | cycle  | cycle  | cycle  | cycle  |
           |  i-1   |   i    |  i+1   |  i+2   |
Sending   ----------+--------+--------+--------+
           |+-----+ |+-----+ |+-----+ |+-----+ |
           ||/////| ||/////| ||/////| ||/////| |
           |+-----+ |+-----+ |+-----+ |+-----+ |
           | buf_1  | buf_2  | buf_3  | buf_4  |
           |      | |      | |      | |      | |
           |    ->| |<-  ->| |    ->| |    ->| |
           |      DT       DT       DT       DT
           |
          --------------------------------------
           |      +-----------+receiving window
Node B     |      |///////////|for A's buf_1
           |      +-----------+
Receiving  |    put to B's buf_1
           |
           |             ->|  |<- ambiguity window 1
           |
           |               +-----------+receiving window
           |               |///////////|for A's buf_2
           |        |      +-----------+
           |        |     put to B's buf_2
           |        |
           |        |             ->|  |<- ambiguity window 2
           |        |        |
           |        |        |      +-----------+receiving window
           |        |        |      |///////////|for A's buf_3
           |        |        |      +-----------+
           |        |        |     put to B's buf_3
           |        |        |
           |        |        |             ..........
           |        |        |
          -|--------|--------|--------|---------------
Node B     |        |        |        |        |        |
           |        |        | +-----+|+-----+ |+-----+ |+-----+
Sending    |        |        | |/////|||/////| ||/////| ||/////|
           |        |        | +-----+|+-----+ |+-----+ |+-----+
           |        |        |  buf_4 | buf_1  | buf_2  | buf_3

DT=Dead Time
]]></artwork></figure>

<t>When a packet is received in ambiguity window 1 in <xref target="Fig4"/>, node B
is not able to use the receiving time to determine which buffer is
the correct one to put the packet in because it cannot tell if the
packet is sent from cycle (i-1) or cycle i on node A.  If node B puts
the packet to the wrong output buffer, the packet may experience the
unexpected delay.  At the same time, the packet occupying the non-
designated buffer may break the contracts between the end hosts and
DetNet networks and then cause the unpredictable consequences.</t>

<t>It has been noted that the DT can be greatly increased to beat the
time variance in order to make the receiving windows do not overlap
so as to remove such ambiguity.  However, it is not always practical
and usually not desired because large DT will eat useful cycle time
and bring the low utilization issue as illustrated in <xref target="cqfdt"/>.
Therefore, it would be desired to keep DT as small as possible and at
the same time identify the cycle interval correctly.</t>

<t>With tagged CQF, the sending router A encodes the sending cycle identification in some
existing or new packet header field as specified later in this document.
This allows the receiving router B to determine the correct output port cycle buffer to
place the data packet into. Except for the need for the operator to
pre-configure this mapping on router B, based on the above described latency and jitter
of the link (and processing between the sending and receiving router,
tagging does not change the fundamental mechanism and benefits of CQF.
makes no change from the fundamental CQF.</t>

<t>Compared to CQF with multiple buffers, Tagged CQF allows to
operate with clock synchronization at significantly reduced accuracy
requirements than CQF. In CQF, the MTIE is an addend determing DT 
and should hence typically be less than 1% of the cycle time. In TCQF it
is an addent in the permitted receive window and can hence be for  example
as large as the cycle time, and such 100 times larger. A network using
TCQF with 100Gbps interfaces can hence can hence use the same or less
expensive clock synchronization setup than a CQF network with 1Gbps interfaces.
In addition, when conditions of the network connections change, the mappings
can dynamically changed from network operations.</t>

<t>CQF with multiple buffers but without tagging has been proposed to IEEE TSN
in <xref target="multipleCQF"/>, but has not been adopted. Instead of relying on a cycle
tag in a packet header, it still relies solely on the arrival time of packet,
and can hence not equally resolve arrival time ambiguities as TCQF can,
because it does not know the cycle from which the packet was sent.</t>

</section>
</section>
<section anchor="summary-of-tcqf-benefits-and-goals-for-detnet"><name>Summary of TCQF benefits and goals for DetNet</name>

<t>TCQF inherits the benefits of CQF for DetNet as outlined in <xref target="cqf-review"/>, and byusing a configurable number of three or more cycles, and signaling the cycle as part of a packet header, it resolves these problems as follows.</t>

<t><list style="numbers">
  <t>With three cycles, TCQF can support arbitrary latency links at arbitrary speeds without reduction of utilization because of longer links or higher link speeds (same cycle time, same clock accuracy, only change in lengths and speeds).</t>
  <t>With four or more cycles, TCQF can also eliminate Dead Time caused by variation of clock synchronization inaccuracies (MTIE) as well as jitter caused by link propagation and processing variation. The sum of cycles times needs to be larger than the total jitter to achieve this.</t>
</list></t>

<t>Prior documents describing the concept of TCQF (without using that name) include <xref target="I-D.qiang-detnet-large-scale-detnet"/> and <xref target="I-D.dang-queuing-with-multiple-cyclic-buffers"/>. TCQF does not depend on other elements of <xref target="RFC8655"/>, so it can also be used stand alone in otherwise non-deterministic IP/IPv6 or MPLS networks to achieve bounded latency and low jitter.</t>

<t>TCQF is likely especially beneficial when networks are architected 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, SRv6 <xref target="RFC8986"/> for traffic steeering of IPv6 unicast traffic and/or BIER-TE <xref target="I-D.ietf-bier-te-arch"/> for tree engineering of MPLS multicast traffic by using the TC and/or DSCP header fields of BIER packets according to <xref target="RFC8296"/>.</t>

<t>In these networks, it is specifically undesirable to require per-flow signaling to non-edge forwarders (such as P-LSR in MPLS networks) 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 (such as in RSVP-TE, <xref target="RFC4875"/>). 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 TCQF with the DetNet architecture per-hop, per-flow processing as well as without it.</t>

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

<t>This section gives an overview of how the operations of TCQF relates
to the DetNet architecture. We first revisit QoS with DetNet in the absence of TCQF
using an MPLS network as an example.</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 (aka:
per-flow packet scheduling), such as in <xref target="TSN-ATS"/>, this requires the use of a
per-detnet flow F-Labels across the network from S-PE1 to S-PE2. These could
for for example be assigned/managed 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 TCQF, a sequence of LSR and DetNet service node implements
TCQF with MPLS TC, ideally from T-PE1 (ingress) to T-PE2 (egress).  The ingress
node needs to perform per-DetNet-flow per-packet "shaping"/"regulating" to  assign
each packet of a flow to a particular TCQF cycle. This is specified in <xref target="ingress"/>.</t>

<t>All LSR/Service nodes 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 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 one 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>TCQF per-flow stateless forwarding (normative)</name>

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

<t>The following data model summarizes the configuration parameters
as required for TCQF and discussed in further sections. 'tcqf' 
includes the parameters independent of the tagging on an interface.
'tcqf_*' describes the parameters for interfaces using MPLS TC and
IP DSCP tagging.</t>

<figure title="Encapsulation independent TCQF Configuration Data Model" anchor="FIG-Data-Model"><artwork><![CDATA[
# Encapsulation agnostic data
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]
]]></artwork></figure>

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

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

<t>tcqf contains the router wide configuration of TCQF parameters,
independent of the specific tagging mechanism on any interface. Any
interface can have a different tagging method. This document uses the term
router when it is irrelevant whether forwarding is for IP or MPLS packet,
and the term Label Switched Router (LSR) to indicate MPLS is used, or IP
router to indicate IP or IPv6 are used - independent of the specific encapsulation
used for IP or MPLS to carry the cycle identification.</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
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.
routers MUST support 3 and 4 cycles. The maximum number of supportable cycles
depends on the encapsulation. For example, to support interfaces with MPLS TC tagging,
7 or fewer cycles MUST be used across all interfaces in the CQF domain. See <xref target="mpls"/>.</t>

<t>The unit of tcqf.cycle_time is micro-seconds.
routers 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 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>This encapsulation independent data model only defines how to map from
a received packets cycle to a sending interface cycle buffer and hence sent
packet cycle. It does not specify how the cycle identifier is encoded in
the received or sent packet. This is amended by the specification in the following
sections.</t>

<t>This data model does therefore also not determine whether interfaces use IP/IPv6, MPLS
or any other encapsulation. This is determined by the configuration of the DetNet domain. A mixed
use of MPLS and IP/IPv6 interfaces is possible with this data model, but
at the time of writing this document not supported by DetNet.</t>

</section>
<section anchor="mpls"><name>TCQF for MPLS with TC tagging</name>

<t>This section describes operation of TCQF for MPLS packets using the
Traffic Class (TC) field of MPLS label to carry the cycle-id. To support
this encapsulation, the TCQF Data Model as defined in <xref target="FIG-Data-Model"/>
is expanded as follows.</t>

<figure title="TCQF Configuration Data for MPLS TC" anchor="FIG-Data-Model-TC"><artwork><![CDATA[
# MPLS TC tagging specific data
tcqf_tc[oif]
+--uint8 tc[oif_cycle]
]]></artwork></figure>

<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. tcqf_tc[oif] MUST be
configured, when oif uses MPLS. This oif_cycle &lt;=&gt; tc mapping is 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>

<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, Penultimate Hop Popping (PHP),
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="dscp"><name>TCQF for IP/IPv6 with DSCP tagging</name>

<t>This section describes operation of TCQF for IP/IPv6 packets using the
Differentiated Services Code Point (DSCP) field of IP/IPv6 packets to carry the cycle-id.
To support this encapsulation, the TCQF Data Model as defined in <xref target="FIG-Data-Model"/>
is expanded as follows.</t>

<figure title="TCQF Configuration Data for IP/IPv6 DSCP" anchor="FIG-Data-Model-DSCP"><artwork><![CDATA[
# IP/IPv6 DSCP tagging specific data
tcqf_dscp[oif]
+--uint8 dscp[oif_cycle]
]]></artwork></figure>

<t>tcqf_dscp[oif].dscp[oif_cycle] defines how to map from the internal cycle number
oif_cycle to an IP/IPv6 DSCP value on interface oif. tcqf_dscp[oif] MUST be
configured, when oif uses DSCP tagging of IP/IPv6 packets for TCQF. This
oif_cycle &lt;=&gt; idscp mapping is not only used to map from internal cycle number to the
DSCP tag when sending packets, but also to map from IP/IPv6 DSCP to the internal cycle number when
receiving packets.</t>

<t>As how DetNet domains are currently assumed to be single administrative network
operator domains, this document does not ask for standardization
of the DSCP to use with TCQF. Instead, deployments wanting to use TCQF with
IP/IPv6 encapsulation and DSCP tagging need to assign within their domain DSCP from the
xxxx11 "EXP/LU" Codepoint space according to <xref target="RFC2474"/>, Section 6. This
allows up to 16 DSCP for intradomain use and hence up to 16 cycle identifiers.</t>

</section>
<section anchor="option"><name>TCQF for IPv6 with IPv6 Option tagging</name>

<t>This section describes operation of TCQF for IPv6 packets without having
to rely on DSCP by defining a new IPv6 option for DetNet.  This option is to be placed in the
IPv6 HbH (Hop-by-Hop) Options or DOH (Destination Option Header) header.
To support this encapsulation, the TCQF Data Model as defined in <xref target="FIG-Data-Model"/>
is expanded as follows.</t>

<figure title="TCQF Configuration Data for IPv6 TCQF Option Header" anchor="FIG-Data-Model-IPV6OH"><artwork><![CDATA[
# IPv6 TCQF Option tagging specific data
tcqf_ipv6oh[oif]
+--uint8 ipv6oh[oif_cycle]
]]></artwork></figure>

<section anchor="tcqf-option-format"><name>TCQF Option Format</name>

<t>The TCQF Option helps the receiving port to identify in which
time cycle interval the packet is sent from the upstream router.  It
can be used to determine the output port cycle buffer to enqueue the
packet.</t>

<figure title="TCQF Option Format" anchor="Fig5"><artwork><![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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  Option Type  |  Opt Data Len |E|    Flags    |   Cycle Id    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
.                                                               .
~         (64-bit extension if flag E-bit is 1)                 ~
.                                                               .
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork></figure>

<t>TCQF-Option fields:</t>

<t><list style="symbols">
  <t>Option Type: 8-bit identifier of the type of option.  Value TBD by
IANA.  If the processing IPv6 node does not recognize the Option
Type it must discard the packet and return an ICMPv6 message (the
highest-order 2 bits = 10).  The Option Data of this option may
change en route to the packet's final destination (the third-
highest-order bit=1).</t>
  <t>Opt Data Len: 8-bit length of the option data.</t>
  <t>Flags: 8-bit field to indicate what TCQF Option information
follows.  The leftmost bit is called E-bit.  When E-bit set to 1,
there is a 64-bit extension in length after Cycle Id.</t>
  <t>Cycle Id: 8-bit field to indicate the time cycle ID at output port
of the upstream node when the packet is sent out. This is the
packet header field name for the data model ipv6oh[oif_cycle]
element.</t>
  <t>64-bit extension: This field contains values required for a
possible additional options, such as timestamp.  This field exists only
when E-bit in Flags field is set to one.  [Editor's Note: Text
will be modified or added as specific uses for this field are
identified]</t>
</list></t>

</section>
<section anchor="tcqf-option-processing"><name>TCQF Option Processing</name>

<t>A packet carrying the TCQF Option with Cycle Id does not change
the fundamental cyclic queuing and forwarding behaviors of TCQF over
the encapsulation independent forwarding behavior described above (<xref target="processing"/>).</t>

<t>Compared to DSCP it does not introduce a limited number of cycle-ids, and
eliminates the possible operation consideration to use multiple DSCP for
effectively a single per-hop forwarding behavior, which otherwise would
be a novel aspect that could cause issues for example with diagnostics or
other operational standards. It also allows easier extensions with other
potentially beneficial DetNet features in the same Option header.</t>

<t>As part of the packet processing of <xref target="processing"/>, the Cycle ID field
of the option heade is rewritting from tcqf.ipv6oh[oif_cycle], in the
same way as DSCP wold be rewritten from tcqf.dscp[oif_cycle].</t>

</section>
<section anchor="encapsulation-of-tcqf-option-for-deterministic-ip-dip-data-plane"><name>Encapsulation of TCQF Option for Deterministic IP (DIP) data plane</name>

<t>When used in IPv6 (<xref target="RFC8200"/>) networks, the TCQF Option can be placed in
an HbH extension header or Destination Option Header (DOH).</t>

<figure title="TCQF Option Encapsulated in HbH for Deterministic IP data plane" anchor="Fig6"><artwork><![CDATA[
+-----------------------------------+
|         DetNet IP Packet          |
+-----------------------------------+
|            other EHs              |
+-----------------------------------+
|        IPv6 Hop-by-Hop Ex Hdr     |
|         (DIP-TCQF Option)         |
+-----------------------------------+
|            IPv6 Header            |
+-----------------------------------+
|             Data-Link             |
+-----------------------------------+
|             Physical              |
+-----------------------------------+
]]></artwork></figure>

<t><xref target="Fig6"/> shows the encapsulation of TCQF option in HbH
extension header for deterministic IP (DIP）data plane.  When every DetNet forwarding node along the path
is provisioned to use TCQF as the queuing mechanism, this
option should be placed here.  If a router does not support this
option, it discards the packet and returns an ICMP message.</t>

<t>In some deployments the path selection is indicated using IPv6
routing header (RH) by specifying a set of nodes that must be
traversed by the packet along its path to the destination.  When such
a source routing mechanism is used, TCQF Option is placed in
DOH (Destination Option Header) as shown in <xref target="Fig7"/> for Deterministic IP data plane. Then the TCQF
Option will be processed by the specified in-path routers.</t>

<figure title="TCQF Option Encapsulated in DOH for Deterministic IP data plane" anchor="Fig7"><artwork><![CDATA[
+-----------------------------------+
|         DetNet IP Packet          |
+-----------------------------------+
|         other EHs including RH    |
+-----------------------------------+
|       IPv6 Destination Ex Hdr     |
|         (DIP-TCQF Option)         |
+-----------------------------------+
|            IPv6 Header            |
+-----------------------------------+
|             Data-Link             |
+-----------------------------------+
|             Physical              |
+-----------------------------------+
]]></artwork></figure>

<t>(TBD: Should and how TCQF Option be used in SRv6 ?)</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 - retrieve cycle of received packet
  // from 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
    if (tcqf_ipv6oh[iif]) {    // IPv6 Option Header used on iif
      cycle_id = pak.ipv6_header.tcqf_oh[cycle_id]
      pak.context.tcqf_cycle = 
        map_ipv6oh2cycle( cycle_id, tcqf_ipv6oh[iif])
    } else
    if (tcqf_dscp[iif]) {      // IP DSCP TCQF used on iif
      dscp = pak.ip_header.dscp
      pak.context.tcqf_cycle = map_dscp2cycle( dscp, tcqf_dscp[iif])
    } else // ... other encaps
  }
  forward(pak);
}

// ... Forwarding including any label stack operations

void forward(pak) {
  oif = pak.context.oif = forward_process(pak)

  if(ingres_flow_enqueue(pak))
    return // ingress packets are only enqueued here.

  if(pak.context.tcqf_cycle) // non TCQF packets cycle is 0
    if(tcqf.if_config[oif]) {    // TCQF enabled on OIF
      // Map tcqf_cycle iif to oif - encap agnostic
      cycle = pak.context.tcqf_cycle
            = map_cycle(cycle,
              tcqf.if_config[oif].cycle_map[[iif])
  
      // MPLS TC-TCQF
      if(tcqf.tc[oif]) {
        pak.mpls_header.lse[tos].tc = map_cycle2tc(cycle, tcqf_tc[oif])
      } else
      if (tcqf_ipv6oh[oif]) { // IPv6 Option Header used on iif
        pak.ipv6_header.tcqf_oh[cycle_id] =
          map_cycle2ipv6oh(cycle, tcqf_ipv6oh[oif])
      } else
      // IP DSCP TCQF enabled on iif
      if (tcqf_dscp[oif]) {
        pak.ip_header.dscp = map_cycle2dscp(cycle, tcqf_dscp[oif])
      } // else...  other future encap/tagging options for TCQF
  
      tcqf_enqueue(pak, oif.cycleq[cycle,iif])  // [3]
      return
    } else {
      // Forwarding of egress TCQF packets [1]
    }
  }
  // ... non TCQF OIF forwarding [2]
}

// Started when TCQF is enabled on an interface
// dequeues packets from oif.cycleq
// independent of encapsulation
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) {
    ingress_flow_2_tcqf(oif,cycle) // [5]
    wait_until(tnow >= nextcyclestart); // wait until next cycle
    nextcyclestart += tcqf.cycle_time
    forall(iif) {
      forall(pak = tcqf_dequeue(oif.cycleq[cycle,iif]) {
        schedule to send pak on oif before nextcyclestart; // [4]
      }
    }
    cycle = (cycle + 1) mod tcqf.cycles + 1
  }
}
]]></artwork></figure>

<t>Processing of ingress TCQF packets is performed
via ingres_flow_enqueue(pak) and
ingress_flow_2_tcqf(oif,cycle) as explained in <xref target="ingres_pseudocode"/>.</t>

<t>Packets in a cycle buffer can be sent almost arbitrarily within the time
period of the cycle. They also do not need to be sent as soon as possible,
as long as all will be sent within that period. There is no need to send them
in the order of their arrival except that packets from the same ingres
flow that end up in the same cycle must not be reordered across any number of
tcqf hops. The pseudocode describes this by using a queue oif.cycleq[cycle,iif] ([3]) for
all packets from the same iif. The pseudocode describes the oterwise
arbitrary scheduling of all packets within the cycle time via the
statement shown in [4].</t>

<t>Ingress packets are passed from their ingress queues to the next cycle queue via [5].</t>

<t>Processing of egres TCQF packets is out-of-scope. 
It can performed by any non-TCQF packet forwarding mechanism such as
some strict priority queuing in step [2], and packets could accordingly be
marked with an according packet header traffic class indicator for
such a traffic class in step [1].</t>

</section>
</section>
<section anchor="ingress"><name>TCQF Per-flow Ingress forwarding (normative)</name>

<t>Ingress flows in the context of this text
are packets of flows that enter the router from a non-TCQF interface
and need to be forwarded to an interface with TCQF.</t>

<t>In the most simple case, these packets are sent by the
source and the router is the first-hop router.
In another case, the routers ingress interface
connects to a hop where the previous router(s) did
perform a different bounded latency forwarding mechanism
than TCQF.</t>

<section anchor="ingress-flows-configuration-data-model"><name>Ingress Flows Configuration Data Model</name>

<figure title="TCQF Ingress Configuration Data Model" anchor="FIG-IData-Model"><artwork><![CDATA[
# Extends above defined tcqf
tcqf
...
| Ingress Flows, see below (TBD:
+-- iflow[flowid]
    +-- uint32 csize # in bits
]]></artwork></figure>

<t>The data model shown in <xref target="FIG-IData-Model"/> expands the tcqf data
model  from <xref target="FIG-Data-Model"/>. For every DetNet flow for which
this router is the TCQF ingress, the controller plane has to specify a maximum 
number of bits called csize (cycle size) that are permitted to 
go into each individual cycle.</t>

<t>Note, that iflow[flowid].csize is not specific to the sending
interface because it is a property of the DetNet flow.</t>

</section>
<section anchor="ingres_pseudocode"><name>Ingress Flows Pseudocode</name>

<t>When a TCQF ingress is received, it first has to be enqueued into a
per-flow queue. This is necessary because the permitted
burst size for the flow may be larger than what can fit
into a single cycle, or even into the number of cycles
used in the network.</t>

<figure title="TCQF Ingress Enqueue Pseudocode" anchor="FIG-Ingress-enqueue"><artwork><![CDATA[
bool ingres_flow_enqueue(pak) {
  if(!pak.context.tcqf_cycle &&
      flowid = match_detnetflow(pak)) {
    police(pak) // according to RFC9016 5.5
    enqueue(pak, flowq[oif][flowid])
    return true
  }
  return false
}
]]></artwork></figure>

<t>ingres_flow_enqueue(pak) as shown in <xref target="FIG-Ingress-enqueue"/>
performs this enqueuing of the packet. Its position
in the DetNet/TCQF forwarding code is shown in 
<xref target="FIG-Pseudocode"/>.</t>

<t>police(pak): If the router is not only the TCQF ingress router, but also
the first-hop router from the source, ingres_flow_enqueue(pak)
will also be the place where policing of the flows packet
according to the Traffic Specification of the flow would happen -
to ensure that packets violating the Traffic Specification
will not be forwarded, or be forwarded with lower priority
(e.g.: as best effort). This policing and resulting forwarding
action is not specific to TCQF and therefore out of scope for
this text. See <xref target="RFC9016"/>, section 5.5.</t>

<figure title="TCQF Ingress Pseudocode" anchor="FIG-Ingress-2-TCQF"><artwork><![CDATA[
void ingress_flow_2_tcqf(oif, cycle) {
  foreach flowid in flowq[oif][*] {
    free = tcqf.iflow[flowid].csize
    q = flowq[oif][flowid]
    while(notempty(q) &&
          (l = head(q).size) <= free) {
      pak = dequeue(q)
      free -= l
      tcqf_enqueue(pak, oif.cycleq[cycle,internal])
    }
  }
}
]]></artwork></figure>

<t>ingress_flow_2_tcqf(oif, cycle) as shown in
<xref target="FIG-Ingress-2-TCQF"/> transfers ingress DetNet flow
packets from their per-flow queue into the queue of the cycle
that will be sent next. The position of ingress_flow_2_tcqf() 
in the DetNet/TCQF forwarding code is shown in <xref target="FIG-Pseudocode"/>.</t>

</section>
</section>
<section anchor="implementation-deployment-operations-and-validation-considerations-informative"><name>Implementation, Deployment, Operations and Validation considerations (informative)</name>

<section anchor="high-speed-implementation"><name>High-Speed Implementation</name>

<t>High-speed implementations with programmable forwarding planes of TCQF
packet forwarding require Time-Gated Queues for the cycle queues,
such as introduced by <xref target="IEEE802.1Qbv"/> and also employed in CQF <xref target="IEEE802.1Qch"/>.</t>

<t>Compared to CQF, the accuracy of clock synchronization across the nodes
is reduced as explained in <xref target="calculation"/> below.</t>

<t>High-speed forwarding for ingress packets as specified in <xref target="ingress"/>
above would require to pass packets first into a per-flow queue and
then re-queue them into a cycle queue. This is not ideal for
high speed implementations.  The pseudocode for ingres_flow_enqueue()
and ingress_flow_2_tcqf(), like the rest of the pseudocode in this
document is only meant to serve as the most compact and hopefully
most easy to read specification of the desired externally observable
behavior of TCQF - but not as a guidance for implementation, especially not
for high-speed forwarding planes.</t>

<t>High-speed forward could be implemented with single-enqueueing into
cycle queues as follows:</t>

<t>Let B[f] be the maximum amount of data that the router would need to
buffer for ingress flow f at any point in time. This can be calculated
from the flows Traffic Specification. For example, when using the
parameters of <xref target="RFC9016"/>, section 5.5.</t>

<figure><artwork><![CDATA[
B[f] <= MaxPacketsPerInterval*MaxPayloadSize*8

maxcycles = max( ceil( B[f] / tcqf.iflow[f].csize) | f)
]]></artwork></figure>

<t>Maxcycles is the maximum number of cycles required so that packets
from all ingress flows can be directly enqueued into maxcycles queues.
The router would then not cycle across tcqf.cycles number of queues,
but across maxcycles number of queues, but still cycling across tcqf.cycles
number of cycle tags.</t>

<t>Calculation of B[f] and in result maxcycles may further be refined (lowered)
by additionally known constraints such as the bitrates of the ingress interface(s)
and TCQF output interface(s).</t>

</section>
<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 <xref target="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><xref target="Calc2"/> shows a formula to calculate the cycle mapping between
R1 and R2, using the first available cycle on R2. In the example
of <xref target="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 anchor="link-speed-and-bandwidth-sharing"><name>Link speed and bandwidth sharing</name>

<t>TCQF hops along a path do not need to have the same bitrate, they
just need to use the same cycle time. The controller plane has to then
be able to take the TCQF capacity of each hop into account when
admitting flows based on their Traffic Specification and TCQF csize.</t>

<t>TCQF does not require to be allocated 100% of the
link bitrate. When TCQF has to share a link with other traffic
classes, queuing just has to be set up to ensure that all
data of a TCQF cycle buffer can be sent within the TCQF
cycle time. For example by making the TCQF cycle queues the
highest priority queues and then limiting their capacity through
admission control to leave time for other queues to be served
as well.</t>

</section>
<section anchor="controller-plane-considerations"><name>Controller-plane considerations</name>

<t>TCQF is applicable to both centralized as well as decentralized/distributed
controller-plane models. From the perspective of the controller plane. If
the controller-plane is centralized, then it is logically very simple to
perform admission control for any additional flow by checking that there
is sufficient bandwidth for the amount of bits required for the flow on
every cycle along the intended path. Likewise, path computation can be
done to determine on which non-shortest path those resources are available.</t>

<t>More efficient use of resources can be achieved by considering that flows
with low bit rates would not need bits reserved in every cycle, but only in
every N'th cyce. This requires different gates on ingres to admit packets
from such flows than shown in this document and more complex admission control
that attempts for example to interleave multiple flows across different
set of cycles to as best as possible utilize all cycles. This is the same
complexity as possible in TSN technologies. Beside the admission control
and different ingres policing, such enhancements have no impact on the
per-hop TCQF forwarding and can thus potentially be added incrementally.</t>

<t>Decentralized or distributed controller planes including on-path, per-flow
signaling, such as one using the mechanisms of RSVP-TE, <xref target="RFC3209"/> is
equally feasible with TCQF. In this case one of the potential benefits of TCQ is not
leveraged, which is the complete removal of per-hop,per-flow awarenes on
each router. Nevertheless, the controller-plane only introduces the need
for this state maintenance into the control-plane of each router, but
does not change the TCQF forwarding plane, but maintains its per-hop, per-flow
non-stateful nature and resulting performance/cost benefits.</t>

</section>
<section anchor="validation"><name>Validation</name>

<t><xref target="LDN"/> describes an accurate simualtion based validation of TCQF 
and provides further details on the mathematical models.</t>

<t><xref target="CENI"/> is a report summary of a
100Gbps link speed commercial router validation implementation of TCQF deployed and measured in a research
testbed with a range of up to 2000km across China, operated by the China Environment for Network Innovations (CENI).
The report also provides a reference to a more detailled version of the report. Note that both reports are in chinese. 
TCQF is called DIP in these reports.</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 defines a new TCQF-Variant Option for the “Destination
Options and Hop-by-Hop Options” under the “Internet Protocol Version
6 (IPv6) Parameters” registry <xref target="IPV6-PARMS"/> with the suggested values
in <xref target="Fig9"/>.</t>

<figure title="TCQF Option Code in Destination Options and Hop-by-Hop Options" anchor="Fig9"><artwork><![CDATA[
+------+-----+-----+-------+--------------------+-------------+
| Hexa | act | chg | rest  | Description        | Reference   |
+------+-----+-----+-------+--------------------+-------------+
| 0xB1 | 10  | 1   | 10001 | TCQF Option        |this document|
+------+-----+-----+-------+--------------------+-------------+
]]></artwork></figure>

</section>
<section anchor="acknowledgement"><name>Acknowledgement</name>

<t>Many thanks for review by David Black (DetNet techadvisor).</t>

</section>
<section anchor="contributors"><name>Contributors</name>

<t>The following co-authors have contributed to this document.</t>

<t>Xiaoliang Zheng Huawei Email: zhengxiaoliang@huawei.com</t>

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

<t>[RFC-editor: please remove]</t>

<t>Initial draft name: draft-eckert-detnet-mpls-tc-tcqf</t>

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

<t>03</t>

<t>Added ingress processing, and further implementation considerations.</t>

<t>New draft name: draft-eckert-detnet-tcqf</t>

<t>00</t>

<t>Added text for DSCP based tagging of IP/IPv6 packets, therefore changing the
original, MPLS-only centric scope of the document, necessitating a change
in name and title.</t>

<t>This was triggered by the observation of David Black at the IETF114 DetNet
meeting that with DetNet domains being single administrative domains, it
is not necessary to have standardized (cross administrative domain) DSCP
for the tagging of IP/IP6 packets for TCQF. Instead it is sufficient
to use EXP/LU DSCP code space and assignment of these is a local matter
of a domain as is that of TC values when MPLS is used. Standardized DSCP
in the other hand would have required likely work/oversight by TSVWG.</t>

<t>In any case, the authors feel that with this insight, there is no need to
constrain single-domain definition of TCQF to only MPLS, but instead both
MPLS and IP/IPv6 tagging can be easily specified in this one draft.</t>

<t>01</t>

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

<t>02</t>

<t>Attempt to resolve issues from https://github.com/toerless/detnet/issues/1.</t>

<t><list style="symbols">
  <t>Review from David Black, refine queueing/scheduling of pseudocode/explanation to highlight the non-sequential requirements.</t>
  <t>Comment from Lou Berger re. applicability of controller-plane resulting in new section about controller-plane.</t>
  <t>Reference to CENI chinese validation deployment.</t>
</list></t>

<t>03</t>

<t>Merged draft with draft-yizhou-detnet-ipv6-options-for-cqf-variant-02.</t>

<t>Changed specification to be independent of encapsulation/forwarding plane and moved MPLS and IP/DSCP (from old TCQF draft) and IPv6 with extension header into separate seconds.</t>

<t>Human translation of CENI report, uploaded CENI report with permission from CENI onto web page accessible from outside chinese firewall.</t>

<t>04</t>

<t>Added appendix sections on comparison with CSQF and multi class TCQF</t>

<t>05</t>

<t>Refresh.</t>

<t>06</t>

<t>Refresh.</t>

</section>


  </middle>

  <back>


    <references title='Normative References' anchor="sec-normative-references">



<reference anchor="RFC2474">
  <front>
    <title>Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers</title>
    <author fullname="K. Nichols" initials="K." surname="Nichols"/>
    <author fullname="S. Blake" initials="S." surname="Blake"/>
    <author fullname="F. Baker" initials="F." surname="Baker"/>
    <author fullname="D. Black" initials="D." surname="Black"/>
    <date month="December" year="1998"/>
    <abstract>
      <t>This document defines the IP header field, called the DS (for differentiated services) field. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="2474"/>
  <seriesInfo name="DOI" value="10.17487/RFC2474"/>
</reference>

<reference anchor="RFC3270">
  <front>
    <title>Multi-Protocol Label Switching (MPLS) Support of Differentiated Services</title>
    <author fullname="F. Le Faucheur" initials="F." role="editor" surname="Le Faucheur"/>
    <author fullname="L. Wu" initials="L." surname="Wu"/>
    <author fullname="B. Davie" initials="B." surname="Davie"/>
    <author fullname="S. Davari" initials="S." surname="Davari"/>
    <author fullname="P. Vaananen" initials="P." surname="Vaananen"/>
    <author fullname="R. Krishnan" initials="R." surname="Krishnan"/>
    <author fullname="P. Cheval" initials="P." surname="Cheval"/>
    <author fullname="J. Heinanen" initials="J." surname="Heinanen"/>
    <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">
  <front>
    <title>Deterministic Networking Architecture</title>
    <author fullname="N. Finn" initials="N." surname="Finn"/>
    <author fullname="P. Thubert" initials="P." surname="Thubert"/>
    <author fullname="B. Varga" initials="B." surname="Varga"/>
    <author fullname="J. Farkas" initials="J." surname="Farkas"/>
    <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="RFC8200">
  <front>
    <title>Internet Protocol, Version 6 (IPv6) Specification</title>
    <author fullname="S. Deering" initials="S." surname="Deering"/>
    <author fullname="R. Hinden" initials="R." surname="Hinden"/>
    <date month="July" year="2017"/>
    <abstract>
      <t>This document specifies version 6 of the Internet Protocol (IPv6). It obsoletes RFC 2460.</t>
    </abstract>
  </front>
  <seriesInfo name="STD" value="86"/>
  <seriesInfo name="RFC" value="8200"/>
  <seriesInfo name="DOI" value="10.17487/RFC8200"/>
</reference>

<reference anchor="RFC8964">
  <front>
    <title>Deterministic Networking (DetNet) Data Plane: MPLS</title>
    <author fullname="B. Varga" initials="B." role="editor" surname="Varga"/>
    <author fullname="J. Farkas" initials="J." surname="Farkas"/>
    <author fullname="L. Berger" initials="L." surname="Berger"/>
    <author fullname="A. Malis" initials="A." surname="Malis"/>
    <author fullname="S. Bryant" initials="S." surname="Bryant"/>
    <author fullname="J. Korhonen" initials="J." surname="Korhonen"/>
    <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' anchor="sec-informative-references">



<reference anchor="RFC3209">
  <front>
    <title>RSVP-TE: Extensions to RSVP for LSP Tunnels</title>
    <author fullname="D. Awduche" initials="D." surname="Awduche"/>
    <author fullname="L. Berger" initials="L." surname="Berger"/>
    <author fullname="D. Gan" initials="D." surname="Gan"/>
    <author fullname="T. Li" initials="T." surname="Li"/>
    <author fullname="V. Srinivasan" initials="V." surname="Srinivasan"/>
    <author fullname="G. Swallow" initials="G." surname="Swallow"/>
    <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="RFC4875">
  <front>
    <title>Extensions to Resource Reservation Protocol - Traffic Engineering (RSVP-TE) for Point-to-Multipoint TE Label Switched Paths (LSPs)</title>
    <author fullname="R. Aggarwal" initials="R." role="editor" surname="Aggarwal"/>
    <author fullname="D. Papadimitriou" initials="D." role="editor" surname="Papadimitriou"/>
    <author fullname="S. Yasukawa" initials="S." role="editor" surname="Yasukawa"/>
    <date month="May" year="2007"/>
    <abstract>
      <t>This document describes extensions to Resource Reservation Protocol - Traffic Engineering (RSVP-TE) for the set up of Traffic Engineered (TE) point-to-multipoint (P2MP) Label Switched Paths (LSPs) in Multi- Protocol Label Switching (MPLS) and Generalized MPLS (GMPLS) networks. The solution relies on RSVP-TE without requiring a multicast routing protocol in the Service Provider core. Protocol elements and procedures for this solution are described.</t>
      <t>There can be various applications for P2MP TE LSPs such as IP multicast. Specification of how such applications will use a P2MP TE LSP is outside the scope of this document. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="4875"/>
  <seriesInfo name="DOI" value="10.17487/RFC4875"/>
</reference>

<reference anchor="RFC8296">
  <front>
    <title>Encapsulation for Bit Index Explicit Replication (BIER) in MPLS and Non-MPLS Networks</title>
    <author fullname="IJ. Wijnands" initials="IJ." role="editor" surname="Wijnands"/>
    <author fullname="E. Rosen" initials="E." role="editor" surname="Rosen"/>
    <author fullname="A. Dolganow" initials="A." surname="Dolganow"/>
    <author fullname="J. Tantsura" initials="J." surname="Tantsura"/>
    <author fullname="S. Aldrin" initials="S." surname="Aldrin"/>
    <author fullname="I. Meilik" initials="I." surname="Meilik"/>
    <date month="January" year="2018"/>
    <abstract>
      <t>Bit Index Explicit Replication (BIER) is an architecture that provides optimal multicast forwarding through a "multicast domain", without requiring intermediate routers to maintain any per-flow state or to engage in an explicit tree-building protocol. When a multicast data packet enters the domain, the ingress router determines the set of egress routers to which the packet needs to be sent. The ingress router then encapsulates the packet in a BIER header. The BIER header contains a bit string in which each bit represents exactly one egress router in the domain; to forward the packet to a given set of egress routers, the bits corresponding to those routers are set in the BIER header. The details of the encapsulation depend on the type of network used to realize the multicast domain. This document specifies a BIER encapsulation that can be used in an MPLS network or, with slight differences, in a non-MPLS network.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8296"/>
  <seriesInfo name="DOI" value="10.17487/RFC8296"/>
</reference>

<reference anchor="RFC8402">
  <front>
    <title>Segment Routing Architecture</title>
    <author fullname="C. Filsfils" initials="C." role="editor" surname="Filsfils"/>
    <author fullname="S. Previdi" initials="S." role="editor" surname="Previdi"/>
    <author fullname="L. Ginsberg" initials="L." surname="Ginsberg"/>
    <author fullname="B. Decraene" initials="B." surname="Decraene"/>
    <author fullname="S. Litkowski" initials="S." surname="Litkowski"/>
    <author fullname="R. Shakir" initials="R." surname="Shakir"/>
    <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 "segments". 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="RFC8938">
  <front>
    <title>Deterministic Networking (DetNet) Data Plane Framework</title>
    <author fullname="B. Varga" initials="B." role="editor" surname="Varga"/>
    <author fullname="J. Farkas" initials="J." surname="Farkas"/>
    <author fullname="L. Berger" initials="L." surname="Berger"/>
    <author fullname="A. Malis" initials="A." surname="Malis"/>
    <author fullname="S. Bryant" initials="S." surname="Bryant"/>
    <date month="November" year="2020"/>
    <abstract>
      <t>This document provides an overall framework for the Deterministic Networking (DetNet) data plane. It covers concepts and considerations that are generally common to any DetNet data plane specification. It describes related Controller Plane considerations as well.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8938"/>
  <seriesInfo name="DOI" value="10.17487/RFC8938"/>
</reference>

<reference anchor="RFC8986">
  <front>
    <title>Segment Routing over IPv6 (SRv6) Network Programming</title>
    <author fullname="C. Filsfils" initials="C." role="editor" surname="Filsfils"/>
    <author fullname="P. Camarillo" initials="P." role="editor" surname="Camarillo"/>
    <author fullname="J. Leddy" initials="J." surname="Leddy"/>
    <author fullname="D. Voyer" initials="D." surname="Voyer"/>
    <author fullname="S. Matsushima" initials="S." surname="Matsushima"/>
    <author fullname="Z. Li" initials="Z." surname="Li"/>
    <date month="February" year="2021"/>
    <abstract>
      <t>The Segment Routing over IPv6 (SRv6) Network Programming framework enables a network operator or an application to specify a packet processing program by encoding a sequence of instructions in the IPv6 packet header.</t>
      <t>Each instruction is implemented on one or several nodes in the network and identified by an SRv6 Segment Identifier in the packet.</t>
      <t>This document defines the SRv6 Network Programming concept and specifies the base set of SRv6 behaviors that enables the creation of interoperable overlays with underlay optimization.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8986"/>
  <seriesInfo name="DOI" value="10.17487/RFC8986"/>
</reference>

<reference anchor="RFC9016">
  <front>
    <title>Flow and Service Information Model for Deterministic Networking (DetNet)</title>
    <author fullname="B. Varga" initials="B." surname="Varga"/>
    <author fullname="J. Farkas" initials="J." surname="Farkas"/>
    <author fullname="R. Cummings" initials="R." surname="Cummings"/>
    <author fullname="Y. Jiang" initials="Y." surname="Jiang"/>
    <author fullname="D. Fedyk" initials="D." surname="Fedyk"/>
    <date month="March" year="2021"/>
    <abstract>
      <t>This document describes the flow and service information model for Deterministic Networking (DetNet). These models are defined for IP and MPLS DetNet data planes.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9016"/>
  <seriesInfo name="DOI" value="10.17487/RFC9016"/>
</reference>

<reference anchor="RFC9320">
  <front>
    <title>Deterministic Networking (DetNet) Bounded Latency</title>
    <author fullname="N. Finn" initials="N." surname="Finn"/>
    <author fullname="J.-Y. Le Boudec" initials="J.-Y." surname="Le Boudec"/>
    <author fullname="E. Mohammadpour" initials="E." surname="Mohammadpour"/>
    <author fullname="J. Zhang" initials="J." surname="Zhang"/>
    <author fullname="B. Varga" initials="B." surname="Varga"/>
    <date month="November" year="2022"/>
    <abstract>
      <t>This document presents a timing model for sources, destinations, and Deterministic Networking (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="RFC" value="9320"/>
  <seriesInfo name="DOI" value="10.17487/RFC9320"/>
</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" initials="T. T." surname="Eckert">
         <organization>Futurewei Technologies Inc.</organization>
      </author>
      <author fullname="Michael Menth" initials="M." surname="Menth">
         <organization>University of Tuebingen</organization>
      </author>
      <author fullname="Gregory Cauchie" initials="G." surname="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) packets (RFC 8279); it is called &quot;Tree Engineering for Bit Index Explicit Replication&quot; (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; (BPs). These BPs indicate adjacencies of the network topology, as opposed to (non-TE) BIER in which BPs indicate &quot;Bit-Forwarding Egress Routers&quot; (BFERs). A BIER-TE &quot;packets BitString&quot; therefore indicates the edges of the (loop-free) tree across which the packets are forwarded 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;subdomains&quot; (SDs). Except for the optional routed adjacencies, BIER-TE does not require a BIER routing underlay and can therefore operate without depending on a routing protocol such as the &quot;Interior Gateway Protocol&quot; (IGP).
	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-bier-te-arch-13"/>
   
</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" initials="T. T." surname="Eckert">
         <organization>Futurewei Technologies USA</organization>
      </author>
      <author fullname="Stewart Bryant" initials="S." surname="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"/>
   
</reference>


<reference anchor="I-D.qiang-detnet-large-scale-detnet">
   <front>
      <title>Large-Scale Deterministic IP Network</title>
      <author fullname="Li Qiang" initials="L." surname="Qiang">
         <organization>Huawei</organization>
      </author>
      <author fullname="Xuesong Geng" initials="X." surname="Geng">
         <organization>Huawei</organization>
      </author>
      <author fullname="Bingyang Liu" initials="B." surname="Liu">
         <organization>Huawei</organization>
      </author>
      <author fullname="Toerless Eckert" initials="T. T." surname="Eckert">
         <organization>Huawei</organization>
      </author>
      <author fullname="Liang Geng" initials="L." surname="Geng">
         <organization>China Mobile</organization>
      </author>
      <author fullname="Guangpeng Li" initials="G." surname="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"/>
   
</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" initials="B." surname="Liu">
         <organization>Huawei</organization>
      </author>
      <author fullname="Joanna Dang" initials="J." surname="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"/>
   
</reference>


<reference anchor="I-D.chen-detnet-sr-based-bounded-latency">
   <front>
      <title>Segment Routing (SR) Based Bounded Latency</title>
      <author fullname="Mach Chen" initials="M." surname="Chen">
         <organization>Huawei</organization>
      </author>
      <author fullname="Xuesong Geng" initials="X." surname="Geng">
         <organization>Huawei</organization>
      </author>
      <author fullname="Zhenqiang Li" initials="Z." surname="Li">
         <organization>China Mobile</organization>
      </author>
      <author fullname="Jinoo Joung" initials="J." surname="Joung">
         <organization>Sangmyung University</organization>
      </author>
      <author fullname="Jeong-dong Ryoo" initials="J." surname="Ryoo">
         <organization>ETRI</organization>
      </author>
      <date day="7" month="July" year="2023"/>
      <abstract>
	 <t>   One of the goals of DetNet is to provide bounded end-to-end latency
   for critical flows.  This document defines how to leverage Segment
   Routing (SR) to implement bounded latency.  Specifically, the SR
   Identifier (SID) is used to specify transmission time (cycles) of a
   packet.  When forwarding devices along the path follow the
   instructions carried in the packet, the bounded latency is achieved.
   This is called Cycle Specified Queuing and Forwarding (CSQF) in this
   document.

   Since SR is a source routing technology, no per-flow state is
   maintained at intermediate and egress nodes, SR-based CSQF naturally
   supports flow aggregation that is deemed to be a key capability to
   allow DetNet to scale to large networks.


	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-chen-detnet-sr-based-bounded-latency-03"/>
   
</reference>


<reference anchor="I-D.eckert-detnet-flow-interleaving">
   <front>
      <title>Deterministic Networking (DetNet) Data Plane - Flow interleaving for scaling detnet data planes with minimal end-to-end latency and large number of flows.</title>
      <author fullname="Toerless Eckert" initials="T. T." surname="Eckert">
         <organization>Futurewei Technologies USA</organization>
      </author>
      <date day="5" month="January" year="2024"/>
      <abstract>
	 <t>   This memo explain requirements, benefits and feasibility of a new
   DetNet service function tentatively called &quot;flow interleaving&quot;.  It
   proposes to introduce this service function into the DetNet
   architecture.

   Flow interleaving can be understood as a DetNet equivalent of the
   IEEE TSN timed gates.  Its primary role is intended to be at the
   ingress edge of DetNet domains supporting higher utilization and
   lower bounded latency for flow aggregation (interleaving of flows
   into a single flow), as well as higher utilization and lower bounded
   latency for interleaving occurring in transit hops of the DetNet
   domain in conjunction with in-time per-hop bounded latency forwarding
   mechanisms.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-eckert-detnet-flow-interleaving-01"/>
   
</reference>


<reference anchor="CENI" target="https://raw.githubusercontent.com/network2030/publications/main/CENI_DIP_Networking_Test_Report.pdf">
  <front>
    <title>CENI DIP Networking Test Report</title>
    <author >
      <organization>China Environment for Network Innovations (CENI)</organization>
    </author>
    <date year="2020"/>
  </front>
<annotation>Translated with permission from chinese version at: https://ceni.org.cn/406.html</annotation></reference>
<reference anchor="IEEE802.1Q" target="https://doi.org/10.1109/ieeestd.2018.8403927">
  <front>
    <title>IEEE Standard for Local and Metropolitan Area Network — Bridges and Bridged Networks (IEEE Std 802.1Q)</title>
    <author >
      <organization>IEEE 802.1 Working Group</organization>
    </author>
    <date year="2018"/>
  </front>
  <seriesInfo name="doi" value="10.1109/ieeestd.2018.8403927"/>
</reference>
<reference anchor="IEEE802.1Qbv" >
  <front>
    <title>IEEE Standard for Local and metropolitan area networks -- Bridges and Bridged Networks - Amendment 25: Enhancements for Scheduled Traffic</title>
    <author >
      <organization>IEEE Time-Sensitive Networking (TSN) Task Group.</organization>
    </author>
    <date year="2015"/>
  </front>
</reference>
<reference anchor="IEEE802.1Qch" >
  <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>
<reference anchor="IPV6-PARMS" target="https://www.iana.org/assignments/ipv6-parameters/ipv6-parameters.xhtml">
  <front>
    <title>Internet Protocol Version 6 (IPv6) Parameters</title>
    <author >
      <organization></organization>
    </author>
    <date year="n.d."/>
  </front>
  <seriesInfo name="IANA" value=""/>
</reference>
<reference anchor="LDN" target="https://dl.ifip.org/db/conf/networking/networking2021/1570696888.pdf">
  <front>
    <title>Towards Large-Scale Deterministic IP Networks</title>
    <author initials="B." surname="Liu" fullname="Binyang Liu">
      <organization></organization>
    </author>
    <author initials="S." surname="Ren" fullname="Shoushou Ren">
      <organization></organization>
    </author>
    <author initials="C." surname="Wang" fullname="Chuang Wang">
      <organization></organization>
    </author>
    <author initials="V." surname="Angilella" fullname="Vincent Angilella">
      <organization></organization>
    </author>
    <author initials="P." surname="Medagliani" fullname="Paolo Medagliani">
      <organization></organization>
    </author>
    <author initials="S." surname="Martin" fullname="Sebastien Martin">
      <organization></organization>
    </author>
    <author initials="J." surname="Leguay" fullname="Jeremie Leguay">
      <organization></organization>
    </author>
    <date year="2021"/>
  </front>
  <seriesInfo name="IEEE" value="2021 IFIP Networking Conference (IFIP Networking)"/>
  <seriesInfo name="doi" value="10.23919/IFIPNetworking52078.2021.9472798"/>
</reference>
<reference anchor="multipleCQF" target="https://www.ieee802.org/1/files/public/docs2021/new-finn-multiple-CQF-0921-v02.pdf">
  <front>
    <title>Multiple Cyclic Queuing and Forwarding</title>
    <author initials="N." surname="Finn" fullname="Norm Finn">
      <organization></organization>
    </author>
    <date year="2021" month="October"/>
  </front>
</reference>


    </references>


<?line 1474?>

<section anchor="csqf"><name>CSQF</name>

<t><xref target="I-D.chen-detnet-sr-based-bounded-latency"/> (CSQF) describes a variation of the cyclic
queuing mechanism in which the cycle identifier is not mapped by a mapping table
in each node (as in TCQF), instead the packet header carries the sequence of cycles for every
cyclic queuing hop. In the draft, this is proposed specifically for networks
using Segment Routing and can therefore allocate for N cycles N SIDs, each one for
a different cycle to allow indicating in a SID sequence header for each hop, which
cycle to use.</t>

<t>The core new functionality enabled with eliminating the cycle mapping table on
the routers and moving the sequence of cycles into the header is the ability to
utilize in a flexible fashion more than a fixed number of cycles, independently on each hop.</t>

<t>Assume a minimum of N (e.g.: N = 3) cycles would be required in a particular deployment
with TCQF. If CSQF is then set up with e.g.: N + 4 = 7 cycles, then it would be
possible for the controller-plane to delay packets of a flow on every hop
by 1,2,3 or 4 more cycles than necessary at minimum. This can lead to an easier
ability to achieve higher utilization in the face of controller-plane operations
that manages large number of flows in large scale DetNets, and does not allocate
to every flow bandwidth in every cycle. This naturally leads to uneven utilization
of cycles and the problem of managing distribution of traffic load across cycles.</t>

<t><xref target="I-D.eckert-detnet-flow-interleaving"/> discusses this overall advanced controller-plane
traffic management and how different queuing options can be used in such a setup. It
also describes the necessary ingress processing to allow forwarding traffic flows
only in such well engineered specific cycles.</t>

<t>While such advanced cycle engineering may look at first quite complex, it should simply
be compared to the mechanisms that already are standard in service provider networks
to manage bandwidth/capacity by engineering per-flow paths across topologies with
non-equal cost paths. In that overall complex problem space, managing distribution
of traffic across cycles is but a minor extension.</t>

<t>Note that TCQF can of course also benefit from such advanced cycle engineering at
the controller plane, albeit less flexibly than CSQF.</t>

<t>Given how CQSF and TCQF share all the forwarding behavior except for where the
cycle Identifier is retrieved from and how it is mapped, it would also be a very
useeful consideration to consider both approaches options of a single target standard.
It seems unlikely though, that an implementation that can support TCQF could not
support CSQF - or vice versa.</t>

</section>
<section anchor="priorities"><name>TCQF with multiple priorities</name>

<t>TSN CQF <xref target="IEEE802.1Qch"/> does permit to establish multiple independent cyclic
queuing instances and therefore create more flexbility.</t>

<t>Consider likewise, that in DetNet,
there are separate packet headers for a packet priority and a cycle identifier.
For each priority, a separate instance of TCQF is established, and the priority
decides which instance of CQF the packet gets processed by, whereas the cycle 
identifier determines the cycle within the TCQF instance.</t>

<t>Consider for example a setup with 4 priorities 1..4. The cycle time for the
highest priority 1 is C. The cycle time for priority 2 is 2 * C, for priority 3
3 * C and for priority 4 4 * C. In queuing, strict priority queuing is used,
packets from a priority 1 cycle queue will always be sent over those from
priorities 2...4, and so on. In result, a flow can now be given one out of
4 priorities, each with an increasing per-hop latency: C (prio 1), 2C (prio 2), 
3C (prio 3), 4C (prio 4). This does of course also require for admission control
to not allow full utilization of the capacity of cycles in each class. In a simple
static splitting of capacity across classes, each cycle of of each priority could for
example be allowed to be utilized up to 25%.</t>

<t>This multi-priority "extension" to TCQF is in this version of the document only
mentioned as an appendix, because it is not clear if this degree of flexibility is
desired in a first-generation target standard for TCQF. Given how both priority and
cycle identifiers are needed, this mechanism would certainly require for both MPLS
and IP/IPv6 a new extension header, such as the one proposed in this document
to carry the Cycle IDentifierm and then the priority could be indicated by the IP
header DSCP.</t>

</section>
<section anchor="tsn-multiple-buffer-cqf"><name>TSN Multiple Buffer CQF</name>

<t>CQF with multiple buffers but without tagging has been proposed to IEEE TSN
in <xref target="multipleCQF"/>, but has not been adopted. Instead of relying on a cycle
tag in a packet header as proposed in this memo, it still relies solely on
the arrival time of packet, and can hence not equally resolve arrival time
ambiguities as TCQF can, because it does not know the cycle from which the packet was sent,
or the cycle for which it is intended.</t>

<t>Consider that multiple buffer CQF is like TCQF, except the cycle id is
missing from the packet that is sent. Upon arrival at the receiving router,
the sending cycle ID has to be determined solely by the time the packet
is received (reception timestamp) because this time is an indicator of the
sending timestamp and hence the sending cycle. The sum of MTIE, processing
variation link propagation latency and other variations from layer 1 and layer
2 processing (forward error correction, retransmissions) is the erorr of
the sending time that the receiving router can determine. As soon as this
error is so large, that the receiving router can not unambiguously determine
a sending cycle, the mechanism does not work anymore. The receiving router can
also not simply assume for a packet to be sent by one of the possible cycles,
because when this is not the actual sending cycle, then such an assumption will
cause possible overruns of cycle buffers and hence failure of admission control
and pckets drop or congestion. In result, multiple buffer CQF without carrying
a target cycle in a packet header seems not feasible to actually solve the
issue or real propagation latency variation in transmission, or the perceived
variation in propagation due to jitter in clocks between adjacend nodes.</t>

<t>https://www.iana.org/assignments/ipv6-parameters/ipv6-parameters.xhtml</t>

</section>


  </back>

<!-- ##markdown-source:
H4sIAAebiGYAA+2925YTWZYg+H6+4gyxqkMKJLlLXALoIicdBwLvCsAD94zs
GiIWYy4zSZZIZgozkztKoFa+zvu8zFrdfzJfkz8wvzD7ei4mkwORVFc/NLUq
wyWZncs+++z7ZTgcmmmZ5sX8gd00s+E9Y5q8WWYP7OOsyapVXuR1k0/ti6y5
Kqu38JztwS/wsW8fJ01iT5dJkdmhPU/m8yy1x9vpEh7/aZNt8NmkSO3TsrpK
qpRePT/+6WnfzsrKXpSbIoUXlkmTFdOtvcqbhV2WV/YveQMT27yAn6p5Zutp
sswsz1mb5OKiyi4f2DRriqwZNtPfZiYtp0WygiWnVTJrhtn0bVY1w+CJ4eFd
cwUbfPzk/MWTczOFKedltX1g6yY1+bp6YJtqUzeTw8P7hxNTN1WWrB7Ykyfn
Tw18gj28SZZlARNss9qs8wfGWtuUU/7Mf6fZulk8sHfwY11WMMSsdr/X21X0
eVquVlnRyBcm2TSLssJRh/gr/uP9nJdZtczq2j6hLemPZQV7ebppNlV2leX2
PJsuinJZzvOstn86O9LHcB9Z88BOJpNDewzzVcnSPnm3rmDEq2Srj03zBiBx
lhRwmMcA8sT9UKawhuMje//O4Z1D/+0GRoI3gpmyVZIvAYhN9sdpPZolm1Ga
6W9ViciUpXlTVrs7/Nf8r4tyY3/Mo7092yTtjbWmWuZbevOPC3p0BBCN9/Mi
Kf4CGLez6uNFXiSft7azJgO8beyjagvAiRb4pyK/zKoaZrLlzJ5tqirb2pPj
s9Yq69EFvfvHmp4YJdPR5u0uIIu8gYvwL7DclLbRWsdRkcJB2x9G9nmyzOto
IfSNPS6LerNsgv3KApL5Ch/44xw/RkCKT7E143/JymI+TOF/7KttWUYzPjl/
ddKapYJn/pg1VT6qstHbameOsxIQ3P5LCddqd67TDGb5Md9Ek9Ap2eflRb7M
dk5+s4ZXtn/Z/nGKT63ooc696Vm3ZvxhkxTzNU9rvxjv5vr2XtR7lOXXol4b
zQCNa7wEr7LiC1dTZUUtb3+t1TxNCvuviX/+M1dSL3KgVNsRYPt8lhS/czXw
ryirVdLA7UJy+Orp8eT297flz1uT7w/lz3t379zRP4Fq65/378KzJi9mrUFu
TQ7vy5+3733v37x/V/+8fThxg9y65/68pw/cPxy7P2E0mMXak+HjUZ4Bz7zI
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
46Mb2p9H7xbNamn+fxokLi8QJgEA

-->

</rfc>

