Richard,
Thanks for the feedback. As I mentioned to Erez, my goal is to provide access
to the statistics behind this log message without resorting to log scraping:
ptp4l[5024110.731]: rms 9 max 17 freq -17594 +/- 14 delay 220 +/- 1
I wasn’t aware of the SUBSCRIBE_EVENTS_NP…that partially solves my use case for
the first two numbers - rms and max offset.
./pmc -d 24 -u 'SET SUBSCRIBE_EVENTS_NP duration 10 NOTIFY_PORT_STATE on
NOTIFY_TIME_SYNC on'
…
0c42a1.fffe.d1d1bd-0 seq 67 RESPONSE MANAGEMENT TIME_STATUS_NP
master_offset -13
ingress_time 1622134808076003202
cumulativeScaledRateOffset +0.000000000
scaledLastGmPhaseChange 0
gmTimeBaseIndicator 0
lastGmPhaseChange 0x0000'0000000000000000.0000
gmPresent true
…
I could use the ‘master_offset’ notifications to calculate statistics on the
offset in an external program, but in order to calculate statistics on the
frequency (rate) that external program would need to make assumptions on the
servo tracking loop internal state variables and loop coefficients, i.e. the
‘adj’ variable (which is the rate) is also required:
static void clock_stats_update(struct clock *c,
double offset, double freq)
…
adj = servo_sample(c->servo, offset, tmv_to_nanoseconds(ingress),
weight, &state);
…
if (c->stats.max_count > 1) {
clock_stats_update(c, tmv_dbl(c->master_offset), adj);
Using only the SUBSCRIBE_EVENTS_NP would also leave the delay statistic
unavailable.
Thanks,
Tim
From: Richard Cochran <[email protected]>
Date: Thursday, May 27, 2021 at 6:18 AM
To: Tim Martin <[email protected]>
Cc: [email protected] <[email protected]>
Subject: Re: [Linuxptp-devel] [PATCH] Add new CLOCK_STATS_NP TLV GET to pmc and
clock
External email: Use caution opening links or attachments
On Tue, May 25, 2021 at 08:28:34PM +0000, Tim Martin wrote:
> Currently there is no way to programmatically access statistics about
> the clock frequency offset, time delay, or time offset (collectively,
> the "clock_stats" metrics), except for parsing the ptp4l logs. One
> option for time offset would be to poll TLV_TIME_STATUS_NP in regular
> intervals from a custom client, but that has the disadvantage of either
> very high poll rates or missed updates which would affect the statistics.
Not if you use the push method.
commit 6d7c090706e76af334185ffcec9cc56d0570e215
Author: Juergen Werner <[email protected]>
Date: Wed Jan 20 20:11:34 2021 +0100
Implement push notification for TIME_STATUS_NP
Subscribers to NOTIFY_TIME_SYNC will be notified on every clock
synchronization.
Thanks,
Richard
_______________________________________________
Linuxptp-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/linuxptp-devel