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