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


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

]>

<?rfc comments="yes"?>

<rfc ipr="trust200902" docName="draft-eckert-detnet-flow-interleaving-02" 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="July" day="07"/>

    
    <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>02 refresh/no textual changes - waiting for progress in design discussion</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="5" month="July" year="2024"/>
      <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-06"/>
   
</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>Sympotech</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="5" month="July" year="2024"/>
      <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-03"/>
   
</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:
H4sIADj6imYAA+19624cR5bm/3iKAI0GyHFVsUhb3RZ3vbu6UN0adNtqkR5j
YRtGVmZWVVpZmeW8kGLLasxD7BPuk8z5ziUyMqukthuzWCyw/CGxKiPjcuJc
vnOJ4Hw+d2mdFdXmyvfdev6Fc13RlfmVf553ebMrqqLtitR/lXf3dfOG2vlT
ekIfz/zzpEv8qzKpcj/3L8r63hcVvVPmyR3arevGt2lS4vcs76q88xne2OON
1t8X3daj/11S+rzK5l09p/98mXR5lT74hH9vNrmv+t0qb3y99msapF24ZLVq
8rsr7XWOb+fx0C6r0yrZ0SKyJll38zx9kzfd/EPN58tLd0/rf359+9X1rUtp
Apu6ebii5axrV+ybK981fdtdLpePqWnbNXmyu/Ivr29fOPpEE/0xKeuKhnvI
W7cvrpz3vqtT+Sy/Z/m+2175R/jY1g11sW7D8/ZhN/qc1rtdXnX6hUv6bls3
6HWOp/iR1d3WWEPb+mteoD2sG1rMi77rm/w+L/xtnm6ruqw3BVH9m5sn1gzr
yLsrf3l5ufTPaLyGNuL67b6hHu+TB2uWFh2R4iapaOue0YYk4UGd0RyePfGP
Hy0fLYdve+qJ3ohGyndJURIRu/x/pO1infSLLHeuqptd0hV3OVb2+sWzy8uL
iyvvHKgePXl289cXROz580W6zSvbxLaZr5I2z+YrGi+j/5Vt6IXbZ/bCeN+7
9Oc1Pd78+enRx5tytXb0/JunN7yBXuXgG2JB6nj+FMP5G5pE1pfEjmDv22KX
z2/yqi0wW39DPI3n/rrb5g0YXsWGd9W3eUNbgOVdKWVeXl9f0wZ8QZJw3Tf1
rkib2j+rq3Xe0Ji5ryv/Ok/KOcbxNw9tl+9af3r97PXtzRl3QQJFU7xcXvye
Pw6cgp/ALcTIxEv/uvA3e+KFwCfKRf9ab5MKEjl6Onn5hl5OdkUxefem3uZF
qY9APazoi+Xl4uKvIyKe4Ht/A1lJmoxp9+eadANL+V/yrqn3dVnQY/+EhMvI
5v/3v/8v/7Qpsg3NDi3l9yyQ1Z9qv5mXQc9OjtCB5YEbciP/rSqyPzZ1vx+T
8YsPbFRWF1f+Yrm4uFg+Pi/yPG+7bIH2iy8+X372+PIPslioK5Kobdft26vz
c3prQYOff/TFEdFWd7+ebLuYbAnIVhlZ5vOPk23un5CCyaBk/OWjK39dEQuk
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

-->

</rfc>

