QOS, or Quality of Service, is a feature of most managed network switches which allows you to prioritize some network traffic over other traffic. In Dante and AES67 networks, we use QOS to ensure that clock and audio traffic is treated deferentially compared to any other traffic on the network. Audio networks rely on packets arriving reliably, in order, and in at regular intervals. Enabling QOS on a switch ensures that this happens to the best of the network's ability.
How QOS Works
On a switch without QOS enabled, frames received by the switch from a source device get deposited into a receive queue to be processed. As the receive queue gets emptied by the switch frame-by-frame, the switch checks its MAC Address or IGMP Snooping table to find which device(s) the frame is intended for based on its destination address. The switch then takes the frame, places it into a transmit queue for the destination device(s), and one by one it forwards (sends) the frames to the destination device. These queues are required because only one frame can be sent or received at one time.
On a switch with QOS enabled, the switch will prioritize traffic according to the rules you configure--that is, the switch will forward prioritized frames faster than other frames. It does this by setting up multiple transmit queues for each port. Higher priority traffic is placed into higher priority queues, and the higher priority queues are emptied (sent) before lower priority queues. Switches can use different algorithms to do this; we prefer Strict Priority, which ensures that high priority traffic is always sent as quickly as possible.
DSCP Values
There are multiple ways to indicate which traffic should be prioritized, but audio over IP systems typically use the DSCP (Differentiated Services Code Point) value in the IP packet header to set the priority level. Each source of traffic will include the correct priority level in this field, and we configure the switch to trust the incoming values are valid and accurate. We then map specific DSCP values to specific queues in the order we want. Most switches support either four or eight queues, and we place clock traffic into the highest queue, audio traffic into the second highest queue, video traffic into the third highest queue, and all other traffic into the lowest priority queue. This system only works in environments where we trust the sending equipment to set the correct values, and not just mark ALL of its traffic as highest priority.
The DSCP values commonly used in audio networks are:
- DSCP56 (CS7)
- Dante clock traffic
- AES67 clock traffic from a Dante device running Dante firmware 3.x
- DSCP46 (EF, or Expedited Forwarding)
- Dante audio traffic (unicast and multicast)
- AES67 audio traffic from a Dante device running Dante firmware 3.x
- AES67 clock traffic from a Dante device running Dante firmware 4.x*
- AES67 clock traffic from most AES67 standard-compliant devices.
- DSCP34 (AF41)
- AES67 audio traffic from a Dante device running Dante firmware 4.x*
- AES67 audio traffic from most AES67 standard-compliant devices.
* Shure firmware which adds DDM support contains Dante firmware 4.x and use these DSCP Values. Shure devices without DDM support use Dante firmware 3.x and use the Dante 3.x set of DSCP values.
Audinate publishes their list of QOS parameters in their article
How does Dante use DSCP / Diffserv priority values when configuring QoS.