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


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

]>

<?rfc comments="yes"?>

<rfc ipr="trust200902" docName="draft-eckert-detnet-flow-interleaving-00" category="info" submissionType="IETF" tocDepth="5" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="detnet-flow-interleaving">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 initials="T." surname="Eckert" fullname="Toerless Eckert">
      <organization>Futurewei Technologies USA</organization>
      <address>
        <postal>
          <street>2220 Central Expressway</street>
          <city>Santa Clara</city>
          <code>CA 95050</code>
          <country>USA</country>
        </postal>
        <email>tte@cs.fau.de</email>
      </address>
    </author>

    <date year="2023" month="July" day="05"/>

    
    <workgroup>DETNET</workgroup>
    

    <abstract>


<?line 83?>

<t>This memo explain requirements, benefits and feasibility of a new DetNet service function
tentatively called "flow interleaving". It proposes to introduce this
service function into the DetNet architecture.</t>

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

  <middle>


<?line 96?>

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

<section anchor="overview-and-summary"><name>Overview and summary</name>

<t>This memo explain requirements and benefits of a new DetNet service function
tentatively called "flow interleaving" in this memo. It proposes to introduce this
service function into the DetNet architecture.</t>

<t>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 happening in transit hops of the DetNet domain in conjunction
with in-time per-hop bounded latency forwarding mechanisms.</t>

<section anchor="background"><name>Background</name>

<t>Currently, DetNet has a set of functions/services including Packet Replication,
Elimination and Ordering for resilient transmission of DetNet packets over
failure disjoint paths. DetNet is currently relying on pre-existing forwarding
plane functions from other efforts such as IEEE TSN and prior IEEE work such
as <xref target="RFC2211"/> and TBD control-plane functions for guaranteeing deterministic
bounded latency with (near) zero loss and bounded latency. DetNet is also
as of this writing (mid 2023) in the process of investigating DetNet specifications
of additional forwarding plane methods in support of bounded latency and jitter,
especially for large scale DetNets.</t>

<t>As in suport of such scaling goals, it is important to not only consider per-hop
mechanisms to support scaling, but also ingress node processing. Flow interleaving as
this memo call one such function is one such function.</t>

</section>
<section anchor="avoiding-burst-across-multiple-hops"><name>Avoiding burst across multiple hops</name>

<t>The core challenge with bounded latency guarantees is that traffic flows are by design
bursty, and the end-to-end latency that any hop-by-hop forwarding mechanism can
guarantee (DetNet, TSN, ...) depends on the maximum amount of packets that may collide 
anywhere in the network on an interface, and cause queuing/scheduling delay of packets.</t>

<t>In typical DetNet topologies, such as metropolitan access rings used for residential/industrial
wireline subscribers as well as mobile network towers, this problem can occur worst case
on every hop, which could be 20 or more hops. When these bursts are not controlled,
a lot of latency can occur unnecessarily. This is the same problem of no-coordination
as the latency inherited at roadway intersections with car traffic: The total amount of traffic
on the streets is far from capacity, but the intersecting traffic occurs exactly when ones
own car wants to move, resulting in unnecessary delay. In the recent decade there has
terefore been a good amount of interest in elliminating those traffic-red-light caused delays through the use of
autonomic cars who could be crossing each other at intersections without collisions,
such as in <eref target="https://www.youtube.com/watch?v=r7_lwq3BfkY"/>.</t>

<t>The same non-queuing mechanisms have been used in computer networking for decades via so-called
Time-Division-Multiple-Access mechanisms, primarily for bitstream type channels of data.
In TSN, this mechanism is achieved through so-called "Gates", that allow to excatly
time the periodc windows in time when TSN flows are allowed to send packets into the
network / next-hop. Note that TSN gates are a very flexible mechanism used for different
purposes.</t>

</section>
</section>
</section>
<section anchor="problem-and-use-case-analysis"><name>Problem and use-case analysis</name>

<section anchor="single-hop-burst-aggregation"><name>Single hop burst aggregation</name>

<figure title="Single Hop burst aggregation" anchor="FIG1"><artwork><![CDATA[
                 +---+
    IIF   1 -----|   | 
    IIF   2 -----|   | 
    ...          |   |------ OIF
    IIF  99 -----|   | 
    IIF 100 -----|   | 
                 +---+
]]></artwork></figure>

<t>Consider in <xref target="FIG1"/> a network node receiving detnet traffic that requires
bounded latency from 100 Incoming InterFaces (IIF) that all has to exit on
one Outgoing InterFace (OIF).</t>

<t>When each of these IIF has a packet at the same time destined to OIF,
then these packets have to be queued up before they can be sent out on OIF.
Assuming IIF and OIF are all the same speed and the packets all of the same size,
then the worst queuing latency for a single packet introduced is 100 times the
serialization time of a single packet.</t>

<t>Assume each of the IIF carries 10 flows, each of which wants to send one 1500
byte sized packet once every 20 msec. Such a frequency of messages would for
example happen in video based control loops, where a reaction happens once
every video fraem delivered, which could be  20 msec for the frame rate of 50 Hz.
In reality, higher frame rates such as 60/90/120 are more common these days,
but 50 is easier to use in examples.</t>

<t>If all these flows send their packets uncoordinated or coordinated simultaneously,
then the worst case is that each of the 100 interfaces has 100 back-to-back bursts
of 10 packets. In this case, the worst-case queuing latency is 12 msec for a
packet.</t>

<t>This queuing of course is undesirable because the total required rate for all
these 100 IIF * 10 Flows/IIF = 1,000 total flows is just 600 Mbps,so there
is no bandwidth congestion. If all these flows packets would arrive nicely interleaved,
none of them would experience any queuing latency. Assume <xref target="TCQF"/> was used with
a cycle time of 20 usec, and each of the 1000 flows packets would be put into a
separate cycle: 1,000 cycles of 20 usec each fit exactly the 20 usec period,
so each flows packet would experience just a 20 usec queuing latency instead of
potentially 12 msec.</t>

</section>
<section anchor="ingress-interleaving"><name>Ingress interleaving</name>

<t>Consider the router in <xref target="FIG1"/> is the ingress router into a DetNet domain and
each IIF is connected to some IoT device such as a sensor, that is periodically
sending a sensor data packet. Assume all these traffic flows would even need to
go to a single receiver, such as a PLC or environmental control system.
This ends up being a situation such as shown in <xref target="FIG2"/>.</t>

<figure title="Ingress aggregation use case example" anchor="FIG2"><artwork><![CDATA[
                 DetNet                   DetNet
                 Ingress                  Egress
                  +---+                     +---+
    Sensor1  -----|   |                     |   |
    Sensor2  -----|   |                     |   |      Rcvr
    ...           |   |--...DetNet Domain...|   | ---- PLC
    Sensor99 -----|   |     e.g. 10         |   |             
    Sensor100 ----|   |    router hops      |   |
                  +---+                     +---+
]]></artwork></figure>

<t>Whether or not the flows are sent into the DetNet in some aggregated
fashion or not:</t>

<t>If the packets of these flows packets arrive uncoordinated at the DetNet
Ingress router, the maximum burst size of an individual flow, and this
burst size is not only relevant for the maximum latency through this
ingress router, but also for the maximum latency that these 100 flows
may at wors incur on other hops along the path (as described in more
detail in the following sections).</t>

<t>If instead the packets of these 100 flows are interleaved "nicely" such
that the packets of all flows are sent at a different offset into 
for example a common period time (such as 20msec), then the maximum
burst size that any DetNet would have to account for would be 1/100
times as large. End-to-end latency that could be guaranteed would be
lower and utlization higher.</t>

<t>Such "nice" interleaving could be done at the application side, such as
the PLC triggering the sensors to send sensor data at specific times,
or programming them to send that periodically with those different
offsets to avoid packets arriving at the same time.</t>

<t>In a large DetNet, or simply a small DetNet that is not fully trying
applications to perform such functions, this approach is not feasible.
In a large DetNet for example there may be no relevant single PLC
that could coordinate sending times, but instead a large number of independent
applications would multiplex without any common coordination.</t>

<t>Instead, the DetNet ingress router would have to perform the interleaving
function in the forwarding plane, receiving uncoordinated packets from
each flow/sender and making them wait until their time in a cycle
arrives, before allowing them to be further processes such as by the common,
ingress independent egress DetNet per-hop processing. This waiting is
what in TSN is called a gate function.</t>

