[LAD] AVB applications

Folderol folderol at ukfsn.org
Wed May 18 09:38:53 UTC 2011


On Fri, 04 Mar 2011 23:15:30 -0600
Duncan Gray <duncang at catraeus.com> wrote:

> This is to bring a discussion from the Jack Dev list to this more 
> appropriate forum as suggested by Arnold Krille.
> 
> First, I hear lots of people seemingly thinking that AVB (IEEE 1722) and 
> the IEEE 1588 version of Precision Timing Protocol can be done in the 
> kernel.
> 
> It cannot and it must not.  They both need hardware assist.  Period.  A 
> timestamp is specified to be inserted based on the leading edge of the 
> header immediately after the preamble.  If anyone ever makes some 
> neighboring equipment that has done these with the required precision, 
> then you will kill that clock network and there will be yet another good 
> reason not to bring Linux to the workplace.
> The ONLY exception is that if the listener is a stream-to-disk system, 
> then the timestamp system can simply be ignored.  Such a listener will 
> never turn on PTP, but that won't hurt, because it will just ask for the 
> 1722 stream and the talker will spit it out without knowing that that 
> node doesn't play PTP.
> 
> The version of PTP that is used in AVB is from the 802.1AS 
> specification.  The acronym PTP is now an ambiguous one that has at 
> least these two uses, and I have heard some other hardware-assisted 
> networked timing schemes called PTP.
> 
> IEEE 1588 specifies an epoch-based struct with 48 bits of seconds (This 
> gives 8.9 million years before a "y2k" hits IEEE 1588) and a 32-bit 
> number that specifies nano-seconds.  the 802.1AS sub-spec also uses this 
> epoch-based timestamp.
> 
> PTP maintains one suite of transactions to keep itself timed.  This is 
> blind to AVB.
> 
> AVB creates Word Clock timeframes using the PTP wall-clock that MUST be 
> made available to the 1722 layer.  IF YOU HAVE PTP, then you can 
> synthesize predictive wallclocks using a buffer-full scheme in a 
> PTP-capable NIC.  That NIC has to be configured to pay out the frames 
> per the 802.1Qav forwarding and scheduling spec.  This is how streamers 
> will deliver streams that are well-timed, low-jitter streams.  There are 
> fruit companies doing this as we speak with new NICs that have been 
> enabled from Broadcom and Marvell (and any host of others.)
> 
> It is possible to fake a GrandMaster clock using kernel-timed 
> calculations.  The Best Master Clock Algorithm (BMCA) of a two-node 
> system will be forced to accept such a sloppy clock and the slave will 
> achieve lock, but with jitter that will fail a normally specified PTP 
> system.  Noisy environment listeners will not hear this, but clean 
> listening will reveal the various artifacts of such jitter.
> 
> You can just make a leaky-bucket PLL at a receiver and use the DPLL 
> frequency to inform SRC.  This hack will be un-noticed by the average 
> media-player person, but not by the critical listener.
> 
> When the 1722 timestamp is constructed, it is a complex assembly from 
> the 802.1AS timestamp.  The 802.1AS timestamp is a two-part thing, as 
> specified above with its first part being simply seconds.  This will not 
> roll over in the lifetime of Linux, our species or even our continents, 
> let alone a recording session.  The second part is specified to roll 
> over at decimal one billion-1 = 999999999 = 0x 3B9ACBFF.  The timestamp 
> in IEEE 1722 rolls over at unsigned long = 4294967295 = 0xFFFFFFFF, 
> which is 4.294967296 seconds.  I apologize for quoting "weeks between 
> rollover" in the previous thread.
> 
> IEEE 1588 and IEEE 1722 are Ethernet-Only protocols, do not shoe-horn 
> them into IP.
> 
> I have heard lots of people say that AVB is just some thing for consumers.
> go to http://grouper.ieee.org/groups/1722/ and hover over some of the 
> names to find where they work.  It was, in fact, designed FIRST to very 
> easily accommodate Pro Audio:
> 
> Reliability.
> Multiple-Node Synchronization without the need for Sample Rate Conversion.
> Low-Jitter.
> Unlimited (at least not limited by the protocol, only the bandwidth) 
> channel count.
> 
> 
> And then it would be a trivial subset to get two - or 5.1, 7.1 any 
> surround count - channels to go from my CD player to any media player 
> over some LAN. (However, as of two autumns ago, they were still 
> kvetching over Wi-Fi.)
> 
> Finally, Yes, the CLOCK_REALTIME can be very simply pasted from a good 
> PTP instance.

Thanks for this. Very informative, although *way* above my abilities :(

-- 
Will J Godfrey
http://www.musically.me.uk
Say you have a poem and I have a tune.
Exchange them and we can both have a poem, a tune, and a song.



More information about the Linux-audio-dev mailing list