<?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-08" 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="2025" month="October" day="20"/>

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

<t>07</t>

<t>Refresh - still waiting for more discuss of direction in detnet WG.</t>

<t>08</t>

<t>Refresh - still waiting for more discuss of direction in detnet WG.</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="7" month="July" year="2025"/>
      <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-03"/>
   
</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 1482?>

<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:
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
oXMkECZqxyTdngU5STWAcdnTUZeLS5h/kXMUBqLImhMNkqrKKfQTZV0Ok9/t
TChleFo9513kah6gTJN0AJJ9huG8X5wRLhYLsmTBo0m+qPkiHXF0E8ueotOz
jufsQc7GF2Y+EHxJ7y9taGvrffjgY5Y+9ekykoXXyc1k2w81vgEp1HR+oWkp
1LjFepcQXCmflLDxz4cvBxzO7vwpsULIfiWWlTWShY18ImCvm9wFIlDSD9uP
dbhQMqc7TVuJDZIitmNUctsYKikmcciMrJh1WL08SeHnzCUDaNjKpHCJFmyY
8wlQmAfDSTxChsXywuAUvMLUIIznqOq2sZzQlmyfaQ64skxsgjccCQrMqhEs
mKJRIU0ngi5B0KEFrKWncfZSLTGaLsS81vQDjRYXTwplq8n7xD7IhBmvXbwi
Qp+i5KwRCBhNxt62K/b4kRWwKK/Muna5HJjoIe/1Eon25rQiNiISurB5qNve
2Kel6TLxVZ+/hJHVZGBD6IhTUicBhRpNnnRy33krqs9U89CrOeIeDwlxqPMR
MuOiw4+CeSITCK7PodJuywOa89jo6K807JIMC2RrGXGk1S0XaTXHVB/USLMs
0rzpUtPAVdlw3swS8yPQlWJmwMArsuOLglgTsVQEjc2g4o6MjJKGTGAaf00y
pFgfalHl5TzrVVLUBCMO2ByEI5ONxJtK2biVaGocJmLA9RTXEVqVZCY1bC6R
P5kEjdOTLFw0Rpej44L0fxfqHW4vdrgaFyq7QqkH3TFsoVxcJRt0RVN8NSXx
rRsbuUTYnmImWPKnEJPK/1L+v6XyzwL1tZ92KP8sxF/76dvNeY3yb/nTrRBO
3VD8eP2nnW+iyg7K+nWfrjtXtA/s/tR+s/X5i5B665zbimcUVHPdp+sUez3V
3Z9ig8Q3mfvzCv6t/0AF/z/0zdbBf/yduLFjrt2382vWv5s6xPTsf8BabERD
7BeZBG6pSeCcJIDYEPDCCymBfFAH6UwSwe48GD6dyHF65+gM5SrrXRMhIw3C
AJCjslfVsAxAEkMsNrXeIS0pwYoeJHLkLBLPMQOvMG6J3kFIhTxYB+mHGUxe
QxkEvir0JszEnT8wnUnRwbAgh0ku2gtxT1Ii54mu9ZjSnYb2xfnJMcsxcVCa
y9eCbRYZaBuwOcoAcT711GUlTErnkjQEmxZQYccioT7VbOhQPM9C8ZOykY2X
ulNOdkPAuc2JV2yw48RVpknLq4KrY0p2NOsnYXgVrXY7PsSlYZP6sl6Fo2iA
Se1ijKLzzJ0XU0VDE0WxBRI1Rn+ghImxaoNYf/Sbokcp100T+lwBiTpE0r//
7f+pI9+/R3vcNyLvIlkZZzLZPVXgxuucy4Rz5XFSU8VxMGhi44vMsjv7wUk8
9t5GUXfUCqOAq9z1olCpVvohpYY2eP0x34igAgeS5lJMgSwnEgrD+7kgIZqS
I8g0skwqLNZBC/DjRpskqwksOZusKXVEMrUEMhE2DEyOrkcMtdG0/GR5kc/W
GImDthpWMV00ZYU2QxeCoRJ4B5YhqmgkUgJgmjSyLEpPLDAFStaTZhOK6UFn
HuszIOOvQMwX8GIS1LoJ4IilQmS74kwV4d+I8E8K2m2noHEOXxFs7MqhPede
8D4UtpwBbLgwCGleqkptxaqgKSvEWbmhuk4k3UmxcTrmjuuuBVhS1Dz//rf/
5h+5gp9AU0e6z0hL7Onvf/vvONpTykS0t2WR7bcw10RoklJtf5PDbFZOpa0F
31w6bugI99zGzPJLF9dH2Ib6eHT0ea1EH3eERuOCTLccaAvnHB2veunRULa1
BiIYsoQwbsF8Zo4YhVDLFpMw53gjfwCkNy6d03m0dZY2MAcYSxKVvlCCKbUG
cp/9JlmpE6q2yYEorgQGgVzjKIArYySbofEkphVG2zpICWgIk4hb4YBsVMrb
QdsUyyTBhhGRz97jdBnlnSoqHBITfTywFEkLj26El2uoCQ2BqOjJpVfoTTsx
lDfurOHLLNmJ/1NOKKw2EukgWj+SsCahgEkEFcsvkpDLm2pDim+C2QJgHM6F
NYE4tD8O2aYIohKRHsNKTAwxeHGtpn44P28RdrYyFm4kfkqy5D1F+XezSXgR
9ro/WuYI+IVBfe0fHTOR+YLGzfWbm2P948DN5IX2QBC/5o+tmW7GknznH1sv
fYyViM4/vs1MqiZ8VCvDRzUw8B+3u6HH/7nuj86XnDmB/nDfuD92zOTMCF1/
bL3zu4wKO2aOdPYtboZPeA3TbT60EhDD+17Y3ZdM0jIr8DMkNpT28c6Bdl4l
BgGGYSDcA8GB6cnXjvQlELnm5Z2gOfgcLbjOeNJ+uAWta8b+PAWif7vh99l1
f9EkX4xsXzLKThjf+n0L+dK3WlD/ktm+ggHQv5H79/WDe5PRNX+ExGD7Yn8N
h/rMroQg7ybVLebTOYiwgt1M4tut5DODCKvYyU2uNzzd7jQ8ubvmMhqTwFke
BqhuUzUXyH8ba2BJcL1W4xJHt2qJLa078tqzFifyfc5Krih+ZKsINDpdWuEk
15ykZZyywVp6rEEbvwXSRLjud6B4lS4NBoscsIKGEuhUbQgwIS9ERhKt6IqS
RSJtYRAuDFVjLyzTUtYFfkF1BtghaLG0VZRNEg1RTibrlVOgi7IYGixkNytI
4xMo4TwXoEK9U+Wd6j7UsZ6GLvuy5igio2assIhoQylXTpNfF6sqA9WSY2TI
IgBKUjGh7A2JwrnA0QHaWeoVExAT4mxL54OXkgZin2oZjgJ/nwtBb9NjkLlL
TmcRe45zt1bZEr4T+V5RM04ddZXhWD+QvE+0kBapS9LAB7RQoOIUawuwLbK7
UjA8O3/D1Fks2VrpMWGcThgDkdf1mqI/YADMVUwkb/TDB87s+UTJfxwCREu9
Uv1A1wJbfJdlK1wFBpFoqrAzY3FWkomzktT80hXHLjdqsXGlXVzggxYuYTpY
AXrDsRwCAk3I6Bn+uCuSAMPszZfUfcXNuCqKXAxQaymm5WTN4VeknkpycowW
srjHHXE/SjH4cpIvPqz8SOkbrsAsJvV6atKUI3v8HuvGunh1CmHRD2oG4BSQ
bBgaAjAKQ+rUAih0fQNXpoONZBeIrADMSZVfdIa6aQ1CihzoSfaaqtIdxcSC
gn8eLgOjZWidIs2RJltRJj5whBA5LqQ0MpxdUJT6ui9NFYxBT5qjcrlKBGN3
WroHYZ1hPdjSMFylXEy3hR+VZyB+hGyk22smt0bxmCiFkCwelN9wUnjURqM/
WTdgvDTNyCzNuEMVVegyi4rOQU6SRYzRjllQgGn8T3E6DFXcw5k4hK0xwRyN
C7DBiShxXAswCgNNJGmVp7xgY4krzxWmB8Uzal3aCWX5S+CUZEjBtdVwRorX
oWqncUUAV9itDmb3fyk3kLQd2r1BFlbUZBzuPKU6a9YrK76QIL0jLJvl5x1h
uCoAKWeXD2f+lgV/doZelxldFgWHP9WCjpq4RreupnyqdFMkSzkyfkjKUxWR
JY8s8xwY1O2RwbxH/AXjRvQuOb6HjioNTNLMS0NUPah3jrIQjoJvccIPClVp
uWqocLSvPYzVq4VqaBoTVsLOAxGMKScxCHYCwDsYFVmXCyl9TcQljIqEgfnl
gYnxC9cCN4UgVGUUrBa/qVw053irc4mewqwbJ2o5svKuQDuZQ0sC9Va45VXC
8hcH2p1JjrQWl46CnGclZgr78GQu0wvAAC6ZN3wDWlQqjIbGoLF1syDTnLJZ
DY7+xPflYsMBbImrykdijo+JZZerRndq9BNdNReB63eMvFhyR7uOSyDsgqsk
fpTiQMsFR99i3KgUWcOZdUYFvIsoC+pKR2nCSfgTV9JyuEtUUmNtQ8kkiKmM
0gV9YTFfXqO2vaDQGpMe/oKIgFLgAScbC6vA8m5ZMWvmfLA8kASw4man5bra
grLbM0UbZhgqjPKury/NYirZXV2uKeXtdpIjeJnXhrjcI5dvWG1bwmD9kLTl
MFC2xX/dlFKfkrNtJ2HM73UlPJsS2aXMSrb+eZ5dsvAAaHBa5WglF+mnVjHB
4RtGy60ad296esYakImeTzgVdalrRPNnulZ9+kS75Ge/uHUVlmamVThKwAXz
kRaxQz1bCCumos7SDQwvIRwsK2t8yGoLp9wAKm7MOkGjldNQ9Ulb3UW41r0W
yXfKTADTrmQC37dypHTF5QpnJI0Kq0f6QjnsV1GoNYXBVjBBw3ocTndZ5qmL
1bet0H8qt0PCo2QaAtHPKoppcE0M6GgxuHRaBr4gPtOz10PaIMPv9r5myreH
QxjTg+sCeB+6w7RgydlrgBO//uD+3Y7X3fsE0db7CLU9eOHxyfHr4fmxIMlW
NzU3bIbaJvDK1qoIh6Jx4a75MOLzI52HehqEagJhD87uXbcTEPBJ8G2kJDg2
iENFynA11joL6klKhUxWNFgqQLQA1UoNE2G6RSvNoikJ97J05rI3UDTosa5Z
29Ph87PXFEEfImFfuXLAln4qz4KKHpN5G0+wygsKN0BmkIZ3HjFVdCLRlKhs
GAWk6kkb53HaWMDX3SrSI34yAS5R2Hzv+zZQB66kSGaZNmpQNkTk7Ioiw5H5
SeDtYhOvR/NE3Pp5pw54ALbXZz+fAlYN+Bix5R9mOASR50GKi7t2qGwF5MTT
HyV6WHHYrZUhA+B1/SKWoMougut3Nd9YV8HfaWYcni12Ky8671rQ9v0PmEbA
cJRi5yQK2T/VrkeF6Agy+GE4OPX8QgzbyiBqdRiIMgRmFNIt7k/NKZuLsOaF
YMdNQKJET7oRA1fHLoFvq3cfz7zOGa8JMPJ4rlpuTaKmjC0ZA0l8UaiCZ6Fq
jvg5dSB6kP+9pkIQ/I/KTcK8tuO34E0e6hjgdrYB/Fvq42Rk7vwQf/RvOnPs
+fD02Mf32bPwI1CB4Wn820HwmngtokjDr/m3HZSItuDD1QrTACjT1/3DlWO1
HtqAlMMIfv5D+GLnqm5Gn3at4+aOVemUtCr/8SMsLOyt0vrtD+GLn1/VtSvu
WJVvnvGRPl6lH+V/r/0t+jFe1UjnGlGc8citakT/v/Ub/TiKVqX/HkoJU/zD
2j1rBzyDtb/Qr/Tj9m/xIDfVT3OTV/kGVKyLobW/8uS7fmu7GuJ/byT05dfr
frt+CPt/0oK/v+63eAT0+j0/O7VDcV0rWvN37p/85h417eiG+FbwGCFl2foV
/8E45CI5+XHIz7LsJd6Sw2gAAQA6Syixke16Hz60XkZxl8q/r3K1Q4gsdpd8
JRKKdTBg0xMx9ox7VZI+wkqp9wGkmaoWKr5cZKRMUMyW0O6lzzjVLNAme99Q
5SWqvZbEnY5C3wiTOQxHJSImDSyI2g2Qzg2Yuo0sCluSjDTolDsCBshCbuHl
A7ZXmK6OIlO3BG4xKFOTalBsfJGyrUYh0haFrQ7NXFILeTB8m6mymCtYtqDY
q/cN9cvhGmBChmij/EAIKapAjXLM5B05XigJeeOKK5rg2dqRtOf0Uu9sSH+Q
+ommi3MQjbAnOQ3WOy/P+jDr8QANbBTESc4T1zgJdaJgdDjKV4WCppGqMCRt
kUBaG5SHlINfURJvJO8w92JhUlM0KTcrCfdouB4/ji+rx/cZqaQvVNiZSDb6
VDZKZ2aYNcYzSV+CLaxhQzniTinRbjKW9DK5VrqtQzOak8IkcByrf7H0mbxL
HhovpEmQIpfZgpf72rmhZuuRtCnFq0oyomCwq7dDVh8aj3VpxhNZdq3XJzRi
0i0701sml+lcaugAlChmc+q7M3DyMOokWbrH8jh63KiMjQrQTFOwe/anT8aR
DzQ7Oo2ChDS6lq6/J6Bwg6nyM/H5YbQwAVDg7Io6eg3CCe8BZPrqRjonKzte
InYWImwQHamifVyhi8M9tTFcHdimibieHw3Qs0TaWkCVetKdo+/pUy/jbySU
VR6geF5viFF8w2MS2synj+nyjAE3aukYu3dDcw3gA74swDfU48JHlCZ80tRF
JOiRdO6SbKVyf17HvcI+fJA1ksJ6CFoBgGjvLIALYM1Uk/C1HQnth5gD0xp0
lK4A8ZxbntvcsWdFYB37q30DErEwi8lYnGSOig6CEgQss2+24IZoRNeJfJd1
1rGFtORIUqpsIInDzZaqzcQ7EZO+U7B8NQNRc1S9Xa0rNLtTlH27RoU5jTVq
Pz32TyhC7VQc/VpLGB4xHfjJafRk/1GaPAhAYWUuVm6NU+PFbTuwQXNB11VG
VWG9vxgx+1CNPEjUWS1TnTA2EpD3STtKRUv1REtYApEVo26nnNVIhQMVXlux
EZPrFqIJs1xXAFn1CwQlCswzRDl8Scx92Im9JSzQfAMpohj0m5SH6SwGplpT
2HJE3dBZJO+zlZiHKNiEKEEfdNep9VJEQJZr7MkwaVSRJCDvKbDJakM3NVxK
PkWTEJEGE5CGQB/m5Jsy9Jc2+VKsWWqEkoqH2kOq2ayysP6oNsagZkhSGY3v
v3M5qN2aLblYfuLNr73vgsKl/b6wPQEVJYUwxKk+A+9ySj2+gh2yqMTUUYyL
DJiBYa7Dhcd144GqzyUVQaX29ZKfrgs2JvROXz/tW2e+0F4/LIna85+OnlpD
AOccDo47Z1EnNNBIzYKgI2ZguHHV78hkwI5EV4qvTRK4CmxWk39lXU0yX2CO
jI1URFDrmxgMQml8sHYVbDEIz0d39MQdjB84WJaa+qNIfWN84xfG5G0YC3CP
xaERAVehStnqRk4zgibbp7AQntjtOmCKlBqtldzNdoKeAtQRHBcf7gamM6my
R5ABS7RiKoUaiVoz6BQqwkBow8M/MMItshmaYaf6I18TuCWpQuYqiVhyAJrX
GUUB4WHEaCeiF0tHfJLiEF9lybs6vJZErQGUw3I65JgiZzWucO0LjUWaUafL
EVAUmEHEU6lRqhy2oaq++B52RmLxgKoIwGHVGbfM8kgn1loTiwazRK487ZU5
sWuKdXTyeu/05DWxGRAWxdkeEDjD69IF8VUj3Igo3UCh6ZxAulrQM7LFlMmj
cRRDgEsGyF1sJrA09gpnYbQfvvM/cLmqo4iePcFgGjKwMrIlUR6I62l8foQ/
YXljelZacXltNfXDcD1tatMcijFSzt3JshgkEVmfz7Vgc5rXkzVl+yDXEu1R
bKT1yH7fTH6bfm+N0CCpZuNl5Gv6QJN30EtOI0Njvf3h+8CI3BqNCl35qAs2
iypIUF06OWUXiMwhRtHv7HExSVa1tmNKZkVJfjDqSIBP4MxWO2HYNcwxviu0
qvPbt41mhegvt6S191typL4tsdxV457Ip28Z9G/KfPorLOiVqu6UV/sUtuMM
MJ8fUZ/in0GUfZPzqCfFpFx2jyrv4MD3bYnrwZfxRf7rV2+7AaAMXxD2iOkm
hl54pIQmHThMr0tFNqFPASID4vpPn1p2dxQW4drXnmestgZgSsylSFGsjKr5
IBEARQ/PVzCuvPhLNmlEJY23CAqfocNHou6mleAz6ifaLXF4pByYDhxXh1nQ
9DzoRousJmzQWmwCMwxnfmNMSZDvFfdOF91IHd3cZpGuVlYtjS4eaTm77/IK
SfcldriHb+kGBwQqlwrop84dHMa96LBinjiTxsb2Nc/SA92lzxWqOJeSR5DO
tUSbT051SeFjPB35TJFHkAd72EUuHCizEAtNUCrJrbvB1PWqiqI2owBLqaLG
pBGkGGTW6GF3aeckiakg6Ew+CaVbl1MT0B7UukjXb8TawdyhBxeqz4mR8gXc
tX7w4gCWuFLjo5xCiOY1NkwpZiCqkMZMEgAGozEIDZrNCDtcwFUgu9b8jrYy
YU07WDPQ8r8A0Wm06o/ogoiOLGkEY434XoxUYBMrjAvyke/pGII2vcFsodin
Y/IuavviT2fnzsd4i+B12+Uv0hFJ7QE/YVh2UCgz44oTpSIEiVp0DsK6UsES
Q5OJ3rGBuYcIxX1SZZe0XI2zuHa3wWap8faHDzA/GyvOyUqUM2I70L7VMvTU
Q2ToukZ2QmqLFtEQQw6cgY8H+4M7+4Px/v7gYB//pL/pwz61LBpxd3QMfGM9
sSEHJ3GW1rJCpoObw5XTHJjeHkZfWfMcKyji42OWsWg5DQDe9RMusZEMmdg5
RpJijVTMoPrmXDSB7+yYV8dtSoqHISLGy3pkezIv3GjbawP1h2A/dd/2+Qi6
F6Ppx0yo4DhcrgFLjlFXadebQ+pbkNCNRhx9vYiw3u6Eq1dxXRydER1LI6WJ
hOaNz3BP0iGqFhQtKyI3Rb9QiH0UY32RGSU0Ps5a+86fS+CfcgE1qSQrDN/C
KC3Uk1SfzlI5G4kVVerg5JpfULD55Vfu8y01FVAuDvjaZ/joqHvELrBR0kYW
sEemZ91AHphpSAiYLQZ0vKJm1VTnYUIeEyIKASPCNOiOnuJGrVuoNMLtIB1F
2AA1fGH639VMmhKqExcywlizBwhkpslFBayOo8bzJoykQn1ooWZXGTzw+1R+
CzGojZKJCCpkuhI4RmGclFCtOMY3hlOwYZjhmPW1Lz0n7V8f8H3fdVwMSiRj
7aQ76q1z3B7m8kn3hO2oZvvI8CKbka6ljMPFrzhEG12XnkWIlGOjJeahjPQO
AE5adi08gjHwFFPnd4OFMv0KhBEeh3IStDOLRMjgMaFprb4WuHD5fkGJHb5w
EvwvXoSHr9VobqSEj59bUysS7lJPtr/W2cvb0fNGcn64FlHt6yV1AC+CGequ
LQ3PUER2aE2kYiUSGMbRgGK49Igd9imOxRNabLZTNQmUYMKRFC5S4eOS0AGA
p22S7eomsoOShChOEgnoWJgK46u5oiCp2CAOjLAMA0uxGxdA1C6CankvJZvx
xFQky+LeO+qR8I4RTB9JvVXOBemFRUmdUcA4nV0gF8CHVtnhbwgzC7P4XLiS
sMSRcq1SJIhelGwJY7rm7coPW3whMKkqA8Wuxu+BB4nH0FVG1TjWUA4LUrvE
IxJtlnIKjNAgDfS/qvKGmWCoVtG5seTFy3UFv7/7zvFPXswVO/CcnvbhOxL7
Wqqtt2s4e7ljhNNY+ap9eKc5l0jGo0WCCsX5UV9SwBQU7HPe1n6GOaqKTvI1
zdaNGXgR3evt3DRm6nMAtlRmlo8Swr4oEJ+tLS2J2qtwkb3lbTMha4iJTBP8
5W6bxBDHlfzbHcaHwE52Q9R7mEtJqfylJHMXXRD/IeAVijJ8XZmnGPc2Uyy3
XWETRciWgV3ZeAGqTPgiOKlIJcgBSJUnb5Z0Lndz/fOjP8BIjo5LSiaSNuPb
DOriOxeOTwRHw5MKgTOubLBrWBaOF74mdtjuKaid0VZ5LBdbbPn2l4tytnFx
7bcO7u1jhACdJzpHA/wjzxdu1pwfDU8KoLkAr+Hp2RHFLvWOh/CfPkATPSpl
9dCeBvbqgNY0pYErUhZu9TQXDiOxxlGSIWw0KkcElEdoLwtE3Vs/e/bqT8+f
hPEGHpG2o1VMcHNhvguq3y/01xHRMGDGu9iMMOORfVUEDiqqcaYX2sssPP1Z
QCnMdSvt3hu71HFhPAIvyVvkXCos4ax2HwpLEG4l4wS6Rzk1zgNBMoTOs7V1
56iVn68AQZnTGenoZZ8/IYOQhnao6wrwZGBPswLNJks0QD2DIzkt+TL1Tp+d
9kmiL0oZWguLc7zJyRPsmzS82LS7JUjcPTywx5BZwe+JMwfoojQPoR2U3uIl
ys84JDgwZANDSevJ6msZio63zVOeqO6UE3Qk+qAGcgri+CkaiWwPFxCwmvZg
3fzGeH5j/0fxG11ZBLEdTAfB2MF29OtrGA+P/nnWE67G8R8cXzmQ+/sb8qAI
BNcyomAlX8CKIpB2IIEacZhdmZhd5ThXF8f6CoZFyCqLiDiWvZ5jxTjxu1jW
IR9IJIsyZ5G6h9iakiJCnZWIrcjoosRMq0pUUQ5dM84wI0MNWvKmUxaSmq1j
vtuL0+RJOJYtretMBU/O06aAmYGNmr6iI4TZXpSJYRQ+sQJFsWbhkWvMITMK
7ePOoZ2ixNHziq7mPfwbj+2N4/96uvf8TzeIoKyIntQrijLdSj86uH2PYnnP
hKjdFVyS7HaOcBnLSYoHsEpkctyUV8Lcs1s9JrYIrVJZ+uvVSmIZlNiyDevr
yW1wM+JYD0OZUpxqTBu5EI2UM2kx4ocz8nglQXshKQgsP7Qaryjzo3efXTyz
vWfMpuA/fdkWpaQ+eQW/PcmwqgSvW7b8jHLF+tq14j+GesPaadDWMeyg4Pnq
8m4576Dh/odrqPjJ6c93ARZfRMdb62JYsVfzu+iXp+TiZ+Ew/H6eLVbtwhsM
29KXGPElg10BQ19sJDa1+DhzCjnV6p9sQKTCj6bVSyUu7XFNSQ8t5BlYtTSl
aL8j+2Dc8d1Bx3e3dIgx/HzL3rZ37F17z963D77mOznnf/D/aJSPVg/nHIPO
5DOf+nPgLh+PqVDU0wUGWPDz3JPInqT0+RuuZdQBsK/5x3XF/s197t29PQRF
AvurYpGJksL1prATe0zfAwaN+1uj/Ns3XMs/DhcpsnUnuqHRNcMLiN8O5VvO
c31ozA/R0T6093nT3samASgSbahBnPZnkpfOH4NKtMFtnBy+lCJWdP183AGR
BAoqC7qNTcpZoW1veH4cg7ALazyjoRWDaNAwH9xmTiZt1hXZSE+OXuDQS4w2
n2W2h5cQBqFCAnUjsVgHrCU+suN9DdiW/RL20u48p8A6uzCEhGFmUlFHRSFe
xfdAjakVehpwhh7BaJ5X6XB7DbCCR2OMrPwhvjcKba5Y4AIveClIv/kVulb6
LGsWYVAAJcWGJ+7yMxmozudIm19k04aC+gS3xeZNuK411hnxpe/weICDNL5E
7/Z90ZoLovHqzefV66fdG3BGRaauoDYmUSElnL+rHHiXXV3b7njjqWBFVzUo
rFvggukC0y7zxEjbwCGktgBvqw2FhzwhD+ziYkipaEWJEVf2lbRSV06dD772
gdXOJ6zyDI9Oha5qsWJZhoLQqkJoMD/om0eXBbZu/uXNMUxWVoDBmO4MS4bl
0xDawLpMOWkAl5mK6OEkCtJtnG9ICmpVBF1HL1IA1RanP3XEAMOp1d6ParBP
xvdPk4TpuEerlBQZ+cMyUK3ef4FzhCJNxMblM47RjWi2Ah8iJ0jH+0HxLE66
6334EERjUT5KWIqKpNXuMOSEWxGi2y2OCxmC5sf5S64CSavPnRego87Xqqe4
6BYV+k1GtexBnUKlSxWtjvaVuk0N3/FlMCga1FCEQgH7RsF1xeXxMdicQkWl
PA/WnKujMHs6yDTXwEEUqY2E2OtGkoXT12ry/ZBKKkoMpgOgU0SvmBi6aAiz
AgRGQ0yrdIbmSWQJph84kxJ5wpx8yVI7qqpaRCcgIgHnIltreMwsyx8pmaIr
YGKyTaOzhw8dJKRHek97B2UZqDpCa7xKUD3mE7wquSifjJQVwUBb5hBp+RFH
HSrSv4oUpKimCSg4J6d9qUiHgdni6V1L9Cpx756UvNjfB1QPCl20r67I0U7N
MvAZFSzPK4T+0kJ26FWwolfP+iJHf0EjMC+jyj/BAdibRFG6fx9/95jIggh1
j5/VsQz3u8dk9dNpnvb4vX2WVsGYfnY8o2EA6P4/PrtfAQP9W+yIoY9qI6eX
f7MxT+ebGgup/H7Ii4R8t0tC9neGUR4xtvOq+EuC4jQVn73rGnds8xTHclQs
w5HN1l2gJgVdt/L/+3//Lz+jymbUesCROU/CpQNhmI0sfScuqWEJ8yVnzpKy
flstc9m8ZmTJvnGAXGmUAlnITzTsy3vrAxOIDMDdilmOr7sF+VoleZXj2e2F
FT0jm5xuCiSahbYjrYNmJGuna1AUIH4Q+PZeP+uj5UiiCdh2JLF7QUqeBHeY
pkoAxLX3teuSCbaoS9AyRCUIdAA9IZTeDMxAKStWF+NjmV2YbySz1wHV/Jzd
ifv6XhWuBPI9qYV0DcZShGiQ6uSELZb8fH+SODCCFjSkHUtw5f9khNlTZd/S
6/Wzf2RMtoAH0P9fhHnnmN+MMN/7EsKM9+ILCHPv/PGTh/aMaRfZucur6LKp
qQ+GpEpl/3vfG7pP62ydlhhTFCYhtZOFVv6pKqMMploih7ZVB5IigxSmT4a7
/iSLWQly3XwJe5gm9ZxcCXUwNAnELk1B8zHUO02u4ShmMQxO8rZlzPCkL1Wk
otpx4qPvrZJ3fftBEl729qQrRcatv2iOIRLqiqrbsX7umv644C//OgmovrAx
O46YDstDGCf4CB55N0IlGSuEwDf621TikX3mD+bowAJxbM5CKzDojoIO/Hv+
TQyP0Vd0TRKGsftlNJHLmjAA6a0oCIs6e9OUNQa/BI+GK6cZGSiP0IkGsx/Q
xx6MOLDRgtwQnyjvbnvlYogPVg9rDx0tQg/WddcOONYRDpb3gYPpPmh0GFkf
+fVLdhOlQOHWeHm6PR1rYLfW/tmNkte4fUiag0bn1L1F8ovq9nRz+OWXng4+
qxvAvwe2tZ7W0nFdo9Eois2TRz7Jf+Va0zX6z4Z/MbIlfDWoVOLZ0+5IjeCC
hiO7C1puXR7+Rh5+K1ycXjLuUkkJi7eYbvlWPBb0iN+wGFVh1ZqTE+awSoUg
6VlGMmAwejfM+zhYURZxmo44amq7H+BF+86X0RVo39xXJ0+DA8f7naxscNZI
YNDiBf8Z8qG51MX2fWnB0g+yVWGKEYhxh/530FGEqmMbPgb5jUOx1uqZOpEQ
EfyiUJFwP48CHs930KpwrQfNRJYbBQ/2g7Fat3SbIJWeAn8xNbKfJ0L2UQuC
ftE8cbTwcC3XLb5NSXZS/Jga7QJxTGciyOIX0RL9QNECYUW4RiQG2vN1TZUx
CDX3XJSIeJ01NCTGE5oguLkDCk2h2X9jkA6YoOJ0b26FFJ5vdpuyfYhh9jQM
K9PIuOjivhn7QZX46X+F1rnLDjc0FITeHPzaooxnmKmUSR9hrYgbHFUU/y7v
pBnt3hMmEjU8GPS5VjJknP+IzxB1xXCYtwhVyjR04FCqoC2zJnibtvLOfojw
pPWrUmp8cVeKhjyD9bM4z4ryyh5hCn9Z9RqsFrYHc/ftD7iCm/w/pZLcq3kO
VGgc4qsQbabwB25jA0+J39zx53eV5M3bddHkC57rD49aS+n/Z3wFH7P0GP1s
Y8rYWvzNRzsAQTwyWSw4xzPEO/ke0Nk+kivEZ9zbgdzx/ZT6WZkrI4YDlRyF
JTGh8RppU29uh5fj0xZOexzgyw2AB0hjplyY2HnTYcgnQW0NmgjUh1Ch8V+j
gnIamZiV40b3De0BXGAhS81lnthdPJwcBp85/6TWBPG4HtRbr2tQsqXGAeeu
J4CGOriWoAUaQsh/qMXf88UmiHDi9jS+PagLcyT7w4bt+9JVR8Ok3MDYWkCU
IHF5DExQ1gWTR9VeQS+4aZNGOpLSLOyoLMq4yhysZKnViVywLcdkaSOCjJuw
8HjtHsVknme4Ga61gY/hyOtV5GaQVCA0J3EHBqDBNGGQBltsvPeHU+nn5Uqy
eAPdMqzpgP1StX51YjnsxF+UX/xN+eVX2/vlza1f4MagDwihtmMzGN54zYxY
SoXdQCao9O/K1lEWdDB4gAQSZEkdlwB3ybuBSjJF7DnT1S9vbpPf4qRD5Fwl
ZIzSBeeVuybCBsT+5imTgATn++XNHRo4vmfE1rZumRRuqScghWOBSU4adXeP
Cg6GRW5EuQ34m7fsid/WkPGyBqV5gu6kHLX8jTO1YruiJlvBIg/Q+UO1/lU6
ZotFUBjnIjPLpHrn8sSKIBQw9mhrkPSE8l3ELspV/Yy0oW0/ousYs/dI7B9a
l+XEF3vqrsqiNeX8AXINSsUBlqpdhAV+MHy0Us5KCiXpRdL6c2JX5nbNHvBe
IkCQBbSjlQsXxO/6OE+XSkGki0pocpw5+bDqLMI97ZxNaMtWXC3q4FOdydqD
ZanJlyrBZNRZRrLx3OhqOHUY7HcizWW4hQCSAOurX2qJc3m9V/dtmqdGixiF
hS7aNSq7kNNQAXUBxnffueN9SkewqxqJKwWDTou0dp2k2LqEhMuoDMQBUdK2
8WM8/gCbSVtMJrmyZJ1TAyHI4fDdG/yf0DARVnOhRtffIVZhII9jtCfbFVcI
TXTe6+qrkDEvrPcTGNPjoT99kihMKRWClJoCK/lFLa7bjt6UOgqRqwb3PqX0
ZwpbnGv2q8MmwXIpr6RXKKqZNedCVpoXmbiKD8bHElC4k0T1MPBEksG/+9aV
H/TpvzCimZVcXoxqYSD1uMzTtQZ9A100GDAy4LfpzH6RQ8M8W5olD3M2sYgL
E2hNlfK3MmjoQ/FEmOydVc2mlcYoJWe3UDWQsJQGhXKMS1QOwRlm3JJPigvK
CzgvsrAhO15FX6yVvvbBRL62adC73IPSUIEu7s2ucUU0jCSNh61ZrrRc3xQ7
dxWcOMsRGqJWMgoVvKamo5CIUSs2c0Lyyotl5qIsF7tlRpWk82nvf9thMvtP
/ykU1emoSf9tJvO3XHYWv2QzUiCZr8pFPpFZQNyOAtdfPz16sD++a++M7rjn
I6UWR/yNdGilCFsWqqZaZ5Ho7X6ZJmoK8NK4YM7Qhel2EIpj+S0W0c1uebve
ohfxLJ8+KZGuNRxceX8UaYLmfZJ0Kf5LRVPG/r12pQnC9zyY2vDcp7EEH4D/
oYZieirjMkna5EYb+LmsENPF3gLxkbjiYCeCGRLTtdEObZl6HzJ3o0UG4GAp
QFwJEcbQOkVqOYsytYNXrVasw/w+OzQUll1ze8RAkAdmyhV2d4/Kyxah3YkV
dBEjOYPkCqxHXTnxzvS4rCo1a8M6RFN4vOkL5XA7Zr93jYFaXJtOztckzqXd
JqKuqFzjcs0xQwKL+6DMSgKeE7C0fo5cNWp8JN5yuHWhA2iXymhFZ9QrjRMi
TxASgPXs/C394dfg6k+xEc8jtYIGbJ0ZhHvuN7Z0tG66t06QeQObvC5Xzab3
Wz8mRfivt4AhUO6FX0fM1v75Ec0fGwnYtKBWhd9CwxwtdvjILr7SyiY+rdBX
sMMSoFThgMXXLtLTSXJ2H0lAeUxMeXgOEFYabFUyDYXNgJuathqYVzZmdJ7V
iH4ZKPBchCTSvwvCuHMOUcz1XnZto2+/lr51kjeQBbR+t+TWPHEhIgP7yme8
4n35OVnkaUe4ZN3uYAMixrN8Nh+eYbO41gzG0E/UR84XD0+C4tEgvsyqZLmk
QjDtZjku7tRs641amBobzA1/JB/3T6zbqugQ6LX1wPga8RJKSsrphw/YC/L+
/sFo/NPFpbRV4z52SwQNCwgI7fBJ7J613T2VpU5trLe7wV1YYR4DaAyJV9IY
dcvWFJQXhuWREjCKwBrAhDPVWuaA3dXMDesjzAAUnljpNQneZ1lPJKwWvqPx
rOEuEUOXybPUhwP4ByJg2XCdeKK8GOhvO7FD4u0D24rfXMwx+6TRdl6bAdXe
lWSo2oeq+kGlfbFxCZFacXuZYelCsn5Vl66PK+m/WEOJSlhTbMQKm0svNoZ+
ypJ6ww3KkrRVHEXm1hbRGMeGpBDT8y5wDi7EFUQ9SPgAyhScoAkgna3hTmLW
IQGjdZmDbnjwApWgmneiCd+tTiwSI8pFUOpfOTZL1yqmSYGa0oS3LEi1e2io
RttjUHR++VXFGNW3kiUWYcZNkhrp6jNpGcmw9YQRG2qI26wNcim5jeVUTzxJ
6ujLBYWkypmvJea7IJO81CnBtAr4XXEkr+avB0VhtYzEbinh8Zvpr8hWXyTv
xS58mlUnkmL3A327WZRJegb894f79Ar9D4BIrOSoLrzvWVC7Fj0ebi+SDkQw
6NuPdgpk+IV7URTi7XKG8rtLp8D05UDGYxBxjcHQIiWwTHNuQd7S9vyCGQeo
wUB8kg2XLFNLo9K/wCPg16jkmkRpftDPsPUY3Q7urkuZDCgjbo1uWhCgQsZI
vj1lpY6FjKpMTETMDOZGHVRrEZNRmo04PRJks7SPRfR8NgqACdvWMO8EsSLH
IEyXmAIAIoNwk7mApC3rVq9mwsYxsK2WDz1syiq1nGMbBxKndRMXa3TdlkHl
D9kJW3LiWl1UtRuHiKolxXPg91yCHQM/8wLRjFQebMU6CCyIQNeAHjm+h4ZH
JroS2hTQJF9eXlrvmbB1duT/2yrljvdGasPakX0lzqXXnC86gvvBWxy7vw7c
X7fCXyM5mZITR9tf2VH8D2Qo7Gf3pOPJ1r+uwVr/Xo2///xDW0v2e7dfvdnX
BzrPqwNPhY7OMWij5Y08su5LDuQ5OsIv4Nkf7JHh5fvXoqJ6Qg5ej0Ps0LJ1
r3niVwefeflgsHUPXLFZ4O6ygu9hEFjHTTgR1CXwko9VfQhvvKvGScrDkYi4
LCHRS6gPIHV8rWsnY1wdaMQJgOQRQFUoBPsYTLCDoMzpK98eSwd0TYS89bwC
kRoLhcGphJXtOkb7XksF+yLoXEzzCVFwd52wSjpWjkCe3lxlJKthSX32g2lz
nAK35zhk5LskF7bx1UAF/mXbx4ljHDxsXfmU7gYNPzDUqJm+wY41xVuqrIcf
ubEot/zCUw4EmbBmdGHwxzBzyfkDA5LC1SxFD2vji3ENa7SiR7gHDc4+RP+1
MN4ewXqI2NkHBnx03gfUOvJ+7aMjYdurXt7H93J4GNHvUH4nb7di4sEWJrol
CAEmbGQMPHDJEVQcYAnPcwEckWmCs1LqLWdsAmD6lr0sySeXSb7wFY353Kiy
K6VgsOxjSMDRa8AphecY2TGwPYUH7Pbf7Hh0fwDwUr12f+DtM6iyIljGfbES
w8v4+UA/H0i/2lXvln51S6pdCabfOLrhtbmYWx9y/oJ0IRFJxiS+GCesU5ZJ
i2MhYYFyOWsypHLDc4dElqPWeE/cfqh3OMLqlzdPgNEBuX8CEgE6HuN2X2TM
RqCpV0nKM8e3wTVNk5u4lHKUMCQZvX1BNDcv3Rn/nmv/juYdVMjRTsd1xDiH
2Lhu5/WAXh7C/YLbyQNyT+BelaR5ya3j+1TqtxhKqe9223R+g7BDZZsBUZi6
9L26hBHrSZm0yqeN2yRdtu1atvS0Q1Mpv+ITqvGtFyLAUgt5FZ3tcVXBm9wX
fsRKxmEvxXpsiIdkIUUM5aFE+JfiVmjNouKEwYpJbgmhE7QEwrV1qvADve/s
AjGRpsGTHfYQU7ijXrcUpfAzobmV/gffzYs+YJuMwllCE67h27AW2jtCQtPX
CubUwkVTZvnJI/lNasK6ht1wk6mgENZix+xX0HGXAHVfe3/nUikBSrwwLFRL
yirVhNYqn7oyStRN1DAbVbujznWUupprA5RGI08oMRsb2ASKH9lQxa9Te9YD
LEnqIVDUveoxQRuCVuEm7DCZLzLru9OQlki50SjvStfjtFxfeK4gNZNYl5Fm
NkHeeayGG6mwjKjEAm+D9f6422QIEsplR70F4IKKjNCQLkcVV9PGI22RIQ15
EE9Bj/kS1pTjQxq4Qi9cFS7hErlTINuj0ZHq2ZR8hsoweSpBqaAsFzYLUN1g
+J+rPEUTwDyhzmnc/A9jbiSvK+GsrlZkkjbZ5HgZ0XgIGzfmLxTgk/m8ulYA
kOryu924iNQm6KpKzX98bkcCRy73mbAHHTGh3sA1uLizD9nOSNcNsTSvdnhP
nFpGCjgCTaoEu/oczpR24VpUwbDj/f1/En2PhSEBifY9JaCKj3pO/dyZ/vu8
bdeziIJQEG/UN0bw9B5Z5J5cmSqkLrAUTnPxPdZ2xqkF8UhkgQ2P5WnI/DZY
OjyqRBCZhHCzUs8jjubJaqWNBd8LGSOv/OFpwxU8proWWzRiA+4MmPmlhElR
mW4CkI9vuuDOTFlqRKNsa8xD1ZhD67acJbrWV9RxTHv2YtONSYZlwBbExoIO
8WkW/LCXYhW2/GJNBezbk1HgA5ChpyprAxenkgBIv9Rf0EJ4YL9TE/8goyER
8zMLnWfCtyhnmFkGQjKFUUjMDnAbFwGzBdKpFFMOaBsZ2uCEJ/Ns8i4m1cis
mWzkFETjiIQKbN7IRzEVUREP53wEgslxHmIachm4KLJTVA43Bvbd2ojQhFYO
RlqTSuNBX32qVNqHQVAgSFcN4SCln1IfEt8YjS6bCsaAJy/QT5i5zYnQ5Z+X
iwJ0BTO7yFKiaOSgxG3s1NlJBWPY4uPJLtE/gQ7jKhLsACBs4CKDdK6Qevl9
Q7xQTZ2uv62PaJqxZakQqxIJaUjoYksfmaNcDFnhnUdxiUCSUBEe2jtgC3PY
t5U05HOMi1hQoRo4EL6rrsQGzyrqm1u3Ee3Wcz31BwcxrXYNkjxGiCRi9OP2
Lb46PzKRiAsH72KXjLOXID1P5lQQOMeXH2eUrkc4u7U17kemgBV4qkNaas1I
+17OtCamV5QoFqCTgFmJ0aohbccdiZgJPrOubVyUQ0rIgI5TsXixoO4IT0Ji
g9J7QG+2SEeY1ltyIvLAt3LF8orJwu8jqalxoNcYg07NcCxS3nYQti7Guv9b
DUijApEia1FR2sLROLdVqT7SqKtPfERmgciOjZODnkhMA/FgG7y8yxL1Aaz5
y8AdOO8U9c8m96E0AdZqdS9xVBhm0REkJjRVLlvU3AvvqXGle7hvLJaChD2Q
N8b5fWU0HUpEjyA8xLQK8nim2fbP8NWnWagWEqXOy0b9ERJpw/VM1wtbsD4Y
R0kIvcd17k2ocpUAXIQ97+dFu8PzJy/hUH0YM4fMYhwgRsAt4aA5BZjEpEvv
IlZ/Fd0XqpqANim1lwNNBtrqmiYtE3QTwouY+iwckYwexy9PCKWwPEJG1RC4
l+CGe3aD/PTjBcicCy+fAjoss4pq14iZMFhULJm7NXJdBBFul4C0a2n0mhAZ
TioMMASqc+H7S1R0VjAAy1TY3OjdUunXEchJyUDyEL3ZnL62x8VlDorjUioj
AQZyT/ET0Fwu1aGOG++L44T3TSK9g2MS9A4i6wXRY4YqastYcSHwMfIYI6pS
xbyIpBf+mpkd9ricY/1fFF9V4hHd+8nJqUTF1ToW1TLFaqlrEt+O2iLT4yeE
TVTFbvvXuOKs1B32LYeHP6P6DT8FdXZwG3//238L6ggYrSyKpxbUfZGv//63
/85apb5KBgNs735alU05AfnmZ4aSuWt7mIrXt6fOoYdvV9kMKSnFBJz+fHd4
evj6xZlav4ixrGczWA8j/ppMq1w/4gFFA6AZUJL2b279r/9vnMDfWSLgGXBP
+A+yj49wTDP4X3Jfw3+f0M1kODlvwGuHHK3iAf/gOvbfP0Y3wngfP4zpK+zt
hd+F9QB0HZHY8G3WIeUNHnSVNzgS//12pY9dOEJlVO3hBD1zC2zWSwiJrtOC
+j8XYpbC0PGM5N4nCVxA+3hBJfQlFgiFhyS9zOuyIiccaxTIgMuqblc6mJTD
ZA3SZiWCwUSfZcU3AhkM9l/zBEQLIDb2/wBRfmafrZOrLLfHwAYWD+1f8bv3
+sgf5/TjCEigoWUQQwGhxphf3gCDHmZUre4hsBNsocsMM/sVY/lz4rwp6JIN
VfF7yH8PQcgH9jjkANUhZsgOm8mQwtPN/r5/U+gNfDkG8B2SnIK32e0Wvati
VAmq9sKGb+wMLB8Y4h1qi6k3QLbfs0/iXw9f/giabybED3me+2og+0otBbyp
J940aABpRN2gp4nRjOCyJDXWGxR23dmalonmlTD+IGS82VGkQqNGEiASFyLF
UoSy9H4O6sDNyjINFsQGQkRAYgukwCCBFIkseFI0Bomgbq/KlcMQ9QK1Xwpw
BOkxW/m6g3Uc7/A4a9DuS8oTccA6QzAA36CJHWpacywSfaAd0iNc0Y4vjqzZ
qw6gJgb15UMAlzHw96Kadli1e8AA9NOZ4JG9ZVkgcrNpT0YNGy5q3RKZGUVw
Wq2WAXHaKIluaP/FXJFVlQ2pPCSO61CMjKtLZMZ4aTEpJy9CLBCUG7CSzYFW
aEIhL8CAc7z9TyZGOp9HAbPsHxgDxByI/Rw+3NKr5UK6gt4WVKlRxKuWnBMb
NGDYl3A1P3fZ/SXnOWmfVC2GKodzD+6dNfkHQXgt3WCNmYEjmmG1V27XRB3e
2GSBDSkIPzUuSnBmIChOZlKyLErlSoA5FRwlmxFyAzU3U3tymGZGKYLaypBj
qlTuC+m4xBqdHJ8/HY9vS0SlWWZZ41R3dhfENfip0/uOavuuuD7mItTxRXWG
UF9ZH8NGxHPZNU6fYG5UDGpDvasRgtThV6O3M8sYMa5yZXw+S4p7k8L4SHqo
yv7Sd7+tpVAtN61cJkQgyGCoHdRE1U4aFqm1TCuZ3cNWvCNMVfd7pl1pCmmj
XeZt0DHd3UpHNqt3eyVxm9mcksrOz37+84+cj4Y002eJKZedZsho3CESzYOj
wfcH3sfgs1uNC9DRADfZJVfKjxQHqgQLy8I9snqWC9xRvjZbLcL05MRahOrx
YhNHY3L1ZCC+dCdRiN4f7+KoSB0O2cjCMYbsV9DSocgp502zqh/u7c1g7+sL
FA32mhKtL3W9xxd9jx/fG8OAQ2CGJOnQu8EdGUh4k9VQv704b9UHUO5RtGrh
CqmipXdBh8XhraCdYvw4q/pyvGQnGcHsR6i8aXX55+UauBG5lrBInlpfnVNu
S1H3Ki6SBtiFBuElFxjh335+RNsNtChUulQJCrVGXzZvxET4Ba4qFQrKVVmJ
gG7yv87LtRJQrLExlDoUQ7iZQyCow0vWbIb7ByPjRaI4MJRN1dcVXthr2wbE
Jof8KEQ6ut49ruywEBcFLbUvT2gDiq0iisQFHet3DYHNs/USjVMYFu9d7wQ4
1guBu60wihEWEnwrkd1ohmVjGi2JHihxoqvsAmjYjGKlM7HM8arXDZni9FSm
gC1XCVnu92/rtaBElTR/r+dNZgWKya1AJtcCyGeS9kEmR8nZJT+G2b/jmCyO
ezf6dM99skOJGcBCDhpczXp3Xk/WNRmsOCZSylMyIliiT/v3v9FAoAYB9528
Iwn/DNcP6unwyQjuY6GoV1dDYtBDyWQdigMblNcevtMPDTrWRQiE+Qn5xGwV
s/TOQx9oEnePREaHoSeS6O3CUKhjNpJ6Mn9RzF+PG1ThEfQHjm76dC7FRKxr
nYvZjUkHR3mJTXiqiaGmVbl6Xq5cEAvhvHhtuYjnqqzDeyeRRa4Ur7h9z7IZ
0aPXUnTSG2d9m0r25bEpRxf1EntxAffn7ukFJxWFGcbiO9NuupJeLqQroVZf
bq9BWVP1Ww6iVtXM0iVQZsKFOq6wqPeEZWOkl1oNhm+71MNWq24cMsTdzUvp
/ym51kJf9I2Og3AmT6UgfGRKsIGxqp2etjhFYzzdcynVRxeA3A7wIzba3PJ6
D2zcELksHECo+jQ2QUKc4/hTfO+llTSylxiW13dxeaoQBUI/eayrJseYjSog
+Sa0XU+ZjPDWCvWpMkxlnpv2Nsx1L460AClM5zTO9eDimNp8jFQ+DJMLMvsT
9Y6JMwj2jPHF48HB4Bba/G+LR0YcJQhGL3D6oNwgGN5FPhVSGNz4o1I/Fvdd
qMTDEvd0lWDLbXO5r77GdWBBGMAedhSAEJypK27AP9RwCTWbicu2B62o5JJR
KiJtn92QzsMY+8hkk2T8ppuNW+VolYISgIPtGI/AGuwC1AGOh/CH1k7xH+pS
USopYQDI6tTq6+JumB7H2hQueOgcXzmWrVRqr9VIUKxFF1aSXqJtPt0CrdFZ
GaTOF4dqrSctLjdWLF9hL568UI0cUHeN9LExXEEmKlPiMWdb0fREK5BBdGHs
4RSHCU9FLvEM9b+M1DGXiunAxQE4vC63daJI+hoxIbgPi7IkbY3jFuHqNs4H
SVnoUl6ZVOsNxWAF+Vgt95WEP2BezoarVIhmIlF62IlQ7e0BXyDzAULfY9+e
C0642ERLdt4n9LI552YDvIcdjdwDDUVicphZcsbQs8K4UJ8SpFBXqyKnWEQ6
EdQECBrhJkVdYRoFkoMy6AQw4noEPKVrkkm3e13VmcYTkZvIelfxNceVNK0A
BfVhJQvQm7FFC2WTEA9gUyuRVtR3fszxjiJSH/109tTH1kgEzGKx0+gm9Ya4
KoTU/RAeeRKJKVqBVQri6CViZZnll4En2hpNlVDkBBYJIOfaVs8I/YKdKzBK
VQIdzWp3FYmOi8GAzZEO60ZYKQcGBsxcF6LsYuu22VyKRCRb3qtGCx6oiUtK
2EosgdGviWUNkUkQTqPynPj6NMS8nBte4nEQOT985z9gYsjZy86sR6bSXLGB
ootqlB/yOhg01GRaoiWKfQnFxsYZ2RJURzwNsUTCToOw/IWL/+AaGoXwjoFh
nZ4Lz4j+EkmULDO6UHcXgkS2jy2pdmSequClTw5Cq6juwNkEsECBwgDRyLMV
yWxPgQCmZB3hcH3/PpkUvAA8Q94fFhIfMFqHeTDWBAK4i3QJH2iFbbkJQ2CG
ARrCGxgxbocYMR6NbksEnq9HpTG+WxFdY4TEUefz7pkDfOYAs0UG8Q+3zC38
VtvP+B9uw//9gMMCgRQkGuwuDSWV4eNE7SRcY1jqSoosXGH+gQa9UZAlBwfh
yyYAx8EI4MHnW6MdiNbENoiBymt4PbEkIAw3I7JGEQ9UbsCEsBVVQYtSUYgH
p2RonIhocA8BKD18z45BazrQDwfwwdzST7fg0239cFuLJtBFbdF0DUykG7Ed
xVM68Qv1CYBOKAiqshjEVTpVQOJzUcnmWHGJN6OyZWjpXS0kyhLf0hGUWWko
ow/ypU5p0/gaCqmjvjwu7p4X62pZicqRqpv+zj+pkZio09CNdcPxwhuuSERe
O4Ncy5/u/BkUmox/5dQRIuH4CLFHuBheYSwU5AHiX4XVUtnRhzXUMpaGkRWy
/I3Zx5IUzKoS1Q3hZASm/DHvCMy+nncSDwppm2lTNvb7o9WTIwURKE7Tl9hm
kGCTHMW5EFFoaDQzmdC2ye77tiFpEOU4IvY75bsdV2aiXs5HzLaf6GqXPjY0
pKZBerJrXSEW/5NTI6oomsGY4wETe6Fs6TGHuJIJaJsTSqg3yUvaRVXNt3OK
QoOVuL3A0pEt4gQcBKDjUBkJNg3jW1wLBesppSAUoEFcDfUUTbjYcFyW8iGD
0dmim4Y2kaTeBuMyW5YsBZNtCQZDIiWd5UWb18KMRInRbEujDpxdgxvY4iI1
hEttyuGbJlle5LM1U8GkdgJjhO9OeUPfesCOiAR7I5LsC102SG+p/XnwsNb3
khukMaAh75JmI9GxWbm+lOx/TpUYXC1Kb7jCi0Ykz7WU8gtioYIXNbJ/WuGZ
CAg0Nd01U5VoLrOdRYYd210EtuPOqZ6KICqdhp/bBMW1bA//ko602r2uHxTL
yrmrHTloiqBMoQSV63Lcu0Gf4q3lMq+u2XSC6TSDQO/zeUQcbYX4l8ziNCYc
m/04PumIIcs5R5zcQ3+bg1Cn7GmxgYxyeSZlVakLFUX1pKiFNdV9tStl8CBX
+wy2IZDccUKE4u4URvbQ10elkg88OR56yUaJwWfGQvReF3wbynW92PjRsWFN
CNtBrH/660FO/qTYoKjLB9A1FWvplJhByq20/I4l2aD068Umjq0Uk5MYpYzi
jzR89IU4iEhMGtRGt5evxoOCZ/cNbwyP5vvqAbus1qzwROmUAfZNk3yBsYmo
E3XG2K5YZEsBzyzhRIGxVnlLzuq6+EqutSOiSZRjys3fJqiseSEEXMwqWcEa
poIuX8eQs8xSSBDAqOsS+HuSi6NEdkd1ryTCn2+3iZ4NB0vXtIC/YBU8SkGW
HDnNoUvSv4D+L+nzaERRP9/V1dUoT4pkVFazPe/JrffIG+XjLdqfR+/nzXJh
/n/tyA/BoiYBAA==

-->

</rfc>