<t>Of course, the gate function itself will also add latency to packet arriving
uncoordinated shortly after the gate for the flow closed. But in all cases,
this latency occurs only once along the path and it is always lowe than
the period time of the flow. Without such flow interleaving, the total
queuing latency caused by uncoordinated bursts could exceed such a cycle
time (as described in later sections).</t>

</section>
<section anchor="flow-aggregation"><name>Flow aggregation</name>

<t>When DetNet per-hop bounded-latency operates hop-by-hop on a per-flow
basis such as in <xref target="TSN-ATS"/>, scalability can be helped
by treating the 100 flows of <xref target="FIG2"/> wit the same ingress and egress
router as a single aggregated DetNet flow - whether the packets of
the 100 flows aggregated are or are not coordinated. When the packets
are coordinated/interleaved, then this flows burst size would be 100 times
smaller than if they where uncoordinated - reflecting the latency
considerations outlined above at the level of a DetNet flow.o</t>

<t>It is useful to consider one use-case of flow interleaving as a
sub-function of the DetNet aggregation function, and this is exactly one
goal of this memo. In this use-case, flow interleaving can benefit
latency under scalability independent of whichever per-hop DetNet
bounded latency forwarding mechanism is used.</t>

</section>
<section anchor="multi-hop-queueing"><name>Multi-hop queueing</name>

<t>Going back to <xref target="FIG1"/> and
now considering a larger topology, such as in a metropolitan area.
A ring of 100 routers R1...R100 each has 100 interface IIF1...IIF100.
Each of those interfaces could connect to 100 Edge Router (ERxxyy)
each serving 100 subscribers. Such a ring would then connect 1,000,000 subscribers.</t>

<figure title="Multi-hop queuing topology" anchor="FIG3"><artwork><![CDATA[
    e.g.: 100
   Subscribers
     ||..||
    +-----+                            +------+
    |ER101|                            |ER5001|
    +-----+                            +------+
      |                                  |
    IIF1..IIF100    IIF1..IIF100       IIF1..IIF100
      ||..||          ||..||             ||..||
     +------+ OIF    +------+ OIF       +------+ 
     | R1   |--------|  R2  |-- ... ----|  R50 |
     +------+  --->  +------+           +------+
        |                                   |
        |                                   |
     +------+        +------+           +------+ 
     | R100 |--------|  R99 |-- ... ----|  R51 |
     +------+        +------+           +------+
      ||..||          ||..||             ||..||
    IIF1..IIF100    IIF1..IIF100       IIF1..IIF100
]]></artwork></figure>

<t>Assume the packet in question is now inserted from ER101 via IIF1 into
R1 and travels the ring clockwise to R50 where it exits the ring towards
ER5001. On each of the 59 OIF interfaces in the ring it could worst
case experience the same worst case bounded delay in the order of what
we calculated for the single router setup. For example a large number of
such competing traffic flows could go from an ER connected to R1 to an
ER connected to R2. Those flows would create the queue on OIF of R1.</t>

<t>Likewise there could be similar flows from R2 to R3, from R3 to R4 and so
on. The sum of worst case queue buildups is thus proportional to the
number of hops traversed. And of course nobody is interest in a
bounded lateny of 49 * 12 = 588 msec, aka: more than half a second. Within
a metropolitan area where the non-queuing network latency does not even
add up to 1 msec.</t>

<t>While the extreme case is not very likely, this type of aggregation
of queuing latency in worst cases woulk in principle not be untypical
in target use-cases. If ride-share cars (Uber, DiDi,...) become remote
controlled and subscribers to the networks are either such remote drivers from home
or radio towers connecting to the remote controlled cars, thousands, if not tenth of
thousands of such flows may co-exist. And one certainly does not want
driving to become slower and slower the further away from the driver
the car is - not because of speed of light, but because of unnecessary
queuing, higher RTT and hence lower speed for the car that still alows the
driver to react fast enough to avoid accidents.</t>

</section>
<section anchor="multi-hop-flow-interleaving"><name>Multi-hop flow interleaving</name>

<t>In the same way as in the single-hop flow interleaving on ingress, packets
of flows can also be interleaved on ingress but now considering not only that
they do not collide on the outgoing interface of this ingress router, but
also considering them competing at the same time with packets arriving from
other interfaces on some hops further down the path. This sounds more
complex than it can be in practice, as explained later in the document.</t>

</section>
<section anchor="note-multi-hop-burst-accumulation"><name>Note: Multi-hop burst accumulation</name>

<t>The problems described in the prior section is not to be mixed up with
"multi-hop burst accumulation" as explained here. Burst accumulation refers to the fact that
because of the aforementioned queuing delay due to simultaneously
occurring traffic, the burstyness of individual flows can increase. And
this then can lead to further problems downstream.</t>

<t>Consider the prior section network setup and the same flow which sends a packet
once every 20 msec. Assume that packet n of this flow experiences on
two consecutive hops a queuing latency of 10 msec each because of competing
traffic. But now this competing traffic is intermittent and packet n+1 of
the flow passes the same two hops without any queuing delay. Now both the n and
n+1 packets of the flow are back to back. And hence the burst size of the flow has doubled.
This may cause on downstream hops more delay for other flows than anticipated
by admission control, and hence not only invalidating other flows latency guarantees,
but on highly loaded links potentially also leading to discarding packets because
buffers are overrun.</t>

<t>This burst accumulation is compensated for in bounded latency mechanisms
such as <xref target="UBS"/> (<xref target="TSN-ATS"/>) by per-flow shaper/interleaved regulators. In this example case,
the shaper would cause the n+1 packet to be delayed by 20 msec because of the late arriving
packet n.</t>

<t>In conclusion, compensation of burst accumulation does not eliminate the problem of
queue latency accumulation over multiple hops when in-time queuing
mechanisms are used and flows are bursty.</t>

</section>
<section anchor="differences-to-tsn"><name>Differences to TSN</name>

<t>In TSN and small-scale DetNet networks, interleaving may be inserted through
additional gates (interleave functions) for individual flows on every hop of a path.
In large scale DetNet networks, this is highly undesirable
due to the target PE/P distinction of path functions. Ideally, per-flow operations
including signalling between controller-plane and node as well as advanced
traffic-plane functions such as gates should only happen once, on the ingress
node to the detnet domain.</t>

</section>
<section anchor="summary"><name>Summary</name>

<t>Flow interleaving is necessary to reduce the per-hop queuing latency and
to increase utilization of networks with Deterministic network traffic at
lower end-to-end queuing latency.</t>

<t>Interleaving can achieve improvements based on the total number of hops (and hence queues),
and depending on how bursty the traffic is. Traffic flows which send packets with a long period of
inactivity are the worst case: because of the long period between packets,
the network can only support a large number of these flows when these bursts do not
occur at the same time but are coordinated so as to cause minimum per-hop latency.</t>

</section>
</section>
<section anchor="flow-interleaving-with-different-per-hop-forwarding-mechanisms"><name>Flow interleaving with different per-hop forwarding mechanisms</name>

<t>Building a controller plane to support flow interleaving likely has many
possible variations. This section outlines one approach that this memo
thinks is simple and scaleable to large number of flows and high rates of
flow changes.</t>

</section>
<section anchor="overall-solution-proposal-outline"><name>Overall solution proposal outline</name>

<section anchor="principles"><name>Principles</name>

<t>Flow interleaving on ingress solely to decorrelate arrival times of packets from
different flows on the output interface of the same router seems easy enough, as
its consideration and setup is limited to the single router. This use-case of of
flow-interleaving can actually be the first stage of scaling up DetNet deployment
with minimal complexity. It is also working across all per-hop forwarding mechanisms
for bounded latency, in-time and on-time.</t>

<t>Flow interleaving with the goal to decorrelate the arrival time of different flows
packets on output interfaces further along the path sounds very complex, but
it actually can be quite simple and possible to support in linear time in the
controller-plane when taking three considerations into account.</t>

<t><list style="numbers">
  <t>The per-hop forwarding along the path is per-hop on-time, so that the time
at which packets arrive on every hop can be calculated accurately by the controller-plane.
Such per-hop one-time forwarding methods include <xref target="CQF"/> (if for exampled used with DetNet over TSN
solutions), <xref target="TCQF"/>, {CSQF}} and <xref target="gLBF"/>.</t>
  <t>The periodicity of traffic flows is some order of magnitude larger than the
