Compare commits
No commits in common. 'c9' and 'i10' have entirely different histories.
@ -1,3 +1,2 @@
|
||||
bc7884eb4fde69478a00faee3d42092d426d57c1 SOURCES/chrony-4.3.tar.gz
|
||||
9c453ae65e5c1a6983cd1121410faf1ffd2d9092 SOURCES/clknetsim-f00531.tar.gz
|
||||
1395afa521d2e3302a31083edcf568bbc036aafc SOURCES/gpgkey-8F375C7E8D0EE125A3D3BD51537E2B76F7680DAC.asc
|
||||
35b070fdd446080232844ac9f70f84ca1823206f SOURCES/chrony-4.6.1.tar.gz
|
||||
a3289d3e8688b0818e67d3b7338e8b73501bef1e SOURCES/clknetsim-40bb97.tar.gz
|
||||
|
@ -1,3 +1,2 @@
|
||||
SOURCES/chrony-4.3.tar.gz
|
||||
SOURCES/clknetsim-f00531.tar.gz
|
||||
SOURCES/gpgkey-8F375C7E8D0EE125A3D3BD51537E2B76F7680DAC.asc
|
||||
SOURCES/chrony-4.6.1.tar.gz
|
||||
SOURCES/clknetsim-40bb97.tar.gz
|
||||
|
@ -0,0 +1,343 @@
|
||||
From 490c310c3218f5ea5a27d850e42fa1083cec788b Mon Sep 17 00:00:00 2001
|
||||
From: Sergey Cherevko <s.cherevko@msvsphere-os.ru>
|
||||
Date: Tue, 17 Dec 2024 20:40:35 +0300
|
||||
Subject: [PATCH] Synchronize time via Russian NTP servers
|
||||
|
||||
---
|
||||
FAQ | 12 ++++++------
|
||||
INSTALL | 4 ++--
|
||||
doc/chrony.conf.adoc | 8 ++++----
|
||||
doc/chrony.conf.man.in | 10 +++++-----
|
||||
doc/chronyc.adoc | 2 +-
|
||||
doc/chronyc.man.in | 4 ++--
|
||||
doc/faq.adoc | 12 ++++++------
|
||||
doc/installation.adoc | 4 ++--
|
||||
examples/chrony.conf.example1 | 11 +++++++++--
|
||||
examples/chrony.conf.example2 | 12 +++++++++---
|
||||
examples/chrony.conf.example3 | 4 ++--
|
||||
11 files changed, 48 insertions(+), 35 deletions(-)
|
||||
|
||||
diff --git a/FAQ b/FAQ
|
||||
index c96acfa..18687b7 100644
|
||||
--- a/FAQ
|
||||
+++ b/FAQ
|
||||
@@ -101,7 +101,7 @@ poll multiple servers at the same time and detect servers having incorrect time
|
||||
(falsetickers in the NTP terminology). It should be used only with trusted
|
||||
reliable servers, ideally in local network.
|
||||
|
||||
-Using timesyncd with pool.ntp.org is problematic. The pool is very robust as a
|
||||
+Using timesyncd with https://www.vniiftri.ru/ is problematic. The pool is very robust as a
|
||||
whole, but the individual servers run by volunteers cannot be relied on.
|
||||
Occasionally, servers drift away or make a step to distant past or future due
|
||||
to misconfiguration, problematic implementation, and other bugs (e.g. in
|
||||
@@ -141,10 +141,10 @@ next boot from the RTC, the rtcsync directive enables a mode in which the
|
||||
system time is periodically copied to the RTC. It is supported on Linux and
|
||||
macOS.
|
||||
|
||||
-If you wanted to use public NTP servers from the pool.ntp.org project, the
|
||||
+If you wanted to use public NTP servers from the https://www.vniiftri.ru/ project, the
|
||||
minimal chrony.conf file could be:
|
||||
|
||||
-pool pool.ntp.org iburst
|
||||
+pool https://www.vniiftri.ru/ iburst
|
||||
driftfile /var/lib/chrony/drift
|
||||
makestep 1 3
|
||||
rtcsync
|
||||
@@ -433,7 +433,7 @@ the -Q option it will print the measured offset without setting the clock. If
|
||||
you do not want to use a configuration file, NTP servers can be specified on
|
||||
the command line. For example:
|
||||
|
||||
-# chronyd -q 'pool pool.ntp.org iburst'
|
||||
+# chronyd -q 'pool https://www.vniiftri.ru/ iburst'
|
||||
|
||||
The command above would normally take about 5 seconds if the servers were well
|
||||
synchronised and responding to all requests. If not synchronised or responding,
|
||||
@@ -444,7 +444,7 @@ option to one (supported since chrony version 4.0), and a timeout can be
|
||||
specified with the -t option. The following command would take only up to about
|
||||
one second.
|
||||
|
||||
-# chronyd -q -t 1 'server pool.ntp.org iburst maxsamples 1'
|
||||
+# chronyd -q -t 1 'server https://www.vniiftri.ru/ iburst maxsamples 1'
|
||||
|
||||
It is not recommended to run chronyd with the -q option periodically (e.g. from
|
||||
a cron job) as a replacement for the daemon mode, because it performs
|
||||
@@ -507,7 +507,7 @@ same server instance.
|
||||
|
||||
An example configuration of the client instance could be
|
||||
|
||||
-pool pool.ntp.org iburst
|
||||
+pool https://www.vniiftri.ru/ iburst
|
||||
allow 127.0.0.1
|
||||
port 11123
|
||||
driftfile /var/lib/chrony/drift
|
||||
diff --git a/INSTALL b/INSTALL
|
||||
index 9ca6e22..6f48020 100644
|
||||
--- a/INSTALL
|
||||
+++ b/INSTALL
|
||||
@@ -116,10 +116,10 @@ make install-docs
|
||||
Now that the software is successfully installed, the next step is to set up a
|
||||
configuration file. The default location of the file is /etc/chrony.conf.
|
||||
Several examples of configuration with comments are included in the examples
|
||||
-directory. Suppose you want to use public NTP servers from the pool.ntp.org
|
||||
+directory. Suppose you want to use public NTP servers from the https://www.vniiftri.ru/
|
||||
project as your time reference. A minimal useful configuration file could be
|
||||
|
||||
-pool pool.ntp.org iburst
|
||||
+pool https://www.vniiftri.ru/ iburst
|
||||
makestep 1.0 3
|
||||
rtcsync
|
||||
|
||||
diff --git a/doc/chrony.conf.adoc b/doc/chrony.conf.adoc
|
||||
index cb3f95c..1f0168e 100644
|
||||
--- a/doc/chrony.conf.adoc
|
||||
+++ b/doc/chrony.conf.adoc
|
||||
@@ -365,7 +365,7 @@ sources responding to requests. The default value is 4 and the maximum value is
|
||||
An example of the *pool* directive is
|
||||
+
|
||||
----
|
||||
-pool pool.ntp.org iburst maxsources 3
|
||||
+pool https://www.vniiftri.ru/ iburst maxsources 3
|
||||
----
|
||||
|
||||
[[peer]]*peer* _hostname_ [_option_]...::
|
||||
@@ -2820,7 +2820,7 @@ the following methods:
|
||||
stratum 1 and stratum 2 servers. You should find one or more servers that are
|
||||
near to you. Check that their access policy allows you to use their
|
||||
facilities.
|
||||
-* Use public servers from the https://www.pool.ntp.org/[pool.ntp.org] project.
|
||||
+* Use public servers from the https://www.vniiftri.ru/[ntp1.vniiftri.ru] project.
|
||||
|
||||
Assuming that your NTP servers are called _ntp1.example.net_, _ntp2.example.net_
|
||||
and _ntp3.example.net_, your _chrony.conf_ file could contain as a minimum:
|
||||
@@ -2853,7 +2853,7 @@ directive instead of multiple *server* directives. The configuration file could
|
||||
in this case look like:
|
||||
|
||||
----
|
||||
-pool pool.ntp.org iburst
|
||||
+pool ntp1.vniiftri.ru iburst
|
||||
driftfile @CHRONYVARDIR@/drift
|
||||
makestep 1.0 3
|
||||
rtcsync
|
||||
@@ -3112,7 +3112,7 @@ information to be saved.
|
||||
=== Public NTP server
|
||||
|
||||
*chronyd* can be configured to operate as a public NTP server, e.g. to join the
|
||||
-https://www.pool.ntp.org/en/join.html[pool.ntp.org] project. The configuration
|
||||
+https://www.vniiftri.ru/[ntp1.vniiftri.ru] project. The configuration
|
||||
is similar to the NTP client with permanent connection, except it needs to
|
||||
allow client access from all addresses. It is recommended to find at least four
|
||||
good servers (e.g. from the pool, or on the NTP homepage). If the server has a
|
||||
diff --git a/doc/chrony.conf.man.in b/doc/chrony.conf.man.in
|
||||
index 66d2358..3a6d6a7 100644
|
||||
--- a/doc/chrony.conf.man.in
|
||||
+++ b/doc/chrony.conf.man.in
|
||||
@@ -479,7 +479,7 @@ An example of the \fBpool\fP directive is
|
||||
.if n .RS 4
|
||||
.nf
|
||||
.fam C
|
||||
-pool pool.ntp.org iburst maxsources 3
|
||||
+pool ntp1.vniiftri.ru iburst maxsources 3
|
||||
.fam
|
||||
.fi
|
||||
.if n .RE
|
||||
@@ -4651,7 +4651,7 @@ facilities.
|
||||
. IP \(bu 2.3
|
||||
.\}
|
||||
Use public servers from the \c
|
||||
-.URL "https://www.pool.ntp.org/" "pool.ntp.org" ""
|
||||
+.URL "https://www.ntp1.vniiftri.ru/" "ntp1.vniiftri.ru" ""
|
||||
project.
|
||||
.RE
|
||||
.sp
|
||||
@@ -4696,7 +4696,7 @@ in this case look like:
|
||||
.if n .RS 4
|
||||
.nf
|
||||
.fam C
|
||||
-pool pool.ntp.org iburst
|
||||
+pool ntp1.vniiftri.ru iburst
|
||||
driftfile @CHRONYVARDIR@/drift
|
||||
makestep 1.0 3
|
||||
rtcsync
|
||||
@@ -4993,7 +4993,7 @@ information to be saved.
|
||||
.SS "Public NTP server"
|
||||
.sp
|
||||
\fBchronyd\fP can be configured to operate as a public NTP server, e.g. to join the
|
||||
-.URL "https://www.pool.ntp.org/en/join.html" "pool.ntp.org" ""
|
||||
+.URL "https://www.ntp.vniiftri.ru/en/join.html" "ntp1.vniiftri.ru" ""
|
||||
project. The configuration
|
||||
is similar to the NTP client with permanent connection, except it needs to
|
||||
allow client access from all addresses. It is recommended to find at least four
|
||||
@@ -5040,4 +5040,4 @@ For instructions on how to report bugs, please visit
|
||||
.URL "https://chrony\-project.org/" "" "."
|
||||
.SH "AUTHORS"
|
||||
.sp
|
||||
-chrony was written by Richard Curnow, Miroslav Lichvar, and others.
|
||||
\ No newline at end of file
|
||||
+chrony was written by Richard Curnow, Miroslav Lichvar, and others.
|
||||
diff --git a/doc/chronyc.adoc b/doc/chronyc.adoc
|
||||
index 96a0551..d88c7dc 100644
|
||||
--- a/doc/chronyc.adoc
|
||||
+++ b/doc/chronyc.adoc
|
||||
@@ -979,7 +979,7 @@ them immediately, e.g. after suspending and resuming the machine in a different
|
||||
network.
|
||||
+
|
||||
Note that with pools which have more than 16 addresses, or not all IPv4 or IPv6
|
||||
-addresses are included in a single DNS response (e.g. pool.ntp.org), this
|
||||
+addresses are included in a single DNS response (e.g. https://www.vniiftri.ru/), this
|
||||
command might replace the addresses even if they are still in the pool.
|
||||
|
||||
[[reload]]*reload* *sources*::
|
||||
diff --git a/doc/chronyc.man.in b/doc/chronyc.man.in
|
||||
index 4541fc6..7888eff 100644
|
||||
--- a/doc/chronyc.man.in
|
||||
+++ b/doc/chronyc.man.in
|
||||
@@ -1793,7 +1793,7 @@ them immediately, e.g. after suspending and resuming the machine in a different
|
||||
network.
|
||||
.sp
|
||||
Note that with pools which have more than 16 addresses, or not all IPv4 or IPv6
|
||||
-addresses are included in a single DNS response (e.g. pool.ntp.org), this
|
||||
+addresses are included in a single DNS response (e.g. ntp1.vniiftri.ru), this
|
||||
command might replace the addresses even if they are still in the pool.
|
||||
.RE
|
||||
.sp
|
||||
@@ -2753,4 +2753,4 @@ For instructions on how to report bugs, please visit
|
||||
.URL "https://chrony\-project.org/" "" "."
|
||||
.SH "AUTHORS"
|
||||
.sp
|
||||
-chrony was written by Richard Curnow, Miroslav Lichvar, and others.
|
||||
\ No newline at end of file
|
||||
+chrony was written by Richard Curnow, Miroslav Lichvar, and others.
|
||||
diff --git a/doc/faq.adoc b/doc/faq.adoc
|
||||
index 8fd350f..69b8b3e 100644
|
||||
--- a/doc/faq.adoc
|
||||
+++ b/doc/faq.adoc
|
||||
@@ -56,7 +56,7 @@ limitations is that it cannot poll multiple servers at the same time and detect
|
||||
servers having incorrect time (falsetickers in the NTP terminology). It should
|
||||
be used only with trusted reliable servers, ideally in local network.
|
||||
|
||||
-Using `timesyncd` with `pool.ntp.org` is problematic. The pool is very
|
||||
+Using `timesyncd` with `ntp.vniiftri.ru` is problematic. The pool is very
|
||||
robust as a whole, but the individual servers run by volunteers cannot be
|
||||
relied on. Occasionally, servers drift away or make a step to distant past or
|
||||
future due to misconfiguration, problematic implementation, and other bugs
|
||||
@@ -98,11 +98,11 @@ system time is periodically copied to the RTC. It is supported on Linux and
|
||||
macOS.
|
||||
|
||||
If you wanted to use public NTP servers from the
|
||||
-https://www.pool.ntp.org/[pool.ntp.org] project, the minimal _chrony.conf_ file
|
||||
+https://www.vniiftri.ru/[ntp1.vniiftri.ru] project, the minimal _chrony.conf_ file
|
||||
could be:
|
||||
|
||||
----
|
||||
-pool pool.ntp.org iburst
|
||||
+pool ntp1.vniiftri.ru iburst
|
||||
driftfile /var/lib/chrony/drift
|
||||
makestep 1 3
|
||||
rtcsync
|
||||
@@ -411,7 +411,7 @@ clock. If you do not want to use a configuration file, NTP servers can be
|
||||
specified on the command line. For example:
|
||||
|
||||
----
|
||||
-# chronyd -q 'pool pool.ntp.org iburst'
|
||||
+# chronyd -q 'pool ntp1.vniiftri.ru iburst'
|
||||
----
|
||||
|
||||
The command above would normally take about 5 seconds if the servers were
|
||||
@@ -424,7 +424,7 @@ timeout can be specified with the `-t` option. The following command would take
|
||||
only up to about one second.
|
||||
|
||||
----
|
||||
-# chronyd -q -t 1 'server pool.ntp.org iburst maxsamples 1'
|
||||
+# chronyd -q -t 1 'server ntp1.vniiftri.ru iburst maxsamples 1'
|
||||
----
|
||||
|
||||
It is not recommended to run `chronyd` with the `-q` option periodically (e.g.
|
||||
@@ -491,7 +491,7 @@ the same server instance.
|
||||
An example configuration of the client instance could be
|
||||
|
||||
----
|
||||
-pool pool.ntp.org iburst
|
||||
+pool ntp1.vniiftri.ru iburst
|
||||
allow 127.0.0.1
|
||||
port 11123
|
||||
driftfile /var/lib/chrony/drift
|
||||
diff --git a/doc/installation.adoc b/doc/installation.adoc
|
||||
index b683911..0fa1eca 100644
|
||||
--- a/doc/installation.adoc
|
||||
+++ b/doc/installation.adoc
|
||||
@@ -146,11 +146,11 @@ make install-docs
|
||||
Now that the software is successfully installed, the next step is to set up a
|
||||
configuration file. The default location of the file is _/etc/chrony.conf_.
|
||||
Several examples of configuration with comments are included in the examples
|
||||
-directory. Suppose you want to use public NTP servers from the pool.ntp.org
|
||||
+directory. Suppose you want to use public NTP servers from the ntp1.vniiftri.ru
|
||||
project as your time reference. A minimal useful configuration file could be
|
||||
|
||||
----
|
||||
-pool pool.ntp.org iburst
|
||||
+pool ntp1.vniiftri.ru iburst
|
||||
makestep 1.0 3
|
||||
rtcsync
|
||||
----
|
||||
diff --git a/examples/chrony.conf.example1 b/examples/chrony.conf.example1
|
||||
index 5e93ea7..dd960ad 100644
|
||||
--- a/examples/chrony.conf.example1
|
||||
+++ b/examples/chrony.conf.example1
|
||||
@@ -1,5 +1,12 @@
|
||||
-# Use public NTP servers from the pool.ntp.org project.
|
||||
-pool pool.ntp.org iburst
|
||||
+# Use Russian public NTP servers (vniiftri and msk-ix)
|
||||
+server ntp.msk-ix.ru iburst
|
||||
+server ntp1.vniiftri.ru iburst
|
||||
+server vniiftri2.khv.ru iburst
|
||||
+server ntp1.niiftri.irkutsk.ru iburst
|
||||
+server ntp.sstf.nsk.ru iburst
|
||||
+server ntp2.vniiftri.ru iburst
|
||||
+server ntp3.vniiftri.ru iburst
|
||||
+server ntp4.vniiftri.ru iburst
|
||||
|
||||
# Record the rate at which the system clock gains/losses time.
|
||||
driftfile /var/lib/chrony/drift
|
||||
diff --git a/examples/chrony.conf.example2 b/examples/chrony.conf.example2
|
||||
index bf2bbdd..61b4576 100644
|
||||
--- a/examples/chrony.conf.example2
|
||||
+++ b/examples/chrony.conf.example2
|
||||
@@ -1,6 +1,12 @@
|
||||
-# Use public servers from the pool.ntp.org project.
|
||||
-# Please consider joining the pool (https://www.pool.ntp.org/join.html).
|
||||
-pool pool.ntp.org iburst
|
||||
+# Use Russian public NTP servers (vniiftri and msk-ix)
|
||||
+server ntp.msk-ix.ru iburst
|
||||
+server ntp1.vniiftri.ru iburst
|
||||
+server vniiftri2.khv.ru iburst
|
||||
+server ntp1.niiftri.irkutsk.ru iburst
|
||||
+server ntp.sstf.nsk.ru iburst
|
||||
+server ntp2.vniiftri.ru iburst
|
||||
+server ntp3.vniiftri.ru iburst
|
||||
+server ntp4.vniiftri.ru iburst
|
||||
|
||||
# Record the rate at which the system clock gains/losses time.
|
||||
driftfile /var/lib/chrony/drift
|
||||
diff --git a/examples/chrony.conf.example3 b/examples/chrony.conf.example3
|
||||
index 6d84c01..e893292 100644
|
||||
--- a/examples/chrony.conf.example3
|
||||
+++ b/examples/chrony.conf.example3
|
||||
@@ -25,13 +25,13 @@
|
||||
# Provider or company have one or more NTP servers that you can specify.
|
||||
# Failing that, there are a lot of public NTP servers. There is a list
|
||||
# you can access at http://support.ntp.org/bin/view/Servers/WebHome or
|
||||
-# you can use servers from the pool.ntp.org project.
|
||||
+# you can use servers from the https://www.vniiftri.ru/ project.
|
||||
|
||||
! server ntp1.example.net iburst
|
||||
! server ntp2.example.net iburst
|
||||
! server ntp3.example.net iburst
|
||||
|
||||
-! pool pool.ntp.org iburst
|
||||
+! pool ntp1.vniiftri.ru iburst
|
||||
|
||||
#######################################################################
|
||||
### AVOIDING POTENTIALLY BOGUS CHANGES TO YOUR CLOCK
|
||||
--
|
||||
2.43.5
|
||||
|
@ -1,16 +0,0 @@
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQIzBAABCAAdFiEEjzdcfo0O4SWj071RU34rdvdoDawFAmMPLJAACgkQU34rdvdo
|
||||
DaxDKRAAh5wfl990Q6sTPxXI92GegZYIGUxJDlCkJtemoI98g+DQbuCJ46AXsAn/
|
||||
CIBTbPU3Brvq2KR1nDze/G/YOXkaqoFyaJD00H73qBI7MOMiSS4KbMQ26xLNrnHL
|
||||
MCHrgZs+MHhyo6IEpesvr7F/+qyGHZifFlHT+HtCM+SBU1qooYUyQAdnhyK0rb16
|
||||
j7/Jc5A28jROZB4lcRQyvB085whPj299FsB/0wJW5RjwA5tcpPH0sTozain3vvlo
|
||||
64BAJXcQsyRsilcaPFlkY5zPgFiAuaEJnfTe/uMdfDO/V/g6wADt64+HhaxNPO+z
|
||||
p3vzEGpio4Oi1HyYiXpDx9bMM1RLTpmKt9p1V5Y98Fn5Ymx6I7yAe1qwvA7T8eoC
|
||||
hK8C27jPytiOgaWSYqPYb0WaHY3JZZpFzdtr0bAPSkEzL4EwrxVmbgTnkuzk2hxk
|
||||
6MiIuDLUd9Zl1oroqv+rTd0XA8lXUcoyFhqtsMXHWdAC3yzteaPcJKzv7l9DT6xV
|
||||
YadKrSBkzob9jRWRngY3FMKjTvcwnxLE8dfsNlsDNGyLNtTEOJ/QYgh6muOHh80L
|
||||
MAayI8hSWPTR/3IXKlathjLIeilsrFthIZcrPq520FoS4A7E3A80vR3uKOqAIDwh
|
||||
Y+6ASvEkCHAUneJqlLihqglYTNJlFnVhGw9/LV85JsmRsCZ0+j8=
|
||||
=2xMP
|
||||
-----END PGP SIGNATURE-----
|
@ -0,0 +1,16 @@
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQIzBAABCAAdFiEEjzdcfo0O4SWj071RU34rdvdoDawFAmcFKp4ACgkQU34rdvdo
|
||||
DazMmxAAlSONiDmb/EpwVBigLlVdtyelr6G/9ISMQv/f3CzNlliZOWBQBYiK8UfL
|
||||
+ohx4uh3R10kWMMJEpeJ7VQMkh3Jn6BKWE3QKQQDKI/Cd39ceeTO57ZZreI3dTRh
|
||||
8w9xxdwYwEobHhabXQ7wCXDIvssyC6w5LXw4dLmo3N1dC7ZNxJhYgmXVScw6RK5m
|
||||
bc5Ch/H9bxD1xZiWflXC2dW57nJumJDnMlRVdYot9P2zD0DrGy3cFmh6w89gip67
|
||||
T2PrhQ9vQUt8zWKEt9CQi0EtDJ8q1B7HKTLSmM6iEGRjphij+2Z8i0EiQRYA+V++
|
||||
ZQVGg+O6MJYuNbPGdwVBZZMVS4wF3mnNkmBk0/tlxNnNH9dqQ1RquRxQCUPDsGwF
|
||||
dZUmptZWctNaM7TfICdnjEWz/7flR52+BMi5VRYvAK9MCqhTCkg5bw53r02wNSTK
|
||||
M2PXMRbGuYUGsPDkXaKHf478uhiZF+3ka6tiomK0RT9ip304qhNxdzhsW942ryH2
|
||||
yUaFFRGpNk+KJI7e7GfmWmRrBhpi4tqsaFQ4dvUXhlSmk4zVbHIzkgj6Ej6pgJrW
|
||||
w3lUOlQ49DfNkUnZIVAFHJ6LAmeejTvMNlq9IKHfuFA18X7yhHQI49SXiOUOhKD2
|
||||
/z6nMP0cjxQ6eij5UupKx/6/IHTIt9uUpTU1taxAsVXKcBemkN8=
|
||||
=/5W0
|
||||
-----END PGP SIGNATURE-----
|
@ -0,0 +1,226 @@
|
||||
commit b9b338a8df23927d8104f41ecb21baa3558de0cd
|
||||
Author: Miroslav Lichvar <mlichvar@redhat.com>
|
||||
Date: Thu Oct 31 14:41:19 2024 +0100
|
||||
|
||||
refclock: rework update of reachability
|
||||
|
||||
Update the reachability register of a refclock source by 1 if a valid
|
||||
measurement is received by the drivers between source polls, and not
|
||||
only when it is accumulated to sourcestats, similarly to how
|
||||
reachability works with NTP sources.
|
||||
|
||||
This avoids drops in the reported reachability when a PHC refclock is
|
||||
dropping samples due to significant changes in the measured delay (e.g.
|
||||
due to high PCIe load), or a PPS refclock dropping samples due to failed
|
||||
lock.
|
||||
|
||||
diff --git a/doc/chronyc.adoc b/doc/chronyc.adoc
|
||||
index 935f1da9..dea93c9f 100644
|
||||
--- a/doc/chronyc.adoc
|
||||
+++ b/doc/chronyc.adoc
|
||||
@@ -364,9 +364,12 @@ a measurement is being made every 64 seconds. *chronyd* automatically varies
|
||||
the polling rate in response to prevailing conditions.
|
||||
*Reach*:::
|
||||
This shows the source's reachability register printed as an octal number. The
|
||||
-register has 8 bits and is updated on every received or missed packet from
|
||||
-the source. A value of 377 indicates that a valid reply was received for all
|
||||
-from the last eight transmissions.
|
||||
+register has 8 bits. It is shifted to left by one bit with each poll and it is
|
||||
+updated by 1 when a valid NTP response, or just a sample in case of a reference
|
||||
+clock, is received from the source. A value of 377 indicates that a valid
|
||||
+response or sample was received for all of the last 8 polls. Note that samples
|
||||
+can be dropped if they are not considered good enough for synchronisation, but
|
||||
+the reachability register will still have 1s for their polls.
|
||||
*LastRx*:::
|
||||
This column shows how long ago the last good sample (which is shown in the next
|
||||
column) was received from the source. Measurements that failed some tests are
|
||||
diff --git a/refclock.c b/refclock.c
|
||||
index 22d775a5..d14560fa 100644
|
||||
--- a/refclock.c
|
||||
+++ b/refclock.c
|
||||
@@ -63,6 +63,7 @@ struct RCL_Instance_Record {
|
||||
int driver_poll;
|
||||
int driver_polled;
|
||||
int poll;
|
||||
+ int reached;
|
||||
int leap_status;
|
||||
int local;
|
||||
int pps_forced;
|
||||
@@ -175,6 +176,7 @@ RCL_AddRefclock(RefclockParameters *params)
|
||||
inst->driver_poll = params->driver_poll;
|
||||
inst->poll = params->poll;
|
||||
inst->driver_polled = 0;
|
||||
+ inst->reached = 0;
|
||||
inst->leap_status = LEAP_Normal;
|
||||
inst->local = params->local;
|
||||
inst->pps_forced = params->pps_forced;
|
||||
@@ -665,6 +667,12 @@ RCL_AddCookedPulse(RCL_Instance instance, struct timespec *cooked_time,
|
||||
return 1;
|
||||
}
|
||||
|
||||
+void
|
||||
+RCL_UpdateReachability(RCL_Instance instance)
|
||||
+{
|
||||
+ instance->reached++;
|
||||
+}
|
||||
+
|
||||
double
|
||||
RCL_GetPrecision(RCL_Instance instance)
|
||||
{
|
||||
@@ -792,6 +800,9 @@ poll_timeout(void *arg)
|
||||
if (!(inst->driver->poll && inst->driver_polled < (1 << (inst->poll - inst->driver_poll)))) {
|
||||
inst->driver_polled = 0;
|
||||
|
||||
+ SRC_UpdateReachability(inst->source, inst->reached > 0);
|
||||
+ inst->reached = 0;
|
||||
+
|
||||
if (SPF_GetFilteredSample(inst->filter, &sample)) {
|
||||
double local_freq, local_offset;
|
||||
struct timespec local_ref_time;
|
||||
@@ -807,7 +818,6 @@ poll_timeout(void *arg)
|
||||
inst->leap_status = LEAP_Unsynchronised;
|
||||
}
|
||||
|
||||
- SRC_UpdateReachability(inst->source, 1);
|
||||
SRC_UpdateStatus(inst->source, stratum, inst->leap_status);
|
||||
SRC_AccumulateSample(inst->source, &sample);
|
||||
SRC_SelectSource(inst->source);
|
||||
@@ -816,8 +826,6 @@ poll_timeout(void *arg)
|
||||
follow_local(inst, &local_ref_time, local_freq, local_offset);
|
||||
|
||||
log_sample(inst, &sample.time, 1, 0, 0.0, sample.offset, sample.peer_dispersion);
|
||||
- } else {
|
||||
- SRC_UpdateReachability(inst->source, 0);
|
||||
}
|
||||
}
|
||||
|
||||
diff --git a/refclock.h b/refclock.h
|
||||
index 40c852de..5fdbf9c7 100644
|
||||
--- a/refclock.h
|
||||
+++ b/refclock.h
|
||||
@@ -81,6 +81,7 @@ extern int RCL_AddSample(RCL_Instance instance, struct timespec *sample_time,
|
||||
extern int RCL_AddPulse(RCL_Instance instance, struct timespec *pulse_time, double second);
|
||||
extern int RCL_AddCookedPulse(RCL_Instance instance, struct timespec *cooked_time,
|
||||
double second, double dispersion, double raw_correction);
|
||||
+extern void RCL_UpdateReachability(RCL_Instance instance);
|
||||
extern double RCL_GetPrecision(RCL_Instance instance);
|
||||
extern int RCL_GetDriverPoll(RCL_Instance instance);
|
||||
|
||||
diff --git a/refclock_phc.c b/refclock_phc.c
|
||||
index e12f2258..6c0914f6 100644
|
||||
--- a/refclock_phc.c
|
||||
+++ b/refclock_phc.c
|
||||
@@ -154,6 +154,8 @@ static void process_ext_pulse(RCL_Instance instance, struct timespec *phc_ts)
|
||||
}
|
||||
phc->last_extts = *phc_ts;
|
||||
|
||||
+ RCL_UpdateReachability(instance);
|
||||
+
|
||||
if (!HCL_CookTime(phc->clock, phc_ts, &local_ts, &local_err))
|
||||
return;
|
||||
|
||||
@@ -204,6 +206,9 @@ static int phc_poll(RCL_Instance instance)
|
||||
if (n_readings < 1)
|
||||
return 0;
|
||||
|
||||
+ if (!phc->extpps)
|
||||
+ RCL_UpdateReachability(instance);
|
||||
+
|
||||
if (!HCL_ProcessReadings(phc->clock, n_readings, readings, &phc_ts, &sys_ts, &phc_err))
|
||||
return 0;
|
||||
|
||||
diff --git a/refclock_pps.c b/refclock_pps.c
|
||||
index 880c13fc..f00b7ccb 100644
|
||||
--- a/refclock_pps.c
|
||||
+++ b/refclock_pps.c
|
||||
@@ -143,6 +143,8 @@ static int pps_poll(RCL_Instance instance)
|
||||
|
||||
pps->last_seq = seq;
|
||||
|
||||
+ RCL_UpdateReachability(instance);
|
||||
+
|
||||
return RCL_AddPulse(instance, &ts, 1.0e-9 * ts.tv_nsec);
|
||||
}
|
||||
|
||||
diff --git a/refclock_shm.c b/refclock_shm.c
|
||||
index ee13e871..22e51820 100644
|
||||
--- a/refclock_shm.c
|
||||
+++ b/refclock_shm.c
|
||||
@@ -109,6 +109,8 @@ static int shm_poll(RCL_Instance instance)
|
||||
|
||||
shm->valid = 0;
|
||||
|
||||
+ RCL_UpdateReachability(instance);
|
||||
+
|
||||
receive_ts.tv_sec = t.receiveTimeStampSec;
|
||||
clock_ts.tv_sec = t.clockTimeStampSec;
|
||||
|
||||
diff --git a/refclock_sock.c b/refclock_sock.c
|
||||
index 2da57ef5..49cf3559 100644
|
||||
--- a/refclock_sock.c
|
||||
+++ b/refclock_sock.c
|
||||
@@ -129,6 +129,8 @@ static void read_sample(int sockfd, int event, void *anything)
|
||||
UTI_TimevalToTimespec(&sample.tv, &sys_ts);
|
||||
UTI_NormaliseTimespec(&sys_ts);
|
||||
|
||||
+ RCL_UpdateReachability(instance);
|
||||
+
|
||||
if (!UTI_IsTimeOffsetSane(&sys_ts, sample.offset))
|
||||
return;
|
||||
|
||||
diff --git a/test/simulation/106-refclock b/test/simulation/106-refclock
|
||||
index dedab9b8..3793bd86 100755
|
||||
--- a/test/simulation/106-refclock
|
||||
+++ b/test/simulation/106-refclock
|
||||
@@ -114,6 +114,32 @@ Root delay : 0\.000000001 seconds
|
||||
rm -f tmp/refclocks.log
|
||||
fi
|
||||
|
||||
+export CLKNETSIM_PHC_JITTER_OFF=$[2 * 25 * 492]
|
||||
+export CLKNETSIM_PHC_JITTER_ON=$[2 * 25 * 8]
|
||||
+export CLKNETSIM_PHC_JITTER=1e-6
|
||||
+refclock_offset=0.0
|
||||
+refclock_jitter=1e-9
|
||||
+min_sync_time=5
|
||||
+max_sync_time=7
|
||||
+time_max_limit=1e-7
|
||||
+time_rms_limit=1e-8
|
||||
+client_conf="refclock PHC /dev/ptp0:nocrossts poll 0
|
||||
+logdir tmp
|
||||
+log refclocks"
|
||||
+chronyc_start=500
|
||||
+chronyc_conf="sources"
|
||||
+
|
||||
+run_test || test_fail
|
||||
+check_chronyd_exit || test_fail
|
||||
+check_source_selection || test_fail
|
||||
+check_sync || test_fail
|
||||
+check_chronyc_output "^MS.*
|
||||
+=*
|
||||
+#\* PHC0 0 0 377 8 .*$" || test_fail
|
||||
+
|
||||
+unset CLKNETSIM_PHC_JITTER_OFF
|
||||
+unset CLKNETSIM_PHC_JITTER_ON
|
||||
+export CLKNETSIM_PHC_JITTER=1e-7
|
||||
refclock_offset="(+ 0.399 (sum 1e-3))"
|
||||
refclock_jitter=1e-6
|
||||
servers=1
|
||||
diff -up chrony/doc/chronyc.man.orig chrony/doc/chronyc.man
|
||||
--- chrony/doc/chronyc.man.in.orig 2024-11-06 12:07:50.555216174 +0100
|
||||
+++ chrony/doc/chronyc.man.in 2024-11-06 12:07:58.131217759 +0100
|
||||
@@ -535,9 +535,12 @@ the polling rate in response to prevaili
|
||||
\fBReach\fP
|
||||
.RS 4
|
||||
This shows the source\(cqs reachability register printed as an octal number. The
|
||||
-register has 8 bits and is updated on every received or missed packet from
|
||||
-the source. A value of 377 indicates that a valid reply was received for all
|
||||
-from the last eight transmissions.
|
||||
+register has 8 bits. It is shifted to left by one bit with each poll and it is
|
||||
+updated by 1 when a valid NTP response, or just a sample in case of a reference
|
||||
+clock, is received from the source. A value of 377 indicates that a valid
|
||||
+response or sample was received for all of the last 8 polls. Note that samples
|
||||
+can be dropped if they are not considered good enough for synchronisation, but
|
||||
+the reachability register will still have 1s for their polls.
|
||||
.RE
|
||||
.sp
|
||||
\fBLastRx\fP
|
@ -1,38 +0,0 @@
|
||||
diff -up chrony-4.2/examples/chronyd.service.services chrony-4.2/examples/chronyd.service
|
||||
--- chrony-4.2/examples/chronyd.service.services 2021-12-16 13:17:42.000000000 +0100
|
||||
+++ chrony-4.2/examples/chronyd.service 2022-01-19 13:55:59.066677473 +0100
|
||||
@@ -32,8 +32,7 @@ ProtectKernelLogs=yes
|
||||
ProtectKernelModules=yes
|
||||
ProtectKernelTunables=yes
|
||||
ProtectProc=invisible
|
||||
-ProtectSystem=strict
|
||||
-ReadWritePaths=/run /var/lib/chrony -/var/log
|
||||
+ProtectSystem=full
|
||||
RestrictAddressFamilies=AF_INET AF_INET6 AF_UNIX
|
||||
RestrictNamespaces=yes
|
||||
RestrictSUIDSGID=yes
|
||||
@@ -42,7 +41,6 @@ SystemCallFilter=~@cpu-emulation @debug
|
||||
|
||||
# Adjust restrictions for /usr/sbin/sendmail (mailonchange directive)
|
||||
NoNewPrivileges=no
|
||||
-ReadWritePaths=-/var/spool
|
||||
RestrictAddressFamilies=AF_NETLINK
|
||||
|
||||
[Install]
|
||||
|
||||
Avoid a SELinux issue
|
||||
|
||||
diff --git a/examples/chrony-wait.service b/examples/chrony-wait.service
|
||||
index 72b028f2..57646950 100644
|
||||
--- a/examples/chrony-wait.service
|
||||
+++ b/examples/chrony-wait.service
|
||||
@@ -18,7 +18,7 @@ StandardOutput=null
|
||||
|
||||
CapabilityBoundingSet=
|
||||
DevicePolicy=closed
|
||||
-DynamicUser=yes
|
||||
+#DynamicUser=yes
|
||||
IPAddressAllow=localhost
|
||||
IPAddressDeny=any
|
||||
LockPersonality=yes
|
||||
|
@ -0,0 +1,54 @@
|
||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
|
||||
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
|
||||
bcAu2uXfRrQxpaqcOg==
|
||||
=/wbD
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
Loading…
Reference in new issue