Inferno only, PTPv2 GrandMaster #50
Unanswered
hitech95
asked this question in
Support Q&A
Replies: 1 comment 1 reply
|
TBH I have never tested it without an independent clock master - I have tested inter-Inferno routing but there was always some Dante device, used as a clock source. You can also use |
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Hi,
I've been building an embedded audio node around your stack:
usrvclock export.
You mentioned that a self-sustaining, PTPv2-only inferno setup should be possible.
but I cannot see how, and wanted to check whether I'm missing something.
I cant find in what issue/discussion only the related #40.
What I've observed on a single, isolated node (no other PTP device on the link):
So the ALSA plugin's clock receiver never becomes ready: snd_pcm_hw_params fails with ETIMEDOUT after ~5 s
"no clock available (timeout waiting for overlay update)", and no audio can flow.
Tracing the code, this looks structural rather than a misconfiguration:
usrvclock::Server::send()is only ever called from theCallbackExporterclosure instatime-linux/src/main.rs;OverlayClock::set_frequency()/step_clock()in `statime/src/overlay_clock.rs);The only master-related special case I've found is the
ClockExportGuardbeing skipped whenvirtual_system_clock_base=TAI + usrvclock_export in
statime-linux/src/main.rs, ~line 377)but that only bypasses the abrupt-change guard; it does not make the exporter fire without measurements.
Is there a configuration I've overlooked that makes a lone PTPv2 node export a usable clock?
Or is a second statime instance (local master + slave pair) the intended approach?
As a workaround I'm currently creating a small patch in the build: a 1 Hz task that re-sends the last exported overlay while any port is in Master state.
On boot it starts from an identity overlay (clock_id = underlying clockid, shift = 0, freq_scale = 0), which translates to "the reference is my own underlying clock" - so a lone node can host inferno instances, and after a slave->master transition it keeps serving the last disciplined parameters(holdover).
It also matches the
usrvclock Server::senddocumentation recommending "at least once per second" so newly connected clients do not wait for the first update.Happy to clean it up and send a PR if you agree with the approach or to hear what the intended design is.
For completeness, two smaller things I noticed while digging:
Thanks a lot for inferno and the statime fork as dipping my toes into AoIP now seems feasible without buying expensive gear.
I'm just experimenting and trying to dip into PTP, maybe Jeff Geerling had a too big impact on me with his time
"obsession"hobby as I now want to try a real word example of this tecnology.Best regards,
Nicolò
All reactions