lsm-avb.so

Provide Ethernet Audio Video Bridging services

Syntax:

mount -Ttcpip lsm-avb.so [option[,option...]] ...

or:

io-pkt-variant -p avb [option[,option...]] ... &

where variant is one of v4, v4-hc, or v6-hc.

Runs on:

QNX Neutrino

Options:

crif=interface
Set the Clock Reference Stream interface.
crmac=XXXXXXXXXXXX
Set the Clock Reference Stream MAC address.
verbose=num
Set the verbosity level (default: 0).
Note: If you use a Clock Reference Stream, you must specify both crif and crmac; it's an error to specify one without the other. If you don't use either crif or crmac, a Clock Reference Stream isn't used.

Description:

The lsm-avb.so shared object provides Ethernet Audio Video Bridging (AVB).

Note: The lsm-avb.so shared object is still changing as we add support for more of the AVB protocols.

The API isn't through sockets; instead lsm-avb.so runs its own resource manager under SOCK_prefix/dev/socket/avb, as this lets us meet the low latency requirements in some AVB scenarios even when the main io-pkt resource manager is dealing with another message.

Note that an AVB-enabled Ethernet driver is also required. This consists of supporting a few new ioctl() commands, along with supporting the multiple queues, shapers, and time stamping that are required for AVB.

Under the avb directory is a directory of all the interfaces that may be AVB-capable. Under each interface is a block special file called time that's used for 802.1AS packets (driven by ptpd-avb), and then individual streams are opened and closed with the stream name containing the parameters specifying the stream.

A stream name is formed as:

"DestMac:VLAN:Priority:Subtype:StreamId:BitDepth:SampleRate:NumSamples:NumVoices"

1722 and 1722a Draft6 streams are currently supported, and you can also specify a clock reference stream on the command line. Whole packets worth of data are meant to be written and read rather than reading and writing a partial packets. The lsm-avb.so adds the header to the data and transmits on a talker stream with the correct timestamp. For listener streams, the data is buffered until the presentation timestamp is reached.