achievable accuracy of per-hop on-time forwarding. With the examples presented,
the periodicity of traffic flows is in the order of msec..100msec, and
the accuracy of per-hop on-time delivery in for example <xref target="TCQF"/> can be configured
in the order of 10usec or 20usec. In result, the order of granuarity of timing is
about 100 times finer than that of application traffic periodicity allowing
to decorrelate traffic by up to a factor of 1000.</t>
  <t>flow interleaving is only an optional optimization mechanism to allow scaling
up the use of DetNet traffic in a network which may predominantly carry non-detnet
traffic. Allowing to gain another factor of 10 times more DetNet traffic from eg;
1% of nbetwork bandwidth to 10% network bandwidth may be all that is required.
One may compare the relatively simple efforts of a controller plane to support flow interleaving
with the NP-complete efforts to optimize useable cpacity of the network for best-effort
traffic by NP complete path optimizations - as done in today almost every mayor
SP backbone network.</t>
</list></t>

<section anchor="common-assumptions"><name>Common assumptions</name>

<t>Assume all traffic flows subject to flow interleacving are described
by a burst size of b bits and a period of p [msec]. The
b bits are sent back to back as a single packet or burst of packets.
p is not allowed to be arbitrary but must be a complete divisor of 100 msec.
This allows for traffic flow periods of 1/50, 1/60, 1/90, 1/120 seconds.</t>

<t>Assume (for simplicity) also, that the path for a new flow is calculated without taking
flow interleaving into account. For example path selection could use CSPF 
(Constrained Shortest Path First) or better some optimized selection of a path
where the link with the highest utilization has the lowest utilization amongst
all alternative paths and the total physcial path propagation latency does
not cause the maximum desired latency for the flow to be exceeded.</t>

</section>
</section>
<section anchor="flow-interleaving-with-tcqf"><name>Flow interleaving with TCQF</name>

<t>Assume TCQF is being used with 20 usec cycle times. The controller-plane
maintain for every outgoing interface in the topology that can be used for
TCQF traffic a window of 5,000  cycles and their amount of available bits,
not utilized by already admitted flows. The amount of total vits for
each cycle depends on the speed of the link and what percentage of the
link is allowed to be used by TCQF.</t>

<t>Admitting the flow with interleaving across the previously choosen path
consists of finding i = 100msec/p equidistant cycles thus that the choosen cycle
with the lowest amount of available bits across the i choosen cycles has
the highest number of available bits across all choices for those i cycles.
The index for the 5000 cycles of each hop does of course need to 
taken with a an offset modulo 5000 that reflect the cycle mapping along the
path.</t>

<figure title="Flow interleaving controller plane algorithm for TCQF" anchor="FIG4"><artwork><![CDATA[
    // Determine minimum cycle capacity across path
    // Without taking utilization into account
    
    minc = max_cycle_capcity
    for if in path_hops
      minc = min(cycle_capacity[if], minc)
    minfree[1...5000] = minc
    
    // Determine for each of the 5000 cycles the [2]
    // minimum free capacity along the path
    ofst, ifp = 0
    for if in path_hops
      ofst += cycle_offset[ifp][if] if ifp
      ifp = if
      for i in 1...5000
        minfree[i] = min(freec[if][((i+ofst) mod 5000)+1],minfree[i])
    
    // Determine the cycle option 1...nc with the [3]
    // highest free capacity
    bestfree = 0
    bestfreec = -1
    nc = 100msec/p
    d = 5000/nc
    for i in 1...d
      ii = rnd_seq(i,d)
      betterfree = 0
      for j in 0...(nc-1)
        k = (ii + j * d) mod 5000 + 1
        if minfree[k] <= bestfree
          betterfree = 0
          break
        else
          betterfree = min(minfree[k], betterfree)
      if betterfree
          bestfree = betterfree
          bestfreec = ii
]]></artwork></figure>

<t><xref target="FIG4"/> Shows an example brute-force pseudocode for finding a best
set of cycles according to the described conditions.</t>

<t>minfree[1...5000] is initialized in [2] to be the lowest free capacity 
(e.g.: in bits) for each of the 5000 cycles along the path of the flow.
cycle_offset[ifp][if] is the numerical offset o that needs to be
applied when a packet arrives with cycle i from interface ifp and
is sent out on ifp. It then needs to use cycle ((i + o) % 5000 + 1).</t>

<t>[3] then determines, which of the first d cycles is the best.
nc is the number of cycles that the flows burst will fit into the
5000 cycles. rnd_seq randomizes the cycle number so the allocation
will not allocate sequential cycles but spread out the flow bursts
over time.</t>

<t>In summary, the algorithm is a simple search for which of the set of
cycles along the path has the lowest utilization. As a two step
proces this is first a linear operation to find the worst case hop
for every cycle, an O(pathlength) operation, followed by searching
for the best cycle-set, which is O(const), where const is e.g.: 100.</t>

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

<t><xref target="CSQF"/> proposes to carry the cycle mapping in the packet header whereas <xref target="TCQF"/> as presented
in this memo defines an in-router cycle mapping. Carrying the cycle-mapping in
the packet is attractive where it comes for free (or almost free), and this is in
segment routing (SR) networks, where packet steering uses already a packet header.
Each steering hop is a so-called SID, and if n cycles are to be used, then instead
of one SID, n SIDs are allocated for each hop. Especially in IPv6 with 128 bit
SIDs, there is no problem to even support large number of cycles.</t>

<t>Flow interleaving across multiple hops with TCQF can easily hit limits in maximum
utilization. Consider for example a network where flows  with periods of
1/50th and 1/60th seconds occur. It is clear that it will not be possible to
achieve equal utilization across all cycles because of the moire effect
between these two type of flows.</t>

<t>With CSQF and for example some A more cycles (e.g.: A=4), the controller-plane
has the option to choose for every hop of a flow one out of 4 cycles in which
the flow would be forwarded. And this number increases exponentially with
path length. Hence, the controller-plane ha a lot more opportunity to optimize
utilization across cycles - and avoid admission failures at low utilization
rates.</t>

</section>
<section anchor="glbf"><name>gLBF</name>

<t>glBF with a single priority end-to-end can be used with the same algorithm as
shown for <xref target="TCQF"/>. Instead of a fixed cycle-time on every hop, the per-hop
latency is independent and depends purely on the admitted maximum burst
aggregte across a hop. It is thus more flexible, but utilizing that flexibility
would incur more complex controller-plane algorithms. Nevertheless, gLBF could
be configured via the controller plane to have the same per-hop latency
and therefore allow to be fully backward compatible to <xref target="TCQF"/> with both
latency, jitter and controller-plane algorithm.</t>

<t>Because gLBF itself does not have the notion of cycles, these cycles are on
a hop-by-hop basis a result of the timing of packets released by gates
on the first-hop routers and packets then delayed by gLBF accurately
by the priorities latency on a per-hop basis.</t>

<t>gLBF with multiple priorities and per-hop choice of priority (via appropriate
packet headers such as SIDs as used in <xref target="CSQF"/>) would allow to set up
similarily if not more flexible flow interleaving as with <xref target="CSQF"/>. - whereas</t>

</section>
</section>
<section anchor="summary-of-proposed-architectural-components"><name>Summary of proposed architectural components</name>

<section anchor="forwarding-plane-gates-flow-interleaver"><name>Forwarding plane gates / "flow interleaver"</name>

<t>Gates derived from TSN gates, adopted to DetNet. Adoption
primarily means that these gates would operate logically on ingress,
so that they can preceed any pre-existing DetNet per-hop processing,
such as that of <xref target="RFC2211"/>, <xref target="TSN-ATS"/>, <xref target="TCQF"/>, {CSQF}}, <xref target="gLBF"/>
or any other applicable DetNet per-hop bounded latency mechanism.</t>

<t>Gates also need to preceed an optional DetNet aggregation function in
the forwarding plane.</t>

<t>Forwarding plane gates in large-scale DetNets only need to be support
on ingress DetNet nodes. In smaller DetNets they may be supported
on every hop.</t>

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

