<?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.1 (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-01" 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="2024" month="January" 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>
<section anchor="changelog"><name>Changelog</name>

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

<t>01 refresh/no textual changes - waiting for progress in design discussion</t>

<t>00 initial version</t>

</section>


  </middle>

  <back>


    <references title='Normative References' anchor="sec-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' anchor="sec-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>
      <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="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="7" month="July" 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-04"/>
   
</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 Friedrichshafen AG</organization>
      </author>
      <date day="7" month="July" 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-01"/>
   
</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/EPN58sLd0/rf359+9X1rUtp
Apu6ebii5axrV+ybK981fdtdLpePl5eu7Zo82V35l9e3Lxx9oon+mJR1RcM9
5K3bF1fOe9/VqXyW37N8322v/CN8bOuGuli34Xn7sBt9TuvdLq86/cIlfbet
G/Q6x1P8yOpua6yhbf01L9Ae1g0t5kXf9U1+nxf+Nk+3VV3Wm4Ko/s3NE2uG
deTdlb+8vFz6ZzReQxtx/XbfUI/3yYM1S4uOSHGTVLR1z2hDkvCgzmgOz574
x4+Wj5bDtz31RG9EI+W7pCiJiF3+39N2sU76RZY7V9XNLumKuxwre/3i2eXl
xcWVdw5Uj548u/nrCyL2/Pki3eaVbWLbzFdJm2fzFY2X0f/KNvTC7TN7Ybzv
Xfrzmh5v/vz06ONNuVo7ev7N0xveQK9y8A2xIHU8f4rh/A1NIutLYkew922x
y+c3edUWmK2/IZ7Gc3/dbfMGDK9iw7vq27yhLcDyrpQyL6+vr2kDviBJuO6b
elekTe2f1dU6b2jM3NeVf50n5Rzj+JuHtst3rT+9fvb69uaMuyCBoileLi9+
zx8HTsFP4BZiZOKlf1v4mz3xQuAT5aJ/q7dJBYkcPZ28fEMvJ7uimLx7U2/z
otRHoB5W9MXycnHx1xERT/C9v4GsJE3GtPtzTbqBpfwvedfU+7os6LF/QsJl
ZPP/+3/+L/+0KbINzQ4t5fcskNWfar+Zl0HPTo7QgeWBG3Ij/60qsj82db8f
k/GLD2xUVhdX/mK5uLhYPj4v8jxvu2yB9osvPl9+9vjyD7JYqCuSqG3X7dur
83N6a0GDn3/0xRHRVne/nmy7mGwJyFYZWebzj5Nt7p+QgsmgZPzloyt/XREL
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

-->

</rfc>

