Misleading NTP dashboard widget and ntp syslog noise
-
In testing 2.4 (built on Sat Feb 04 23:13:36 CST 2017), I've notice a few minor things with the NTP dashboard widget:
-
The 'server time' field is actually coming from the client machine, not the pfsense machine. Noticed because I used a client with a non-synchronized clock, and the 10 minute error jumped out.
-
The 'sync source' field ignores any local clocks, ie GPS_NMEA with PPS. The current code looks for an asterisk in the first column (so getting the unicast clock on the 'net), but does not consider the 'o' that designates a local stratum 0 clock.
Also, I saw lots of```
kernel reports TIME_ERROR: 0x2307: PPS Time Sync wanted but PPS Jitter exceededWhat did work to suppress this log noise was to untick the box "Enable kernel PPS clock discipline (default: checked)", thereby using the ntpd PPS clock discipline. While this suppresses the log noise, the offset is not controlled as well, going from about +/- 20 uS to about +/- 50 uS. The jitter exceeded counter (as shown by 'ntptime' or 'ntpq -c kern') continues to rise, but at least it's not polluting the ntp syslog files. I will try some GPS modules other than the Garmin GPS 18x LVC, and report back if anything changes. This was raised earlier by another user with 2.3.2-Release-p1 (in the wrong forum), with no replies: [https://forum.pfsense.org/index.php?topic=120687.0](https://forum.pfsense.org/index.php?topic=120687.0)
-
-
The Server Time field is actually a "clever" combination of http server time and http client time. Regardless, it's bogus. Old broken code in need of replacement.
- The 'server time' field is actually coming from the client machine, not the pfsense machine. Noticed because I used a client with a non-synchronized clock, and the 10 minute error jumped out.
-
Old broken code in need of replacement.
Thanks, I just got rid of it, and added the max and current error estimates from ntptime (more useful to me than repeating a time that's already included in the 'system information' widget).
Regarding the local clock, the code was looking for a 'o', but then kept looking for the '*', so I just added a break if a 'o' is found. If a system is sync'd to a local clock, I would want to know so; to me that's more important info than the peer on the net.
Regarding the ntp syslog 'jitter exceeded' noise, I've now reproduced it with a Sure GPS module and the Adafruit GPS module, so it's not specific to the Garmin unit I was using. The 'jitter exceeded' threshold is determined in the freebsd kernel file kern_ntptime.c, but I haven't yet looked for any changes that would have changed the threshold level to increase the syslog noise. I'll likely replace the current ntp with chrony or ntpsec and see how that goes.
-
The client time issue in the NTP dashboard widget has been fixed:
https://redmine.pfsense.org/issues/7245