Forward Queuing for Time-Sensitive Streams (FQTSS)

Milan AVB utilizes FQTSS to shape traffic. The approach is explained in detail below.

Switch ports are described based on the traffic direction for the current observation.

  • An ingress port describes traffic flowing into a switch.
  • An egress port describes traffic flowing out of a switch.
Info

The following examples refer to the following setup: All three streams that enter at three different ports of a switch are forwarded to the remaining port.

Example Routing of 3 Streams Example Routing of 3 Streams
Fig. 1: Example Routing of 3 Streams

Strict Priority Forwarding

The following figure shows all three streams from their respective ingress port forwarded to the egress port considering Strict Priority Scheduling only. The packets are forwarded according to their priority immediately.

  • AV packets: packets have a high priority.
  • Best-Effort: packets have low priority.

Considering strict priority forwarding only leads to time-critical packets being forwarded always first when the forwarding algorithm would have the choice between a time-critical and a Best-Effort packet.

This results in a blocking delay on lower-priority packets whenever high-priority packets are prioritized.

Due to the fact, that without traffic shaping, packets that ingress the switch almost simultaneously will be forwarded immediately, the combined resulting stream will have a bursty temporal structure.

Strict priority packet forwarding Strict priority packet forwarding
Fig. 2: Strict Priority Packet Forwarding

Credit-based Forwarding

Using the Credit-based Shaper additionally to Strict Priority Scheduling as shown in Fig. 1, can on one hand shape the resulting traffic stream into a uniformly distributed stream and on the other hand increase fairness towards lower priority traffic.

The core idea behind the Credit-based Shaper is simple:

Each priority level has a credit counter.

  • It decreases when packets are being transmitted.
  • This counter builds up when packets are waiting to be sent.

As soon as there is an opportunity to send data and the credit for a particular priority level is above zero, packets of that priority can be transmitted.

This approach spreads packet transmissions more evenly over time, reducing burstiness and smoothing traffic flow. Simultaneously lower priority traffic has the opportunity to be forwarded in the resulting gaps, when higher priority packet transmission is temporally not allowed due to a credit value lower than 0. In practice, the rate at which credit decreases (sendSlope) and increases (idleSlope) is calculated based on the amount of bandwidth that is reserved.

Credit-based packet forwarding Credit-based packet forwarding
Fig. 3: Credit-Based Packet Forwarding