<t>"Ingress interleave" Controller-plane algorithms to interlave flows in ingress purely for
avoiding bursts on the outgoing interface of the same ingress router.
result of the algorithm is a set up of ingress gates. These algorithms benefit / can
be used with any per-hop forwarding mechanism.</t>

<t>"Fixed network wide interleave" Controller-plane algorithms to interleave all flows in the network
and delaying packets solely fvia ingress gates / flow interleaving. This is applicable to all
per-hop on-time forwarding methods in the detnet that allow to calculate the fixed time interval at
which a packet will be present on every hop of its path.</t>

<t>"Variable network wide interleave" Controller plane algorithm such as above discussed
for <xref target="CSQF"/> or <xref target="gLBF"/> which not only calculate a gate parameter for the ingress router,
but also parameters for the header of the per-hop mechanism influencing the per-hop
latency forwarding of the packets of a flow.</t>

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

<t>With flow interleaving resulting in additional first-hop latency which may be significant,
it is likely highly beneficial to design appropriate service interfaces between applications
that require multiple different flows and the controller-plane to understand the application
desired relationship between the phases of packets from different flows of the same application.</t>

<t>(TBD example).</t>

</section>
</section>


  </middle>

  <back>


    <references title='Normative References'>



<reference anchor="RFC2211">
  <front>
    <title>Specification of the Controlled-Load Network Element Service</title>
    <author fullname="J. Wroclawski" initials="J." surname="Wroclawski"/>
    <date month="September" year="1997"/>
    <abstract>
      <t>This memo specifies the network element behavior required to deliver Controlled-Load service in the Internet. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="2211"/>
  <seriesInfo name="DOI" value="10.17487/RFC2211"/>
</reference>




    </references>

    <references title='Informative References'>




<reference anchor="CSQF">
   <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>
      <date day="13" month="March" 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-02"/>
   
</reference>


<reference anchor="TCQF">
   <front>
      <title>Deterministic Networking (DetNet) Data Plane - Tagged Cyclic Queuing and Forwarding (TCQF) for bounded latency with low jitter in large scale DetNets</title>
      <author fullname="Toerless Eckert" initials="T. T." surname="Eckert">
         <organization>Futurewei Technologies USA</organization>
      </author>
      <author fullname="Yizhou Li" initials="Y." surname="Li">
         <organization>Huawei Technologies</organization>
      </author>
      <author fullname="Stewart Bryant" initials="S." surname="Bryant">
         <organization>University of Surrey ICS</organization>
      </author>
      <author fullname="Andrew G. Malis" initials="A. G." surname="Malis">
         <organization>Malis Consulting</organization>
      </author>
      <author fullname="Jeong-dong Ryoo" initials="J." surname="Ryoo">
         <organization>ETRI</organization>
      </author>
      <author fullname="Peng Liu" initials="P." surname="Liu">
         <organization>China Mobile</organization>
      </author>
      <author fullname="Guangpeng Li" initials="G." surname="Li">
         <organization>Huawei Technologies</organization>
      </author>
      <author fullname="Shoushou Ren" initials="S." surname="Ren">
         <organization>Huawei Technologies</organization>
      </author>
      <author fullname="Fan Yang" initials="F." surname="Yang">
         <organization>Huawei Technologies</organization>
      </author>
      <date day="19" month="June" year="2023"/>
      <abstract>
	 <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.

   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.

   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>
   <seriesInfo name="Internet-Draft" value="draft-eckert-detnet-tcqf-03"/>
   
</reference>


<reference anchor="gLBF">
   <front>
      <title>Deterministic Networking (DetNet) Data Plane - guaranteed Latency Based Forwarding (gLBF) for bounded latency with low jitter and asynchronous forwarding in Deterministic Networks</title>
      <author fullname="Toerless Eckert" initials="T. T." surname="Eckert">
         <organization>Futurewei Technologies USA</organization>
      </author>
      <author fullname="Alexander Clemm" initials="A." surname="Clemm">
         <organization>Futurewei Technologies USA</organization>
      </author>
      <author fullname="Stewart Bryant" initials="S." surname="Bryant">
         <organization>Independent</organization>
      </author>
      <author fullname="Stefan Hommes" initials="S." surname="Hommes">
         <organization>ZF</organization>
      </author>
      <date day="28" month="June" year="2023"/>
      <abstract>
	 <t>   This memo proposes a mechanism called &quot;guaranteed Latency Based
   Forwarding&quot; (gLBF) as part of DetNet for hop-by-hop packet forwarding
   with per-hop deterministically bounded latency and minimal jitter.

   gLBF is intended to be useful across a wide range of networks and
   applications with need for high-precision deterministic networking
   services, including in-car networks or networks used for industrial
   automation across on factory floors, all the way to ++100Gbps
   country-wide networks.

   Contrary to other mechanisms, gLBF does not require network wide
   clock synchronization, nor does it need to maintain per-flow state at
   network nodes, avoiding drawbacks of other known methods while
   leveraging their advantages.

   Specifically, gLBF uses the queuing model and calculus of Urgency
   Based Scheduling (UBS, [UBS]), which is used by TSN Asynchronous
   Traffic Shaping [TSN-ATS]. gLBF is intended to be a plug-in
   replacement for TSN-ATN or as a parallel mechanism beside TSN-ATS
   because it allows to keeping the same controller-plane design which
   is selecting paths for TSN-ATS, sizing TSN-ATS queues, calculating
   latencies and admitting flows to calculated paths for calculated
   latencies.

   In addition to reducing the jitter compared to TSN-ATS by additional
   buffering (dampening) in the network, gLBF also eliminates the need
   for per-flow, per-hop state maintenance required by TSN-ATS.  This
   avoids the need to signal per-flow state to every hop from the
   controller-plane and associated scaling problems.  It also reduces
   implementation cost for high-speed networking hardware due to the
   avoidance of additional high-speed speed read/write memory access to
   retrieve, process and update per-flow state variables for a large
   number of flows.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-eckert-detnet-glbf-00"/>
   
</reference>


<reference anchor="UBS" >
  <front>
    <title>Urgency-Based Scheduler for Time-Sensitive Switched Ethernet Networks</title>
    <author initials="J." surname="Specht" fullname="Johannes Specht">
      <organization></organization>
    </author>
    <author initials="S." surname="Samii" fullname="Soheil Samii">
      <organization></organization>
    </author>
    <date year="2016"/>
  </front>
  <seriesInfo name="IEEE" value="28th Euromicro Conference on Real-Time Systems (ECRTS)"/>
</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 (TAS)</title>
    <author >
      <organization>IEEE Time-Sensitive Networking (TSN) Task Group.</organization>
    </author>
    <date year="2015"/>
  </front>
</reference>
<reference anchor="CQF" >
  <front>
    <title>IEEE Std 802.1Qch-2017: IEEE Standard for Local and Metropolitan Area Networks - Bridges and Bridged Networks - Amendment 29: Cyclic Queuing and Forwarding (CQF)</title>
    <author >
      <organization>IEEE Time-Sensitive Networking (TSN) Task Group.</organization>
    </author>
    <date year="2017"/>
  </front>
</reference>
<reference anchor="TSN-ATS" target="https://1.ieee802.org/tsn/802-1qcr/">
  <front>
    <title>P802.1Qcr - Bridges and Bridged Networks Amendment: Asynchronous Traffic Shaping</title>
    <author initials="J." surname="Specht" fullname="Johannes Specht">
      <organization></organization>
    </author>
    <date year="2020" month="July" day="09"/>
  </front>
  <seriesInfo name="IEEE" value=""/>
</reference>


    </references>



  </back>

