summaryrefslogtreecommitdiff
path: root/networking/ntpd.diff
diff options
context:
space:
mode:
Diffstat (limited to 'networking/ntpd.diff')
-rw-r--r--networking/ntpd.diff24
1 files changed, 24 insertions, 0 deletions
diff --git a/networking/ntpd.diff b/networking/ntpd.diff
new file mode 100644
index 0000000..4afd7e1
--- /dev/null
+++ b/networking/ntpd.diff
@@ -0,0 +1,24 @@
+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)) {