-
7ff74d9e
by Miroslav Lichvar at 2023-09-12T08:02:36+02:00
conf: fix reloading modified sources specified by IP address
When reloading a modified source from sourcedir which is ordered before
the original source (e.g. maxpoll was decreased), the new source is
added before the original one is removed. If the source is specified by
IP address, the addition fails due to the conflict with the original
source. Sources specified by hostname don't conflict. They are resolved
later (repeatedly if the resolver provides only conflicting addresses).
Split the processing of sorted source lists into two phases, so all
modified sources are removed before they are added again to avoid the
conflict.
Reported-by: Thomas Lange <thomas@xxxxxxxxxxxx>
-
37deee71
by Miroslav Lichvar at 2023-09-12T08:03:23+02:00
conf: cast subtraction operands in source comparison
Cast the values to int to not break the sorting in case they are changed
to unsigned types.
-
aa819632
by Miroslav Lichvar at 2023-09-12T08:11:25+02:00
conf: improve log message for failed additions in sources reload
Describe the error status in the log message when adding a source from
sourcedir failed.
-
a74b6327
by Miroslav Lichvar at 2023-09-12T10:31:36+02:00
siv: add support for AES-GCM-SIV in gnutls
Add support for AES-128-GCM-SIV in the current development code of
gnutls. There doesn't seem to be an API to get the cipher's minimum and
maximum nonce length and it doesn't check for invalid lengths. Hardcode
and check the limits in chrony for now.
-
55893152
by Miroslav Lichvar at 2023-09-12T10:31:36+02:00
configure: don't try AES-SIV-CMAC in nettle when disabled
Avoid confusing message when --without-nettle is specified.
-
f2d7baa9
by Miroslav Lichvar at 2023-09-12T10:36:23+02:00
configure: prefer gnutls over nss and tomcrypt for hashing
Reorder the tests in the configure script to prefer gnutls over nss and
tomcrypt as its support includes AES-CMAC.
-
e08a0ee6
by Miroslav Lichvar at 2023-09-26T14:58:42+02:00
doc: don't require same version for experimental features
-
bf616eaf
by Miroslav Lichvar at 2023-09-26T15:00:06+02:00
util: add conversion between intervals and NTP 64-bit format
This will be needed to save PTP correction in NTP timestamp format.
-
05f4f79c
by Miroslav Lichvar at 2023-09-26T15:01:24+02:00
ntp: rename exp1 extension field
Rename the exp1 extension field to exp_mono_root (monotonic timestamp +
root delay/dispersion) to better distinguish it from future experimental
extension fields.
-
85db8e3a
by Miroslav Lichvar at 2023-09-26T15:02:06+02:00
ntp: assert size of exp_mono_root field
-
07134f26
by Miroslav Lichvar at 2023-09-26T15:03:33+02:00
ntp: add function for detection of experimental fields
-
b0267475
by Miroslav Lichvar at 2023-09-26T15:10:19+02:00
ntp: extend local timestamp for PTP correction
Add two new fields to the NTP_Local_Timestamp structure:
- receive duration as the time it takes to receive the ethernet frame,
currently known only with HW timestamping
- network correction as a generalized PTP correction
The PTP correction is provided by transparent clocks in the correction
field of PTP messages to remove the receive, processing and queueing
delays of network switches and routers. Only one-step end-to-end unicast
transparent clocks are useful for NTP-over-PTP. Two-step transparent
clocks use follow-up messages and peer-to-peer transparent clocks don't
handle delay requests.
The RX duration will be included in the network correction to compensate
for asymmetric link speeds of the server and client as the NTP RX
timestamp corresponds to the end of the reception (in order to
compensate for the asymmetry in the normal case when no corrections
are applied).
-
6372a9f9
by Miroslav Lichvar at 2023-09-26T15:14:13+02:00
ntp: save PTP correction from NTP-over-PTP messages
When the RX duration is known (HW timestamping), save the PTP correction
from received PTP messages in the local RX timestamp.
-
d9ae724c
by Miroslav Lichvar at 2023-09-26T15:14:13+02:00
ntp: add extension field to provide network correction
To be able to verify PTP corrections, the client will need to know both
the correction of the request received by the server and the correction
of the response. Add a new experimental NTP extension field that the
clients will use to request the correction and servers return the
value.
-
8eef6310
by Miroslav Lichvar at 2023-09-26T15:14:13+02:00
ntp: add server support for network correction
Provide the network correction (PTP correction + RX duration) of the
request in the new extension field if included in the request and
NTP-over-PTP is enabled.
-
70cdd8b1
by Miroslav Lichvar at 2023-09-26T15:14:13+02:00
ntp: add client support for network correction
If the network correction is known for both the request and response,
and their sum is not larger that the measured peer delay, allowing the
transparent clocks to be running up to 100 ppm faster than the client's
clock, apply the corrections to the NTP offset and peer delay. Don't
correct the root delay to not change the estimated maximum error.