This patch scales down small offsets quadratically. Reduces sensitivity to jitter diff --git a/networking/ntpd.c b/networking/ntpd.c index 4695c33..ac05815 100644 --- a/networking/ntpd.c +++ b/networking/ntpd.c @@ -1654,6 +1654,17 @@ update_local_clock(peer_t *p) */ if (G.offset_to_jitter_ratio >= TIMECONST_HACK_GATE) tmx.constant--; + +{ + double d = p->lastpkt_delay; + if (d > SLEW_THRESHOLD) + d = SLEW_THRESHOLD; + d /= 2; + if ((abs_offset / d) < 1) { + offset *= (abs_offset / d); + } +} + tmx.offset = (long)(offset * 1000000); /* usec */ if (SLEW_THRESHOLD < STEP_THRESHOLD) { if (tmx.offset > (long)(SLEW_THRESHOLD * 1000000)) {