Developer FAQ

1   Overview

1.1   What is AVB?

Audio Video Bridging is a term for a collection of IEEE Standards for time sensitive networking which facilitates the transport of high performance audio and video on a LAN:

1.2   How is media transported with AVB?

IEEE Std 1722-2011 builds on the following standards for media packetization:

1.3   What are the minimum requirements for an AVB switch?

An AVB Switch is required to support:

  • IEEE Std. 802.1Q-2011 FQTSS and SRP.
  • IEEE Std. 802.1AS-2011 on each AVB enabled ethernet port

1.4   What are the minimum requirements for an AVB device?

An AVB Device that is both an AVDECC Talker and AVDECC Listener is required to support:

  • IEEE Std. 802.1Q-2011 FQTSS and SRP.
  • IEEE Std. 802.1AS-2011 on each AVB enabled ethernet port
  • IEEE Std. 1722.1-2013

1.5   What are 802.1Qav and 802.1Qat?

802.1Qav and 802.1Qat are two of the amendments to IEEE Std 802.1Q-2005 that were rolled into IEEE Std 802.1Q-2011.

  • What was known as 802.1Qav is now known as IEEE Std 802.1Q-2011 Clause 34, "Forwarding and Queuing for time-sensitive streams".
  • What was known as 802.1Qat is now known as IEEE Std 802.1Q-2011 Clause 35, "Stream Reservation Protocol".

1.6   Someone said that an AVB endpoint does not have to support Qav, Qat - the AVB switch can take care of it

That is incorrect. All end points are required to implement 802.1AS-2011, 802.1Qav AND 802.1Qat. This is all defined in IEEE Std 802.1BA-2011.

Specifically see the PICS requirements for talkers defined in IEEE Std 802.1BA-2011 Clause 7.4.7,"Common requirements - Talker end stations" where it shows in Clause 7.4.7.1 the item "T-AS" requires 802.1AS, "T-SRP" requires 802.1Qat, and item "T-FQ" which requires forwarding and queuing of time sensitive streams (FQTSS) aka 802.1Qav. Further details of these requirements are in 7.4.7.2, and 7.4.7.3.

1.7   What is the difference between PTP, PTPv2, gPTP, 802.1AS and IEEE 1588?

  • IEEE Std 1588-2008 defines the PTPv2 (Precision Time Protocol Version 2) framework and is also known as PTPv2.
  • IEEE Std 802.1AS-2011 defines a specific profile of IEEE 1588-2008 with additional timing features which greatly improve timing accuracy and lock time. This is called gPTP (Generalized Precision Time Protocol).

1.8   Can an AVB device just use IEEE 1588v2 (PTP) instead of 802.1AS?

No, IEEE 802.1AS is required to maintain the required synchronization compatibility and accuracy.

1.9   My device's ethernet port says it supports IEEE 1588. Can it do AVB?

IEEE 1588v2 is a framework for time synchronization.

Profiles of 1588v2 are not necessarily compatible or even require the same hardware.

For instance, once profile of IEEE 1588v2 is used for synchronization of Cellular Telephone towers and that profile has very different hardware and protocol requirements compared to the default 1588v2 profile seen in generic switches, and is different again compared to the profile used in industrial switches.

So there is no clear definition of what “1588-2008 capable hardware” means. I have seen one ethernet chip that says that but only timestamps incoming packets, not outgoing packets.

802.1AS has no options like that. If your device supports 802.1AS then it will provide AVB quality synchronization better than the default 1588v2 profile. You need to have the support in the ethernet hardware to provide timestamps of specific types of both incoming and outgoing packets. These timestamps need to represent the time that the packet hit the wire. Many ethernet hardware systems provide timestamps instead at the MAC level which means your software needs to compensate for the PHY latencies for your specific PHY. The PHY latencies are typically different for 100baseT and GigE and different for TX and RX.

802.1AS needs timestamping of Pdelay, PdelayFollowUp, PdelayRequest, PdelayRequestFollowUp, Sync, and FollowUp messages for both directions.

1.10   Can FQTSS be implemented in pure software?

