From: Miroslav Lichvar Date: Thu, 18 Mar 2021 10:49:08 +0000 (+0100) Subject: refclock: increase PPS lock limit X-Git-Tag: 4.1-pre1~26 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5381fb4ee99d6ed0d1ef10fa7a8018b3b89ad90c;p=thirdparty%2Fchrony.git refclock: increase PPS lock limit Increase the maximum acceptable offset of the PPS lock reference from 20% to 40% of the PPS interval to not require the refclock offset to be specified in configuration so accurately, or enable operation with a highly unstable reference clock. --- diff --git a/refclock.c b/refclock.c index fcf7d596..23a495a1 100644 --- a/refclock.c +++ b/refclock.c @@ -40,6 +40,9 @@ #include "samplefilt.h" #include "sched.h" +/* Maximum offset of locked reference as a fraction of the PPS interval */ +#define PPS_LOCK_LIMIT 0.4 + /* list of refclock drivers */ extern RefclockDriver RCL_SHM_driver; extern RefclockDriver RCL_SOCK_driver; @@ -577,7 +580,7 @@ RCL_AddCookedPulse(RCL_Instance instance, struct timespec *cooked_time, offset += shift; if (fabs(ref_sample.offset - offset) + - ref_sample.root_dispersion + dispersion >= 0.2 / rate) { + ref_sample.root_dispersion + dispersion > PPS_LOCK_LIMIT / rate) { DEBUG_LOG("refclock pulse ignored offdiff=%.9f refdisp=%.9f disp=%.9f", ref_sample.offset - offset, ref_sample.root_dispersion, dispersion); return 0;