Merge branch 'feature/bash-logging-filter/BK-2020-02' of https://zdv2.bktei.com/gitwe...
[EVA-2020-02.git] / doc / time / README.org
CommitLineData
88b5ae54
SBS
1#+TITLE: Ninfacyzga-1 Time Tracking
2#+AUTHOR: Steven Baltakatei Sandoval
3#+EMAIL: baltakatei@gmail.com
d50056c2 4* Time Tracking
88b5ae54 5** About
6bdc2473
SBS
6This document was created by Steven Baltakatei Sandoval on
7~2020-07-23T22:27Z~ under a [[https://creativecommons.org/licenses/by-sa/4.0/][Creative Commons BY-SA 4.0 license]]. It
88b5ae54 8was updated by Steven Baltakatei Sandoval on ~2020-10-16T22:26Z~
1b813272 9
6bdc2473
SBS
10** Narrative
11The ~ninfacyzga-01~ device is equipped with an Ozzmaker BerryGPS-IMU
88b5ae54 12module which provides time and location data to ~gpsd~ and ~ntpsec~. The
d50056c2
SBS
13time is provided by GPS satellites which themselves are
14equipped [fn:nasa_20020408_atomicclock] with atomic clocks. This
15extremely accurate set of clocks are needed since a GPS receiver
16calculates its position in space using a General Relativity
6bdc2473
SBS
17calculation that uses the small variations in the time stamps received
18from each satellite. This means that ~gpsd~ may be used to set the
19system clock without a need for an internet connection to a default
20Debian time server; ~ninfacyzga-01~ can be its own time server.
d50056c2
SBS
21
22[fn:nasa_20020408_atomicclock] Title:[[https://science.nasa.gov/science-news/science-at-nasa/2002/08apr_atomicclock/][Tick-Tock Atomic Clock]];
23Date:2002-04-08; Website:NASA.gov; [[https://web.archive.org/web/20100429141752/http://science.nasa.gov/science-news/science-at-nasa/2002/08apr_atomicclock/][Archive-link]]; Archive-date:
242010-04-29
25
6bdc2473
SBS
26** Description
27*** Hardware
88b5ae54 28Ozzmaker BerryGPS-IMU, Version 3 (see [[https://ozzmaker.com/berrygps-berrygps-imu-quick-start-guide/][ref]]).
6bdc2473 29*** Software
88b5ae54
SBS
30- [[https://tracker.debian.org/pkg/gpsd][~gpsd~]] : A background daemon app capable of interfacing with the
31 [[https://ozzmaker.com/berrygps-berrygps-imu-quick-start-guide/][Ozzmaker BerryGPS-IMU]]'s GPS submodule. Installed and initialized by
32 ~apt~. Should be installed along with the ~gpsd-clients~
33 package. This procedure was developed with ~gpsd~ version
34
35- [[https://tracker.debian.org/pkg/ntpsec][~ntpsec~]] : A security-hardned version of [[https://tracker.debian.org/pkg/ntp][~ntp~]] which is a "[[https://en.wikipedia.org/wiki/Network_Time_Protocol][Network
36 Time Protocol]]" app that synchronizes the system clock with local or
37 remote time servers or devices. It is capable of extracting time
38 data from a GPS signal handled by ~gpsd~. It is also capable of
39 using the high precision PPS (pulse-per-second) signal handled by
40 ~gpsd~. Installed via ~apt~. This procedure was developed with
41 ~ntpsec~ version ~1.1.3~.
42
6bdc2473
SBS
43** Operating Procedures
44*** Initial Startup
88b5ae54
SBS
45**** Perform initial setup.
46See [[file:../setup/README.org][Main Setup]] procedure.
47**** Install Hardware for time tracking
6bdc2473
SBS
48See [[https://ozzmaker.com/forums/topic/connecting-gps-pps-pin/][this]] Ozzmaker forum topic about connecting the BerryGPS-IMU
49~T_PULSE~ pin to GPIO 18.
50
88b5ae54
SBS
51#+CAPTION: An image showing how to connect the PPS signal from an Ozzmaker BerryGPS-IMU board to a Raspberry Pi Zero W.
52#+NAME: fig:PPS_BERRYGPS_RASPIZW
53[[../../img/Compact_Stratum_1_NTP_time_server_hardware,_October_2020.jpg]]
54
6bdc2473 55Connect the ~T_PULSE~ connection on the BerryGPS-IMU-3 to GPIO pin 18
aafe11cf
SBS
56(ex: with solder and wire) in order to provide the PPS data signal
57generated by the BerryGPS-IMU to the Raspberry Pi. Processing of this
58data signal is handled by adding a line to ~/boot/config.txt~ in the
59next section ("Install Software").
6bdc2473 60
88b5ae54
SBS
61Note: If it is desired to specify a custom GPIO pin besides the one
62recommended, see this [[https://raspberryautomation.com/connect-multiple-ds18b20-temperature-sensors-to-a-raspberry-pi/][Raspberry Autom]] article.
63
64**** Install Software for time tracking
65The time tracking function can be performed by two programs: ~gpsd~
66and ~ntpsec~.
67
68Basically, two things need to happen:
69
701. ~gpsd~ needs to be pointed towards the correct device files for
71 incoming GPS data (in NMEA format) and the PPS signal ("pulse per
72 second"; a high precision time signal).
73
742. ~ntpsec~ needs to be pointed towards the correct local IP addresses
75 where ~gpsd~ provides GPS data and the PPS signal.
76
77~gpsd~ then will provide GPS and PPS data to ~ntpsec~ via a "shared
78memory driver".
6bdc2473 79
aafe11cf
SBS
80***** Install packages via ~apt~
81Run the following command to install the required packages.
88b5ae54 82: $ sudo apt install gpsd gpsd-clients python-gps pps-tools ntpsec
aafe11cf 83
88b5ae54
SBS
84***** Enable PPS device
85Modify the ~/boot/config.txt~ file in order to tell the Raspberry Pi
86to expect PPS data on ~BCM 18~ (pin number 12; see [[https://pinout.xyz/][link]]). This is done
87by adding the following line to ~/boot/config.txt~ as described on
88[[https://ozzmaker.com/forums/topic/problems-with-pps-on-a-pi0w-running-raspian-and-attached-to-a-berrygps-imuv3/][this Ozzmaker page]]:
aafe11cf
SBS
89
90: dtoverlay=pps-gpio,gpiopin=18
91
88b5ae54
SBS
92The ~/boot/config.txt~ file can be modified via:
93
94: $ sudo nano /boot/config.txt
95
aafe11cf
SBS
96PPS data can be confirmed by running:
97
98#+BEGIN_EXAMPLE
99$ sudo su -
100# ppstest /dev/pps0
101trying PPS source "/dev/pps0"
102found PPS source "/dev/pps0"
103ok, found 1 source(s), now start fetching data...
104source 0 - assert 1595708074.003644641, sequence: 219 - clear 0.000000000, sequence: 0
105source 0 - assert 1595708075.003709620, sequence: 220 - clear 0.000000000, sequence: 0
106source 0 - assert 1595708076.003779580, sequence: 221 - clear 0.000000000, sequence: 0
107source 0 - assert 1595708077.003850580, sequence: 222 - clear 0.000000000, sequence: 0
108#+END_EXAMPLE
109
88b5ae54
SBS
110Note: For older Raspberry Pi models, it may be necessary to enable
111~pps-gpio~ via modifications to ~/etc/modules~ (see [[https://www.raspberrypi.org/forums/viewtopic.php?p=757747#p757747][link]]).
112
113***** Enable GPS device
114The Ozzmaker BerryGPS-IMU makes NMEA sentences available via the
115serial "UART" device ~/dev/ttyAMA0~. If bluetooth has not been
116disabled, the Raspberry Pi OS automatically creates a software "UART"
117device at ~/dev/serial0~. See the "[[file:~/git-OC/ninfacyzga-01/doc/setup/README.org::*Disable%20Bluetooth][Disable Bluetooth]]" section in the
118[[file:../setup/README.org][Main Setup]] Initial Startup procedure for instructions on how to
119disable bluetooth to free up ~/dev/ttyAMA0~ for use by ~gpsd~.
120
121Note: Older ~ntp~ documentation indicates that ~ntp~ (and presumably
122~ntpsec~ might be able to access GPS data (ex: NMEA sentences) without
123the aid of ~gpsd~ itself if the data is available at a device named
124~/dev/ggp0~. Similarly, the same might apply to PPS data and the
125~/dev/gpspps0~ device. However, since the Raspberry Pi OS overlay
126system automatically creates ~/dev/pps0~ using the modifications to
127~/boot/config.txt~ (described [[*Enable PPS device][elsewhere]] in this procedure).
128
129***** Setup ~gpsd~
130See the "[[file:~/git-OC/ninfacyzga-01/doc/location/README.org::*Setup%20~gpsd~][Setup ~gpsd~]]" subsection within the "Initial Startup" section
131of the Location Logging [[file:~/git-OC/ninfacyzga-01/doc/location/README.org][~README.org~]] file. There is one additional
132change that must be made which is to add a ~/dev/pps0~ item to the
133~DEVICES=~ line in ~/etc/default/gpsd~ like so:
134
135: DEVICES="/dev/ttyAMA0 /dev/pps0"
136
137~/dev/ttyAMA0~ is where ~gpsd~ can get NMEA data from the GPS unit.
138
139~/dev/pps0~ is where ~gpsd~ can get a PPS signal.
140
141As an example, the following lines will be present in
142~/etc/default/gpsd~ if both location and time tracking are set up:
143
144#+BEGIN_EXAMPLE
145START_DAEMON="true"
146USBAUTO="false"
147DEVICES="/dev/ttyAMA0 /dev/pps0"
148GPSD_OPTIONS="-n"
149#+END_EXAMPLE
150
151***** Setup ~ntpsec~
152The ~ntpsec~ configuration file at ~/etc/ntpsec/ntp.conf~ must be
153modified to tell ~ntpsec~ how to retrieve and interpret the GPS and
154PPS data provided by ~gpsd~.
155
156In summary, lines need to be added telling ~ntpsec~ how often to poll
157certain sources (local or remote) for time information as well as how
158to prioritize and label information from each source.
159
160~ntpsec~ uses syntax simplified from that of ~ntp~. Specifically, it
161recommends use of the ~refclock~ keyword for configuring local
162hardware clocks such as GPS and PPS devices.
163
164Below is an example of lines that may be added to
165~/etc/ntpsec/ntp.conf~ in order to ensure that the system clock will always have
166
167#+BEGIN_EXAMPLE
168# Local time sources
169
170# Kernel PPS (precision seconds; driver 22)
171refclock pps unit 0 refid kPPS flag3 1 minpoll 4 maxpoll 4 stratum 1
172
173# GPS PPS reference (precision seconds; driver 28; root) (NTP1)
174refclock shm unit 1 refid PPS minpoll 4 maxpoll 4 iburst stratum 1
175
176# GPS Serial data reference (coarse time; driver28; root) (NTP0)
177refclock shm unit 0 refid GPS prefer time1 0.109 minpoll 4 maxpoll 4 iburst stratum 1
178
179# GPS PPS reference (precision seconds; driver 28; user) (NTP2)
180refclock shm unit 2 refid PPSuser minpoll 4 maxpoll 4 iburst stratum 1
181
182# Tolerate outliers (useful for coarse clocks)
183tos mindist 0.500
184#+END_EXAMPLE
185
186A complete working example of an ~ntp.conf~ file is found in Appendix
187A of this document.
188
189Commands useful for examining the shared memory driver used by ~gpsd~
190and ~ntpsec~ are:
191
192- ~sudo ntpshmmon~ : Shows live output of data using the shared memory
193 driver. ([[https://gpsd.gitlab.io/gpsd/gpsd-time-service-howto.html][ref]])
194
195- ~sudo ipcs -m~ : Show live segments of the shared memory. ([[https://gpsd.gitlab.io/gpsd/gpsd-time-service-howto.html][ref]])
196
197General references for this configuration file are:
198
199- "Raspberry Pi as a Stratum-1 NTP Server - Updating to the final NTP
200 configuration file" by David Taylor. [[http://www.satsignal.eu/ntp/Raspberry-Pi-NTP.html#ntp-conf][Link]]. Date: 2020-03-24. Note:
201 An example of kernel PPS transfer from ~gpsd~ to ~ntp~ via
202 ~127.127.22.0~.
203
204- "GPSD Time Service HOWTO" by Garry E. Miller. [[https://gpsd.gitlab.io/gpsd/gpsd-time-service-howto.html][Link]]. Date:
205 2020-06-28. Note: Explains how shared memory segments available at
206 ~127.127.28.0~, ~127.127.28.1~, ~127.127.28.2~, etc. work in context
207 of an ~ntp~ configuration file.
208
209- "Building a Stratum 1 NTP Server with a Raspberry Pi 4 and Adafruit
210 Ultimate GPS Hat". [[http://www.gregledet.net/computers/building-a-stratum-1-ntp-server-with-a-raspberry-pi-4-and-adafruit-ultimate-gps-hat/][Link]]. Date: 2020-02-23. Note: A concise example
211 between ~gpsd~ and ~ntp~ setup for a Raspberry Pi 4 using
212 ~127.127.28.0~ and ~127.127.28.1~. Recommends use of ~ntpsec~
213 instead of ~ntp~.
214
215Expalantions of some ~ntpsec~ [[https://docs.ntpsec.org/latest/comdex.html][commands and options]] used in the
216configuration file include:
217
218- ~refclock~ : An ~ntpsec~ keyword not present in ~ntp-4.2.8~ that is
219 meant to simplify configuration of reference clocks that use certain
220 [[https://docs.ntpsec.org/latest/refclock.html][drivers]] including ~pps~ ([[https://docs.ntpsec.org/latest/driver_pps.html][PPS Clock Discipline]]), ~shm~ ([[https://docs.ntpsec.org/latest/driver_shm.html][Shared Memory
221 Driver]]) . In ~ntp-4.2.8~ and earlier, in order to configure a clock,
222 instead of ~ntpsec~'s one keyword (~refclock~), two keywords would
223 be required (~server~ and ~fudge~).
224
225- ~server [address]~ : Tells ~ntpsec~ the address to query for time
226 information. May be IP address or URL. Additional options such as
227 ~minpoll~, ~maxpoll~, ~prefer~, and ~true~ may be added.
228
229- ~prefer~ : Indicates the source should be prioritized in some
230 way. How exactly the ~ntpsec~ mitigation rules (see [[https://docs.ntpsec.org/latest/prefer.html][ref]]) use the
231 ~prefer~ option is complicated but in the context of dealing with a
232 GPS source and a PPS source, the GPS source should have a ~prefer~
233 option. The PPS source may have a ~prefer~ option but it is not
234 necessary; adding ~prefer~ to a PPS source is useful in the corner
235 case that the GPS source is less reliable than another source (ex: a
236 remote clock specified by ~server~).
237
238- ~... shm ... flag1 1~ : For an ~shm~ driver, tells ~ntpsec~ to
239 ignore the default sanity check that discards any time that is more
240 than 4-hours off from the system clock. Note that ~ntpsec~ treats
241 ~shm flag1 1~ in the opposite manner as ~ntp~ (see [[https://docs.ntpsec.org/latest/driver_shm.html][ref]]).
242
243- ~... shm ... time1 [float]~ : Tells ~ntpsec~ that a latency
244 time of ~[float]~ seconds is required for data to travel from the
245 address to ~ntpsec~ (ex: a USB hub in the case of a GPS device that
246 connects via USB). (see [[https://gpsd.gitlab.io/gpsd/gpsd-time-service-howto.html#_feeding_ntpd_from_gpsd][ref]]) This number of seconds should be
247 adjusted to reduce the `offset` time of the address indicated in the
248 output of the ~ntpq -pn~ command to near ~0.000~. Note that the
249 units of ~offset~ displayed by ~ntpq -pn~ are in milliseconds.
250
251- ~... refid [string]~ : Tells ~ntpsec~ a string used to label the source.
252
253- ~fudge~ : An ~ntp~ keyword that ~ntpsec~ developers do not recommend
254 using; ~ntpsec~ documentation for ~fudge~ is widthdrawn. For local
255 hardware providing GPS and PPS time information, ~fudge~ can mostly
256 be replaced with use of the ~refclock~ keyword instead.
257
258- ~fudge [address]~ : Tells ~ntpsec~ to consider additional options
259 when evaluating the accuracy of time from a given address.
260
261- ~fudge [address] ... flag3 1~ : An option that tells ~ntpsec~ to
262 enable "kernel PPS discipline" when interpreting the PPS signal at
263 the address. (see [[http://doc.ntp.org/4.2.8p7/drivers/driver22.html][ref]]).
264
265- ~stratum 1~ : Tells ~ntpsec~ to label the source as a "stratum 1"
266 time server. This means that it is a clock using NTP that is a
267 canonical (?) time source. For example, a stratum 0 NTP time server
268 would be an atomic clock. A stratum 1 NTP time server could be a
269 clock that uses a GPS receiver to synchronize to said atomic clock.
270
271- ~iburst~ : Tells ~ntpsec~ how often to query a source.
272
273- ~fudge [address] ... flag1 [float]~ : See description of ~... shm
274 ... time1 [float]~.
275
276- ~tos mindist [float]~ : Tells ~ntpsec~ to increase the tolerance for
277 outliers in the clock selection algorithm. Units of ~[float]~ are
278 seconds. The default value is ~0.001~ seconds. This [[http://doc.ntp.org/4.2.6/miscopt.html][reference]]
279 indicates that it is acceptable to raise this value for "clocks with
280 high jitter and a PPS signal". For the device being configured in
281 this guide, this is the case. ~ntpsec~ receives a kernel PPS signal
282 on ~127.127.22.0~ indicating when each second occurs but without
283 information about which second of the day is being ticked. ~ntpsec~
284 receives a coarse time from ~127.127.28.0~ supplied by ~gpsd~ that
285 is derived from the NMEA sentences generated by the GPS receiver;
286 this coarse time (high jitter) lacks the precision of the PPS signal
287 since NMEA sentence transmission times are not well-controlled.
288
289****** Disable DHCP services affecting ~ntpsec~
290Some processes that use [[https://en.wikipedia.org/wiki/Dynamic_Host_Configuration_Protocol][DHCP]] (Dynamic Host Configuration Protocol) may
291cause configuration changes to configuration files of ~ntp~. Since
292~ntpsec~ is similar to ~ntp~, it is reasonable to take action to
293prevent this.
294
295Remove some files:
296
297: $ sudo rm /etc/dhcp/dhclient-exit-hooks.d/ntp
298: $ sudo rm /lib/dhcpcd/dhcpcd-hooks/50-ntp.conf
299
300In the "request" block of ~dhclient.conf~, remove ~dhcp6.sntp-servers~
301and ~ntp-servers~.
302
303: $ sudo nano /etc/dhcp/dhclient.conf
304
305For example, the following section of ~dhclient.conf~:
aafe11cf 306
88b5ae54
SBS
307#+BEGIN_EXAMPLE
308send host-name = gethostname();
309request subnet-mask, broadcast-address, time-offset, routers,
310 domain-name, domain-name-servers, domain-search, host-name,
311 dhcp6.name-servers, dhcp6.domain-search, dhcp6.fqdn, dhcp6.sntp-servers,
312 netbios-name-servers, netbios-scope, interface-mtu,
313 rfc3442-classless-static-routes, ntp-servers;
314#+END_EXAMPLE
aafe11cf 315
88b5ae54 316should be changed to:
aafe11cf
SBS
317
318#+BEGIN_EXAMPLE
88b5ae54
SBS
319send host-name = gethostname();
320request subnet-mask, broadcast-address, time-offset, routers,
321 domain-name, domain-name-servers, domain-search, host-name,
322 dhcp6.name-servers, dhcp6.domain-search, dhcp6.fqdn,
323 netbios-name-servers, netbios-scope, interface-mtu,
324 rfc3442-classless-static-routes;
aafe11cf
SBS
325#+END_EXAMPLE
326
88b5ae54
SBS
327***** Disable CPU power saving
328Power saving featurs of the Raspberry Pi Zero W may also be disabled
329in order to improve accuracy.
330
331****** Configure CPU ~scaling_governor~
332If additional precision is required, the PPS signal may be made more
333reliable at the cost of increasing CPU power by configuring the CPU to
334always run at maximum frequency.[fn:se_20180320_raspicpugov] This
335change can be performed by modifying the following file as root:
336
337: /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
338
339The file should consist of one line. Change
aafe11cf 340
88b5ae54 341: ondemand
aafe11cf 342
88b5ae54 343to
aafe11cf 344
88b5ae54 345: performance
aafe11cf 346
88b5ae54 347.
aafe11cf 348
88b5ae54
SBS
349This change can be performed via the ~nano~ text editor by running the
350following commands:
aafe11cf 351
88b5ae54
SBS
352: $ sudo su -
353: # nano /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
aafe11cf 354
88b5ae54
SBS
355Additionally, in order to prevent the ~raspi-config~ init script from
356reverting this text file back to ~ondemand~ after a reboot, this
357script must be disabled via:
aafe11cf 358
88b5ae54
SBS
359: $ sudo systemctl disable raspi-config
360
361****** Configure ~/boot/config.txt~
362Modify ~/boot/config.txt~ so that it contains these lines in order to
363disable power saving functions:
aafe11cf
SBS
364
365#+BEGIN_EXAMPLE
88b5ae54
SBS
366# Disable power saving
367nohz=off
aafe11cf
SBS
368#+END_EXAMPLE
369
88b5ae54
SBS
370[fn:se_20180320_raspicpugov] Title:[[https://raspberrypi.stackexchange.com/questions/9034/how-to-change-the-default-governor]["How to change the default governor?"]]; Author:[[https://raspberrypi.stackexchange.com/users/5538/goldilocks][goldilocks]]; Date: 2018-03-20; Website:stackexchange.com;
371
6bdc2473
SBS
372*** Normal Startup
373*** Normal Operation
374*** Normal Shutdown
375*** Unscheduled Shutdown
88b5ae54
SBS
376** Appendix A
377*** Example ~ntp.conf~ for ~ntpsec~
378Below is an example ~ntp.conf~ file for use with ~ntpsec~.
379
380#+BEGIN_EXAMPLE
381# /etc/ntpsec/ntp.conf, configuration for ntpd; see ntp.conf(5) for help
382
383# Drift file
384driftfile /var/lib/ntpsec/ntp.drift
385
386# Leap seconds definition provided by tzdata
387leapfile /usr/share/zoneinfo/leap-seconds.list
388
389# Log file
390#logfile /var/log/ntp.log
391
392
393# You must create /var/log/ntpsec (owned by ntpsec:ntpsec) to enable logging.
394#statsdir /var/log/ntpsec/
395#statistics loopstats peerstats clockstats
396#filegen loopstats file loopstats type day enable
397#filegen peerstats file peerstats type day enable
398#filegen clockstats file clockstats type day enable
399
400
401# Comment this out if you have a refclock and want it to be able to discipline
402# the clock by itself (e.g. if the system is not connected to the network).
403#tos minclock 4 minsane 3
404
405
406# Local time sources
407
408# Kernel PPS (precision seconds; driver 22)
409refclock pps unit 0 refid kPPS flag3 1 minpoll 4 maxpoll 4 stratum 1
410
411# GPS PPS reference (precision seconds; driver 28; root) (NTP1)
412refclock shm unit 1 refid PPS minpoll 4 maxpoll 4 iburst stratum 1
413
414# GPS Serial data reference (coarse time; driver28; root) (NTP0)
415refclock shm unit 0 refid GPS prefer time1 0.109 minpoll 4 maxpoll 4 iburst stratum 1
416
417# GPS PPS reference (precision seconds; driver 28; user) (NTP2)
418refclock shm unit 2 refid PPSuser minpoll 4 maxpoll 4 iburst stratum 1
419
420# Tolerate outliers (useful for coarse clocks)
421tos mindist 0.500
422
423
424# Specify one or more NTP servers.
425
426# pool.ntp.org maps to about 1000 low-stratum NTP servers. Your server will
427# pick a different set every time it starts up. Please consider joining the
428# pool: <https://www.pool.ntp.org/join.html>
429server time.nist.gov iburst
430server tick.usno.navy.mil iburst
431server 0.us.pool.ntp.org iburst
432#server 0.us.pool.ntp.org iburst
433#server 0.us.pool.ntp.org iburst
434#server 0.us.pool.ntp.org iburst
435pool 0.debian.pool.ntp.org iburst
436#pool 1.debian.pool.ntp.org iburst
437#pool 2.debian.pool.ntp.org iburst
438#pool 3.debian.pool.ntp.org iburst
439
440
441# Access control configuration; see /usr/share/doc/ntpsec-doc/html/accopt.html
442# for details.
443#
444# Note that "restrict" applies to both servers and clients, so a configuration
445# that might be intended to block requests from certain clients could also end
446# up blocking replies from your own upstream servers.
447
448# By default, exchange time with everybody, but don't allow configuration.
449restrict default kod nomodify nopeer noquery limited
450
451# Local users may interrogate the ntp server more closely.
452restrict 127.0.0.1
453restrict ::1
454#+END_EXAMPLE
455
456* Discard
457
458** Transitional ntp to ntpsec config file snippet
459# Kernel PPS (precision seconds; driver 22)
460#server 127.127.22.0 minpoll 4 maxpoll 4 true
461#fudge 127.127.22.0 flag3 1 refid kPPS stratum 1
462refclock pps unit 0 refid kPPS flag3 1 minpoll 4 maxpoll 4 stratum 1
463
464# GPS PPS reference (precision seconds; driver 28; root) (NTP1)
465#server 127.127.28.1 minpoll 4 maxpoll 4 iburst
466#fudge 127.127.28.1 flag1 1 refid PPS
467refclock shm unit 1 refid PPS minpoll 4 maxpoll 4 iburst stratum 1
468
469# GPS Serial data reference (coarse time; driver28; root) (NTP0)
470#server 127.127.28.0 minpoll 4 maxpoll 4 iburst prefer
471#fudge 127.127.28.0 flag1 1 time1 0.109 refid GPS stratum 1
472refclock shm unit 0 refid GPS prefer time1 0.109 minpoll 4 maxpoll 4 iburst stratum 1
6bdc2473 473
88b5ae54
SBS
474# GPS PPS reference (precision seconds; driver 28; user) (NTP2)
475#server 127.127.28.2 minpoll 4 maxpoll 4 iburst
476#fudge 127.127.28.2 flag1 1 refid PPSuser stratum 1
477refclock shm unit 2 refid PPSuser minpoll 4 maxpoll 4 iburst stratum 1
6bdc2473 478
88b5ae54
SBS
479# Tolerate outliers (useful for coarse clocks)
480tos mindist 0.500