Miroslav Lichvar
50f99ec5f4
conf: add nocrossts option to hwtimestamp directive
...
This option disables the use of the PTP_SYS_OFFSET_PRECISE ioctl.
2017-01-23 15:58:55 +01:00
Miroslav Lichvar
31b6a14444
sys_linux: add support for PTP_SYS_OFFSET_PRECISE
...
This is for hardware that can precisely cross timestamp the PHC with the
system clock.
2017-01-23 15:58:55 +01:00
Miroslav Lichvar
9df4d36157
refclock_phc: use sys_linux code for reading PHC
...
This drops support for non-ioctl reading of PHC.
2017-01-23 15:58:55 +01:00
Miroslav Lichvar
b70f0b674f
ntp: move PHC-specific code to sys_linux
...
This will allow sharing of the code with the PHC refclock driver.
2017-01-23 15:58:55 +01:00
Miroslav Lichvar
510784077f
conf: add minpoll option to hwtimestamp directive
2017-01-23 15:58:55 +01:00
Miroslav Lichvar
9800e397fb
hwclock: make minimum sampling separation configurable
2017-01-23 15:58:55 +01:00
Miroslav Lichvar
1436d9961f
conf: add precision option to hwtimestamp directive
2017-01-23 15:58:55 +01:00
Miroslav Lichvar
98f5d05925
ntp: include precision of PHC readings in their selection
...
Include a fixed non-zero precision (100 nanosecond) in the selection of
PHC readings.
2017-01-23 15:58:55 +01:00
Miroslav Lichvar
7a937c7652
conf: return hwtimestamp data in struct
2017-01-23 15:58:55 +01:00
Miroslav Lichvar
b198d76676
ntp: include precision in maxdelay test
2017-01-23 15:58:55 +01:00
Miroslav Lichvar
97d4203354
ntp: adapt sampling separation for short polling intervals
2017-01-23 15:58:55 +01:00
Miroslav Lichvar
beaaaad162
ntp: allow sub-second polling intervals
...
Change the minimum minpoll to -4, but keep the minimum maxpoll at 0 in
order to not make it too easy to flood distant servers.
2017-01-23 15:58:55 +01:00
Miroslav Lichvar
4e78975909
ntp: use current poll when backing off on KoD RATE
2017-01-23 15:58:55 +01:00
Miroslav Lichvar
99147ed8f2
ntp: rename maxdelay constants
2017-01-23 15:58:55 +01:00
Miroslav Lichvar
dec0d3bfc2
ntp: reset ntpdata report on address change
2017-01-23 15:58:55 +01:00
Miroslav Lichvar
cd84c99e70
examples: improve chronyd.service
2017-01-23 15:58:55 +01:00
Miroslav Lichvar
d5c507975c
doc: update README
2017-01-12 16:34:28 +01:00
Miroslav Lichvar
b4235abd36
update copyright years
2017-01-12 16:34:28 +01:00
Miroslav Lichvar
1966085a97
test: add ntp_core unit test
2017-01-12 16:34:28 +01:00
Miroslav Lichvar
e31e7af48f
test: make 119-smoothtime more reliable
2017-01-12 16:34:28 +01:00
Miroslav Lichvar
adb9123fc3
test: extend util unit test
2017-01-12 16:34:28 +01:00
Miroslav Lichvar
b0f7efd59e
util: handle zero in conversion of NTP timestamps
...
Handle zero NTP timestamp in UTI_Ntp64ToTimespec() as a special value to
make it symmetric with UTI_TimespecToNtp64(). This is needed since
commit d75f6830f1
, in which a timestamp is
converted back and forth without checking for zero.
It also makes zero NTP timestamps more apparent in debug output.
2017-01-12 16:34:28 +01:00
Miroslav Lichvar
e28dfada8c
rtc: check for backward RTC steps
...
When accumulating a new sample, check if the new RTC time is newer the
last sample time. If it is not, discard all previous samples, assuming
something has stepped the RTC, or it's a broken RTC/driver.
2017-01-12 16:34:28 +01:00
Miroslav Lichvar
ac0b28cce6
sourcestats: align sample time used for source report
...
This reduces leak of sample times (and receive timestamps which are
related to sample times), which could be useful in off-path attacks on
unauthenticated symmetric interleaved mode.
2017-01-12 16:34:28 +01:00
Miroslav Lichvar
48b16ae66c
local: add assertion for precision
2017-01-12 16:34:28 +01:00
Miroslav Lichvar
061579ec28
ntp: don't send packets with RX equal to TX
...
Before sending an NTP packet, check whether the TX timestamp is not
equal to the RX timestamp. If it is, generate a new TX timestamp and try
again. This is extremely unlikely to happen in normal operation, but it
is needed for reliable detection of the interleaved mode.
2017-01-12 16:34:28 +01:00
Miroslav Lichvar
f2f834e7e7
ntp: limit maxdelay parameters
2017-01-12 16:34:27 +01:00
Miroslav Lichvar
a7802e9a76
fix some coverity warnings
2017-01-12 16:34:27 +01:00
Miroslav Lichvar
8f7ab95ff0
doc: update NEWS
2017-01-06 13:12:19 +01:00
Miroslav Lichvar
042c670747
doc: improve chrony.conf man page
2017-01-06 13:12:19 +01:00
Miroslav Lichvar
cacbe9976f
ntp: add options for compensating HW timestamping errors
2017-01-06 13:12:19 +01:00
Miroslav Lichvar
8efec1d640
ntp: add sanity check for HW timestamps
...
Accept HW timestamp only if it doesn't differ from the kernel/daemon
timestamp by more than one second.
2017-01-06 13:12:19 +01:00
Miroslav Lichvar
c44d282f0b
ntp: ignore zero HW timestamps
...
Apparently, zero HW timestamps are possible with buggy drivers/HW.
2017-01-06 13:12:19 +01:00
Miroslav Lichvar
4432f29bd2
sources: try to replace jittery sources
...
Similarly to falsetickers, distant, and unreachable sources, try to
replace sources that have jitter larger than maxjitter.
2017-01-06 13:12:19 +01:00
Miroslav Lichvar
5fee3ed5e9
client: print refid also as string in ntpdata output
2017-01-06 13:12:19 +01:00
Miroslav Lichvar
b76ea64263
ntp: log warning when KoD RATE is received in non-burst mode
2017-01-06 13:12:19 +01:00
Miroslav Lichvar
ed904f08a4
hwclock: return timestamp error
...
For now, when converting a raw timestamp, return error of the last
sample as the maximum error of the timestamp. This is needed to include
the PHC reading delay in the NTP dispersion.
2017-01-06 13:12:19 +01:00
Miroslav Lichvar
96cc80ffc8
ntp: improve dispersion calculation
...
Instead of adding precision (sum of the local and remote precision) to
the TX and RX timestamp error, include only the maximum.
2017-01-06 13:12:19 +01:00
Miroslav Lichvar
ab99373cfc
conf: change default rate limiting parameters
...
Change the default NTP rate limiting leak to 2 (25%). Change the default
command rate limiting interval to -4 (16 packets per second) and burst
to 8, so the interval is the only difference between NTP and command
rate limiting defaults.
2017-01-06 13:12:19 +01:00
Miroslav Lichvar
dbfb49384b
clientlog: disable NTP response rate limiting by default
...
This reverts commit 50022e9286
.
Testing showed that ntpd as an NTP client performs poorly when it's
getting only 25% of responses. At least for now, disable rate limiting
by default again.
2017-01-06 13:12:18 +01:00
Miroslav Lichvar
14bb9f29a3
ntp: calculate delay relative to local frequency
...
This should be more accurate as local frequency is usually
combined from multiple sources. This is a partial revert of commit
23a4e8b38d
.
2017-01-06 13:12:18 +01:00
Miroslav Lichvar
16519ee2cc
doc: update NEWS
2016-12-15 13:47:41 +01:00
Miroslav Lichvar
50022e9286
clientlog: enable NTP response rate limiting by default
...
Change the default interval of both NTP and command rate limiting to -10
(1024 packets per second) and the burst to 16. The default NTP leak is 2
(rate limiting is enabled by default) and the default command leak is 0
(rate limiting is disabled by default).
2016-12-15 13:47:41 +01:00
Miroslav Lichvar
5059019535
clientlog: randomize alignment of log timestamps
2016-12-15 13:47:41 +01:00
Miroslav Lichvar
c6a38f5069
clientlog: allow very short rate limiting intervals
...
Support negative token shift to allow coarse rate limiting with
intervals down to -19.
2016-12-15 13:47:41 +01:00
Miroslav Lichvar
11ed197663
configure: don't use recvmmsg() on FreeBSD
...
Don't try recvmmsg() on FreeBSD, at least for now. It is broken on
FreeBSD 11.0 and it's just a wrapper around recvmsg().
2016-12-15 13:47:41 +01:00
Miroslav Lichvar
5634e6b963
doc: improve hwtimestamp description
2016-12-14 16:19:35 +01:00
Miroslav Lichvar
db312a5ff6
ntp: allow wildcard in hwtimestamp directive
...
If "*" was specified, use getifaddrs() to get a list of all interfaces,
and try to enable HW timestamping on all of them.
2016-12-14 16:19:35 +01:00
Miroslav Lichvar
88c31b3785
client: improve ntpdata output
2016-12-14 16:19:35 +01:00
Miroslav Lichvar
967f3e4f77
client: don't require address in ntpdata command
...
If no address is specified, use the SOURCE_DATA command to get addresses
of NTP sources, and request NTP_DATA for all of them.
2016-12-14 16:19:35 +01:00