IEEE Std 802.1Q-2011 Clause 34, "Forwarding and Queuing for time-sensitive streams (FQTSS)" is important to implement on Talkers. For devices that need to transmit many streams at the same time, you really want hardware support in the ethernet interface to assist in scheduling the time-sensitive packets for transmission.

If you have only one stream, it is typically feasible to implement FQTSS in software - Specifically for a class A stream you need to send one packet every 125 microseconds and no faster. You can do this on a CPU with a high frequency timer interrupt.

But if you were needing to provide 4 streams simultaneously, then it is much harder to do in software as you then need to send a time sensitive stream packet every 31 microseconds (and no sooner).

Since this can be expensive and inefficient to implement in software so ideally you want an Ethernet interface like the intel i210 ( with the driver at https://github.com/intel-ethernet/Open-AVB/tree/master/kmod/igb ) or the equivalent Broadcom ethernet chip which the Apple Mac OS X uses.

The priority queues are needed for the traffic shaping as defined by IEEE 802.1Q Clause 34 (also known as IEEE 802.1Qav). Media packets have to be properly traffic shaped and need higher priority than non media packets. Ideally you need 4 separate Queues in each direction, in priority order:

  • Highest Priority: #1 802.1AS messages
  • Next Priortity : #2 IEEE 1722 media packet messages
  • Next Priority : #3 IEEE 802.1Qat (SRP) stream reservation messages
  • Lowest priority : #4 all other control messages (IEEE 1722.1, MAAP) and IPv4 and IPv6.

1.11   How many AVB streams of audio can you have on an entire network?

The maximum number of streams on an AVB network depends on the streams properties.

  • If the streams properties are not packable, there can be 318 streams on a network - each with 1 or more channels of audio.
  • If each talker device provides streams with stream properties that are packable, there can be 318 talkers on a network each with as many streams as they can fit on their links.
  • If all the stream properties across the entire network are packable, there can be much more than 318 talkers on a network.

1.12   What makes stream properties packable?

A stream has the following properties:

  • Stream ID
  • Destination MAC Address
  • Stream Class
  • Bandwidth
  • MSRP Accumulated Latency

In order for two streams to be "Packable," the two streams are required to have the same Stream Class, Bandwidth, MSRP Accumulated Latency. The two streams must have consecutive Stream ID's and Destination MAC addresses.

A Talker that provides multiple streams of the same size would typically automatically have packable stream properties.

In order to have packable streams from multiple talkers on the network the AVDECC Controller is required to use the SET_STREAM_INFO command to manually set the Stream ID and Destination MAC address for each talker stream source.

1.13   What additional work is being done for AVB standardization?

The IEEE 1722 working group has completed work on a new version of IEEE 1722 called IEEE Std 1722-2016. It includes support for additional control and streaming formats:

  • AVTP Audio Format (allowing for more flexibility of bit widths, samples per packet, and channel counts.
  • Compressed Video Format (allowing for H.264, MJPEG, and JPEG2000 formats)
  • AVTP Control Format (allowing for real time transport of FlexRay™, CAN FD, LIN®, and MOST® messages as well as serial, parallel, sensor data, vendor specific data, and AVDECC AECPDU messages)
  • Clock Reference Format (for transporting arbitrary clocks including video vertical and horizontal sync clocks)
  • SDI Video Format (for transporting high definition uncompressed video via SMPTE Serial Digital Interface )
  • Raw Video Format (for transporting generic video frame buffers)
  • ECC Elliptic Curve Encryption and Signing of control messages
  • AES Encryption of control messages and stream data.
  • IPv4 and IPv6 support for the transport of IEEE 1722 streaming data and control messages.

You can purchase a copy of the IEEE 1722-2016 standard from the IEEE Standards Store - 1722-2016.

AVB Glossary

Audio Channel

One monophonic audio signal

Audio Cluster

A group of audio channels in a stream.

Examples:

  • A single channel of audio
  • A single S/PDIF or AES3 connection which may contain a stereo audio signal with meta-data or an encoded 5.1 surround-sound audio.

Audio Map

A static mapping between an audio Stream’s channels and an Audio Cluster’s channels for Streams and Stream Ports.

Example: The Audio Map allows you to select which Audio Channels within which Audio Clusters in a Stream will be processed. For instance, an Audio Map could select: The “Third Channel” from the second 8 audio channel stream by choosing Channel 0 from Cluster 3 from the second audio stream

Audio Unit

Contains Signal processing for a single Audio Clock Domain.

Example:

  • If a device had the capability of doing processing in multiple clock domains at the same time, the processing for each clock domain would be done within a separate Audio Unit.

AVB Interface

An AVB capable network interface capable of sourcing or sinking Streams and participating in an AVB domain.

AVDECC

The Acronym used to refer to IEEE Std 1722.1-2013 (Audio Video Discovery Enumeration Connection and Control)

AVDECC Entity

A logical object within an End Station that can accept and respond to AVDECC messages.

Example:

  • A device may contain more than one AVDECC Entity. Typically, an AVB device will only contain one AVDECC Entity. As far as the AVDECC Controller is concerned, two entities on one device is indistinguishable from two devices with one entity each. One use case for having two AVDECC Entities in one device is to partition it - allow one user to use one portion of a device while allowing another user on the network to change settings on another portion of the same device but not allowing the two users to affect each other’s settings.

Descriptor

A machine-readable description of an object within the AVDECC Entity data Model (AEM). Each descriptor has a Descriptor Type and a Descriptor Index.

Example:

  • An AVB_INTERFACE Descriptor describes an AVB Interface. A JACK_INPUT descriptor describes an Input Jack. There are descriptors for every user-relevant aspect of the device. A controller program can ask a device for these descriptors to learn about the capabilities of the device to present to the user.

Entity ID

The EUI-64 identifier (IEEE-defined 64-bit Extended Unique Identifier) of an AVDECC Entity. The Entity ID is based on the device’s ethernet port’s MAC address, the value of the top bits of which are purchased by a manufacturer from IEEE. The Entity ID for a specific device is a globally unique number.

Entity Model ID

The EUI-64 identifier of an AVDECC Entity data Model (AEM). This is a unique number that the manufacturer assigns to device every time a new version of the entity model / object layout / processing structure changes.

Example:

  • If a controller sees two devices on the network with the same Entity Model ID, then it will know that these two devices have identical capabilities and processing structure without having to interrogate both of the devices.

Input Stream

A Stream that is received by an AVB Listener.

Jack

An ingress or egress point of a non-media-stream signal to or from an AVDECC Entity.

Example:

  • Typically, a Jack represents a physical connector on a device. A Jack may also be called “Captive” if the logical connector is internal only such as a connection to an amplifier for an embedded speaker driver.

Localized Description

A textual description of an object within the AVDECC Entity data Model (AEM) which can be represented in multiple languages. These descriptions are only set by the manufacturer of a device and the user can not change them.

Example:

  • An Input Jack may have a Localized Description which would contain the equivalent to the text that is printed on the Silk Screen on the chassis for the jack. Since manufacturers may have different silkscreens for different markets, the data model can contain the multiple languages as well.

Matrix

A collection of orthogonal Controls arranged in a two dimensional array.

Examples:

  • 8 Audio Channel signals are sent to an 8x16 Matrix. The Matrix contains 128 “level” control points (represented in decibels), one for each combination of 8 inputs and 16 outputs. The Matrix mixes each input to each output based on the cross point level and outputs 16 Audio Channel signals.
  • 32 Audio Channel signals are sent to an 32x32 Matrix. The Matrix contains 1024 control points, each with a “level” value (represented in decibels) and “delay” value (represented in seconds), one for each combination of 32 inputs and 32 outputs. The Matrix mixes and delays each input to each output and outputs 32 Audio Channel Signals.

Mixer

A Control that combines multiple signals into a single output signal.

Example:

  • 8 Audio Channel signals are sent to a Mixer. The Mixer contains one “level” control point per input (represented in decibels). The 8 inputs are mixed with the appropriate levels and outputs one Audio Channel signal.

Media component

Fundamental data within an IEEE Std 1722 stream payload.

Examples:

  • A single channel of audio
  • A single S/PDIF or AES3 connection containing stereo audio and meta data
  • A single S/PDIF or AES3 connection containing encoded 5.1 audio
  • MPEG video

Object Name

A 64 character UTF8 name of an object which the user may be able to set, if the device allows it.

Example:

  • Almost all objects (Descriptors) can have a user settable name. The most likely objects to have user settable names are the device (Entity), Stream Inputs, Stream Outputs, Input Jacks, and Output Jacks.

Port

An ingress or egress point of a signal for a Unit (one clock domain).

Example:

  • There are Audio Ports, Video Ports, and Sensor Ports, which correspond to processing done in Audio Units, Video Units, and Sensor Units.

Sub-Signal, Signal, Multi-channel Signal

'part of' or 'one or more media components'.

Examples:

  • Video portion from MPEG Video data
  • Audio from an MPEG Video data
  • Closed captioning from MPEG Video data
  • A single S/PDIF or AES3 connection.
  • A single audio channel

Signal Selector

A Control for switchable signal routing.

Example:

  • A Signal Selector would be used to select audio coming from an analog input jack signal, a digital input jack signal, or an audio channel signal from an AVB stream. Only one source may be selected at a time.

Signal Splitter

A Control for splitting a signal into multiple sub-signals.

Examples:

  • A Signal Splitter would be used to extract the 6 individual Audio Channels from an encoded 5.1 encoded S/PDIF signal. In this case, there would be one S/PDIF signal going into the Signal Splitter, and there would be 6 single audio channel signals coming out of the signal splitter.
  • A Signal Splitter would be used to extract the video media component and the audio media component from an MPEG transport stream. In this case there would be one MPEG video signal going into the Signal Splitter, and there would be one video signal and one MP3 encoded audio stream signal coming out of the signal splitter.

Signal Demultiplexer

A Control for demultiplexing a signal into multiple signals.

Example:

  • MIDI data sent over an AVB Stream is transported in an Audio Cluster. One Audio Cluster contains up separate 8 MIDI Cables worth of MIDI data which are all multiplexed together. A Signal Demultiplexer would be used to extract the 8 MIDI cables from the one Audio Cluster into 8 individual MIDI cable signals.

Stream

A unidirectional flow of IEEE Std 1722 frames with the same StreamID.

Examples:

  • A stream can be a single channel of audio
  • An MPEG video stream with embedded audio
  • An 8 channel stream
  • One or more S/PDIF lines
  • SMPTE time code
  • MIDI messages

Stream Input

A Stream Input defines a the part of a device that receives a single AVB Stream and tracks the format and stream status.

Stream Port Input

An ingress point of an AVB Stream into an Audio Unit

Example:

  • The Stream Input receives the AVB stream and sends it to the appropriate Audio Unit for processing within a Clock Domain via a Stream Port Input.

General AVB FAQ

2   What is AVB?

Audio Video Bridging is a term for a collection of IEEE Standards for time sensitive networking which facilitates the transport of high performance audio and video on a LAN.

For details of the standards involved, see the AVB Developer FAQ.

3   What are the minimum requirements for an AVB switch?

An AVB Switch is required to support:

  • IEEE Std. 802.1Q-2011 FQTSS and SRP.
  • IEEE Std. 802.1AS-2011 gPTP on each AVB enabled ethernet port

AVnu Compliance is important for a switch to have in order to ensure correct operation of your AVB network.

5   How many AVB streams of audio can you have on an entire network?

The maximum number of streams on an AVB network depends on the streams properties.

  • If the streams properties are not packable, there can be 318 streams on a network - each with 1 or more channels of audio.
  • If each talker device provides streams with stream properties that are packable, there can be 318 talkers on a network each with as many streams as they can fit on their links.
  • If all the stream properties across the entire network are packable, there can be much more than 318 talkers on a network.

6   Are all the standards involved in AVB complete?

Yes, with the completion of IEEE Std 1722.1-2013 in August, 2013 all of the standards required for a full complete end user experience are completed, ratified, published, and available for download or purchase.

AVB/TSN

Audio Video Bridging

A collection of links, tools and open source code for Audio Video Bridging (AVB) and Time Sensitive Networking (TSN) technologies.

About avb.statusbar.com

This website was created to be a central place for information and open source code regarding Audio Video Bridging, primarily from Jeff Koftinoff.

Jeff Koftinoff has been involved in the development of the IEEE AVB Standards and has been involved in the implementation of these standards for devices in the Pro Audio market.