head 1.1; branch 1.1.1; access; symbols netbsd-11-0-RC4:1.1.1.3 netbsd-11-0-RC3:1.1.1.3 netbsd-11-0-RC2:1.1.1.3 netbsd-11-0-RC1:1.1.1.3 perseant-exfatfs-base-20250801:1.1.1.3 netbsd-11:1.1.1.3.0.10 netbsd-11-base:1.1.1.3 netbsd-10-1-RELEASE:1.1.1.3 ntp-4-2-8p18:1.1.1.3 perseant-exfatfs-base-20240630:1.1.1.3 perseant-exfatfs:1.1.1.3.0.8 perseant-exfatfs-base:1.1.1.3 netbsd-8-3-RELEASE:1.1.1.2 netbsd-9-4-RELEASE:1.1.1.2 netbsd-10-0-RELEASE:1.1.1.3 netbsd-10-0-RC6:1.1.1.3 netbsd-10-0-RC5:1.1.1.3 netbsd-10-0-RC4:1.1.1.3 netbsd-10-0-RC3:1.1.1.3 netbsd-10-0-RC2:1.1.1.3 netbsd-10-0-RC1:1.1.1.3 netbsd-10:1.1.1.3.0.6 netbsd-10-base:1.1.1.3 ntp-4-2-8p15:1.1.1.3 netbsd-9-3-RELEASE:1.1.1.2 cjep_sun2x-base1:1.1.1.3 cjep_sun2x:1.1.1.3.0.4 cjep_sun2x-base:1.1.1.3 cjep_staticlib_x-base1:1.1.1.3 netbsd-9-2-RELEASE:1.1.1.2 cjep_staticlib_x:1.1.1.3.0.2 cjep_staticlib_x-base:1.1.1.3 netbsd-9-1-RELEASE:1.1.1.2 ntp-4-2-8p14:1.1.1.3 phil-wifi-20200421:1.1.1.2 phil-wifi-20200411:1.1.1.2 is-mlppp:1.1.1.2.0.32 is-mlppp-base:1.1.1.2 phil-wifi-20200406:1.1.1.2 netbsd-8-2-RELEASE:1.1.1.2 netbsd-9-0-RELEASE:1.1.1.2 netbsd-9-0-RC2:1.1.1.2 netbsd-9-0-RC1:1.1.1.2 phil-wifi-20191119:1.1.1.2 netbsd-9:1.1.1.2.0.30 netbsd-9-base:1.1.1.2 phil-wifi-20190609:1.1.1.2 netbsd-8-1-RELEASE:1.1.1.2 netbsd-8-1-RC1:1.1.1.2 pgoyette-compat-merge-20190127:1.1.1.2 pgoyette-compat-20190127:1.1.1.2 pgoyette-compat-20190118:1.1.1.2 pgoyette-compat-1226:1.1.1.2 pgoyette-compat-1126:1.1.1.2 pgoyette-compat-1020:1.1.1.2 pgoyette-compat-0930:1.1.1.2 ntp-4-2-8p12:1.1.1.2 pgoyette-compat-0906:1.1.1.2 netbsd-7-2-RELEASE:1.1.1.1.6.1 pgoyette-compat-0728:1.1.1.2 netbsd-8-0-RELEASE:1.1.1.2 phil-wifi:1.1.1.2.0.28 phil-wifi-base:1.1.1.2 pgoyette-compat-0625:1.1.1.2 netbsd-8-0-RC2:1.1.1.2 pgoyette-compat-0521:1.1.1.2 pgoyette-compat-0502:1.1.1.2 pgoyette-compat-0422:1.1.1.2 netbsd-8-0-RC1:1.1.1.2 pgoyette-compat-0415:1.1.1.2 pgoyette-compat-0407:1.1.1.2 ntp-4-2-8p11:1.1.1.2 pgoyette-compat-0330:1.1.1.2 pgoyette-compat-0322:1.1.1.2 pgoyette-compat-0315:1.1.1.2 netbsd-7-1-2-RELEASE:1.1.1.1.6.1 pgoyette-compat:1.1.1.2.0.26 pgoyette-compat-base:1.1.1.2 netbsd-7-1-1-RELEASE:1.1.1.1.6.1 matt-nb8-mediatek:1.1.1.2.0.24 matt-nb8-mediatek-base:1.1.1.2 perseant-stdc-iso10646:1.1.1.2.0.22 perseant-stdc-iso10646-base:1.1.1.2 netbsd-8:1.1.1.2.0.20 netbsd-8-base:1.1.1.2 prg-localcount2-base3:1.1.1.2 prg-localcount2-base2:1.1.1.2 prg-localcount2-base1:1.1.1.2 prg-localcount2:1.1.1.2.0.18 prg-localcount2-base:1.1.1.2 pgoyette-localcount-20170426:1.1.1.2 bouyer-socketcan-base1:1.1.1.2 ntp-4-2-8p10:1.1.1.2 pgoyette-localcount-20170320:1.1.1.2 netbsd-7-1:1.1.1.1.6.1.0.6 netbsd-7-1-RELEASE:1.1.1.1.6.1 netbsd-7-1-RC2:1.1.1.1.6.1 netbsd-7-nhusb-base-20170116:1.1.1.1.6.1 bouyer-socketcan:1.1.1.2.0.16 bouyer-socketcan-base:1.1.1.2 pgoyette-localcount-20170107:1.1.1.2 netbsd-7-1-RC1:1.1.1.1.6.1 ntp-4-2-8p9:1.1.1.2 pgoyette-localcount-20161104:1.1.1.2 netbsd-7-0-2-RELEASE:1.1.1.1.6.1 localcount-20160914:1.1.1.2 netbsd-7-nhusb:1.1.1.1.6.1.0.4 netbsd-7-nhusb-base:1.1.1.1.6.1 pgoyette-localcount-20160806:1.1.1.2 pgoyette-localcount-20160726:1.1.1.2 pgoyette-localcount:1.1.1.2.0.14 pgoyette-localcount-base:1.1.1.2 ntp-4-2-8p8:1.1.1.2 netbsd-7-0-1-RELEASE:1.1.1.1.6.1 ntp-4-2-8p7:1.1.1.2 ntp-4-2-8p5:1.1.1.2 ntp-4-2-8p4:1.1.1.2 netbsd-7-0:1.1.1.1.6.1.0.2 netbsd-7-0-RELEASE:1.1.1.1.6.1 netbsd-7-0-RC3:1.1.1.1.6.1 netbsd-7-0-RC2:1.1.1.1.6.1 ntp-4-2-8p3:1.1.1.2 netbsd-7-0-RC1:1.1.1.1.6.1 ntp-4-2-8p2:1.1.1.2 netbsd-5-1:1.1.1.2.0.12 netbsd-5-2:1.1.1.2.0.10 netbsd-5:1.1.1.2.0.8 netbsd-6:1.1.1.2.0.6 netbsd-6-0:1.1.1.2.0.4 netbsd-6-1:1.1.1.2.0.2 ntp-4-2-8:1.1.1.2 tls-maxphys-base:1.1.1.1 tls-maxphys:1.1.1.1.0.8 netbsd-7:1.1.1.1.0.6 netbsd-7-base:1.1.1.1 yamt-pagecache:1.1.1.1.0.4 yamt-pagecache-base9:1.1.1.1 tls-earlyentropy:1.1.1.1.0.2 tls-earlyentropy-base:1.1.1.1 riastradh-xf86-video-intel-2-7-1-pre-2-21-15:1.1.1.1 riastradh-drm2-base3:1.1.1.1 ntp-2-4-7p404:1.1.1.1 UDEL:1.1.1; locks; strict; comment @# @; 1.1 date 2013.12.27.23.30.36; author christos; state Exp; branches 1.1.1.1; next ; commitid lUOr4MoxyTWJnPix; 1.1.1.1 date 2013.12.27.23.30.36; author christos; state Exp; branches 1.1.1.1.4.1 1.1.1.1.6.1 1.1.1.1.8.1; next 1.1.1.2; commitid lUOr4MoxyTWJnPix; 1.1.1.2 date 2014.12.19.20.37.36; author christos; state Exp; branches 1.1.1.2.2.1 1.1.1.2.4.1 1.1.1.2.6.1 1.1.1.2.8.1 1.1.1.2.10.1 1.1.1.2.12.1; next 1.1.1.3; commitid ZhiTe4k7DUh9XG2y; 1.1.1.3 date 2020.05.25.20.40.04; author christos; state Exp; branches; next ; commitid yf5HSp8c1hlWbF9C; 1.1.1.1.4.1 date 2013.12.27.23.30.36; author yamt; state dead; branches; next 1.1.1.1.4.2; commitid qRWX0Nj0VOtU8yBx; 1.1.1.1.4.2 date 2014.05.22.15.50.04; author yamt; state Exp; branches; next ; commitid qRWX0Nj0VOtU8yBx; 1.1.1.1.6.1 date 2014.12.24.00.05.15; author riz; state Exp; branches; next ; commitid KfwYQsQPJT87Yd3y; 1.1.1.1.8.1 date 2013.12.27.23.30.36; author tls; state dead; branches; next 1.1.1.1.8.2; commitid jTnpym9Qu0o4R1Nx; 1.1.1.1.8.2 date 2014.08.19.23.51.37; author tls; state Exp; branches; next ; commitid jTnpym9Qu0o4R1Nx; 1.1.1.2.2.1 date 2014.12.19.20.37.36; author snj; state dead; branches; next 1.1.1.2.2.2; commitid YfAuzsC3wt5BDm3y; 1.1.1.2.2.2 date 2014.12.25.02.13.00; author snj; state Exp; branches; next ; commitid YfAuzsC3wt5BDm3y; 1.1.1.2.4.1 date 2014.12.19.20.37.36; author snj; state dead; branches; next 1.1.1.2.4.2; commitid 5AhJfEA9N5i2Jm3y; 1.1.1.2.4.2 date 2014.12.25.02.28.02; author snj; state Exp; branches; next ; commitid 5AhJfEA9N5i2Jm3y; 1.1.1.2.6.1 date 2014.12.19.20.37.36; author snj; state dead; branches; next 1.1.1.2.6.2; commitid JG3hF57oHA79Lm3y; 1.1.1.2.6.2 date 2014.12.25.02.34.31; author snj; state Exp; branches; next ; commitid JG3hF57oHA79Lm3y; 1.1.1.2.8.1 date 2014.12.19.20.37.36; author msaitoh; state dead; branches; next 1.1.1.2.8.2; commitid ysuzPTeSQAKO335y; 1.1.1.2.8.2 date 2015.01.07.04.45.22; author msaitoh; state Exp; branches; next ; commitid ysuzPTeSQAKO335y; 1.1.1.2.10.1 date 2014.12.19.20.37.36; author msaitoh; state dead; branches; next 1.1.1.2.10.2; commitid d5X8VW3e9U6mR45y; 1.1.1.2.10.2 date 2015.01.07.10.10.04; author msaitoh; state Exp; branches; next ; commitid d5X8VW3e9U6mR45y; 1.1.1.2.12.1 date 2014.12.19.20.37.36; author msaitoh; state dead; branches; next 1.1.1.2.12.2; commitid cHl8i0Vq4fzxx55y; 1.1.1.2.12.2 date 2015.01.07.12.13.14; author msaitoh; state Exp; branches; next ; commitid cHl8i0Vq4fzxx55y; desc @@ 1.1 log @Initial revision @ text @
Last update: 19-Apr-2012 17:30 UTC
At the heart of the NTP specification and reference implementation is the clock discipline algorithm, which is best described as an adaptive parameter, hybrid phase/frequency-lock feedback loop. It is an intricately crafted algorithm that automatically adapts for optimum performance while minimizing network overhead. Operation is in two modes, phase-lock loop (PLL), which is used at poll intervals below the Allan intercept, by default 2048 s, and frequency-lock loop (FLL), which is used above that.
Figure 1. Clock Discipline Algorithm
A block diagram of the clock discipline is shown in Figure 1. The timestamp of a reference clock or remote server is compared with the timestamp of the system clock, represented as a variable frequency oscillator (VFO), to produce a raw offset sample Vd. Offset samples are processed by the clock filter to produce a filtered update Vs. The loop filter implements a type-2 proportional-integrator controller (PIC). The PIC can minimize errors in both time and frequency using predictors x and y, respectively. The clock adjust process samples these predictors once each second for the daemon discipline or once each tick interrupt for the kernel discipline to produce the system clock update Vc.
In PLL mode the frequency predictor is an integral of the offset over past updates, while the phase predictor is the offset amortized over time in order to avoid setting the clock backward. In FLL mode the phase predictor is not used, while the frequency predictor is similar to the NIST lockclock algorithm. In this algorithm, the frequency predictor is computed as a fraction of the current offset divided by the time since the last update in order to minimize the offset at the next update.
The discipline response in PLL mode is determined by the time constant, which results in a "stiffness" depending on the jitter of the available sources and the wander of the system clock oscillator. The scaled time constant is also used as the poll interval described on the Poll Program page. However, in NTP symmetric mode, each peer manages its own poll interval and the two might not be the same. In such cases either peer uses the minimum of its own poll interval and that of the other peer, which is included in the NTP packet header.
It is necessary to verify that the clock discipline algorithm is stable and satisfies the Nyquist criterion, which requires that the sampling rate be at least twice the bandwidth. In this case the bandwidth can be approximated by the reciprocal of the time constant. In the NTP specification and reference implementation, time constants and poll intervals are expressed as exponents of 2. By construction, the time constant exponent is five times the poll interval exponent. Thus, the default poll exponent of 6 corresponds to a poll interval of 64 s and a time constant of 2048 s. A change in the poll interval changes the time constant by a corresponding amount.. The Nyquist criterion requires the sample interval to be not more than half the time constant or 1024 s. The clock filter guarantees at least one sample in eight poll intervals, so the sample interval is not more than 512 s. This would be described as oversampling by a factor of two. Finally, the PLL parameters have been chosen for a damping factor of 2, which results in a much faster risetime than with critical damping, but results in modest overshoot of 6 percent.
It is important to understand how the dynamics of the PLL are affected by the time constant and poll interval. At the default poll interval of 64 s and a step offset change of 100 ms, the time response crosses zero in about 50 min and overshoots about 6 ms, as per design. Ordinarily, a step correction would causes a temporary frequency surge of about 5 PPM, which along with the overshoot slowly dissipates over a few hours.
However, the clock state machine used with the discipline algorithm avoids this transient at startup. It does this using a previously saved frequency file, if present, or by measuring the oscillator frequency, if not. It then quickly amortizes the residual offset at startup without affecting the oscillator frequency. In this way the offset error is less than 0.5 ms within 5 min, if the file is present, and within 10 min if not. See the Clock State Machine page for further details.
Since the PLL is linear, the response with different offset step amplitudes and poll intervals has the same characteristic shape, but scaled differently in amplitude and time. The response scales exactly with step amplitude, so that the response to a 10-ms step has the same shape as at 64 s, but with amplitude compressed by one-tenth. The response scales exactly with poll interval, so that response at a poll interval of 8 s has the same shape as at 64 s, but with time compressed by one-eighth.
The optimum time constant, and thus the poll interval, depends on the network time jitter and the oscillator frequency wander. Errors due to jitter decrease as the time constant increases, while errors due to wander decrease as the time constant decreases. For typical Internet paths, the two error characteristics intersect at a point called the Allan intercept, which represents the optimum time constant. With a compromise Allan intercept of 2048 s, the optimum poll interval is about 64 s, which corresponds to a compromise poll exponent of 6. For fast LANs with modern computers, the Allan intercept is somewhat lower at around 512 s, so a compromise poll exponent of 4 (16 s) is appropriate. An intricate, heuristic algorithm is used to manage the actual poll interval within a specified range. Details are on the Poll Program page.
In the NTPv4 specification and reference implementation a state machine is used to manage the system clock under exceptional conditions, as when the daemon is first started or when encountering severe network congestion. In extreme cases not likely to be encountered in normal operation, the system time can be stepped forward or backward more than 128 ms. Further details are on the Clock State Machine page.
If left running continuously, an NTP client on a fast LAN in a home or office environment can maintain synchronization nominally within one millisecond. When the ambient temperature variations are less than a degree Celsius, the clock oscillator frequency is disciplined to within one part per million (PPM), even when the clock oscillator native frequency offset is 100 PPM or more.
For laptops and portable devices when the power is turned off, the battery backup clock offset error can increase as much as one second per day. When power is restored after several hours or days, the clock offset and oscillator frequency errors must be resolved by the clock discipline algorithm, but this can take several hours without specific provisions.
The provisions described in this section insure that, in all but pathological situations, the startup transient is suppressed to within nominal levels in no more than five minutes after a warm start or ten minutes after a cold start. Following is a summary of these provisions. A detailed discussion of these provisions is on the Clock State Machine page.
The reference implementation measures the clock oscillator frequency and updates a frequency file at intervals of one hour or more, depending on the measured frequency wander. This design is intended to minimize write cycles in NVRAM that might be used in a laptop or portable device. In a warm start, the frequency is initialized from this file, which avoids a possibly lengthy convergence time. In a cold start when no frequency file is available, the reference implementation first measures the oscillator frequency over a five-min interval. This generally results in a residual frequency error less than 1 PPM. The measurement interval can be changed using the stepout option of the tinker command.
In order to reduce the clock offset error at restart, the reference implementation mext disables oscillator frequency discipline and enables clock offset discipline with a small time constant. This is designed to quickly reduce the clock offset error without causing a frequency surge. This configuration is continued for an interval of five-min, after which the clock offset error is usually no more than a millisecond. The measurement interval can be changed using the stepout option of the tinker command.
Another concern at restart is the time necessary for the select and cluster algorithms to refine and validate the initial clock offset estimate. Normally, this takes several updates before setting the system clock. As the default minimum poll interval in most configurations is about one minute, it can take several minutes before setting the system clock. The iburst option of the server command changes the behavior at restart and is recommended for client/server configurations. When this option is enabled, the client sends a volley of six requests at intervals of two seconds. This usually insures a reliable estimate is available in about ten seconds before setting the clock. Once this initial volley is complete, the procedures described above are executed.
As a result of the above considerations, when a backup source, such as the local clock driver, ACTS modem driver or orphan mode is included in the system configuration, it may happen that one or more of them are selectable before one or more of the regular sources are selectable. When backup sources are included in the configuration, the reference implementation waits an interval of several minutes without regular sources before switching to backup sources. This is generally enough to avoid startup transients due to premature switching to backup sources. The interval can be changed using the orphanwait option of the tos command.
At the heart of the NTP specification and reference implementation is the clock discipline algorithm, which is best described as an adaptive parameter, hybrid phase/frequency-lock feedback loop. It is an intricately crafted algorithm that automatically adapts for optimum performance while minimizing network overhead. Operation is in two modes, phase-lock loop (PLL), which is used at poll intervals below the Allan intercept, by default 2048 s, and frequency-lock loop (FLL), which is used above that.
d28 3 a30 3A block diagram of the clock discipline is shown in Figure 1. The timestamp of a reference clock or remote server is compared with the timestamp of the system clock, represented as a variable frequency oscillator (VFO), to produce a raw offset sample Vd. Offset samples are processed by the clock filter to produce a filtered update Vs. The loop filter implements a type-2 proportional-integrator controller (PIC). The PIC can minimize errors in both time and frequency using predictors x and y, respectively. The clock adjust process samples these predictors once each second for the daemon discipline or once each tick interrupt for the kernel discipline to produce the system clock update Vc.
In PLL mode the frequency predictor is an integral of the offset over past updates, while the phase predictor is the offset amortized over time in order to avoid setting the clock backward. In FLL mode the phase predictor is not used, while the frequency predictor is similar to the NIST lockclock algorithm. In this algorithm, the frequency predictor is computed as a fraction of the current offset divided by the time since the last update in order to minimize the offset at the next update.
The discipline response in PLL mode is determined by the time constant, which results in a "stiffness" depending on the jitter of the available sources and the wander of the system clock oscillator. The scaled time constant is also used as the poll interval described on the Poll Program page. However, in NTP symmetric mode, each peer manages its own poll interval and the two might not be the same. In such cases either peer uses the minimum of its own poll interval and that of the other peer, which is included in the NTP packet header.
d32 6 a37 6It is necessary to verify that the clock discipline algorithm is stable and satisfies the Nyquist criterion, which requires that the sampling rate be at least twice the bandwidth. In this case the bandwidth can be approximated by the reciprocal of the time constant. In the NTP specification and reference implementation, time constants and poll intervals are expressed as exponents of 2. By construction, the time constant exponent is five times the poll interval exponent. Thus, the default poll exponent of 6 corresponds to a poll interval of 64 s and a time constant of 2048 s. A change in the poll interval changes the time constant by a corresponding amount.. The Nyquist criterion requires the sample interval to be not more than half the time constant or 1024 s. The clock filter guarantees at least one sample in eight poll intervals, so the sample interval is not more than 512 s. This would be described as oversampling by a factor of two. Finally, the PLL parameters have been chosen for a damping factor of 2, which results in a much faster risetime than with critical damping, but results in modest overshoot of 6 percent.
It is important to understand how the dynamics of the PLL are affected by the time constant and poll interval. At the default poll interval of 64 s and a step offset change of 100 ms, the time response crosses zero in about 50 min and overshoots about 6 ms, as per design. Ordinarily, a step correction would causes a temporary frequency surge of about 5 PPM, which along with the overshoot slowly dissipates over a few hours.
However, the clock state machine used with the discipline algorithm avoids this transient at startup. It does this using a previously saved frequency file, if present, or by measuring the oscillator frequency, if not. It then quickly amortizes the residual offset at startup without affecting the oscillator frequency. In this way the offset error is less than 0.5 ms within 5 min, if the file is present, and within 10 min if not. See the Clock State Machine page for further details.
Since the PLL is linear, the response with different offset step amplitudes and poll intervals has the same characteristic shape, but scaled differently in amplitude and time. The response scales exactly with step amplitude, so that the response to a 10-ms step has the same shape as at 64 s, but with amplitude compressed by one-tenth. The response scales exactly with poll interval, so that response at a poll interval of 8 s has the same shape as at 64 s, but with time compressed by one-eighth.
The optimum time constant, and thus the poll interval, depends on the network time jitter and the oscillator frequency wander. Errors due to jitter decrease as the time constant increases, while errors due to wander decrease as the time constant decreases. For typical Internet paths, the two error characteristics intersect at a point called the Allan intercept, which represents the optimum time constant. With a compromise Allan intercept of 2048 s, the optimum poll interval is about 64 s, which corresponds to a compromise poll exponent of 6. For fast LANs with modern computers, the Allan intercept is somewhat lower at around 512 s, so a compromise poll exponent of 4 (16 s) is appropriate. An intricate, heuristic algorithm is used to manage the actual poll interval within a specified range. Details are on the Poll Program page.
In the NTPv4 specification and reference implementation a state machine is used to manage the system clock under exceptional conditions, as when the daemon is first started or when encountering severe network congestion. In extreme cases not likely to be encountered in normal operation, the system time can be stepped forward or backward more than 128 ms. Further details are on the Clock State Machine page.
d39 7 a45 7If left running continuously, an NTP client on a fast LAN in a home or office environment can maintain synchronization nominally within one millisecond. When the ambient temperature variations are less than a degree Celsius, the clock oscillator frequency is disciplined to within one part per million (PPM), even when the clock oscillator native frequency offset is 100 PPM or more.
For laptops and portable devices when the power is turned off, the battery backup clock offset error can increase as much as one second per day. When power is restored after several hours or days, the clock offset and oscillator frequency errors must be resolved by the clock discipline algorithm, but this can take several hours without specific provisions.
The provisions described in this section insure that, in all but pathological situations, the startup transient is suppressed to within nominal levels in no more than five minutes after a warm start or ten minutes after a cold start. Following is a summary of these provisions. A detailed discussion of these provisions is on the Clock State Machine page.
The reference implementation measures the clock oscillator frequency and updates a frequency file at intervals of one hour or more, depending on the measured frequency wander. This design is intended to minimize write cycles in NVRAM that might be used in a laptop or portable device. In a warm start, the frequency is initialized from this file, which avoids a possibly lengthy convergence time. In a cold start when no frequency file is available, the reference implementation first measures the oscillator frequency over a five-min interval. This generally results in a residual frequency error less than 1 PPM. The measurement interval can be changed using the stepout option of the tinker command.
In order to reduce the clock offset error at restart, the reference implementation next disables oscillator frequency discipline and enables clock offset discipline with a small time constant. This is designed to quickly reduce the clock offset error without causing a frequency surge. This configuration is continued for an interval of five-min, after which the clock offset error is usually no more than a millisecond. The measurement interval can be changed using the stepout option of the tinker command.
Another concern at restart is the time necessary for the select and cluster algorithms to refine and validate the initial clock offset estimate. Normally, this takes several updates before setting the system clock. As the default minimum poll interval in most configurations is about one minute, it can take several minutes before setting the system clock. The iburst option of the server command changes the behavior at restart and is recommended for client/server configurations. When this option is enabled, the client sends a volley of six requests at intervals of two seconds. This usually insures a reliable estimate is available in about ten seconds before setting the clock. Once this initial volley is complete, the procedures described above are executed.
As a result of the above considerations, when a backup source, such as the local clock driver, ACTS modem driver or orphan mode is included in the system configuration, it may happen that one or more of them are selectable before one or more of the regular sources are selectable. When backup sources are included in the configuration, the reference implementation waits an interval of several minutes without regular sources before switching to backup sources. This is generally enough to avoid startup transients due to premature switching to backup sources. The interval can be changed using the orphanwait option of the tos command.
@ 1.1.1.2.12.1 log @file discipline.html was added on branch netbsd-5-1 on 2015-01-07 12:13:14 +0000 @ text @d1 49 @ 1.1.1.2.12.2 log @Pullup the following revision (requested by he in ticket #1938): dist/ntp/COPYRIGHT delete dist/ntp/ChangeLog delete dist/ntp/CommitLog delete dist/ntp/CommitLog-4.1.0 delete dist/ntp/INSTALL delete dist/ntp/Makefile.am delete dist/ntp/Makefile.in delete dist/ntp/NEWS delete dist/ntp/NOTES.y2kfixes delete dist/ntp/README delete dist/ntp/README.bk delete dist/ntp/README.hackers delete dist/ntp/README.patches delete dist/ntp/README.refclocks delete dist/ntp/README.versions delete dist/ntp/TODO delete dist/ntp/WHERE-TO-START delete dist/ntp/aclocal.m4 delete dist/ntp/bincheck.mf delete dist/ntp/bootstrap delete dist/ntp/build delete dist/ntp/compile delete dist/ntp/config.guess delete dist/ntp/config.h.in delete dist/ntp/config.sub delete dist/ntp/configure delete dist/ntp/configure.ac delete dist/ntp/depcomp delete dist/ntp/dot.emacs delete dist/ntp/excludes delete dist/ntp/flock-build delete dist/ntp/install-sh delete dist/ntp/ltmain.sh delete dist/ntp/missing delete dist/ntp/ntp-html2mdoc.pl delete dist/ntp/ntp2netbsd delete dist/ntp/packageinfo.sh delete dist/ntp/readme.y2kfixes delete dist/ntp/results.y2kfixes delete dist/ntp/version delete dist/ntp/version.m4 delete dist/ntp/ElectricFence/CHANGES delete dist/ntp/ElectricFence/COPYING delete dist/ntp/ElectricFence/Makefile.am delete dist/ntp/ElectricFence/Makefile.in delete dist/ntp/ElectricFence/README delete dist/ntp/ElectricFence/efence.c delete dist/ntp/ElectricFence/efence.h delete dist/ntp/ElectricFence/eftest.c delete dist/ntp/ElectricFence/libefence.3 delete dist/ntp/ElectricFence/page.c delete dist/ntp/ElectricFence/print.c delete dist/ntp/ElectricFence/tstheap.c delete dist/ntp/adjtimed/Makefile.am delete dist/ntp/adjtimed/Makefile.in delete dist/ntp/adjtimed/README delete dist/ntp/adjtimed/adjtimed.c delete dist/ntp/arlib/COPYING delete dist/ntp/arlib/INSTALL delete dist/ntp/arlib/Makefile.am delete dist/ntp/arlib/Makefile.in delete dist/ntp/arlib/README delete dist/ntp/arlib/UNSHAR.HDR delete dist/ntp/arlib/aclocal.m4 delete dist/ntp/arlib/arlib.3 delete dist/ntp/arlib/arlib.c delete dist/ntp/arlib/arlib.h delete dist/ntp/arlib/arplib.h delete dist/ntp/arlib/configure delete dist/ntp/arlib/configure.in delete dist/ntp/arlib/depcomp delete dist/ntp/arlib/install-sh delete dist/ntp/arlib/missing delete dist/ntp/arlib/sample.c delete dist/ntp/clockstuff/Makefile.am delete dist/ntp/clockstuff/Makefile.in delete dist/ntp/clockstuff/README delete dist/ntp/clockstuff/chutest.c delete dist/ntp/clockstuff/clktest.c delete dist/ntp/clockstuff/propdelay.c delete dist/ntp/conf/README delete dist/ntp/conf/baldwin.conf delete dist/ntp/conf/beauregard.conf delete dist/ntp/conf/grundoon.conf delete dist/ntp/conf/malarky.conf delete dist/ntp/conf/pogo.conf delete dist/ntp/conf/rackety.conf delete dist/ntp/html/accopt.html delete dist/ntp/html/assoc.html delete dist/ntp/html/audio.html delete dist/ntp/html/authopt.html delete dist/ntp/html/clockopt.html delete dist/ntp/html/confopt.html delete dist/ntp/html/copyright.html delete dist/ntp/html/debug.html delete dist/ntp/html/extern.html delete dist/ntp/html/gadget.html delete dist/ntp/html/groups.html delete dist/ntp/html/howto.html delete dist/ntp/html/index.html delete dist/ntp/html/kern.html delete dist/ntp/html/keygen.html delete dist/ntp/html/ldisc.html delete dist/ntp/html/manyopt.html delete dist/ntp/html/measure.html delete dist/ntp/html/miscopt.html delete dist/ntp/html/monopt.html delete dist/ntp/html/msyslog.html delete dist/ntp/html/mx4200data.html delete dist/ntp/html/notes.html delete dist/ntp/html/ntp_conf.html delete dist/ntp/html/ntpd.html delete dist/ntp/html/ntpdate.html delete dist/ntp/html/ntpdc.html delete dist/ntp/html/ntpdsim.html delete dist/ntp/html/ntpdsim_new.html delete dist/ntp/html/ntpq.html delete dist/ntp/html/ntptime.html delete dist/ntp/html/ntptrace.html delete dist/ntp/html/parsedata.html delete dist/ntp/html/parsenew.html delete dist/ntp/html/pps.html delete dist/ntp/html/prefer.html delete dist/ntp/html/rdebug.html delete dist/ntp/html/refclock.html delete dist/ntp/html/release.html delete dist/ntp/html/sntp.html delete dist/ntp/html/tickadj.html delete dist/ntp/html/build/build.html delete dist/ntp/html/build/config.html delete dist/ntp/html/build/hints.html delete dist/ntp/html/build/patches.html delete dist/ntp/html/build/porting.html delete dist/ntp/html/build/quick.html delete dist/ntp/html/build/hints/a-ux delete dist/ntp/html/build/hints/aix delete dist/ntp/html/build/hints/bsdi delete dist/ntp/html/build/hints/changes delete dist/ntp/html/build/hints/decosf1 delete dist/ntp/html/build/hints/decosf2 delete dist/ntp/html/build/hints/freebsd delete dist/ntp/html/build/hints/hpux delete dist/ntp/html/build/hints/linux delete dist/ntp/html/build/hints/mpeix delete dist/ntp/html/build/hints/netbsd delete dist/ntp/html/build/hints/notes-xntp-v3 delete dist/ntp/html/build/hints/parse delete dist/ntp/html/build/hints/refclocks delete dist/ntp/html/build/hints/rs6000 delete dist/ntp/html/build/hints/sco.html delete dist/ntp/html/build/hints/sgi delete dist/ntp/html/build/hints/solaris-dosynctodr.html delete dist/ntp/html/build/hints/solaris.html delete dist/ntp/html/build/hints/solaris.xtra.4023118 delete dist/ntp/html/build/hints/solaris.xtra.4095849 delete dist/ntp/html/build/hints/solaris.xtra.S99ntpd delete dist/ntp/html/build/hints/solaris.xtra.patchfreq delete dist/ntp/html/build/hints/sun4 delete dist/ntp/html/build/hints/svr4-dell delete dist/ntp/html/build/hints/svr4_package delete dist/ntp/html/build/hints/todo delete dist/ntp/html/build/hints/vxworks.html delete dist/ntp/html/build/hints/winnt.html delete dist/ntp/html/build/scripts/footer.txt delete dist/ntp/html/build/scripts/links10.txt delete dist/ntp/html/build/scripts/links11.txt delete dist/ntp/html/build/scripts/links12.txt delete dist/ntp/html/build/scripts/links7.txt delete dist/ntp/html/build/scripts/links8.txt delete dist/ntp/html/build/scripts/links9.txt delete dist/ntp/html/build/scripts/style.css delete dist/ntp/html/drivers/driver1.html delete dist/ntp/html/drivers/driver10.html delete dist/ntp/html/drivers/driver11.html delete dist/ntp/html/drivers/driver12.html delete dist/ntp/html/drivers/driver16.html delete dist/ntp/html/drivers/driver18.html delete dist/ntp/html/drivers/driver19.html delete dist/ntp/html/drivers/driver2.html delete dist/ntp/html/drivers/driver20.html delete dist/ntp/html/drivers/driver22.html delete dist/ntp/html/drivers/driver26.html delete dist/ntp/html/drivers/driver27.html delete dist/ntp/html/drivers/driver28.html delete dist/ntp/html/drivers/driver29.html delete dist/ntp/html/drivers/driver3.html delete dist/ntp/html/drivers/driver30.html delete dist/ntp/html/drivers/driver31.html delete dist/ntp/html/drivers/driver32.html delete dist/ntp/html/drivers/driver33.html delete dist/ntp/html/drivers/driver34.html delete dist/ntp/html/drivers/driver35.html delete dist/ntp/html/drivers/driver36.html delete dist/ntp/html/drivers/driver37.html delete dist/ntp/html/drivers/driver38.html delete dist/ntp/html/drivers/driver39.html delete dist/ntp/html/drivers/driver4.html delete dist/ntp/html/drivers/driver40.html delete dist/ntp/html/drivers/driver42.html delete dist/ntp/html/drivers/driver43.html delete dist/ntp/html/drivers/driver44.html delete dist/ntp/html/drivers/driver5.html delete dist/ntp/html/drivers/driver6.html delete dist/ntp/html/drivers/driver7.html delete dist/ntp/html/drivers/driver8.html delete dist/ntp/html/drivers/driver9.html delete dist/ntp/html/drivers/oncore-shmem.html delete dist/ntp/html/drivers/tf582_4.html delete dist/ntp/html/drivers/icons/home.gif delete dist/ntp/html/drivers/icons/mail2.gif delete dist/ntp/html/drivers/scripts/footer.txt delete dist/ntp/html/drivers/scripts/style.css delete dist/ntp/html/icons/home.gif delete dist/ntp/html/icons/mail2.gif delete dist/ntp/html/scripts/footer.txt delete dist/ntp/html/scripts/links10.txt delete dist/ntp/html/scripts/links11.txt delete dist/ntp/html/scripts/links12.txt delete dist/ntp/html/scripts/links7.txt delete dist/ntp/html/scripts/links8.txt delete dist/ntp/html/scripts/links9.txt delete dist/ntp/html/scripts/style.css delete dist/ntp/include/Makefile.am delete dist/ntp/include/Makefile.in delete dist/ntp/include/README delete dist/ntp/include/adjtime.h delete dist/ntp/include/ascii.h delete dist/ntp/include/audio.h delete dist/ntp/include/autogen-version.def delete dist/ntp/include/binio.h delete dist/ntp/include/copyright.def delete dist/ntp/include/debug-opt.def delete dist/ntp/include/global.h delete dist/ntp/include/gps.h delete dist/ntp/include/homerc.def delete dist/ntp/include/hopf6039.h delete dist/ntp/include/icom.h delete dist/ntp/include/ieee754io.h delete dist/ntp/include/iosignal.h delete dist/ntp/include/l_stdlib.h delete dist/ntp/include/mbg_gps166.h delete dist/ntp/include/mx4200.h delete dist/ntp/include/ntif.h delete dist/ntp/include/ntp.h delete dist/ntp/include/ntp_calendar.h delete dist/ntp/include/ntp_cmdargs.h delete dist/ntp/include/ntp_config.h delete dist/ntp/include/ntp_control.h delete dist/ntp/include/ntp_crypto.h delete dist/ntp/include/ntp_datum.h delete dist/ntp/include/ntp_debug.h delete dist/ntp/include/ntp_filegen.h delete dist/ntp/include/ntp_fp.h delete dist/ntp/include/ntp_if.h delete dist/ntp/include/ntp_io.h delete dist/ntp/include/ntp_machine.h delete dist/ntp/include/ntp_malloc.h delete dist/ntp/include/ntp_md5.h delete dist/ntp/include/ntp_proto.h delete dist/ntp/include/ntp_random.h delete dist/ntp/include/ntp_refclock.h delete dist/ntp/include/ntp_request.h delete dist/ntp/include/ntp_rfc2553.h delete dist/ntp/include/ntp_select.h delete dist/ntp/include/ntp_sprintf.h delete dist/ntp/include/ntp_stdlib.h delete dist/ntp/include/ntp_string.h delete dist/ntp/include/ntp_syscall.h delete dist/ntp/include/ntp_syslog.h delete dist/ntp/include/ntp_tty.h delete dist/ntp/include/ntp_types.h delete dist/ntp/include/ntp_unixtime.h delete dist/ntp/include/ntpd.h delete dist/ntp/include/ntpsim.h delete dist/ntp/include/parse.h delete dist/ntp/include/parse_conf.h delete dist/ntp/include/recvbuff.h delete dist/ntp/include/rsa_md5.h delete dist/ntp/include/timepps-SCO.h delete dist/ntp/include/timepps-Solaris.h delete dist/ntp/include/timepps-SunOS.h delete dist/ntp/include/trimble.h delete dist/ntp/include/version.def delete dist/ntp/include/isc/Makefile.am delete dist/ntp/include/isc/Makefile.in delete dist/ntp/include/isc/app.h delete dist/ntp/include/isc/assertions.h delete dist/ntp/include/isc/boolean.h delete dist/ntp/include/isc/buffer.h delete dist/ntp/include/isc/error.h delete dist/ntp/include/isc/formatcheck.h delete dist/ntp/include/isc/int.h delete dist/ntp/include/isc/interfaceiter.h delete dist/ntp/include/isc/ipv6.h delete dist/ntp/include/isc/lang.h delete dist/ntp/include/isc/lib.h delete dist/ntp/include/isc/list.h delete dist/ntp/include/isc/magic.h delete dist/ntp/include/isc/mem.h delete dist/ntp/include/isc/msgcat.h delete dist/ntp/include/isc/msgs.h delete dist/ntp/include/isc/mutex.h delete dist/ntp/include/isc/net.h delete dist/ntp/include/isc/netaddr.h delete dist/ntp/include/isc/netscope.h delete dist/ntp/include/isc/offset.h delete dist/ntp/include/isc/once.h delete dist/ntp/include/isc/platform.h delete dist/ntp/include/isc/print.h delete dist/ntp/include/isc/region.h delete dist/ntp/include/isc/result.h delete dist/ntp/include/isc/sockaddr.h delete dist/ntp/include/isc/strerror.h delete dist/ntp/include/isc/string.h delete dist/ntp/include/isc/types.h delete dist/ntp/include/isc/util.h delete dist/ntp/kernel/Makefile.am delete dist/ntp/kernel/Makefile.in delete dist/ntp/kernel/README delete dist/ntp/kernel/chuinit.c delete dist/ntp/kernel/clkinit.c delete dist/ntp/kernel/tty_chu.c delete dist/ntp/kernel/tty_chu_STREAMS.c delete dist/ntp/kernel/tty_clk.c delete dist/ntp/kernel/tty_clk_STREAMS.c delete dist/ntp/kernel/sys/Makefile.am delete dist/ntp/kernel/sys/Makefile.in delete dist/ntp/kernel/sys/README delete dist/ntp/kernel/sys/bsd_audioirig.h delete dist/ntp/kernel/sys/chudefs.h delete dist/ntp/kernel/sys/clkdefs.h delete dist/ntp/kernel/sys/i8253.h delete dist/ntp/kernel/sys/parsestreams.h delete dist/ntp/kernel/sys/pcl720.h delete dist/ntp/kernel/sys/ppsclock.h delete dist/ntp/kernel/sys/timex.h delete dist/ntp/kernel/sys/tpro.h delete dist/ntp/kernel/sys/tt560_api.h delete dist/ntp/libisc/assertions.c delete dist/ntp/libisc/error.c delete dist/ntp/libisc/ifiter_getifaddrs.c delete dist/ntp/libisc/ifiter_ioctl.c delete dist/ntp/libisc/ifiter_sysctl.c delete dist/ntp/libisc/inet_aton.c delete dist/ntp/libisc/inet_ntop.c delete dist/ntp/libisc/inet_pton.c delete dist/ntp/libisc/interfaceiter.c delete dist/ntp/libisc/isc_strerror.c delete dist/ntp/libisc/lib.c delete dist/ntp/libisc/mem.c delete dist/ntp/libisc/msgcat.c delete dist/ntp/libisc/net.c delete dist/ntp/libisc/netaddr.c delete dist/ntp/libisc/netscope.c delete dist/ntp/libisc/sockaddr.c delete dist/ntp/libisc/strerror.c delete dist/ntp/libntp/Makefile.am delete dist/ntp/libntp/Makefile.in delete dist/ntp/libntp/README delete dist/ntp/libntp/a_md5encrypt.c delete dist/ntp/libntp/adjtime.c delete dist/ntp/libntp/adjtimex.c delete dist/ntp/libntp/atoint.c delete dist/ntp/libntp/atolfp.c delete dist/ntp/libntp/atouint.c delete dist/ntp/libntp/audio.c delete dist/ntp/libntp/authkeys.c delete dist/ntp/libntp/authreadkeys.c delete dist/ntp/libntp/authusekey.c delete dist/ntp/libntp/buftvtots.c delete dist/ntp/libntp/caljulian.c delete dist/ntp/libntp/caltontp.c delete dist/ntp/libntp/calyearstart.c delete dist/ntp/libntp/clocktime.c delete dist/ntp/libntp/clocktypes.c delete dist/ntp/libntp/decodenetnum.c delete dist/ntp/libntp/dofptoa.c delete dist/ntp/libntp/dolfptoa.c delete dist/ntp/libntp/emalloc.c delete dist/ntp/libntp/findconfig.c delete dist/ntp/libntp/fptoa.c delete dist/ntp/libntp/fptoms.c delete dist/ntp/libntp/getopt.c delete dist/ntp/libntp/hextoint.c delete dist/ntp/libntp/hextolfp.c delete dist/ntp/libntp/humandate.c delete dist/ntp/libntp/icom.c delete dist/ntp/libntp/inttoa.c delete dist/ntp/libntp/iosignal.c delete dist/ntp/libntp/lib_strbuf.c delete dist/ntp/libntp/lib_strbuf.h delete dist/ntp/libntp/machines.c delete dist/ntp/libntp/md5c.c delete dist/ntp/libntp/memmove.c delete dist/ntp/libntp/mfptoa.c delete dist/ntp/libntp/mfptoms.c delete dist/ntp/libntp/mktime.c delete dist/ntp/libntp/modetoa.c delete dist/ntp/libntp/mstolfp.c delete dist/ntp/libntp/msutotsf.c delete dist/ntp/libntp/msyslog.c delete dist/ntp/libntp/netof.c delete dist/ntp/libntp/ntp_random.c delete dist/ntp/libntp/ntp_rfc2553.c delete dist/ntp/libntp/numtoa.c delete dist/ntp/libntp/numtohost.c delete dist/ntp/libntp/octtoint.c delete dist/ntp/libntp/prettydate.c delete dist/ntp/libntp/recvbuff.c delete dist/ntp/libntp/refnumtoa.c delete dist/ntp/libntp/snprintf.c delete dist/ntp/libntp/socktoa.c delete dist/ntp/libntp/socktohost.c delete dist/ntp/libntp/statestr.c delete dist/ntp/libntp/strdup.c delete dist/ntp/libntp/strerror.c delete dist/ntp/libntp/strstr.c delete dist/ntp/libntp/syssignal.c delete dist/ntp/libntp/systime.c delete dist/ntp/libntp/systime_s.c delete dist/ntp/libntp/tsftomsu.c delete dist/ntp/libntp/tstotv.c delete dist/ntp/libntp/tvtoa.c delete dist/ntp/libntp/tvtots.c delete dist/ntp/libntp/uglydate.c delete dist/ntp/libntp/uinttoa.c delete dist/ntp/libntp/utvtoa.c delete dist/ntp/libntp/ymd2yd.c delete dist/ntp/libopts/COPYING.lgpl delete dist/ntp/libopts/COPYING.mbsd delete dist/ntp/libopts/MakeDefs.inc delete dist/ntp/libopts/Makefile.am delete dist/ntp/libopts/Makefile.in delete dist/ntp/libopts/README delete dist/ntp/libopts/autoopts.c delete dist/ntp/libopts/autoopts.h delete dist/ntp/libopts/boolean.c delete dist/ntp/libopts/configfile.c delete dist/ntp/libopts/cook.c delete dist/ntp/libopts/enumeration.c delete dist/ntp/libopts/environment.c delete dist/ntp/libopts/genshell.c delete dist/ntp/libopts/genshell.h delete dist/ntp/libopts/libopts.c delete dist/ntp/libopts/load.c delete dist/ntp/libopts/makeshell.c delete dist/ntp/libopts/nested.c delete dist/ntp/libopts/numeric.c delete dist/ntp/libopts/pgusage.c delete dist/ntp/libopts/proto.h delete dist/ntp/libopts/putshell.c delete dist/ntp/libopts/restore.c delete dist/ntp/libopts/save.c delete dist/ntp/libopts/sort.c delete dist/ntp/libopts/stack.c delete dist/ntp/libopts/streqvcmp.c delete dist/ntp/libopts/text_mmap.c delete dist/ntp/libopts/tokenize.c delete dist/ntp/libopts/usage.c delete dist/ntp/libopts/version.c delete dist/ntp/libopts/autoopts/options.h delete dist/ntp/libopts/autoopts/usage-txt.h delete dist/ntp/libopts/compat/compat.h delete dist/ntp/libopts/compat/pathfind.c delete dist/ntp/libopts/compat/snprintf.c delete dist/ntp/libopts/compat/strchr.c delete dist/ntp/libopts/compat/strdup.c delete dist/ntp/libopts/compat/windows-config.h delete dist/ntp/libopts/m4/libopts.m4 delete dist/ntp/libopts/m4/liboptschk.m4 delete dist/ntp/libparse/Makefile.am delete dist/ntp/libparse/Makefile.in delete dist/ntp/libparse/README delete dist/ntp/libparse/binio.c delete dist/ntp/libparse/clk_computime.c delete dist/ntp/libparse/clk_dcf7000.c delete dist/ntp/libparse/clk_hopf6021.c delete dist/ntp/libparse/clk_meinberg.c delete dist/ntp/libparse/clk_rawdcf.c delete dist/ntp/libparse/clk_rcc8000.c delete dist/ntp/libparse/clk_schmid.c delete dist/ntp/libparse/clk_trimtaip.c delete dist/ntp/libparse/clk_trimtsip.c delete dist/ntp/libparse/clk_varitext.c delete dist/ntp/libparse/clk_wharton.c delete dist/ntp/libparse/data_mbg.c delete dist/ntp/libparse/gpstolfp.c delete dist/ntp/libparse/ieee754io.c delete dist/ntp/libparse/info_trimble.c delete dist/ntp/libparse/mfp_mul.c delete dist/ntp/libparse/mkinfo_rcmd.sed delete dist/ntp/libparse/mkinfo_scmd.sed delete dist/ntp/libparse/parse.c delete dist/ntp/libparse/parse_conf.c delete dist/ntp/libparse/parsesolaris.c delete dist/ntp/libparse/parsestreams.c delete dist/ntp/libparse/trim_info.c delete dist/ntp/m4/define_dir.m4 delete dist/ntp/m4/hs_ulong_const.m4 delete dist/ntp/m4/os_cflags.m4 delete dist/ntp/ntpd/Makefile.am delete dist/ntp/ntpd/Makefile.in delete dist/ntp/ntpd/check_y2k.c delete dist/ntp/ntpd/cmd_args.c delete dist/ntp/ntpd/jupiter.h delete dist/ntp/ntpd/ntp_config.c delete dist/ntp/ntpd/ntp_control.c delete dist/ntp/ntpd/ntp_crypto.c delete dist/ntp/ntpd/ntp_filegen.c delete dist/ntp/ntpd/ntp_intres.c delete dist/ntp/ntpd/ntp_io.c delete dist/ntp/ntpd/ntp_loopfilter.c delete dist/ntp/ntpd/ntp_monitor.c delete dist/ntp/ntpd/ntp_peer.c delete dist/ntp/ntpd/ntp_proto.c delete dist/ntp/ntpd/ntp_refclock.c delete dist/ntp/ntpd/ntp_request.c delete dist/ntp/ntpd/ntp_restrict.c delete dist/ntp/ntpd/ntp_timer.c delete dist/ntp/ntpd/ntp_util.c delete dist/ntp/ntpd/ntpd-opts.c delete dist/ntp/ntpd/ntpd-opts.def delete dist/ntp/ntpd/ntpd-opts.h delete dist/ntp/ntpd/ntpd-opts.menu delete dist/ntp/ntpd/ntpd-opts.texi delete dist/ntp/ntpd/ntpd.1 delete dist/ntp/ntpd/ntpd.c delete dist/ntp/ntpd/ntpdbase-opts.def delete dist/ntp/ntpd/ntpdsim-opts.c delete dist/ntp/ntpd/ntpdsim-opts.def delete dist/ntp/ntpd/ntpdsim-opts.h delete dist/ntp/ntpd/ntpdsim-opts.menu delete dist/ntp/ntpd/ntpdsim-opts.texi delete dist/ntp/ntpd/ntpdsim.1 delete dist/ntp/ntpd/ntpsim.c delete dist/ntp/ntpd/ppsapi_timepps.h delete dist/ntp/ntpd/refclock_acts.c delete dist/ntp/ntpd/refclock_arbiter.c delete dist/ntp/ntpd/refclock_arc.c delete dist/ntp/ntpd/refclock_as2201.c delete dist/ntp/ntpd/refclock_atom.c delete dist/ntp/ntpd/refclock_bancomm.c delete dist/ntp/ntpd/refclock_chronolog.c delete dist/ntp/ntpd/refclock_chu.c delete dist/ntp/ntpd/refclock_conf.c delete dist/ntp/ntpd/refclock_datum.c delete dist/ntp/ntpd/refclock_dumbclock.c delete dist/ntp/ntpd/refclock_fg.c delete dist/ntp/ntpd/refclock_gpsvme.c delete dist/ntp/ntpd/refclock_heath.c delete dist/ntp/ntpd/refclock_hopfpci.c delete dist/ntp/ntpd/refclock_hopfser.c delete dist/ntp/ntpd/refclock_hpgps.c delete dist/ntp/ntpd/refclock_irig.c delete dist/ntp/ntpd/refclock_jjy.c delete dist/ntp/ntpd/refclock_jupiter.c delete dist/ntp/ntpd/refclock_leitch.c delete dist/ntp/ntpd/refclock_local.c delete dist/ntp/ntpd/refclock_msfees.c delete dist/ntp/ntpd/refclock_mx4200.c delete dist/ntp/ntpd/refclock_neoclock4x.c delete dist/ntp/ntpd/refclock_nmea.c delete dist/ntp/ntpd/refclock_oncore.c delete dist/ntp/ntpd/refclock_palisade.c delete dist/ntp/ntpd/refclock_palisade.h delete dist/ntp/ntpd/refclock_parse.c delete dist/ntp/ntpd/refclock_pcf.c delete dist/ntp/ntpd/refclock_pst.c delete dist/ntp/ntpd/refclock_ripencc.c delete dist/ntp/ntpd/refclock_shm.c delete dist/ntp/ntpd/refclock_tpro.c delete dist/ntp/ntpd/refclock_trak.c delete dist/ntp/ntpd/refclock_true.c delete dist/ntp/ntpd/refclock_tt560.c delete dist/ntp/ntpd/refclock_ulink.c delete dist/ntp/ntpd/refclock_wwv.c delete dist/ntp/ntpd/refclock_wwvb.c delete dist/ntp/ntpd/refclock_zyfer.c delete dist/ntp/ntpdate/Makefile.am delete dist/ntp/ntpdate/Makefile.in delete dist/ntp/ntpdate/README delete dist/ntp/ntpdate/ntpdate.c delete dist/ntp/ntpdate/ntpdate.h delete dist/ntp/ntpdate/ntptime_config.c delete dist/ntp/ntpdate/ntptimeset.c delete dist/ntp/ntpdc/Makefile.am delete dist/ntp/ntpdc/Makefile.in delete dist/ntp/ntpdc/README delete dist/ntp/ntpdc/layout.std delete dist/ntp/ntpdc/nl.pl delete dist/ntp/ntpdc/nl.pl.in delete dist/ntp/ntpdc/nl_in.c delete dist/ntp/ntpdc/ntpdc-layout.c delete dist/ntp/ntpdc/ntpdc-opts.c delete dist/ntp/ntpdc/ntpdc-opts.def delete dist/ntp/ntpdc/ntpdc-opts.h delete dist/ntp/ntpdc/ntpdc-opts.menu delete dist/ntp/ntpdc/ntpdc-opts.texi delete dist/ntp/ntpdc/ntpdc.1 delete dist/ntp/ntpdc/ntpdc.c delete dist/ntp/ntpdc/ntpdc.h delete dist/ntp/ntpdc/ntpdc_ops.c delete dist/ntp/ntpq/Makefile.am delete dist/ntp/ntpq/Makefile.in delete dist/ntp/ntpq/README delete dist/ntp/ntpq/ntpq-opts.c delete dist/ntp/ntpq/ntpq-opts.def delete dist/ntp/ntpq/ntpq-opts.h delete dist/ntp/ntpq/ntpq-opts.menu delete dist/ntp/ntpq/ntpq-opts.texi delete dist/ntp/ntpq/ntpq-subs.c delete dist/ntp/ntpq/ntpq.1 delete dist/ntp/ntpq/ntpq.c delete dist/ntp/ntpq/ntpq.h delete dist/ntp/parseutil/Makefile.am delete dist/ntp/parseutil/Makefile.in delete dist/ntp/parseutil/README delete dist/ntp/parseutil/dcfd.c delete dist/ntp/parseutil/testdcf.c delete dist/ntp/scripts/Makefile.am delete dist/ntp/scripts/Makefile.in delete dist/ntp/scripts/README delete dist/ntp/scripts/VersionName delete dist/ntp/scripts/calc_tickadj.in delete dist/ntp/scripts/checktime.in delete dist/ntp/scripts/fixautomakedepsmagic delete dist/ntp/scripts/freq_adj.in delete dist/ntp/scripts/genCommitLog delete dist/ntp/scripts/genver delete dist/ntp/scripts/hpadjtime.sh delete dist/ntp/scripts/html2man.in delete dist/ntp/scripts/mkver.in delete dist/ntp/scripts/ntp-close delete dist/ntp/scripts/ntp-groper delete dist/ntp/scripts/ntp-restart delete dist/ntp/scripts/ntp-status delete dist/ntp/scripts/ntp-wait.in delete dist/ntp/scripts/ntpsweep.in delete dist/ntp/scripts/ntptrace.in delete dist/ntp/scripts/ntpver.in delete dist/ntp/scripts/plot_summary.in delete dist/ntp/scripts/summary.in delete dist/ntp/scripts/monitoring/README delete dist/ntp/scripts/monitoring/loopwatch.config.SAMPLE delete dist/ntp/scripts/monitoring/lr.pl delete dist/ntp/scripts/monitoring/ntp.pl delete dist/ntp/scripts/monitoring/ntploopstat delete dist/ntp/scripts/monitoring/ntploopwatch delete dist/ntp/scripts/monitoring/ntptrap delete dist/ntp/scripts/monitoring/timelocal.pl delete dist/ntp/scripts/rc1/postinstall delete dist/ntp/scripts/rc1/preinstall delete dist/ntp/scripts/rc1/preremove delete dist/ntp/scripts/rc1/prototype delete dist/ntp/scripts/rc1/xntp delete dist/ntp/scripts/rc2/local.ntpd delete dist/ntp/scripts/stats/README delete dist/ntp/scripts/stats/README.stats delete dist/ntp/scripts/stats/README.timecodes delete dist/ntp/scripts/stats/clock.awk delete dist/ntp/scripts/stats/dupe.awk delete dist/ntp/scripts/stats/ensemble.S delete dist/ntp/scripts/stats/ensemble.awk delete dist/ntp/scripts/stats/etf.S delete dist/ntp/scripts/stats/etf.awk delete dist/ntp/scripts/stats/itf.S delete dist/ntp/scripts/stats/itf.awk delete dist/ntp/scripts/stats/loop.S delete dist/ntp/scripts/stats/loop.awk delete dist/ntp/scripts/stats/loop_summary delete dist/ntp/scripts/stats/peer.awk delete dist/ntp/scripts/stats/psummary.awk delete dist/ntp/scripts/stats/summary.sh delete dist/ntp/scripts/stats/tdata.S delete dist/ntp/scripts/stats/tdata.awk delete dist/ntp/sntp/COPYRIGHT delete dist/ntp/sntp/Makefile.am delete dist/ntp/sntp/Makefile.in delete dist/ntp/sntp/README delete dist/ntp/sntp/aclocal.m4 delete dist/ntp/sntp/autogen-version.def delete dist/ntp/sntp/bincheck.mf delete dist/ntp/sntp/compile delete dist/ntp/sntp/config.guess delete dist/ntp/sntp/config.h.in delete dist/ntp/sntp/config.sub delete dist/ntp/sntp/configure delete dist/ntp/sntp/configure.ac delete dist/ntp/sntp/depcomp delete dist/ntp/sntp/header.h delete dist/ntp/sntp/install-sh delete dist/ntp/sntp/internet.c delete dist/ntp/sntp/internet.h delete dist/ntp/sntp/kludges.h delete dist/ntp/sntp/ltmain.sh delete dist/ntp/sntp/main.c delete dist/ntp/sntp/missing delete dist/ntp/sntp/sntp-opts.c delete dist/ntp/sntp/sntp-opts.def delete dist/ntp/sntp/sntp-opts.h delete dist/ntp/sntp/sntp-opts.menu delete dist/ntp/sntp/sntp-opts.texi delete dist/ntp/sntp/sntp.1 delete dist/ntp/sntp/socket.c delete dist/ntp/sntp/timing.c delete dist/ntp/sntp/unix.c delete dist/ntp/sntp/version.def delete dist/ntp/sntp/libopts/COPYING.lgpl delete dist/ntp/sntp/libopts/COPYING.mbsd delete dist/ntp/sntp/libopts/MakeDefs.inc delete dist/ntp/sntp/libopts/Makefile.am delete dist/ntp/sntp/libopts/Makefile.in delete dist/ntp/sntp/libopts/README delete dist/ntp/sntp/libopts/autoopts.c delete dist/ntp/sntp/libopts/autoopts.h delete dist/ntp/sntp/libopts/boolean.c delete dist/ntp/sntp/libopts/configfile.c delete dist/ntp/sntp/libopts/cook.c delete dist/ntp/sntp/libopts/enumeration.c delete dist/ntp/sntp/libopts/environment.c delete dist/ntp/sntp/libopts/genshell.c delete dist/ntp/sntp/libopts/genshell.h delete dist/ntp/sntp/libopts/libopts.c delete dist/ntp/sntp/libopts/load.c delete dist/ntp/sntp/libopts/makeshell.c delete dist/ntp/sntp/libopts/nested.c delete dist/ntp/sntp/libopts/numeric.c delete dist/ntp/sntp/libopts/pgusage.c delete dist/ntp/sntp/libopts/proto.h delete dist/ntp/sntp/libopts/putshell.c delete dist/ntp/sntp/libopts/restore.c delete dist/ntp/sntp/libopts/save.c delete dist/ntp/sntp/libopts/sort.c delete dist/ntp/sntp/libopts/stack.c delete dist/ntp/sntp/libopts/streqvcmp.c delete dist/ntp/sntp/libopts/text_mmap.c delete dist/ntp/sntp/libopts/tokenize.c delete dist/ntp/sntp/libopts/usage.c delete dist/ntp/sntp/libopts/version.c delete dist/ntp/sntp/libopts/autoopts/options.h delete dist/ntp/sntp/libopts/autoopts/usage-txt.h delete dist/ntp/sntp/libopts/compat/compat.h delete dist/ntp/sntp/libopts/compat/pathfind.c delete dist/ntp/sntp/libopts/compat/snprintf.c delete dist/ntp/sntp/libopts/compat/strchr.c delete dist/ntp/sntp/libopts/compat/strdup.c delete dist/ntp/sntp/libopts/compat/windows-config.h delete dist/ntp/sntp/libopts/m4/libopts.m4 delete dist/ntp/sntp/libopts/m4/liboptschk.m4 delete dist/ntp/util/Makefile.am delete dist/ntp/util/Makefile.in delete dist/ntp/util/README delete dist/ntp/util/ansi2knr.1 delete dist/ntp/util/ansi2knr.c delete dist/ntp/util/audio-pcm.c delete dist/ntp/util/byteorder.c delete dist/ntp/util/hist.c delete dist/ntp/util/jitter.c delete dist/ntp/util/jitter.h delete dist/ntp/util/kern.c delete dist/ntp/util/longsize.c delete dist/ntp/util/ntp-keygen-opts.c delete dist/ntp/util/ntp-keygen-opts.def delete dist/ntp/util/ntp-keygen-opts.h delete dist/ntp/util/ntp-keygen-opts.menu delete dist/ntp/util/ntp-keygen-opts.texi delete dist/ntp/util/ntp-keygen.1 delete dist/ntp/util/ntp-keygen.c delete dist/ntp/util/ntptime.c delete dist/ntp/util/pps-api.c delete dist/ntp/util/precision.c delete dist/ntp/util/sht.c delete dist/ntp/util/testrs6000.c delete dist/ntp/util/tg.c delete dist/ntp/util/tickadj.c delete dist/ntp/util/timetrim.c delete distrib/sets/lists/man/mi patch distrib/sets/lists/misc/mi patch external/bsd/Makefile patch external/bsd/ntp/Makefile new external/bsd/ntp/Makefile.inc new external/bsd/ntp/importdate new external/bsd/ntp/ntp2netbsd new external/bsd/ntp/bin/Makefile new external/bsd/ntp/bin/Makefile.inc new external/bsd/ntp/bin/ntp-keygen/Makefile new external/bsd/ntp/bin/ntp-keygen/ntp-keygen.8 new external/bsd/ntp/bin/ntpd/Makefile new external/bsd/ntp/bin/ntpd/ntp.conf.5 new external/bsd/ntp/bin/ntpd/ntp.keys.5 new external/bsd/ntp/bin/ntpd/ntpd.8 new external/bsd/ntp/bin/ntpdate/Makefile new external/bsd/ntp/bin/ntpdate/ntpdate.8 new external/bsd/ntp/bin/ntpdc/Makefile new external/bsd/ntp/bin/ntpdc/ntpdc.8 new external/bsd/ntp/bin/ntpq/Makefile new external/bsd/ntp/bin/ntpq/ntpq.8 new external/bsd/ntp/bin/ntptime/Makefile new external/bsd/ntp/bin/ntptime/ntptime.8 new external/bsd/ntp/bin/ntptrace/Makefile new external/bsd/ntp/bin/ntptrace/ntptrace.8 new external/bsd/ntp/bin/ntptrace/ntptrace.awk new external/bsd/ntp/bin/sntp/Makefile new external/bsd/ntp/bin/sntp/sntp.1 new external/bsd/ntp/dist/COPYRIGHT new external/bsd/ntp/dist/ChangeLog new external/bsd/ntp/dist/CommitLog new external/bsd/ntp/dist/CommitLog-4.1.0 new external/bsd/ntp/dist/INSTALL new external/bsd/ntp/dist/Makefile.am new external/bsd/ntp/dist/Makefile.in new external/bsd/ntp/dist/NEWS new external/bsd/ntp/dist/NOTES.y2kfixes new external/bsd/ntp/dist/README new external/bsd/ntp/dist/README.bk new external/bsd/ntp/dist/README.hackers new external/bsd/ntp/dist/README.patches new external/bsd/ntp/dist/README.refclocks new external/bsd/ntp/dist/README.versions new external/bsd/ntp/dist/TODO new external/bsd/ntp/dist/WHERE-TO-START new external/bsd/ntp/dist/aclocal.m4 new external/bsd/ntp/dist/bincheck.mf new external/bsd/ntp/dist/bootstrap new external/bsd/ntp/dist/build new external/bsd/ntp/dist/check-libopts.mf new external/bsd/ntp/dist/config.h.in new external/bsd/ntp/dist/configure new external/bsd/ntp/dist/configure.ac new external/bsd/ntp/dist/deps-ver new external/bsd/ntp/dist/depsver.mf new external/bsd/ntp/dist/dot.emacs new external/bsd/ntp/dist/flock-build new external/bsd/ntp/dist/includes.mf new external/bsd/ntp/dist/install-sh new external/bsd/ntp/dist/packageinfo.sh new external/bsd/ntp/dist/readme.y2kfixes new external/bsd/ntp/dist/results.y2kfixes new external/bsd/ntp/dist/adjtimed/Makefile.am new external/bsd/ntp/dist/adjtimed/Makefile.in new external/bsd/ntp/dist/adjtimed/README new external/bsd/ntp/dist/adjtimed/adjtimed.c new external/bsd/ntp/dist/clockstuff/Makefile.am new external/bsd/ntp/dist/clockstuff/Makefile.in new external/bsd/ntp/dist/clockstuff/README new external/bsd/ntp/dist/clockstuff/chutest.c new external/bsd/ntp/dist/clockstuff/propdelay.c new external/bsd/ntp/dist/conf/README new external/bsd/ntp/dist/conf/baldwin.conf new external/bsd/ntp/dist/conf/beauregard.conf new external/bsd/ntp/dist/conf/grundoon.conf new external/bsd/ntp/dist/conf/malarky.conf new external/bsd/ntp/dist/conf/pogo.conf new external/bsd/ntp/dist/conf/rackety.conf new external/bsd/ntp/dist/html/access.html new external/bsd/ntp/dist/html/accopt.html new external/bsd/ntp/dist/html/assoc.html new external/bsd/ntp/dist/html/audio.html new external/bsd/ntp/dist/html/authentic.html new external/bsd/ntp/dist/html/authopt.html new external/bsd/ntp/dist/html/autokey.html new external/bsd/ntp/dist/html/bugs.html new external/bsd/ntp/dist/html/build.html new external/bsd/ntp/dist/html/clock.html new external/bsd/ntp/dist/html/clockopt.html new external/bsd/ntp/dist/html/cluster.html new external/bsd/ntp/dist/html/comdex.html new external/bsd/ntp/dist/html/config.html new external/bsd/ntp/dist/html/confopt.html new external/bsd/ntp/dist/html/copyright.html new external/bsd/ntp/dist/html/debug.html new external/bsd/ntp/dist/html/decode.html new external/bsd/ntp/dist/html/discipline.html new external/bsd/ntp/dist/html/discover.html new external/bsd/ntp/dist/html/extern.html new external/bsd/ntp/dist/html/filter.html new external/bsd/ntp/dist/html/hints.html new external/bsd/ntp/dist/html/history.html new external/bsd/ntp/dist/html/howto.html new external/bsd/ntp/dist/html/huffpuff.html new external/bsd/ntp/dist/html/index.html new external/bsd/ntp/dist/html/kern.html new external/bsd/ntp/dist/html/kernpps.html new external/bsd/ntp/dist/html/keygen.html new external/bsd/ntp/dist/html/leap.html new external/bsd/ntp/dist/html/miscopt.html new external/bsd/ntp/dist/html/monopt.html new external/bsd/ntp/dist/html/msyslog.html new external/bsd/ntp/dist/html/ntp-wait.html new external/bsd/ntp/dist/html/ntp_conf.html new external/bsd/ntp/dist/html/ntpd.html new external/bsd/ntp/dist/html/ntpdate.html new external/bsd/ntp/dist/html/ntpdc.html new external/bsd/ntp/dist/html/ntpdsim.html new external/bsd/ntp/dist/html/ntpdsim_new.html new external/bsd/ntp/dist/html/ntpq.html new external/bsd/ntp/dist/html/ntptime.html new external/bsd/ntp/dist/html/ntptrace.html new external/bsd/ntp/dist/html/orphan.html new external/bsd/ntp/dist/html/parsedata.html new external/bsd/ntp/dist/html/parsenew.html new external/bsd/ntp/dist/html/poll.html new external/bsd/ntp/dist/html/pps.html new external/bsd/ntp/dist/html/prefer.html new external/bsd/ntp/dist/html/quick.html new external/bsd/ntp/dist/html/rate.html new external/bsd/ntp/dist/html/rdebug.html new external/bsd/ntp/dist/html/refclock.html new external/bsd/ntp/dist/html/release.html new external/bsd/ntp/dist/html/select.html new external/bsd/ntp/dist/html/sitemap.html new external/bsd/ntp/dist/html/sntp.html new external/bsd/ntp/dist/html/stats.html new external/bsd/ntp/dist/html/tickadj.html new external/bsd/ntp/dist/html/warp.html new external/bsd/ntp/dist/html/xleave.html new external/bsd/ntp/dist/html/drivers/driver1.html new external/bsd/ntp/dist/html/drivers/driver10.html new external/bsd/ntp/dist/html/drivers/driver11.html new external/bsd/ntp/dist/html/drivers/driver12.html new external/bsd/ntp/dist/html/drivers/driver16.html new external/bsd/ntp/dist/html/drivers/driver18.html new external/bsd/ntp/dist/html/drivers/driver19.html new external/bsd/ntp/dist/html/drivers/driver20.html new external/bsd/ntp/dist/html/drivers/driver22.html new external/bsd/ntp/dist/html/drivers/driver26.html new external/bsd/ntp/dist/html/drivers/driver27.html new external/bsd/ntp/dist/html/drivers/driver28.html new external/bsd/ntp/dist/html/drivers/driver29.html new external/bsd/ntp/dist/html/drivers/driver3.html new external/bsd/ntp/dist/html/drivers/driver30.html new external/bsd/ntp/dist/html/drivers/driver31.html new external/bsd/ntp/dist/html/drivers/driver32.html new external/bsd/ntp/dist/html/drivers/driver33.html new external/bsd/ntp/dist/html/drivers/driver34.html new external/bsd/ntp/dist/html/drivers/driver35.html new external/bsd/ntp/dist/html/drivers/driver36.html new external/bsd/ntp/dist/html/drivers/driver37.html new external/bsd/ntp/dist/html/drivers/driver38.html new external/bsd/ntp/dist/html/drivers/driver39.html new external/bsd/ntp/dist/html/drivers/driver4.html new external/bsd/ntp/dist/html/drivers/driver40.html new external/bsd/ntp/dist/html/drivers/driver42.html new external/bsd/ntp/dist/html/drivers/driver43.html new external/bsd/ntp/dist/html/drivers/driver44.html new external/bsd/ntp/dist/html/drivers/driver45.html new external/bsd/ntp/dist/html/drivers/driver46.html new external/bsd/ntp/dist/html/drivers/driver5.html new external/bsd/ntp/dist/html/drivers/driver6.html new external/bsd/ntp/dist/html/drivers/driver7.html new external/bsd/ntp/dist/html/drivers/driver8.html new external/bsd/ntp/dist/html/drivers/driver9.html new external/bsd/ntp/dist/html/drivers/mx4200data.html new external/bsd/ntp/dist/html/drivers/oncore-shmem.html new external/bsd/ntp/dist/html/drivers/tf582_4.html new external/bsd/ntp/dist/html/drivers/icons/home.gif new external/bsd/ntp/dist/html/drivers/icons/mail2.gif new external/bsd/ntp/dist/html/drivers/scripts/footer.txt new external/bsd/ntp/dist/html/drivers/scripts/style.css new external/bsd/ntp/dist/html/hints/a-ux new external/bsd/ntp/dist/html/hints/aix new external/bsd/ntp/dist/html/hints/bsdi new external/bsd/ntp/dist/html/hints/changes new external/bsd/ntp/dist/html/hints/decosf1 new external/bsd/ntp/dist/html/hints/decosf2 new external/bsd/ntp/dist/html/hints/freebsd new external/bsd/ntp/dist/html/hints/hpux new external/bsd/ntp/dist/html/hints/linux new external/bsd/ntp/dist/html/hints/mpeix new external/bsd/ntp/dist/html/hints/notes-xntp-v3 new external/bsd/ntp/dist/html/hints/parse new external/bsd/ntp/dist/html/hints/refclocks new external/bsd/ntp/dist/html/hints/rs6000 new external/bsd/ntp/dist/html/hints/sco.html new external/bsd/ntp/dist/html/hints/sgi new external/bsd/ntp/dist/html/hints/solaris-dosynctodr.html new external/bsd/ntp/dist/html/hints/solaris.html new external/bsd/ntp/dist/html/hints/solaris.xtra.4023118 new external/bsd/ntp/dist/html/hints/solaris.xtra.4095849 new external/bsd/ntp/dist/html/hints/solaris.xtra.S99ntpd new external/bsd/ntp/dist/html/hints/solaris.xtra.patchfreq new external/bsd/ntp/dist/html/hints/sun4 new external/bsd/ntp/dist/html/hints/svr4-dell new external/bsd/ntp/dist/html/hints/svr4_package new external/bsd/ntp/dist/html/hints/todo new external/bsd/ntp/dist/html/hints/vxworks.html new external/bsd/ntp/dist/html/hints/winnt.html new external/bsd/ntp/dist/html/icons/home.gif new external/bsd/ntp/dist/html/icons/mail2.gif new external/bsd/ntp/dist/html/icons/sitemap.png new external/bsd/ntp/dist/html/scripts/accopt.txt new external/bsd/ntp/dist/html/scripts/audio.txt new external/bsd/ntp/dist/html/scripts/authopt.txt new external/bsd/ntp/dist/html/scripts/clockopt.txt new external/bsd/ntp/dist/html/scripts/command.txt new external/bsd/ntp/dist/html/scripts/config.txt new external/bsd/ntp/dist/html/scripts/confopt.txt new external/bsd/ntp/dist/html/scripts/external.txt new external/bsd/ntp/dist/html/scripts/footer.txt new external/bsd/ntp/dist/html/scripts/hand.txt new external/bsd/ntp/dist/html/scripts/install.txt new external/bsd/ntp/dist/html/scripts/manual.txt new external/bsd/ntp/dist/html/scripts/misc.txt new external/bsd/ntp/dist/html/scripts/miscopt.txt new external/bsd/ntp/dist/html/scripts/monopt.txt new external/bsd/ntp/dist/html/scripts/refclock.txt new external/bsd/ntp/dist/html/scripts/special.txt new external/bsd/ntp/dist/html/scripts/style.css new external/bsd/ntp/dist/include/Makefile.am new external/bsd/ntp/dist/include/Makefile.in new external/bsd/ntp/dist/include/README new external/bsd/ntp/dist/include/adjtime.h new external/bsd/ntp/dist/include/ascii.h new external/bsd/ntp/dist/include/audio.h new external/bsd/ntp/dist/include/binio.h new external/bsd/ntp/dist/include/declcond.h new external/bsd/ntp/dist/include/gps.h new external/bsd/ntp/dist/include/hopf6039.h new external/bsd/ntp/dist/include/icom.h new external/bsd/ntp/dist/include/ieee754io.h new external/bsd/ntp/dist/include/intreswork.h new external/bsd/ntp/dist/include/iosignal.h new external/bsd/ntp/dist/include/l_stdlib.h new external/bsd/ntp/dist/include/lib_strbuf.h new external/bsd/ntp/dist/include/libntp.h new external/bsd/ntp/dist/include/mbg_gps166.h new external/bsd/ntp/dist/include/mx4200.h new external/bsd/ntp/dist/include/ntif.h new external/bsd/ntp/dist/include/ntp.h new external/bsd/ntp/dist/include/ntp_assert.h new external/bsd/ntp/dist/include/ntp_calendar.h new external/bsd/ntp/dist/include/ntp_cmdargs.h new external/bsd/ntp/dist/include/ntp_config.h new external/bsd/ntp/dist/include/ntp_control.h new external/bsd/ntp/dist/include/ntp_crypto.h new external/bsd/ntp/dist/include/ntp_datum.h new external/bsd/ntp/dist/include/ntp_debug.h new external/bsd/ntp/dist/include/ntp_filegen.h new external/bsd/ntp/dist/include/ntp_fp.h new external/bsd/ntp/dist/include/ntp_if.h new external/bsd/ntp/dist/include/ntp_intres.h new external/bsd/ntp/dist/include/ntp_io.h new external/bsd/ntp/dist/include/ntp_libopts.h new external/bsd/ntp/dist/include/ntp_lineedit.h new external/bsd/ntp/dist/include/ntp_lists.h new external/bsd/ntp/dist/include/ntp_machine.h new external/bsd/ntp/dist/include/ntp_malloc.h new external/bsd/ntp/dist/include/ntp_md5.h new external/bsd/ntp/dist/include/ntp_net.h new external/bsd/ntp/dist/include/ntp_prio_q.h new external/bsd/ntp/dist/include/ntp_proto.h new external/bsd/ntp/dist/include/ntp_random.h new external/bsd/ntp/dist/include/ntp_refclock.h new external/bsd/ntp/dist/include/ntp_request.h new external/bsd/ntp/dist/include/ntp_rfc2553.h new external/bsd/ntp/dist/include/ntp_select.h new external/bsd/ntp/dist/include/ntp_stdlib.h new external/bsd/ntp/dist/include/ntp_string.h new external/bsd/ntp/dist/include/ntp_syscall.h new external/bsd/ntp/dist/include/ntp_syslog.h new external/bsd/ntp/dist/include/ntp_tty.h new external/bsd/ntp/dist/include/ntp_types.h new external/bsd/ntp/dist/include/ntp_unixtime.h new external/bsd/ntp/dist/include/ntp_worker.h new external/bsd/ntp/dist/include/ntp_workimpl.h new external/bsd/ntp/dist/include/ntpd.h new external/bsd/ntp/dist/include/ntpsim.h new external/bsd/ntp/dist/include/parse.h new external/bsd/ntp/dist/include/parse_conf.h new external/bsd/ntp/dist/include/recvbuff.h new external/bsd/ntp/dist/include/refclock_atom.h new external/bsd/ntp/dist/include/ssl_applink.c new external/bsd/ntp/dist/include/timepps-SCO.h new external/bsd/ntp/dist/include/timepps-Solaris.h new external/bsd/ntp/dist/include/timepps-SunOS.h new external/bsd/ntp/dist/include/timespecops.h new external/bsd/ntp/dist/include/timetoa.h new external/bsd/ntp/dist/include/timevalops.h new external/bsd/ntp/dist/include/trimble.h new external/bsd/ntp/dist/include/vint64ops.h new external/bsd/ntp/dist/include/isc/Makefile.am new external/bsd/ntp/dist/include/isc/Makefile.in new external/bsd/ntp/dist/include/isc/mem.h new external/bsd/ntp/dist/kernel/Makefile.am new external/bsd/ntp/dist/kernel/Makefile.in new external/bsd/ntp/dist/kernel/sys/Makefile.am new external/bsd/ntp/dist/kernel/sys/Makefile.in new external/bsd/ntp/dist/kernel/sys/README new external/bsd/ntp/dist/kernel/sys/bsd_audioirig.h new external/bsd/ntp/dist/kernel/sys/i8253.h new external/bsd/ntp/dist/kernel/sys/parsestreams.h new external/bsd/ntp/dist/kernel/sys/pcl720.h new external/bsd/ntp/dist/kernel/sys/ppsclock.h new external/bsd/ntp/dist/kernel/sys/timex.h new external/bsd/ntp/dist/kernel/sys/tpro.h new external/bsd/ntp/dist/kernel/sys/tt560_api.h new external/bsd/ntp/dist/lib/isc/Atffile new external/bsd/ntp/dist/lib/isc/api new external/bsd/ntp/dist/lib/isc/app_api.c new external/bsd/ntp/dist/lib/isc/assertions.c new external/bsd/ntp/dist/lib/isc/backtrace-emptytbl.c new external/bsd/ntp/dist/lib/isc/backtrace.c new external/bsd/ntp/dist/lib/isc/base32.c new external/bsd/ntp/dist/lib/isc/base64.c new external/bsd/ntp/dist/lib/isc/bitstring.c new external/bsd/ntp/dist/lib/isc/buffer.c new external/bsd/ntp/dist/lib/isc/bufferlist.c new external/bsd/ntp/dist/lib/isc/commandline.c new external/bsd/ntp/dist/lib/isc/entropy.c new external/bsd/ntp/dist/lib/isc/error.c new external/bsd/ntp/dist/lib/isc/event.c new external/bsd/ntp/dist/lib/isc/fsaccess.c new external/bsd/ntp/dist/lib/isc/hash.c new external/bsd/ntp/dist/lib/isc/heap.c new external/bsd/ntp/dist/lib/isc/hex.c new external/bsd/ntp/dist/lib/isc/hmacmd5.c new external/bsd/ntp/dist/lib/isc/hmacsha.c new external/bsd/ntp/dist/lib/isc/httpd.c new external/bsd/ntp/dist/lib/isc/inet_aton.c new external/bsd/ntp/dist/lib/isc/inet_ntop.c new external/bsd/ntp/dist/lib/isc/inet_pton.c new external/bsd/ntp/dist/lib/isc/iterated_hash.c new external/bsd/ntp/dist/lib/isc/lex.c new external/bsd/ntp/dist/lib/isc/lfsr.c new external/bsd/ntp/dist/lib/isc/lib.c new external/bsd/ntp/dist/lib/isc/log.c new external/bsd/ntp/dist/lib/isc/md5.c new external/bsd/ntp/dist/lib/isc/mem.c new external/bsd/ntp/dist/lib/isc/mem_api.c new external/bsd/ntp/dist/lib/isc/mutexblock.c new external/bsd/ntp/dist/lib/isc/netaddr.c new external/bsd/ntp/dist/lib/isc/netscope.c new external/bsd/ntp/dist/lib/isc/ondestroy.c new external/bsd/ntp/dist/lib/isc/parseint.c new external/bsd/ntp/dist/lib/isc/portset.c new external/bsd/ntp/dist/lib/isc/print.c new external/bsd/ntp/dist/lib/isc/quota.c new external/bsd/ntp/dist/lib/isc/radix.c new external/bsd/ntp/dist/lib/isc/random.c new external/bsd/ntp/dist/lib/isc/ratelimiter.c new external/bsd/ntp/dist/lib/isc/refcount.c new external/bsd/ntp/dist/lib/isc/region.c new external/bsd/ntp/dist/lib/isc/result.c new external/bsd/ntp/dist/lib/isc/rwlock.c new external/bsd/ntp/dist/lib/isc/serial.c new external/bsd/ntp/dist/lib/isc/sha1.c new external/bsd/ntp/dist/lib/isc/sha2.c new external/bsd/ntp/dist/lib/isc/sockaddr.c new external/bsd/ntp/dist/lib/isc/socket_api.c new external/bsd/ntp/dist/lib/isc/stats.c new external/bsd/ntp/dist/lib/isc/string.c new external/bsd/ntp/dist/lib/isc/strtoul.c new external/bsd/ntp/dist/lib/isc/symtab.c new external/bsd/ntp/dist/lib/isc/task.c new external/bsd/ntp/dist/lib/isc/task_api.c new external/bsd/ntp/dist/lib/isc/task_p.h new external/bsd/ntp/dist/lib/isc/taskpool.c new external/bsd/ntp/dist/lib/isc/timer.c new external/bsd/ntp/dist/lib/isc/timer_api.c new external/bsd/ntp/dist/lib/isc/timer_p.h new external/bsd/ntp/dist/lib/isc/version.c new external/bsd/ntp/dist/lib/isc/alpha/include/isc/atomic.h new external/bsd/ntp/dist/lib/isc/ia64/include/isc/atomic.h new external/bsd/ntp/dist/lib/isc/include/isc/app.h new external/bsd/ntp/dist/lib/isc/include/isc/assertions.h new external/bsd/ntp/dist/lib/isc/include/isc/backtrace.h new external/bsd/ntp/dist/lib/isc/include/isc/base32.h new external/bsd/ntp/dist/lib/isc/include/isc/base64.h new external/bsd/ntp/dist/lib/isc/include/isc/bind9.h new external/bsd/ntp/dist/lib/isc/include/isc/bitstring.h new external/bsd/ntp/dist/lib/isc/include/isc/boolean.h new external/bsd/ntp/dist/lib/isc/include/isc/buffer.h new external/bsd/ntp/dist/lib/isc/include/isc/bufferlist.h new external/bsd/ntp/dist/lib/isc/include/isc/commandline.h new external/bsd/ntp/dist/lib/isc/include/isc/entropy.h new external/bsd/ntp/dist/lib/isc/include/isc/error.h new external/bsd/ntp/dist/lib/isc/include/isc/event.h new external/bsd/ntp/dist/lib/isc/include/isc/eventclass.h new external/bsd/ntp/dist/lib/isc/include/isc/file.h new external/bsd/ntp/dist/lib/isc/include/isc/formatcheck.h new external/bsd/ntp/dist/lib/isc/include/isc/fsaccess.h new external/bsd/ntp/dist/lib/isc/include/isc/hash.h new external/bsd/ntp/dist/lib/isc/include/isc/heap.h new external/bsd/ntp/dist/lib/isc/include/isc/hex.h new external/bsd/ntp/dist/lib/isc/include/isc/hmacmd5.h new external/bsd/ntp/dist/lib/isc/include/isc/hmacsha.h new external/bsd/ntp/dist/lib/isc/include/isc/httpd.h new external/bsd/ntp/dist/lib/isc/include/isc/interfaceiter.h new external/bsd/ntp/dist/lib/isc/include/isc/ipv6.h new external/bsd/ntp/dist/lib/isc/include/isc/iterated_hash.h new external/bsd/ntp/dist/lib/isc/include/isc/lang.h new external/bsd/ntp/dist/lib/isc/include/isc/lex.h new external/bsd/ntp/dist/lib/isc/include/isc/lfsr.h new external/bsd/ntp/dist/lib/isc/include/isc/lib.h new external/bsd/ntp/dist/lib/isc/include/isc/list.h new external/bsd/ntp/dist/lib/isc/include/isc/log.h new external/bsd/ntp/dist/lib/isc/include/isc/magic.h new external/bsd/ntp/dist/lib/isc/include/isc/md5.h new external/bsd/ntp/dist/lib/isc/include/isc/mem.h new external/bsd/ntp/dist/lib/isc/include/isc/msgcat.h new external/bsd/ntp/dist/lib/isc/include/isc/msgs.h new external/bsd/ntp/dist/lib/isc/include/isc/mutexblock.h new external/bsd/ntp/dist/lib/isc/include/isc/namespace.h new external/bsd/ntp/dist/lib/isc/include/isc/netaddr.h new external/bsd/ntp/dist/lib/isc/include/isc/netscope.h new external/bsd/ntp/dist/lib/isc/include/isc/ondestroy.h new external/bsd/ntp/dist/lib/isc/include/isc/os.h new external/bsd/ntp/dist/lib/isc/include/isc/parseint.h new external/bsd/ntp/dist/lib/isc/include/isc/platform.h new external/bsd/ntp/dist/lib/isc/include/isc/platform.h.in new external/bsd/ntp/dist/lib/isc/include/isc/portset.h new external/bsd/ntp/dist/lib/isc/include/isc/print.h new external/bsd/ntp/dist/lib/isc/include/isc/queue.h new external/bsd/ntp/dist/lib/isc/include/isc/quota.h new external/bsd/ntp/dist/lib/isc/include/isc/radix.h new external/bsd/ntp/dist/lib/isc/include/isc/random.h new external/bsd/ntp/dist/lib/isc/include/isc/ratelimiter.h new external/bsd/ntp/dist/lib/isc/include/isc/refcount.h new external/bsd/ntp/dist/lib/isc/include/isc/region.h new external/bsd/ntp/dist/lib/isc/include/isc/resource.h new external/bsd/ntp/dist/lib/isc/include/isc/result.h new external/bsd/ntp/dist/lib/isc/include/isc/resultclass.h new external/bsd/ntp/dist/lib/isc/include/isc/rwlock.h new external/bsd/ntp/dist/lib/isc/include/isc/serial.h new external/bsd/ntp/dist/lib/isc/include/isc/sha1.h new external/bsd/ntp/dist/lib/isc/include/isc/sha2.h new external/bsd/ntp/dist/lib/isc/include/isc/sockaddr.h new external/bsd/ntp/dist/lib/isc/include/isc/socket.h new external/bsd/ntp/dist/lib/isc/include/isc/stats.h new external/bsd/ntp/dist/lib/isc/include/isc/stdio.h new external/bsd/ntp/dist/lib/isc/include/isc/stdlib.h new external/bsd/ntp/dist/lib/isc/include/isc/string.h new external/bsd/ntp/dist/lib/isc/include/isc/symtab.h new external/bsd/ntp/dist/lib/isc/include/isc/task.h new external/bsd/ntp/dist/lib/isc/include/isc/taskpool.h new external/bsd/ntp/dist/lib/isc/include/isc/timer.h new external/bsd/ntp/dist/lib/isc/include/isc/types.h new external/bsd/ntp/dist/lib/isc/include/isc/util.h new external/bsd/ntp/dist/lib/isc/include/isc/version.h new external/bsd/ntp/dist/lib/isc/include/isc/xml.h new external/bsd/ntp/dist/lib/isc/mips/include/isc/atomic.h new external/bsd/ntp/dist/lib/isc/nls/msgcat.c new external/bsd/ntp/dist/lib/isc/noatomic/include/isc/atomic.h new external/bsd/ntp/dist/lib/isc/nothreads/condition.c new external/bsd/ntp/dist/lib/isc/nothreads/mutex.c new external/bsd/ntp/dist/lib/isc/nothreads/thread.c new external/bsd/ntp/dist/lib/isc/nothreads/include/isc/condition.h new external/bsd/ntp/dist/lib/isc/nothreads/include/isc/mutex.h new external/bsd/ntp/dist/lib/isc/nothreads/include/isc/once.h new external/bsd/ntp/dist/lib/isc/nothreads/include/isc/thread.h new external/bsd/ntp/dist/lib/isc/powerpc/include/isc/atomic.h new external/bsd/ntp/dist/lib/isc/pthreads/condition.c new external/bsd/ntp/dist/lib/isc/pthreads/mutex.c new external/bsd/ntp/dist/lib/isc/pthreads/thread.c new external/bsd/ntp/dist/lib/isc/pthreads/include/isc/condition.h new external/bsd/ntp/dist/lib/isc/pthreads/include/isc/mutex.h new external/bsd/ntp/dist/lib/isc/pthreads/include/isc/once.h new external/bsd/ntp/dist/lib/isc/pthreads/include/isc/thread.h new external/bsd/ntp/dist/lib/isc/sparc64/include/isc/atomic.h new external/bsd/ntp/dist/lib/isc/tests/Atffile new external/bsd/ntp/dist/lib/isc/tests/hash_test.c new external/bsd/ntp/dist/lib/isc/tests/isctest.c new external/bsd/ntp/dist/lib/isc/tests/isctest.h new external/bsd/ntp/dist/lib/isc/tests/queue_test.c new external/bsd/ntp/dist/lib/isc/tests/socket_test.c new external/bsd/ntp/dist/lib/isc/tests/symtab_test.c new external/bsd/ntp/dist/lib/isc/tests/task_test.c new external/bsd/ntp/dist/lib/isc/tests/taskpool_test.c new external/bsd/ntp/dist/lib/isc/unix/app.c new external/bsd/ntp/dist/lib/isc/unix/dir.c new external/bsd/ntp/dist/lib/isc/unix/entropy.c new external/bsd/ntp/dist/lib/isc/unix/errno2result.c new external/bsd/ntp/dist/lib/isc/unix/errno2result.h new external/bsd/ntp/dist/lib/isc/unix/file.c new external/bsd/ntp/dist/lib/isc/unix/fsaccess.c new external/bsd/ntp/dist/lib/isc/unix/ifiter_getifaddrs.c new external/bsd/ntp/dist/lib/isc/unix/ifiter_ioctl.c new external/bsd/ntp/dist/lib/isc/unix/ifiter_sysctl.c new external/bsd/ntp/dist/lib/isc/unix/interfaceiter.c new external/bsd/ntp/dist/lib/isc/unix/ipv6.c new external/bsd/ntp/dist/lib/isc/unix/keyboard.c new external/bsd/ntp/dist/lib/isc/unix/net.c new external/bsd/ntp/dist/lib/isc/unix/os.c new external/bsd/ntp/dist/lib/isc/unix/resource.c new external/bsd/ntp/dist/lib/isc/unix/socket.c new external/bsd/ntp/dist/lib/isc/unix/socket_p.h new external/bsd/ntp/dist/lib/isc/unix/stdio.c new external/bsd/ntp/dist/lib/isc/unix/stdtime.c new external/bsd/ntp/dist/lib/isc/unix/strerror.c new external/bsd/ntp/dist/lib/isc/unix/syslog.c new external/bsd/ntp/dist/lib/isc/unix/time.c new external/bsd/ntp/dist/lib/isc/unix/include/isc/dir.h new external/bsd/ntp/dist/lib/isc/unix/include/isc/int.h new external/bsd/ntp/dist/lib/isc/unix/include/isc/keyboard.h new external/bsd/ntp/dist/lib/isc/unix/include/isc/net.h new external/bsd/ntp/dist/lib/isc/unix/include/isc/netdb.h new external/bsd/ntp/dist/lib/isc/unix/include/isc/offset.h new external/bsd/ntp/dist/lib/isc/unix/include/isc/stat.h new external/bsd/ntp/dist/lib/isc/unix/include/isc/stdtime.h new external/bsd/ntp/dist/lib/isc/unix/include/isc/strerror.h new external/bsd/ntp/dist/lib/isc/unix/include/isc/syslog.h new external/bsd/ntp/dist/lib/isc/unix/include/isc/time.h new external/bsd/ntp/dist/lib/isc/win32/DLLMain.c new external/bsd/ntp/dist/lib/isc/win32/app.c new external/bsd/ntp/dist/lib/isc/win32/condition.c new external/bsd/ntp/dist/lib/isc/win32/dir.c new external/bsd/ntp/dist/lib/isc/win32/entropy.c new external/bsd/ntp/dist/lib/isc/win32/errno2result.c new external/bsd/ntp/dist/lib/isc/win32/errno2result.h new external/bsd/ntp/dist/lib/isc/win32/file.c new external/bsd/ntp/dist/lib/isc/win32/fsaccess.c new external/bsd/ntp/dist/lib/isc/win32/interfaceiter.c new external/bsd/ntp/dist/lib/isc/win32/ipv6.c new external/bsd/ntp/dist/lib/isc/win32/keyboard.c new external/bsd/ntp/dist/lib/isc/win32/libgen.h new external/bsd/ntp/dist/lib/isc/win32/libisc.def new external/bsd/ntp/dist/lib/isc/win32/libisc.dsp new external/bsd/ntp/dist/lib/isc/win32/libisc.dsw new external/bsd/ntp/dist/lib/isc/win32/libisc.mak new external/bsd/ntp/dist/lib/isc/win32/net.c new external/bsd/ntp/dist/lib/isc/win32/netdb.h new external/bsd/ntp/dist/lib/isc/win32/ntgroups.c new external/bsd/ntp/dist/lib/isc/win32/ntpaths.c new external/bsd/ntp/dist/lib/isc/win32/once.c new external/bsd/ntp/dist/lib/isc/win32/os.c new external/bsd/ntp/dist/lib/isc/win32/resource.c new external/bsd/ntp/dist/lib/isc/win32/socket.c new external/bsd/ntp/dist/lib/isc/win32/stdio.c new external/bsd/ntp/dist/lib/isc/win32/stdtime.c new external/bsd/ntp/dist/lib/isc/win32/strerror.c new external/bsd/ntp/dist/lib/isc/win32/syslog.c new external/bsd/ntp/dist/lib/isc/win32/syslog.h new external/bsd/ntp/dist/lib/isc/win32/thread.c new external/bsd/ntp/dist/lib/isc/win32/time.c new external/bsd/ntp/dist/lib/isc/win32/unistd.h new external/bsd/ntp/dist/lib/isc/win32/version.c new external/bsd/ntp/dist/lib/isc/win32/win32os.c new external/bsd/ntp/dist/lib/isc/win32/include/isc/bind_registry.h new external/bsd/ntp/dist/lib/isc/win32/include/isc/bindevt.h new external/bsd/ntp/dist/lib/isc/win32/include/isc/condition.h new external/bsd/ntp/dist/lib/isc/win32/include/isc/dir.h new external/bsd/ntp/dist/lib/isc/win32/include/isc/int.h new external/bsd/ntp/dist/lib/isc/win32/include/isc/ipv6.h new external/bsd/ntp/dist/lib/isc/win32/include/isc/keyboard.h new external/bsd/ntp/dist/lib/isc/win32/include/isc/mutex.h new external/bsd/ntp/dist/lib/isc/win32/include/isc/net.h new external/bsd/ntp/dist/lib/isc/win32/include/isc/netdb.h new external/bsd/ntp/dist/lib/isc/win32/include/isc/ntgroups.h new external/bsd/ntp/dist/lib/isc/win32/include/isc/ntpaths.h new external/bsd/ntp/dist/lib/isc/win32/include/isc/offset.h new external/bsd/ntp/dist/lib/isc/win32/include/isc/once.h new external/bsd/ntp/dist/lib/isc/win32/include/isc/platform.h new external/bsd/ntp/dist/lib/isc/win32/include/isc/stat.h new external/bsd/ntp/dist/lib/isc/win32/include/isc/stdtime.h new external/bsd/ntp/dist/lib/isc/win32/include/isc/strerror.h new external/bsd/ntp/dist/lib/isc/win32/include/isc/syslog.h new external/bsd/ntp/dist/lib/isc/win32/include/isc/thread.h new external/bsd/ntp/dist/lib/isc/win32/include/isc/time.h new external/bsd/ntp/dist/lib/isc/win32/include/isc/win32os.h new external/bsd/ntp/dist/lib/isc/x86_32/include/isc/atomic.h new external/bsd/ntp/dist/lib/isc/x86_64/include/isc/atomic.h new external/bsd/ntp/dist/libjsmn/LICENSE new external/bsd/ntp/dist/libjsmn/Makefile new external/bsd/ntp/dist/libjsmn/README.md new external/bsd/ntp/dist/libjsmn/jsmn.c new external/bsd/ntp/dist/libjsmn/jsmn.h new external/bsd/ntp/dist/libjsmn/jsmn_test.c new external/bsd/ntp/dist/libntp/Makefile.am new external/bsd/ntp/dist/libntp/Makefile.in new external/bsd/ntp/dist/libntp/README new external/bsd/ntp/dist/libntp/a_md5encrypt.c new external/bsd/ntp/dist/libntp/adjtime.c new external/bsd/ntp/dist/libntp/adjtimex.c new external/bsd/ntp/dist/libntp/atoint.c new external/bsd/ntp/dist/libntp/atolfp.c new external/bsd/ntp/dist/libntp/atouint.c new external/bsd/ntp/dist/libntp/audio.c new external/bsd/ntp/dist/libntp/authkeys.c new external/bsd/ntp/dist/libntp/authreadkeys.c new external/bsd/ntp/dist/libntp/authusekey.c new external/bsd/ntp/dist/libntp/bsd_strerror.c new external/bsd/ntp/dist/libntp/buftvtots.c new external/bsd/ntp/dist/libntp/caljulian.c new external/bsd/ntp/dist/libntp/caltontp.c new external/bsd/ntp/dist/libntp/calyearstart.c new external/bsd/ntp/dist/libntp/clocktime.c new external/bsd/ntp/dist/libntp/clocktypes.c new external/bsd/ntp/dist/libntp/decodenetnum.c new external/bsd/ntp/dist/libntp/dofptoa.c new external/bsd/ntp/dist/libntp/dolfptoa.c new external/bsd/ntp/dist/libntp/emalloc.c new external/bsd/ntp/dist/libntp/findconfig.c new external/bsd/ntp/dist/libntp/getopt.c new external/bsd/ntp/dist/libntp/hextoint.c new external/bsd/ntp/dist/libntp/hextolfp.c new external/bsd/ntp/dist/libntp/humandate.c new external/bsd/ntp/dist/libntp/icom.c new external/bsd/ntp/dist/libntp/iosignal.c new external/bsd/ntp/dist/libntp/lib_strbuf.c new external/bsd/ntp/dist/libntp/machines.c new external/bsd/ntp/dist/libntp/mktime.c new external/bsd/ntp/dist/libntp/modetoa.c new external/bsd/ntp/dist/libntp/mstolfp.c new external/bsd/ntp/dist/libntp/msyslog.c new external/bsd/ntp/dist/libntp/netof.c new external/bsd/ntp/dist/libntp/ntp_calendar.c new external/bsd/ntp/dist/libntp/ntp_crypto_rnd.c new external/bsd/ntp/dist/libntp/ntp_intres.c new external/bsd/ntp/dist/libntp/ntp_libopts.c new external/bsd/ntp/dist/libntp/ntp_lineedit.c new external/bsd/ntp/dist/libntp/ntp_random.c new external/bsd/ntp/dist/libntp/ntp_rfc2553.c new external/bsd/ntp/dist/libntp/ntp_worker.c new external/bsd/ntp/dist/libntp/numtoa.c new external/bsd/ntp/dist/libntp/numtohost.c new external/bsd/ntp/dist/libntp/octtoint.c new external/bsd/ntp/dist/libntp/prettydate.c new external/bsd/ntp/dist/libntp/recvbuff.c new external/bsd/ntp/dist/libntp/refnumtoa.c new external/bsd/ntp/dist/libntp/snprintf.c new external/bsd/ntp/dist/libntp/socket.c new external/bsd/ntp/dist/libntp/socktoa.c new external/bsd/ntp/dist/libntp/socktohost.c new external/bsd/ntp/dist/libntp/ssl_init.c new external/bsd/ntp/dist/libntp/statestr.c new external/bsd/ntp/dist/libntp/strdup.c new external/bsd/ntp/dist/libntp/strl_obsd.c new external/bsd/ntp/dist/libntp/syssignal.c new external/bsd/ntp/dist/libntp/systime.c new external/bsd/ntp/dist/libntp/systime_s.c new external/bsd/ntp/dist/libntp/timetoa.c new external/bsd/ntp/dist/libntp/timevalops.c new external/bsd/ntp/dist/libntp/uglydate.c new external/bsd/ntp/dist/libntp/vint64ops.c new external/bsd/ntp/dist/libntp/work_fork.c new external/bsd/ntp/dist/libntp/work_thread.c new external/bsd/ntp/dist/libntp/ymd2yd.c new external/bsd/ntp/dist/libparse/Makefile.am new external/bsd/ntp/dist/libparse/Makefile.in new external/bsd/ntp/dist/libparse/README new external/bsd/ntp/dist/libparse/binio.c new external/bsd/ntp/dist/libparse/clk_computime.c new external/bsd/ntp/dist/libparse/clk_dcf7000.c new external/bsd/ntp/dist/libparse/clk_hopf6021.c new external/bsd/ntp/dist/libparse/clk_meinberg.c new external/bsd/ntp/dist/libparse/clk_rawdcf.c new external/bsd/ntp/dist/libparse/clk_rcc8000.c new external/bsd/ntp/dist/libparse/clk_schmid.c new external/bsd/ntp/dist/libparse/clk_sel240x.c new external/bsd/ntp/dist/libparse/clk_trimtaip.c new external/bsd/ntp/dist/libparse/clk_trimtsip.c new external/bsd/ntp/dist/libparse/clk_varitext.c new external/bsd/ntp/dist/libparse/clk_wharton.c new external/bsd/ntp/dist/libparse/data_mbg.c new external/bsd/ntp/dist/libparse/gpstolfp.c new external/bsd/ntp/dist/libparse/ieee754io.c new external/bsd/ntp/dist/libparse/info_trimble.c new external/bsd/ntp/dist/libparse/mfp_mul.c new external/bsd/ntp/dist/libparse/mkinfo_rcmd.sed new external/bsd/ntp/dist/libparse/mkinfo_scmd.sed new external/bsd/ntp/dist/libparse/parse.c new external/bsd/ntp/dist/libparse/parse_conf.c new external/bsd/ntp/dist/libparse/parsesolaris.c new external/bsd/ntp/dist/libparse/parsestreams.c new external/bsd/ntp/dist/libparse/trim_info.c new external/bsd/ntp/dist/ntpd/Makefile.am new external/bsd/ntp/dist/ntpd/Makefile.in new external/bsd/ntp/dist/ntpd/check_y2k.c new external/bsd/ntp/dist/ntpd/cmd_args.c new external/bsd/ntp/dist/ntpd/complete.conf.in new external/bsd/ntp/dist/ntpd/declcond.h new external/bsd/ntp/dist/ntpd/invoke-ntp.conf.menu new external/bsd/ntp/dist/ntpd/invoke-ntp.conf.texi new external/bsd/ntp/dist/ntpd/invoke-ntp.keys.menu new external/bsd/ntp/dist/ntpd/invoke-ntp.keys.texi new external/bsd/ntp/dist/ntpd/invoke-ntpd.menu new external/bsd/ntp/dist/ntpd/invoke-ntpd.texi new external/bsd/ntp/dist/ntpd/jupiter.h new external/bsd/ntp/dist/ntpd/keyword-gen-utd new external/bsd/ntp/dist/ntpd/keyword-gen.c new external/bsd/ntp/dist/ntpd/ntp.conf.5man new external/bsd/ntp/dist/ntpd/ntp.conf.5mdoc new external/bsd/ntp/dist/ntpd/ntp.conf.def new external/bsd/ntp/dist/ntpd/ntp.conf.html new external/bsd/ntp/dist/ntpd/ntp.conf.man.in new external/bsd/ntp/dist/ntpd/ntp.conf.mdoc.in new external/bsd/ntp/dist/ntpd/ntp.conf.texi new external/bsd/ntp/dist/ntpd/ntp.keys.5man new external/bsd/ntp/dist/ntpd/ntp.keys.5mdoc new external/bsd/ntp/dist/ntpd/ntp.keys.def new external/bsd/ntp/dist/ntpd/ntp.keys.html new external/bsd/ntp/dist/ntpd/ntp.keys.man.in new external/bsd/ntp/dist/ntpd/ntp.keys.mdoc.in new external/bsd/ntp/dist/ntpd/ntp.keys.texi new external/bsd/ntp/dist/ntpd/ntp_config.c new external/bsd/ntp/dist/ntpd/ntp_control.c new external/bsd/ntp/dist/ntpd/ntp_crypto.c new external/bsd/ntp/dist/ntpd/ntp_filegen.c new external/bsd/ntp/dist/ntpd/ntp_io.c new external/bsd/ntp/dist/ntpd/ntp_keyword.h new external/bsd/ntp/dist/ntpd/ntp_leapsec.c new external/bsd/ntp/dist/ntpd/ntp_leapsec.h new external/bsd/ntp/dist/ntpd/ntp_loopfilter.c new external/bsd/ntp/dist/ntpd/ntp_monitor.c new external/bsd/ntp/dist/ntpd/ntp_parser.c new external/bsd/ntp/dist/ntpd/ntp_parser.h new external/bsd/ntp/dist/ntpd/ntp_parser.y new external/bsd/ntp/dist/ntpd/ntp_peer.c new external/bsd/ntp/dist/ntpd/ntp_prio_q.c new external/bsd/ntp/dist/ntpd/ntp_proto.c new external/bsd/ntp/dist/ntpd/ntp_refclock.c new external/bsd/ntp/dist/ntpd/ntp_request.c new external/bsd/ntp/dist/ntpd/ntp_restrict.c new external/bsd/ntp/dist/ntpd/ntp_scanner.c new external/bsd/ntp/dist/ntpd/ntp_scanner.h new external/bsd/ntp/dist/ntpd/ntp_signd.c new external/bsd/ntp/dist/ntpd/ntp_timer.c new external/bsd/ntp/dist/ntpd/ntp_util.c new external/bsd/ntp/dist/ntpd/ntpd-opts.c new external/bsd/ntp/dist/ntpd/ntpd-opts.def new external/bsd/ntp/dist/ntpd/ntpd-opts.h new external/bsd/ntp/dist/ntpd/ntpd.1ntpdman new external/bsd/ntp/dist/ntpd/ntpd.1ntpdmdoc new external/bsd/ntp/dist/ntpd/ntpd.c new external/bsd/ntp/dist/ntpd/ntpd.html new external/bsd/ntp/dist/ntpd/ntpd.man.in new external/bsd/ntp/dist/ntpd/ntpd.mdoc.in new external/bsd/ntp/dist/ntpd/ntpd.texi new external/bsd/ntp/dist/ntpd/ntpdbase-opts.def new external/bsd/ntp/dist/ntpd/ntpsim.c new external/bsd/ntp/dist/ntpd/ppsapi_timepps.h new external/bsd/ntp/dist/ntpd/refclock_acts.c new external/bsd/ntp/dist/ntpd/refclock_arbiter.c new external/bsd/ntp/dist/ntpd/refclock_arc.c new external/bsd/ntp/dist/ntpd/refclock_as2201.c new external/bsd/ntp/dist/ntpd/refclock_atom.c new external/bsd/ntp/dist/ntpd/refclock_bancomm.c new external/bsd/ntp/dist/ntpd/refclock_chronolog.c new external/bsd/ntp/dist/ntpd/refclock_chu.c new external/bsd/ntp/dist/ntpd/refclock_conf.c new external/bsd/ntp/dist/ntpd/refclock_datum.c new external/bsd/ntp/dist/ntpd/refclock_dumbclock.c new external/bsd/ntp/dist/ntpd/refclock_fg.c new external/bsd/ntp/dist/ntpd/refclock_gpsdjson.c new external/bsd/ntp/dist/ntpd/refclock_gpsvme.c new external/bsd/ntp/dist/ntpd/refclock_heath.c new external/bsd/ntp/dist/ntpd/refclock_hopfpci.c new external/bsd/ntp/dist/ntpd/refclock_hopfser.c new external/bsd/ntp/dist/ntpd/refclock_hpgps.c new external/bsd/ntp/dist/ntpd/refclock_irig.c new external/bsd/ntp/dist/ntpd/refclock_jjy.c new external/bsd/ntp/dist/ntpd/refclock_jupiter.c new external/bsd/ntp/dist/ntpd/refclock_leitch.c new external/bsd/ntp/dist/ntpd/refclock_local.c new external/bsd/ntp/dist/ntpd/refclock_msfees.c new external/bsd/ntp/dist/ntpd/refclock_mx4200.c new external/bsd/ntp/dist/ntpd/refclock_neoclock4x.c new external/bsd/ntp/dist/ntpd/refclock_nmea.c new external/bsd/ntp/dist/ntpd/refclock_oncore.c new external/bsd/ntp/dist/ntpd/refclock_palisade.c new external/bsd/ntp/dist/ntpd/refclock_palisade.h new external/bsd/ntp/dist/ntpd/refclock_parse.c new external/bsd/ntp/dist/ntpd/refclock_pcf.c new external/bsd/ntp/dist/ntpd/refclock_pst.c new external/bsd/ntp/dist/ntpd/refclock_ripencc.c new external/bsd/ntp/dist/ntpd/refclock_shm.c new external/bsd/ntp/dist/ntpd/refclock_tpro.c new external/bsd/ntp/dist/ntpd/refclock_true.c new external/bsd/ntp/dist/ntpd/refclock_tsyncpci.c new external/bsd/ntp/dist/ntpd/refclock_tt560.c new external/bsd/ntp/dist/ntpd/refclock_ulink.c new external/bsd/ntp/dist/ntpd/refclock_wwv.c new external/bsd/ntp/dist/ntpd/refclock_wwvb.c new external/bsd/ntp/dist/ntpd/refclock_zyfer.c new external/bsd/ntp/dist/ntpdate/Makefile.am new external/bsd/ntp/dist/ntpdate/Makefile.in new external/bsd/ntp/dist/ntpdate/README new external/bsd/ntp/dist/ntpdate/ntpdate.c new external/bsd/ntp/dist/ntpdate/ntpdate.h new external/bsd/ntp/dist/ntpdc/Makefile.am new external/bsd/ntp/dist/ntpdc/Makefile.in new external/bsd/ntp/dist/ntpdc/README new external/bsd/ntp/dist/ntpdc/invoke-ntpdc.menu new external/bsd/ntp/dist/ntpdc/invoke-ntpdc.texi new external/bsd/ntp/dist/ntpdc/layout.std new external/bsd/ntp/dist/ntpdc/nl.pl new external/bsd/ntp/dist/ntpdc/nl.pl.in new external/bsd/ntp/dist/ntpdc/nl_in.c new external/bsd/ntp/dist/ntpdc/ntpdc-layout.c new external/bsd/ntp/dist/ntpdc/ntpdc-opts.c new external/bsd/ntp/dist/ntpdc/ntpdc-opts.def new external/bsd/ntp/dist/ntpdc/ntpdc-opts.h new external/bsd/ntp/dist/ntpdc/ntpdc.1ntpdcman new external/bsd/ntp/dist/ntpdc/ntpdc.1ntpdcmdoc new external/bsd/ntp/dist/ntpdc/ntpdc.c new external/bsd/ntp/dist/ntpdc/ntpdc.h new external/bsd/ntp/dist/ntpdc/ntpdc.html new external/bsd/ntp/dist/ntpdc/ntpdc.man.in new external/bsd/ntp/dist/ntpdc/ntpdc.mdoc.in new external/bsd/ntp/dist/ntpdc/ntpdc.texi new external/bsd/ntp/dist/ntpdc/ntpdc_ops.c new external/bsd/ntp/dist/ntpq/Makefile.am new external/bsd/ntp/dist/ntpq/Makefile.in new external/bsd/ntp/dist/ntpq/README new external/bsd/ntp/dist/ntpq/invoke-ntpq.menu new external/bsd/ntp/dist/ntpq/invoke-ntpq.texi new external/bsd/ntp/dist/ntpq/libntpq.c new external/bsd/ntp/dist/ntpq/libntpq.h new external/bsd/ntp/dist/ntpq/libntpq_subs.c new external/bsd/ntp/dist/ntpq/ntpq-opts.c new external/bsd/ntp/dist/ntpq/ntpq-opts.def new external/bsd/ntp/dist/ntpq/ntpq-opts.h new external/bsd/ntp/dist/ntpq/ntpq-subs.c new external/bsd/ntp/dist/ntpq/ntpq.1ntpqman new external/bsd/ntp/dist/ntpq/ntpq.1ntpqmdoc new external/bsd/ntp/dist/ntpq/ntpq.c new external/bsd/ntp/dist/ntpq/ntpq.h new external/bsd/ntp/dist/ntpq/ntpq.html new external/bsd/ntp/dist/ntpq/ntpq.man.in new external/bsd/ntp/dist/ntpq/ntpq.mdoc.in new external/bsd/ntp/dist/ntpq/ntpq.texi new external/bsd/ntp/dist/ntpsnmpd/Makefile.am new external/bsd/ntp/dist/ntpsnmpd/Makefile.in new external/bsd/ntp/dist/ntpsnmpd/README new external/bsd/ntp/dist/ntpsnmpd/invoke-ntpsnmpd.menu new external/bsd/ntp/dist/ntpsnmpd/invoke-ntpsnmpd.texi new external/bsd/ntp/dist/ntpsnmpd/netsnmp_daemonize.c new external/bsd/ntp/dist/ntpsnmpd/ntpSnmpSubagentObject.c new external/bsd/ntp/dist/ntpsnmpd/ntpSnmpSubagentObject.h new external/bsd/ntp/dist/ntpsnmpd/ntp_snmp.h new external/bsd/ntp/dist/ntpsnmpd/ntpsnmpd-opts.c new external/bsd/ntp/dist/ntpsnmpd/ntpsnmpd-opts.def new external/bsd/ntp/dist/ntpsnmpd/ntpsnmpd-opts.h new external/bsd/ntp/dist/ntpsnmpd/ntpsnmpd.1ntpsnmpdman new external/bsd/ntp/dist/ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc new external/bsd/ntp/dist/ntpsnmpd/ntpsnmpd.c new external/bsd/ntp/dist/ntpsnmpd/ntpsnmpd.html new external/bsd/ntp/dist/ntpsnmpd/ntpsnmpd.man.in new external/bsd/ntp/dist/ntpsnmpd/ntpsnmpd.mdoc.in new external/bsd/ntp/dist/ntpsnmpd/ntpsnmpd.texi new external/bsd/ntp/dist/ntpsnmpd/ntpv4-mib.mib new external/bsd/ntp/dist/parseutil/Makefile.am new external/bsd/ntp/dist/parseutil/Makefile.in new external/bsd/ntp/dist/parseutil/README new external/bsd/ntp/dist/parseutil/dcfd.c new external/bsd/ntp/dist/parseutil/testdcf.c new external/bsd/ntp/dist/scripts/Makefile.am new external/bsd/ntp/dist/scripts/Makefile.in new external/bsd/ntp/dist/scripts/README new external/bsd/ntp/dist/scripts/invoke-plot_summary.menu new external/bsd/ntp/dist/scripts/invoke-plot_summary.texi new external/bsd/ntp/dist/scripts/invoke-summary.menu new external/bsd/ntp/dist/scripts/invoke-summary.texi new external/bsd/ntp/dist/scripts/ntpver.in new external/bsd/ntp/dist/scripts/plot_summary-opts new external/bsd/ntp/dist/scripts/plot_summary-opts.def new external/bsd/ntp/dist/scripts/plot_summary.1plot_summaryman new external/bsd/ntp/dist/scripts/plot_summary.1plot_summarymdoc new external/bsd/ntp/dist/scripts/plot_summary.html new external/bsd/ntp/dist/scripts/plot_summary.in new external/bsd/ntp/dist/scripts/plot_summary.man.in new external/bsd/ntp/dist/scripts/plot_summary.mdoc.in new external/bsd/ntp/dist/scripts/plot_summary.texi new external/bsd/ntp/dist/scripts/summary-opts new external/bsd/ntp/dist/scripts/summary-opts.def new external/bsd/ntp/dist/scripts/summary.1summaryman new external/bsd/ntp/dist/scripts/summary.1summarymdoc new external/bsd/ntp/dist/scripts/summary.html new external/bsd/ntp/dist/scripts/summary.in new external/bsd/ntp/dist/scripts/summary.man.in new external/bsd/ntp/dist/scripts/summary.mdoc.in new external/bsd/ntp/dist/scripts/summary.texi new external/bsd/ntp/dist/scripts/build/Makefile.am new external/bsd/ntp/dist/scripts/build/Makefile.in new external/bsd/ntp/dist/scripts/build/UpdatePoint new external/bsd/ntp/dist/scripts/build/VersionName new external/bsd/ntp/dist/scripts/build/check--help new external/bsd/ntp/dist/scripts/build/checkChangeLog new external/bsd/ntp/dist/scripts/build/checkHtmlFileDates new external/bsd/ntp/dist/scripts/build/fixautomakedepsmagic new external/bsd/ntp/dist/scripts/build/genCommitLog new external/bsd/ntp/dist/scripts/build/genver new external/bsd/ntp/dist/scripts/build/mkver.in new external/bsd/ntp/dist/scripts/build/updateBEDate new external/bsd/ntp/dist/scripts/calc_tickadj/Makefile.am new external/bsd/ntp/dist/scripts/calc_tickadj/Makefile.in new external/bsd/ntp/dist/scripts/calc_tickadj/calc_tickadj-opts new external/bsd/ntp/dist/scripts/calc_tickadj/calc_tickadj-opts.def new external/bsd/ntp/dist/scripts/calc_tickadj/calc_tickadj.1calc_tickadjmannew external/bsd/ntp/dist/scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc new external/bsd/ntp/dist/scripts/calc_tickadj/calc_tickadj.html new external/bsd/ntp/dist/scripts/calc_tickadj/calc_tickadj.in new external/bsd/ntp/dist/scripts/calc_tickadj/calc_tickadj.man.in new external/bsd/ntp/dist/scripts/calc_tickadj/calc_tickadj.mdoc.in new external/bsd/ntp/dist/scripts/calc_tickadj/calc_tickadj.texi new external/bsd/ntp/dist/scripts/calc_tickadj/invoke-calc_tickadj.menu new external/bsd/ntp/dist/scripts/calc_tickadj/invoke-calc_tickadj.texi new external/bsd/ntp/dist/scripts/deprecated/freq_adj.in new external/bsd/ntp/dist/scripts/deprecated/hpadjtime.sh new external/bsd/ntp/dist/scripts/deprecated/html2man.in new external/bsd/ntp/dist/scripts/deprecated/ntp-close new external/bsd/ntp/dist/scripts/deprecated/ntp-groper new external/bsd/ntp/dist/scripts/deprecated/ntp-restart new external/bsd/ntp/dist/scripts/deprecated/ntp-status new external/bsd/ntp/dist/scripts/lib/Makefile.am new external/bsd/ntp/dist/scripts/lib/Makefile.in new external/bsd/ntp/dist/scripts/lib/NTP/Util.pm new external/bsd/ntp/dist/scripts/monitoring/README new external/bsd/ntp/dist/scripts/monitoring/loopwatch.config.SAMPLE new external/bsd/ntp/dist/scripts/monitoring/lr.pl new external/bsd/ntp/dist/scripts/monitoring/ntp.pl new external/bsd/ntp/dist/scripts/monitoring/ntploopstat new external/bsd/ntp/dist/scripts/monitoring/ntploopwatch new external/bsd/ntp/dist/scripts/monitoring/ntptrap new external/bsd/ntp/dist/scripts/monitoring/timelocal.pl new external/bsd/ntp/dist/scripts/ntp-wait/Makefile.am new external/bsd/ntp/dist/scripts/ntp-wait/Makefile.in new external/bsd/ntp/dist/scripts/ntp-wait/invoke-ntp-wait.menu new external/bsd/ntp/dist/scripts/ntp-wait/invoke-ntp-wait.texi new external/bsd/ntp/dist/scripts/ntp-wait/ntp-wait-opts new external/bsd/ntp/dist/scripts/ntp-wait/ntp-wait-opts.def new external/bsd/ntp/dist/scripts/ntp-wait/ntp-wait.1ntp-waitman new external/bsd/ntp/dist/scripts/ntp-wait/ntp-wait.1ntp-waitmdoc new external/bsd/ntp/dist/scripts/ntp-wait/ntp-wait.html new external/bsd/ntp/dist/scripts/ntp-wait/ntp-wait.in new external/bsd/ntp/dist/scripts/ntp-wait/ntp-wait.man.in new external/bsd/ntp/dist/scripts/ntp-wait/ntp-wait.mdoc.in new external/bsd/ntp/dist/scripts/ntp-wait/ntp-wait.texi new external/bsd/ntp/dist/scripts/ntpsweep/Makefile.am new external/bsd/ntp/dist/scripts/ntpsweep/Makefile.in new external/bsd/ntp/dist/scripts/ntpsweep/invoke-ntpsweep.menu new external/bsd/ntp/dist/scripts/ntpsweep/invoke-ntpsweep.texi new external/bsd/ntp/dist/scripts/ntpsweep/ntpsweep-opts new external/bsd/ntp/dist/scripts/ntpsweep/ntpsweep-opts.def new external/bsd/ntp/dist/scripts/ntpsweep/ntpsweep.1ntpsweepman new external/bsd/ntp/dist/scripts/ntpsweep/ntpsweep.1ntpsweepmdoc new external/bsd/ntp/dist/scripts/ntpsweep/ntpsweep.html new external/bsd/ntp/dist/scripts/ntpsweep/ntpsweep.in new external/bsd/ntp/dist/scripts/ntpsweep/ntpsweep.man.in new external/bsd/ntp/dist/scripts/ntpsweep/ntpsweep.mdoc.in new external/bsd/ntp/dist/scripts/ntpsweep/ntpsweep.texi new external/bsd/ntp/dist/scripts/ntptrace/Makefile.am new external/bsd/ntp/dist/scripts/ntptrace/Makefile.in new external/bsd/ntp/dist/scripts/ntptrace/invoke-ntptrace.menu new external/bsd/ntp/dist/scripts/ntptrace/invoke-ntptrace.texi new external/bsd/ntp/dist/scripts/ntptrace/ntptrace-opts new external/bsd/ntp/dist/scripts/ntptrace/ntptrace-opts.def new external/bsd/ntp/dist/scripts/ntptrace/ntptrace.1ntptraceman new external/bsd/ntp/dist/scripts/ntptrace/ntptrace.1ntptracemdoc new external/bsd/ntp/dist/scripts/ntptrace/ntptrace.html new external/bsd/ntp/dist/scripts/ntptrace/ntptrace.in new external/bsd/ntp/dist/scripts/ntptrace/ntptrace.man.in new external/bsd/ntp/dist/scripts/ntptrace/ntptrace.mdoc.in new external/bsd/ntp/dist/scripts/ntptrace/ntptrace.texi new external/bsd/ntp/dist/scripts/rc/README new external/bsd/ntp/dist/scripts/rc/ntpd new external/bsd/ntp/dist/scripts/rc/ntpwait new external/bsd/ntp/dist/scripts/rc/rc.d/TIMESYNC new external/bsd/ntp/dist/scripts/rc/rc.d/ntpd new external/bsd/ntp/dist/scripts/rc/rc.d/ntpwait new external/bsd/ntp/dist/scripts/stats/README new external/bsd/ntp/dist/scripts/stats/README.stats new external/bsd/ntp/dist/scripts/stats/README.timecodes new external/bsd/ntp/dist/scripts/stats/clock.awk new external/bsd/ntp/dist/scripts/stats/dupe.awk new external/bsd/ntp/dist/scripts/stats/ensemble.S new external/bsd/ntp/dist/scripts/stats/ensemble.awk new external/bsd/ntp/dist/scripts/stats/etf.S new external/bsd/ntp/dist/scripts/stats/etf.awk new external/bsd/ntp/dist/scripts/stats/itf.S new external/bsd/ntp/dist/scripts/stats/itf.awk new external/bsd/ntp/dist/scripts/stats/loop.S new external/bsd/ntp/dist/scripts/stats/loop.awk new external/bsd/ntp/dist/scripts/stats/loop_summary new external/bsd/ntp/dist/scripts/stats/peer.awk new external/bsd/ntp/dist/scripts/stats/psummary.awk new external/bsd/ntp/dist/scripts/stats/summary.sh new external/bsd/ntp/dist/scripts/stats/tdata.S new external/bsd/ntp/dist/scripts/stats/tdata.awk new external/bsd/ntp/dist/sntp/COPYRIGHT new external/bsd/ntp/dist/sntp/Makefile.am new external/bsd/ntp/dist/sntp/Makefile.in new external/bsd/ntp/dist/sntp/aclocal.m4 new external/bsd/ntp/dist/sntp/bincheck.mf new external/bsd/ntp/dist/sntp/check-libntp.mf new external/bsd/ntp/dist/sntp/check-libopts.mf new external/bsd/ntp/dist/sntp/config.h.in new external/bsd/ntp/dist/sntp/configure new external/bsd/ntp/dist/sntp/configure.ac new external/bsd/ntp/dist/sntp/crypto.c new external/bsd/ntp/dist/sntp/crypto.h new external/bsd/ntp/dist/sntp/data_formats.h new external/bsd/ntp/dist/sntp/deps-ver new external/bsd/ntp/dist/sntp/depsver.mf new external/bsd/ntp/dist/sntp/evlog.c new external/bsd/ntp/dist/sntp/includes.mf new external/bsd/ntp/dist/sntp/install-sh new external/bsd/ntp/dist/sntp/invoke-sntp.menu new external/bsd/ntp/dist/sntp/invoke-sntp.texi new external/bsd/ntp/dist/sntp/kod_management.c new external/bsd/ntp/dist/sntp/kod_management.h new external/bsd/ntp/dist/sntp/log.c new external/bsd/ntp/dist/sntp/log.h new external/bsd/ntp/dist/sntp/main.c new external/bsd/ntp/dist/sntp/main.h new external/bsd/ntp/dist/sntp/networking.c new external/bsd/ntp/dist/sntp/networking.h new external/bsd/ntp/dist/sntp/scm-rev new external/bsd/ntp/dist/sntp/sntp-opts.c new external/bsd/ntp/dist/sntp/sntp-opts.def new external/bsd/ntp/dist/sntp/sntp-opts.h new external/bsd/ntp/dist/sntp/sntp.1sntpman new external/bsd/ntp/dist/sntp/sntp.1sntpmdoc new external/bsd/ntp/dist/sntp/sntp.c new external/bsd/ntp/dist/sntp/sntp.html new external/bsd/ntp/dist/sntp/sntp.man.in new external/bsd/ntp/dist/sntp/sntp.mdoc.in new external/bsd/ntp/dist/sntp/sntp.texi new external/bsd/ntp/dist/sntp/tests_main.cpp new external/bsd/ntp/dist/sntp/tests_main.h new external/bsd/ntp/dist/sntp/utilities.c new external/bsd/ntp/dist/sntp/utilities.h new external/bsd/ntp/dist/sntp/ag-tpl/0-old/Mdoc.pm new external/bsd/ntp/dist/sntp/ag-tpl/0-old/agman-cmd.tpl new external/bsd/ntp/dist/sntp/ag-tpl/0-old/agmdoc-cmd.tpl new external/bsd/ntp/dist/sntp/ag-tpl/0-old/cmd-doc.tlib new external/bsd/ntp/dist/sntp/ag-tpl/0-old/mdoc-synopsis.tlib new external/bsd/ntp/dist/sntp/ag-tpl/0-old/mdoc2man new external/bsd/ntp/dist/sntp/ag-tpl/0-old/mdoc2texi new external/bsd/ntp/dist/sntp/ag-tpl/0-old/perlopt.tpl new external/bsd/ntp/dist/sntp/event2/event-config.h new external/bsd/ntp/dist/sntp/include/Makefile.am new external/bsd/ntp/dist/sntp/include/Makefile.in new external/bsd/ntp/dist/sntp/include/autogen-version.def new external/bsd/ntp/dist/sntp/include/copyright.def new external/bsd/ntp/dist/sntp/include/debug-opt.def new external/bsd/ntp/dist/sntp/include/homerc.def new external/bsd/ntp/dist/sntp/include/ntp.lic new external/bsd/ntp/dist/sntp/include/version.def new external/bsd/ntp/dist/sntp/include/version.texi new external/bsd/ntp/dist/sntp/libevent/ChangeLog new external/bsd/ntp/dist/sntp/libevent/ChangeLog-1.4 new external/bsd/ntp/dist/sntp/libevent/ChangeLog-2.0 new external/bsd/ntp/dist/sntp/libevent/Doxyfile new external/bsd/ntp/dist/sntp/libevent/LICENSE new external/bsd/ntp/dist/sntp/libevent/Makefile.am new external/bsd/ntp/dist/sntp/libevent/Makefile.in new external/bsd/ntp/dist/sntp/libevent/Makefile.nmake new external/bsd/ntp/dist/sntp/libevent/README new external/bsd/ntp/dist/sntp/libevent/aclocal.m4 new external/bsd/ntp/dist/sntp/libevent/arc4random.c new external/bsd/ntp/dist/sntp/libevent/autogen.sh new external/bsd/ntp/dist/sntp/libevent/buffer.c new external/bsd/ntp/dist/sntp/libevent/buffer_iocp.c new external/bsd/ntp/dist/sntp/libevent/bufferevent-internal.h new external/bsd/ntp/dist/sntp/libevent/bufferevent.c new external/bsd/ntp/dist/sntp/libevent/bufferevent_async.c new external/bsd/ntp/dist/sntp/libevent/bufferevent_filter.c new external/bsd/ntp/dist/sntp/libevent/bufferevent_openssl.c new external/bsd/ntp/dist/sntp/libevent/bufferevent_pair.c new external/bsd/ntp/dist/sntp/libevent/bufferevent_ratelim.c new external/bsd/ntp/dist/sntp/libevent/bufferevent_sock.c new external/bsd/ntp/dist/sntp/libevent/changelist-internal.h new external/bsd/ntp/dist/sntp/libevent/config.h.in new external/bsd/ntp/dist/sntp/libevent/configure new external/bsd/ntp/dist/sntp/libevent/configure.ac new external/bsd/ntp/dist/sntp/libevent/defer-internal.h new external/bsd/ntp/dist/sntp/libevent/devpoll.c new external/bsd/ntp/dist/sntp/libevent/epoll.c new external/bsd/ntp/dist/sntp/libevent/epoll_sub.c new external/bsd/ntp/dist/sntp/libevent/epolltable-internal.h new external/bsd/ntp/dist/sntp/libevent/evbuffer-internal.h new external/bsd/ntp/dist/sntp/libevent/evconfig-private.h new external/bsd/ntp/dist/sntp/libevent/evconfig-private.h.in new external/bsd/ntp/dist/sntp/libevent/evdns.c new external/bsd/ntp/dist/sntp/libevent/event-internal.h new external/bsd/ntp/dist/sntp/libevent/event.c new external/bsd/ntp/dist/sntp/libevent/event_iocp.c new external/bsd/ntp/dist/sntp/libevent/event_rpcgen.py new external/bsd/ntp/dist/sntp/libevent/event_tagging.c new external/bsd/ntp/dist/sntp/libevent/evmap-internal.h new external/bsd/ntp/dist/sntp/libevent/evmap.c new external/bsd/ntp/dist/sntp/libevent/evport.c new external/bsd/ntp/dist/sntp/libevent/evrpc-internal.h new external/bsd/ntp/dist/sntp/libevent/evrpc.c new external/bsd/ntp/dist/sntp/libevent/evsignal-internal.h new external/bsd/ntp/dist/sntp/libevent/evthread-internal.h new external/bsd/ntp/dist/sntp/libevent/evthread.c new external/bsd/ntp/dist/sntp/libevent/evthread_pthread.c new external/bsd/ntp/dist/sntp/libevent/evthread_win32.c new external/bsd/ntp/dist/sntp/libevent/evutil.c new external/bsd/ntp/dist/sntp/libevent/evutil_rand.c new external/bsd/ntp/dist/sntp/libevent/evutil_time.c new external/bsd/ntp/dist/sntp/libevent/ht-internal.h new external/bsd/ntp/dist/sntp/libevent/http-internal.h new external/bsd/ntp/dist/sntp/libevent/http.c new external/bsd/ntp/dist/sntp/libevent/iocp-internal.h new external/bsd/ntp/dist/sntp/libevent/ipv6-internal.h new external/bsd/ntp/dist/sntp/libevent/kqueue-internal.h new external/bsd/ntp/dist/sntp/libevent/kqueue.c new external/bsd/ntp/dist/sntp/libevent/libevent.pc.in new external/bsd/ntp/dist/sntp/libevent/libevent_openssl.pc.in new external/bsd/ntp/dist/sntp/libevent/libevent_pthreads.pc.in new external/bsd/ntp/dist/sntp/libevent/listener.c new external/bsd/ntp/dist/sntp/libevent/log-internal.h new external/bsd/ntp/dist/sntp/libevent/log.c new external/bsd/ntp/dist/sntp/libevent/make-event-config.sed new external/bsd/ntp/dist/sntp/libevent/minheap-internal.h new external/bsd/ntp/dist/sntp/libevent/mm-internal.h new external/bsd/ntp/dist/sntp/libevent/poll.c new external/bsd/ntp/dist/sntp/libevent/ratelim-internal.h new external/bsd/ntp/dist/sntp/libevent/select.c new external/bsd/ntp/dist/sntp/libevent/signal.c new external/bsd/ntp/dist/sntp/libevent/strlcpy-internal.h new external/bsd/ntp/dist/sntp/libevent/strlcpy.c new external/bsd/ntp/dist/sntp/libevent/time-internal.h new external/bsd/ntp/dist/sntp/libevent/util-internal.h new external/bsd/ntp/dist/sntp/libevent/whatsnew-2.0.txt new external/bsd/ntp/dist/sntp/libevent/whatsnew-2.1.txt new external/bsd/ntp/dist/sntp/libevent/win32select.c new external/bsd/ntp/dist/sntp/libevent/WIN32-Code/tree.h new external/bsd/ntp/dist/sntp/libevent/WIN32-Code/nmake/evconfig-private.h new external/bsd/ntp/dist/sntp/libevent/WIN32-Code/nmake/event2/event-config.h new external/bsd/ntp/dist/sntp/libevent/build-aux/compile new external/bsd/ntp/dist/sntp/libevent/build-aux/config.guess new external/bsd/ntp/dist/sntp/libevent/build-aux/config.sub new external/bsd/ntp/dist/sntp/libevent/build-aux/depcomp new external/bsd/ntp/dist/sntp/libevent/build-aux/install-sh new external/bsd/ntp/dist/sntp/libevent/build-aux/ltmain.sh new external/bsd/ntp/dist/sntp/libevent/build-aux/missing new external/bsd/ntp/dist/sntp/libevent/build-aux/ylwrap new external/bsd/ntp/dist/sntp/libevent/compat/sys/queue.h new external/bsd/ntp/dist/sntp/libevent/include/evdns.h new external/bsd/ntp/dist/sntp/libevent/include/event.h new external/bsd/ntp/dist/sntp/libevent/include/evhttp.h new external/bsd/ntp/dist/sntp/libevent/include/evrpc.h new external/bsd/ntp/dist/sntp/libevent/include/evutil.h new external/bsd/ntp/dist/sntp/libevent/include/include.am new external/bsd/ntp/dist/sntp/libevent/include/event2/buffer.h new external/bsd/ntp/dist/sntp/libevent/include/event2/buffer_compat.h new external/bsd/ntp/dist/sntp/libevent/include/event2/bufferevent.h new external/bsd/ntp/dist/sntp/libevent/include/event2/bufferevent_compat.h new external/bsd/ntp/dist/sntp/libevent/include/event2/bufferevent_ssl.h new external/bsd/ntp/dist/sntp/libevent/include/event2/bufferevent_struct.h new external/bsd/ntp/dist/sntp/libevent/include/event2/dns.h new external/bsd/ntp/dist/sntp/libevent/include/event2/dns_compat.h new external/bsd/ntp/dist/sntp/libevent/include/event2/dns_struct.h new external/bsd/ntp/dist/sntp/libevent/include/event2/event.h new external/bsd/ntp/dist/sntp/libevent/include/event2/event_compat.h new external/bsd/ntp/dist/sntp/libevent/include/event2/event_struct.h new external/bsd/ntp/dist/sntp/libevent/include/event2/http.h new external/bsd/ntp/dist/sntp/libevent/include/event2/http_compat.h new external/bsd/ntp/dist/sntp/libevent/include/event2/http_struct.h new external/bsd/ntp/dist/sntp/libevent/include/event2/keyvalq_struct.h new external/bsd/ntp/dist/sntp/libevent/include/event2/listener.h new external/bsd/ntp/dist/sntp/libevent/include/event2/rpc.h new external/bsd/ntp/dist/sntp/libevent/include/event2/rpc_compat.h new external/bsd/ntp/dist/sntp/libevent/include/event2/rpc_struct.h new external/bsd/ntp/dist/sntp/libevent/include/event2/tag.h new external/bsd/ntp/dist/sntp/libevent/include/event2/tag_compat.h new external/bsd/ntp/dist/sntp/libevent/include/event2/thread.h new external/bsd/ntp/dist/sntp/libevent/include/event2/util.h new external/bsd/ntp/dist/sntp/libevent/include/event2/visibility.h new external/bsd/ntp/dist/sntp/libevent/m4/ac_backport_259_ssizet.m4 new external/bsd/ntp/dist/sntp/libevent/m4/libevent_openssl.m4 new external/bsd/ntp/dist/sntp/libevent/m4/libtool.m4 new external/bsd/ntp/dist/sntp/libevent/m4/ltoptions.m4 new external/bsd/ntp/dist/sntp/libevent/m4/ltsugar.m4 new external/bsd/ntp/dist/sntp/libevent/m4/ltversion.m4 new external/bsd/ntp/dist/sntp/libevent/m4/lt~obsolete.m4 new external/bsd/ntp/dist/sntp/libevent/m4/ntp_pkg_config.m4 new external/bsd/ntp/dist/sntp/libevent/m4/openldap-thread-check.m4 new external/bsd/ntp/dist/sntp/libevent/m4/openldap.m4 new external/bsd/ntp/dist/sntp/libevent/sample/dns-example.c new external/bsd/ntp/dist/sntp/libevent/sample/event-read-fifo.c new external/bsd/ntp/dist/sntp/libevent/sample/hello-world.c new external/bsd/ntp/dist/sntp/libevent/sample/hostcheck.c new external/bsd/ntp/dist/sntp/libevent/sample/hostcheck.h new external/bsd/ntp/dist/sntp/libevent/sample/http-server.c new external/bsd/ntp/dist/sntp/libevent/sample/https-client.c new external/bsd/ntp/dist/sntp/libevent/sample/include.am new external/bsd/ntp/dist/sntp/libevent/sample/le-proxy.c new external/bsd/ntp/dist/sntp/libevent/sample/openssl_hostname_validation.c new external/bsd/ntp/dist/sntp/libevent/sample/openssl_hostname_validation.h new external/bsd/ntp/dist/sntp/libevent/sample/signal-test.c new external/bsd/ntp/dist/sntp/libevent/sample/time-test.c new external/bsd/ntp/dist/sntp/libevent/test/Makefile.nmake new external/bsd/ntp/dist/sntp/libevent/test/bench.c new external/bsd/ntp/dist/sntp/libevent/test/bench_cascade.c new external/bsd/ntp/dist/sntp/libevent/test/bench_http.c new external/bsd/ntp/dist/sntp/libevent/test/bench_httpclient.c new external/bsd/ntp/dist/sntp/libevent/test/check-dumpevents.py new external/bsd/ntp/dist/sntp/libevent/test/include.am new external/bsd/ntp/dist/sntp/libevent/test/regress.c new external/bsd/ntp/dist/sntp/libevent/test/regress.gen.c new external/bsd/ntp/dist/sntp/libevent/test/regress.gen.h new external/bsd/ntp/dist/sntp/libevent/test/regress.h new external/bsd/ntp/dist/sntp/libevent/test/regress.rpc new external/bsd/ntp/dist/sntp/libevent/test/regress_buffer.c new external/bsd/ntp/dist/sntp/libevent/test/regress_bufferevent.c new external/bsd/ntp/dist/sntp/libevent/test/regress_dns.c new external/bsd/ntp/dist/sntp/libevent/test/regress_et.c new external/bsd/ntp/dist/sntp/libevent/test/regress_finalize.c new external/bsd/ntp/dist/sntp/libevent/test/regress_http.c new external/bsd/ntp/dist/sntp/libevent/test/regress_iocp.c new external/bsd/ntp/dist/sntp/libevent/test/regress_listener.c new external/bsd/ntp/dist/sntp/libevent/test/regress_main.c new external/bsd/ntp/dist/sntp/libevent/test/regress_minheap.c new external/bsd/ntp/dist/sntp/libevent/test/regress_rpc.c new external/bsd/ntp/dist/sntp/libevent/test/regress_ssl.c new external/bsd/ntp/dist/sntp/libevent/test/regress_testutils.c new external/bsd/ntp/dist/sntp/libevent/test/regress_testutils.h new external/bsd/ntp/dist/sntp/libevent/test/regress_thread.c new external/bsd/ntp/dist/sntp/libevent/test/regress_thread.h new external/bsd/ntp/dist/sntp/libevent/test/regress_util.c new external/bsd/ntp/dist/sntp/libevent/test/regress_zlib.c new external/bsd/ntp/dist/sntp/libevent/test/rpcgen_wrapper.sh new external/bsd/ntp/dist/sntp/libevent/test/test-changelist.c new external/bsd/ntp/dist/sntp/libevent/test/test-closed.c new external/bsd/ntp/dist/sntp/libevent/test/test-dumpevents.c new external/bsd/ntp/dist/sntp/libevent/test/test-eof.c new external/bsd/ntp/dist/sntp/libevent/test/test-fdleak.c new external/bsd/ntp/dist/sntp/libevent/test/test-init.c new external/bsd/ntp/dist/sntp/libevent/test/test-ratelim.c new external/bsd/ntp/dist/sntp/libevent/test/test-time.c new external/bsd/ntp/dist/sntp/libevent/test/test-weof.c new external/bsd/ntp/dist/sntp/libevent/test/test.sh new external/bsd/ntp/dist/sntp/libevent/test/tinytest.c new external/bsd/ntp/dist/sntp/libevent/test/tinytest.h new external/bsd/ntp/dist/sntp/libevent/test/tinytest_local.h new external/bsd/ntp/dist/sntp/libevent/test/tinytest_macros.h new external/bsd/ntp/dist/sntp/libopts/COPYING.gplv3 new external/bsd/ntp/dist/sntp/libopts/COPYING.lgplv3 new external/bsd/ntp/dist/sntp/libopts/COPYING.mbsd new external/bsd/ntp/dist/sntp/libopts/MakeDefs.inc new external/bsd/ntp/dist/sntp/libopts/Makefile.am new external/bsd/ntp/dist/sntp/libopts/Makefile.in new external/bsd/ntp/dist/sntp/libopts/README new external/bsd/ntp/dist/sntp/libopts/ag-char-map.h new external/bsd/ntp/dist/sntp/libopts/alias.c new external/bsd/ntp/dist/sntp/libopts/ao-strs.c new external/bsd/ntp/dist/sntp/libopts/ao-strs.h new external/bsd/ntp/dist/sntp/libopts/autoopts.c new external/bsd/ntp/dist/sntp/libopts/autoopts.h new external/bsd/ntp/dist/sntp/libopts/boolean.c new external/bsd/ntp/dist/sntp/libopts/check.c new external/bsd/ntp/dist/sntp/libopts/configfile.c new external/bsd/ntp/dist/sntp/libopts/cook.c new external/bsd/ntp/dist/sntp/libopts/enum.c new external/bsd/ntp/dist/sntp/libopts/env.c new external/bsd/ntp/dist/sntp/libopts/file.c new external/bsd/ntp/dist/sntp/libopts/find.c new external/bsd/ntp/dist/sntp/libopts/genshell.c new external/bsd/ntp/dist/sntp/libopts/genshell.h new external/bsd/ntp/dist/sntp/libopts/gettext.h new external/bsd/ntp/dist/sntp/libopts/init.c new external/bsd/ntp/dist/sntp/libopts/intprops.h new external/bsd/ntp/dist/sntp/libopts/libopts.c new external/bsd/ntp/dist/sntp/libopts/load.c new external/bsd/ntp/dist/sntp/libopts/makeshell.c new external/bsd/ntp/dist/sntp/libopts/nested.c new external/bsd/ntp/dist/sntp/libopts/numeric.c new external/bsd/ntp/dist/sntp/libopts/option-value-type.c new external/bsd/ntp/dist/sntp/libopts/option-value-type.h new external/bsd/ntp/dist/sntp/libopts/option-xat-attribute.c new external/bsd/ntp/dist/sntp/libopts/option-xat-attribute.h new external/bsd/ntp/dist/sntp/libopts/parse-duration.c new external/bsd/ntp/dist/sntp/libopts/parse-duration.h new external/bsd/ntp/dist/sntp/libopts/pgusage.c new external/bsd/ntp/dist/sntp/libopts/proto.h new external/bsd/ntp/dist/sntp/libopts/putshell.c new external/bsd/ntp/dist/sntp/libopts/reset.c new external/bsd/ntp/dist/sntp/libopts/restore.c new external/bsd/ntp/dist/sntp/libopts/save.c new external/bsd/ntp/dist/sntp/libopts/sort.c new external/bsd/ntp/dist/sntp/libopts/stack.c new external/bsd/ntp/dist/sntp/libopts/stdnoreturn.in.h new external/bsd/ntp/dist/sntp/libopts/streqvcmp.c new external/bsd/ntp/dist/sntp/libopts/text_mmap.c new external/bsd/ntp/dist/sntp/libopts/time.c new external/bsd/ntp/dist/sntp/libopts/tokenize.c new external/bsd/ntp/dist/sntp/libopts/usage.c new external/bsd/ntp/dist/sntp/libopts/version.c new external/bsd/ntp/dist/sntp/libopts/autoopts/options.h new external/bsd/ntp/dist/sntp/libopts/autoopts/project.h new external/bsd/ntp/dist/sntp/libopts/autoopts/usage-txt.h new external/bsd/ntp/dist/sntp/libopts/compat/_Noreturn.h new external/bsd/ntp/dist/sntp/libopts/compat/compat.h new external/bsd/ntp/dist/sntp/libopts/compat/pathfind.c new external/bsd/ntp/dist/sntp/libopts/compat/snprintf.c new external/bsd/ntp/dist/sntp/libopts/compat/strchr.c new external/bsd/ntp/dist/sntp/libopts/compat/strdup.c new external/bsd/ntp/dist/sntp/libopts/compat/windows-config.h new external/bsd/ntp/dist/sntp/libopts/m4/libopts.m4 new external/bsd/ntp/dist/sntp/libopts/m4/liboptschk.m4 new external/bsd/ntp/dist/sntp/libopts/m4/stdnoreturn.m4 new external/bsd/ntp/dist/sntp/loc/README new external/bsd/ntp/dist/sntp/loc/darwin new external/bsd/ntp/dist/sntp/loc/debian new external/bsd/ntp/dist/sntp/loc/freebsd new external/bsd/ntp/dist/sntp/loc/legacy new external/bsd/ntp/dist/sntp/loc/netbsd new external/bsd/ntp/dist/sntp/loc/redhat new external/bsd/ntp/dist/sntp/loc/solaris new external/bsd/ntp/dist/sntp/m4/define_dir.m4 new external/bsd/ntp/dist/sntp/m4/hms_search_lib.m4 new external/bsd/ntp/dist/sntp/m4/libtool.m4 new external/bsd/ntp/dist/sntp/m4/ltoptions.m4 new external/bsd/ntp/dist/sntp/m4/ltsugar.m4 new external/bsd/ntp/dist/sntp/m4/ltversion.m4 new external/bsd/ntp/dist/sntp/m4/lt~obsolete.m4 new external/bsd/ntp/dist/sntp/m4/ntp_cacheversion.m4 new external/bsd/ntp/dist/sntp/m4/ntp_compiler.m4 new external/bsd/ntp/dist/sntp/m4/ntp_crosscompile.m4 new external/bsd/ntp/dist/sntp/m4/ntp_crypto_rand.m4 new external/bsd/ntp/dist/sntp/m4/ntp_debug.m4 new external/bsd/ntp/dist/sntp/m4/ntp_dir_sep.m4 new external/bsd/ntp/dist/sntp/m4/ntp_facilitynames.m4 new external/bsd/ntp/dist/sntp/m4/ntp_googletest.m4 new external/bsd/ntp/dist/sntp/m4/ntp_ipv6.m4 new external/bsd/ntp/dist/sntp/m4/ntp_lib_m.m4 new external/bsd/ntp/dist/sntp/m4/ntp_libevent.m4 new external/bsd/ntp/dist/sntp/m4/ntp_libntp.m4 new external/bsd/ntp/dist/sntp/m4/ntp_lineeditlibs.m4 new external/bsd/ntp/dist/sntp/m4/ntp_locinfo.m4 new external/bsd/ntp/dist/sntp/m4/ntp_openssl.m4 new external/bsd/ntp/dist/sntp/m4/ntp_pkg_config.m4 new external/bsd/ntp/dist/sntp/m4/ntp_prog_cc.m4 new external/bsd/ntp/dist/sntp/m4/ntp_rlimit.m4 new external/bsd/ntp/dist/sntp/m4/ntp_sntp.m4 new external/bsd/ntp/dist/sntp/m4/ntp_sysexits.m4 new external/bsd/ntp/dist/sntp/m4/ntp_ver_suffix.m4 new external/bsd/ntp/dist/sntp/m4/ntp_vpathhack.m4 new external/bsd/ntp/dist/sntp/m4/os_cflags.m4 new external/bsd/ntp/dist/sntp/m4/snprintf.m4 new external/bsd/ntp/dist/sntp/m4/version.m4 new external/bsd/ntp/dist/sntp/scripts/Makefile.am new external/bsd/ntp/dist/sntp/scripts/Makefile.in new external/bsd/ntp/dist/sntp/scripts/cvo.sh new external/bsd/ntp/dist/sntp/scripts/genLocInfo new external/bsd/ntp/dist/sntp/scripts/mansec2subst.sed new external/bsd/ntp/dist/sntp/tests/Makefile.am new external/bsd/ntp/dist/sntp/tests/Makefile.in new external/bsd/ntp/dist/sntp/tests/crypto.cpp new external/bsd/ntp/dist/sntp/tests/fileHandlingTest.h new external/bsd/ntp/dist/sntp/tests/keyFile.cpp new external/bsd/ntp/dist/sntp/tests/kodDatabase.cpp new external/bsd/ntp/dist/sntp/tests/kodFile.cpp new external/bsd/ntp/dist/sntp/tests/networking.cpp new external/bsd/ntp/dist/sntp/tests/packetHandling.cpp new external/bsd/ntp/dist/sntp/tests/packetProcessing.cpp new external/bsd/ntp/dist/sntp/tests/sntptest.h new external/bsd/ntp/dist/sntp/tests/tests-runner new external/bsd/ntp/dist/sntp/tests/utilities.cpp new external/bsd/ntp/dist/sntp/tests/data/debug-input-lfp-bin new external/bsd/ntp/dist/sntp/tests/data/debug-input-lfp-dec new external/bsd/ntp/dist/sntp/tests/data/debug-input-pkt new external/bsd/ntp/dist/sntp/tests/data/key-test-ascii new external/bsd/ntp/dist/sntp/tests/data/key-test-comments new external/bsd/ntp/dist/sntp/tests/data/key-test-empty new external/bsd/ntp/dist/sntp/tests/data/key-test-hex new external/bsd/ntp/dist/sntp/tests/data/key-test-invalid-hex new external/bsd/ntp/dist/sntp/tests/data/kod-expected-multiple new external/bsd/ntp/dist/sntp/tests/data/kod-expected-single new external/bsd/ntp/dist/sntp/tests/data/kod-test-blanks new external/bsd/ntp/dist/sntp/tests/data/kod-test-correct new external/bsd/ntp/dist/sntp/tests/data/kod-test-empty new external/bsd/ntp/dist/tests/Makefile.am new external/bsd/ntp/dist/tests/Makefile.in new external/bsd/ntp/dist/tests/libntp/Makefile.am new external/bsd/ntp/dist/tests/libntp/Makefile.in new external/bsd/ntp/dist/tests/libntp/a_md5encrypt.cpp new external/bsd/ntp/dist/tests/libntp/atoint.cpp new external/bsd/ntp/dist/tests/libntp/atouint.cpp new external/bsd/ntp/dist/tests/libntp/authkeys.cpp new external/bsd/ntp/dist/tests/libntp/buftvtots.cpp new external/bsd/ntp/dist/tests/libntp/calendar.cpp new external/bsd/ntp/dist/tests/libntp/caljulian.cpp new external/bsd/ntp/dist/tests/libntp/caltontp.cpp new external/bsd/ntp/dist/tests/libntp/calyearstart.cpp new external/bsd/ntp/dist/tests/libntp/clocktime.cpp new external/bsd/ntp/dist/tests/libntp/decodenetnum.cpp new external/bsd/ntp/dist/tests/libntp/hextoint.cpp new external/bsd/ntp/dist/tests/libntp/hextolfp.cpp new external/bsd/ntp/dist/tests/libntp/humandate.cpp new external/bsd/ntp/dist/tests/libntp/lfpfunc.cpp new external/bsd/ntp/dist/tests/libntp/lfptest.h new external/bsd/ntp/dist/tests/libntp/lfptostr.cpp new external/bsd/ntp/dist/tests/libntp/libntptest.cpp new external/bsd/ntp/dist/tests/libntp/libntptest.h new external/bsd/ntp/dist/tests/libntp/modetoa.cpp new external/bsd/ntp/dist/tests/libntp/msyslog.cpp new external/bsd/ntp/dist/tests/libntp/netof.cpp new external/bsd/ntp/dist/tests/libntp/numtoa.cpp new external/bsd/ntp/dist/tests/libntp/numtohost.cpp new external/bsd/ntp/dist/tests/libntp/octtoint.cpp new external/bsd/ntp/dist/tests/libntp/prettydate.cpp new external/bsd/ntp/dist/tests/libntp/recvbuff.cpp new external/bsd/ntp/dist/tests/libntp/refnumtoa.cpp new external/bsd/ntp/dist/tests/libntp/sfptostr.cpp new external/bsd/ntp/dist/tests/libntp/sockaddrtest.h new external/bsd/ntp/dist/tests/libntp/socktoa.cpp new external/bsd/ntp/dist/tests/libntp/ssl_init.cpp new external/bsd/ntp/dist/tests/libntp/statestr.cpp new external/bsd/ntp/dist/tests/libntp/strtolfp.cpp new external/bsd/ntp/dist/tests/libntp/timespecops.cpp new external/bsd/ntp/dist/tests/libntp/timestructs.cpp new external/bsd/ntp/dist/tests/libntp/timestructs.h new external/bsd/ntp/dist/tests/libntp/timevalops.cpp new external/bsd/ntp/dist/tests/libntp/tstotv.cpp new external/bsd/ntp/dist/tests/libntp/tvtots.cpp new external/bsd/ntp/dist/tests/libntp/uglydate.cpp new external/bsd/ntp/dist/tests/libntp/vi64ops.cpp new external/bsd/ntp/dist/tests/libntp/ymd2yd.cpp new external/bsd/ntp/dist/tests/ntpd/Makefile.am new external/bsd/ntp/dist/tests/ntpd/Makefile.in new external/bsd/ntp/dist/tests/ntpd/leapsec.cpp new external/bsd/ntp/dist/tests/ntpd/ntpdtest.cpp new external/bsd/ntp/dist/tests/ntpd/ntpdtest.h new external/bsd/ntp/dist/util/Makefile.am new external/bsd/ntp/dist/util/Makefile.in new external/bsd/ntp/dist/util/README new external/bsd/ntp/dist/util/audio-pcm.c new external/bsd/ntp/dist/util/byteorder.c new external/bsd/ntp/dist/util/hist.c new external/bsd/ntp/dist/util/invoke-ntp-keygen.menu new external/bsd/ntp/dist/util/invoke-ntp-keygen.texi new external/bsd/ntp/dist/util/jitter.c new external/bsd/ntp/dist/util/jitter.h new external/bsd/ntp/dist/util/kern.c new external/bsd/ntp/dist/util/longsize.c new external/bsd/ntp/dist/util/ntp-keygen-opts.c new external/bsd/ntp/dist/util/ntp-keygen-opts.def new external/bsd/ntp/dist/util/ntp-keygen-opts.h new external/bsd/ntp/dist/util/ntp-keygen.1ntp-keygenman new external/bsd/ntp/dist/util/ntp-keygen.1ntp-keygenmdoc new external/bsd/ntp/dist/util/ntp-keygen.c new external/bsd/ntp/dist/util/ntp-keygen.html new external/bsd/ntp/dist/util/ntp-keygen.man.in new external/bsd/ntp/dist/util/ntp-keygen.mdoc.in new external/bsd/ntp/dist/util/ntp-keygen.texi new external/bsd/ntp/dist/util/ntptime.c new external/bsd/ntp/dist/util/pps-api.c new external/bsd/ntp/dist/util/precision.c new external/bsd/ntp/dist/util/sht.c new external/bsd/ntp/dist/util/testrs6000.c new external/bsd/ntp/dist/util/tg.c new external/bsd/ntp/dist/util/tg2.c new external/bsd/ntp/dist/util/tickadj.c new external/bsd/ntp/dist/util/timetrim.c new external/bsd/ntp/html/Makefile new external/bsd/ntp/include/config.h new external/bsd/ntp/lib/Makefile new external/bsd/ntp/lib/Makefile.inc new external/bsd/ntp/lib/libiscntp/Makefile new external/bsd/ntp/lib/libntp/Makefile new external/bsd/ntp/lib/libopts/Makefile new external/bsd/ntp/lib/libparse/Makefile new external/bsd/ntp/scripts/mkver new usr.sbin/Makefile patch usr.sbin/ntp/Makefile delete usr.sbin/ntp/Makefile.inc delete usr.sbin/ntp/importdate delete usr.sbin/ntp/html/Makefile delete usr.sbin/ntp/include/config.h delete usr.sbin/ntp/libisc/Makefile delete usr.sbin/ntp/libntp/Makefile delete usr.sbin/ntp/libopts/Makefile delete usr.sbin/ntp/libparse/Makefile delete usr.sbin/ntp/ntp-keygen/Makefile delete usr.sbin/ntp/ntp-keygen/ntp-keygen.8 delete usr.sbin/ntp/ntpd/Makefile delete usr.sbin/ntp/ntpd/ntpd.8 delete usr.sbin/ntp/ntpdate/Makefile delete usr.sbin/ntp/ntpdate/ntpdate.8 delete usr.sbin/ntp/ntpdc/Makefile delete usr.sbin/ntp/ntpdc/ntpdc.8 delete usr.sbin/ntp/ntpq/Makefile delete usr.sbin/ntp/ntpq/ntpq.8 delete usr.sbin/ntp/ntptime/Makefile delete usr.sbin/ntp/ntptime/ntptime.8 delete usr.sbin/ntp/ntptrace/Makefile delete usr.sbin/ntp/ntptrace/ntptrace.8 delete usr.sbin/ntp/ntptrace/ntptrace.awk delete usr.sbin/ntp/scripts/mkver delete usr.sbin/sntp/Makefile delete usr.sbin/sntp/sntp.1 delete Update ntp to 4.2.8. This pullup syncs with -current as of 2014/01/06. CVE-2014-9293, CVE-2014-9294, CVE-2014-9295 and CVE-2014-9296. @ text @a0 49Last update: 10-Mar-2014 05:03 UTC
At the heart of the NTP specification and reference implementation is the clock discipline algorithm, which is best described as an adaptive parameter, hybrid phase/frequency-lock feedback loop. It is an intricately crafted algorithm that automatically adapts for optimum performance while minimizing network overhead. Operation is in two modes, phase-lock loop (PLL), which is used at poll intervals below the Allan intercept, by default 2048 s, and frequency-lock loop (FLL), which is used above that.
Figure 1. Clock Discipline Algorithm
A block diagram of the clock discipline is shown in Figure 1. The timestamp of a reference clock or remote server is compared with the timestamp of the system clock, represented as a variable frequency oscillator (VFO), to produce a raw offset sample Vd. Offset samples are processed by the clock filter to produce a filtered update Vs. The loop filter implements a type-2 proportional-integrator controller (PIC). The PIC can minimize errors in both time and frequency using predictors x and y, respectively. The clock adjust process samples these predictors once each second for the daemon discipline or once each tick interrupt for the kernel discipline to produce the system clock update Vc.
In PLL mode the frequency predictor is an integral of the offset over past updates, while the phase predictor is the offset amortized over time in order to avoid setting the clock backward. In FLL mode the phase predictor is not used, while the frequency predictor is similar to the NIST lockclock algorithm. In this algorithm, the frequency predictor is computed as a fraction of the current offset divided by the time since the last update in order to minimize the offset at the next update.
The discipline response in PLL mode is determined by the time constant, which results in a "stiffness" depending on the jitter of the available sources and the wander of the system clock oscillator. The scaled time constant is also used as the poll interval described on the Poll Program page. However, in NTP symmetric mode, each peer manages its own poll interval and the two might not be the same. In such cases either peer uses the minimum of its own poll interval and that of the other peer, which is included in the NTP packet header.
It is necessary to verify that the clock discipline algorithm is stable and satisfies the Nyquist criterion, which requires that the sampling rate be at least twice the bandwidth. In this case the bandwidth can be approximated by the reciprocal of the time constant. In the NTP specification and reference implementation, time constants and poll intervals are expressed as exponents of 2. By construction, the time constant exponent is five times the poll interval exponent. Thus, the default poll exponent of 6 corresponds to a poll interval of 64 s and a time constant of 2048 s. A change in the poll interval changes the time constant by a corresponding amount.. The Nyquist criterion requires the sample interval to be not more than half the time constant or 1024 s. The clock filter guarantees at least one sample in eight poll intervals, so the sample interval is not more than 512 s. This would be described as oversampling by a factor of two. Finally, the PLL parameters have been chosen for a damping factor of 2, which results in a much faster risetime than with critical damping, but results in modest overshoot of 6 percent.
It is important to understand how the dynamics of the PLL are affected by the time constant and poll interval. At the default poll interval of 64 s and a step offset change of 100 ms, the time response crosses zero in about 50 min and overshoots about 6 ms, as per design. Ordinarily, a step correction would causes a temporary frequency surge of about 5 PPM, which along with the overshoot slowly dissipates over a few hours.
However, the clock state machine used with the discipline algorithm avoids this transient at startup. It does this using a previously saved frequency file, if present, or by measuring the oscillator frequency, if not. It then quickly amortizes the residual offset at startup without affecting the oscillator frequency. In this way the offset error is less than 0.5 ms within 5 min, if the file is present, and within 10 min if not. See the Clock State Machine page for further details.
Since the PLL is linear, the response with different offset step amplitudes and poll intervals has the same characteristic shape, but scaled differently in amplitude and time. The response scales exactly with step amplitude, so that the response to a 10-ms step has the same shape as at 64 s, but with amplitude compressed by one-tenth. The response scales exactly with poll interval, so that response at a poll interval of 8 s has the same shape as at 64 s, but with time compressed by one-eighth.
The optimum time constant, and thus the poll interval, depends on the network time jitter and the oscillator frequency wander. Errors due to jitter decrease as the time constant increases, while errors due to wander decrease as the time constant decreases. For typical Internet paths, the two error characteristics intersect at a point called the Allan intercept, which represents the optimum time constant. With a compromise Allan intercept of 2048 s, the optimum poll interval is about 64 s, which corresponds to a compromise poll exponent of 6. For fast LANs with modern computers, the Allan intercept is somewhat lower at around 512 s, so a compromise poll exponent of 4 (16 s) is appropriate. An intricate, heuristic algorithm is used to manage the actual poll interval within a specified range. Details are on the Poll Program page.
In the NTPv4 specification and reference implementation a state machine is used to manage the system clock under exceptional conditions, as when the daemon is first started or when encountering severe network congestion. In extreme cases not likely to be encountered in normal operation, the system time can be stepped forward or backward more than 128 ms. Further details are on the Clock State Machine page.
If left running continuously, an NTP client on a fast LAN in a home or office environment can maintain synchronization nominally within one millisecond. When the ambient temperature variations are less than a degree Celsius, the clock oscillator frequency is disciplined to within one part per million (PPM), even when the clock oscillator native frequency offset is 100 PPM or more.
For laptops and portable devices when the power is turned off, the battery backup clock offset error can increase as much as one second per day. When power is restored after several hours or days, the clock offset and oscillator frequency errors must be resolved by the clock discipline algorithm, but this can take several hours without specific provisions.
The provisions described in this section insure that, in all but pathological situations, the startup transient is suppressed to within nominal levels in no more than five minutes after a warm start or ten minutes after a cold start. Following is a summary of these provisions. A detailed discussion of these provisions is on the Clock State Machine page.
The reference implementation measures the clock oscillator frequency and updates a frequency file at intervals of one hour or more, depending on the measured frequency wander. This design is intended to minimize write cycles in NVRAM that might be used in a laptop or portable device. In a warm start, the frequency is initialized from this file, which avoids a possibly lengthy convergence time. In a cold start when no frequency file is available, the reference implementation first measures the oscillator frequency over a five-min interval. This generally results in a residual frequency error less than 1 PPM. The measurement interval can be changed using the stepout option of the tinker command.
In order to reduce the clock offset error at restart, the reference implementation mext disables oscillator frequency discipline and enables clock offset discipline with a small time constant. This is designed to quickly reduce the clock offset error without causing a frequency surge. This configuration is continued for an interval of five-min, after which the clock offset error is usually no more than a millisecond. The measurement interval can be changed using the stepout option of the tinker command.
Another concern at restart is the time necessary for the select and cluster algorithms to refine and validate the initial clock offset estimate. Normally, this takes several updates before setting the system clock. As the default minimum poll interval in most configurations is about one minute, it can take several minutes before setting the system clock. The iburst option of the server command changes the behavior at restart and is recommended for client/server configurations. When this option is enabled, the client sends a volley of six requests at intervals of two seconds. This usually insures a reliable estimate is available in about ten seconds before setting the clock. Once this initial volley is complete, the procedures described above are executed.
As a result of the above considerations, when a backup source, such as the local clock driver, ACTS modem driver or orphan mode is included in the system configuration, it may happen that one or more of them are selectable before one or more of the regular sources are selectable. When backup sources are included in the configuration, the reference implementation waits an interval of several minutes without regular sources before switching to backup sources. This is generally enough to avoid startup transients due to premature switching to backup sources. The interval can be changed using the orphanwait option of the tos command.
Last update: 10-Mar-2014 05:03 UTC
At the heart of the NTP specification and reference implementation is the clock discipline algorithm, which is best described as an adaptive parameter, hybrid phase/frequency-lock feedback loop. It is an intricately crafted algorithm that automatically adapts for optimum performance while minimizing network overhead. Operation is in two modes, phase-lock loop (PLL), which is used at poll intervals below the Allan intercept, by default 2048 s, and frequency-lock loop (FLL), which is used above that.
Figure 1. Clock Discipline Algorithm
A block diagram of the clock discipline is shown in Figure 1. The timestamp of a reference clock or remote server is compared with the timestamp of the system clock, represented as a variable frequency oscillator (VFO), to produce a raw offset sample Vd. Offset samples are processed by the clock filter to produce a filtered update Vs. The loop filter implements a type-2 proportional-integrator controller (PIC). The PIC can minimize errors in both time and frequency using predictors x and y, respectively. The clock adjust process samples these predictors once each second for the daemon discipline or once each tick interrupt for the kernel discipline to produce the system clock update Vc.
In PLL mode the frequency predictor is an integral of the offset over past updates, while the phase predictor is the offset amortized over time in order to avoid setting the clock backward. In FLL mode the phase predictor is not used, while the frequency predictor is similar to the NIST lockclock algorithm. In this algorithm, the frequency predictor is computed as a fraction of the current offset divided by the time since the last update in order to minimize the offset at the next update.
The discipline response in PLL mode is determined by the time constant, which results in a "stiffness" depending on the jitter of the available sources and the wander of the system clock oscillator. The scaled time constant is also used as the poll interval described on the Poll Program page. However, in NTP symmetric mode, each peer manages its own poll interval and the two might not be the same. In such cases either peer uses the minimum of its own poll interval and that of the other peer, which is included in the NTP packet header.
It is necessary to verify that the clock discipline algorithm is stable and satisfies the Nyquist criterion, which requires that the sampling rate be at least twice the bandwidth. In this case the bandwidth can be approximated by the reciprocal of the time constant. In the NTP specification and reference implementation, time constants and poll intervals are expressed as exponents of 2. By construction, the time constant exponent is five times the poll interval exponent. Thus, the default poll exponent of 6 corresponds to a poll interval of 64 s and a time constant of 2048 s. A change in the poll interval changes the time constant by a corresponding amount.. The Nyquist criterion requires the sample interval to be not more than half the time constant or 1024 s. The clock filter guarantees at least one sample in eight poll intervals, so the sample interval is not more than 512 s. This would be described as oversampling by a factor of two. Finally, the PLL parameters have been chosen for a damping factor of 2, which results in a much faster risetime than with critical damping, but results in modest overshoot of 6 percent.
It is important to understand how the dynamics of the PLL are affected by the time constant and poll interval. At the default poll interval of 64 s and a step offset change of 100 ms, the time response crosses zero in about 50 min and overshoots about 6 ms, as per design. Ordinarily, a step correction would causes a temporary frequency surge of about 5 PPM, which along with the overshoot slowly dissipates over a few hours.
However, the clock state machine used with the discipline algorithm avoids this transient at startup. It does this using a previously saved frequency file, if present, or by measuring the oscillator frequency, if not. It then quickly amortizes the residual offset at startup without affecting the oscillator frequency. In this way the offset error is less than 0.5 ms within 5 min, if the file is present, and within 10 min if not. See the Clock State Machine page for further details.
Since the PLL is linear, the response with different offset step amplitudes and poll intervals has the same characteristic shape, but scaled differently in amplitude and time. The response scales exactly with step amplitude, so that the response to a 10-ms step has the same shape as at 64 s, but with amplitude compressed by one-tenth. The response scales exactly with poll interval, so that response at a poll interval of 8 s has the same shape as at 64 s, but with time compressed by one-eighth.
The optimum time constant, and thus the poll interval, depends on the network time jitter and the oscillator frequency wander. Errors due to jitter decrease as the time constant increases, while errors due to wander decrease as the time constant decreases. For typical Internet paths, the two error characteristics intersect at a point called the Allan intercept, which represents the optimum time constant. With a compromise Allan intercept of 2048 s, the optimum poll interval is about 64 s, which corresponds to a compromise poll exponent of 6. For fast LANs with modern computers, the Allan intercept is somewhat lower at around 512 s, so a compromise poll exponent of 4 (16 s) is appropriate. An intricate, heuristic algorithm is used to manage the actual poll interval within a specified range. Details are on the Poll Program page.
In the NTPv4 specification and reference implementation a state machine is used to manage the system clock under exceptional conditions, as when the daemon is first started or when encountering severe network congestion. In extreme cases not likely to be encountered in normal operation, the system time can be stepped forward or backward more than 128 ms. Further details are on the Clock State Machine page.
If left running continuously, an NTP client on a fast LAN in a home or office environment can maintain synchronization nominally within one millisecond. When the ambient temperature variations are less than a degree Celsius, the clock oscillator frequency is disciplined to within one part per million (PPM), even when the clock oscillator native frequency offset is 100 PPM or more.
For laptops and portable devices when the power is turned off, the battery backup clock offset error can increase as much as one second per day. When power is restored after several hours or days, the clock offset and oscillator frequency errors must be resolved by the clock discipline algorithm, but this can take several hours without specific provisions.
The provisions described in this section insure that, in all but pathological situations, the startup transient is suppressed to within nominal levels in no more than five minutes after a warm start or ten minutes after a cold start. Following is a summary of these provisions. A detailed discussion of these provisions is on the Clock State Machine page.
The reference implementation measures the clock oscillator frequency and updates a frequency file at intervals of one hour or more, depending on the measured frequency wander. This design is intended to minimize write cycles in NVRAM that might be used in a laptop or portable device. In a warm start, the frequency is initialized from this file, which avoids a possibly lengthy convergence time. In a cold start when no frequency file is available, the reference implementation first measures the oscillator frequency over a five-min interval. This generally results in a residual frequency error less than 1 PPM. The measurement interval can be changed using the stepout option of the tinker command.
In order to reduce the clock offset error at restart, the reference implementation mext disables oscillator frequency discipline and enables clock offset discipline with a small time constant. This is designed to quickly reduce the clock offset error without causing a frequency surge. This configuration is continued for an interval of five-min, after which the clock offset error is usually no more than a millisecond. The measurement interval can be changed using the stepout option of the tinker command.
Another concern at restart is the time necessary for the select and cluster algorithms to refine and validate the initial clock offset estimate. Normally, this takes several updates before setting the system clock. As the default minimum poll interval in most configurations is about one minute, it can take several minutes before setting the system clock. The iburst option of the server command changes the behavior at restart and is recommended for client/server configurations. When this option is enabled, the client sends a volley of six requests at intervals of two seconds. This usually insures a reliable estimate is available in about ten seconds before setting the clock. Once this initial volley is complete, the procedures described above are executed.
As a result of the above considerations, when a backup source, such as the local clock driver, ACTS modem driver or orphan mode is included in the system configuration, it may happen that one or more of them are selectable before one or more of the regular sources are selectable. When backup sources are included in the configuration, the reference implementation waits an interval of several minutes without regular sources before switching to backup sources. This is generally enough to avoid startup transients due to premature switching to backup sources. The interval can be changed using the orphanwait option of the tos command.
Last update: 10-Mar-2014 05:03 UTC
At the heart of the NTP specification and reference implementation is the clock discipline algorithm, which is best described as an adaptive parameter, hybrid phase/frequency-lock feedback loop. It is an intricately crafted algorithm that automatically adapts for optimum performance while minimizing network overhead. Operation is in two modes, phase-lock loop (PLL), which is used at poll intervals below the Allan intercept, by default 2048 s, and frequency-lock loop (FLL), which is used above that.
Figure 1. Clock Discipline Algorithm
A block diagram of the clock discipline is shown in Figure 1. The timestamp of a reference clock or remote server is compared with the timestamp of the system clock, represented as a variable frequency oscillator (VFO), to produce a raw offset sample Vd. Offset samples are processed by the clock filter to produce a filtered update Vs. The loop filter implements a type-2 proportional-integrator controller (PIC). The PIC can minimize errors in both time and frequency using predictors x and y, respectively. The clock adjust process samples these predictors once each second for the daemon discipline or once each tick interrupt for the kernel discipline to produce the system clock update Vc.
In PLL mode the frequency predictor is an integral of the offset over past updates, while the phase predictor is the offset amortized over time in order to avoid setting the clock backward. In FLL mode the phase predictor is not used, while the frequency predictor is similar to the NIST lockclock algorithm. In this algorithm, the frequency predictor is computed as a fraction of the current offset divided by the time since the last update in order to minimize the offset at the next update.
The discipline response in PLL mode is determined by the time constant, which results in a "stiffness" depending on the jitter of the available sources and the wander of the system clock oscillator. The scaled time constant is also used as the poll interval described on the Poll Program page. However, in NTP symmetric mode, each peer manages its own poll interval and the two might not be the same. In such cases either peer uses the minimum of its own poll interval and that of the other peer, which is included in the NTP packet header.
It is necessary to verify that the clock discipline algorithm is stable and satisfies the Nyquist criterion, which requires that the sampling rate be at least twice the bandwidth. In this case the bandwidth can be approximated by the reciprocal of the time constant. In the NTP specification and reference implementation, time constants and poll intervals are expressed as exponents of 2. By construction, the time constant exponent is five times the poll interval exponent. Thus, the default poll exponent of 6 corresponds to a poll interval of 64 s and a time constant of 2048 s. A change in the poll interval changes the time constant by a corresponding amount.. The Nyquist criterion requires the sample interval to be not more than half the time constant or 1024 s. The clock filter guarantees at least one sample in eight poll intervals, so the sample interval is not more than 512 s. This would be described as oversampling by a factor of two. Finally, the PLL parameters have been chosen for a damping factor of 2, which results in a much faster risetime than with critical damping, but results in modest overshoot of 6 percent.
It is important to understand how the dynamics of the PLL are affected by the time constant and poll interval. At the default poll interval of 64 s and a step offset change of 100 ms, the time response crosses zero in about 50 min and overshoots about 6 ms, as per design. Ordinarily, a step correction would causes a temporary frequency surge of about 5 PPM, which along with the overshoot slowly dissipates over a few hours.
However, the clock state machine used with the discipline algorithm avoids this transient at startup. It does this using a previously saved frequency file, if present, or by measuring the oscillator frequency, if not. It then quickly amortizes the residual offset at startup without affecting the oscillator frequency. In this way the offset error is less than 0.5 ms within 5 min, if the file is present, and within 10 min if not. See the Clock State Machine page for further details.
Since the PLL is linear, the response with different offset step amplitudes and poll intervals has the same characteristic shape, but scaled differently in amplitude and time. The response scales exactly with step amplitude, so that the response to a 10-ms step has the same shape as at 64 s, but with amplitude compressed by one-tenth. The response scales exactly with poll interval, so that response at a poll interval of 8 s has the same shape as at 64 s, but with time compressed by one-eighth.
The optimum time constant, and thus the poll interval, depends on the network time jitter and the oscillator frequency wander. Errors due to jitter decrease as the time constant increases, while errors due to wander decrease as the time constant decreases. For typical Internet paths, the two error characteristics intersect at a point called the Allan intercept, which represents the optimum time constant. With a compromise Allan intercept of 2048 s, the optimum poll interval is about 64 s, which corresponds to a compromise poll exponent of 6. For fast LANs with modern computers, the Allan intercept is somewhat lower at around 512 s, so a compromise poll exponent of 4 (16 s) is appropriate. An intricate, heuristic algorithm is used to manage the actual poll interval within a specified range. Details are on the Poll Program page.
In the NTPv4 specification and reference implementation a state machine is used to manage the system clock under exceptional conditions, as when the daemon is first started or when encountering severe network congestion. In extreme cases not likely to be encountered in normal operation, the system time can be stepped forward or backward more than 128 ms. Further details are on the Clock State Machine page.
If left running continuously, an NTP client on a fast LAN in a home or office environment can maintain synchronization nominally within one millisecond. When the ambient temperature variations are less than a degree Celsius, the clock oscillator frequency is disciplined to within one part per million (PPM), even when the clock oscillator native frequency offset is 100 PPM or more.
For laptops and portable devices when the power is turned off, the battery backup clock offset error can increase as much as one second per day. When power is restored after several hours or days, the clock offset and oscillator frequency errors must be resolved by the clock discipline algorithm, but this can take several hours without specific provisions.
The provisions described in this section insure that, in all but pathological situations, the startup transient is suppressed to within nominal levels in no more than five minutes after a warm start or ten minutes after a cold start. Following is a summary of these provisions. A detailed discussion of these provisions is on the Clock State Machine page.
The reference implementation measures the clock oscillator frequency and updates a frequency file at intervals of one hour or more, depending on the measured frequency wander. This design is intended to minimize write cycles in NVRAM that might be used in a laptop or portable device. In a warm start, the frequency is initialized from this file, which avoids a possibly lengthy convergence time. In a cold start when no frequency file is available, the reference implementation first measures the oscillator frequency over a five-min interval. This generally results in a residual frequency error less than 1 PPM. The measurement interval can be changed using the stepout option of the tinker command.
In order to reduce the clock offset error at restart, the reference implementation mext disables oscillator frequency discipline and enables clock offset discipline with a small time constant. This is designed to quickly reduce the clock offset error without causing a frequency surge. This configuration is continued for an interval of five-min, after which the clock offset error is usually no more than a millisecond. The measurement interval can be changed using the stepout option of the tinker command.
Another concern at restart is the time necessary for the select and cluster algorithms to refine and validate the initial clock offset estimate. Normally, this takes several updates before setting the system clock. As the default minimum poll interval in most configurations is about one minute, it can take several minutes before setting the system clock. The iburst option of the server command changes the behavior at restart and is recommended for client/server configurations. When this option is enabled, the client sends a volley of six requests at intervals of two seconds. This usually insures a reliable estimate is available in about ten seconds before setting the clock. Once this initial volley is complete, the procedures described above are executed.
As a result of the above considerations, when a backup source, such as the local clock driver, ACTS modem driver or orphan mode is included in the system configuration, it may happen that one or more of them are selectable before one or more of the regular sources are selectable. When backup sources are included in the configuration, the reference implementation waits an interval of several minutes without regular sources before switching to backup sources. This is generally enough to avoid startup transients due to premature switching to backup sources. The interval can be changed using the orphanwait option of the tos command.
Last update: 10-Mar-2014 05:03 UTC
At the heart of the NTP specification and reference implementation is the clock discipline algorithm, which is best described as an adaptive parameter, hybrid phase/frequency-lock feedback loop. It is an intricately crafted algorithm that automatically adapts for optimum performance while minimizing network overhead. Operation is in two modes, phase-lock loop (PLL), which is used at poll intervals below the Allan intercept, by default 2048 s, and frequency-lock loop (FLL), which is used above that.
Figure 1. Clock Discipline Algorithm
A block diagram of the clock discipline is shown in Figure 1. The timestamp of a reference clock or remote server is compared with the timestamp of the system clock, represented as a variable frequency oscillator (VFO), to produce a raw offset sample Vd. Offset samples are processed by the clock filter to produce a filtered update Vs. The loop filter implements a type-2 proportional-integrator controller (PIC). The PIC can minimize errors in both time and frequency using predictors x and y, respectively. The clock adjust process samples these predictors once each second for the daemon discipline or once each tick interrupt for the kernel discipline to produce the system clock update Vc.
In PLL mode the frequency predictor is an integral of the offset over past updates, while the phase predictor is the offset amortized over time in order to avoid setting the clock backward. In FLL mode the phase predictor is not used, while the frequency predictor is similar to the NIST lockclock algorithm. In this algorithm, the frequency predictor is computed as a fraction of the current offset divided by the time since the last update in order to minimize the offset at the next update.
The discipline response in PLL mode is determined by the time constant, which results in a "stiffness" depending on the jitter of the available sources and the wander of the system clock oscillator. The scaled time constant is also used as the poll interval described on the Poll Program page. However, in NTP symmetric mode, each peer manages its own poll interval and the two might not be the same. In such cases either peer uses the minimum of its own poll interval and that of the other peer, which is included in the NTP packet header.
It is necessary to verify that the clock discipline algorithm is stable and satisfies the Nyquist criterion, which requires that the sampling rate be at least twice the bandwidth. In this case the bandwidth can be approximated by the reciprocal of the time constant. In the NTP specification and reference implementation, time constants and poll intervals are expressed as exponents of 2. By construction, the time constant exponent is five times the poll interval exponent. Thus, the default poll exponent of 6 corresponds to a poll interval of 64 s and a time constant of 2048 s. A change in the poll interval changes the time constant by a corresponding amount.. The Nyquist criterion requires the sample interval to be not more than half the time constant or 1024 s. The clock filter guarantees at least one sample in eight poll intervals, so the sample interval is not more than 512 s. This would be described as oversampling by a factor of two. Finally, the PLL parameters have been chosen for a damping factor of 2, which results in a much faster risetime than with critical damping, but results in modest overshoot of 6 percent.
It is important to understand how the dynamics of the PLL are affected by the time constant and poll interval. At the default poll interval of 64 s and a step offset change of 100 ms, the time response crosses zero in about 50 min and overshoots about 6 ms, as per design. Ordinarily, a step correction would causes a temporary frequency surge of about 5 PPM, which along with the overshoot slowly dissipates over a few hours.
However, the clock state machine used with the discipline algorithm avoids this transient at startup. It does this using a previously saved frequency file, if present, or by measuring the oscillator frequency, if not. It then quickly amortizes the residual offset at startup without affecting the oscillator frequency. In this way the offset error is less than 0.5 ms within 5 min, if the file is present, and within 10 min if not. See the Clock State Machine page for further details.
Since the PLL is linear, the response with different offset step amplitudes and poll intervals has the same characteristic shape, but scaled differently in amplitude and time. The response scales exactly with step amplitude, so that the response to a 10-ms step has the same shape as at 64 s, but with amplitude compressed by one-tenth. The response scales exactly with poll interval, so that response at a poll interval of 8 s has the same shape as at 64 s, but with time compressed by one-eighth.
The optimum time constant, and thus the poll interval, depends on the network time jitter and the oscillator frequency wander. Errors due to jitter decrease as the time constant increases, while errors due to wander decrease as the time constant decreases. For typical Internet paths, the two error characteristics intersect at a point called the Allan intercept, which represents the optimum time constant. With a compromise Allan intercept of 2048 s, the optimum poll interval is about 64 s, which corresponds to a compromise poll exponent of 6. For fast LANs with modern computers, the Allan intercept is somewhat lower at around 512 s, so a compromise poll exponent of 4 (16 s) is appropriate. An intricate, heuristic algorithm is used to manage the actual poll interval within a specified range. Details are on the Poll Program page.
In the NTPv4 specification and reference implementation a state machine is used to manage the system clock under exceptional conditions, as when the daemon is first started or when encountering severe network congestion. In extreme cases not likely to be encountered in normal operation, the system time can be stepped forward or backward more than 128 ms. Further details are on the Clock State Machine page.
If left running continuously, an NTP client on a fast LAN in a home or office environment can maintain synchronization nominally within one millisecond. When the ambient temperature variations are less than a degree Celsius, the clock oscillator frequency is disciplined to within one part per million (PPM), even when the clock oscillator native frequency offset is 100 PPM or more.
For laptops and portable devices when the power is turned off, the battery backup clock offset error can increase as much as one second per day. When power is restored after several hours or days, the clock offset and oscillator frequency errors must be resolved by the clock discipline algorithm, but this can take several hours without specific provisions.
The provisions described in this section insure that, in all but pathological situations, the startup transient is suppressed to within nominal levels in no more than five minutes after a warm start or ten minutes after a cold start. Following is a summary of these provisions. A detailed discussion of these provisions is on the Clock State Machine page.
The reference implementation measures the clock oscillator frequency and updates a frequency file at intervals of one hour or more, depending on the measured frequency wander. This design is intended to minimize write cycles in NVRAM that might be used in a laptop or portable device. In a warm start, the frequency is initialized from this file, which avoids a possibly lengthy convergence time. In a cold start when no frequency file is available, the reference implementation first measures the oscillator frequency over a five-min interval. This generally results in a residual frequency error less than 1 PPM. The measurement interval can be changed using the stepout option of the tinker command.
In order to reduce the clock offset error at restart, the reference implementation mext disables oscillator frequency discipline and enables clock offset discipline with a small time constant. This is designed to quickly reduce the clock offset error without causing a frequency surge. This configuration is continued for an interval of five-min, after which the clock offset error is usually no more than a millisecond. The measurement interval can be changed using the stepout option of the tinker command.
Another concern at restart is the time necessary for the select and cluster algorithms to refine and validate the initial clock offset estimate. Normally, this takes several updates before setting the system clock. As the default minimum poll interval in most configurations is about one minute, it can take several minutes before setting the system clock. The iburst option of the server command changes the behavior at restart and is recommended for client/server configurations. When this option is enabled, the client sends a volley of six requests at intervals of two seconds. This usually insures a reliable estimate is available in about ten seconds before setting the clock. Once this initial volley is complete, the procedures described above are executed.
As a result of the above considerations, when a backup source, such as the local clock driver, ACTS modem driver or orphan mode is included in the system configuration, it may happen that one or more of them are selectable before one or more of the regular sources are selectable. When backup sources are included in the configuration, the reference implementation waits an interval of several minutes without regular sources before switching to backup sources. This is generally enough to avoid startup transients due to premature switching to backup sources. The interval can be changed using the orphanwait option of the tos command.
Last update: 10-Mar-2014 05:03 UTC
At the heart of the NTP specification and reference implementation is the clock discipline algorithm, which is best described as an adaptive parameter, hybrid phase/frequency-lock feedback loop. It is an intricately crafted algorithm that automatically adapts for optimum performance while minimizing network overhead. Operation is in two modes, phase-lock loop (PLL), which is used at poll intervals below the Allan intercept, by default 2048 s, and frequency-lock loop (FLL), which is used above that.
Figure 1. Clock Discipline Algorithm
A block diagram of the clock discipline is shown in Figure 1. The timestamp of a reference clock or remote server is compared with the timestamp of the system clock, represented as a variable frequency oscillator (VFO), to produce a raw offset sample Vd. Offset samples are processed by the clock filter to produce a filtered update Vs. The loop filter implements a type-2 proportional-integrator controller (PIC). The PIC can minimize errors in both time and frequency using predictors x and y, respectively. The clock adjust process samples these predictors once each second for the daemon discipline or once each tick interrupt for the kernel discipline to produce the system clock update Vc.
In PLL mode the frequency predictor is an integral of the offset over past updates, while the phase predictor is the offset amortized over time in order to avoid setting the clock backward. In FLL mode the phase predictor is not used, while the frequency predictor is similar to the NIST lockclock algorithm. In this algorithm, the frequency predictor is computed as a fraction of the current offset divided by the time since the last update in order to minimize the offset at the next update.
The discipline response in PLL mode is determined by the time constant, which results in a "stiffness" depending on the jitter of the available sources and the wander of the system clock oscillator. The scaled time constant is also used as the poll interval described on the Poll Program page. However, in NTP symmetric mode, each peer manages its own poll interval and the two might not be the same. In such cases either peer uses the minimum of its own poll interval and that of the other peer, which is included in the NTP packet header.
It is necessary to verify that the clock discipline algorithm is stable and satisfies the Nyquist criterion, which requires that the sampling rate be at least twice the bandwidth. In this case the bandwidth can be approximated by the reciprocal of the time constant. In the NTP specification and reference implementation, time constants and poll intervals are expressed as exponents of 2. By construction, the time constant exponent is five times the poll interval exponent. Thus, the default poll exponent of 6 corresponds to a poll interval of 64 s and a time constant of 2048 s. A change in the poll interval changes the time constant by a corresponding amount.. The Nyquist criterion requires the sample interval to be not more than half the time constant or 1024 s. The clock filter guarantees at least one sample in eight poll intervals, so the sample interval is not more than 512 s. This would be described as oversampling by a factor of two. Finally, the PLL parameters have been chosen for a damping factor of 2, which results in a much faster risetime than with critical damping, but results in modest overshoot of 6 percent.
It is important to understand how the dynamics of the PLL are affected by the time constant and poll interval. At the default poll interval of 64 s and a step offset change of 100 ms, the time response crosses zero in about 50 min and overshoots about 6 ms, as per design. Ordinarily, a step correction would causes a temporary frequency surge of about 5 PPM, which along with the overshoot slowly dissipates over a few hours.
However, the clock state machine used with the discipline algorithm avoids this transient at startup. It does this using a previously saved frequency file, if present, or by measuring the oscillator frequency, if not. It then quickly amortizes the residual offset at startup without affecting the oscillator frequency. In this way the offset error is less than 0.5 ms within 5 min, if the file is present, and within 10 min if not. See the Clock State Machine page for further details.
Since the PLL is linear, the response with different offset step amplitudes and poll intervals has the same characteristic shape, but scaled differently in amplitude and time. The response scales exactly with step amplitude, so that the response to a 10-ms step has the same shape as at 64 s, but with amplitude compressed by one-tenth. The response scales exactly with poll interval, so that response at a poll interval of 8 s has the same shape as at 64 s, but with time compressed by one-eighth.
The optimum time constant, and thus the poll interval, depends on the network time jitter and the oscillator frequency wander. Errors due to jitter decrease as the time constant increases, while errors due to wander decrease as the time constant decreases. For typical Internet paths, the two error characteristics intersect at a point called the Allan intercept, which represents the optimum time constant. With a compromise Allan intercept of 2048 s, the optimum poll interval is about 64 s, which corresponds to a compromise poll exponent of 6. For fast LANs with modern computers, the Allan intercept is somewhat lower at around 512 s, so a compromise poll exponent of 4 (16 s) is appropriate. An intricate, heuristic algorithm is used to manage the actual poll interval within a specified range. Details are on the Poll Program page.
In the NTPv4 specification and reference implementation a state machine is used to manage the system clock under exceptional conditions, as when the daemon is first started or when encountering severe network congestion. In extreme cases not likely to be encountered in normal operation, the system time can be stepped forward or backward more than 128 ms. Further details are on the Clock State Machine page.
If left running continuously, an NTP client on a fast LAN in a home or office environment can maintain synchronization nominally within one millisecond. When the ambient temperature variations are less than a degree Celsius, the clock oscillator frequency is disciplined to within one part per million (PPM), even when the clock oscillator native frequency offset is 100 PPM or more.
For laptops and portable devices when the power is turned off, the battery backup clock offset error can increase as much as one second per day. When power is restored after several hours or days, the clock offset and oscillator frequency errors must be resolved by the clock discipline algorithm, but this can take several hours without specific provisions.
The provisions described in this section insure that, in all but pathological situations, the startup transient is suppressed to within nominal levels in no more than five minutes after a warm start or ten minutes after a cold start. Following is a summary of these provisions. A detailed discussion of these provisions is on the Clock State Machine page.
The reference implementation measures the clock oscillator frequency and updates a frequency file at intervals of one hour or more, depending on the measured frequency wander. This design is intended to minimize write cycles in NVRAM that might be used in a laptop or portable device. In a warm start, the frequency is initialized from this file, which avoids a possibly lengthy convergence time. In a cold start when no frequency file is available, the reference implementation first measures the oscillator frequency over a five-min interval. This generally results in a residual frequency error less than 1 PPM. The measurement interval can be changed using the stepout option of the tinker command.
In order to reduce the clock offset error at restart, the reference implementation mext disables oscillator frequency discipline and enables clock offset discipline with a small time constant. This is designed to quickly reduce the clock offset error without causing a frequency surge. This configuration is continued for an interval of five-min, after which the clock offset error is usually no more than a millisecond. The measurement interval can be changed using the stepout option of the tinker command.
Another concern at restart is the time necessary for the select and cluster algorithms to refine and validate the initial clock offset estimate. Normally, this takes several updates before setting the system clock. As the default minimum poll interval in most configurations is about one minute, it can take several minutes before setting the system clock. The iburst option of the server command changes the behavior at restart and is recommended for client/server configurations. When this option is enabled, the client sends a volley of six requests at intervals of two seconds. This usually insures a reliable estimate is available in about ten seconds before setting the clock. Once this initial volley is complete, the procedures described above are executed.
As a result of the above considerations, when a backup source, such as the local clock driver, ACTS modem driver or orphan mode is included in the system configuration, it may happen that one or more of them are selectable before one or more of the regular sources are selectable. When backup sources are included in the configuration, the reference implementation waits an interval of several minutes without regular sources before switching to backup sources. This is generally enough to avoid startup transients due to premature switching to backup sources. The interval can be changed using the orphanwait option of the tos command.
Last update: 10-Mar-2014 05:03 UTC
At the heart of the NTP specification and reference implementation is the clock discipline algorithm, which is best described as an adaptive parameter, hybrid phase/frequency-lock feedback loop. It is an intricately crafted algorithm that automatically adapts for optimum performance while minimizing network overhead. Operation is in two modes, phase-lock loop (PLL), which is used at poll intervals below the Allan intercept, by default 2048 s, and frequency-lock loop (FLL), which is used above that.
Figure 1. Clock Discipline Algorithm
A block diagram of the clock discipline is shown in Figure 1. The timestamp of a reference clock or remote server is compared with the timestamp of the system clock, represented as a variable frequency oscillator (VFO), to produce a raw offset sample Vd. Offset samples are processed by the clock filter to produce a filtered update Vs. The loop filter implements a type-2 proportional-integrator controller (PIC). The PIC can minimize errors in both time and frequency using predictors x and y, respectively. The clock adjust process samples these predictors once each second for the daemon discipline or once each tick interrupt for the kernel discipline to produce the system clock update Vc.
In PLL mode the frequency predictor is an integral of the offset over past updates, while the phase predictor is the offset amortized over time in order to avoid setting the clock backward. In FLL mode the phase predictor is not used, while the frequency predictor is similar to the NIST lockclock algorithm. In this algorithm, the frequency predictor is computed as a fraction of the current offset divided by the time since the last update in order to minimize the offset at the next update.
The discipline response in PLL mode is determined by the time constant, which results in a "stiffness" depending on the jitter of the available sources and the wander of the system clock oscillator. The scaled time constant is also used as the poll interval described on the Poll Program page. However, in NTP symmetric mode, each peer manages its own poll interval and the two might not be the same. In such cases either peer uses the minimum of its own poll interval and that of the other peer, which is included in the NTP packet header.
It is necessary to verify that the clock discipline algorithm is stable and satisfies the Nyquist criterion, which requires that the sampling rate be at least twice the bandwidth. In this case the bandwidth can be approximated by the reciprocal of the time constant. In the NTP specification and reference implementation, time constants and poll intervals are expressed as exponents of 2. By construction, the time constant exponent is five times the poll interval exponent. Thus, the default poll exponent of 6 corresponds to a poll interval of 64 s and a time constant of 2048 s. A change in the poll interval changes the time constant by a corresponding amount.. The Nyquist criterion requires the sample interval to be not more than half the time constant or 1024 s. The clock filter guarantees at least one sample in eight poll intervals, so the sample interval is not more than 512 s. This would be described as oversampling by a factor of two. Finally, the PLL parameters have been chosen for a damping factor of 2, which results in a much faster risetime than with critical damping, but results in modest overshoot of 6 percent.
It is important to understand how the dynamics of the PLL are affected by the time constant and poll interval. At the default poll interval of 64 s and a step offset change of 100 ms, the time response crosses zero in about 50 min and overshoots about 6 ms, as per design. Ordinarily, a step correction would causes a temporary frequency surge of about 5 PPM, which along with the overshoot slowly dissipates over a few hours.
However, the clock state machine used with the discipline algorithm avoids this transient at startup. It does this using a previously saved frequency file, if present, or by measuring the oscillator frequency, if not. It then quickly amortizes the residual offset at startup without affecting the oscillator frequency. In this way the offset error is less than 0.5 ms within 5 min, if the file is present, and within 10 min if not. See the Clock State Machine page for further details.
Since the PLL is linear, the response with different offset step amplitudes and poll intervals has the same characteristic shape, but scaled differently in amplitude and time. The response scales exactly with step amplitude, so that the response to a 10-ms step has the same shape as at 64 s, but with amplitude compressed by one-tenth. The response scales exactly with poll interval, so that response at a poll interval of 8 s has the same shape as at 64 s, but with time compressed by one-eighth.
The optimum time constant, and thus the poll interval, depends on the network time jitter and the oscillator frequency wander. Errors due to jitter decrease as the time constant increases, while errors due to wander decrease as the time constant decreases. For typical Internet paths, the two error characteristics intersect at a point called the Allan intercept, which represents the optimum time constant. With a compromise Allan intercept of 2048 s, the optimum poll interval is about 64 s, which corresponds to a compromise poll exponent of 6. For fast LANs with modern computers, the Allan intercept is somewhat lower at around 512 s, so a compromise poll exponent of 4 (16 s) is appropriate. An intricate, heuristic algorithm is used to manage the actual poll interval within a specified range. Details are on the Poll Program page.
In the NTPv4 specification and reference implementation a state machine is used to manage the system clock under exceptional conditions, as when the daemon is first started or when encountering severe network congestion. In extreme cases not likely to be encountered in normal operation, the system time can be stepped forward or backward more than 128 ms. Further details are on the Clock State Machine page.
If left running continuously, an NTP client on a fast LAN in a home or office environment can maintain synchronization nominally within one millisecond. When the ambient temperature variations are less than a degree Celsius, the clock oscillator frequency is disciplined to within one part per million (PPM), even when the clock oscillator native frequency offset is 100 PPM or more.
For laptops and portable devices when the power is turned off, the battery backup clock offset error can increase as much as one second per day. When power is restored after several hours or days, the clock offset and oscillator frequency errors must be resolved by the clock discipline algorithm, but this can take several hours without specific provisions.
The provisions described in this section insure that, in all but pathological situations, the startup transient is suppressed to within nominal levels in no more than five minutes after a warm start or ten minutes after a cold start. Following is a summary of these provisions. A detailed discussion of these provisions is on the Clock State Machine page.
The reference implementation measures the clock oscillator frequency and updates a frequency file at intervals of one hour or more, depending on the measured frequency wander. This design is intended to minimize write cycles in NVRAM that might be used in a laptop or portable device. In a warm start, the frequency is initialized from this file, which avoids a possibly lengthy convergence time. In a cold start when no frequency file is available, the reference implementation first measures the oscillator frequency over a five-min interval. This generally results in a residual frequency error less than 1 PPM. The measurement interval can be changed using the stepout option of the tinker command.
In order to reduce the clock offset error at restart, the reference implementation mext disables oscillator frequency discipline and enables clock offset discipline with a small time constant. This is designed to quickly reduce the clock offset error without causing a frequency surge. This configuration is continued for an interval of five-min, after which the clock offset error is usually no more than a millisecond. The measurement interval can be changed using the stepout option of the tinker command.
Another concern at restart is the time necessary for the select and cluster algorithms to refine and validate the initial clock offset estimate. Normally, this takes several updates before setting the system clock. As the default minimum poll interval in most configurations is about one minute, it can take several minutes before setting the system clock. The iburst option of the server command changes the behavior at restart and is recommended for client/server configurations. When this option is enabled, the client sends a volley of six requests at intervals of two seconds. This usually insures a reliable estimate is available in about ten seconds before setting the clock. Once this initial volley is complete, the procedures described above are executed.
As a result of the above considerations, when a backup source, such as the local clock driver, ACTS modem driver or orphan mode is included in the system configuration, it may happen that one or more of them are selectable before one or more of the regular sources are selectable. When backup sources are included in the configuration, the reference implementation waits an interval of several minutes without regular sources before switching to backup sources. This is generally enough to avoid startup transients due to premature switching to backup sources. The interval can be changed using the orphanwait option of the tos command.
Last update: 19-Apr-2012 17:30 UTC
At the heart of the NTP specification and reference implementation is the clock discipline algorithm, which is best described as an adaptive parameter, hybrid phase/frequency-lock feedback loop. It is an intricately crafted algorithm that automatically adapts for optimum performance while minimizing network overhead. Operation is in two modes, phase-lock loop (PLL), which is used at poll intervals below the Allan intercept, by default 2048 s, and frequency-lock loop (FLL), which is used above that.
Figure 1. Clock Discipline Algorithm
A block diagram of the clock discipline is shown in Figure 1. The timestamp of a reference clock or remote server is compared with the timestamp of the system clock, represented as a variable frequency oscillator (VFO), to produce a raw offset sample Vd. Offset samples are processed by the clock filter to produce a filtered update Vs. The loop filter implements a type-2 proportional-integrator controller (PIC). The PIC can minimize errors in both time and frequency using predictors x and y, respectively. The clock adjust process samples these predictors once each second for the daemon discipline or once each tick interrupt for the kernel discipline to produce the system clock update Vc.
In PLL mode the frequency predictor is an integral of the offset over past updates, while the phase predictor is the offset amortized over time in order to avoid setting the clock backward. In FLL mode the phase predictor is not used, while the frequency predictor is similar to the NIST lockclock algorithm. In this algorithm, the frequency predictor is computed as a fraction of the current offset divided by the time since the last update in order to minimize the offset at the next update.
The discipline response in PLL mode is determined by the time constant, which results in a "stiffness" depending on the jitter of the available sources and the wander of the system clock oscillator. The scaled time constant is also used as the poll interval described on the Poll Program page. However, in NTP symmetric mode, each peer manages its own poll interval and the two might not be the same. In such cases either peer uses the minimum of its own poll interval and that of the other peer, which is included in the NTP packet header.
It is necessary to verify that the clock discipline algorithm is stable and satisfies the Nyquist criterion, which requires that the sampling rate be at least twice the bandwidth. In this case the bandwidth can be approximated by the reciprocal of the time constant. In the NTP specification and reference implementation, time constants and poll intervals are expressed as exponents of 2. By construction, the time constant exponent is five times the poll interval exponent. Thus, the default poll exponent of 6 corresponds to a poll interval of 64 s and a time constant of 2048 s. A change in the poll interval changes the time constant by a corresponding amount.. The Nyquist criterion requires the sample interval to be not more than half the time constant or 1024 s. The clock filter guarantees at least one sample in eight poll intervals, so the sample interval is not more than 512 s. This would be described as oversampling by a factor of two. Finally, the PLL parameters have been chosen for a damping factor of 2, which results in a much faster risetime than with critical damping, but results in modest overshoot of 6 percent.
It is important to understand how the dynamics of the PLL are affected by the time constant and poll interval. At the default poll interval of 64 s and a step offset change of 100 ms, the time response crosses zero in about 50 min and overshoots about 6 ms, as per design. Ordinarily, a step correction would causes a temporary frequency surge of about 5 PPM, which along with the overshoot slowly dissipates over a few hours.
However, the clock state machine used with the discipline algorithm avoids this transient at startup. It does this using a previously saved frequency file, if present, or by measuring the oscillator frequency, if not. It then quickly amortizes the residual offset at startup without affecting the oscillator frequency. In this way the offset error is less than 0.5 ms within 5 min, if the file is present, and within 10 min if not. See the Clock State Machine page for further details.
Since the PLL is linear, the response with different offset step amplitudes and poll intervals has the same characteristic shape, but scaled differently in amplitude and time. The response scales exactly with step amplitude, so that the response to a 10-ms step has the same shape as at 64 s, but with amplitude compressed by one-tenth. The response scales exactly with poll interval, so that response at a poll interval of 8 s has the same shape as at 64 s, but with time compressed by one-eighth.
The optimum time constant, and thus the poll interval, depends on the network time jitter and the oscillator frequency wander. Errors due to jitter decrease as the time constant increases, while errors due to wander decrease as the time constant decreases. For typical Internet paths, the two error characteristics intersect at a point called the Allan intercept, which represents the optimum time constant. With a compromise Allan intercept of 2048 s, the optimum poll interval is about 64 s, which corresponds to a compromise poll exponent of 6. For fast LANs with modern computers, the Allan intercept is somewhat lower at around 512 s, so a compromise poll exponent of 4 (16 s) is appropriate. An intricate, heuristic algorithm is used to manage the actual poll interval within a specified range. Details are on the Poll Program page.
In the NTPv4 specification and reference implementation a state machine is used to manage the system clock under exceptional conditions, as when the daemon is first started or when encountering severe network congestion. In extreme cases not likely to be encountered in normal operation, the system time can be stepped forward or backward more than 128 ms. Further details are on the Clock State Machine page.
If left running continuously, an NTP client on a fast LAN in a home or office environment can maintain synchronization nominally within one millisecond. When the ambient temperature variations are less than a degree Celsius, the clock oscillator frequency is disciplined to within one part per million (PPM), even when the clock oscillator native frequency offset is 100 PPM or more.
For laptops and portable devices when the power is turned off, the battery backup clock offset error can increase as much as one second per day. When power is restored after several hours or days, the clock offset and oscillator frequency errors must be resolved by the clock discipline algorithm, but this can take several hours without specific provisions.
The provisions described in this section insure that, in all but pathological situations, the startup transient is suppressed to within nominal levels in no more than five minutes after a warm start or ten minutes after a cold start. Following is a summary of these provisions. A detailed discussion of these provisions is on the Clock State Machine page.
The reference implementation measures the clock oscillator frequency and updates a frequency file at intervals of one hour or more, depending on the measured frequency wander. This design is intended to minimize write cycles in NVRAM that might be used in a laptop or portable device. In a warm start, the frequency is initialized from this file, which avoids a possibly lengthy convergence time. In a cold start when no frequency file is available, the reference implementation first measures the oscillator frequency over a five-min interval. This generally results in a residual frequency error less than 1 PPM. The measurement interval can be changed using the stepout option of the tinker command.
In order to reduce the clock offset error at restart, the reference implementation mext disables oscillator frequency discipline and enables clock offset discipline with a small time constant. This is designed to quickly reduce the clock offset error without causing a frequency surge. This configuration is continued for an interval of five-min, after which the clock offset error is usually no more than a millisecond. The measurement interval can be changed using the stepout option of the tinker command.
Another concern at restart is the time necessary for the select and cluster algorithms to refine and validate the initial clock offset estimate. Normally, this takes several updates before setting the system clock. As the default minimum poll interval in most configurations is about one minute, it can take several minutes before setting the system clock. The iburst option of the server command changes the behavior at restart and is recommended for client/server configurations. When this option is enabled, the client sends a volley of six requests at intervals of two seconds. This usually insures a reliable estimate is available in about ten seconds before setting the clock. Once this initial volley is complete, the procedures described above are executed.
As a result of the above considerations, when a backup source, such as the local clock driver, ACTS modem driver or orphan mode is included in the system configuration, it may happen that one or more of them are selectable before one or more of the regular sources are selectable. When backup sources are included in the configuration, the reference implementation waits an interval of several minutes without regular sources before switching to backup sources. This is generally enough to avoid startup transients due to premature switching to backup sources. The interval can be changed using the orphanwait option of the tos command.
Last update: 19-Apr-2012 17:30 UTC
At the heart of the NTP specification and reference implementation is the clock discipline algorithm, which is best described as an adaptive parameter, hybrid phase/frequency-lock feedback loop. It is an intricately crafted algorithm that automatically adapts for optimum performance while minimizing network overhead. Operation is in two modes, phase-lock loop (PLL), which is used at poll intervals below the Allan intercept, by default 2048 s, and frequency-lock loop (FLL), which is used above that.
Figure 1. Clock Discipline Algorithm
A block diagram of the clock discipline is shown in Figure 1. The timestamp of a reference clock or remote server is compared with the timestamp of the system clock, represented as a variable frequency oscillator (VFO), to produce a raw offset sample Vd. Offset samples are processed by the clock filter to produce a filtered update Vs. The loop filter implements a type-2 proportional-integrator controller (PIC). The PIC can minimize errors in both time and frequency using predictors x and y, respectively. The clock adjust process samples these predictors once each second for the daemon discipline or once each tick interrupt for the kernel discipline to produce the system clock update Vc.
In PLL mode the frequency predictor is an integral of the offset over past updates, while the phase predictor is the offset amortized over time in order to avoid setting the clock backward. In FLL mode the phase predictor is not used, while the frequency predictor is similar to the NIST lockclock algorithm. In this algorithm, the frequency predictor is computed as a fraction of the current offset divided by the time since the last update in order to minimize the offset at the next update.
The discipline response in PLL mode is determined by the time constant, which results in a "stiffness" depending on the jitter of the available sources and the wander of the system clock oscillator. The scaled time constant is also used as the poll interval described on the Poll Program page. However, in NTP symmetric mode, each peer manages its own poll interval and the two might not be the same. In such cases either peer uses the minimum of its own poll interval and that of the other peer, which is included in the NTP packet header.
It is necessary to verify that the clock discipline algorithm is stable and satisfies the Nyquist criterion, which requires that the sampling rate be at least twice the bandwidth. In this case the bandwidth can be approximated by the reciprocal of the time constant. In the NTP specification and reference implementation, time constants and poll intervals are expressed as exponents of 2. By construction, the time constant exponent is five times the poll interval exponent. Thus, the default poll exponent of 6 corresponds to a poll interval of 64 s and a time constant of 2048 s. A change in the poll interval changes the time constant by a corresponding amount.. The Nyquist criterion requires the sample interval to be not more than half the time constant or 1024 s. The clock filter guarantees at least one sample in eight poll intervals, so the sample interval is not more than 512 s. This would be described as oversampling by a factor of two. Finally, the PLL parameters have been chosen for a damping factor of 2, which results in a much faster risetime than with critical damping, but results in modest overshoot of 6 percent.
It is important to understand how the dynamics of the PLL are affected by the time constant and poll interval. At the default poll interval of 64 s and a step offset change of 100 ms, the time response crosses zero in about 50 min and overshoots about 6 ms, as per design. Ordinarily, a step correction would causes a temporary frequency surge of about 5 PPM, which along with the overshoot slowly dissipates over a few hours.
However, the clock state machine used with the discipline algorithm avoids this transient at startup. It does this using a previously saved frequency file, if present, or by measuring the oscillator frequency, if not. It then quickly amortizes the residual offset at startup without affecting the oscillator frequency. In this way the offset error is less than 0.5 ms within 5 min, if the file is present, and within 10 min if not. See the Clock State Machine page for further details.
Since the PLL is linear, the response with different offset step amplitudes and poll intervals has the same characteristic shape, but scaled differently in amplitude and time. The response scales exactly with step amplitude, so that the response to a 10-ms step has the same shape as at 64 s, but with amplitude compressed by one-tenth. The response scales exactly with poll interval, so that response at a poll interval of 8 s has the same shape as at 64 s, but with time compressed by one-eighth.
The optimum time constant, and thus the poll interval, depends on the network time jitter and the oscillator frequency wander. Errors due to jitter decrease as the time constant increases, while errors due to wander decrease as the time constant decreases. For typical Internet paths, the two error characteristics intersect at a point called the Allan intercept, which represents the optimum time constant. With a compromise Allan intercept of 2048 s, the optimum poll interval is about 64 s, which corresponds to a compromise poll exponent of 6. For fast LANs with modern computers, the Allan intercept is somewhat lower at around 512 s, so a compromise poll exponent of 4 (16 s) is appropriate. An intricate, heuristic algorithm is used to manage the actual poll interval within a specified range. Details are on the Poll Program page.
In the NTPv4 specification and reference implementation a state machine is used to manage the system clock under exceptional conditions, as when the daemon is first started or when encountering severe network congestion. In extreme cases not likely to be encountered in normal operation, the system time can be stepped forward or backward more than 128 ms. Further details are on the Clock State Machine page.
If left running continuously, an NTP client on a fast LAN in a home or office environment can maintain synchronization nominally within one millisecond. When the ambient temperature variations are less than a degree Celsius, the clock oscillator frequency is disciplined to within one part per million (PPM), even when the clock oscillator native frequency offset is 100 PPM or more.
For laptops and portable devices when the power is turned off, the battery backup clock offset error can increase as much as one second per day. When power is restored after several hours or days, the clock offset and oscillator frequency errors must be resolved by the clock discipline algorithm, but this can take several hours without specific provisions.
The provisions described in this section insure that, in all but pathological situations, the startup transient is suppressed to within nominal levels in no more than five minutes after a warm start or ten minutes after a cold start. Following is a summary of these provisions. A detailed discussion of these provisions is on the Clock State Machine page.
The reference implementation measures the clock oscillator frequency and updates a frequency file at intervals of one hour or more, depending on the measured frequency wander. This design is intended to minimize write cycles in NVRAM that might be used in a laptop or portable device. In a warm start, the frequency is initialized from this file, which avoids a possibly lengthy convergence time. In a cold start when no frequency file is available, the reference implementation first measures the oscillator frequency over a five-min interval. This generally results in a residual frequency error less than 1 PPM. The measurement interval can be changed using the stepout option of the tinker command.
In order to reduce the clock offset error at restart, the reference implementation mext disables oscillator frequency discipline and enables clock offset discipline with a small time constant. This is designed to quickly reduce the clock offset error without causing a frequency surge. This configuration is continued for an interval of five-min, after which the clock offset error is usually no more than a millisecond. The measurement interval can be changed using the stepout option of the tinker command.
Another concern at restart is the time necessary for the select and cluster algorithms to refine and validate the initial clock offset estimate. Normally, this takes several updates before setting the system clock. As the default minimum poll interval in most configurations is about one minute, it can take several minutes before setting the system clock. The iburst option of the server command changes the behavior at restart and is recommended for client/server configurations. When this option is enabled, the client sends a volley of six requests at intervals of two seconds. This usually insures a reliable estimate is available in about ten seconds before setting the clock. Once this initial volley is complete, the procedures described above are executed.
As a result of the above considerations, when a backup source, such as the local clock driver, ACTS modem driver or orphan mode is included in the system configuration, it may happen that one or more of them are selectable before one or more of the regular sources are selectable. When backup sources are included in the configuration, the reference implementation waits an interval of several minutes without regular sources before switching to backup sources. This is generally enough to avoid startup transients due to premature switching to backup sources. The interval can be changed using the orphanwait option of the tos command.