summaryrefslogtreecommitdiff
path: root/networking
diff options
context:
space:
mode:
authorDenys Vlasenko2016-03-04 07:36:04 +0100
committerDenys Vlasenko2016-03-04 07:36:04 +0100
commitaee7cd82be31577c2e5c144d083af206bedbb96a (patch)
treeca0fe0bcb0274a44a755f558ea5257870dbd1ff5 /networking
parentc8641962e4cbde48108ddfc1c105e3320778190d (diff)
downloadbusybox-aee7cd82be31577c2e5c144d083af206bedbb96a.zip
busybox-aee7cd82be31577c2e5c144d083af206bedbb96a.tar.gz
ntpd: add experimental patch
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'networking')
-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)) {