]> git.ipfire.org Git - thirdparty/chrony.git/commitdiff
refclock: increase PPS lock limit
authorMiroslav Lichvar <mlichvar@redhat.com>
Thu, 18 Mar 2021 10:49:08 +0000 (11:49 +0100)
committerMiroslav Lichvar <mlichvar@redhat.com>
Thu, 18 Mar 2021 16:41:28 +0000 (17:41 +0100)
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.

refclock.c

index fcf7d596976142385b4592eb02e8b2376aae3198..23a495a1986f6897a84fef190dcce1f4ea89b03d 100644 (file)
@@ -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;