Skip to content

triib 1.2.0

Choose a tag to compare

@github-actions github-actions released this 25 Oct 05:24
· 30 commits to main since this release

The network map draws the traffic on each link and places every device
in its clock domain, those running AVB Lite behind the non-AVB switch in
front of them, and the connection matrix keeps talkers and listeners in
different domains from connecting. triib follows entities that send no
notifications, shows entities' logos and their vendors', and on a Mac
has a menu bar. On Linux only a small helper holds CAP_NET_RAW, and
triib-endpointd shares its MSRP participant with other programs such as
plaa, hears other computers' AVB Lite declarations on the Intel I210 and
offers the same stream formats as plaa. The app ID is now run.triib.

The entity list and the connection matrix filter from menus and carry
their titles, agents can diagnose streams that do not play, and triib
carries on by itself once raw Ethernet is granted.

Controller

  • On a Mac, the menu bar has triib's menus: Settings and Quit in the
    triib menu, Presets and Close Window in File, Cut, Copy, Paste and
    Select All in Edit, the three views, the log and the inspector in
    View, and Window and Help menus, in the interface's language.
  • The network map draws the traffic on each link: a multicast stream to
    several listeners takes one wire as far as their paths run together
    and branches where they part, all in its color, while a unicast stream,
    as AVB Lite can send, has a wire to each listener from its talker. A
    device counts each stream it sends once however many listeners it
    has, and a bridge each stream passing through. Clicking a shared wire
    brings the whole stream forward with all its listeners.
  • A stream its talker says it sends with no known listener bound to it
    still shows, on a wire from the talker to its bridge.
  • The network map shows every entity and bridge it hears in its clock
    domain, each labelled with its number: a gPTP domain from its
    grandmaster down through the AVB bridges, or a PTP domain whose devices
    run AVB Lite, those that found no AVB bridge and fell back to it hanging
    under a dashed card for the non-AVB switch in front of them, with their
    streams crossing it; their details say why they run AVB Lite. A device
    that shares its domain with no other, as an AVB device alone on a
    non-AVB switch, has an area of its own, and only those whose domain is
    not known sit apart. The map is the same whether this computer's
    entities run gPTP, AVB Lite or nothing, its choices always Sync, Audio
    and CRF.
  • The connection matrix keeps talkers and listeners in different clock
    domains, as the network map shows them, from connecting: their cell
    says so and does nothing, and hiding what cannot connect hides them.
  • Where this computer runs none of its own entities, the network map and
    triib-cli network tell what it is plugged into from the gPTP
    messages on its link: an AVB bridge's port, or a switch taking no part
    in AVB, which lets the endpoints' own peer delay requests through, AVB
    Lite's declaring themselves and others known by their clocks. Behind
    one it hangs under the card for the devices running AVB Lite there,
    rather than taking an endpoint for its bridge.
  • Entities that send no notifications, as some ESP32 endpoints do not,
    stay current as other controllers change them: triib reads each
    entity's names, stream formats, sampling rates and clock sources again
    in turn, asks every second how the stream the inspector's Streams tab
    shows stands, and learns at once from the responses entities send
    another controller on this computer. An entity that sends triib a
    notification is asked nothing again until it goes or restarts.
  • triib reads entities' logos, their own and their vendors', through
    Address Access: the entity list can show each in a column of its own,
    and the inspector's Entity tab shows both.
  • The connection matrix and the entity list have their title at the
    start of the row above them, as the network map has. Each view's title
    shows wherever the row has room for it beside the rest, rather than
    only on windows over 1040 points wide: with the inspector open, say.
  • Where raw Ethernet needs a permission a command grants, as setcap
    on the helper on Linux, triib tries again every 2 s and carries on as
    soon as the command has run, rather than waiting for a restart, and
    says so under the command.
  • Opening Settings or Presets, or an agent's prompt, leaves the window
    under it as it was: the inspector no longer slides in again, nor do
    the lists scroll back.
  • The entity list has a filter menu, as the interface picker has, in
    place of the button that showed only this computer's entities. It
    hides entities on other devices, on Linux and on a Mac; controllers;
    and entities outside this computer's clock domain, while this
    computer is in sync in one. Beside it, as beside the matrix's
    filters, is how many entities they hide.
  • The connection matrix's option to hide what cannot connect is a filter
    menu, as the entity list's, which also hides entities running AVB
    Lite, not those only able to, and wireless entities, with all their
    streams. How many streams the filters hide shows while they hide any.
  • Agents can diagnose streams that do not play: list_problems lists
    what triib finds wrong, errors first, from failed reservations and
    formats that differ to devices out of sync and counters gone wrong;
    stream_diagnostics asks a device afresh how one stream stands, and
    with sample_seconds what its counters did over that time; and
    clock_tree gives the gPTP tree as the network view shows it.
  • Entity and vendor images in the entity list and the inspector are
    smooth: each is shrunk once to the pixels it shows at, averaging what
    each covers, rather than sampled jagged as it is drawn.
  • Sheets and floating bars slide by whole pixels, so their icons and
    labels no longer hop against them as they settle.

