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
Miroslav Lichvar
2e311d1766
sourcestats: add upper bound for skew
2016-12-14 16:19:35 +01:00
Miroslav Lichvar
11f7cc0507
examples: avoid Unix domain socket in chrony-wait service
...
Use the -h option to force chronyc to use internet socket instead of
Unix domain as the access to the socket may be blocked by SELinux and
trying to open it generates SELinux warnings.
2016-12-13 12:57:25 +01:00
Miroslav Lichvar
a4f28892a5
cmdmon: update protocol changelog
2016-12-13 12:57:25 +01:00
Miroslav Lichvar
5bc53741be
sourcestats: add lower bound for std dev used for weighting
2016-12-13 12:57:25 +01:00
Miroslav Lichvar
95a4f33265
sourcestats: save asymmetry run in dump files
...
This allows the asymmetry correction to be applied right after restart.
2016-12-13 12:57:25 +01:00
Miroslav Lichvar
fac1093ebf
cmdmon: add reserved fields to ntpdata reply
...
This might be useful if ntpdata is changed to not require authorization
and new fields need to be added without breaking compatibility.
2016-12-13 12:57:25 +01:00
Miroslav Lichvar
1b1384ccaa
nameserv: set CLOEXEC flag on pipe file descriptors
2016-12-13 12:57:25 +01:00