1181834Sroberto/* -*- Mode: Text -*- */
2181834Sroberto
3181834Srobertoautogen definitions options;
4181834Sroberto
5181834Sroberto#include copyright.def
6181834Sroberto
7290000Sglebiusprog-name	= "ntpd";
8290000Sglebiusprog-title	= "NTP daemon program";
9290000Sglebiusargument	= "[ <server1> ... <serverN> ]";
10181834Sroberto
11181834Sroberto#include ntpdbase-opts.def
12181834Sroberto
13290000Sglebius/* explain: Additional information whenever the usage routine is invoked */
14290000Sglebiusexplain = <<- _END_EXPLAIN
15290000Sglebius	_END_EXPLAIN;
16290000Sglebius
17290000Sglebiusdoc-section	= {
18290000Sglebius  ds-type	= 'DESCRIPTION';
19290000Sglebius  ds-format	= 'mdoc';
20290000Sglebius  ds-text	= <<- _END_PROG_MDOC_DESCRIP
21290000SglebiusThe
22290000Sglebius.Nm
23290000Sglebiusutility is an operating system daemon which sets
24290000Sglebiusand maintains the system time of day in synchronism with Internet
25290000Sglebiusstandard time servers.
26290000SglebiusIt is a complete implementation of the
27290000SglebiusNetwork Time Protocol (NTP) version 4, as defined by RFC-5905,
28290000Sglebiusbut also retains compatibility with
29290000Sglebiusversion 3, as defined by RFC-1305, and versions 1
30290000Sglebiusand 2, as defined by RFC-1059 and RFC-1119, respectively.
31290000Sglebius.Pp
32290000SglebiusThe
33290000Sglebius.Nm
34290000Sglebiusutility does most computations in 64-bit floating point
35290000Sglebiusarithmetic and does relatively clumsy 64-bit fixed point operations
36290000Sglebiusonly when necessary to preserve the ultimate precision, about 232
37290000Sglebiuspicoseconds.
38290000SglebiusWhile the ultimate precision is not achievable with
39290000Sglebiusordinary workstations and networks of today, it may be required
40290000Sglebiuswith future gigahertz CPU clocks and gigabit LANs.
41290000Sglebius.Pp
42290000SglebiusOrdinarily,
43290000Sglebius.Nm
44290000Sglebiusreads the
45290000Sglebius.Xr ntp.conf 5
46290000Sglebiusconfiguration file at startup time in order to determine the
47290000Sglebiussynchronization sources and operating modes.
48290000SglebiusIt is also possible to
49290000Sglebiusspecify a working, although limited, configuration entirely on the
50290000Sglebiuscommand line, obviating the need for a configuration file.
51290000SglebiusThis may
52290000Sglebiusbe particularly useful when the local host is to be configured as a
53290000Sglebiusbroadcast/multicast client, with all peers being determined by
54290000Sglebiuslistening to broadcasts at run time.
55290000Sglebius.Pp
56290000SglebiusIf NetInfo support is built into
57290000Sglebius.Nm ,
58290000Sglebiusthen
59290000Sglebius.Nm
60290000Sglebiuswill attempt to read its configuration from the
61290000SglebiusNetInfo if the default
62290000Sglebius.Xr ntp.conf 5
63290000Sglebiusfile cannot be read and no file is
64290000Sglebiusspecified by the
65290000Sglebius.Fl c
66290000Sglebiusoption.
67290000Sglebius.Pp
68290000SglebiusVarious internal
69290000Sglebius.Nm
70290000Sglebiusvariables can be displayed and
71290000Sglebiusconfiguration options altered while the
72290000Sglebius.Nm
73290000Sglebiusis running
74290000Sglebiususing the
75290000Sglebius.Xr ntpq 1ntpqmdoc
76290000Sglebiusand
77290000Sglebius.Xr ntpdc 1ntpdcmdoc
78290000Sglebiusutility programs.
79290000Sglebius.Pp
80290000SglebiusWhen
81290000Sglebius.Nm
82290000Sglebiusstarts it looks at the value of
83290000Sglebius.Xr umask 2 ,
84290000Sglebiusand if zero
85290000Sglebius.Nm
86290000Sglebiuswill set the
87290000Sglebius.Xr umask 2
88290000Sglebiusto 022.
89290000Sglebius	_END_PROG_MDOC_DESCRIP;
90290000Sglebius};
91290000Sglebius
92290000Sglebiusdoc-section	= {
93290000Sglebius  ds-type	= 'USAGE';
94290000Sglebius  ds-format	= 'mdoc';
95290000Sglebius  ds-text	= <<- _END_MDOC_USAGE
96290000Sglebius.Ss "How NTP Operates"
97290000SglebiusThe
98290000Sglebius.Nm
99290000Sglebiusutility operates by exchanging messages with
100290000Sglebiusone or more configured servers over a range of designated poll intervals.
101290000SglebiusWhen
102290000Sglebiusstarted, whether for the first or subsequent times, the program
103290000Sglebiusrequires several exchanges from the majority of these servers so
104290000Sglebiusthe signal processing and mitigation algorithms can accumulate and
105290000Sglebiusgroom the data and set the clock.
106290000SglebiusIn order to protect the network
107290000Sglebiusfrom bursts, the initial poll interval for each server is delayed
108290000Sglebiusan interval randomized over a few seconds.
109290000SglebiusAt the default initial poll
110290000Sglebiusinterval of 64s, several minutes can elapse before the clock is
111290000Sglebiusset.
112290000SglebiusThis initial delay to set the clock
113290000Sglebiuscan be safely and dramatically reduced using the
114290000Sglebius.Cm iburst
115290000Sglebiuskeyword with the
116290000Sglebius.Ic server
117290000Sglebiusconfiguration
118290000Sglebiuscommand, as described in
119290000Sglebius.Xr ntp.conf 5 .
120290000Sglebius.Pp
121290000SglebiusMost operating systems and hardware of today incorporate a
122290000Sglebiustime-of-year (TOY) chip to maintain the time during periods when
123290000Sglebiusthe power is off.
124290000SglebiusWhen the machine is booted, the chip is used to
125290000Sglebiusinitialize the operating system time.
126290000SglebiusAfter the machine has
127290000Sglebiussynchronized to a NTP server, the operating system corrects the
128290000Sglebiuschip from time to time.
129290000SglebiusIn the default case, if
130290000Sglebius.Nm
131290000Sglebiusdetects that the time on the host
132290000Sglebiusis more than 1000s from the server time,
133290000Sglebius.Nm
134290000Sglebiusassumes something must be terribly wrong and the only
135290000Sglebiusreliable action is for the operator to intervene and set the clock
136290000Sglebiusby hand.
137290000Sglebius(Reasons for this include there is no TOY chip,
138290000Sglebiusor its battery is dead, or that the TOY chip is just of poor quality.)
139290000SglebiusThis causes
140290000Sglebius.Nm
141290000Sglebiusto exit with a panic message to
142290000Sglebiusthe system log.
143290000SglebiusThe
144290000Sglebius.Fl g
145290000Sglebiusoption overrides this check and the
146290000Sglebiusclock will be set to the server time regardless of the chip time
147290000Sglebius(up to 68 years in the past or future \(em
148290000Sglebiusthis is a limitation of the NTPv4 protocol).
149290000SglebiusHowever, and to protect against broken hardware, such as when the
150290000SglebiusCMOS battery fails or the clock counter becomes defective, once the
151290000Sglebiusclock has been set an error greater than 1000s will cause
152290000Sglebius.Nm
153290000Sglebiusto exit anyway.
154290000Sglebius.Pp
155290000SglebiusUnder ordinary conditions,
156290000Sglebius.Nm
157290000Sglebiusadjusts the clock in
158290000Sglebiussmall steps so that the timescale is effectively continuous and
159290000Sglebiuswithout discontinuities.
160290000SglebiusUnder conditions of extreme network
161290000Sglebiuscongestion, the roundtrip delay jitter can exceed three seconds and
162290000Sglebiusthe synchronization distance, which is equal to one-half the
163290000Sglebiusroundtrip delay plus error budget terms, can become very large.
164290000SglebiusThe
165290000Sglebius.Nm
166290000Sglebiusalgorithms discard sample offsets exceeding 128 ms,
167290000Sglebiusunless the interval during which no sample offset is less than 128
168290000Sglebiusms exceeds 900s.
169290000SglebiusThe first sample after that, no matter what the
170290000Sglebiusoffset, steps the clock to the indicated time.
171290000SglebiusIn practice this
172290000Sglebiusreduces the false alarm rate where the clock is stepped in error to
173290000Sglebiusa vanishingly low incidence.
174290000Sglebius.Pp
175290000SglebiusAs the result of this behavior, once the clock has been set it
176290000Sglebiusvery rarely strays more than 128 ms even under extreme cases of
177290000Sglebiusnetwork path congestion and jitter.
178290000SglebiusSometimes, in particular when
179290000Sglebius.Nm
180290000Sglebiusis first started without a valid drift file
181290000Sglebiuson a system with a large intrinsic drift
182290000Sglebiusthe error might grow to exceed 128 ms,
183290000Sglebiuswhich would cause the clock to be set backwards
184290000Sglebiusif the local clock time is more than 128 s
185290000Sglebiusin the future relative to the server.
186290000SglebiusIn some applications, this behavior may be unacceptable.
187290000SglebiusThere are several solutions, however.
188290000SglebiusIf the
189290000Sglebius.Fl x
190290000Sglebiusoption is included on the command line, the clock will
191290000Sglebiusnever be stepped and only slew corrections will be used.
192290000SglebiusBut this choice comes with a cost that
193290000Sglebiusshould be carefully explored before deciding to use
194290000Sglebiusthe
195290000Sglebius.Fl x
196290000Sglebiusoption.
197290000SglebiusThe maximum slew rate possible is limited
198290000Sglebiusto 500 parts-per-million (PPM) as a consequence of the correctness
199290000Sglebiusprinciples on which the NTP protocol and algorithm design are
200290000Sglebiusbased.
201290000SglebiusAs a result, the local clock can take a long time to
202290000Sglebiusconverge to an acceptable offset, about 2,000 s for each second the
203290000Sglebiusclock is outside the acceptable range.
204290000SglebiusDuring this interval the
205290000Sglebiuslocal clock will not be consistent with any other network clock and
206290000Sglebiusthe system cannot be used for distributed applications that require
207290000Sglebiuscorrectly synchronized network time.
208290000Sglebius.Pp
209290000SglebiusIn spite of the above precautions, sometimes when large
210290000Sglebiusfrequency errors are present the resulting time offsets stray
211290000Sglebiusoutside the 128-ms range and an eventual step or slew time
212290000Sglebiuscorrection is required.
213290000SglebiusIf following such a correction the
214290000Sglebiusfrequency error is so large that the first sample is outside the
215290000Sglebiusacceptable range,
216290000Sglebius.Nm
217290000Sglebiusenters the same state as when the
218290000Sglebius.Pa ntp.drift
219290000Sglebiusfile is not present.
220290000SglebiusThe intent of this behavior
221290000Sglebiusis to quickly correct the frequency and restore operation to the
222290000Sglebiusnormal tracking mode.
223290000SglebiusIn the most extreme cases
224290000Sglebius(the host
225290000Sglebius.Cm time.ien.it
226290000Sglebiuscomes to mind), there may be occasional
227290000Sglebiusstep/slew corrections and subsequent frequency corrections.
228290000SglebiusIt
229290000Sglebiushelps in these cases to use the
230290000Sglebius.Cm burst
231290000Sglebiuskeyword when
232290000Sglebiusconfiguring the server, but
233290000SglebiusONLY
234290000Sglebiuswhen you have permission to do so from the owner of the target host.
235290000Sglebius.Pp
236290000SglebiusFinally,
237290000Sglebiusin the past many startup scripts would run
238290000Sglebius.Xr ntpdate 1ntpdatemdoc
239290000Sglebiusor
240290000Sglebius.Xr sntp 1sntpmdoc
241290000Sglebiusto get the system clock close to correct before starting
242290000Sglebius.Xr ntpd 1ntpdmdoc ,
243290000Sglebiusbut this was never more than a mediocre hack and is no longer needed.
244290000SglebiusIf you are following the instructions in
245290000Sglebius.Sx "Starting NTP (Best Current Practice)"
246290000Sglebiusand you still need to set the system time before starting
247290000Sglebius.Nm ,
248290000Sglebiusplease open a bug report and document what is going on,
249290000Sglebiusand then look at using
250290000Sglebius.Xr sntp 1sntpmdoc
251290000Sglebiusif you really need to set the clock before starting
252290000Sglebius.Nm .
253290000Sglebius.Pp
254290000SglebiusThere is a way to start
255290000Sglebius.Xr ntpd 1ntpdmdoc
256290000Sglebiusthat often addresses all of the problems mentioned above.
257290000Sglebius.Ss "Starting NTP (Best Current Practice)"
258290000SglebiusFirst, use the
259290000Sglebius.Cm iburst
260290000Sglebiusoption on your
261290000Sglebius.Cm server
262290000Sglebiusentries.
263290000Sglebius.Pp
264290000SglebiusIf you can also keep a good
265290000Sglebius.Pa ntp.drift
266290000Sglebiusfile then
267290000Sglebius.Xr ntpd 1ntpdmdoc
268290000Sglebiuswill effectively "warm-start" and your system's clock will
269290000Sglebiusbe stable in under 11 seconds' time.
270290000Sglebius.Pp
271290000SglebiusAs soon as possible in the startup sequence, start
272290000Sglebius.Xr ntpd 1ntpdmdoc
273290000Sglebiuswith at least the
274290000Sglebius.Fl g
275290000Sglebiusand perhaps the
276290000Sglebius.Fl N
277290000Sglebiusoptions.
278290000SglebiusThen,
279290000Sglebiusstart the rest of your "normal" processes.
280290000SglebiusThis will give
281290000Sglebius.Xr ntpd 1ntpdmdoc
282290000Sglebiusas much time as possible to get the system's clock synchronized and stable.
283290000Sglebius.Pp
284290000SglebiusFinally,
285290000Sglebiusif you have processes like
286290000Sglebius.Cm dovecot
287290000Sglebiusor database servers
288290000Sglebiusthat require
289290000Sglebiusmonotonically-increasing time,
290290000Sglebiusrun
291290000Sglebius.Xr ntp-wait 1ntp-waitmdoc
292290000Sglebiusas late as possible in the boot sequence
293290000Sglebius(perhaps with the
294290000Sglebius.Fl v
295290000Sglebiusflag)
296290000Sglebiusand after
297290000Sglebius.Xr ntp-wait 1ntp-waitmdoc
298290000Sglebiusexits successfully
299290000Sglebiusit is as safe as it will ever be to start any process that require
300290000Sglebiusstable time.
301290000Sglebius.Ss "Frequency Discipline"
302290000SglebiusThe
303290000Sglebius.Nm
304290000Sglebiusbehavior at startup depends on whether the
305290000Sglebiusfrequency file, usually
306290000Sglebius.Pa ntp.drift ,
307290000Sglebiusexists.
308290000SglebiusThis file
309290000Sglebiuscontains the latest estimate of clock frequency error.
310290000SglebiusWhen the
311290000Sglebius.Nm
312290000Sglebiusis started and the file does not exist, the
313290000Sglebius.Nm
314290000Sglebiusenters a special mode designed to quickly adapt to
315290000Sglebiusthe particular system clock oscillator time and frequency error.
316290000SglebiusThis takes approximately 15 minutes, after which the time and
317290000Sglebiusfrequency are set to nominal values and the
318290000Sglebius.Nm
319290000Sglebiusenters
320290000Sglebiusnormal mode, where the time and frequency are continuously tracked
321290000Sglebiusrelative to the server.
322290000SglebiusAfter one hour the frequency file is
323290000Sglebiuscreated and the current frequency offset written to it.
324290000SglebiusWhen the
325290000Sglebius.Nm
326290000Sglebiusis started and the file does exist, the
327290000Sglebius.Nm
328290000Sglebiusfrequency is initialized from the file and enters normal mode
329290000Sglebiusimmediately.
330290000SglebiusAfter that the current frequency offset is written to
331290000Sglebiusthe file at hourly intervals.
332290000Sglebius.Ss "Operating Modes"
333290000SglebiusThe
334290000Sglebius.Nm
335290000Sglebiusutility can operate in any of several modes, including
336290000Sglebiussymmetric active/passive, client/server broadcast/multicast and
337290000Sglebiusmanycast, as described in the
338290000Sglebius.Qq Association Management
339290000Sglebiuspage
340290000Sglebius(available as part of the HTML documentation
341290000Sglebiusprovided in
342290000Sglebius.Pa /usr/share/doc/ntp ) .
343290000SglebiusIt normally operates continuously while
344290000Sglebiusmonitoring for small changes in frequency and trimming the clock
345290000Sglebiusfor the ultimate precision.
346290000SglebiusHowever, it can operate in a one-time
347290000Sglebiusmode where the time is set from an external server and frequency is
348290000Sglebiusset from a previously recorded frequency file.
349290000SglebiusA
350290000Sglebiusbroadcast/multicast or manycast client can discover remote servers,
351290000Sglebiuscompute server-client propagation delay correction factors and
352290000Sglebiusconfigure itself automatically.
353290000SglebiusThis makes it possible to deploy a
354290000Sglebiusfleet of workstations without specifying configuration details
355290000Sglebiusspecific to the local environment.
356290000Sglebius.Pp
357290000SglebiusBy default,
358290000Sglebius.Nm
359290000Sglebiusruns in continuous mode where each of
360290000Sglebiuspossibly several external servers is polled at intervals determined
361290000Sglebiusby an intricate state machine.
362290000SglebiusThe state machine measures the
363290000Sglebiusincidental roundtrip delay jitter and oscillator frequency wander
364290000Sglebiusand determines the best poll interval using a heuristic algorithm.
365290000SglebiusOrdinarily, and in most operating environments, the state machine
366290000Sglebiuswill start with 64s intervals and eventually increase in steps to
367290000Sglebius1024s.
368290000SglebiusA small amount of random variation is introduced in order to
369290000Sglebiusavoid bunching at the servers.
370290000SglebiusIn addition, should a server become
371290000Sglebiusunreachable for some time, the poll interval is increased in steps
372290000Sglebiusto 1024s in order to reduce network overhead.
373290000Sglebius.Pp
374290000SglebiusIn some cases it may not be practical for
375290000Sglebius.Nm
376290000Sglebiusto run continuously.
377290000SglebiusA common workaround has been to run the
378290000Sglebius.Xr ntpdate 1ntpdatemdoc
379290000Sglebiusor
380290000Sglebius.Xr sntp 1sntpmdoc
381290000Sglebiusprograms from a
382290000Sglebius.Xr cron 8
383290000Sglebiusjob at designated
384290000Sglebiustimes.
385290000SglebiusHowever, these programs do not have the crafted signal
386290000Sglebiusprocessing, error checking or mitigation algorithms of
387290000Sglebius.Nm .
388290000SglebiusThe
389290000Sglebius.Fl q
390290000Sglebiusoption is intended for this purpose.
391290000SglebiusSetting this option will cause
392290000Sglebius.Nm
393290000Sglebiusto exit just after
394290000Sglebiussetting the clock for the first time.
395290000SglebiusThe procedure for initially
396290000Sglebiussetting the clock is the same as in continuous mode; most
397290000Sglebiusapplications will probably want to specify the
398290000Sglebius.Cm iburst
399290000Sglebiuskeyword with the
400290000Sglebius.Ic server
401290000Sglebiusconfiguration command.
402290000SglebiusWith this
403290000Sglebiuskeyword a volley of messages are exchanged to groom the data and
404290000Sglebiusthe clock is set in about 10 s.
405290000SglebiusIf nothing is heard after a
406290000Sglebiuscouple of minutes, the daemon times out and exits.
407290000SglebiusAfter a suitable
408290000Sglebiusperiod of mourning, the
409290000Sglebius.Xr ntpdate 1ntpdatemdoc
410290000Sglebiusprogram will be
411290000Sglebiusretired.
412290000Sglebius.Pp
413290000SglebiusWhen kernel support is available to discipline the clock
414290000Sglebiusfrequency, which is the case for stock Solaris, Tru64, Linux and
415290000Sglebius.Fx ,
416290000Sglebiusa useful feature is available to discipline the clock
417290000Sglebiusfrequency.
418290000SglebiusFirst,
419290000Sglebius.Nm
420290000Sglebiusis run in continuous mode with
421290000Sglebiusselected servers in order to measure and record the intrinsic clock
422290000Sglebiusfrequency offset in the frequency file.
423290000SglebiusIt may take some hours for
424290000Sglebiusthe frequency and offset to settle down.
425290000SglebiusThen the
426290000Sglebius.Nm
427290000Sglebiusis
428290000Sglebiusstopped and run in one-time mode as required.
429290000SglebiusAt each startup, the
430290000Sglebiusfrequency is read from the file and initializes the kernel
431290000Sglebiusfrequency.
432290000Sglebius.Ss "Poll Interval Control"
433290000SglebiusThis version of NTP includes an intricate state machine to
434290000Sglebiusreduce the network load while maintaining a quality of
435290000Sglebiussynchronization consistent with the observed jitter and wander.
436290000SglebiusThere are a number of ways to tailor the operation in order enhance
437290000Sglebiusaccuracy by reducing the interval or to reduce network overhead by
438290000Sglebiusincreasing it.
439290000SglebiusHowever, the user is advised to carefully consider
440290000Sglebiusthe consequences of changing the poll adjustment range from the
441290000Sglebiusdefault minimum of 64 s to the default maximum of 1,024 s.
442290000SglebiusThe
443290000Sglebiusdefault minimum can be changed with the
444290000Sglebius.Ic tinker
445290000Sglebius.Cm minpoll
446290000Sglebiuscommand to a value not less than 16 s.
447290000SglebiusThis value is used for all
448290000Sglebiusconfigured associations, unless overridden by the
449290000Sglebius.Cm minpoll
450290000Sglebiusoption on the configuration command.
451290000SglebiusNote that most device drivers
452290000Sglebiuswill not operate properly if the poll interval is less than 64 s
453290000Sglebiusand that the broadcast server and manycast client associations will
454290000Sglebiusalso use the default, unless overridden.
455290000Sglebius.Pp
456290000SglebiusIn some cases involving dial up or toll services, it may be
457290000Sglebiususeful to increase the minimum interval to a few tens of minutes
458290000Sglebiusand maximum interval to a day or so.
459290000SglebiusUnder normal operation
460290000Sglebiusconditions, once the clock discipline loop has stabilized the
461290000Sglebiusinterval will be increased in steps from the minimum to the
462290000Sglebiusmaximum.
463290000SglebiusHowever, this assumes the intrinsic clock frequency error
464290000Sglebiusis small enough for the discipline loop correct it.
465290000SglebiusThe capture
466290000Sglebiusrange of the loop is 500 PPM at an interval of 64s decreasing by a
467290000Sglebiusfactor of two for each doubling of interval.
468290000SglebiusAt a minimum of 1,024
469290000Sglebiuss, for example, the capture range is only 31 PPM.
470290000SglebiusIf the intrinsic
471290000Sglebiuserror is greater than this, the drift file
472290000Sglebius.Pa ntp.drift
473290000Sglebiuswill
474290000Sglebiushave to be specially tailored to reduce the residual error below
475290000Sglebiusthis limit.
476290000SglebiusOnce this is done, the drift file is automatically
477290000Sglebiusupdated once per hour and is available to initialize the frequency
478290000Sglebiuson subsequent daemon restarts.
479290000Sglebius.Ss "The huff-n'-puff Filter"
480290000SglebiusIn scenarios where a considerable amount of data are to be
481290000Sglebiusdownloaded or uploaded over telephone modems, timekeeping quality
482290000Sglebiuscan be seriously degraded.
483290000SglebiusThis occurs because the differential
484290000Sglebiusdelays on the two directions of transmission can be quite large.
485290000SglebiusIn
486290000Sglebiusmany cases the apparent time errors are so large as to exceed the
487290000Sglebiusstep threshold and a step correction can occur during and after the
488290000Sglebiusdata transfer is in progress.
489290000Sglebius.Pp
490290000SglebiusThe huff-n'-puff filter is designed to correct the apparent time
491290000Sglebiusoffset in these cases.
492290000SglebiusIt depends on knowledge of the propagation
493290000Sglebiusdelay when no other traffic is present.
494290000SglebiusIn common scenarios this
495290000Sglebiusoccurs during other than work hours.
496290000SglebiusThe filter maintains a shift
497290000Sglebiusregister that remembers the minimum delay over the most recent
498290000Sglebiusinterval measured usually in hours.
499290000SglebiusUnder conditions of severe
500290000Sglebiusdelay, the filter corrects the apparent offset using the sign of
501290000Sglebiusthe offset and the difference between the apparent delay and
502290000Sglebiusminimum delay.
503290000SglebiusThe name of the filter reflects the negative (huff)
504290000Sglebiusand positive (puff) correction, which depends on the sign of the
505290000Sglebiusoffset.
506290000Sglebius.Pp
507290000SglebiusThe filter is activated by the
508290000Sglebius.Ic tinker
509290000Sglebiuscommand and
510290000Sglebius.Cm huffpuff
511290000Sglebiuskeyword, as described in
512290000Sglebius.Xr ntp.conf 5 .
513290000Sglebius	_END_MDOC_USAGE;
514290000Sglebius};
515290000Sglebius
516290000Sglebiusdoc-section	= {
517290000Sglebius  ds-type	= 'FILES';
518290000Sglebius  ds-format	= 'mdoc';
519290000Sglebius  ds-text	= <<- _END_MDOC_FILES
520290000Sglebius.Bl -tag -width /etc/ntp.drift -compact
521290000Sglebius.It Pa /etc/ntp.conf
522290000Sglebiusthe default name of the configuration file
523290000Sglebius.It Pa /etc/ntp.drift
524290000Sglebiusthe default name of the drift file
525290000Sglebius.It Pa /etc/ntp.keys
526290000Sglebiusthe default name of the key file
527290000Sglebius.El
528290000Sglebius	_END_MDOC_FILES;
529290000Sglebius};
530290000Sglebius
531290000Sglebiusdoc-section	= {
532290000Sglebius  ds-type	= 'SEE ALSO';
533290000Sglebius  ds-format	= 'mdoc';
534290000Sglebius  ds-text	= <<- _END_MDOC_SEE_ALSO
535290000Sglebius.Xr ntp.conf 5 ,
536290000Sglebius.Xr ntpdate 1ntpdatemdoc ,
537290000Sglebius.Xr ntpdc 1ntpdcmdoc ,
538290000Sglebius.Xr ntpq 1ntpqmdoc ,
539290000Sglebius.Xr sntp 1sntpmdoc
540290000Sglebius.Pp
541290000SglebiusIn addition to the manual pages provided,
542290000Sglebiuscomprehensive documentation is available on the world wide web
543290000Sglebiusat
544290000Sglebius.Li http://www.ntp.org/ .
545290000SglebiusA snapshot of this documentation is available in HTML format in
546290000Sglebius.Pa /usr/share/doc/ntp .
547290000Sglebius.Rs
548290000Sglebius.%A David L. Mills
549290000Sglebius.%T Network Time Protocol (Version 1)
550290000Sglebius.%O RFC1059
551290000Sglebius.Re
552290000Sglebius.Rs
553290000Sglebius.%A David L. Mills
554290000Sglebius.%T Network Time Protocol (Version 2)
555290000Sglebius.%O RFC1119
556290000Sglebius.Re
557290000Sglebius.Rs
558290000Sglebius.%A David L. Mills
559290000Sglebius.%T Network Time Protocol (Version 3)
560290000Sglebius.%O RFC1305
561290000Sglebius.Re
562290000Sglebius.Rs
563290000Sglebius.%A David L. Mills
564290000Sglebius.%A J. Martin, Ed.
565290000Sglebius.%A J. Burbank
566290000Sglebius.%A W. Kasch
567290000Sglebius.%T Network Time Protocol Version 4: Protocol and Algorithms Specification
568290000Sglebius.%O RFC5905
569290000Sglebius.Re
570290000Sglebius.Rs
571290000Sglebius.%A David L. Mills
572290000Sglebius.%A B. Haberman, Ed.
573290000Sglebius.%T Network Time Protocol Version 4: Autokey Specification
574290000Sglebius.%O RFC5906
575290000Sglebius.Re
576290000Sglebius.Rs
577290000Sglebius.%A H. Gerstung
578290000Sglebius.%A C. Elliott
579290000Sglebius.%A B. Haberman, Ed.
580290000Sglebius.%T Definitions of Managed Objects for Network Time Protocol Version 4: (NTPv4)
581290000Sglebius.%O RFC5907
582290000Sglebius.Re
583290000Sglebius.Rs
584290000Sglebius.%A R. Gayraud
585290000Sglebius.%A B. Lourdelet
586290000Sglebius.%T Network Time Protocol (NTP) Server Option for DHCPv6
587290000Sglebius.%O RFC5908
588290000Sglebius.Re
589290000Sglebius	_END_MDOC_SEE_ALSO;
590290000Sglebius};
591290000Sglebius
592290000Sglebiusdoc-section	= {
593290000Sglebius  ds-type	= 'BUGS';
594290000Sglebius  ds-format	= 'mdoc';
595290000Sglebius  ds-text	= <<- _END_MDOC_BUGS
596290000SglebiusThe
597290000Sglebius.Nm
598290000Sglebiusutility has gotten rather fat.
599290000SglebiusWhile not huge, it has gotten
600290000Sglebiuslarger than might be desirable for an elevated-priority
601290000Sglebius.Nm
602290000Sglebiusrunning on a workstation, particularly since many of
603290000Sglebiusthe fancy features which consume the space were designed more with
604290000Sglebiusa busy primary server, rather than a high stratum workstation in
605290000Sglebiusmind.
606290000Sglebius	_END_MDOC_BUGS;
607290000Sglebius};
608290000Sglebius
609290000Sglebiusdoc-section	= {
610290000Sglebius  ds-type	= 'NOTES';
611290000Sglebius  ds-format	= 'mdoc';
612290000Sglebius  ds-text	= <<- _END_MDOC_NOTES
613290000SglebiusPortions of this document came from FreeBSD.
614290000Sglebius	_END_MDOC_NOTES;
615290000Sglebius};
616