Linux

  • triib, triib-cli and triib-endpointd no longer hold CAP_NET_RAW:
    /usr/lib/triib/triib-netraw, the one program the packages grant it,
    opens their raw sockets and passes them over. The desktop's portals
    answer triib directly again, and debuggers and crash reports see it as
    any other program.
  • triib-endpointd shares its MSRP participant with other programs on
    this computer, such as plaa sending what it plays, which ask it on a
    socket in the user's runtime folder to declare their talkers and to
    listen to streams for them, and hear from it as their listeners and
    the talkers of the streams they listen to come and go, this computer's
    entities among them, which take those streams as they take their own;
    it withdraws a program's declarations when the program goes. It says
    hello to each program with its version and features, and answers each
    request to declare a talker, so a program can tell what it can do and
    why it refused. In AVB Lite it declares for the programs that run it
    too, by CVU SRP in their entities' names, admitting their listeners
    with its own entities' and telling them where to send each copy.
  • Two of triib-endpointd's inputs on one stream no longer withdraw each
    other's listener declaration as one of them stops: a stream has one,
    for all its listeners on this computer, in AVB Lite too.
  • This computer's entities carry triib's app icon as their logo and
    Scramble Tools' as their vendor's, PNG memory objects that controllers
    such as Hive read through Address Access.
  • triib-endpointd rides out a fault of ptp4l's own, as a transmit time
    stamp coming late while the computer is busy, rather than falling
    back to AVB Lite as though no gPTP peer answered.
  • triib-endpointd keeps its entities off AVB Lite on an interface
    without a PTP hardware clock, which AVB Lite needs: it no longer falls
    back to it there, says it can run it, or takes the link down to turn
    EEE and PAUSE off for it.
  • triib starts triib-endpointd again whenever it stops while triib runs
    and this computer's entities are listed, as after a crash, not only
    as triib opens, waiting longer after each start that does not last;
    the log of the run before is kept as endpointd.log.1. A daemon triib
    started no longer lingers as a zombie once it stops, which triib took
    for one still running.
  • An input of triib-endpointd's that stops listening while locked to its
    stream counts an unlock, so a controller reading its counters no
    longer takes it for still receiving.
  • This computer's entities answer for their AVB interface's counters:
    how often its link came up and went down, and how often its gPTP
    grandmaster changed, as Milan has a controller ask.
  • In AVB Lite, triib-endpointd hears other computers' CVU SRP on an
    interface that drops frames of unregistered VLANs in hardware, as the
    Intel I210 does: it holds the interface promiscuous while AVB Lite
    runs, where before it heard them only while one of its inputs
    listened.
  • In AVB Lite, a talker of triib-endpointd's serves up to 5 listeners
    unicast unless unicast_fanout says otherwise, as the profile now
    recommends, where before it served 2.
  • triib-endpointd's streams offer the same formats as plaa's, from avb's
    shared set: each of a stream's sizes at every rate where it fits a
    frame, as the Extended Audio profile asks, where before a size went
    only at the rates its stream's own channels fit. A stream of many
    channels now offers 96 and 192 kHz at the smaller sizes, and a new
    rate moves a stream too large for it to the most channels of its
    packing that fit. AM824 is declared as MOTU's 8D declares it, of its
    channels or fewer; a stream saved in the old AM824 comes back in the
    new one.
  • An entity added to this computer is listed at once, greyed, its State
    saying what it waits on: triib-endpointd starting, the interface being
    set up for AVB, its link. The bar above the list says what the daemon
    is doing until it is done, such as setting up the interface or starting
    ptp4l, or that linuxptp is not installed.
  • This computer's entities advertise again as soon as their link comes
    back up, as after triib-endpointd turns EEE and PAUSE off, rather than
    10 s later: a new entity reached triib's list only after that wait.

Packages

  • triib's app ID is run.triib, triib.run reversed, as registered with
    Apple, in place of io.github.scrambletools.triib: the Mac bundle and
    its BPF launch daemon, the desktop file, AppStream ID, icons and
    Wayland app ID. The Mac package removes the launch daemon and receipt
    earlier releases installed under the old ID, and the AppStream data
    says it replaces it. macOS asks again once for the microphone and
    audio capture, which it grants by bundle ID.

Development

  • The AVB crates moved, with their history, to
    scrambletools/avb, to be shared
    with other apps: atdecc, avb-mrp, avb-net, and triib-stream as
    avb-stream. They are published on crates.io, where triib takes them
    from.