1181834Sroberto/* -*- Mode: Text -*- */
2181834Sroberto
3181834Srobertoautogen definitions options;
4181834Sroberto
5181834Sroberto#include copyright.def
6181834Sroberto
7285612Sdelphijprog-name	= "ntpd";
8285612Sdelphijprog-title	= "NTP daemon program";
9285612Sdelphijargument	= "[ <server1> ... <serverN> ]";
10181834Sroberto
11181834Sroberto#include ntpdbase-opts.def
12181834Sroberto
13285612Sdelphij/* explain: Additional information whenever the usage routine is invoked */
14285612Sdelphijexplain = <<- _END_EXPLAIN
15285612Sdelphij	_END_EXPLAIN;
16285612Sdelphij
17285612Sdelphijdoc-section	= {
18285612Sdelphij  ds-type	= 'DESCRIPTION';
19285612Sdelphij  ds-format	= 'mdoc';
20285612Sdelphij  ds-text	= <<- _END_PROG_MDOC_DESCRIP
21285612SdelphijThe
22285612Sdelphij.Nm
23285612Sdelphijutility is an operating system daemon which sets
24285612Sdelphijand maintains the system time of day in synchronism with Internet
25285612Sdelphijstandard time servers.
26285612SdelphijIt is a complete implementation of the
27285612SdelphijNetwork Time Protocol (NTP) version 4, as defined by RFC-5905,
28285612Sdelphijbut also retains compatibility with
29285612Sdelphijversion 3, as defined by RFC-1305, and versions 1
30285612Sdelphijand 2, as defined by RFC-1059 and RFC-1119, respectively.
31285612Sdelphij.Pp
32285612SdelphijThe
33285612Sdelphij.Nm
34285612Sdelphijutility does most computations in 64-bit floating point
35285612Sdelphijarithmetic and does relatively clumsy 64-bit fixed point operations
36285612Sdelphijonly when necessary to preserve the ultimate precision, about 232
37285612Sdelphijpicoseconds.
38285612SdelphijWhile the ultimate precision is not achievable with
39285612Sdelphijordinary workstations and networks of today, it may be required
40285612Sdelphijwith future gigahertz CPU clocks and gigabit LANs.
41285612Sdelphij.Pp
42285612SdelphijOrdinarily,
43285612Sdelphij.Nm
44285612Sdelphijreads the
45285612Sdelphij.Xr ntp.conf 5
46285612Sdelphijconfiguration file at startup time in order to determine the
47285612Sdelphijsynchronization sources and operating modes.
48285612SdelphijIt is also possible to
49285612Sdelphijspecify a working, although limited, configuration entirely on the
50285612Sdelphijcommand line, obviating the need for a configuration file.
51285612SdelphijThis may
52285612Sdelphijbe particularly useful when the local host is to be configured as a
53285612Sdelphijbroadcast/multicast client, with all peers being determined by
54285612Sdelphijlistening to broadcasts at run time.
55285612Sdelphij.Pp
56285612SdelphijIf NetInfo support is built into
57285612Sdelphij.Nm ,
58285612Sdelphijthen
59285612Sdelphij.Nm
60285612Sdelphijwill attempt to read its configuration from the
61285612SdelphijNetInfo if the default
62285612Sdelphij.Xr ntp.conf 5
63285612Sdelphijfile cannot be read and no file is
64285612Sdelphijspecified by the
65285612Sdelphij.Fl c
66285612Sdelphijoption.
67285612Sdelphij.Pp
68285612SdelphijVarious internal
69285612Sdelphij.Nm
70285612Sdelphijvariables can be displayed and
71285612Sdelphijconfiguration options altered while the
72285612Sdelphij.Nm
73285612Sdelphijis running
74285612Sdelphijusing the
75285612Sdelphij.Xr ntpq 1ntpqmdoc
76285612Sdelphijand
77285612Sdelphij.Xr ntpdc 1ntpdcmdoc
78285612Sdelphijutility programs.
79285612Sdelphij.Pp
80285612SdelphijWhen
81285612Sdelphij.Nm
82285612Sdelphijstarts it looks at the value of
83285612Sdelphij.Xr umask 2 ,
84285612Sdelphijand if zero
85285612Sdelphij.Nm
86285612Sdelphijwill set the
87285612Sdelphij.Xr umask 2
88285612Sdelphijto 022.
89285612Sdelphij	_END_PROG_MDOC_DESCRIP;
90285612Sdelphij};
91285612Sdelphij
92285612Sdelphijdoc-section	= {
93285612Sdelphij  ds-type	= 'USAGE';
94285612Sdelphij  ds-format	= 'mdoc';
95285612Sdelphij  ds-text	= <<- _END_MDOC_USAGE
96285612Sdelphij.Ss "How NTP Operates"
97285612SdelphijThe
98285612Sdelphij.Nm
99285612Sdelphijutility operates by exchanging messages with
100285612Sdelphijone or more configured servers over a range of designated poll intervals.
101285612SdelphijWhen
102285612Sdelphijstarted, whether for the first or subsequent times, the program
103285612Sdelphijrequires several exchanges from the majority of these servers so
104285612Sdelphijthe signal processing and mitigation algorithms can accumulate and
105285612Sdelphijgroom the data and set the clock.
106285612SdelphijIn order to protect the network
107285612Sdelphijfrom bursts, the initial poll interval for each server is delayed
108285612Sdelphijan interval randomized over a few seconds.
109285612SdelphijAt the default initial poll
110285612Sdelphijinterval of 64s, several minutes can elapse before the clock is
111285612Sdelphijset.
112285612SdelphijThis initial delay to set the clock
113285612Sdelphijcan be safely and dramatically reduced using the
114285612Sdelphij.Cm iburst
115285612Sdelphijkeyword with the
116285612Sdelphij.Ic server
117285612Sdelphijconfiguration
118285612Sdelphijcommand, as described in
119285612Sdelphij.Xr ntp.conf 5 .
120285612Sdelphij.Pp
121285612SdelphijMost operating systems and hardware of today incorporate a
122285612Sdelphijtime-of-year (TOY) chip to maintain the time during periods when
123285612Sdelphijthe power is off.
124285612SdelphijWhen the machine is booted, the chip is used to
125285612Sdelphijinitialize the operating system time.
126285612SdelphijAfter the machine has
127285612Sdelphijsynchronized to a NTP server, the operating system corrects the
128285612Sdelphijchip from time to time.
129285612SdelphijIn the default case, if
130285612Sdelphij.Nm
131285612Sdelphijdetects that the time on the host
132285612Sdelphijis more than 1000s from the server time,
133285612Sdelphij.Nm
134285612Sdelphijassumes something must be terribly wrong and the only
135285612Sdelphijreliable action is for the operator to intervene and set the clock
136285612Sdelphijby hand.
137285612Sdelphij(Reasons for this include there is no TOY chip,
138285612Sdelphijor its battery is dead, or that the TOY chip is just of poor quality.)
139285612SdelphijThis causes
140285612Sdelphij.Nm
141285612Sdelphijto exit with a panic message to
142285612Sdelphijthe system log.
143285612SdelphijThe
144285612Sdelphij.Fl g
145285612Sdelphijoption overrides this check and the
146285612Sdelphijclock will be set to the server time regardless of the chip time
147285612Sdelphij(up to 68 years in the past or future \(em
148285612Sdelphijthis is a limitation of the NTPv4 protocol).
149285612SdelphijHowever, and to protect against broken hardware, such as when the
150285612SdelphijCMOS battery fails or the clock counter becomes defective, once the
151285612Sdelphijclock has been set an error greater than 1000s will cause
152285612Sdelphij.Nm
153285612Sdelphijto exit anyway.
154285612Sdelphij.Pp
155285612SdelphijUnder ordinary conditions,
156285612Sdelphij.Nm
157285612Sdelphijadjusts the clock in
158285612Sdelphijsmall steps so that the timescale is effectively continuous and
159285612Sdelphijwithout discontinuities.
160285612SdelphijUnder conditions of extreme network
161285612Sdelphijcongestion, the roundtrip delay jitter can exceed three seconds and
162285612Sdelphijthe synchronization distance, which is equal to one-half the
163285612Sdelphijroundtrip delay plus error budget terms, can become very large.
164285612SdelphijThe
165285612Sdelphij.Nm
166285612Sdelphijalgorithms discard sample offsets exceeding 128 ms,
167285612Sdelphijunless the interval during which no sample offset is less than 128
168285612Sdelphijms exceeds 900s.
169285612SdelphijThe first sample after that, no matter what the
170285612Sdelphijoffset, steps the clock to the indicated time.
171285612SdelphijIn practice this
172285612Sdelphijreduces the false alarm rate where the clock is stepped in error to
173285612Sdelphija vanishingly low incidence.
174285612Sdelphij.Pp
175285612SdelphijAs the result of this behavior, once the clock has been set it
176285612Sdelphijvery rarely strays more than 128 ms even under extreme cases of
177285612Sdelphijnetwork path congestion and jitter.
178285612SdelphijSometimes, in particular when
179285612Sdelphij.Nm
180285612Sdelphijis first started without a valid drift file
181285612Sdelphijon a system with a large intrinsic drift
182285612Sdelphijthe error might grow to exceed 128 ms,
183285612Sdelphijwhich would cause the clock to be set backwards
184285612Sdelphijif the local clock time is more than 128 s
185285612Sdelphijin the future relative to the server.
186285612SdelphijIn some applications, this behavior may be unacceptable.
187285612SdelphijThere are several solutions, however.
188285612SdelphijIf the
189285612Sdelphij.Fl x
190285612Sdelphijoption is included on the command line, the clock will
191285612Sdelphijnever be stepped and only slew corrections will be used.
192285612SdelphijBut this choice comes with a cost that
193285612Sdelphijshould be carefully explored before deciding to use
194285612Sdelphijthe
195285612Sdelphij.Fl x
196285612Sdelphijoption.
197285612SdelphijThe maximum slew rate possible is limited
198285612Sdelphijto 500 parts-per-million (PPM) as a consequence of the correctness
199285612Sdelphijprinciples on which the NTP protocol and algorithm design are
200285612Sdelphijbased.
201285612SdelphijAs a result, the local clock can take a long time to
202285612Sdelphijconverge to an acceptable offset, about 2,000 s for each second the
203285612Sdelphijclock is outside the acceptable range.
204285612SdelphijDuring this interval the
205285612Sdelphijlocal clock will not be consistent with any other network clock and
206285612Sdelphijthe system cannot be used for distributed applications that require
207285612Sdelphijcorrectly synchronized network time.
208285612Sdelphij.Pp
209285612SdelphijIn spite of the above precautions, sometimes when large
210285612Sdelphijfrequency errors are present the resulting time offsets stray
211285612Sdelphijoutside the 128-ms range and an eventual step or slew time
212285612Sdelphijcorrection is required.
213285612SdelphijIf following such a correction the
214285612Sdelphijfrequency error is so large that the first sample is outside the
215285612Sdelphijacceptable range,
216285612Sdelphij.Nm
217285612Sdelphijenters the same state as when the
218285612Sdelphij.Pa ntp.drift
219285612Sdelphijfile is not present.
220285612SdelphijThe intent of this behavior
221285612Sdelphijis to quickly correct the frequency and restore operation to the
222285612Sdelphijnormal tracking mode.
223285612SdelphijIn the most extreme cases
224285612Sdelphij(the host
225285612Sdelphij.Cm time.ien.it
226285612Sdelphijcomes to mind), there may be occasional
227285612Sdelphijstep/slew corrections and subsequent frequency corrections.
228285612SdelphijIt
229285612Sdelphijhelps in these cases to use the
230285612Sdelphij.Cm burst
231285612Sdelphijkeyword when
232285612Sdelphijconfiguring the server, but
233285612SdelphijONLY
234285612Sdelphijwhen you have permission to do so from the owner of the target host.
235285612Sdelphij.Pp
236285612SdelphijFinally,
237285612Sdelphijin the past many startup scripts would run
238285612Sdelphij.Xr ntpdate 1ntpdatemdoc
239289999Sglebiusor
240289999Sglebius.Xr sntp 1sntpmdoc
241285612Sdelphijto get the system clock close to correct before starting
242285612Sdelphij.Xr ntpd 1ntpdmdoc ,
243285612Sdelphijbut this was never more than a mediocre hack and is no longer needed.
244285612SdelphijIf you are following the instructions in
245285612Sdelphij.Sx "Starting NTP (Best Current Practice)"
246285612Sdelphijand you still need to set the system time before starting
247285612Sdelphij.Nm ,
248285612Sdelphijplease open a bug report and document what is going on,
249285612Sdelphijand then look at using
250289999Sglebius.Xr sntp 1sntpmdoc
251289999Sglebiusif you really need to set the clock before starting
252289999Sglebius.Nm .
253285612Sdelphij.Pp
254285612SdelphijThere is a way to start
255285612Sdelphij.Xr ntpd 1ntpdmdoc
256285612Sdelphijthat often addresses all of the problems mentioned above.
257285612Sdelphij.Ss "Starting NTP (Best Current Practice)"
258285612SdelphijFirst, use the
259285612Sdelphij.Cm iburst
260285612Sdelphijoption on your
261285612Sdelphij.Cm server
262285612Sdelphijentries.
263285612Sdelphij.Pp
264285612SdelphijIf you can also keep a good
265285612Sdelphij.Pa ntp.drift
266285612Sdelphijfile then
267285612Sdelphij.Xr ntpd 1ntpdmdoc
268285612Sdelphijwill effectively "warm-start" and your system's clock will
269285612Sdelphijbe stable in under 11 seconds' time.
270285612Sdelphij.Pp
271285612SdelphijAs soon as possible in the startup sequence, start
272285612Sdelphij.Xr ntpd 1ntpdmdoc
273285612Sdelphijwith at least the
274285612Sdelphij.Fl g
275285612Sdelphijand perhaps the
276285612Sdelphij.Fl N
277285612Sdelphijoptions.
278285612SdelphijThen,
279285612Sdelphijstart the rest of your "normal" processes.
280285612SdelphijThis will give
281285612Sdelphij.Xr ntpd 1ntpdmdoc
282285612Sdelphijas much time as possible to get the system's clock synchronized and stable.
283285612Sdelphij.Pp
284285612SdelphijFinally,
285285612Sdelphijif you have processes like
286285612Sdelphij.Cm dovecot
287285612Sdelphijor database servers
288285612Sdelphijthat require
289285612Sdelphijmonotonically-increasing time,
290285612Sdelphijrun
291285612Sdelphij.Xr ntp-wait 1ntp-waitmdoc
292285612Sdelphijas late as possible in the boot sequence
293285612Sdelphij(perhaps with the
294285612Sdelphij.Fl v
295285612Sdelphijflag)
296285612Sdelphijand after
297285612Sdelphij.Xr ntp-wait 1ntp-waitmdoc
298285612Sdelphijexits successfully
299285612Sdelphijit is as safe as it will ever be to start any process that require
300285612Sdelphijstable time.
301285612Sdelphij.Ss "Frequency Discipline"
302285612SdelphijThe
303285612Sdelphij.Nm
304285612Sdelphijbehavior at startup depends on whether the
305285612Sdelphijfrequency file, usually
306285612Sdelphij.Pa ntp.drift ,
307285612Sdelphijexists.
308285612SdelphijThis file
309285612Sdelphijcontains the latest estimate of clock frequency error.
310285612SdelphijWhen the
311285612Sdelphij.Nm
312285612Sdelphijis started and the file does not exist, the
313285612Sdelphij.Nm
314285612Sdelphijenters a special mode designed to quickly adapt to
315285612Sdelphijthe particular system clock oscillator time and frequency error.
316285612SdelphijThis takes approximately 15 minutes, after which the time and
317285612Sdelphijfrequency are set to nominal values and the
318285612Sdelphij.Nm
319285612Sdelphijenters
320285612Sdelphijnormal mode, where the time and frequency are continuously tracked
321285612Sdelphijrelative to the server.
322285612SdelphijAfter one hour the frequency file is
323285612Sdelphijcreated and the current frequency offset written to it.
324285612SdelphijWhen the
325285612Sdelphij.Nm
326285612Sdelphijis started and the file does exist, the
327285612Sdelphij.Nm
328285612Sdelphijfrequency is initialized from the file and enters normal mode
329285612Sdelphijimmediately.
330285612SdelphijAfter that the current frequency offset is written to
331285612Sdelphijthe file at hourly intervals.
332285612Sdelphij.Ss "Operating Modes"
333285612SdelphijThe
334285612Sdelphij.Nm
335285612Sdelphijutility can operate in any of several modes, including
336285612Sdelphijsymmetric active/passive, client/server broadcast/multicast and
337285612Sdelphijmanycast, as described in the
338285612Sdelphij.Qq Association Management
339285612Sdelphijpage
340285612Sdelphij(available as part of the HTML documentation
341285612Sdelphijprovided in
342285612Sdelphij.Pa /usr/share/doc/ntp ) .
343285612SdelphijIt normally operates continuously while
344285612Sdelphijmonitoring for small changes in frequency and trimming the clock
345285612Sdelphijfor the ultimate precision.
346285612SdelphijHowever, it can operate in a one-time
347285612Sdelphijmode where the time is set from an external server and frequency is
348285612Sdelphijset from a previously recorded frequency file.
349285612SdelphijA
350285612Sdelphijbroadcast/multicast or manycast client can discover remote servers,
351285612Sdelphijcompute server-client propagation delay correction factors and
352285612Sdelphijconfigure itself automatically.
353285612SdelphijThis makes it possible to deploy a
354285612Sdelphijfleet of workstations without specifying configuration details
355285612Sdelphijspecific to the local environment.
356285612Sdelphij.Pp
357285612SdelphijBy default,
358285612Sdelphij.Nm
359285612Sdelphijruns in continuous mode where each of
360285612Sdelphijpossibly several external servers is polled at intervals determined
361285612Sdelphijby an intricate state machine.
362285612SdelphijThe state machine measures the
363285612Sdelphijincidental roundtrip delay jitter and oscillator frequency wander
364285612Sdelphijand determines the best poll interval using a heuristic algorithm.
365285612SdelphijOrdinarily, and in most operating environments, the state machine
366285612Sdelphijwill start with 64s intervals and eventually increase in steps to
367285612Sdelphij1024s.
368285612SdelphijA small amount of random variation is introduced in order to
369285612Sdelphijavoid bunching at the servers.
370285612SdelphijIn addition, should a server become
371285612Sdelphijunreachable for some time, the poll interval is increased in steps
372285612Sdelphijto 1024s in order to reduce network overhead.
373285612Sdelphij.Pp
374285612SdelphijIn some cases it may not be practical for
375285612Sdelphij.Nm
376285612Sdelphijto run continuously.
377285612SdelphijA common workaround has been to run the
378285612Sdelphij.Xr ntpdate 1ntpdatemdoc
379285612Sdelphijor
380285612Sdelphij.Xr sntp 1sntpmdoc
381285612Sdelphijprograms from a
382285612Sdelphij.Xr cron 8
383285612Sdelphijjob at designated
384285612Sdelphijtimes.
385285612SdelphijHowever, these programs do not have the crafted signal
386285612Sdelphijprocessing, error checking or mitigation algorithms of
387285612Sdelphij.Nm .
388285612SdelphijThe
389285612Sdelphij.Fl q
390285612Sdelphijoption is intended for this purpose.
391285612SdelphijSetting this option will cause
392285612Sdelphij.Nm
393285612Sdelphijto exit just after
394285612Sdelphijsetting the clock for the first time.
395285612SdelphijThe procedure for initially
396285612Sdelphijsetting the clock is the same as in continuous mode; most
397285612Sdelphijapplications will probably want to specify the
398285612Sdelphij.Cm iburst
399285612Sdelphijkeyword with the
400285612Sdelphij.Ic server
401285612Sdelphijconfiguration command.
402285612SdelphijWith this
403285612Sdelphijkeyword a volley of messages are exchanged to groom the data and
404285612Sdelphijthe clock is set in about 10 s.
405285612SdelphijIf nothing is heard after a
406285612Sdelphijcouple of minutes, the daemon times out and exits.
407285612SdelphijAfter a suitable
408285612Sdelphijperiod of mourning, the
409285612Sdelphij.Xr ntpdate 1ntpdatemdoc
410285612Sdelphijprogram will be
411285612Sdelphijretired.
412285612Sdelphij.Pp
413285612SdelphijWhen kernel support is available to discipline the clock
414285612Sdelphijfrequency, which is the case for stock Solaris, Tru64, Linux and
415285612Sdelphij.Fx ,
416285612Sdelphija useful feature is available to discipline the clock
417285612Sdelphijfrequency.
418285612SdelphijFirst,
419285612Sdelphij.Nm
420285612Sdelphijis run in continuous mode with
421285612Sdelphijselected servers in order to measure and record the intrinsic clock
422285612Sdelphijfrequency offset in the frequency file.
423285612SdelphijIt may take some hours for
424285612Sdelphijthe frequency and offset to settle down.
425285612SdelphijThen the
426285612Sdelphij.Nm
427285612Sdelphijis
428285612Sdelphijstopped and run in one-time mode as required.
429285612SdelphijAt each startup, the
430285612Sdelphijfrequency is read from the file and initializes the kernel
431285612Sdelphijfrequency.
432285612Sdelphij.Ss "Poll Interval Control"
433285612SdelphijThis version of NTP includes an intricate state machine to
434285612Sdelphijreduce the network load while maintaining a quality of
435285612Sdelphijsynchronization consistent with the observed jitter and wander.
436285612SdelphijThere are a number of ways to tailor the operation in order enhance
437285612Sdelphijaccuracy by reducing the interval or to reduce network overhead by
438285612Sdelphijincreasing it.
439285612SdelphijHowever, the user is advised to carefully consider
440285612Sdelphijthe consequences of changing the poll adjustment range from the
441285612Sdelphijdefault minimum of 64 s to the default maximum of 1,024 s.
442285612SdelphijThe
443285612Sdelphijdefault minimum can be changed with the
444285612Sdelphij.Ic tinker
445285612Sdelphij.Cm minpoll
446285612Sdelphijcommand to a value not less than 16 s.
447285612SdelphijThis value is used for all
448285612Sdelphijconfigured associations, unless overridden by the
449285612Sdelphij.Cm minpoll
450285612Sdelphijoption on the configuration command.
451285612SdelphijNote that most device drivers
452285612Sdelphijwill not operate properly if the poll interval is less than 64 s
453285612Sdelphijand that the broadcast server and manycast client associations will
454285612Sdelphijalso use the default, unless overridden.
455285612Sdelphij.Pp
456285612SdelphijIn some cases involving dial up or toll services, it may be
457285612Sdelphijuseful to increase the minimum interval to a few tens of minutes
458285612Sdelphijand maximum interval to a day or so.
459285612SdelphijUnder normal operation
460285612Sdelphijconditions, once the clock discipline loop has stabilized the
461285612Sdelphijinterval will be increased in steps from the minimum to the
462285612Sdelphijmaximum.
463285612SdelphijHowever, this assumes the intrinsic clock frequency error
464285612Sdelphijis small enough for the discipline loop correct it.
465285612SdelphijThe capture
466285612Sdelphijrange of the loop is 500 PPM at an interval of 64s decreasing by a
467285612Sdelphijfactor of two for each doubling of interval.
468285612SdelphijAt a minimum of 1,024
469285612Sdelphijs, for example, the capture range is only 31 PPM.
470285612SdelphijIf the intrinsic
471285612Sdelphijerror is greater than this, the drift file
472285612Sdelphij.Pa ntp.drift
473285612Sdelphijwill
474285612Sdelphijhave to be specially tailored to reduce the residual error below
475285612Sdelphijthis limit.
476285612SdelphijOnce this is done, the drift file is automatically
477285612Sdelphijupdated once per hour and is available to initialize the frequency
478285612Sdelphijon subsequent daemon restarts.
479285612Sdelphij.Ss "The huff-n'-puff Filter"
480285612SdelphijIn scenarios where a considerable amount of data are to be
481285612Sdelphijdownloaded or uploaded over telephone modems, timekeeping quality
482285612Sdelphijcan be seriously degraded.
483285612SdelphijThis occurs because the differential
484285612Sdelphijdelays on the two directions of transmission can be quite large.
485285612SdelphijIn
486285612Sdelphijmany cases the apparent time errors are so large as to exceed the
487285612Sdelphijstep threshold and a step correction can occur during and after the
488285612Sdelphijdata transfer is in progress.
489285612Sdelphij.Pp
490285612SdelphijThe huff-n'-puff filter is designed to correct the apparent time
491285612Sdelphijoffset in these cases.
492285612SdelphijIt depends on knowledge of the propagation
493285612Sdelphijdelay when no other traffic is present.
494285612SdelphijIn common scenarios this
495285612Sdelphijoccurs during other than work hours.
496285612SdelphijThe filter maintains a shift
497285612Sdelphijregister that remembers the minimum delay over the most recent
498285612Sdelphijinterval measured usually in hours.
499285612SdelphijUnder conditions of severe
500285612Sdelphijdelay, the filter corrects the apparent offset using the sign of
501285612Sdelphijthe offset and the difference between the apparent delay and
502285612Sdelphijminimum delay.
503285612SdelphijThe name of the filter reflects the negative (huff)
504285612Sdelphijand positive (puff) correction, which depends on the sign of the
505285612Sdelphijoffset.
506285612Sdelphij.Pp
507285612SdelphijThe filter is activated by the
508285612Sdelphij.Ic tinker
509285612Sdelphijcommand and
510285612Sdelphij.Cm huffpuff
511285612Sdelphijkeyword, as described in
512285612Sdelphij.Xr ntp.conf 5 .
513285612Sdelphij	_END_MDOC_USAGE;
514285612Sdelphij};
515285612Sdelphij
516285612Sdelphijdoc-section	= {
517285612Sdelphij  ds-type	= 'FILES';
518285612Sdelphij  ds-format	= 'mdoc';
519285612Sdelphij  ds-text	= <<- _END_MDOC_FILES
520285612Sdelphij.Bl -tag -width /etc/ntp.drift -compact
521285612Sdelphij.It Pa /etc/ntp.conf
522285612Sdelphijthe default name of the configuration file
523285612Sdelphij.It Pa /etc/ntp.drift
524285612Sdelphijthe default name of the drift file
525285612Sdelphij.It Pa /etc/ntp.keys
526285612Sdelphijthe default name of the key file
527285612Sdelphij.El
528285612Sdelphij	_END_MDOC_FILES;
529285612Sdelphij};
530285612Sdelphij
531285612Sdelphijdoc-section	= {
532285612Sdelphij  ds-type	= 'SEE ALSO';
533285612Sdelphij  ds-format	= 'mdoc';
534285612Sdelphij  ds-text	= <<- _END_MDOC_SEE_ALSO
535285612Sdelphij.Xr ntp.conf 5 ,
536285612Sdelphij.Xr ntpdate 1ntpdatemdoc ,
537285612Sdelphij.Xr ntpdc 1ntpdcmdoc ,
538285612Sdelphij.Xr ntpq 1ntpqmdoc ,
539285612Sdelphij.Xr sntp 1sntpmdoc
540285612Sdelphij.Pp
541285612SdelphijIn addition to the manual pages provided,
542285612Sdelphijcomprehensive documentation is available on the world wide web
543285612Sdelphijat
544285612Sdelphij.Li http://www.ntp.org/ .
545285612SdelphijA snapshot of this documentation is available in HTML format in
546285612Sdelphij.Pa /usr/share/doc/ntp .
547285612Sdelphij.Rs
548285612Sdelphij.%A David L. Mills
549285612Sdelphij.%T Network Time Protocol (Version 1)
550285612Sdelphij.%O RFC1059
551285612Sdelphij.Re
552285612Sdelphij.Rs
553285612Sdelphij.%A David L. Mills
554285612Sdelphij.%T Network Time Protocol (Version 2)
555285612Sdelphij.%O RFC1119
556285612Sdelphij.Re
557285612Sdelphij.Rs
558285612Sdelphij.%A David L. Mills
559285612Sdelphij.%T Network Time Protocol (Version 3)
560285612Sdelphij.%O RFC1305
561285612Sdelphij.Re
562285612Sdelphij.Rs
563285612Sdelphij.%A David L. Mills
564285612Sdelphij.%A J. Martin, Ed.
565285612Sdelphij.%A J. Burbank
566285612Sdelphij.%A W. Kasch
567285612Sdelphij.%T Network Time Protocol Version 4: Protocol and Algorithms Specification
568285612Sdelphij.%O RFC5905
569285612Sdelphij.Re
570285612Sdelphij.Rs
571285612Sdelphij.%A David L. Mills
572285612Sdelphij.%A B. Haberman, Ed.
573285612Sdelphij.%T Network Time Protocol Version 4: Autokey Specification
574285612Sdelphij.%O RFC5906
575285612Sdelphij.Re
576285612Sdelphij.Rs
577285612Sdelphij.%A H. Gerstung
578285612Sdelphij.%A C. Elliott
579285612Sdelphij.%A B. Haberman, Ed.
580285612Sdelphij.%T Definitions of Managed Objects for Network Time Protocol Version 4: (NTPv4)
581285612Sdelphij.%O RFC5907
582285612Sdelphij.Re
583285612Sdelphij.Rs
584285612Sdelphij.%A R. Gayraud
585285612Sdelphij.%A B. Lourdelet
586285612Sdelphij.%T Network Time Protocol (NTP) Server Option for DHCPv6
587285612Sdelphij.%O RFC5908
588285612Sdelphij.Re
589285612Sdelphij	_END_MDOC_SEE_ALSO;
590285612Sdelphij};
591285612Sdelphij
592285612Sdelphijdoc-section	= {
593285612Sdelphij  ds-type	= 'BUGS';
594285612Sdelphij  ds-format	= 'mdoc';
595285612Sdelphij  ds-text	= <<- _END_MDOC_BUGS
596285612SdelphijThe
597285612Sdelphij.Nm
598285612Sdelphijutility has gotten rather fat.
599285612SdelphijWhile not huge, it has gotten
600285612Sdelphijlarger than might be desirable for an elevated-priority
601285612Sdelphij.Nm
602285612Sdelphijrunning on a workstation, particularly since many of
603285612Sdelphijthe fancy features which consume the space were designed more with
604285612Sdelphija busy primary server, rather than a high stratum workstation in
605285612Sdelphijmind.
606285612Sdelphij	_END_MDOC_BUGS;
607285612Sdelphij};
608285612Sdelphij
609285612Sdelphijdoc-section	= {
610285612Sdelphij  ds-type	= 'NOTES';
611285612Sdelphij  ds-format	= 'mdoc';
612285612Sdelphij  ds-text	= <<- _END_MDOC_NOTES
613285612SdelphijPortions of this document came from FreeBSD.
614285612Sdelphij	_END_MDOC_NOTES;
615285612Sdelphij};
616