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