hush/networking/ntpd.diff

25 lines
679 B
Diff
Raw Normal View History

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)) {