<!-- ##markdown-source:
H4sIAAAAAAAAA+19624cR5bm/3iKAI0GyHFVsUhb3RZnvbu6UN0adNtqkR5j
YRtGVmZWVVpZmeW8kGLLauxD7BPuk+z5ziUyMqukthszWCyw/CGxKiPjcuJc
vnOJ4Hw+d2mdFdXmyvfdev6Fc13RlfmVf553ebMrqqLtitR/lXf3dfOG2vlT
ekIfz/zzpEv8qzKpcj/3L8r63hcVvVPmyR3arevGt2lS4vcs76q88xne2OON
1t8X3daj/11S+rzK5l09p/98mXR5lT74hH9vNrmv+t0qb3y99msapF24ZLVq
8rsr7XWOb+fx0C6r0yrZ0SKyJll38zx9kzfd/EPN58ulu6f1P7++/er61qU0
gU3dPFzRcta1K/bNle+avu0ul8vHy0vXdk2e7K78y+vbF44+0UR/TMq6ouEe
8tbtiyvnve/qVD7L71m+77ZX/hE+tnVDXazb8Lx92I0+p/Vul1edfuGSvtvW
DXqd4yl+ZHW3NdbQtv6aF2gP64YW86Lv+ia/zwt/m6fbqi7rTUFU/+bmiTXD
OvLuyl9eXi79MxqvoY24frtvqMf75MGapUVHpLhJKtq6Z7QhSXhQZzSHZ0/8
40fLR8vh2556ojeikfJdUpRExC7/72m7WCf9Isudq+pml3TFXY6VvX7x7PLy
4uLKOweqR0+e3fz1BRF7/nyRbvPKNrFt5qukzbP5isbL6H9lG3rh9pm9MN73
Lv15TY83f3569PGmXK0dPf/m6Q1voFc5+IZYkDqeP8Vw/oYmkfUlsSPY+7bY
5fObvGoLzNbfEE/jub/utnkDhlex4V31bd7QFmB5V0qZl9fX17QBX5AkXPdN
vSvSpvbP6mqdNzRm7uvKv86Tco5x/M1D2+W71p9eP3t9e3PGXZBA0RQvlxe/
548Dp+AncAsxMvHSvy38zZ54IfCJctG/1dukgkSOnk5evqGXk11RTN69qbd5
UeojUA8r+mJ5ubj464iIJ/je30BWkiZj2v25Jt3AUv6XvGvqfV0W9Ng/IeEy
svn//T//l3/aFNmGZoeW8nsWyOpPtd/My6BnJ0fowPLADbmR/1YV2R+but+P
yfjFBzYqq4srf7FcXFwsH58XeZ63XbZA+8UXny8/e3z5B1ks1BVJ1Lbr9u3V
+Tm9taDBzz/64ohoq7tfT7ZdTLYEZKuMLPP5x8k2909IwWRQMv7y0ZW/rogF
0pyVDo9ibJ75W9KgazIAp7dPbv4BdSfSEJuM25uvzvxt0r4Roi/8mOyPQAWI
LX89v4ookm6PEcT2O93O6fU/6AR+K3+BEL+eTo9J2T2kJdHir33eY1l450Xd
3NOQvEpawX8aiZhRqM38ye1YP528UlI0/2g1YS1X/kn7UKXbpq7qvg1bfLNN
9jSVk48qq9GsLpfz5R/my8dHuf9iAX7H5CADXVud0+/zi5/T5vwIjY7rIjcn
Vk5WZKqSlD7dbouW+H5X+/wtwYii8k3+c180wrkzv8qrfF10sv51nrTFqqBt
fwB2gHjce8EuWN1dQQp23VdpV9SVI+PRsckpHzzxDTj/ZD2FNCcL/7LzezBT
S3Psajxt6qynnjqampt2i+c1Pcpt3KRJt0WXp7DNC+cOQVNKLLrKPWxa03Z1
nfmEVmOvY7F3SQl2pBWhX+Gqm688wbYdTXpDO9Nimi3Nk6BV8+Cbusw90Q3j
wFRi3jRE0nEHNCgMvs+JV9CpjpTVZLMrWlG/3xNcwdS2xYasGqFEIunfEl4e
Y7T6nr5VMxzQGySQ6ZdsqP8NN3eno6UanhMiJZ6YbUMzxXdnMyz7Pi9L/P9r
BnbxwONh0rRvGvxG7EJ8BNnz23rfGglHK0ajtK5+Mr5glFpUc1DX7/NmTm8e
W6zpgB2xbUKYeUcwlZl3V2RZSWjnE/9SeYX7dZ984r++A7sQU2I1bb/Dbv0j
Hue2gc3/g9iaKWPD/n8e/3+Px0lx7/Pq/wqPf0KM/DRJ32wavODcMxI22rvy
YWaDbnl325z307imPVc+AmnSsueOX1E/1Ox1vicry0SYueuyICdxoMjXDXGN
uZe0q0QvsAovele0LdoNW7znHokMJGpuTV4I8aTPivanmuhHT7stMZK2JfZJ
bfLUc/nAG1gRj+Xz/C3cYBlVyeDYjx0W5NcE4H0N5O/zNbWjYds+3WJ3Awdj
BcSzNHX+ikEuGjlq9O6dOkHv33O726fPsU0kfOX8YCzqYdOTM0ZckKuDPXjr
brp5vMOnVZ40Z/5vOfkYZd2qKhm3jImRlG2NeTEL0ef7pmASnJJKg+3/7Ez0
Rg5tkUK+qGVR3RHELSAM1NTUEhnzYq1b2jporSwr8IEQWsRYskrCtds6A194
lUx0PF0SJv9TQS5lM3M5D0DqTURDogYIPRjjg1GfWI/aIe+NxSc2Na125gte
eLFDmwRcVfuqptYV1CdNvSDeMwlxgxignU1VeyQs0ndMwqB9KvKXjVT03eJI
yCRpXdDDrK9p6FxmOqjb9vBLlcMnd3XBhFz1pFh9Qt4kjbvry67YEy1YIcDA
5LQYkgOaPlmEimjF/DGlcOCvFmN224SljJGi6DTyOfzqgVivLTaV4zFJ6rEx
YIojIR3uI6keMJP56oH1zDG9AgvhwvAWcJpBgmZ+sVic0Zik7zJQgsfaJW+L
Xb/zyQ7RB+yuCT4PuUuwfWVJ2+cdjX9PMpob86rT5Fm/yHaskzSXhaRJ3+b+
Z8H75614RSJvZfIQDURw3b2kDh/2BdwOZfwObgcHXmZBF4zdtpQFBwqt9T0C
DKbWMtJDxNLnRZX1BH/pV9LTpJUK3vtVmzbFisxnbEN2NaHdYUEdbAcNzBxF
fLcqc6asICLoHuKRNGlzR0vPSUHyvsz8/bagmaZ1XwJpkKST/0J9N8JAC//t
NmfKEWF4z4URICeqrQhlzFxCOoZ3wjZ/GLknhI9lJ01RksZhwMMcRitLdnmY
K71c1fO0rsEeYl0TaWZ9FhXtJGGNDJa+qZPsPnmQLWxz1ZTM2mnSGO9eefB/
V3dwDgO76EOn/CShMZ7Vml5lzZ4mtNUFOBySLbDCBiKGMNHgJRLUeEsOC2mN
exCL5JW03n3F87hPAONIY+zIKM2w15BPMd0DZR6EwwjlyIwa+p6mmuVpkgGI
gYG3UBf0yxp7s8ppoIQUGeBUWBdPkRQyOicuUVOK6W4J3tmk5w0CaIRAOmH4
TAYHrcmqb7Y8AwhCvUYwkrzGHa2UFkPk3dYDq7C+Qe95QhwkpjDpjmxI3Xci
kDDX7cyZbNAs370z//H+/n7xQC37Vb5I6935fdKl2/9292Xzhx/L+58/e7p+
8z/ev1+IPmO+qepqrqIaYRQi052Sh5fG4Ge372lOJioGJ4S6rb8rCK8Q5zFg
duyzPy/ueLLzv6g2nT8R0R0GmikaLdQMrQihc6gYWoG1Le1uyVYScfAF9AVr
NFX5pvxgeglBk0RmYQPCbPzJH4F+T2aqTEvYkA6+AlnX8oERsthkEow6S4nc
VSYA1PMzZkhAkUGHcyeCmVuoa9OdBuydaZRzItjbDmp74b+qu1zmgM4Ykktn
njXJuiTIRFIcrSuot6xYc4Czc/u+YTcD9su/UrGH3qW2c6gm+pCUDy25HXCY
bgQ9MzwVCxcBb/f3v/89RCfDz6fkg33KX798+YL+vfBz/PxCv/7io+8vD74n
OzN0w99zi7n/+uWL4cXHj492eLFcHnx/ZF6Y8rsr/8mLl3+8kHjOlye6yD8d
W+TJezIz7pkhERYXvAvEGPQ+4wzoi+IuSr2YfuItU4+yPQCKrOkw+ZcVCQle
fwnhfZEAqJ/Sys4C3zGuZ84rgJAcQMnXfbepR2/5UyLXGawjmw1RDGs1H6CU
eAfCcuavsTQzt2YAk5XwJnU0I3gUjI+xKcu3+HuQfmrcE+lEK1LLB/M3W3Yp
e0wWfS0IEZLTzbOlebBvgf9FIIZ5ELaEfVFUY4MyNltHrYq/5cPs1LiaMor9
tuAD6pKDd51B8EF6LJzNHFxtsvvmDzJB2OMf9cDQlhaSx8TlJZGCRgyPOhVh
n4UWYuKDJWKpx/5dPFou3eqhk/WYJqBHtJGCEAgN7EiVL/wNq2xiGGIlXhx1
u4PpQvjxni0CLdeRHdwx9mQPFRx7R6xLm8XZFAUMBBUIWQB55KxBSGkK1pW3
Wp6AkwnI6+smIU1BVqqgLwluTEGLzZNJDnrQC0ShhjYCE3209H/6GytgGqpk
o64O+NBu8N5+vzx/vDy/oC7BHIyEkKGrjREzMpUzB1RA/dImIu5IXRFhYTNh
eYUIUHMv18Zdba4qmKlPXxRN4C6C9YZ6iEq0hPhjWwDRk6dU9y252VOmY7Vp
gD1mCfBWgLctCx6+WtGYAOr4XwEdPDRimgBtX2p4CF3PhqFEQ0+ZHFx8ORA/
cYFNGehZcxqCdquRuUIJtUWTwGCscgHdXYBpqq0y2T7utCydkJB1FfH6v2DC
cKjac3z80l/MlpAl7kBDMK3/iaA0befS/2VF/NbWAqRcAeeMCFFl90UGuFiT
U9SyY+WPbJjtknA5hIwUUFWkCLIFdw4YuIJMCfV32jp/C8PMyT04QhPiLbyK
8rt3yGKSWr9P1C8AbCJQnT6kZR5UAbEkPUzFV5ns9fLobEk2CPpoOIoUzD5h
onK3V0o0/tBG/UvXa9LzBmsxhj0UpEEgrtZ20bCHq+YtSMLLB9xTtV2eZECa
+7oTH4jGU45iP5fYURzqUcp/sIoMl2vGd7GBVA/DvPHQguNy4/gYUdPxUsBK
4PsauLxTiFQT7V/Wt6R9OA5qWgIhrqqtG0Vm8LmYMPAHCZhBytnF12ZaCyGy
Yds+cNrY01Yq3pGgVzlPw21qH0cUxd7nzSyaz6s/P4PuyKu7oqkrhI9JFkzl
tpxNXohQsi/NVlOnWHS9GB3rrd3CfzF6XjLwPo64lJSHP/Lg8AXbzoOfa/7+
8AUBT0dGiOHeDVP5wscw7NgPP4neuPx1b8ivr9O75hAsGlqkL5UYz5mv6LO8
yzCSdicadowj8ZMvNgsotSPD6k+8TsWboZGyN4d8Jus8QrGj6zyAqJcGUW3H
ImTKpo7tgRo7hqqE+dgJJC5EfIANcXA7GI9NkwcI0UHArGvyv9ZJu+WoLndy
xTY0hmIBTo71nerlsSlVgKms+HKkC2ajUJJgb8Agxlzg/YwAddarPbFAF7km
UVO2JBowbPIyv0MU0TCIdT2Ew8y7pk6KyVxC+PDDb8ti1Ajy4h0iXUnH5hlx
9b4B2BVHnFkBdUobpR5CwiTZZHk5lsSeMcCNI48hKUqLj61ruIfQC+bCnwmO
MVV9dC/ClHirI6voT8RSnkjc21YR9wAtOGETuByD30iN1m2uzONAIIOZiSEz
0b1iKE9NiV0uYUTOeKNHgcN4C0OQUjlSdK85GUnKBU68K8GiXpzTcp3gdhqG
488Lf/2BAGgAqSHCmYWunCR82AXuAvIXbEpUZ9DNBDyZpNSszwyQQ0lK4Nny
KB6mMdgGYCe2Dl1TbDaSTmFPhnXJ4BLElioZwvjiocwcPdo39YYQ80572IVX
eaWxAZRAnISdhgCAbCSPmCB4PZZeNkYTl3DBcdZEg/wWGUapYUEc8ADjtQMD
WQRWbTGkct1jHl2DxI6LiMPD01xRdjaOq1v0lBo3NQCB9cSlBWW+OJyLj9lR
4nQQyhXCU4NKUKsNGxDxxKCpvMEFITVrA5O35KAsklQTx8NB0dG6hK0sAfA2
xN7A3ioocXiVacuDzMY6eQSZxgJhdAsBUQNkUX5Y9cg4zzOLYhRjJW08gGCE
C5DyHCRR2dglbwLH3SeES0kki1KdKJZ5oDgBsk4MAVeHcEwgMX1mDLtCZq1h
Janpmcj5WwnYFWrNgpqOSO5z+cpSjppAjTM9DLIwUY7ztu6euVLicOxXcWgv
4TBalNQhE/+1uUmyI6MGvujavCRvvkD8H7YiySJdU4eoisqSG5OZIF0DLJ+s
O0XNG/OvzFD7tCR5zRb+KfMfa2YY+XYmeSobS4PebPY4WDCxM9izQpOK9wgs
Q81BNis3xCqDV2OjL/y3yq8ilNN02WzwEd3Uj9A4Nu3eeNGasUjVLUmhfGWr
lVvEYkztIrptRgaQ/JAX09y/xLgmfDApUPU1PeDwQpQEQ+6JX8Aa3YqUy8CA
jLm18Ov9+xknGBMta9LI1jYv9wSUwKpNbvH92AYTUQ23QwcMGtXYmf1Hgdsq
5eLRiJoawFhQclj6HAEbFpuxAXfjwaO3Yc/hvod8UdiYIa1kHbmE4yyhxXns
WpsFR4KGB4kM+GCWLZjm2CTwPAHk1hIWlGjTmD3mpJTWpaV0hkyTs+yvKtYa
1hlxyWRV3wWDS8o9LyVEF9FpUZNaZeYnliQbBMkMyWSY6xDs1mqRaU4Yjnq/
mgexH9d0xCDcmgzglONR6rTTWA6J7pDR13IfJaRNY3ZkEsJoXHUUqlC4fmfE
jrFStCgjonZBFhR3/5raEqVXJqLGWRfugkO87PD/kSPNHLYiig6BcHLeK6gu
JbF4tGwyG0vIPsxi8UoOS2kX7gknZT1HwpZq+lr/+oKcuNf4hu2SxdBCWA0R
AzTBf8vlwl2HmEzd5nH0zQw+BxYwf3Rzjfqk1yJ/p9ev3759eDgTA8jFMjQd
tIqyvyEMy3MVxmfJsI45oMNBnfityHWHl4nKZq7fvxnaiKf4yy/ksorX+Cm7
p8c9xchhDP73L9dEpovjHrR5tNevHy2pzT/V/4e88/EIlpC5sC059nnylXXP
a4/6mnz2I/KEyXES4cjn+CslLnGTD2kl9t1fX/JnDifYV4+WfjoEnv3X+POH
SPSriBSFBX5D6+ngH5lMtF4i+Gi9jx8frvfinxjin9qz38oXUSjkMwuFjBUT
Ww1VMRwA0bjeYNagb6hla6U8FWtaEm9YH86+sdxwChrDso/riFFYoTdk/EqJ
Y7LEEzxL39wXLSNxcIpWtnSclYsadjUUbOtE4hb+61Eqzj96zGwa6ScF7VI3
a/4JR/2dRnlCRDeAiSj/YBpeymS0s7rJxF8B/HX3iBeVaV+y4TXUaeFMUYLk
G6IS/sXIw594P1I8gJR+PirEEFwgE9/UQlvS7tevx+FcIi2cz8odPLgEbq9D
XEm0awqAJWtmS6TJRKyKbINzfy7e5LIhvBPBLyfvtCiTRvviyZCwY5jPZvrx
M/74uVQD1w7JBy5t6LkSJiKuDLzqizLr91o607dSs9toVZ1l7oOPyOEfZqCG
Ef0TpPxCDqaqV3X2YBW0VjGSjC015/g+f4xcy6X/0j/64gsOyhPYeJNcSV6M
AdY2KTlLmRM9MwHxReWOWFllV67Cimo3LJFt8CCrc3G7EQB38HH6PZtMywl8
uy3E2SYu6VAoHZJgeIvThiXtC2pSGelwPQZgWoTd6eNhLiKiujDAG3y5J6lI
uaIO3XMls9Z9OXA6H4MIaKrlFFJDSGTebhnSomzm9JsVgnzPi+fFjAvaVkQs
JB4JkXW5GwqptDZ8qPfScGk46oMu84JROAuC9OAz+LyNctqWuka0pkmyota6
MGN20Q5aY8SvRoNjrqBZ3bc0DxRIriWQSwhvK0hfH4WKSmFwqbiTslnlNQK6
Kam5pICTGLYUOWiXaayHfXGmQzvEwfRXdgrVS09Q5sUrw7eyVHY6UF9V4NiO
bIwkEjEzzuGjGA1FThJOiR5HZVfmSIaE8OvbW57GlnWdzEW6M5XFxWVw6Emp
syMOAkD4ZGJYFSe0/TohXsoriflawCtJU671Iz7xE6h7AMOlxDCoW8R6g6YW
xXn8Pc9RGHbvZsG9CqXpwPYcPViNA7XDS0yvKaYOcW6s3bFHldXq1kmppRbT
1VYUMqBkc0COBL0dTyUeiMM0g34/qBHhwOJB3JCDRxL5jsxarekF1obGThlS
Wxar0GBNC8XXSjwcYyN6Jt5jZ143awIUKnCxaGvHNVRbNrYxWZ32yL2JI4Oy
qatoj61Sl9rAEnIU4XYbaiAnYQieJJePayjCdJxEsXbFW6l+4WTxye4jo5yM
Zww9jCjPtBnc4UjrrMHGvN+R9HCoGZE1rJLeoe5Mk4r5z3rGJ+O6BTecy1GL
LeEcKSOuQjn5KOkizEralwSqzVmxSCBKnB56VnJGoo4DekpH2mQpx1tMcsVj
gprxYegRyn6Y21iupNCk5Yyp5W/dsQKZAP0SO4bgq8D43NWAocCYjsZlvs/T
ng8HSsLmwCpJbcYupOWjnQhC4pSkEriD5Er9xgFIMoO/QyU98iyh/M9Xn15Y
LIdnu084LjrIHk2XpxgHlUcbjyLBe4KCnRSQSl4d3Y6zRXqGBjWs6svjf7Ea
24Awx/m48Bo88KzuaY8zzWWz6RGKVNGuy1wZpAhXQn2LflirxoYeJA4m0855
xxWp18yOlKhRnEW2ICjAorpLSOFJ4C3u8rCSXsqENKVDr5Z1wvCqqMiUxwUP
rAXBzGoXs6JNLXqu1NONpx7XLKMcXCMebPrKim0O5d4bG1RtwN2kWKYRmaGq
NdTmvnv3zdOb9+/9aRSNPEOA1eKWnvAN/R7H6Uh9bDBw3URVRIbkOdbE/CUv
GsIO1T8Dq6h+442TqK7Vd030EOY/xLuNkyVnRFuYln3L4bFAAo2nHSHUgDq1
bFrduFCc7gSHhwMp8cvYh8nBCy68tVNWKifxGRJsH8es+ezqcMCC9aEYj+ea
N0vlYB5tg9MiYkFKiHLO43MvASbOxnhAM1LB8dRMtIuO5UhF73CaLTp9dKZc
M1HN8SkCCYKyPcUMD0/kRDOzMKWKRFQL5tRycJhfYPWr6/NXEAaStRAM5RRD
mB0xWpZDhmYDZ0rMnQ8fDafNcGqF2nEQkSaT59UAfRs9cQWycj1tdMwiye5w
WD4zJXtwOMskRkjYbpmtWVNoFSTMxczgkWIgx8PoYu26FCkbkdpnOx96eGoI
GCAcG2C0qac1h9N8UyMCTcxHO8WSjs4d4tiFeReMrcY3wYTjJWpCCAwIKo4O
/ByUtYFPJ+FkrXHHaauGxEVOt0pZqFJGivcmLuzpoIBZ/tqzmcNXEnlWsLuF
3WHBkY6CtVuEw+7q1AdrPtTJYck4vQJVK4kpknVSALS7d4hyJ+qyDr7h1YEa
il423tL+ReMZEflQDDjDjo8dJnfj2pb7g6M3ArkFTB1CYy4iGadRPNKErD5k
xnwDT78LnGJbhor8Q1Zj4gx1GPbS0cOhtOlPEaOQAPwgWnrMLzozd+iwiLvO
1n1HuMLtcbAE1aF3SVMkKucC1BW3aUZGDseFfL2Wl2iuA1gRhhavFRJNgtqE
WuLSU5rS0RuHxOiTetLCYOIHyY7SSjd6egGHuZEebeuy5wnJEWpkW2RmLMWv
LHTQHhPkyOOibkAAWH7yiJsmHywbojtcahIdc2NvZ9iXoJDV/9KSz9j7UjYJ
gTZgZFIFD+qgwqNxBWdKo8SX0IuRMbK/ZBc1WHYQutPdiVNbSrX5QWKJJKtn
0LMSwVoXDPW6RE5r2xnNfh/KNPN9WT9AY7jRLVLqqJGQ8iF2PcPq7YiPnofE
Ln2UcbmiaIKIZsF0JxzMmGstygdEhLPptcTh4g1kXynaRD4MNN42F9BxdbB1
g886SbCru8rmV6kg3nTRDeRVv/XnvuAC/yAAQbgikUTOu8CB4VBOgYjGgX0U
hWTVGE2e+0miVOprpWiKyHUhMc0j5J8sSMpnNTnOxJ55rtdWHYdvHCrdWIFP
av5GSERXHcWagdQgyOA4q+4Yr2shlVbDDHLZ+xG72Cll4AlUbEvB9mmxjkuA
sqF627iXsSGwm6kKMmGh4Jt+w4VXegT83TvcVsXFtpeBclxSpZeajIPdHLfY
RYH2XbKpig7Ts/wnnBzspFhf1npCDvEsJzSPFixxXA2yynEGnIxHdR5K3btf
MbdpGoD95MXFcrmzGnbu5mPz0RMfHJuNC61Cvbztdl2ti01PSMhNR71YcuE5
vXzJv7FjIqcwZ+OWG3LayHOz5RQ7rd5JVnB3h6M6axKUQNqEU99x6Z3RISaP
1SC5qX7Qtqhb2UuBN2Iutc4cKWX32eKIwSy0+gZ4Yq8QHr/sDNUNiXX0yscG
VbE6jBQOeIbCOcNMVXS0TKQN3gNtfYYDYgnfloCTRg8cwxfkOsQfnoRiq5rw
MNfWq4ccLUvpyM75ZHiO8uabf3UXv2NgutKZDIc1OHf+uzDF4YE6OVJTL1WA
dpJk4b6ucg1S7/YG6HgP5K4U1Y52jwN7M78JwbhgBr56NReN3A390Zu6OUx2
FsNUjhebdbb1sC3K224u77qIQ7565UPPrDTjDUcUnGMjlWjvOkO4uNzVbafK
kZZfN+7mFYdbVminY+ptAs+kQDBBHGsvzpOLzymMxLvtVz9pJcOIFqnUsHDU
RQOZHFiZxHNWfFqWdV4yoG6/999/B+XwAys/Z62sKjiOF40KluzcWqPDROf0
3d5iptGxV7BJQ3038KAAmnc4pbLSemKhMLzdNgiipp4Y5HBHcidHTBRdB3PP
xfmj5Yz+/T3/+5j/xYEyyZG1wxm+07WVsrKiOGMEM/NRmTR8XT5HiHt/hNZt
bN0sHCdW2R1RFbFJHuVWBUrkpUJqSV5CLTy7efXCu1OETWmFHDG+QfUg8oSv
8NILQLYzJnjeMaBkO6Q8nkWdhsCAG5J/CH8NuIkTL9Rx7JNu7eA/7djkUUJM
ummRN0DuhcauWIjlcpcQwBVfcr99aHFRiKwUCD3Ryqk41+g4iRHCUFZ4z2GJ
yfU/IQ4pTCQFhVa09AFsCEsV9hsfsIFy8mbACnY+ajjv1QoAmEIVhxABsmpi
D1myj2RcCnOppThBGMouYtKD2Y4nE/x6PTrO5yW5hMgOhiXhvOJw0UBylxSl
nN8r4OSChLJLEq9LyiZPMomodhx45KtceUnRNQy8S3eF3EIopU9CgcmFHyGh
F9gHk7rXonNclaDOA7AOPzc5DQJv9aFYNOSPJ2ZlfxLql3uR4lo88SAkDpjf
FZzJIDewrlv28ImrGf+2YjPWhUQkCpxHFJhzvucLrhDBQh24UpTz90HGrT8p
SA1yobz/IZrHkyvGfbRyVUQkW4ODe7wTLvTd1nw/k/A5169pdwtOUaHa722Q
gkfjk4NSHkfIjcOoUaGBHF/zjtQTTU+DLUAtcqRjV2d9WUtvelSd6zGFMMwK
OwJXI4/BSZwx1LSdn4eQ1RDfkHftEg9bJ2+ZvvPtSHGOdEysMrk5/0Ndp7Sz
pB9+5N5/pN7ROT/kEOmak4Q0xo+IXWmRkr1WVKfhNZ7Ud8X6hxk/PrP+1+RS
fYeCQhDkB3krHWYwWinLf1zUE+0IPn93+YO9ZERZs8cWaDJywbhtvW47ZP33
NPTyH6wLbf2nX8qQP8p+0pL2P2Bd/M56r02lw2KtH7lPdGkrDQVpRoJC136K
Tyk6/O70tPgUQ56BZ3ixZ59e/DAb3jj7AJ0GThKkzKNW6WCAvvssEMrkZUQo
fghMxt8aYewL7O38gr/ifQ6CLzdnonCG5nqu2zhaembkgcJoquzHNv/5tJhl
Z/q92NbRqNLDT+hhST2cVun84iyQ7w21O6XePqUW/+KzgVT0zcVwwe860PnN
D/6/fBmWEh0XPDo0PyC9/iZ8zsv2g29h+4ZxZtHDs8AW0ZejbgKtP/oc5C6K
uE7vc6vTO3IL4RTOJ+WmJmdvu5OrncksoITPO64s/px8S4I8HAsMeGnV9F0+
p9ZkYPdt3mc17sSWewELO+6LyTm9/c4MKGmSxjJ7Eu+3JD/gYCHxTeeUWt9H
GoDd6KLjayGkJuB7kms1aZGVGEu2O5U6X2T6SMuffVRXTCIx8YEMF8v29yzc
34t0i4ohs0KYN+USc1bnGrGB1m9lknJACTBnyxcWxWdU7FZ4kc5CnL8Iw6w5
Ie846jvc5UFfc7iPawDCSHwelfshRUHsXp/53wXWxwGO70nM5R27Oy9v7R4J
WzMHIjMjjC4SG7pwVRotWm1pULZJfNZVXBA+pIMj9OFWnYjmC5N239ACa2Dm
NtJTOoLcV8AwRkILjjs1XyaVc2O4jgP8YbOBO9PuGz5U3w/zClc9cIlSOFin
15DOdCSTiEKcK+Z68lebVJyQEbWEx91xLvowgEelBHWOcoK2y/dOzk2FrKDs
QWLRyJDJY0+zUHQfFUfiZr4BCfNkEFryX59iHrjurtueDd3M9HyrYEFZGrtN
Cmuw2dLLvMVBQ1kxzevrUyC97sxuLeFPfNrCKurFCUA0z5EO0ahefLGqRE0O
gU0Rn4PxW9o5JMcxCqfhNdKVRPE3F1/gSvy85kwIl8rMNcI/GmLhn2FsQ7uy
vmF4Fw2Pne/4+mU4VaG+GFV6Ag1Z05zypRwcXGCFPj6AQj22+YZv0cZsMMjp
zeuzKAcs/eqQxAZS+dW3zEjqOYwJomcrQltgTeHScFXWzcvnMg9ULQbt1uSR
A6AHifRoJWriEAfhFyv8N1yQlYZyCYO2C3893DtJG/Dy1d3vRX9dXH4BPevQ
AY/QaDFqqB7AvUm4zcHiR9O0k+HsYwmGo9c6Bs+SnTocT0X6jDaKkzQce7Wz
ziPZC5VQ41PUQ8APcxc9poV2IajhENTQw32IbHDsgMMZch7QcjC0EquQLFQP
at1slHhwlg4m/UW6a+TgRy6JqrRxtnVXFw3H1shPcJZulSwptIpV+6rH6RwH
siGPUmoRLZyjFk/0ih8ZSy3nky8/l3Pjhw64qTZFkxBsdr4ihzxUREg1QpWL
7Vr7z4NtqUS1DPVW4RibxuCtaJuFSjnF8vdcykfdWvUQ1/+x3hWFt/B/yrnm
4NgCSDd7ua2R110zR/YVcEMUp3RHtkTnPpe4nZSzhoopvW0X6gNaP95Sx2lU
0Y9IcDi3KZ++MGfQYngoy8MkorqCOGAR4DrnMQdTRZ6uXFYC8pu2RJDfLpbB
NnChpKg9ScONbsCMKifCabdifOZ3KDkgNdzjtmALTYQIx+gmCSe15sjhKjuL
ChERYf+fqW/35kmNstBM1HTS6UM+a+eEPeSOB7uSiqtUD2tYjDTE/F9hlTTL
kkuBQXuJ8rlRzoRPn4xZZQh5y8Fvo/ukbMBpbKiJjlqHI9ac4iUdDm6WwHtn
acfhviO5iZbYNyRe5ZZfuY71g2uDXD9VtcDL0rPRoYorTJs+aBxS2HemqiKy
D7hoND6eKwdyE80SmdrRhFCUhcfx/kTDSlz8Y/eJMojhruwgYRJVnCgIDbVt
PP8hSek0SakCgRvdQi2onRsOsySh4tclL24mInqVB9Y3JMLDKzBhO8XWc/nE
HoUWuRsZ3aG2SWxjG67UNIBzZrdi2c4DFfZ7p+dfYJX0DMGI3Y+fe+VFWM8L
OW8MfYd6C62Hkskzpsrim+e1GoB1olwe+WJ6z7SUZ51PL8TPmxPn+JJNjwL0
OzuXFa65JEyRkVaUOJakq0gzZ6L+3XAH6C5PqsEZaG1AoY+eAve4HVjux4hq
9F2U6Za0/R53JXBt4MP4PvIPXjowXKpqOcnofvHZ+Ej5QfJ5FjLPODaCQfUy
V0lrroYyvg9dFx/SjQsjJpdiWPhvWM+QrvzIeWbDpNM7JFCAcXxbCy06HJVD
ao7UJoFjWYK/XFR5Y/WJ5MlL0aodHrc+eFM0uajvEwKPLYgi/6nyHP91NCsX
dC7cpzTw4En09oEa1z/KQE25LFP/vkBYgJojBNCT0YXgcUXQ0RMZk0sBtJLH
jdXe1Clk+ZZafXlN/zzDLfN8NGs9P04Sh+u9R2ac2fojJTlE0JMXbLMDMMUB
k99ML65jHa4XGt8ArmWEpIbjKmstxFpDL45WSOs4UFrDZdaRpEi+3X24tCK+
8T6q/hxf8BsyfGpQQAwtzaHxUU+EM5XsnQZPibH2Kjc/8aBCF46Bxs5P/h2F
davo+vCPUPggYBbunOPbEFCr3rctru5iCKauL/8uWkXd6OFu/bA4vQMF1xLu
EJYJ+YXJUSEX7scKTdvQVl1mZVgjfHS1QLUucWmp+b9TrBdtjfUR3U6lobCj
Ih7XfYB2m8ZuBgGbHxq50e3f8R9FCIAh/AmHUHrBp0k3Ff9BhaqbOblYxSom
pYhaZI1TnVxhghdisx7+UkxUWmaeU3yDkIuvCx7wxLTS0LKsB/gMgTj5My/W
JOrdWUZVCi9ouG2x95ED5/dbdm4mhY4Hw8fKK+qf9ugUf0RDvTsE/dz/ASQg
An3wcgAA

-->

</rfc>

