Repository navigation
Host entities on Linux keep the network's time with gptpd, an 802.1AS
daemon whose packages come with triib's, in place of linuxptp's ptp4l:
their links and streams ride through grandmaster changes, restarts and
link bounces, and this computer can be the grandmaster. triib changes
the format of a running stream where the entity lets it, warns when a
Mac drops audio on its own clock, and names bridges' makers from the
IEEE's registries on every system.
Programs sharing triib-endpointd, such as plaa, keep their streams as it
stops or starts again, host entities' streams keep their frames in
order, and host entities send and analyze test tones and refuse the
format changes Milan 1.3 forbids while bound or streaming.
Controller
- A stream input that will not take a new format while it runs, or a
stream output whose entity can stop it, is stopped, set and started
again, instead of asking for it to be disconnected first;
triib-cli formatdoes the same. Milan entities, triib's own host
entities among them, take no new format on an input while it is bound
or on an output while it streams, stopped or not, so those still ask. - A Mac's AVB entity receiving a stream on its own clock, as macOS
starts it on Mac System Clock, drops audio from what it receives. It
now raises an alarm, with a button in its Diagnostics tab to follow
the stream's clock instead, and agents find it inlist_problems.
Host entities (Linux)
- Host entities keep the network's time with gptpd, an 802.1AS daemon in
a package of its own, where triib-endpointd ran linuxptp's ptp4l.
gptpd never steps or slews the card's clock, which stamps the peer
delay exchanges the neighbor measures the link with, so those stay
clean through the first lock, grandmaster changes, restarts and link
bounces, where ptp4l could slew the clock for seconds faster than a
bridge accepts; and streams follow a new grandmaster within a Sync or
two, where they held the old time through ptp4l's slew and then
jumped. gptpd marks its messages PTP 2.0 on every distribution, as a
PreSonus AVB switch needs. triib-endpointd startsgptpd@<interface>
where none answers, and triib says when gptpd is not installed, or will
not start because another PTP daemon, such as a ptp4l run by hand,
holds the interface. - This computer is grandmaster capable, with priority1 248 as Milan
asks, where its entities never took the grandmaster's place.
priority1in gptpd's/etc/gptpd/<interface>.confsets it: 255 for
never, 246 to be preferred. Behind a switch taking no part in AVB, the
network map shows this computer as the grandmaster where it is one,
rather than out of sync. - gptpd decides when to fall back to AVB Lite and when to go back, and
the entities follow it, where triib-endpointd weighed it and moved
ptp4l between two units of triib's; a program sharing the port, such
as plaa, sees the same decision. - For testing streams with other devices, an output with
audio = "tones"sends a tone of its own on each channel, 500 Hz and
125 Hz more for each channel after, and an input with
audio = "analyze"checks what it receives against the tones it
carries: the log says, for each time it listens, its samples and
each channel's clicks, gaps, tone and peak, when the first clicks
and gaps came, the clock it recovered and its stream's counters. - A talker that stops for want of listeners logs what it sent.
- A host entity refuses a new stream format on an input while it is
bound, and a new format or max transit time on an output while it
streams, as Milan 1.3 asks (5.4.2.7, 5.4.2.30), where it took them and
started the stream again. - triib-endpointd tells the programs sharing its MSRP participant, such
as plaa, that it leaves as it stops or starts again, and keeps what
they declared registered on the bridge for them to take over at once,
where they lost their streams for 15 s; as it starts, they hand it
back. - triib warns of a program sharing triib-endpointd that cannot take its
streams over, such as an older plaa, in the Entities view and under
Settings' entities file, where a change would start triib-endpointd
again. - Starting, triib-endpointd has the bridge declare its streams again at
once, rather than hearing of them at the bridge's next LeaveAll, up to
10 s later.
Fixed
- A host entity takes a stream format a controller adapts from one it
offers as up to so many channels, such as AM824 at its exact
channels, as Hive does on connecting; it refused all but the formats
it lists. - A host entity's stream at four times its audio device's rate, such
as 192 kHz into a 48 kHz virtual device, no longer stops its listener
after a few seconds. - A host entity's output given a format that takes more bandwidth goes
on as another of four stream IDs, which a bridge holds nothing of,
where a MOTU switch went on policing the stream to its old frame size
and dropped a third of its frames; listeners take the new ID as they
connect. Where that ID was given up within 32 s, and for a talker of a
program sharing the port such as plaa, the new format is declared
once the bridge has let the old reservation go, two of its LeaveAlls
later. - triib-endpointd's LeaveAll goes for every MSRP attribute type, as a
switch's does, where it went only for those it declared, so that a
switch declared its talkers again only at its own LeaveAll. triib-link@sends all of the AVB interface's frames on its first
transmit queue: a card with several, such as the Intel I210, spread a
stream's frames over them, and some left out of order.- A host entity's talker sends with priority 3, so the default fq_codel
queue keeps a stream's frames in one flow, where each frame could take
a flow of its own and leave out of order when the queue backed up, as
when a talker catches up after waking late. - A host entity's talker starting its media clock again twice with no
frame sent between, as after a late send and then a jump of gPTP time,
changes the mr bit once, where the two changes cancelled and a
listener saw the stream's time jump with no media reset. - A host entity withdrawing a declaration moments after making it sends
its Leave, so a quick connect and disconnect no longer leaves a talker
counting a listener that has gone. - A host entity's input keeps its talker when a bridge declares the
talker failed and then advertised again without withdrawing the
advertisement, as a PreSonus switch does while the talker's port comes
up, where the input lost the talker for good once the failure cleared. - triib-endpointd answers a bridge's LeaveAll that carries the bridge's
own declaration of VLAN 2 or an SR class domain with its own at once,
where the bridge's registration of triib-endpointd's lapsed at each of
those LeaveAlls until triib-endpointd's next one. - The Diagnostics tab's egress bar shows its empty track when an
interface sends nothing, where it was drawn full, and would have been
drawn empty at a full link. - The network map names a bridge's maker on macOS and Windows too, from
the IEEE's registries built into triib, where it read the list a
Linux system keeps. A bridge whose MAC address is in an MA-M, MA-S or
IAB block is named by the company that block went to, where it showed
as "IEEE Registration Authority".
Packages
- The packages recommend gptpd, where they recommended linuxptp, and the
PKGBUILD depends on it; gptpd's own packages come with triib's
releases. The ptp4l units, their configurations and their polkit rule
are gone, and installing stops any ptp4l unit an older triib started.
Upgrading a Debian package removes the configurations in/etc/triib,
keeping a changed one as.dpkg-bak, where dpkg would have kept them
for good. A polkit rule still lets the person at the computer runtriib-link@
andtriib-link-reset@. - The AppStream data dates 1.2.0 October 24, the day it was released.
- The Windows installer's last page says this computer cannot be an AVB
endpoint on Windows, no longer "yet": Windows gives no hardware time
stamps for gPTP frames sent from user space, on the Intel I210 too.