25 lines
679 B
Diff
25 lines
679 B
Diff
|
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)) {
|