head 1.1; branch 1.1.1; access; symbols netbsd-11-0-RC5:1.1.1.3 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.36 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.34 perseant-exfatfs-base:1.1.1.3 netbsd-8-3-RELEASE:1.1.1.3 netbsd-9-4-RELEASE:1.1.1.3 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.32 netbsd-10-base:1.1.1.3 ntp-4-2-8p15:1.1.1.3 netbsd-9-3-RELEASE:1.1.1.3 cjep_sun2x-base1:1.1.1.3 cjep_sun2x:1.1.1.3.0.30 cjep_sun2x-base:1.1.1.3 cjep_staticlib_x-base1:1.1.1.3 netbsd-9-2-RELEASE:1.1.1.3 cjep_staticlib_x:1.1.1.3.0.28 cjep_staticlib_x-base:1.1.1.3 netbsd-9-1-RELEASE:1.1.1.3 ntp-4-2-8p14:1.1.1.3 phil-wifi-20200421:1.1.1.3 phil-wifi-20200411:1.1.1.3 is-mlppp:1.1.1.3.0.26 is-mlppp-base:1.1.1.3 phil-wifi-20200406:1.1.1.3 netbsd-8-2-RELEASE:1.1.1.3 netbsd-9-0-RELEASE:1.1.1.3 netbsd-9-0-RC2:1.1.1.3 netbsd-9-0-RC1:1.1.1.3 phil-wifi-20191119:1.1.1.3 netbsd-9:1.1.1.3.0.24 netbsd-9-base:1.1.1.3 phil-wifi-20190609:1.1.1.3 netbsd-8-1-RELEASE:1.1.1.3 netbsd-8-1-RC1:1.1.1.3 pgoyette-compat-merge-20190127:1.1.1.3 pgoyette-compat-20190127:1.1.1.3 pgoyette-compat-20190118:1.1.1.3 pgoyette-compat-1226:1.1.1.3 pgoyette-compat-1126:1.1.1.3 pgoyette-compat-1020:1.1.1.3 pgoyette-compat-0930:1.1.1.3 ntp-4-2-8p12:1.1.1.3 pgoyette-compat-0906:1.1.1.3 netbsd-7-2-RELEASE:1.1.1.2.4.1 pgoyette-compat-0728:1.1.1.3 netbsd-8-0-RELEASE:1.1.1.3 phil-wifi:1.1.1.3.0.22 phil-wifi-base:1.1.1.3 pgoyette-compat-0625:1.1.1.3 netbsd-8-0-RC2:1.1.1.3 pgoyette-compat-0521:1.1.1.3 pgoyette-compat-0502:1.1.1.3 pgoyette-compat-0422:1.1.1.3 netbsd-8-0-RC1:1.1.1.3 pgoyette-compat-0415:1.1.1.3 pgoyette-compat-0407:1.1.1.3 ntp-4-2-8p11:1.1.1.3 pgoyette-compat-0330:1.1.1.3 pgoyette-compat-0322:1.1.1.3 pgoyette-compat-0315:1.1.1.3 netbsd-7-1-2-RELEASE:1.1.1.2.4.1 pgoyette-compat:1.1.1.3.0.20 pgoyette-compat-base:1.1.1.3 netbsd-7-1-1-RELEASE:1.1.1.2.4.1 matt-nb8-mediatek:1.1.1.3.0.18 matt-nb8-mediatek-base:1.1.1.3 perseant-stdc-iso10646:1.1.1.3.0.16 perseant-stdc-iso10646-base:1.1.1.3 netbsd-8:1.1.1.3.0.14 netbsd-8-base:1.1.1.3 prg-localcount2-base3:1.1.1.3 prg-localcount2-base2:1.1.1.3 prg-localcount2-base1:1.1.1.3 prg-localcount2:1.1.1.3.0.12 prg-localcount2-base:1.1.1.3 pgoyette-localcount-20170426:1.1.1.3 bouyer-socketcan-base1:1.1.1.3 ntp-4-2-8p10:1.1.1.3 pgoyette-localcount-20170320:1.1.1.3 netbsd-7-1:1.1.1.2.4.1.0.6 netbsd-7-1-RELEASE:1.1.1.2.4.1 netbsd-7-1-RC2:1.1.1.2.4.1 netbsd-7-nhusb-base-20170116:1.1.1.2.4.1 bouyer-socketcan:1.1.1.3.0.10 bouyer-socketcan-base:1.1.1.3 pgoyette-localcount-20170107:1.1.1.3 netbsd-7-1-RC1:1.1.1.2.4.1 ntp-4-2-8p9:1.1.1.3 pgoyette-localcount-20161104:1.1.1.3 netbsd-7-0-2-RELEASE:1.1.1.2.4.1 localcount-20160914:1.1.1.3 netbsd-7-nhusb:1.1.1.2.4.1.0.4 netbsd-7-nhusb-base:1.1.1.2.4.1 pgoyette-localcount-20160806:1.1.1.3 pgoyette-localcount-20160726:1.1.1.3 pgoyette-localcount:1.1.1.3.0.8 pgoyette-localcount-base:1.1.1.3 ntp-4-2-8p8:1.1.1.3 netbsd-7-0-1-RELEASE:1.1.1.2.4.1 ntp-4-2-8p7:1.1.1.3 ntp-4-2-8p5:1.1.1.3 ntp-4-2-8p4:1.1.1.3 netbsd-7-0:1.1.1.2.4.1.0.2 netbsd-7-0-RELEASE:1.1.1.2.4.1 netbsd-7-0-RC3:1.1.1.2.4.1 netbsd-7-0-RC2:1.1.1.2.4.1 ntp-4-2-8p3:1.1.1.3 netbsd-7-0-RC1:1.1.1.2.4.1 ntp-4-2-8p2:1.1.1.3 netbsd-5-1:1.1.1.3.0.6 netbsd-5-2:1.1.1.3.0.4 netbsd-5:1.1.1.3.0.2 ntp-4-2-8:1.1.1.3 netbsd-6-0-6-RELEASE:1.1.1.1 netbsd-6-1-5-RELEASE:1.1.1.1 netbsd-7:1.1.1.2.0.4 netbsd-7-base:1.1.1.2 yamt-pagecache-base9:1.1.1.2 yamt-pagecache-tag8:1.1.1.1 netbsd-6-1-4-RELEASE:1.1.1.1 netbsd-6-0-5-RELEASE:1.1.1.1 tls-earlyentropy:1.1.1.2.0.2 tls-earlyentropy-base:1.1.1.2 riastradh-xf86-video-intel-2-7-1-pre-2-21-15:1.1.1.2 riastradh-drm2-base3:1.1.1.2 netbsd-6-1-3-RELEASE:1.1.1.1 netbsd-6-0-4-RELEASE:1.1.1.1 ntp-2-4-7p404:1.1.1.2 netbsd-6-1-2-RELEASE:1.1.1.1 netbsd-6-0-3-RELEASE:1.1.1.1 netbsd-6-1-1-RELEASE:1.1.1.1 riastradh-drm2-base2:1.1.1.1 riastradh-drm2-base1:1.1.1.1 riastradh-drm2:1.1.1.1.0.16 riastradh-drm2-base:1.1.1.1 netbsd-6-1:1.1.1.1.0.22 netbsd-6-0-2-RELEASE:1.1.1.1 netbsd-6-1-RELEASE:1.1.1.1 khorben-n900:1.1.1.1.0.20 netbsd-6-1-RC4:1.1.1.1 netbsd-6-1-RC3:1.1.1.1 agc-symver:1.1.1.1.0.18 agc-symver-base:1.1.1.1 netbsd-6-1-RC2:1.1.1.1 netbsd-6-1-RC1:1.1.1.1 yamt-pagecache-base8:1.1.1.1 netbsd-6-0-1-RELEASE:1.1.1.1 yamt-pagecache-base7:1.1.1.1 matt-nb6-plus-nbase:1.1.1.1 yamt-pagecache-base6:1.1.1.1 netbsd-6-0:1.1.1.1.0.14 netbsd-6-0-RELEASE:1.1.1.1 netbsd-6-0-RC2:1.1.1.1 tls-maxphys:1.1.1.1.0.12 tls-maxphys-base:1.1.1.2 matt-nb6-plus:1.1.1.1.0.10 matt-nb6-plus-base:1.1.1.1 netbsd-6-0-RC1:1.1.1.1 yamt-pagecache-base5:1.1.1.1 yamt-pagecache-base4:1.1.1.1 netbsd-6:1.1.1.1.0.8 netbsd-6-base:1.1.1.1 ntp-4-2-6p5:1.1.1.1 yamt-pagecache-base3:1.1.1.1 yamt-pagecache-base2:1.1.1.1 yamt-pagecache:1.1.1.1.0.6 yamt-pagecache-base:1.1.1.1 cherry-xenmp:1.1.1.1.0.4 cherry-xenmp-base:1.1.1.1 bouyer-quota2-nbase:1.1.1.1 bouyer-quota2:1.1.1.1.0.2 bouyer-quota2-base:1.1.1.1 matt-mips64-premerge-20101231:1.1.1.1 matt-premerge-20091211:1.1.1.1 ntp-4-2-6:1.1.1.1 UDEL:1.1.1; locks; strict; comment @# @; 1.1 date 2009.12.13.16.54.04; author kardel; state Exp; branches 1.1.1.1; next ; 1.1.1.1 date 2009.12.13.16.54.04; author kardel; state Exp; branches 1.1.1.1.6.1 1.1.1.1.8.1 1.1.1.1.12.1 1.1.1.1.14.1 1.1.1.1.22.1; next 1.1.1.2; 1.1.1.2 date 2013.12.27.23.30.37; author christos; state Exp; branches 1.1.1.2.4.1; next 1.1.1.3; commitid lUOr4MoxyTWJnPix; 1.1.1.3 date 2014.12.19.20.37.36; author christos; state Exp; branches 1.1.1.3.2.1 1.1.1.3.4.1 1.1.1.3.6.1; next ; commitid ZhiTe4k7DUh9XG2y; 1.1.1.1.6.1 date 2014.05.22.15.50.05; author yamt; state Exp; branches; next ; commitid qRWX0Nj0VOtU8yBx; 1.1.1.1.8.1 date 2014.12.25.02.34.31; author snj; state Exp; branches; next ; commitid JG3hF57oHA79Lm3y; 1.1.1.1.12.1 date 2014.08.19.23.51.38; author tls; state Exp; branches; next ; commitid jTnpym9Qu0o4R1Nx; 1.1.1.1.14.1 date 2014.12.25.02.28.03; author snj; state Exp; branches; next ; commitid 5AhJfEA9N5i2Jm3y; 1.1.1.1.22.1 date 2014.12.25.02.13.00; author snj; state Exp; branches; next ; commitid YfAuzsC3wt5BDm3y; 1.1.1.2.4.1 date 2014.12.24.00.05.15; author riz; state Exp; branches; next ; commitid KfwYQsQPJT87Yd3y; 1.1.1.3.2.1 date 2014.12.19.20.37.36; author msaitoh; state dead; branches; next 1.1.1.3.2.2; commitid ysuzPTeSQAKO335y; 1.1.1.3.2.2 date 2015.01.07.04.45.23; author msaitoh; state Exp; branches; next ; commitid ysuzPTeSQAKO335y; 1.1.1.3.4.1 date 2014.12.19.20.37.36; author msaitoh; state dead; branches; next 1.1.1.3.4.2; commitid d5X8VW3e9U6mR45y; 1.1.1.3.4.2 date 2015.01.07.10.10.05; author msaitoh; state Exp; branches; next ; commitid d5X8VW3e9U6mR45y; 1.1.1.3.6.1 date 2014.12.19.20.37.36; author msaitoh; state dead; branches; next 1.1.1.3.6.2; commitid cHl8i0Vq4fzxx55y; 1.1.1.3.6.2 date 2015.01.07.12.13.15; author msaitoh; state Exp; branches; next ; commitid cHl8i0Vq4fzxx55y; desc @@ 1.1 log @Initial revision @ text @ Radio WWV/H Audio Demodulator/Decoder

Radio WWV/H Audio Demodulator/Decoder


Synopsis

Address: 127.127.36.u
Reference ID: WVf or WHf
Driver ID: WWV_AUDIO
Autotune Port: /dev/icom; 1200/9600 baud, 8-bits, no parity
Audio Device: /dev/audio and /dev/audioctl

Description

This driver synchronizes the computer time using shortwave radio transmissions from NIST time/frequency stations WWV in Ft. Collins, CO, and WWVH in Kauai, HI. Transmissions are made continuously on 2.5, 5, 10 and 15 MHz from both stations and on 20 MHz from WWV. An ordinary shortwave receiver can be tuned manually to one of these frequencies or, in the case of ICOM receivers, the receiver can be tuned automatically by the driver as propagation conditions change throughout the day and season. The radio is connected via an optional attenuator and cable to either the microphone or line-in port of a workstation or PC.

The driver requires an audio codec or sound card with sampling rate 8 kHz and m-law companding to demodulate the data. This is the same standard as used by the telephone industry and is supported by most hardware and operating systems, including Solaris, FreeBSD and Linux, among others. In this implementation only one audio driver and codec can be supported on a single machine. In order to assure reliable signal capture, the codec frequency error must be less than 187 PPM (.0187 percent). If necessary, the tinker codec configuration command can be used to bracket the codec frequency to this range.

In general and without calibration, the driver is accurate within 1 ms relative to the broadcast time when tracking a station. However, variations up to 0.3 ms can be expected due to diurnal variations in ionospheric layer height and ray geometry. In Newark DE, 2479 km from the transmitter, the predicted two-hop propagation delay varies from 9.3 ms in sunlight to 9.0 ms in moonlight. When not tracking the station the accuracy depends on the computer clock oscillator stability, ordinarily better than 0.5 PPM.

After calibration relative to the PPS signal from a GPS receiver, the mean offset with a 2.4-GHz P4 running FreeBSD 6.1 is generally within 0.1 ms short-term with 0.4 ms jitter. The long-term mean offset varies up to 0.3 ms due to propagation path geometry variations. The processor load due to the driver is 0.4 percent on the P4.

The driver performs a number of error checks to protect against overdriven or underdriven input signal levels, incorrect signal format or improper hardware configuration. The specific checks are detailed later in this page. Note that additional checks are done elsewhere in the reference clock interface routines.

This driver incorporates several features in common with other audio drivers such as described in the Radio CHU Audio Demodulator/Decoder and the IRIG Audio Decoder pages. They include automatic gain control (AGC), selectable audio codec port and signal monitoring capabilities. For a discussion of these common features, as well as a guide to hookup, debugging and monitoring, see the Reference Clock Audio Drivers page.

Technical Overview

The driver processes 8-kHz m-law companded codec samples using maximum-likelihood techniques which exploit the considerable degree of redundancy available in the broadcast signal. The WWV signal format is described in NIST Special Publication 432 (Revised 1990) and also available on the WWV/H web site. It consists of three elements, a 5-ms, 1000-Hz pulse, which occurs at the beginning of each second, a 800-ms, 1000-Hz pulse, which occurs at the beginning of each minute, and a pulse-width modulated 100-Hz subcarrier for the data bits, one bit per second. The WWVH format is identical, except that the 1000-Hz pulses are sent at 1200 Hz. Each minute encodes nine BCD digits for the time of century plus seven bits for the daylight savings time (DST) indicator, leap warning indicator and DUT1 correction.

The demodulation and decoding algorithms used by this driver are based on a machine language program developed for the TAPR DSP93 DSP unit, which uses the TI 320C25 DSP chip. The analysis, design and performance of the program for this unit is described in: Mills, D.L. A precision radio clock for WWV transmissions. Electrical Engineering Report 97-8-1, University of Delaware, August 1997, 25 pp. Available from www.eecis.udel.edu/~mills/reports.htm. For use in this driver, the original program was rebuilt in the C language and adapted to the NTP driver interface. The algorithms have been modified to improve performance, especially under weak signal conditions and to provide an automatic frequency and station selection feature.

As in the original program, the clock discipline is modelled as a Markov process, with probabilistic state transitions corresponding to a conventional clock and the probabilities of received decimal digits. The result is a performance level with very high accuracy and reliability, even under conditions when the minute beep of the signal, normally its most prominent feature, can barely be detected by ear using a communications receiver.

Baseband Signal Processing

The 1000/1200-Hz pulses and 100-Hz subcarrier are first separated using a 600-Hz bandpass filter centered on 1100 Hz and a 150-Hz lowpass filter. The minute pulse is extracted using an 800-ms synchronous matched filter and pulse grooming logic which discriminates between WWV and WWVH signals and noise. The second pulse is extracted using a 5-ms FIR matched filter for each station and a single 8000-stage comb filter.

The phase of the 100-Hz subcarrier relative to the second pulse is fixed at the transmitter; however, the audio stage in many radios affects the phase response at 100 Hz in unpredictable ways. The driver adjusts for each radio using two 170-ms synchronous matched filters. The I (in-phase) filter is used to demodulate the subcarrier envelope, while the Q (quadrature-phase) filter is used in a type-1 phase-lock loop (PLL) to discipline the demodulator phase.

A bipolar data signal is determined from the matched filter subcarrier envelope using a pulse-width discriminator. The discriminator samples the I channel at 15 ms (n), 200 ms (s0) and 500 ms (s1), and the envelope (RMS I and Q channels) at 200 ms (e1) and the end of the second (e0). The bipolar data signal is expressed 2s1 - s0 - n, where positive values correspond to data 1 and negative values correspond to data 0. Note that, since the signals s0 and s1 include the noise n, the noise component cancels out. The data bit SNR is calculated as 20 log10(e1 / e0). If the driver has not synchronized to the minute pulse, or if the data bit amplitude e1 or SNR are below thresholds, the bit is considered invalid and the bipolar signal is forced to zero.

The bipolar signal is exponentially averaged in a set of 60 accumulators, one for each second, to determine the semi-static miscellaneous bits, such as DST indicator, leap second warning and DUT1 correction. In this design a data average value larger than a positive threshold is interpreted as +1 (hit) and a value smaller than a negative threshold as a -1 (miss). Values between the two thresholds, which can occur due to signal fades, are interpreted as an erasure and result in no change of indication.

Maximum-Likelihood Decoder

The BCD digit in each digit position of the timecode is represented as four data bits. The bits are correlated with the bits corresponding to each of the valid decimal digits in this position. If any of the four bits are invalid, the correlated value for all digits in this position is assumed zero. In either case, the values for all digits are exponentially averaged in a likelihood vector associated with this position. The digit associated with the maximum over all averaged values then becomes the maximum-likelihood candidate for this position and the ratio of the maximum over the next lower value represents the digit SNR.

The decoding matrix contains nine row vectors, one for each digit position. Each row vector includes the maximum-likelihood digit, likelihood vector and other related data. The maximum-likelihood digit for each of the nine digit positions becomes the maximum-likelihood time of the century. A built-in transition function implements a conventional clock with decimal digits that count the minutes, hours, days and years, as corrected for leap seconds and leap years. The counting operation also rotates the likelihood vector corresponding to each digit as it advances. Thus, once the clock is set, each clock digit should correspond to the maximum-likelihood digit as transmitted.

Each row of the decoding matrix also includes a compare counter and the most recently determined maximum-likelihood digit. If a digit likelihood exceeds the decision level and compares with previous digits for a number of successive minutes in any row, the maximum-likelihood digit replaces the clock digit in that row. When this condition is true for all rows and the second epoch has been reliably determined, the clock is set (or verified if it has already been set) and delivers correct time to the integral second. The fraction within the second is derived from the logical master clock, which runs at 8000 Hz and drives all system timing functions.

Master Clock Discipline

The logical master clock is derived from the audio codec clock. Its frequency is disciplined by a frequency-lock loop (FLL) which operates independently of the data recovery functions. The maximum value of the 5-ms pulse after the comb filter represents the on-time epoch of the second. At averaging intervals determined by the measured jitter, the frequency error is calculated as the difference between the epoches over the interval divided by the interval itself. The sample clock frequency is then corrected by this amount divided by a time constant of 8.

When first started, the frequency averaging interval is 8 seconds, in order to compensate for intrinsic codec clock frequency offsets up to 125 PPM. Under most conditions, the averaging interval doubles in stages from the initial value to 1024 s, which results in an ultimate frequency resolution of 0.125 PPM, or about 11 ms/day.

The data demodulation functions operate using the subcarrier clock, which is independent of the epoch. However, the data decoding functions are driven by the epoch. The decoder is phase-locked to the epoch in such a way that, when the clock state machine has reliably decoded the broadcast time to the second, the epoch timestamp of that second becomes a candidate to set the system clock.

The comb filter can have a long memory and is vulnerable to noise and stale data, especially when coming up after a long fade. Therefore, a candidate is considered valid only if the 5-ms signal amplitude and SNR are above thresholds. In addition, the system clock is not set until after one complete averaging interval has passed with valid candidates.

Station Identification

It is important that the logical clock frequency is stable and accurately determined, since in many applications the shortwave radio will be tuned to a fixed frequency where WWV or WWVH signals are not available throughout the day. In addition, in some parts of the US, especially on the west coast, signals from either or both WWV and WWVH may be available at different times or even at the same time. Since the propagation times from either station are almost always different, each station must be reliably identified before attempting to set the clock.

Reliable station identification requires accurate discrimination between very weak signals in noise and noise alone. The driver very aggressively soaks up every scrap of signal information, but has to be careful to avoid making pseudo-sense of noise alone. The signal quality metric depends on the minute pulse amplitude and SNR measured in second 0 of the minute, together with the data subcarrier amplitude and SNR measured in second 1. If all four values are above defined thresholds a hit is declared, otherwise a miss. In principle, the data pulse in second 58 is usable, but the AGC in most radios is not fast enough for a reliable measurement.

The number of hits declared in the last 6 minutes for each station represents the high order bits of the metric, while the current minute pulse amplitude represents the low order bits. Only if the metric is above a defined threshold is the station signal considered acceptable. The metric is also used by the autotune function described below and reported in the timecode string.

Performance

It is the intent of the design that the accuracy and stability of the indicated time be limited only by the characteristics of the ionospheric propagation medium. Conventional wisdom is that manual synchronization via oscilloscope and HF medium is good only to a millisecond under the best propagation conditions. The performance of the NTP daemon disciplined by this driver is clearly better than this, even under marginal conditions.

The figure below shows the measured offsets over a typical day near the bottom of the sunspot cycle ending in October, 2006. Variations up to ±0.4 ms can be expected due to changing ionospheric layer height and ray geometry over the day and night.

gif

The figure was constructed using a 2.4-GHz P4 running FreeBSD 6.1. For these measurements the computer clock was disciplined within a few microseconds of UTC using a PPS signal and GPS receiver and the measured offsets determined from the filegen peerstats data.

The predicted propagation delay from the WWV transmitter at Boulder, CO, to the receiver at Newark, DE, varies over 9.0-9.3 ms. In addition, the receiver contributes 4.7 ms and the 600-Hz bandpass filter 0.9 ms. With these values, the mean error is less than 0.1 ms and varies ±0.3 ms over the day as the result of changing ionospheric height and ray geometry.

Program Operation

The driver begins operation immediately upon startup. It first searches for one or both of the stations WWV and WWVH and attempts to acquire minute synch. This may take some fits and starts, as the driver expects to see several consecutive minutes with good signals and low jitter. If the autotune function is active, the driver will rotate over all five frequencies and both WWV and WWVH stations until finding a station and frequency with acceptable metric.

While this is going on the the driver acquires second synch, which can take up to several minutes, depending on signal quality. When minute synch has been acquired, the driver accumulates likelihood values for the unit (seconds) digit of the nine timecode digits, plus the seven miscellaneous bits included in the WWV/H transmission format. When a good unit digit has been found, the driver accumulated likelihood values for the remaining eight digits of the timecode. When three repetitions of all nine digits have decoded correctly, which normally takes 15 minutes with good signals, and up to 40 minutes when buried in noise, and the second synch has been acquired, the clock is set (or verified) and is selectable to discipline the system clock.

Once the clock is set, it continues to provide correct timecodes as long as the signal metric is above threshold, as described in the previous section. As long as the clock is correctly set or verified, the system clock offsets are provided once each minute to the reference clock interface, where they are processed using the same algorithms as with other reference clocks and remote servers.

It may happen as the hours progress around the clock that WWV and WWVH signals may appear alone, together or not at all. When the driver has mitigated which station and frequency is best, it sets the reference identifier to the string WVf for WWV and WHf for WWVH, where f is the frequency in megahertz. If the propagation delays have been properly set with the fudge time1 (WWV) and fudge time2 (WWVH) commands in the configuration file, handover from one station to the other is seamless.

Operation continues as long as the signal metric from at least one station on at least one frequency is acceptable. A consequence of this design is that, once the clock is set, the time and frequency are disciplined only by the second synch pulse and the clock digits themselves are driven by the clock state machine. If for some reason the state machine drifts to the wrong second, it would never resynchronize. To protect against this most unlikely situation, if after two days with no signals, the clock is considered unset and resumes the synchronization procedure from the beginning.

Once the system clock been set correctly it will continue to read correctly even during the holdover interval, but with increasing dispersion. Assuming the system clock frequency can be disciplined within 1 PPM, it can coast without signals for several days without exceeding the NTP step threshold of 128 ms. During such periods the root distance increases at 15 ms per second, which makes the driver appear less likely for selection as time goes on. Eventually, when the distance due all causes exceeds 1 s, it is no longer suitable for synchronization. Ordinarily, this happens after about 18 hours with no signals. The tinker maxdist configuration command can be used to change this value.

Autotune

The driver includes provisions to automatically tune the radio in response to changing radio propagation conditions throughout the day and night. The radio interface is compatible with the ICOM CI-V standard, which is a bidirectional serial bus operating at TTL levels. The bus can be connected to a standard serial port using a level converter such as the CT-17. Further details are on the Reference Clock Audio Drivers page.

If specified, the driver will attempt to open the device /dev/icom and, if successful will activate the autotune function and tune the radio to each operating frequency in turn while attempting to acquire minute synch from either WWV or WWVH. However, the driver is liberal in what it assumes of the configuration. If the /dev/icom link is not present or the open fails or the CI-V bus is inoperative, the driver quietly gives up with no harm done.

Once acquiring minute synch, the driver operates as described above to set the clock. However, during seconds 59, 0 and 1 of each minute it tunes the radio to one of the five broadcast frequencies to measure the signal metric as described above. Each of the five frequencies are probed in a five-minute rotation to build a database of current propagation conditions for all signals that can be heard at the time. At the end of each probe a mitigation procedure scans the database and retunes the radio to the best frequency and station found. For this to work well, the radio should be set for a fast AGC recovery time. This is most important while tracking a strong signal, which is normally the case, and then probing another frequency, which may have much weaker signals.

The mitigation procedure selects the frequency and station with the highest valid metric, ties going first to the highest frequency and then to WWV in order. A station is considered valid only if the metric is above a specified threshold; if no station is above the metric, the rotating probes continue until a valid station is found.

The behavior of the autotune function over a typical day is shown in the figure below.

gif

As expected, the lower frequencies prevail when the ray path is in moonlight (0100-1300 UTC) and the higher frequencies when the path is in sunlight (1300-0100 UTC). Note three periods in the figure show zero frequency when signals are below the minimum for all frequencies and stations.

Debugging Aids

The most convenient way to track the driver status is using the ntpq program and the clockvar command. This displays the last determined timecode and related status and error counters, even when the driver is not disciplining the system clock. If the debugging trace feature (-d on the ntpd command line) is enabled, the driver produces detailed status messages as it operates. If the fudge flag 4 is set, these messages are written to the clockstats file. All messages produced by this driver have the prefix wwv for convenient filtering with the Unix grep command.

The autotune process produces diagnostic information along with the timecode. This is very useful for evaluating the performance of the algorithms, as well as radio propagation conditions in general. The message is produced once each minute for each frequency in turn after minute synch has been acquired.

wwv5 status agc epoch secamp/secsnr datamp/datsnr wwv wwvh

where the fields after the wwv5 identifier are: status contains status bits, agc audio gain, epoch second epoch, secamp/secsnr second pulse amplitude/SNR, and wwv and wwvh are two sets of fields, one each for WWV and WWVH. Each of the two fields has the format

ident score metric minamp/minsnr

where ident encodes the station (WV for WWV, WH for WWVH) and frequency (2, 5, 10, 15 or 20), score 32-bit shift register recording the hits (1) and misses (0) of the last 32 probes (hits and misses enter from the right), metric is described above, and minamp/minsnr is the minute pulse ampliture/SNR. An example is:

wwv5 000d 111 5753 3967/20.1 3523/10.2 WV20 bdeff 100 8348/30.0 WH20 0000 1 22/-12.4

There are several other messages that can occur; these are documented in the source listing.

Monitor Data

When enabled by the filegen facility, every received timecode is written to the clockstats file in the following format:

sq yyyy ddd hh:mm:ss l d du lset agc ident metric errs freq avg

The fields beginning with yyyy and extending through du are decoded from the received data and are in fixed-length format. The remaining fields are in variable-length format. The fields are as follows:
s
The synch indicator is initially ? before the clock is set, but turns to space when all nine digits of the timecode are correctly set and the decoder is synchronized to the station within 125 ms.
q
The quality character is a four-bit hexadecimal code showing which alarms have been raised. Each bit is associated with a specific alarm condition according to the following:
0x8
synch alarm. The decoder is not synchronized to the station within 125 ms.
0x4
Digit error alarm. Less than nine decimal digits were found in the last minute.
0x2
Error alarm. More than 40 data bit errors were found in the last minute.
0x1
Compare alarm. A maximum-likelihood digit failed to agree with the current associated clock digit in the last minute.
It is important to note that one or more of the above alarms does not necessarily indicate a clock error, but only that the decoder has detected a marginal condition.
yyyy ddd hh:mm:ss
The timecode format itself is self explanatory. Since the driver latches the on-time epoch directly from the second synch pulse, the seconds fraction is always zero. Although the transmitted timecode includes only the year of century, the Gregorian year is augmented by 2000.
l
The leap second warning is normally space, but changes to L if a leap second is to occur at the end of the month.
d
The DST state is S or D when standard time or daylight time is in effect, respectively. The state is I or O when daylight time is about to go into effect or out of effect, respectively.
du
The DUT sign and magnitude shows the current UT1 offset relative to the displayed UTC time, in deciseconds.
lset
Before the clock is set, the interval since last set is the number of minutes since the driver was started; after the clock is set, this is number of minutes since the decoder was last synchronized to the station within 125 ms.
agc
The audio gain shows the current codec gain setting in the range 0 to 255. Ordinarily, the receiver audio gain control should be set for a value midway in this range.
ident
The station identifier shows the station, WVf for WWV or WHf for WWVH, and frequency f being tracked. If neither station is heard on any frequency, the reference identifier shows NONE.
metric
The signal metric described above from 0 (no signal) to 100 (best).
errs
The bit error counter is useful to determine the quality of the data signal received in the most recent minute. It is normal to drop a couple of data bits even under good signal conditions and increasing numbers as conditions worsen. While the decoder performs moderately well even with half the bits are in error in any minute, usually by that point the metric drops below threshold and the decoder switches to a different frequency.
freq
The frequency offset is the current estimate of the codec frequency offset to within 0.1 PPM. This may wander a bit over the day due to local temperature fluctuations and propagation conditions.
avg
The averaging time is the interval between frequency updates in powers of two to a maximum of 1024 s. Attainment of the maximum indicates the driver is operating at the best possible resolution in time and frequency.

An example timecode is:

0 2000 006 22:36:00 S +3 1 115 WV20 86 5 66.4 1024

Here the clock has been set and no alarms are raised. The year, day and time are displayed along with no leap warning, standard time and DUT +0.3 s. The clock was set on the last minute, the AGC is safely in the middle ot the range 0-255, and the receiver is tracking WWV on 20 MHz. Good receiving conditions prevail, as indicated by the metric 86 and 5 bit errors during the last minute. The current frequency is 66.4 PPM and the averaging interval is 1024 s, indicating the maximum precision available.

Fudge Factors

time1 time
Specifies the propagation delay for WWV (40:40:49.0N 105:02:27.0W), in seconds and fraction, with default 0.0.
time2 time
Specifies the propagation delay for WWVH (21:59:26.0N 159:46:00.0W), in seconds and fraction, with default 0.0.
stratum number
Specifies the driver stratum, in decimal from 0 to 15, with default 0.
refid string
Ordinarily, this field specifies the driver reference identifier; however, the driver sets the reference identifier automatically as described above.
flag1 0 | 1
Not used by this driver.
flag2 0 | 1
Specifies the microphone port if set to zero or the line-in port if set to one. It does not seem useful to specify the compact disc player port.
flag3 0 | 1
Enables audio monitoring of the input signal. For this purpose, the speaker volume must be set before the driver is started.
flag4 0 | 1
Enable verbose clockstats recording if set.

@ 1.1.1.1 log @Import ntp 4.2.6 @ text @@ 1.1.1.1.8.1 log @Apply patch (requested by christos in ticket #1221): Update ntp to 4.2.8. @ text @d2 1 d4 144 a147 148 Radio WWV/H Audio Demodulator/Decoder

Radio WWV/H Audio Demodulator/Decoder

Author: David L. Mills (mills@@udel.edu)
Last updage: 15-Nov-2012 06:42 UTC


Synopsis

Address: 127.127.36.u
Reference ID: WVf or WHf
Driver ID: WWV_AUDIO
Autotune Port: /dev/icom; 1200/9600 baud, 8-bits, no parity
Audio Device: /dev/audio and /dev/audioctl

Description

This driver synchronizes the computer time using shortwave radio transmissions from NIST time/frequency stations WWV in Ft. Collins, CO, and WWVH in Kauai, HI. Transmissions are made continuously on 2.5, 5, 10 and 15 MHz from both stations and on 20 MHz from WWV. An ordinary shortwave receiver can be tuned manually to one of these frequencies or, in the case of ICOM receivers, the receiver can be tuned automatically by the driver as propagation conditions change throughout the day and season. The radio is connected via an optional attenuator and cable to either the microphone or line-in port of a workstation or PC.

The driver requires an audio codec or sound card with sampling rate 8 kHz and μ-law companding to demodulate the data. This is the same standard as used by the telephone industry and is supported by most hardware and operating systems, including Solaris, FreeBSD and Linux, among others. In this implementation only one audio driver and codec can be supported on a single machine. In order to assure reliable signal capture, the codec frequency error must be less than 187 PPM (.0187 percent). If necessary, the tinker codec configuration command can be used to bracket the codec frequency to this range.

In general and without calibration, the driver is accurate within 1 ms relative to the broadcast time when tracking a station. However, variations up to 0.3 ms can be expected due to diurnal variations in ionospheric layer height and ray geometry. In Newark DE, 2479 km from the transmitter, the predicted two-hop propagation delay varies from 9.3 ms in sunlight to 9.0 ms in moonlight. When not tracking the station the accuracy depends on the computer clock oscillator stability, ordinarily better than 0.5 PPM.

After calibration relative to the PPS signal from a GPS receiver, the mean offset with a 2.4-GHz P4 running FreeBSD 6.1 is generally within 0.1 ms short-term with 0.4 ms jitter. The long-term mean offset varies up to 0.3 ms due to propagation path geometry variations. The processor load due to the driver is 0.4 percent on the P4.

The driver performs a number of error checks to protect against overdriven or underdriven input signal levels, incorrect signal format or improper hardware configuration. The specific checks are detailed later in this page. Note that additional checks are done elsewhere in the reference clock interface routines.

This driver incorporates several features in common with other audio drivers such as described in the Radio CHU Audio Demodulator/Decoder and the IRIG Audio Decoder pages. They include automatic gain control (AGC), selectable audio codec port and signal monitoring capabilities. For a discussion of these common features, as well as a guide to hookup, debugging and monitoring, see the Reference Clock Audio Drivers page.

Technical Overview

The driver processes 8-kHz μ-law companded codec samples using maximum-likelihood techniques which exploit the considerable degree of redundancy available in the broadcast signal. The WWV signal format is described in NIST Special Publication 432 (Revised 1990) and also available on the WWV/H web site. It consists of three elements, a 5-ms, 1000-Hz pulse, which occurs at the beginning of each second, a 800-ms, 1000-Hz pulse, which occurs at the beginning of each minute, and a pulse-width modulated 100-Hz subcarrier for the data bits, one bit per second. The WWVH format is identical, except that the 1000-Hz pulses are sent at 1200 Hz. Each minute encodes nine BCD digits for the time of century plus seven bits for the daylight savings time (DST) indicator, leap warning indicator and DUT1 correction.

The demodulation and decoding algorithms used by this driver are based on a machine language program developed for the TAPR DSP93 DSP unit, which uses the TI 320C25 DSP chip. The analysis, design and performance of the program for this unit is described in: Mills, D.L. A precision radio clock for WWV transmissions. Electrical Engineering Report 97-8-1, University of Delaware, August 1997, 25 pp. Available from www.eecis.udel.edu/~mills/reports.htm. For use in this driver, the original program was rebuilt in the C language and adapted to the NTP driver interface. The algorithms have been modified to improve performance, especially under weak signal conditions and to provide an automatic frequency and station selection feature.

As in the original program, the clock discipline is modelled as a Markov process, with probabilistic state transitions corresponding to a conventional clock and the probabilities of received decimal digits. The result is a performance level with very high accuracy and reliability, even under conditions when the minute beep of the signal, normally its most prominent feature, can barely be detected by ear using a communications receiver.

Baseband Signal Processing

The 1000/1200-Hz pulses and 100-Hz subcarrier are first separated using a 600-Hz bandpass filter centered on 1100 Hz and a 150-Hz lowpass filter. The minute pulse is extracted using an 800-ms synchronous matched filter and pulse grooming logic which discriminates between WWV and WWVH signals and noise. The second pulse is extracted using a 5-ms FIR matched filter for each station and a single 8000-stage comb filter.

The phase of the 100-Hz subcarrier relative to the second pulse is fixed at the transmitter; however, the audio stage in many radios affects the phase response at 100 Hz in unpredictable ways. The driver adjusts for each radio using two 170-ms synchronous matched filters. The I (in-phase) filter is used to demodulate the subcarrier envelope, while the Q (quadrature-phase) filter is used in a type-1 phase-lock loop (PLL) to discipline the demodulator phase.

A bipolar data signal is determined from the matched filter subcarrier envelope using a pulse-width discriminator. The discriminator samples the I channel at 15 ms (n), 200 ms (s0) and 500 ms (s1), and the envelope (RMS I and Q channels) at 200 ms (e1) and the end of the second (e0). The bipolar data signal is expressed 2s1 - s0 - n, where positive values correspond to data 1 and negative values correspond to data 0. Note that, since the signals s0 and s1 include the noise n, the noise component cancels out. The data bit SNR is calculated as 20 log10(e1 / e0). If the driver has not synchronized to the minute pulse, or if the data bit amplitude e1 or SNR are below thresholds, the bit is considered invalid and the bipolar signal is forced to zero.

The bipolar signal is exponentially averaged in a set of 60 accumulators, one for each second, to determine the semi-static miscellaneous bits, such as DST indicator, leap second warning and DUT1 correction. In this design a data average value larger than a positive threshold is interpreted as +1 (hit) and a value smaller than a negative threshold as a -1 (miss). Values between the two thresholds, which can occur due to signal fades, are interpreted as an erasure and result in no change of indication.

Maximum-Likelihood Decoder

The BCD digit in each digit position of the timecode is represented as four data bits. The bits are correlated with the bits corresponding to each of the valid decimal digits in this position. If any of the four bits are invalid, the correlated value for all digits in this position is assumed zero. In either case, the values for all digits are exponentially averaged in a likelihood vector associated with this position. The digit associated with the maximum over all averaged values then becomes the maximum-likelihood candidate for this position and the ratio of the maximum over the next lower value represents the digit SNR.

The decoding matrix contains nine row vectors, one for each digit position. Each row vector includes the maximum-likelihood digit, likelihood vector and other related data. The maximum-likelihood digit for each of the nine digit positions becomes the maximum-likelihood time of the century. A built-in transition function implements a conventional clock with decimal digits that count the minutes, hours, days and years, as corrected for leap seconds and leap years. The counting operation also rotates the likelihood vector corresponding to each digit as it advances. Thus, once the clock is set, each clock digit should correspond to the maximum-likelihood digit as transmitted.

Each row of the decoding matrix also includes a compare counter and the most recently determined maximum-likelihood digit. If a digit likelihood exceeds the decision level and compares with previous digits for a number of successive minutes in any row, the maximum-likelihood digit replaces the clock digit in that row. When this condition is true for all rows and the second epoch has been reliably determined, the clock is set (or verified if it has already been set) and delivers correct time to the integral second. The fraction within the second is derived from the logical master clock, which runs at 8000 Hz and drives all system timing functions.

Master Clock Discipline

The logical master clock is derived from the audio codec clock. Its frequency is disciplined by a frequency-lock loop (FLL) which operates independently of the data recovery functions. The maximum value of the 5-ms pulse after the comb filter represents the on-time epoch of the second. At averaging intervals determined by the measured jitter, the frequency error is calculated as the difference between the epoches over the interval divided by the interval itself. The sample clock frequency is then corrected by this amount divided by a time constant of 8.

When first started, the frequency averaging interval is 8 seconds, in order to compensate for intrinsic codec clock frequency offsets up to 125 PPM. Under most conditions, the averaging interval doubles in stages from the initial value to 1024 s, which results in an ultimate frequency resolution of 0.125 PPM, or about 11 ms/day.

The data demodulation functions operate using the subcarrier clock, which is independent of the epoch. However, the data decoding functions are driven by the epoch. The decoder is phase-locked to the epoch in such a way that, when the clock state machine has reliably decoded the broadcast time to the second, the epoch timestamp of that second becomes a candidate to set the system clock.

The comb filter can have a long memory and is vulnerable to noise and stale data, especially when coming up after a long fade. Therefore, a candidate is considered valid only if the 5-ms signal amplitude and SNR are above thresholds. In addition, the system clock is not set until after one complete averaging interval has passed with valid candidates.

Station Identification

It is important that the logical clock frequency is stable and accurately determined, since in many applications the shortwave radio will be tuned to a fixed frequency where WWV or WWVH signals are not available throughout the day. In addition, in some parts of the US, especially on the west coast, signals from either or both WWV and WWVH may be available at different times or even at the same time. Since the propagation times from either station are almost always different, each station must be reliably identified before attempting to set the clock.

Reliable station identification requires accurate discrimination between very weak signals in noise and noise alone. The driver very aggressively soaks up every scrap of signal information, but has to be careful to avoid making pseudo-sense of noise alone. The signal quality metric depends on the minute pulse amplitude and SNR measured in second 0 of the minute, together with the data subcarrier amplitude and SNR measured in second 1. If all four values are above defined thresholds a hit is declared, otherwise a miss. In principle, the data pulse in second 58 is usable, but the AGC in most radios is not fast enough for a reliable measurement.

The number of hits declared in the last 6 minutes for each station represents the high order bits of the metric, while the current minute pulse amplitude represents the low order bits. Only if the metric is above a defined threshold is the station signal considered acceptable. The metric is also used by the autotune function described below and reported in the timecode string.

Performance

It is the intent of the design that the accuracy and stability of the indicated time be limited only by the characteristics of the ionospheric propagation medium. Conventional wisdom is that manual synchronization via oscilloscope and HF medium is good only to a millisecond under the best propagation conditions. The performance of the NTP daemon disciplined by this driver is clearly better than this, even under marginal conditions.

The figure below shows the measured offsets over a typical day near the bottom of the sunspot cycle ending in October, 2006. Variations up to ±0.4 ms can be expected due to changing ionospheric layer height and ray geometry over the day and night.

gif

The figure was constructed using a 2.4-GHz P4 running FreeBSD 6.1. For these measurements the computer clock was disciplined within a few microseconds of UTC using a PPS signal and GPS receiver and the measured offsets determined from the filegen peerstats data.

The predicted propagation delay from the WWV transmitter at Boulder, CO, to the receiver at Newark, DE, varies over 9.0-9.3 ms. In addition, the receiver contributes 4.7 ms and the 600-Hz bandpass filter 0.9 ms. With these values, the mean error is less than 0.1 ms and varies ±0.3 ms over the day as the result of changing ionospheric height and ray geometry.

Program Operation

The driver begins operation immediately upon startup. It first searches for one or both of the stations WWV and WWVH and attempts to acquire minute synch. This may take some fits and starts, as the driver expects to see several consecutive minutes with good signals and low jitter. If the autotune function is active, the driver will rotate over all five frequencies and both WWV and WWVH stations until finding a station and frequency with acceptable metric.

While this is going on the the driver acquires second synch, which can take up to several minutes, depending on signal quality. When minute synch has been acquired, the driver accumulates likelihood values for the unit (seconds) digit of the nine timecode digits, plus the seven miscellaneous bits included in the WWV/H transmission format. When a good unit digit has been found, the driver accumulated likelihood values for the remaining eight digits of the timecode. When three repetitions of all nine digits have decoded correctly, which normally takes 15 minutes with good signals, and up to 40 minutes when buried in noise, and the second synch has been acquired, the clock is set (or verified) and is selectable to discipline the system clock.

Once the clock is set, it continues to provide correct timecodes as long as the signal metric is above threshold, as described in the previous section. As long as the clock is correctly set or verified, the system clock offsets are provided once each minute to the reference clock interface, where they are processed using the same algorithms as with other reference clocks and remote servers.

It may happen as the hours progress around the clock that WWV and WWVH signals may appear alone, together or not at all. When the driver has mitigated which station and frequency is best, it sets the reference identifier to the string WVf for WWV and WHf for WWVH, where f is the frequency in megahertz. If the propagation delays have been properly set with the fudge time1 (WWV) and fudge time2 (WWVH) commands in the configuration file, handover from one station to the other is seamless.

Operation continues as long as the signal metric from at least one station on at least one frequency is acceptable. A consequence of this design is that, once the clock is set, the time and frequency are disciplined only by the second synch pulse and the clock digits themselves are driven by the clock state machine. If for some reason the state machine drifts to the wrong second, it would never resynchronize. To protect against this most unlikely situation, if after two days with no signals, the clock is considered unset and resumes the synchronization procedure from the beginning.

Once the system clock been set correctly it will continue to read correctly even during the holdover interval, but with increasing dispersion. Assuming the system clock frequency can be disciplined within 1 PPM, it can coast without signals for several days without exceeding the NTP step threshold of 128 ms. During such periods the root distance increases at 15 μs per second, which makes the driver appear less likely for selection as time goes on. Eventually, when the distance due all causes exceeds 1 s, it is no longer suitable for synchronization. Ordinarily, this happens after about 18 hours with no signals. The tinker maxdist configuration command can be used to change this value.

Autotune

The driver includes provisions to automatically tune the radio in response to changing radio propagation conditions throughout the day and night. The radio interface is compatible with the ICOM CI-V standard, which is a bidirectional serial bus operating at TTL levels. The bus can be connected to a standard serial port using a level converter such as the CT-17. Further details are on the Reference Clock Audio Drivers page.

If specified, the driver will attempt to open the device /dev/icom and, if successful will activate the autotune function and tune the radio to each operating frequency in turn while attempting to acquire minute synch from either WWV or WWVH. However, the driver is liberal in what it assumes of the configuration. If the /dev/icom link is not present or the open fails or the CI-V bus is inoperative, the driver quietly gives up with no harm done.

Once acquiring minute synch, the driver operates as described above to set the clock. However, during seconds 59, 0 and 1 of each minute it tunes the radio to one of the five broadcast frequencies to measure the signal metric as described above. Each of the five frequencies are probed in a five-minute rotation to build a database of current propagation conditions for all signals that can be heard at the time. At the end of each probe a mitigation procedure scans the database and retunes the radio to the best frequency and station found. For this to work well, the radio should be set for a fast AGC recovery time. This is most important while tracking a strong signal, which is normally the case, and then probing another frequency, which may have much weaker signals.

The mitigation procedure selects the frequency and station with the highest valid metric, ties going first to the highest frequency and then to WWV in order. A station is considered valid only if the metric is above a specified threshold; if no station is above the metric, the rotating probes continue until a valid station is found.

The behavior of the autotune function over a typical day is shown in the figure below.

gif

As expected, the lower frequencies prevail when the ray path is in moonlight (0100-1300 UTC) and the higher frequencies when the path is in sunlight (1300-0100 UTC). Note three periods in the figure show zero frequency when signals are below the minimum for all frequencies and stations.

Debugging Aids

The most convenient way to track the driver status is using the ntpq program and the clockvar command. This displays the last determined timecode and related status and error counters, even when the driver is not disciplining the system clock. If the debugging trace feature (-d on the ntpd command line) is enabled, the driver produces detailed status messages as it operates. If the fudge flag 4 is set, these messages are written to the clockstats file. All messages produced by this driver have the prefix wwv for convenient filtering with the Unix grep command.

The autotune process produces diagnostic information along with the timecode. This is very useful for evaluating the performance of the algorithms, as well as radio propagation conditions in general. The message is produced once each minute for each frequency in turn after minute synch has been acquired.

wwv5 status agc epoch secamp/secsnr datamp/datsnr wwv wwvh

where the fields after the wwv5 identifier are: status contains status bits, agc audio gain, epoch second epoch, secamp/secsnr second pulse amplitude/SNR, and wwv and wwvh are two sets of fields, one each for WWV and WWVH. Each of the two fields has the format

ident score metric minamp/minsnr

where ident encodes the station (WV for WWV, WH for WWVH) and frequency (2, 5, 10, 15 or 20), score 32-bit shift register recording the hits (1) and misses (0) of the last 32 probes (hits and misses enter from the right), metric is described above, and minamp/minsnr is the minute pulse ampliture/SNR. An example is:

wwv5 000d 111 5753 3967/20.1 3523/10.2 WV20 bdeff 100 8348/30.0 WH20 0000 1 22/-12.4

There are several other messages that can occur; these are documented in the source listing.

Monitor Data

When enabled by the filegen facility, every received timecode is written to the clockstats file in the following format:

sq yyyy ddd hh:mm:ss l d du lset agc ident metric errs freq avg

The fields beginning with yyyy and extending through du are decoded from the received data and are in fixed-length format. The remaining fields are in variable-length format. The fields are as follows:
s
The synch indicator is initially ? before the clock is set, but turns to space when all nine digits of the timecode are correctly set and the decoder is synchronized to the station within 125 μs.
q
The quality character is a four-bit hexadecimal code showing which alarms have been raised. Each bit is associated with a specific alarm condition according to the following:
0x8
synch alarm. The decoder is not synchronized to the station within 125 μs.
0x4
Digit error alarm. Less than nine decimal digits were found in the last minute.
0x2
Error alarm. More than 40 data bit errors were found in the last minute.
0x1
Compare alarm. A maximum-likelihood digit failed to agree with the current associated clock digit in the last minute.
It is important to note that one or more of the above alarms does not necessarily indicate a clock error, but only that the decoder has detected a marginal condition.
yyyy ddd hh:mm:ss
The timecode format itself is self explanatory. Since the driver latches the on-time epoch directly from the second synch pulse, the seconds fraction is always zero. Although the transmitted timecode includes only the year of century, the Gregorian year is augmented by 2000.
l
The leap second warning is normally space, but changes to L if a leap second is to occur at the end of the month.
d
The DST state is S or D when standard time or daylight time is in effect, respectively. The state is I or O when daylight time is about to go into effect or out of effect, respectively.
du
The DUT sign and magnitude shows the current UT1 offset relative to the displayed UTC time, in deciseconds.
lset
Before the clock is set, the interval since last set is the number of minutes since the driver was started; after the clock is set, this is number of minutes since the decoder was last synchronized to the station within 125 μs.
agc
The audio gain shows the current codec gain setting in the range 0 to 255. Ordinarily, the receiver audio gain control should be set for a value midway in this range.
ident
The station identifier shows the station, WVf for WWV or WHf for WWVH, and frequency f being tracked. If neither station is heard on any frequency, the reference identifier shows NONE.
metric
The signal metric described above from 0 (no signal) to 100 (best).
errs
The bit error counter is useful to determine the quality of the data signal received in the most recent minute. It is normal to drop a couple of data bits even under good signal conditions and increasing numbers as conditions worsen. While the decoder performs moderately well even with half the bits are in error in any minute, usually by that point the metric drops below threshold and the decoder switches to a different frequency.
freq
The frequency offset is the current estimate of the codec frequency offset to within 0.1 PPM. This may wander a bit over the day due to local temperature fluctuations and propagation conditions.
avg
The averaging time is the interval between frequency updates in powers of two to a maximum of 1024 s. Attainment of the maximum indicates the driver is operating at the best possible resolution in time and frequency.

An example timecode is:

0 2000 006 22:36:00 S +3 1 115 WV20 86 5 66.4 1024

Here the clock has been set and no alarms are raised. The year, day and time are displayed along with no leap warning, standard time and DUT +0.3 s. The clock was set on the last minute, the AGC is safely in the middle ot the range 0-255, and the receiver is tracking WWV on 20 MHz. Good receiving conditions prevail, as indicated by the metric 86 and 5 bit errors during the last minute. The current frequency is 66.4 PPM and the averaging interval is 1024 s, indicating the maximum precision available.

Fudge Factors

time1 time
Specifies the propagation delay for WWV (40:40:49.0N 105:02:27.0W), in seconds and fraction, with default 0.0.
time2 time
Specifies the propagation delay for WWVH (21:59:26.0N 159:46:00.0W), in seconds and fraction, with default 0.0.
stratum number
Specifies the driver stratum, in decimal from 0 to 15, with default 0.
refid string
Ordinarily, this field specifies the driver reference identifier; however, the driver sets the reference identifier automatically as described above.
flag1 0 | 1
Not used by this driver.
flag2 0 | 1
Specifies the microphone port if set to zero or the line-in port if set to one. It does not seem useful to specify the compact disc player port.
flag3 0 | 1
Enables audio monitoring of the input signal. For this purpose, the speaker volume must be set before the driver is started.
flag4 0 | 1
Enable verbose clockstats recording if set.

@ 1.1.1.1.14.1 log @Apply patch (requested by christos in ticket #1221): Update ntp to 4.2.8. @ text @d2 1 d4 144 a147 148 Radio WWV/H Audio Demodulator/Decoder

Radio WWV/H Audio Demodulator/Decoder

Author: David L. Mills (mills@@udel.edu)
Last updage: 15-Nov-2012 06:42 UTC


Synopsis

Address: 127.127.36.u
Reference ID: WVf or WHf
Driver ID: WWV_AUDIO
Autotune Port: /dev/icom; 1200/9600 baud, 8-bits, no parity
Audio Device: /dev/audio and /dev/audioctl

Description

This driver synchronizes the computer time using shortwave radio transmissions from NIST time/frequency stations WWV in Ft. Collins, CO, and WWVH in Kauai, HI. Transmissions are made continuously on 2.5, 5, 10 and 15 MHz from both stations and on 20 MHz from WWV. An ordinary shortwave receiver can be tuned manually to one of these frequencies or, in the case of ICOM receivers, the receiver can be tuned automatically by the driver as propagation conditions change throughout the day and season. The radio is connected via an optional attenuator and cable to either the microphone or line-in port of a workstation or PC.

The driver requires an audio codec or sound card with sampling rate 8 kHz and μ-law companding to demodulate the data. This is the same standard as used by the telephone industry and is supported by most hardware and operating systems, including Solaris, FreeBSD and Linux, among others. In this implementation only one audio driver and codec can be supported on a single machine. In order to assure reliable signal capture, the codec frequency error must be less than 187 PPM (.0187 percent). If necessary, the tinker codec configuration command can be used to bracket the codec frequency to this range.

In general and without calibration, the driver is accurate within 1 ms relative to the broadcast time when tracking a station. However, variations up to 0.3 ms can be expected due to diurnal variations in ionospheric layer height and ray geometry. In Newark DE, 2479 km from the transmitter, the predicted two-hop propagation delay varies from 9.3 ms in sunlight to 9.0 ms in moonlight. When not tracking the station the accuracy depends on the computer clock oscillator stability, ordinarily better than 0.5 PPM.

After calibration relative to the PPS signal from a GPS receiver, the mean offset with a 2.4-GHz P4 running FreeBSD 6.1 is generally within 0.1 ms short-term with 0.4 ms jitter. The long-term mean offset varies up to 0.3 ms due to propagation path geometry variations. The processor load due to the driver is 0.4 percent on the P4.

The driver performs a number of error checks to protect against overdriven or underdriven input signal levels, incorrect signal format or improper hardware configuration. The specific checks are detailed later in this page. Note that additional checks are done elsewhere in the reference clock interface routines.

This driver incorporates several features in common with other audio drivers such as described in the Radio CHU Audio Demodulator/Decoder and the IRIG Audio Decoder pages. They include automatic gain control (AGC), selectable audio codec port and signal monitoring capabilities. For a discussion of these common features, as well as a guide to hookup, debugging and monitoring, see the Reference Clock Audio Drivers page.

Technical Overview

The driver processes 8-kHz μ-law companded codec samples using maximum-likelihood techniques which exploit the considerable degree of redundancy available in the broadcast signal. The WWV signal format is described in NIST Special Publication 432 (Revised 1990) and also available on the WWV/H web site. It consists of three elements, a 5-ms, 1000-Hz pulse, which occurs at the beginning of each second, a 800-ms, 1000-Hz pulse, which occurs at the beginning of each minute, and a pulse-width modulated 100-Hz subcarrier for the data bits, one bit per second. The WWVH format is identical, except that the 1000-Hz pulses are sent at 1200 Hz. Each minute encodes nine BCD digits for the time of century plus seven bits for the daylight savings time (DST) indicator, leap warning indicator and DUT1 correction.

The demodulation and decoding algorithms used by this driver are based on a machine language program developed for the TAPR DSP93 DSP unit, which uses the TI 320C25 DSP chip. The analysis, design and performance of the program for this unit is described in: Mills, D.L. A precision radio clock for WWV transmissions. Electrical Engineering Report 97-8-1, University of Delaware, August 1997, 25 pp. Available from www.eecis.udel.edu/~mills/reports.htm. For use in this driver, the original program was rebuilt in the C language and adapted to the NTP driver interface. The algorithms have been modified to improve performance, especially under weak signal conditions and to provide an automatic frequency and station selection feature.

As in the original program, the clock discipline is modelled as a Markov process, with probabilistic state transitions corresponding to a conventional clock and the probabilities of received decimal digits. The result is a performance level with very high accuracy and reliability, even under conditions when the minute beep of the signal, normally its most prominent feature, can barely be detected by ear using a communications receiver.

Baseband Signal Processing

The 1000/1200-Hz pulses and 100-Hz subcarrier are first separated using a 600-Hz bandpass filter centered on 1100 Hz and a 150-Hz lowpass filter. The minute pulse is extracted using an 800-ms synchronous matched filter and pulse grooming logic which discriminates between WWV and WWVH signals and noise. The second pulse is extracted using a 5-ms FIR matched filter for each station and a single 8000-stage comb filter.

The phase of the 100-Hz subcarrier relative to the second pulse is fixed at the transmitter; however, the audio stage in many radios affects the phase response at 100 Hz in unpredictable ways. The driver adjusts for each radio using two 170-ms synchronous matched filters. The I (in-phase) filter is used to demodulate the subcarrier envelope, while the Q (quadrature-phase) filter is used in a type-1 phase-lock loop (PLL) to discipline the demodulator phase.

A bipolar data signal is determined from the matched filter subcarrier envelope using a pulse-width discriminator. The discriminator samples the I channel at 15 ms (n), 200 ms (s0) and 500 ms (s1), and the envelope (RMS I and Q channels) at 200 ms (e1) and the end of the second (e0). The bipolar data signal is expressed 2s1 - s0 - n, where positive values correspond to data 1 and negative values correspond to data 0. Note that, since the signals s0 and s1 include the noise n, the noise component cancels out. The data bit SNR is calculated as 20 log10(e1 / e0). If the driver has not synchronized to the minute pulse, or if the data bit amplitude e1 or SNR are below thresholds, the bit is considered invalid and the bipolar signal is forced to zero.

The bipolar signal is exponentially averaged in a set of 60 accumulators, one for each second, to determine the semi-static miscellaneous bits, such as DST indicator, leap second warning and DUT1 correction. In this design a data average value larger than a positive threshold is interpreted as +1 (hit) and a value smaller than a negative threshold as a -1 (miss). Values between the two thresholds, which can occur due to signal fades, are interpreted as an erasure and result in no change of indication.

Maximum-Likelihood Decoder

The BCD digit in each digit position of the timecode is represented as four data bits. The bits are correlated with the bits corresponding to each of the valid decimal digits in this position. If any of the four bits are invalid, the correlated value for all digits in this position is assumed zero. In either case, the values for all digits are exponentially averaged in a likelihood vector associated with this position. The digit associated with the maximum over all averaged values then becomes the maximum-likelihood candidate for this position and the ratio of the maximum over the next lower value represents the digit SNR.

The decoding matrix contains nine row vectors, one for each digit position. Each row vector includes the maximum-likelihood digit, likelihood vector and other related data. The maximum-likelihood digit for each of the nine digit positions becomes the maximum-likelihood time of the century. A built-in transition function implements a conventional clock with decimal digits that count the minutes, hours, days and years, as corrected for leap seconds and leap years. The counting operation also rotates the likelihood vector corresponding to each digit as it advances. Thus, once the clock is set, each clock digit should correspond to the maximum-likelihood digit as transmitted.

Each row of the decoding matrix also includes a compare counter and the most recently determined maximum-likelihood digit. If a digit likelihood exceeds the decision level and compares with previous digits for a number of successive minutes in any row, the maximum-likelihood digit replaces the clock digit in that row. When this condition is true for all rows and the second epoch has been reliably determined, the clock is set (or verified if it has already been set) and delivers correct time to the integral second. The fraction within the second is derived from the logical master clock, which runs at 8000 Hz and drives all system timing functions.

Master Clock Discipline

The logical master clock is derived from the audio codec clock. Its frequency is disciplined by a frequency-lock loop (FLL) which operates independently of the data recovery functions. The maximum value of the 5-ms pulse after the comb filter represents the on-time epoch of the second. At averaging intervals determined by the measured jitter, the frequency error is calculated as the difference between the epoches over the interval divided by the interval itself. The sample clock frequency is then corrected by this amount divided by a time constant of 8.

When first started, the frequency averaging interval is 8 seconds, in order to compensate for intrinsic codec clock frequency offsets up to 125 PPM. Under most conditions, the averaging interval doubles in stages from the initial value to 1024 s, which results in an ultimate frequency resolution of 0.125 PPM, or about 11 ms/day.

The data demodulation functions operate using the subcarrier clock, which is independent of the epoch. However, the data decoding functions are driven by the epoch. The decoder is phase-locked to the epoch in such a way that, when the clock state machine has reliably decoded the broadcast time to the second, the epoch timestamp of that second becomes a candidate to set the system clock.

The comb filter can have a long memory and is vulnerable to noise and stale data, especially when coming up after a long fade. Therefore, a candidate is considered valid only if the 5-ms signal amplitude and SNR are above thresholds. In addition, the system clock is not set until after one complete averaging interval has passed with valid candidates.

Station Identification

It is important that the logical clock frequency is stable and accurately determined, since in many applications the shortwave radio will be tuned to a fixed frequency where WWV or WWVH signals are not available throughout the day. In addition, in some parts of the US, especially on the west coast, signals from either or both WWV and WWVH may be available at different times or even at the same time. Since the propagation times from either station are almost always different, each station must be reliably identified before attempting to set the clock.

Reliable station identification requires accurate discrimination between very weak signals in noise and noise alone. The driver very aggressively soaks up every scrap of signal information, but has to be careful to avoid making pseudo-sense of noise alone. The signal quality metric depends on the minute pulse amplitude and SNR measured in second 0 of the minute, together with the data subcarrier amplitude and SNR measured in second 1. If all four values are above defined thresholds a hit is declared, otherwise a miss. In principle, the data pulse in second 58 is usable, but the AGC in most radios is not fast enough for a reliable measurement.

The number of hits declared in the last 6 minutes for each station represents the high order bits of the metric, while the current minute pulse amplitude represents the low order bits. Only if the metric is above a defined threshold is the station signal considered acceptable. The metric is also used by the autotune function described below and reported in the timecode string.

Performance

It is the intent of the design that the accuracy and stability of the indicated time be limited only by the characteristics of the ionospheric propagation medium. Conventional wisdom is that manual synchronization via oscilloscope and HF medium is good only to a millisecond under the best propagation conditions. The performance of the NTP daemon disciplined by this driver is clearly better than this, even under marginal conditions.

The figure below shows the measured offsets over a typical day near the bottom of the sunspot cycle ending in October, 2006. Variations up to ±0.4 ms can be expected due to changing ionospheric layer height and ray geometry over the day and night.

gif

The figure was constructed using a 2.4-GHz P4 running FreeBSD 6.1. For these measurements the computer clock was disciplined within a few microseconds of UTC using a PPS signal and GPS receiver and the measured offsets determined from the filegen peerstats data.

The predicted propagation delay from the WWV transmitter at Boulder, CO, to the receiver at Newark, DE, varies over 9.0-9.3 ms. In addition, the receiver contributes 4.7 ms and the 600-Hz bandpass filter 0.9 ms. With these values, the mean error is less than 0.1 ms and varies ±0.3 ms over the day as the result of changing ionospheric height and ray geometry.

Program Operation

The driver begins operation immediately upon startup. It first searches for one or both of the stations WWV and WWVH and attempts to acquire minute synch. This may take some fits and starts, as the driver expects to see several consecutive minutes with good signals and low jitter. If the autotune function is active, the driver will rotate over all five frequencies and both WWV and WWVH stations until finding a station and frequency with acceptable metric.

While this is going on the the driver acquires second synch, which can take up to several minutes, depending on signal quality. When minute synch has been acquired, the driver accumulates likelihood values for the unit (seconds) digit of the nine timecode digits, plus the seven miscellaneous bits included in the WWV/H transmission format. When a good unit digit has been found, the driver accumulated likelihood values for the remaining eight digits of the timecode. When three repetitions of all nine digits have decoded correctly, which normally takes 15 minutes with good signals, and up to 40 minutes when buried in noise, and the second synch has been acquired, the clock is set (or verified) and is selectable to discipline the system clock.

Once the clock is set, it continues to provide correct timecodes as long as the signal metric is above threshold, as described in the previous section. As long as the clock is correctly set or verified, the system clock offsets are provided once each minute to the reference clock interface, where they are processed using the same algorithms as with other reference clocks and remote servers.

It may happen as the hours progress around the clock that WWV and WWVH signals may appear alone, together or not at all. When the driver has mitigated which station and frequency is best, it sets the reference identifier to the string WVf for WWV and WHf for WWVH, where f is the frequency in megahertz. If the propagation delays have been properly set with the fudge time1 (WWV) and fudge time2 (WWVH) commands in the configuration file, handover from one station to the other is seamless.

Operation continues as long as the signal metric from at least one station on at least one frequency is acceptable. A consequence of this design is that, once the clock is set, the time and frequency are disciplined only by the second synch pulse and the clock digits themselves are driven by the clock state machine. If for some reason the state machine drifts to the wrong second, it would never resynchronize. To protect against this most unlikely situation, if after two days with no signals, the clock is considered unset and resumes the synchronization procedure from the beginning.

Once the system clock been set correctly it will continue to read correctly even during the holdover interval, but with increasing dispersion. Assuming the system clock frequency can be disciplined within 1 PPM, it can coast without signals for several days without exceeding the NTP step threshold of 128 ms. During such periods the root distance increases at 15 μs per second, which makes the driver appear less likely for selection as time goes on. Eventually, when the distance due all causes exceeds 1 s, it is no longer suitable for synchronization. Ordinarily, this happens after about 18 hours with no signals. The tinker maxdist configuration command can be used to change this value.

Autotune

The driver includes provisions to automatically tune the radio in response to changing radio propagation conditions throughout the day and night. The radio interface is compatible with the ICOM CI-V standard, which is a bidirectional serial bus operating at TTL levels. The bus can be connected to a standard serial port using a level converter such as the CT-17. Further details are on the Reference Clock Audio Drivers page.

If specified, the driver will attempt to open the device /dev/icom and, if successful will activate the autotune function and tune the radio to each operating frequency in turn while attempting to acquire minute synch from either WWV or WWVH. However, the driver is liberal in what it assumes of the configuration. If the /dev/icom link is not present or the open fails or the CI-V bus is inoperative, the driver quietly gives up with no harm done.

Once acquiring minute synch, the driver operates as described above to set the clock. However, during seconds 59, 0 and 1 of each minute it tunes the radio to one of the five broadcast frequencies to measure the signal metric as described above. Each of the five frequencies are probed in a five-minute rotation to build a database of current propagation conditions for all signals that can be heard at the time. At the end of each probe a mitigation procedure scans the database and retunes the radio to the best frequency and station found. For this to work well, the radio should be set for a fast AGC recovery time. This is most important while tracking a strong signal, which is normally the case, and then probing another frequency, which may have much weaker signals.

The mitigation procedure selects the frequency and station with the highest valid metric, ties going first to the highest frequency and then to WWV in order. A station is considered valid only if the metric is above a specified threshold; if no station is above the metric, the rotating probes continue until a valid station is found.

The behavior of the autotune function over a typical day is shown in the figure below.

gif

As expected, the lower frequencies prevail when the ray path is in moonlight (0100-1300 UTC) and the higher frequencies when the path is in sunlight (1300-0100 UTC). Note three periods in the figure show zero frequency when signals are below the minimum for all frequencies and stations.

Debugging Aids

The most convenient way to track the driver status is using the ntpq program and the clockvar command. This displays the last determined timecode and related status and error counters, even when the driver is not disciplining the system clock. If the debugging trace feature (-d on the ntpd command line) is enabled, the driver produces detailed status messages as it operates. If the fudge flag 4 is set, these messages are written to the clockstats file. All messages produced by this driver have the prefix wwv for convenient filtering with the Unix grep command.

The autotune process produces diagnostic information along with the timecode. This is very useful for evaluating the performance of the algorithms, as well as radio propagation conditions in general. The message is produced once each minute for each frequency in turn after minute synch has been acquired.

wwv5 status agc epoch secamp/secsnr datamp/datsnr wwv wwvh

where the fields after the wwv5 identifier are: status contains status bits, agc audio gain, epoch second epoch, secamp/secsnr second pulse amplitude/SNR, and wwv and wwvh are two sets of fields, one each for WWV and WWVH. Each of the two fields has the format

ident score metric minamp/minsnr

where ident encodes the station (WV for WWV, WH for WWVH) and frequency (2, 5, 10, 15 or 20), score 32-bit shift register recording the hits (1) and misses (0) of the last 32 probes (hits and misses enter from the right), metric is described above, and minamp/minsnr is the minute pulse ampliture/SNR. An example is:

wwv5 000d 111 5753 3967/20.1 3523/10.2 WV20 bdeff 100 8348/30.0 WH20 0000 1 22/-12.4

There are several other messages that can occur; these are documented in the source listing.

Monitor Data

When enabled by the filegen facility, every received timecode is written to the clockstats file in the following format:

sq yyyy ddd hh:mm:ss l d du lset agc ident metric errs freq avg

The fields beginning with yyyy and extending through du are decoded from the received data and are in fixed-length format. The remaining fields are in variable-length format. The fields are as follows:
s
The synch indicator is initially ? before the clock is set, but turns to space when all nine digits of the timecode are correctly set and the decoder is synchronized to the station within 125 μs.
q
The quality character is a four-bit hexadecimal code showing which alarms have been raised. Each bit is associated with a specific alarm condition according to the following:
0x8
synch alarm. The decoder is not synchronized to the station within 125 μs.
0x4
Digit error alarm. Less than nine decimal digits were found in the last minute.
0x2
Error alarm. More than 40 data bit errors were found in the last minute.
0x1
Compare alarm. A maximum-likelihood digit failed to agree with the current associated clock digit in the last minute.
It is important to note that one or more of the above alarms does not necessarily indicate a clock error, but only that the decoder has detected a marginal condition.
yyyy ddd hh:mm:ss
The timecode format itself is self explanatory. Since the driver latches the on-time epoch directly from the second synch pulse, the seconds fraction is always zero. Although the transmitted timecode includes only the year of century, the Gregorian year is augmented by 2000.
l
The leap second warning is normally space, but changes to L if a leap second is to occur at the end of the month.
d
The DST state is S or D when standard time or daylight time is in effect, respectively. The state is I or O when daylight time is about to go into effect or out of effect, respectively.
du
The DUT sign and magnitude shows the current UT1 offset relative to the displayed UTC time, in deciseconds.
lset
Before the clock is set, the interval since last set is the number of minutes since the driver was started; after the clock is set, this is number of minutes since the decoder was last synchronized to the station within 125 μs.
agc
The audio gain shows the current codec gain setting in the range 0 to 255. Ordinarily, the receiver audio gain control should be set for a value midway in this range.
ident
The station identifier shows the station, WVf for WWV or WHf for WWVH, and frequency f being tracked. If neither station is heard on any frequency, the reference identifier shows NONE.
metric
The signal metric described above from 0 (no signal) to 100 (best).
errs
The bit error counter is useful to determine the quality of the data signal received in the most recent minute. It is normal to drop a couple of data bits even under good signal conditions and increasing numbers as conditions worsen. While the decoder performs moderately well even with half the bits are in error in any minute, usually by that point the metric drops below threshold and the decoder switches to a different frequency.
freq
The frequency offset is the current estimate of the codec frequency offset to within 0.1 PPM. This may wander a bit over the day due to local temperature fluctuations and propagation conditions.
avg
The averaging time is the interval between frequency updates in powers of two to a maximum of 1024 s. Attainment of the maximum indicates the driver is operating at the best possible resolution in time and frequency.

An example timecode is:

0 2000 006 22:36:00 S +3 1 115 WV20 86 5 66.4 1024

Here the clock has been set and no alarms are raised. The year, day and time are displayed along with no leap warning, standard time and DUT +0.3 s. The clock was set on the last minute, the AGC is safely in the middle ot the range 0-255, and the receiver is tracking WWV on 20 MHz. Good receiving conditions prevail, as indicated by the metric 86 and 5 bit errors during the last minute. The current frequency is 66.4 PPM and the averaging interval is 1024 s, indicating the maximum precision available.

Fudge Factors

time1 time
Specifies the propagation delay for WWV (40:40:49.0N 105:02:27.0W), in seconds and fraction, with default 0.0.
time2 time
Specifies the propagation delay for WWVH (21:59:26.0N 159:46:00.0W), in seconds and fraction, with default 0.0.
stratum number
Specifies the driver stratum, in decimal from 0 to 15, with default 0.
refid string
Ordinarily, this field specifies the driver reference identifier; however, the driver sets the reference identifier automatically as described above.
flag1 0 | 1
Not used by this driver.
flag2 0 | 1
Specifies the microphone port if set to zero or the line-in port if set to one. It does not seem useful to specify the compact disc player port.
flag3 0 | 1
Enables audio monitoring of the input signal. For this purpose, the speaker volume must be set before the driver is started.
flag4 0 | 1
Enable verbose clockstats recording if set.

@ 1.1.1.1.22.1 log @Apply patch (requested by christos in ticket #1221): Update ntp to 4.2.8. @ text @d2 1 d4 144 a147 148 Radio WWV/H Audio Demodulator/Decoder

Radio WWV/H Audio Demodulator/Decoder

Author: David L. Mills (mills@@udel.edu)
Last updage: 15-Nov-2012 06:42 UTC


Synopsis

Address: 127.127.36.u
Reference ID: WVf or WHf
Driver ID: WWV_AUDIO
Autotune Port: /dev/icom; 1200/9600 baud, 8-bits, no parity
Audio Device: /dev/audio and /dev/audioctl

Description

This driver synchronizes the computer time using shortwave radio transmissions from NIST time/frequency stations WWV in Ft. Collins, CO, and WWVH in Kauai, HI. Transmissions are made continuously on 2.5, 5, 10 and 15 MHz from both stations and on 20 MHz from WWV. An ordinary shortwave receiver can be tuned manually to one of these frequencies or, in the case of ICOM receivers, the receiver can be tuned automatically by the driver as propagation conditions change throughout the day and season. The radio is connected via an optional attenuator and cable to either the microphone or line-in port of a workstation or PC.

The driver requires an audio codec or sound card with sampling rate 8 kHz and μ-law companding to demodulate the data. This is the same standard as used by the telephone industry and is supported by most hardware and operating systems, including Solaris, FreeBSD and Linux, among others. In this implementation only one audio driver and codec can be supported on a single machine. In order to assure reliable signal capture, the codec frequency error must be less than 187 PPM (.0187 percent). If necessary, the tinker codec configuration command can be used to bracket the codec frequency to this range.

In general and without calibration, the driver is accurate within 1 ms relative to the broadcast time when tracking a station. However, variations up to 0.3 ms can be expected due to diurnal variations in ionospheric layer height and ray geometry. In Newark DE, 2479 km from the transmitter, the predicted two-hop propagation delay varies from 9.3 ms in sunlight to 9.0 ms in moonlight. When not tracking the station the accuracy depends on the computer clock oscillator stability, ordinarily better than 0.5 PPM.

After calibration relative to the PPS signal from a GPS receiver, the mean offset with a 2.4-GHz P4 running FreeBSD 6.1 is generally within 0.1 ms short-term with 0.4 ms jitter. The long-term mean offset varies up to 0.3 ms due to propagation path geometry variations. The processor load due to the driver is 0.4 percent on the P4.

The driver performs a number of error checks to protect against overdriven or underdriven input signal levels, incorrect signal format or improper hardware configuration. The specific checks are detailed later in this page. Note that additional checks are done elsewhere in the reference clock interface routines.

This driver incorporates several features in common with other audio drivers such as described in the Radio CHU Audio Demodulator/Decoder and the IRIG Audio Decoder pages. They include automatic gain control (AGC), selectable audio codec port and signal monitoring capabilities. For a discussion of these common features, as well as a guide to hookup, debugging and monitoring, see the Reference Clock Audio Drivers page.

Technical Overview

The driver processes 8-kHz μ-law companded codec samples using maximum-likelihood techniques which exploit the considerable degree of redundancy available in the broadcast signal. The WWV signal format is described in NIST Special Publication 432 (Revised 1990) and also available on the WWV/H web site. It consists of three elements, a 5-ms, 1000-Hz pulse, which occurs at the beginning of each second, a 800-ms, 1000-Hz pulse, which occurs at the beginning of each minute, and a pulse-width modulated 100-Hz subcarrier for the data bits, one bit per second. The WWVH format is identical, except that the 1000-Hz pulses are sent at 1200 Hz. Each minute encodes nine BCD digits for the time of century plus seven bits for the daylight savings time (DST) indicator, leap warning indicator and DUT1 correction.

The demodulation and decoding algorithms used by this driver are based on a machine language program developed for the TAPR DSP93 DSP unit, which uses the TI 320C25 DSP chip. The analysis, design and performance of the program for this unit is described in: Mills, D.L. A precision radio clock for WWV transmissions. Electrical Engineering Report 97-8-1, University of Delaware, August 1997, 25 pp. Available from www.eecis.udel.edu/~mills/reports.htm. For use in this driver, the original program was rebuilt in the C language and adapted to the NTP driver interface. The algorithms have been modified to improve performance, especially under weak signal conditions and to provide an automatic frequency and station selection feature.

As in the original program, the clock discipline is modelled as a Markov process, with probabilistic state transitions corresponding to a conventional clock and the probabilities of received decimal digits. The result is a performance level with very high accuracy and reliability, even under conditions when the minute beep of the signal, normally its most prominent feature, can barely be detected by ear using a communications receiver.

Baseband Signal Processing

The 1000/1200-Hz pulses and 100-Hz subcarrier are first separated using a 600-Hz bandpass filter centered on 1100 Hz and a 150-Hz lowpass filter. The minute pulse is extracted using an 800-ms synchronous matched filter and pulse grooming logic which discriminates between WWV and WWVH signals and noise. The second pulse is extracted using a 5-ms FIR matched filter for each station and a single 8000-stage comb filter.

The phase of the 100-Hz subcarrier relative to the second pulse is fixed at the transmitter; however, the audio stage in many radios affects the phase response at 100 Hz in unpredictable ways. The driver adjusts for each radio using two 170-ms synchronous matched filters. The I (in-phase) filter is used to demodulate the subcarrier envelope, while the Q (quadrature-phase) filter is used in a type-1 phase-lock loop (PLL) to discipline the demodulator phase.

A bipolar data signal is determined from the matched filter subcarrier envelope using a pulse-width discriminator. The discriminator samples the I channel at 15 ms (n), 200 ms (s0) and 500 ms (s1), and the envelope (RMS I and Q channels) at 200 ms (e1) and the end of the second (e0). The bipolar data signal is expressed 2s1 - s0 - n, where positive values correspond to data 1 and negative values correspond to data 0. Note that, since the signals s0 and s1 include the noise n, the noise component cancels out. The data bit SNR is calculated as 20 log10(e1 / e0). If the driver has not synchronized to the minute pulse, or if the data bit amplitude e1 or SNR are below thresholds, the bit is considered invalid and the bipolar signal is forced to zero.

The bipolar signal is exponentially averaged in a set of 60 accumulators, one for each second, to determine the semi-static miscellaneous bits, such as DST indicator, leap second warning and DUT1 correction. In this design a data average value larger than a positive threshold is interpreted as +1 (hit) and a value smaller than a negative threshold as a -1 (miss). Values between the two thresholds, which can occur due to signal fades, are interpreted as an erasure and result in no change of indication.

Maximum-Likelihood Decoder

The BCD digit in each digit position of the timecode is represented as four data bits. The bits are correlated with the bits corresponding to each of the valid decimal digits in this position. If any of the four bits are invalid, the correlated value for all digits in this position is assumed zero. In either case, the values for all digits are exponentially averaged in a likelihood vector associated with this position. The digit associated with the maximum over all averaged values then becomes the maximum-likelihood candidate for this position and the ratio of the maximum over the next lower value represents the digit SNR.

The decoding matrix contains nine row vectors, one for each digit position. Each row vector includes the maximum-likelihood digit, likelihood vector and other related data. The maximum-likelihood digit for each of the nine digit positions becomes the maximum-likelihood time of the century. A built-in transition function implements a conventional clock with decimal digits that count the minutes, hours, days and years, as corrected for leap seconds and leap years. The counting operation also rotates the likelihood vector corresponding to each digit as it advances. Thus, once the clock is set, each clock digit should correspond to the maximum-likelihood digit as transmitted.

Each row of the decoding matrix also includes a compare counter and the most recently determined maximum-likelihood digit. If a digit likelihood exceeds the decision level and compares with previous digits for a number of successive minutes in any row, the maximum-likelihood digit replaces the clock digit in that row. When this condition is true for all rows and the second epoch has been reliably determined, the clock is set (or verified if it has already been set) and delivers correct time to the integral second. The fraction within the second is derived from the logical master clock, which runs at 8000 Hz and drives all system timing functions.

Master Clock Discipline

The logical master clock is derived from the audio codec clock. Its frequency is disciplined by a frequency-lock loop (FLL) which operates independently of the data recovery functions. The maximum value of the 5-ms pulse after the comb filter represents the on-time epoch of the second. At averaging intervals determined by the measured jitter, the frequency error is calculated as the difference between the epoches over the interval divided by the interval itself. The sample clock frequency is then corrected by this amount divided by a time constant of 8.

When first started, the frequency averaging interval is 8 seconds, in order to compensate for intrinsic codec clock frequency offsets up to 125 PPM. Under most conditions, the averaging interval doubles in stages from the initial value to 1024 s, which results in an ultimate frequency resolution of 0.125 PPM, or about 11 ms/day.

The data demodulation functions operate using the subcarrier clock, which is independent of the epoch. However, the data decoding functions are driven by the epoch. The decoder is phase-locked to the epoch in such a way that, when the clock state machine has reliably decoded the broadcast time to the second, the epoch timestamp of that second becomes a candidate to set the system clock.

The comb filter can have a long memory and is vulnerable to noise and stale data, especially when coming up after a long fade. Therefore, a candidate is considered valid only if the 5-ms signal amplitude and SNR are above thresholds. In addition, the system clock is not set until after one complete averaging interval has passed with valid candidates.

Station Identification

It is important that the logical clock frequency is stable and accurately determined, since in many applications the shortwave radio will be tuned to a fixed frequency where WWV or WWVH signals are not available throughout the day. In addition, in some parts of the US, especially on the west coast, signals from either or both WWV and WWVH may be available at different times or even at the same time. Since the propagation times from either station are almost always different, each station must be reliably identified before attempting to set the clock.

Reliable station identification requires accurate discrimination between very weak signals in noise and noise alone. The driver very aggressively soaks up every scrap of signal information, but has to be careful to avoid making pseudo-sense of noise alone. The signal quality metric depends on the minute pulse amplitude and SNR measured in second 0 of the minute, together with the data subcarrier amplitude and SNR measured in second 1. If all four values are above defined thresholds a hit is declared, otherwise a miss. In principle, the data pulse in second 58 is usable, but the AGC in most radios is not fast enough for a reliable measurement.

The number of hits declared in the last 6 minutes for each station represents the high order bits of the metric, while the current minute pulse amplitude represents the low order bits. Only if the metric is above a defined threshold is the station signal considered acceptable. The metric is also used by the autotune function described below and reported in the timecode string.

Performance

It is the intent of the design that the accuracy and stability of the indicated time be limited only by the characteristics of the ionospheric propagation medium. Conventional wisdom is that manual synchronization via oscilloscope and HF medium is good only to a millisecond under the best propagation conditions. The performance of the NTP daemon disciplined by this driver is clearly better than this, even under marginal conditions.

The figure below shows the measured offsets over a typical day near the bottom of the sunspot cycle ending in October, 2006. Variations up to ±0.4 ms can be expected due to changing ionospheric layer height and ray geometry over the day and night.

gif

The figure was constructed using a 2.4-GHz P4 running FreeBSD 6.1. For these measurements the computer clock was disciplined within a few microseconds of UTC using a PPS signal and GPS receiver and the measured offsets determined from the filegen peerstats data.

The predicted propagation delay from the WWV transmitter at Boulder, CO, to the receiver at Newark, DE, varies over 9.0-9.3 ms. In addition, the receiver contributes 4.7 ms and the 600-Hz bandpass filter 0.9 ms. With these values, the mean error is less than 0.1 ms and varies ±0.3 ms over the day as the result of changing ionospheric height and ray geometry.

Program Operation

The driver begins operation immediately upon startup. It first searches for one or both of the stations WWV and WWVH and attempts to acquire minute synch. This may take some fits and starts, as the driver expects to see several consecutive minutes with good signals and low jitter. If the autotune function is active, the driver will rotate over all five frequencies and both WWV and WWVH stations until finding a station and frequency with acceptable metric.

While this is going on the the driver acquires second synch, which can take up to several minutes, depending on signal quality. When minute synch has been acquired, the driver accumulates likelihood values for the unit (seconds) digit of the nine timecode digits, plus the seven miscellaneous bits included in the WWV/H transmission format. When a good unit digit has been found, the driver accumulated likelihood values for the remaining eight digits of the timecode. When three repetitions of all nine digits have decoded correctly, which normally takes 15 minutes with good signals, and up to 40 minutes when buried in noise, and the second synch has been acquired, the clock is set (or verified) and is selectable to discipline the system clock.

Once the clock is set, it continues to provide correct timecodes as long as the signal metric is above threshold, as described in the previous section. As long as the clock is correctly set or verified, the system clock offsets are provided once each minute to the reference clock interface, where they are processed using the same algorithms as with other reference clocks and remote servers.

It may happen as the hours progress around the clock that WWV and WWVH signals may appear alone, together or not at all. When the driver has mitigated which station and frequency is best, it sets the reference identifier to the string WVf for WWV and WHf for WWVH, where f is the frequency in megahertz. If the propagation delays have been properly set with the fudge time1 (WWV) and fudge time2 (WWVH) commands in the configuration file, handover from one station to the other is seamless.

Operation continues as long as the signal metric from at least one station on at least one frequency is acceptable. A consequence of this design is that, once the clock is set, the time and frequency are disciplined only by the second synch pulse and the clock digits themselves are driven by the clock state machine. If for some reason the state machine drifts to the wrong second, it would never resynchronize. To protect against this most unlikely situation, if after two days with no signals, the clock is considered unset and resumes the synchronization procedure from the beginning.

Once the system clock been set correctly it will continue to read correctly even during the holdover interval, but with increasing dispersion. Assuming the system clock frequency can be disciplined within 1 PPM, it can coast without signals for several days without exceeding the NTP step threshold of 128 ms. During such periods the root distance increases at 15 μs per second, which makes the driver appear less likely for selection as time goes on. Eventually, when the distance due all causes exceeds 1 s, it is no longer suitable for synchronization. Ordinarily, this happens after about 18 hours with no signals. The tinker maxdist configuration command can be used to change this value.

Autotune

The driver includes provisions to automatically tune the radio in response to changing radio propagation conditions throughout the day and night. The radio interface is compatible with the ICOM CI-V standard, which is a bidirectional serial bus operating at TTL levels. The bus can be connected to a standard serial port using a level converter such as the CT-17. Further details are on the Reference Clock Audio Drivers page.

If specified, the driver will attempt to open the device /dev/icom and, if successful will activate the autotune function and tune the radio to each operating frequency in turn while attempting to acquire minute synch from either WWV or WWVH. However, the driver is liberal in what it assumes of the configuration. If the /dev/icom link is not present or the open fails or the CI-V bus is inoperative, the driver quietly gives up with no harm done.

Once acquiring minute synch, the driver operates as described above to set the clock. However, during seconds 59, 0 and 1 of each minute it tunes the radio to one of the five broadcast frequencies to measure the signal metric as described above. Each of the five frequencies are probed in a five-minute rotation to build a database of current propagation conditions for all signals that can be heard at the time. At the end of each probe a mitigation procedure scans the database and retunes the radio to the best frequency and station found. For this to work well, the radio should be set for a fast AGC recovery time. This is most important while tracking a strong signal, which is normally the case, and then probing another frequency, which may have much weaker signals.

The mitigation procedure selects the frequency and station with the highest valid metric, ties going first to the highest frequency and then to WWV in order. A station is considered valid only if the metric is above a specified threshold; if no station is above the metric, the rotating probes continue until a valid station is found.

The behavior of the autotune function over a typical day is shown in the figure below.

gif

As expected, the lower frequencies prevail when the ray path is in moonlight (0100-1300 UTC) and the higher frequencies when the path is in sunlight (1300-0100 UTC). Note three periods in the figure show zero frequency when signals are below the minimum for all frequencies and stations.

Debugging Aids

The most convenient way to track the driver status is using the ntpq program and the clockvar command. This displays the last determined timecode and related status and error counters, even when the driver is not disciplining the system clock. If the debugging trace feature (-d on the ntpd command line) is enabled, the driver produces detailed status messages as it operates. If the fudge flag 4 is set, these messages are written to the clockstats file. All messages produced by this driver have the prefix wwv for convenient filtering with the Unix grep command.

The autotune process produces diagnostic information along with the timecode. This is very useful for evaluating the performance of the algorithms, as well as radio propagation conditions in general. The message is produced once each minute for each frequency in turn after minute synch has been acquired.

wwv5 status agc epoch secamp/secsnr datamp/datsnr wwv wwvh

where the fields after the wwv5 identifier are: status contains status bits, agc audio gain, epoch second epoch, secamp/secsnr second pulse amplitude/SNR, and wwv and wwvh are two sets of fields, one each for WWV and WWVH. Each of the two fields has the format

ident score metric minamp/minsnr

where ident encodes the station (WV for WWV, WH for WWVH) and frequency (2, 5, 10, 15 or 20), score 32-bit shift register recording the hits (1) and misses (0) of the last 32 probes (hits and misses enter from the right), metric is described above, and minamp/minsnr is the minute pulse ampliture/SNR. An example is:

wwv5 000d 111 5753 3967/20.1 3523/10.2 WV20 bdeff 100 8348/30.0 WH20 0000 1 22/-12.4

There are several other messages that can occur; these are documented in the source listing.

Monitor Data

When enabled by the filegen facility, every received timecode is written to the clockstats file in the following format:

sq yyyy ddd hh:mm:ss l d du lset agc ident metric errs freq avg

The fields beginning with yyyy and extending through du are decoded from the received data and are in fixed-length format. The remaining fields are in variable-length format. The fields are as follows:
s
The synch indicator is initially ? before the clock is set, but turns to space when all nine digits of the timecode are correctly set and the decoder is synchronized to the station within 125 μs.
q
The quality character is a four-bit hexadecimal code showing which alarms have been raised. Each bit is associated with a specific alarm condition according to the following:
0x8
synch alarm. The decoder is not synchronized to the station within 125 μs.
0x4
Digit error alarm. Less than nine decimal digits were found in the last minute.
0x2
Error alarm. More than 40 data bit errors were found in the last minute.
0x1
Compare alarm. A maximum-likelihood digit failed to agree with the current associated clock digit in the last minute.
It is important to note that one or more of the above alarms does not necessarily indicate a clock error, but only that the decoder has detected a marginal condition.
yyyy ddd hh:mm:ss
The timecode format itself is self explanatory. Since the driver latches the on-time epoch directly from the second synch pulse, the seconds fraction is always zero. Although the transmitted timecode includes only the year of century, the Gregorian year is augmented by 2000.
l
The leap second warning is normally space, but changes to L if a leap second is to occur at the end of the month.
d
The DST state is S or D when standard time or daylight time is in effect, respectively. The state is I or O when daylight time is about to go into effect or out of effect, respectively.
du
The DUT sign and magnitude shows the current UT1 offset relative to the displayed UTC time, in deciseconds.
lset
Before the clock is set, the interval since last set is the number of minutes since the driver was started; after the clock is set, this is number of minutes since the decoder was last synchronized to the station within 125 μs.
agc
The audio gain shows the current codec gain setting in the range 0 to 255. Ordinarily, the receiver audio gain control should be set for a value midway in this range.
ident
The station identifier shows the station, WVf for WWV or WHf for WWVH, and frequency f being tracked. If neither station is heard on any frequency, the reference identifier shows NONE.
metric
The signal metric described above from 0 (no signal) to 100 (best).
errs
The bit error counter is useful to determine the quality of the data signal received in the most recent minute. It is normal to drop a couple of data bits even under good signal conditions and increasing numbers as conditions worsen. While the decoder performs moderately well even with half the bits are in error in any minute, usually by that point the metric drops below threshold and the decoder switches to a different frequency.
freq
The frequency offset is the current estimate of the codec frequency offset to within 0.1 PPM. This may wander a bit over the day due to local temperature fluctuations and propagation conditions.
avg
The averaging time is the interval between frequency updates in powers of two to a maximum of 1024 s. Attainment of the maximum indicates the driver is operating at the best possible resolution in time and frequency.

An example timecode is:

0 2000 006 22:36:00 S +3 1 115 WV20 86 5 66.4 1024

Here the clock has been set and no alarms are raised. The year, day and time are displayed along with no leap warning, standard time and DUT +0.3 s. The clock was set on the last minute, the AGC is safely in the middle ot the range 0-255, and the receiver is tracking WWV on 20 MHz. Good receiving conditions prevail, as indicated by the metric 86 and 5 bit errors during the last minute. The current frequency is 66.4 PPM and the averaging interval is 1024 s, indicating the maximum precision available.

Fudge Factors

time1 time
Specifies the propagation delay for WWV (40:40:49.0N 105:02:27.0W), in seconds and fraction, with default 0.0.
time2 time
Specifies the propagation delay for WWVH (21:59:26.0N 159:46:00.0W), in seconds and fraction, with default 0.0.
stratum number
Specifies the driver stratum, in decimal from 0 to 15, with default 0.
refid string
Ordinarily, this field specifies the driver reference identifier; however, the driver sets the reference identifier automatically as described above.
flag1 0 | 1
Not used by this driver.
flag2 0 | 1
Specifies the microphone port if set to zero or the line-in port if set to one. It does not seem useful to specify the compact disc player port.
flag3 0 | 1
Enables audio monitoring of the input signal. For this purpose, the speaker volume must be set before the driver is started.
flag4 0 | 1
Enable verbose clockstats recording if set.

@ 1.1.1.1.12.1 log @Rebase to HEAD as of a few days ago. @ text @d2 1 d4 144 a147 148 Radio WWV/H Audio Demodulator/Decoder

Radio WWV/H Audio Demodulator/Decoder

Author: David L. Mills (mills@@udel.edu)
Last updage: 03-Sep-2010 20:10 UTC


Synopsis

Address: 127.127.36.u
Reference ID: WVf or WHf
Driver ID: WWV_AUDIO
Autotune Port: /dev/icom; 1200/9600 baud, 8-bits, no parity
Audio Device: /dev/audio and /dev/audioctl

Description

This driver synchronizes the computer time using shortwave radio transmissions from NIST time/frequency stations WWV in Ft. Collins, CO, and WWVH in Kauai, HI. Transmissions are made continuously on 2.5, 5, 10 and 15 MHz from both stations and on 20 MHz from WWV. An ordinary shortwave receiver can be tuned manually to one of these frequencies or, in the case of ICOM receivers, the receiver can be tuned automatically by the driver as propagation conditions change throughout the day and season. The radio is connected via an optional attenuator and cable to either the microphone or line-in port of a workstation or PC.

The driver requires an audio codec or sound card with sampling rate 8 kHz and μ-law companding to demodulate the data. This is the same standard as used by the telephone industry and is supported by most hardware and operating systems, including Solaris, FreeBSD and Linux, among others. In this implementation only one audio driver and codec can be supported on a single machine. In order to assure reliable signal capture, the codec frequency error must be less than 187 PPM (.0187 percent). If necessary, the tinker codec configuration command can be used to bracket the codec frequency to this range.

In general and without calibration, the driver is accurate within 1 ms relative to the broadcast time when tracking a station. However, variations up to 0.3 ms can be expected due to diurnal variations in ionospheric layer height and ray geometry. In Newark DE, 2479 km from the transmitter, the predicted two-hop propagation delay varies from 9.3 ms in sunlight to 9.0 ms in moonlight. When not tracking the station the accuracy depends on the computer clock oscillator stability, ordinarily better than 0.5 PPM.

After calibration relative to the PPS signal from a GPS receiver, the mean offset with a 2.4-GHz P4 running FreeBSD 6.1 is generally within 0.1 ms short-term with 0.4 ms jitter. The long-term mean offset varies up to 0.3 ms due to propagation path geometry variations. The processor load due to the driver is 0.4 percent on the P4.

The driver performs a number of error checks to protect against overdriven or underdriven input signal levels, incorrect signal format or improper hardware configuration. The specific checks are detailed later in this page. Note that additional checks are done elsewhere in the reference clock interface routines.

This driver incorporates several features in common with other audio drivers such as described in the Radio CHU Audio Demodulator/Decoder and the IRIG Audio Decoder pages. They include automatic gain control (AGC), selectable audio codec port and signal monitoring capabilities. For a discussion of these common features, as well as a guide to hookup, debugging and monitoring, see the Reference Clock Audio Drivers page.

Technical Overview

The driver processes 8-kHz μ-law companded codec samples using maximum-likelihood techniques which exploit the considerable degree of redundancy available in the broadcast signal. The WWV signal format is described in NIST Special Publication 432 (Revised 1990) and also available on the WWV/H web site. It consists of three elements, a 5-ms, 1000-Hz pulse, which occurs at the beginning of each second, a 800-ms, 1000-Hz pulse, which occurs at the beginning of each minute, and a pulse-width modulated 100-Hz subcarrier for the data bits, one bit per second. The WWVH format is identical, except that the 1000-Hz pulses are sent at 1200 Hz. Each minute encodes nine BCD digits for the time of century plus seven bits for the daylight savings time (DST) indicator, leap warning indicator and DUT1 correction.

The demodulation and decoding algorithms used by this driver are based on a machine language program developed for the TAPR DSP93 DSP unit, which uses the TI 320C25 DSP chip. The analysis, design and performance of the program for this unit is described in: Mills, D.L. A precision radio clock for WWV transmissions. Electrical Engineering Report 97-8-1, University of Delaware, August 1997, 25 pp. Available from www.eecis.udel.edu/~mills/reports.htm. For use in this driver, the original program was rebuilt in the C language and adapted to the NTP driver interface. The algorithms have been modified to improve performance, especially under weak signal conditions and to provide an automatic frequency and station selection feature.

As in the original program, the clock discipline is modelled as a Markov process, with probabilistic state transitions corresponding to a conventional clock and the probabilities of received decimal digits. The result is a performance level with very high accuracy and reliability, even under conditions when the minute beep of the signal, normally its most prominent feature, can barely be detected by ear using a communications receiver.

Baseband Signal Processing

The 1000/1200-Hz pulses and 100-Hz subcarrier are first separated using a 600-Hz bandpass filter centered on 1100 Hz and a 150-Hz lowpass filter. The minute pulse is extracted using an 800-ms synchronous matched filter and pulse grooming logic which discriminates between WWV and WWVH signals and noise. The second pulse is extracted using a 5-ms FIR matched filter for each station and a single 8000-stage comb filter.

The phase of the 100-Hz subcarrier relative to the second pulse is fixed at the transmitter; however, the audio stage in many radios affects the phase response at 100 Hz in unpredictable ways. The driver adjusts for each radio using two 170-ms synchronous matched filters. The I (in-phase) filter is used to demodulate the subcarrier envelope, while the Q (quadrature-phase) filter is used in a type-1 phase-lock loop (PLL) to discipline the demodulator phase.

A bipolar data signal is determined from the matched filter subcarrier envelope using a pulse-width discriminator. The discriminator samples the I channel at 15 ms (n), 200 ms (s0) and 500 ms (s1), and the envelope (RMS I and Q channels) at 200 ms (e1) and the end of the second (e0). The bipolar data signal is expressed 2s1 - s0 - n, where positive values correspond to data 1 and negative values correspond to data 0. Note that, since the signals s0 and s1 include the noise n, the noise component cancels out. The data bit SNR is calculated as 20 log10(e1 / e0). If the driver has not synchronized to the minute pulse, or if the data bit amplitude e1 or SNR are below thresholds, the bit is considered invalid and the bipolar signal is forced to zero.

The bipolar signal is exponentially averaged in a set of 60 accumulators, one for each second, to determine the semi-static miscellaneous bits, such as DST indicator, leap second warning and DUT1 correction. In this design a data average value larger than a positive threshold is interpreted as +1 (hit) and a value smaller than a negative threshold as a -1 (miss). Values between the two thresholds, which can occur due to signal fades, are interpreted as an erasure and result in no change of indication.

Maximum-Likelihood Decoder

The BCD digit in each digit position of the timecode is represented as four data bits. The bits are correlated with the bits corresponding to each of the valid decimal digits in this position. If any of the four bits are invalid, the correlated value for all digits in this position is assumed zero. In either case, the values for all digits are exponentially averaged in a likelihood vector associated with this position. The digit associated with the maximum over all averaged values then becomes the maximum-likelihood candidate for this position and the ratio of the maximum over the next lower value represents the digit SNR.

The decoding matrix contains nine row vectors, one for each digit position. Each row vector includes the maximum-likelihood digit, likelihood vector and other related data. The maximum-likelihood digit for each of the nine digit positions becomes the maximum-likelihood time of the century. A built-in transition function implements a conventional clock with decimal digits that count the minutes, hours, days and years, as corrected for leap seconds and leap years. The counting operation also rotates the likelihood vector corresponding to each digit as it advances. Thus, once the clock is set, each clock digit should correspond to the maximum-likelihood digit as transmitted.

Each row of the decoding matrix also includes a compare counter and the most recently determined maximum-likelihood digit. If a digit likelihood exceeds the decision level and compares with previous digits for a number of successive minutes in any row, the maximum-likelihood digit replaces the clock digit in that row. When this condition is true for all rows and the second epoch has been reliably determined, the clock is set (or verified if it has already been set) and delivers correct time to the integral second. The fraction within the second is derived from the logical master clock, which runs at 8000 Hz and drives all system timing functions.

Master Clock Discipline

The logical master clock is derived from the audio codec clock. Its frequency is disciplined by a frequency-lock loop (FLL) which operates independently of the data recovery functions. The maximum value of the 5-ms pulse after the comb filter represents the on-time epoch of the second. At averaging intervals determined by the measured jitter, the frequency error is calculated as the difference between the epoches over the interval divided by the interval itself. The sample clock frequency is then corrected by this amount divided by a time constant of 8.

When first started, the frequency averaging interval is 8 seconds, in order to compensate for intrinsic codec clock frequency offsets up to 125 PPM. Under most conditions, the averaging interval doubles in stages from the initial value to 1024 s, which results in an ultimate frequency resolution of 0.125 PPM, or about 11 ms/day.

The data demodulation functions operate using the subcarrier clock, which is independent of the epoch. However, the data decoding functions are driven by the epoch. The decoder is phase-locked to the epoch in such a way that, when the clock state machine has reliably decoded the broadcast time to the second, the epoch timestamp of that second becomes a candidate to set the system clock.

The comb filter can have a long memory and is vulnerable to noise and stale data, especially when coming up after a long fade. Therefore, a candidate is considered valid only if the 5-ms signal amplitude and SNR are above thresholds. In addition, the system clock is not set until after one complete averaging interval has passed with valid candidates.

Station Identification

It is important that the logical clock frequency is stable and accurately determined, since in many applications the shortwave radio will be tuned to a fixed frequency where WWV or WWVH signals are not available throughout the day. In addition, in some parts of the US, especially on the west coast, signals from either or both WWV and WWVH may be available at different times or even at the same time. Since the propagation times from either station are almost always different, each station must be reliably identified before attempting to set the clock.

Reliable station identification requires accurate discrimination between very weak signals in noise and noise alone. The driver very aggressively soaks up every scrap of signal information, but has to be careful to avoid making pseudo-sense of noise alone. The signal quality metric depends on the minute pulse amplitude and SNR measured in second 0 of the minute, together with the data subcarrier amplitude and SNR measured in second 1. If all four values are above defined thresholds a hit is declared, otherwise a miss. In principle, the data pulse in second 58 is usable, but the AGC in most radios is not fast enough for a reliable measurement.

The number of hits declared in the last 6 minutes for each station represents the high order bits of the metric, while the current minute pulse amplitude represents the low order bits. Only if the metric is above a defined threshold is the station signal considered acceptable. The metric is also used by the autotune function described below and reported in the timecode string.

Performance

It is the intent of the design that the accuracy and stability of the indicated time be limited only by the characteristics of the ionospheric propagation medium. Conventional wisdom is that manual synchronization via oscilloscope and HF medium is good only to a millisecond under the best propagation conditions. The performance of the NTP daemon disciplined by this driver is clearly better than this, even under marginal conditions.

The figure below shows the measured offsets over a typical day near the bottom of the sunspot cycle ending in October, 2006. Variations up to ±0.4 ms can be expected due to changing ionospheric layer height and ray geometry over the day and night.

gif

The figure was constructed using a 2.4-GHz P4 running FreeBSD 6.1. For these measurements the computer clock was disciplined within a few microseconds of UTC using a PPS signal and GPS receiver and the measured offsets determined from the filegen peerstats data.

The predicted propagation delay from the WWV transmitter at Boulder, CO, to the receiver at Newark, DE, varies over 9.0-9.3 ms. In addition, the receiver contributes 4.7 ms and the 600-Hz bandpass filter 0.9 ms. With these values, the mean error is less than 0.1 ms and varies ±0.3 ms over the day as the result of changing ionospheric height and ray geometry.

Program Operation

The driver begins operation immediately upon startup. It first searches for one or both of the stations WWV and WWVH and attempts to acquire minute synch. This may take some fits and starts, as the driver expects to see several consecutive minutes with good signals and low jitter. If the autotune function is active, the driver will rotate over all five frequencies and both WWV and WWVH stations until finding a station and frequency with acceptable metric.

While this is going on the the driver acquires second synch, which can take up to several minutes, depending on signal quality. When minute synch has been acquired, the driver accumulates likelihood values for the unit (seconds) digit of the nine timecode digits, plus the seven miscellaneous bits included in the WWV/H transmission format. When a good unit digit has been found, the driver accumulated likelihood values for the remaining eight digits of the timecode. When three repetitions of all nine digits have decoded correctly, which normally takes 15 minutes with good signals, and up to 40 minutes when buried in noise, and the second synch has been acquired, the clock is set (or verified) and is selectable to discipline the system clock.

Once the clock is set, it continues to provide correct timecodes as long as the signal metric is above threshold, as described in the previous section. As long as the clock is correctly set or verified, the system clock offsets are provided once each minute to the reference clock interface, where they are processed using the same algorithms as with other reference clocks and remote servers.

It may happen as the hours progress around the clock that WWV and WWVH signals may appear alone, together or not at all. When the driver has mitigated which station and frequency is best, it sets the reference identifier to the string WVf for WWV and WHf for WWVH, where f is the frequency in megahertz. If the propagation delays have been properly set with the fudge time1 (WWV) and fudge time2 (WWVH) commands in the configuration file, handover from one station to the other is seamless.

Operation continues as long as the signal metric from at least one station on at least one frequency is acceptable. A consequence of this design is that, once the clock is set, the time and frequency are disciplined only by the second synch pulse and the clock digits themselves are driven by the clock state machine. If for some reason the state machine drifts to the wrong second, it would never resynchronize. To protect against this most unlikely situation, if after two days with no signals, the clock is considered unset and resumes the synchronization procedure from the beginning.

Once the system clock been set correctly it will continue to read correctly even during the holdover interval, but with increasing dispersion. Assuming the system clock frequency can be disciplined within 1 PPM, it can coast without signals for several days without exceeding the NTP step threshold of 128 ms. During such periods the root distance increases at 15 μs per second, which makes the driver appear less likely for selection as time goes on. Eventually, when the distance due all causes exceeds 1 s, it is no longer suitable for synchronization. Ordinarily, this happens after about 18 hours with no signals. The tinker maxdist configuration command can be used to change this value.

Autotune

The driver includes provisions to automatically tune the radio in response to changing radio propagation conditions throughout the day and night. The radio interface is compatible with the ICOM CI-V standard, which is a bidirectional serial bus operating at TTL levels. The bus can be connected to a standard serial port using a level converter such as the CT-17. Further details are on the Reference Clock Audio Drivers page.

If specified, the driver will attempt to open the device /dev/icom and, if successful will activate the autotune function and tune the radio to each operating frequency in turn while attempting to acquire minute synch from either WWV or WWVH. However, the driver is liberal in what it assumes of the configuration. If the /dev/icom link is not present or the open fails or the CI-V bus is inoperative, the driver quietly gives up with no harm done.

Once acquiring minute synch, the driver operates as described above to set the clock. However, during seconds 59, 0 and 1 of each minute it tunes the radio to one of the five broadcast frequencies to measure the signal metric as described above. Each of the five frequencies are probed in a five-minute rotation to build a database of current propagation conditions for all signals that can be heard at the time. At the end of each probe a mitigation procedure scans the database and retunes the radio to the best frequency and station found. For this to work well, the radio should be set for a fast AGC recovery time. This is most important while tracking a strong signal, which is normally the case, and then probing another frequency, which may have much weaker signals.

The mitigation procedure selects the frequency and station with the highest valid metric, ties going first to the highest frequency and then to WWV in order. A station is considered valid only if the metric is above a specified threshold; if no station is above the metric, the rotating probes continue until a valid station is found.

The behavior of the autotune function over a typical day is shown in the figure below.

gif

As expected, the lower frequencies prevail when the ray path is in moonlight (0100-1300 UTC) and the higher frequencies when the path is in sunlight (1300-0100 UTC). Note three periods in the figure show zero frequency when signals are below the minimum for all frequencies and stations.

Debugging Aids

The most convenient way to track the driver status is using the ntpq program and the clockvar command. This displays the last determined timecode and related status and error counters, even when the driver is not disciplining the system clock. If the debugging trace feature (-d on the ntpd command line) is enabled, the driver produces detailed status messages as it operates. If the fudge flag 4 is set, these messages are written to the clockstats file. All messages produced by this driver have the prefix wwv for convenient filtering with the Unix grep command.

The autotune process produces diagnostic information along with the timecode. This is very useful for evaluating the performance of the algorithms, as well as radio propagation conditions in general. The message is produced once each minute for each frequency in turn after minute synch has been acquired.

wwv5 status agc epoch secamp/secsnr datamp/datsnr wwv wwvh

where the fields after the wwv5 identifier are: status contains status bits, agc audio gain, epoch second epoch, secamp/secsnr second pulse amplitude/SNR, and wwv and wwvh are two sets of fields, one each for WWV and WWVH. Each of the two fields has the format

ident score metric minamp/minsnr

where ident encodes the station (WV for WWV, WH for WWVH) and frequency (2, 5, 10, 15 or 20), score 32-bit shift register recording the hits (1) and misses (0) of the last 32 probes (hits and misses enter from the right), metric is described above, and minamp/minsnr is the minute pulse ampliture/SNR. An example is:

wwv5 000d 111 5753 3967/20.1 3523/10.2 WV20 bdeff 100 8348/30.0 WH20 0000 1 22/-12.4

There are several other messages that can occur; these are documented in the source listing.

Monitor Data

When enabled by the filegen facility, every received timecode is written to the clockstats file in the following format:

sq yyyy ddd hh:mm:ss l d du lset agc ident metric errs freq avg

The fields beginning with yyyy and extending through du are decoded from the received data and are in fixed-length format. The remaining fields are in variable-length format. The fields are as follows:
s
The synch indicator is initially ? before the clock is set, but turns to space when all nine digits of the timecode are correctly set and the decoder is synchronized to the station within 125 μs.
q
The quality character is a four-bit hexadecimal code showing which alarms have been raised. Each bit is associated with a specific alarm condition according to the following:
0x8
synch alarm. The decoder is not synchronized to the station within 125 μs.
0x4
Digit error alarm. Less than nine decimal digits were found in the last minute.
0x2
Error alarm. More than 40 data bit errors were found in the last minute.
0x1
Compare alarm. A maximum-likelihood digit failed to agree with the current associated clock digit in the last minute.
It is important to note that one or more of the above alarms does not necessarily indicate a clock error, but only that the decoder has detected a marginal condition.
yyyy ddd hh:mm:ss
The timecode format itself is self explanatory. Since the driver latches the on-time epoch directly from the second synch pulse, the seconds fraction is always zero. Although the transmitted timecode includes only the year of century, the Gregorian year is augmented by 2000.
l
The leap second warning is normally space, but changes to L if a leap second is to occur at the end of the month.
d
The DST state is S or D when standard time or daylight time is in effect, respectively. The state is I or O when daylight time is about to go into effect or out of effect, respectively.
du
The DUT sign and magnitude shows the current UT1 offset relative to the displayed UTC time, in deciseconds.
lset
Before the clock is set, the interval since last set is the number of minutes since the driver was started; after the clock is set, this is number of minutes since the decoder was last synchronized to the station within 125 μs.
agc
The audio gain shows the current codec gain setting in the range 0 to 255. Ordinarily, the receiver audio gain control should be set for a value midway in this range.
ident
The station identifier shows the station, WVf for WWV or WHf for WWVH, and frequency f being tracked. If neither station is heard on any frequency, the reference identifier shows NONE.
metric
The signal metric described above from 0 (no signal) to 100 (best).
errs
The bit error counter is useful to determine the quality of the data signal received in the most recent minute. It is normal to drop a couple of data bits even under good signal conditions and increasing numbers as conditions worsen. While the decoder performs moderately well even with half the bits are in error in any minute, usually by that point the metric drops below threshold and the decoder switches to a different frequency.
freq
The frequency offset is the current estimate of the codec frequency offset to within 0.1 PPM. This may wander a bit over the day due to local temperature fluctuations and propagation conditions.
avg
The averaging time is the interval between frequency updates in powers of two to a maximum of 1024 s. Attainment of the maximum indicates the driver is operating at the best possible resolution in time and frequency.

An example timecode is:

0 2000 006 22:36:00 S +3 1 115 WV20 86 5 66.4 1024

Here the clock has been set and no alarms are raised. The year, day and time are displayed along with no leap warning, standard time and DUT +0.3 s. The clock was set on the last minute, the AGC is safely in the middle ot the range 0-255, and the receiver is tracking WWV on 20 MHz. Good receiving conditions prevail, as indicated by the metric 86 and 5 bit errors during the last minute. The current frequency is 66.4 PPM and the averaging interval is 1024 s, indicating the maximum precision available.

Fudge Factors

time1 time
Specifies the propagation delay for WWV (40:40:49.0N 105:02:27.0W), in seconds and fraction, with default 0.0.
time2 time
Specifies the propagation delay for WWVH (21:59:26.0N 159:46:00.0W), in seconds and fraction, with default 0.0.
stratum number
Specifies the driver stratum, in decimal from 0 to 15, with default 0.
refid string
Ordinarily, this field specifies the driver reference identifier; however, the driver sets the reference identifier automatically as described above.
flag1 0 | 1
Not used by this driver.
flag2 0 | 1
Specifies the microphone port if set to zero or the line-in port if set to one. It does not seem useful to specify the compact disc player port.
flag3 0 | 1
Enables audio monitoring of the input signal. For this purpose, the speaker volume must be set before the driver is started.
flag4 0 | 1
Enable verbose clockstats recording if set.

@ 1.1.1.1.6.1 log @sync with head. for a reference, the tree before this commit was tagged as yamt-pagecache-tag8. this commit was splitted into small chunks to avoid a limitation of cvs. ("Protocol error: too many arguments") @ text @d2 1 d4 144 a147 148 Radio WWV/H Audio Demodulator/Decoder

Radio WWV/H Audio Demodulator/Decoder

Author: David L. Mills (mills@@udel.edu)
Last updage: 03-Sep-2010 20:10 UTC


Synopsis

Address: 127.127.36.u
Reference ID: WVf or WHf
Driver ID: WWV_AUDIO
Autotune Port: /dev/icom; 1200/9600 baud, 8-bits, no parity
Audio Device: /dev/audio and /dev/audioctl

Description

This driver synchronizes the computer time using shortwave radio transmissions from NIST time/frequency stations WWV in Ft. Collins, CO, and WWVH in Kauai, HI. Transmissions are made continuously on 2.5, 5, 10 and 15 MHz from both stations and on 20 MHz from WWV. An ordinary shortwave receiver can be tuned manually to one of these frequencies or, in the case of ICOM receivers, the receiver can be tuned automatically by the driver as propagation conditions change throughout the day and season. The radio is connected via an optional attenuator and cable to either the microphone or line-in port of a workstation or PC.

The driver requires an audio codec or sound card with sampling rate 8 kHz and μ-law companding to demodulate the data. This is the same standard as used by the telephone industry and is supported by most hardware and operating systems, including Solaris, FreeBSD and Linux, among others. In this implementation only one audio driver and codec can be supported on a single machine. In order to assure reliable signal capture, the codec frequency error must be less than 187 PPM (.0187 percent). If necessary, the tinker codec configuration command can be used to bracket the codec frequency to this range.

In general and without calibration, the driver is accurate within 1 ms relative to the broadcast time when tracking a station. However, variations up to 0.3 ms can be expected due to diurnal variations in ionospheric layer height and ray geometry. In Newark DE, 2479 km from the transmitter, the predicted two-hop propagation delay varies from 9.3 ms in sunlight to 9.0 ms in moonlight. When not tracking the station the accuracy depends on the computer clock oscillator stability, ordinarily better than 0.5 PPM.

After calibration relative to the PPS signal from a GPS receiver, the mean offset with a 2.4-GHz P4 running FreeBSD 6.1 is generally within 0.1 ms short-term with 0.4 ms jitter. The long-term mean offset varies up to 0.3 ms due to propagation path geometry variations. The processor load due to the driver is 0.4 percent on the P4.

The driver performs a number of error checks to protect against overdriven or underdriven input signal levels, incorrect signal format or improper hardware configuration. The specific checks are detailed later in this page. Note that additional checks are done elsewhere in the reference clock interface routines.

This driver incorporates several features in common with other audio drivers such as described in the Radio CHU Audio Demodulator/Decoder and the IRIG Audio Decoder pages. They include automatic gain control (AGC), selectable audio codec port and signal monitoring capabilities. For a discussion of these common features, as well as a guide to hookup, debugging and monitoring, see the Reference Clock Audio Drivers page.

Technical Overview

The driver processes 8-kHz μ-law companded codec samples using maximum-likelihood techniques which exploit the considerable degree of redundancy available in the broadcast signal. The WWV signal format is described in NIST Special Publication 432 (Revised 1990) and also available on the WWV/H web site. It consists of three elements, a 5-ms, 1000-Hz pulse, which occurs at the beginning of each second, a 800-ms, 1000-Hz pulse, which occurs at the beginning of each minute, and a pulse-width modulated 100-Hz subcarrier for the data bits, one bit per second. The WWVH format is identical, except that the 1000-Hz pulses are sent at 1200 Hz. Each minute encodes nine BCD digits for the time of century plus seven bits for the daylight savings time (DST) indicator, leap warning indicator and DUT1 correction.

The demodulation and decoding algorithms used by this driver are based on a machine language program developed for the TAPR DSP93 DSP unit, which uses the TI 320C25 DSP chip. The analysis, design and performance of the program for this unit is described in: Mills, D.L. A precision radio clock for WWV transmissions. Electrical Engineering Report 97-8-1, University of Delaware, August 1997, 25 pp. Available from www.eecis.udel.edu/~mills/reports.htm. For use in this driver, the original program was rebuilt in the C language and adapted to the NTP driver interface. The algorithms have been modified to improve performance, especially under weak signal conditions and to provide an automatic frequency and station selection feature.

As in the original program, the clock discipline is modelled as a Markov process, with probabilistic state transitions corresponding to a conventional clock and the probabilities of received decimal digits. The result is a performance level with very high accuracy and reliability, even under conditions when the minute beep of the signal, normally its most prominent feature, can barely be detected by ear using a communications receiver.

Baseband Signal Processing

The 1000/1200-Hz pulses and 100-Hz subcarrier are first separated using a 600-Hz bandpass filter centered on 1100 Hz and a 150-Hz lowpass filter. The minute pulse is extracted using an 800-ms synchronous matched filter and pulse grooming logic which discriminates between WWV and WWVH signals and noise. The second pulse is extracted using a 5-ms FIR matched filter for each station and a single 8000-stage comb filter.

The phase of the 100-Hz subcarrier relative to the second pulse is fixed at the transmitter; however, the audio stage in many radios affects the phase response at 100 Hz in unpredictable ways. The driver adjusts for each radio using two 170-ms synchronous matched filters. The I (in-phase) filter is used to demodulate the subcarrier envelope, while the Q (quadrature-phase) filter is used in a type-1 phase-lock loop (PLL) to discipline the demodulator phase.

A bipolar data signal is determined from the matched filter subcarrier envelope using a pulse-width discriminator. The discriminator samples the I channel at 15 ms (n), 200 ms (s0) and 500 ms (s1), and the envelope (RMS I and Q channels) at 200 ms (e1) and the end of the second (e0). The bipolar data signal is expressed 2s1 - s0 - n, where positive values correspond to data 1 and negative values correspond to data 0. Note that, since the signals s0 and s1 include the noise n, the noise component cancels out. The data bit SNR is calculated as 20 log10(e1 / e0). If the driver has not synchronized to the minute pulse, or if the data bit amplitude e1 or SNR are below thresholds, the bit is considered invalid and the bipolar signal is forced to zero.

The bipolar signal is exponentially averaged in a set of 60 accumulators, one for each second, to determine the semi-static miscellaneous bits, such as DST indicator, leap second warning and DUT1 correction. In this design a data average value larger than a positive threshold is interpreted as +1 (hit) and a value smaller than a negative threshold as a -1 (miss). Values between the two thresholds, which can occur due to signal fades, are interpreted as an erasure and result in no change of indication.

Maximum-Likelihood Decoder

The BCD digit in each digit position of the timecode is represented as four data bits. The bits are correlated with the bits corresponding to each of the valid decimal digits in this position. If any of the four bits are invalid, the correlated value for all digits in this position is assumed zero. In either case, the values for all digits are exponentially averaged in a likelihood vector associated with this position. The digit associated with the maximum over all averaged values then becomes the maximum-likelihood candidate for this position and the ratio of the maximum over the next lower value represents the digit SNR.

The decoding matrix contains nine row vectors, one for each digit position. Each row vector includes the maximum-likelihood digit, likelihood vector and other related data. The maximum-likelihood digit for each of the nine digit positions becomes the maximum-likelihood time of the century. A built-in transition function implements a conventional clock with decimal digits that count the minutes, hours, days and years, as corrected for leap seconds and leap years. The counting operation also rotates the likelihood vector corresponding to each digit as it advances. Thus, once the clock is set, each clock digit should correspond to the maximum-likelihood digit as transmitted.

Each row of the decoding matrix also includes a compare counter and the most recently determined maximum-likelihood digit. If a digit likelihood exceeds the decision level and compares with previous digits for a number of successive minutes in any row, the maximum-likelihood digit replaces the clock digit in that row. When this condition is true for all rows and the second epoch has been reliably determined, the clock is set (or verified if it has already been set) and delivers correct time to the integral second. The fraction within the second is derived from the logical master clock, which runs at 8000 Hz and drives all system timing functions.

Master Clock Discipline

The logical master clock is derived from the audio codec clock. Its frequency is disciplined by a frequency-lock loop (FLL) which operates independently of the data recovery functions. The maximum value of the 5-ms pulse after the comb filter represents the on-time epoch of the second. At averaging intervals determined by the measured jitter, the frequency error is calculated as the difference between the epoches over the interval divided by the interval itself. The sample clock frequency is then corrected by this amount divided by a time constant of 8.

When first started, the frequency averaging interval is 8 seconds, in order to compensate for intrinsic codec clock frequency offsets up to 125 PPM. Under most conditions, the averaging interval doubles in stages from the initial value to 1024 s, which results in an ultimate frequency resolution of 0.125 PPM, or about 11 ms/day.

The data demodulation functions operate using the subcarrier clock, which is independent of the epoch. However, the data decoding functions are driven by the epoch. The decoder is phase-locked to the epoch in such a way that, when the clock state machine has reliably decoded the broadcast time to the second, the epoch timestamp of that second becomes a candidate to set the system clock.

The comb filter can have a long memory and is vulnerable to noise and stale data, especially when coming up after a long fade. Therefore, a candidate is considered valid only if the 5-ms signal amplitude and SNR are above thresholds. In addition, the system clock is not set until after one complete averaging interval has passed with valid candidates.

Station Identification

It is important that the logical clock frequency is stable and accurately determined, since in many applications the shortwave radio will be tuned to a fixed frequency where WWV or WWVH signals are not available throughout the day. In addition, in some parts of the US, especially on the west coast, signals from either or both WWV and WWVH may be available at different times or even at the same time. Since the propagation times from either station are almost always different, each station must be reliably identified before attempting to set the clock.

Reliable station identification requires accurate discrimination between very weak signals in noise and noise alone. The driver very aggressively soaks up every scrap of signal information, but has to be careful to avoid making pseudo-sense of noise alone. The signal quality metric depends on the minute pulse amplitude and SNR measured in second 0 of the minute, together with the data subcarrier amplitude and SNR measured in second 1. If all four values are above defined thresholds a hit is declared, otherwise a miss. In principle, the data pulse in second 58 is usable, but the AGC in most radios is not fast enough for a reliable measurement.

The number of hits declared in the last 6 minutes for each station represents the high order bits of the metric, while the current minute pulse amplitude represents the low order bits. Only if the metric is above a defined threshold is the station signal considered acceptable. The metric is also used by the autotune function described below and reported in the timecode string.

Performance

It is the intent of the design that the accuracy and stability of the indicated time be limited only by the characteristics of the ionospheric propagation medium. Conventional wisdom is that manual synchronization via oscilloscope and HF medium is good only to a millisecond under the best propagation conditions. The performance of the NTP daemon disciplined by this driver is clearly better than this, even under marginal conditions.

The figure below shows the measured offsets over a typical day near the bottom of the sunspot cycle ending in October, 2006. Variations up to ±0.4 ms can be expected due to changing ionospheric layer height and ray geometry over the day and night.

gif

The figure was constructed using a 2.4-GHz P4 running FreeBSD 6.1. For these measurements the computer clock was disciplined within a few microseconds of UTC using a PPS signal and GPS receiver and the measured offsets determined from the filegen peerstats data.

The predicted propagation delay from the WWV transmitter at Boulder, CO, to the receiver at Newark, DE, varies over 9.0-9.3 ms. In addition, the receiver contributes 4.7 ms and the 600-Hz bandpass filter 0.9 ms. With these values, the mean error is less than 0.1 ms and varies ±0.3 ms over the day as the result of changing ionospheric height and ray geometry.

Program Operation

The driver begins operation immediately upon startup. It first searches for one or both of the stations WWV and WWVH and attempts to acquire minute synch. This may take some fits and starts, as the driver expects to see several consecutive minutes with good signals and low jitter. If the autotune function is active, the driver will rotate over all five frequencies and both WWV and WWVH stations until finding a station and frequency with acceptable metric.

While this is going on the the driver acquires second synch, which can take up to several minutes, depending on signal quality. When minute synch has been acquired, the driver accumulates likelihood values for the unit (seconds) digit of the nine timecode digits, plus the seven miscellaneous bits included in the WWV/H transmission format. When a good unit digit has been found, the driver accumulated likelihood values for the remaining eight digits of the timecode. When three repetitions of all nine digits have decoded correctly, which normally takes 15 minutes with good signals, and up to 40 minutes when buried in noise, and the second synch has been acquired, the clock is set (or verified) and is selectable to discipline the system clock.

Once the clock is set, it continues to provide correct timecodes as long as the signal metric is above threshold, as described in the previous section. As long as the clock is correctly set or verified, the system clock offsets are provided once each minute to the reference clock interface, where they are processed using the same algorithms as with other reference clocks and remote servers.

It may happen as the hours progress around the clock that WWV and WWVH signals may appear alone, together or not at all. When the driver has mitigated which station and frequency is best, it sets the reference identifier to the string WVf for WWV and WHf for WWVH, where f is the frequency in megahertz. If the propagation delays have been properly set with the fudge time1 (WWV) and fudge time2 (WWVH) commands in the configuration file, handover from one station to the other is seamless.

Operation continues as long as the signal metric from at least one station on at least one frequency is acceptable. A consequence of this design is that, once the clock is set, the time and frequency are disciplined only by the second synch pulse and the clock digits themselves are driven by the clock state machine. If for some reason the state machine drifts to the wrong second, it would never resynchronize. To protect against this most unlikely situation, if after two days with no signals, the clock is considered unset and resumes the synchronization procedure from the beginning.

Once the system clock been set correctly it will continue to read correctly even during the holdover interval, but with increasing dispersion. Assuming the system clock frequency can be disciplined within 1 PPM, it can coast without signals for several days without exceeding the NTP step threshold of 128 ms. During such periods the root distance increases at 15 μs per second, which makes the driver appear less likely for selection as time goes on. Eventually, when the distance due all causes exceeds 1 s, it is no longer suitable for synchronization. Ordinarily, this happens after about 18 hours with no signals. The tinker maxdist configuration command can be used to change this value.

Autotune

The driver includes provisions to automatically tune the radio in response to changing radio propagation conditions throughout the day and night. The radio interface is compatible with the ICOM CI-V standard, which is a bidirectional serial bus operating at TTL levels. The bus can be connected to a standard serial port using a level converter such as the CT-17. Further details are on the Reference Clock Audio Drivers page.

If specified, the driver will attempt to open the device /dev/icom and, if successful will activate the autotune function and tune the radio to each operating frequency in turn while attempting to acquire minute synch from either WWV or WWVH. However, the driver is liberal in what it assumes of the configuration. If the /dev/icom link is not present or the open fails or the CI-V bus is inoperative, the driver quietly gives up with no harm done.

Once acquiring minute synch, the driver operates as described above to set the clock. However, during seconds 59, 0 and 1 of each minute it tunes the radio to one of the five broadcast frequencies to measure the signal metric as described above. Each of the five frequencies are probed in a five-minute rotation to build a database of current propagation conditions for all signals that can be heard at the time. At the end of each probe a mitigation procedure scans the database and retunes the radio to the best frequency and station found. For this to work well, the radio should be set for a fast AGC recovery time. This is most important while tracking a strong signal, which is normally the case, and then probing another frequency, which may have much weaker signals.

The mitigation procedure selects the frequency and station with the highest valid metric, ties going first to the highest frequency and then to WWV in order. A station is considered valid only if the metric is above a specified threshold; if no station is above the metric, the rotating probes continue until a valid station is found.

The behavior of the autotune function over a typical day is shown in the figure below.

gif

As expected, the lower frequencies prevail when the ray path is in moonlight (0100-1300 UTC) and the higher frequencies when the path is in sunlight (1300-0100 UTC). Note three periods in the figure show zero frequency when signals are below the minimum for all frequencies and stations.

Debugging Aids

The most convenient way to track the driver status is using the ntpq program and the clockvar command. This displays the last determined timecode and related status and error counters, even when the driver is not disciplining the system clock. If the debugging trace feature (-d on the ntpd command line) is enabled, the driver produces detailed status messages as it operates. If the fudge flag 4 is set, these messages are written to the clockstats file. All messages produced by this driver have the prefix wwv for convenient filtering with the Unix grep command.

The autotune process produces diagnostic information along with the timecode. This is very useful for evaluating the performance of the algorithms, as well as radio propagation conditions in general. The message is produced once each minute for each frequency in turn after minute synch has been acquired.

wwv5 status agc epoch secamp/secsnr datamp/datsnr wwv wwvh

where the fields after the wwv5 identifier are: status contains status bits, agc audio gain, epoch second epoch, secamp/secsnr second pulse amplitude/SNR, and wwv and wwvh are two sets of fields, one each for WWV and WWVH. Each of the two fields has the format

ident score metric minamp/minsnr

where ident encodes the station (WV for WWV, WH for WWVH) and frequency (2, 5, 10, 15 or 20), score 32-bit shift register recording the hits (1) and misses (0) of the last 32 probes (hits and misses enter from the right), metric is described above, and minamp/minsnr is the minute pulse ampliture/SNR. An example is:

wwv5 000d 111 5753 3967/20.1 3523/10.2 WV20 bdeff 100 8348/30.0 WH20 0000 1 22/-12.4

There are several other messages that can occur; these are documented in the source listing.

Monitor Data

When enabled by the filegen facility, every received timecode is written to the clockstats file in the following format:

sq yyyy ddd hh:mm:ss l d du lset agc ident metric errs freq avg

The fields beginning with yyyy and extending through du are decoded from the received data and are in fixed-length format. The remaining fields are in variable-length format. The fields are as follows:
s
The synch indicator is initially ? before the clock is set, but turns to space when all nine digits of the timecode are correctly set and the decoder is synchronized to the station within 125 μs.
q
The quality character is a four-bit hexadecimal code showing which alarms have been raised. Each bit is associated with a specific alarm condition according to the following:
0x8
synch alarm. The decoder is not synchronized to the station within 125 μs.
0x4
Digit error alarm. Less than nine decimal digits were found in the last minute.
0x2
Error alarm. More than 40 data bit errors were found in the last minute.
0x1
Compare alarm. A maximum-likelihood digit failed to agree with the current associated clock digit in the last minute.
It is important to note that one or more of the above alarms does not necessarily indicate a clock error, but only that the decoder has detected a marginal condition.
yyyy ddd hh:mm:ss
The timecode format itself is self explanatory. Since the driver latches the on-time epoch directly from the second synch pulse, the seconds fraction is always zero. Although the transmitted timecode includes only the year of century, the Gregorian year is augmented by 2000.
l
The leap second warning is normally space, but changes to L if a leap second is to occur at the end of the month.
d
The DST state is S or D when standard time or daylight time is in effect, respectively. The state is I or O when daylight time is about to go into effect or out of effect, respectively.
du
The DUT sign and magnitude shows the current UT1 offset relative to the displayed UTC time, in deciseconds.
lset
Before the clock is set, the interval since last set is the number of minutes since the driver was started; after the clock is set, this is number of minutes since the decoder was last synchronized to the station within 125 μs.
agc
The audio gain shows the current codec gain setting in the range 0 to 255. Ordinarily, the receiver audio gain control should be set for a value midway in this range.
ident
The station identifier shows the station, WVf for WWV or WHf for WWVH, and frequency f being tracked. If neither station is heard on any frequency, the reference identifier shows NONE.
metric
The signal metric described above from 0 (no signal) to 100 (best).
errs
The bit error counter is useful to determine the quality of the data signal received in the most recent minute. It is normal to drop a couple of data bits even under good signal conditions and increasing numbers as conditions worsen. While the decoder performs moderately well even with half the bits are in error in any minute, usually by that point the metric drops below threshold and the decoder switches to a different frequency.
freq
The frequency offset is the current estimate of the codec frequency offset to within 0.1 PPM. This may wander a bit over the day due to local temperature fluctuations and propagation conditions.
avg
The averaging time is the interval between frequency updates in powers of two to a maximum of 1024 s. Attainment of the maximum indicates the driver is operating at the best possible resolution in time and frequency.

An example timecode is:

0 2000 006 22:36:00 S +3 1 115 WV20 86 5 66.4 1024

Here the clock has been set and no alarms are raised. The year, day and time are displayed along with no leap warning, standard time and DUT +0.3 s. The clock was set on the last minute, the AGC is safely in the middle ot the range 0-255, and the receiver is tracking WWV on 20 MHz. Good receiving conditions prevail, as indicated by the metric 86 and 5 bit errors during the last minute. The current frequency is 66.4 PPM and the averaging interval is 1024 s, indicating the maximum precision available.

Fudge Factors

time1 time
Specifies the propagation delay for WWV (40:40:49.0N 105:02:27.0W), in seconds and fraction, with default 0.0.
time2 time
Specifies the propagation delay for WWVH (21:59:26.0N 159:46:00.0W), in seconds and fraction, with default 0.0.
stratum number
Specifies the driver stratum, in decimal from 0 to 15, with default 0.
refid string
Ordinarily, this field specifies the driver reference identifier; however, the driver sets the reference identifier automatically as described above.
flag1 0 | 1
Not used by this driver.
flag2 0 | 1
Specifies the microphone port if set to zero or the line-in port if set to one. It does not seem useful to specify the compact disc player port.
flag3 0 | 1
Enables audio monitoring of the input signal. For this purpose, the speaker volume must be set before the driver is started.
flag4 0 | 1
Enable verbose clockstats recording if set.

@ 1.1.1.2 log @import devel ntpd to avoid amplification attacks. @ text @d2 1 d4 144 a147 148 Radio WWV/H Audio Demodulator/Decoder

Radio WWV/H Audio Demodulator/Decoder

Author: David L. Mills (mills@@udel.edu)
Last updage: 03-Sep-2010 20:10 UTC


Synopsis

Address: 127.127.36.u
Reference ID: WVf or WHf
Driver ID: WWV_AUDIO
Autotune Port: /dev/icom; 1200/9600 baud, 8-bits, no parity
Audio Device: /dev/audio and /dev/audioctl

Description

This driver synchronizes the computer time using shortwave radio transmissions from NIST time/frequency stations WWV in Ft. Collins, CO, and WWVH in Kauai, HI. Transmissions are made continuously on 2.5, 5, 10 and 15 MHz from both stations and on 20 MHz from WWV. An ordinary shortwave receiver can be tuned manually to one of these frequencies or, in the case of ICOM receivers, the receiver can be tuned automatically by the driver as propagation conditions change throughout the day and season. The radio is connected via an optional attenuator and cable to either the microphone or line-in port of a workstation or PC.

The driver requires an audio codec or sound card with sampling rate 8 kHz and μ-law companding to demodulate the data. This is the same standard as used by the telephone industry and is supported by most hardware and operating systems, including Solaris, FreeBSD and Linux, among others. In this implementation only one audio driver and codec can be supported on a single machine. In order to assure reliable signal capture, the codec frequency error must be less than 187 PPM (.0187 percent). If necessary, the tinker codec configuration command can be used to bracket the codec frequency to this range.

In general and without calibration, the driver is accurate within 1 ms relative to the broadcast time when tracking a station. However, variations up to 0.3 ms can be expected due to diurnal variations in ionospheric layer height and ray geometry. In Newark DE, 2479 km from the transmitter, the predicted two-hop propagation delay varies from 9.3 ms in sunlight to 9.0 ms in moonlight. When not tracking the station the accuracy depends on the computer clock oscillator stability, ordinarily better than 0.5 PPM.

After calibration relative to the PPS signal from a GPS receiver, the mean offset with a 2.4-GHz P4 running FreeBSD 6.1 is generally within 0.1 ms short-term with 0.4 ms jitter. The long-term mean offset varies up to 0.3 ms due to propagation path geometry variations. The processor load due to the driver is 0.4 percent on the P4.

The driver performs a number of error checks to protect against overdriven or underdriven input signal levels, incorrect signal format or improper hardware configuration. The specific checks are detailed later in this page. Note that additional checks are done elsewhere in the reference clock interface routines.

This driver incorporates several features in common with other audio drivers such as described in the Radio CHU Audio Demodulator/Decoder and the IRIG Audio Decoder pages. They include automatic gain control (AGC), selectable audio codec port and signal monitoring capabilities. For a discussion of these common features, as well as a guide to hookup, debugging and monitoring, see the Reference Clock Audio Drivers page.

Technical Overview

The driver processes 8-kHz μ-law companded codec samples using maximum-likelihood techniques which exploit the considerable degree of redundancy available in the broadcast signal. The WWV signal format is described in NIST Special Publication 432 (Revised 1990) and also available on the WWV/H web site. It consists of three elements, a 5-ms, 1000-Hz pulse, which occurs at the beginning of each second, a 800-ms, 1000-Hz pulse, which occurs at the beginning of each minute, and a pulse-width modulated 100-Hz subcarrier for the data bits, one bit per second. The WWVH format is identical, except that the 1000-Hz pulses are sent at 1200 Hz. Each minute encodes nine BCD digits for the time of century plus seven bits for the daylight savings time (DST) indicator, leap warning indicator and DUT1 correction.

The demodulation and decoding algorithms used by this driver are based on a machine language program developed for the TAPR DSP93 DSP unit, which uses the TI 320C25 DSP chip. The analysis, design and performance of the program for this unit is described in: Mills, D.L. A precision radio clock for WWV transmissions. Electrical Engineering Report 97-8-1, University of Delaware, August 1997, 25 pp. Available from www.eecis.udel.edu/~mills/reports.htm. For use in this driver, the original program was rebuilt in the C language and adapted to the NTP driver interface. The algorithms have been modified to improve performance, especially under weak signal conditions and to provide an automatic frequency and station selection feature.

As in the original program, the clock discipline is modelled as a Markov process, with probabilistic state transitions corresponding to a conventional clock and the probabilities of received decimal digits. The result is a performance level with very high accuracy and reliability, even under conditions when the minute beep of the signal, normally its most prominent feature, can barely be detected by ear using a communications receiver.

Baseband Signal Processing

The 1000/1200-Hz pulses and 100-Hz subcarrier are first separated using a 600-Hz bandpass filter centered on 1100 Hz and a 150-Hz lowpass filter. The minute pulse is extracted using an 800-ms synchronous matched filter and pulse grooming logic which discriminates between WWV and WWVH signals and noise. The second pulse is extracted using a 5-ms FIR matched filter for each station and a single 8000-stage comb filter.

The phase of the 100-Hz subcarrier relative to the second pulse is fixed at the transmitter; however, the audio stage in many radios affects the phase response at 100 Hz in unpredictable ways. The driver adjusts for each radio using two 170-ms synchronous matched filters. The I (in-phase) filter is used to demodulate the subcarrier envelope, while the Q (quadrature-phase) filter is used in a type-1 phase-lock loop (PLL) to discipline the demodulator phase.

A bipolar data signal is determined from the matched filter subcarrier envelope using a pulse-width discriminator. The discriminator samples the I channel at 15 ms (n), 200 ms (s0) and 500 ms (s1), and the envelope (RMS I and Q channels) at 200 ms (e1) and the end of the second (e0). The bipolar data signal is expressed 2s1 - s0 - n, where positive values correspond to data 1 and negative values correspond to data 0. Note that, since the signals s0 and s1 include the noise n, the noise component cancels out. The data bit SNR is calculated as 20 log10(e1 / e0). If the driver has not synchronized to the minute pulse, or if the data bit amplitude e1 or SNR are below thresholds, the bit is considered invalid and the bipolar signal is forced to zero.

The bipolar signal is exponentially averaged in a set of 60 accumulators, one for each second, to determine the semi-static miscellaneous bits, such as DST indicator, leap second warning and DUT1 correction. In this design a data average value larger than a positive threshold is interpreted as +1 (hit) and a value smaller than a negative threshold as a -1 (miss). Values between the two thresholds, which can occur due to signal fades, are interpreted as an erasure and result in no change of indication.

Maximum-Likelihood Decoder

The BCD digit in each digit position of the timecode is represented as four data bits. The bits are correlated with the bits corresponding to each of the valid decimal digits in this position. If any of the four bits are invalid, the correlated value for all digits in this position is assumed zero. In either case, the values for all digits are exponentially averaged in a likelihood vector associated with this position. The digit associated with the maximum over all averaged values then becomes the maximum-likelihood candidate for this position and the ratio of the maximum over the next lower value represents the digit SNR.

The decoding matrix contains nine row vectors, one for each digit position. Each row vector includes the maximum-likelihood digit, likelihood vector and other related data. The maximum-likelihood digit for each of the nine digit positions becomes the maximum-likelihood time of the century. A built-in transition function implements a conventional clock with decimal digits that count the minutes, hours, days and years, as corrected for leap seconds and leap years. The counting operation also rotates the likelihood vector corresponding to each digit as it advances. Thus, once the clock is set, each clock digit should correspond to the maximum-likelihood digit as transmitted.

Each row of the decoding matrix also includes a compare counter and the most recently determined maximum-likelihood digit. If a digit likelihood exceeds the decision level and compares with previous digits for a number of successive minutes in any row, the maximum-likelihood digit replaces the clock digit in that row. When this condition is true for all rows and the second epoch has been reliably determined, the clock is set (or verified if it has already been set) and delivers correct time to the integral second. The fraction within the second is derived from the logical master clock, which runs at 8000 Hz and drives all system timing functions.

Master Clock Discipline

The logical master clock is derived from the audio codec clock. Its frequency is disciplined by a frequency-lock loop (FLL) which operates independently of the data recovery functions. The maximum value of the 5-ms pulse after the comb filter represents the on-time epoch of the second. At averaging intervals determined by the measured jitter, the frequency error is calculated as the difference between the epoches over the interval divided by the interval itself. The sample clock frequency is then corrected by this amount divided by a time constant of 8.

When first started, the frequency averaging interval is 8 seconds, in order to compensate for intrinsic codec clock frequency offsets up to 125 PPM. Under most conditions, the averaging interval doubles in stages from the initial value to 1024 s, which results in an ultimate frequency resolution of 0.125 PPM, or about 11 ms/day.

The data demodulation functions operate using the subcarrier clock, which is independent of the epoch. However, the data decoding functions are driven by the epoch. The decoder is phase-locked to the epoch in such a way that, when the clock state machine has reliably decoded the broadcast time to the second, the epoch timestamp of that second becomes a candidate to set the system clock.

The comb filter can have a long memory and is vulnerable to noise and stale data, especially when coming up after a long fade. Therefore, a candidate is considered valid only if the 5-ms signal amplitude and SNR are above thresholds. In addition, the system clock is not set until after one complete averaging interval has passed with valid candidates.

Station Identification

It is important that the logical clock frequency is stable and accurately determined, since in many applications the shortwave radio will be tuned to a fixed frequency where WWV or WWVH signals are not available throughout the day. In addition, in some parts of the US, especially on the west coast, signals from either or both WWV and WWVH may be available at different times or even at the same time. Since the propagation times from either station are almost always different, each station must be reliably identified before attempting to set the clock.

Reliable station identification requires accurate discrimination between very weak signals in noise and noise alone. The driver very aggressively soaks up every scrap of signal information, but has to be careful to avoid making pseudo-sense of noise alone. The signal quality metric depends on the minute pulse amplitude and SNR measured in second 0 of the minute, together with the data subcarrier amplitude and SNR measured in second 1. If all four values are above defined thresholds a hit is declared, otherwise a miss. In principle, the data pulse in second 58 is usable, but the AGC in most radios is not fast enough for a reliable measurement.

The number of hits declared in the last 6 minutes for each station represents the high order bits of the metric, while the current minute pulse amplitude represents the low order bits. Only if the metric is above a defined threshold is the station signal considered acceptable. The metric is also used by the autotune function described below and reported in the timecode string.

Performance

It is the intent of the design that the accuracy and stability of the indicated time be limited only by the characteristics of the ionospheric propagation medium. Conventional wisdom is that manual synchronization via oscilloscope and HF medium is good only to a millisecond under the best propagation conditions. The performance of the NTP daemon disciplined by this driver is clearly better than this, even under marginal conditions.

The figure below shows the measured offsets over a typical day near the bottom of the sunspot cycle ending in October, 2006. Variations up to ±0.4 ms can be expected due to changing ionospheric layer height and ray geometry over the day and night.

gif

The figure was constructed using a 2.4-GHz P4 running FreeBSD 6.1. For these measurements the computer clock was disciplined within a few microseconds of UTC using a PPS signal and GPS receiver and the measured offsets determined from the filegen peerstats data.

The predicted propagation delay from the WWV transmitter at Boulder, CO, to the receiver at Newark, DE, varies over 9.0-9.3 ms. In addition, the receiver contributes 4.7 ms and the 600-Hz bandpass filter 0.9 ms. With these values, the mean error is less than 0.1 ms and varies ±0.3 ms over the day as the result of changing ionospheric height and ray geometry.

Program Operation

The driver begins operation immediately upon startup. It first searches for one or both of the stations WWV and WWVH and attempts to acquire minute synch. This may take some fits and starts, as the driver expects to see several consecutive minutes with good signals and low jitter. If the autotune function is active, the driver will rotate over all five frequencies and both WWV and WWVH stations until finding a station and frequency with acceptable metric.

While this is going on the the driver acquires second synch, which can take up to several minutes, depending on signal quality. When minute synch has been acquired, the driver accumulates likelihood values for the unit (seconds) digit of the nine timecode digits, plus the seven miscellaneous bits included in the WWV/H transmission format. When a good unit digit has been found, the driver accumulated likelihood values for the remaining eight digits of the timecode. When three repetitions of all nine digits have decoded correctly, which normally takes 15 minutes with good signals, and up to 40 minutes when buried in noise, and the second synch has been acquired, the clock is set (or verified) and is selectable to discipline the system clock.

Once the clock is set, it continues to provide correct timecodes as long as the signal metric is above threshold, as described in the previous section. As long as the clock is correctly set or verified, the system clock offsets are provided once each minute to the reference clock interface, where they are processed using the same algorithms as with other reference clocks and remote servers.

It may happen as the hours progress around the clock that WWV and WWVH signals may appear alone, together or not at all. When the driver has mitigated which station and frequency is best, it sets the reference identifier to the string WVf for WWV and WHf for WWVH, where f is the frequency in megahertz. If the propagation delays have been properly set with the fudge time1 (WWV) and fudge time2 (WWVH) commands in the configuration file, handover from one station to the other is seamless.

Operation continues as long as the signal metric from at least one station on at least one frequency is acceptable. A consequence of this design is that, once the clock is set, the time and frequency are disciplined only by the second synch pulse and the clock digits themselves are driven by the clock state machine. If for some reason the state machine drifts to the wrong second, it would never resynchronize. To protect against this most unlikely situation, if after two days with no signals, the clock is considered unset and resumes the synchronization procedure from the beginning.

Once the system clock been set correctly it will continue to read correctly even during the holdover interval, but with increasing dispersion. Assuming the system clock frequency can be disciplined within 1 PPM, it can coast without signals for several days without exceeding the NTP step threshold of 128 ms. During such periods the root distance increases at 15 μs per second, which makes the driver appear less likely for selection as time goes on. Eventually, when the distance due all causes exceeds 1 s, it is no longer suitable for synchronization. Ordinarily, this happens after about 18 hours with no signals. The tinker maxdist configuration command can be used to change this value.

Autotune

The driver includes provisions to automatically tune the radio in response to changing radio propagation conditions throughout the day and night. The radio interface is compatible with the ICOM CI-V standard, which is a bidirectional serial bus operating at TTL levels. The bus can be connected to a standard serial port using a level converter such as the CT-17. Further details are on the Reference Clock Audio Drivers page.

If specified, the driver will attempt to open the device /dev/icom and, if successful will activate the autotune function and tune the radio to each operating frequency in turn while attempting to acquire minute synch from either WWV or WWVH. However, the driver is liberal in what it assumes of the configuration. If the /dev/icom link is not present or the open fails or the CI-V bus is inoperative, the driver quietly gives up with no harm done.

Once acquiring minute synch, the driver operates as described above to set the clock. However, during seconds 59, 0 and 1 of each minute it tunes the radio to one of the five broadcast frequencies to measure the signal metric as described above. Each of the five frequencies are probed in a five-minute rotation to build a database of current propagation conditions for all signals that can be heard at the time. At the end of each probe a mitigation procedure scans the database and retunes the radio to the best frequency and station found. For this to work well, the radio should be set for a fast AGC recovery time. This is most important while tracking a strong signal, which is normally the case, and then probing another frequency, which may have much weaker signals.

The mitigation procedure selects the frequency and station with the highest valid metric, ties going first to the highest frequency and then to WWV in order. A station is considered valid only if the metric is above a specified threshold; if no station is above the metric, the rotating probes continue until a valid station is found.

The behavior of the autotune function over a typical day is shown in the figure below.

gif

As expected, the lower frequencies prevail when the ray path is in moonlight (0100-1300 UTC) and the higher frequencies when the path is in sunlight (1300-0100 UTC). Note three periods in the figure show zero frequency when signals are below the minimum for all frequencies and stations.

Debugging Aids

The most convenient way to track the driver status is using the ntpq program and the clockvar command. This displays the last determined timecode and related status and error counters, even when the driver is not disciplining the system clock. If the debugging trace feature (-d on the ntpd command line) is enabled, the driver produces detailed status messages as it operates. If the fudge flag 4 is set, these messages are written to the clockstats file. All messages produced by this driver have the prefix wwv for convenient filtering with the Unix grep command.

The autotune process produces diagnostic information along with the timecode. This is very useful for evaluating the performance of the algorithms, as well as radio propagation conditions in general. The message is produced once each minute for each frequency in turn after minute synch has been acquired.

wwv5 status agc epoch secamp/secsnr datamp/datsnr wwv wwvh

where the fields after the wwv5 identifier are: status contains status bits, agc audio gain, epoch second epoch, secamp/secsnr second pulse amplitude/SNR, and wwv and wwvh are two sets of fields, one each for WWV and WWVH. Each of the two fields has the format

ident score metric minamp/minsnr

where ident encodes the station (WV for WWV, WH for WWVH) and frequency (2, 5, 10, 15 or 20), score 32-bit shift register recording the hits (1) and misses (0) of the last 32 probes (hits and misses enter from the right), metric is described above, and minamp/minsnr is the minute pulse ampliture/SNR. An example is:

wwv5 000d 111 5753 3967/20.1 3523/10.2 WV20 bdeff 100 8348/30.0 WH20 0000 1 22/-12.4

There are several other messages that can occur; these are documented in the source listing.

Monitor Data

When enabled by the filegen facility, every received timecode is written to the clockstats file in the following format:

sq yyyy ddd hh:mm:ss l d du lset agc ident metric errs freq avg

The fields beginning with yyyy and extending through du are decoded from the received data and are in fixed-length format. The remaining fields are in variable-length format. The fields are as follows:
s
The synch indicator is initially ? before the clock is set, but turns to space when all nine digits of the timecode are correctly set and the decoder is synchronized to the station within 125 μs.
q
The quality character is a four-bit hexadecimal code showing which alarms have been raised. Each bit is associated with a specific alarm condition according to the following:
0x8
synch alarm. The decoder is not synchronized to the station within 125 μs.
0x4
Digit error alarm. Less than nine decimal digits were found in the last minute.
0x2
Error alarm. More than 40 data bit errors were found in the last minute.
0x1
Compare alarm. A maximum-likelihood digit failed to agree with the current associated clock digit in the last minute.
It is important to note that one or more of the above alarms does not necessarily indicate a clock error, but only that the decoder has detected a marginal condition.
yyyy ddd hh:mm:ss
The timecode format itself is self explanatory. Since the driver latches the on-time epoch directly from the second synch pulse, the seconds fraction is always zero. Although the transmitted timecode includes only the year of century, the Gregorian year is augmented by 2000.
l
The leap second warning is normally space, but changes to L if a leap second is to occur at the end of the month.
d
The DST state is S or D when standard time or daylight time is in effect, respectively. The state is I or O when daylight time is about to go into effect or out of effect, respectively.
du
The DUT sign and magnitude shows the current UT1 offset relative to the displayed UTC time, in deciseconds.
lset
Before the clock is set, the interval since last set is the number of minutes since the driver was started; after the clock is set, this is number of minutes since the decoder was last synchronized to the station within 125 μs.
agc
The audio gain shows the current codec gain setting in the range 0 to 255. Ordinarily, the receiver audio gain control should be set for a value midway in this range.
ident
The station identifier shows the station, WVf for WWV or WHf for WWVH, and frequency f being tracked. If neither station is heard on any frequency, the reference identifier shows NONE.
metric
The signal metric described above from 0 (no signal) to 100 (best).
errs
The bit error counter is useful to determine the quality of the data signal received in the most recent minute. It is normal to drop a couple of data bits even under good signal conditions and increasing numbers as conditions worsen. While the decoder performs moderately well even with half the bits are in error in any minute, usually by that point the metric drops below threshold and the decoder switches to a different frequency.
freq
The frequency offset is the current estimate of the codec frequency offset to within 0.1 PPM. This may wander a bit over the day due to local temperature fluctuations and propagation conditions.
avg
The averaging time is the interval between frequency updates in powers of two to a maximum of 1024 s. Attainment of the maximum indicates the driver is operating at the best possible resolution in time and frequency.

An example timecode is:

0 2000 006 22:36:00 S +3 1 115 WV20 86 5 66.4 1024

Here the clock has been set and no alarms are raised. The year, day and time are displayed along with no leap warning, standard time and DUT +0.3 s. The clock was set on the last minute, the AGC is safely in the middle ot the range 0-255, and the receiver is tracking WWV on 20 MHz. Good receiving conditions prevail, as indicated by the metric 86 and 5 bit errors during the last minute. The current frequency is 66.4 PPM and the averaging interval is 1024 s, indicating the maximum precision available.

Fudge Factors

time1 time
Specifies the propagation delay for WWV (40:40:49.0N 105:02:27.0W), in seconds and fraction, with default 0.0.
time2 time
Specifies the propagation delay for WWVH (21:59:26.0N 159:46:00.0W), in seconds and fraction, with default 0.0.
stratum number
Specifies the driver stratum, in decimal from 0 to 15, with default 0.
refid string
Ordinarily, this field specifies the driver reference identifier; however, the driver sets the reference identifier automatically as described above.
flag1 0 | 1
Not used by this driver.
flag2 0 | 1
Specifies the microphone port if set to zero or the line-in port if set to one. It does not seem useful to specify the compact disc player port.
flag3 0 | 1
Enables audio monitoring of the input signal. For this purpose, the speaker volume must be set before the driver is started.
flag4 0 | 1
Enable verbose clockstats recording if set.

@ 1.1.1.2.4.1 log @Apply patch (requested by christos in ticket #351): external/bsd/ntp/Makefile.inc patch external/bsd/ntp/importdate patch external/bsd/ntp/bin/ntpd/Makefile patch external/bsd/ntp/dist/COPYRIGHT patch external/bsd/ntp/dist/ChangeLog patch external/bsd/ntp/dist/CommitLog patch external/bsd/ntp/dist/Makefile.am patch external/bsd/ntp/dist/Makefile.in patch external/bsd/ntp/dist/NEWS patch external/bsd/ntp/dist/aclocal.m4 patch external/bsd/ntp/dist/bootstrap patch external/bsd/ntp/dist/build patch external/bsd/ntp/dist/config.h.in patch external/bsd/ntp/dist/configure patch external/bsd/ntp/dist/configure.ac patch external/bsd/ntp/dist/packageinfo.sh patch external/bsd/ntp/dist/adjtimed/Makefile.in patch external/bsd/ntp/dist/adjtimed/adjtimed.c patch external/bsd/ntp/dist/clockstuff/Makefile.in patch external/bsd/ntp/dist/clockstuff/chutest.c patch external/bsd/ntp/dist/clockstuff/propdelay.c patch external/bsd/ntp/dist/html/access.html patch external/bsd/ntp/dist/html/accopt.html patch external/bsd/ntp/dist/html/assoc.html patch external/bsd/ntp/dist/html/audio.html patch external/bsd/ntp/dist/html/authentic.html patch external/bsd/ntp/dist/html/authopt.html patch external/bsd/ntp/dist/html/autokey.html patch external/bsd/ntp/dist/html/bugs.html patch external/bsd/ntp/dist/html/build.html patch external/bsd/ntp/dist/html/clock.html patch external/bsd/ntp/dist/html/clockopt.html patch external/bsd/ntp/dist/html/cluster.html patch external/bsd/ntp/dist/html/comdex.html patch external/bsd/ntp/dist/html/config.html patch external/bsd/ntp/dist/html/confopt.html patch external/bsd/ntp/dist/html/copyright.html patch external/bsd/ntp/dist/html/debug.html patch external/bsd/ntp/dist/html/decode.html patch external/bsd/ntp/dist/html/discipline.html patch external/bsd/ntp/dist/html/discover.html patch external/bsd/ntp/dist/html/extern.html patch external/bsd/ntp/dist/html/filter.html patch external/bsd/ntp/dist/html/hints.html patch external/bsd/ntp/dist/html/history.html patch external/bsd/ntp/dist/html/howto.html patch external/bsd/ntp/dist/html/huffpuff.html patch external/bsd/ntp/dist/html/index.html patch external/bsd/ntp/dist/html/kern.html patch external/bsd/ntp/dist/html/kernpps.html patch external/bsd/ntp/dist/html/keygen.html patch external/bsd/ntp/dist/html/leap.html patch external/bsd/ntp/dist/html/miscopt.html patch external/bsd/ntp/dist/html/monopt.html patch external/bsd/ntp/dist/html/msyslog.html patch external/bsd/ntp/dist/html/ntp-wait.html patch external/bsd/ntp/dist/html/ntp_conf.html patch external/bsd/ntp/dist/html/ntpd.html patch external/bsd/ntp/dist/html/ntpdate.html patch external/bsd/ntp/dist/html/ntpdc.html patch external/bsd/ntp/dist/html/ntpdsim.html patch external/bsd/ntp/dist/html/ntpdsim_new.html patch external/bsd/ntp/dist/html/ntpq.html patch external/bsd/ntp/dist/html/ntptime.html patch external/bsd/ntp/dist/html/ntptrace.html patch external/bsd/ntp/dist/html/orphan.html patch external/bsd/ntp/dist/html/parsedata.html patch external/bsd/ntp/dist/html/parsenew.html patch external/bsd/ntp/dist/html/poll.html patch external/bsd/ntp/dist/html/pps.html patch external/bsd/ntp/dist/html/prefer.html patch external/bsd/ntp/dist/html/quick.html patch external/bsd/ntp/dist/html/rate.html patch external/bsd/ntp/dist/html/rdebug.html patch external/bsd/ntp/dist/html/refclock.html patch external/bsd/ntp/dist/html/release.html patch external/bsd/ntp/dist/html/select.html patch external/bsd/ntp/dist/html/sitemap.html patch external/bsd/ntp/dist/html/sntp.html patch external/bsd/ntp/dist/html/stats.html patch external/bsd/ntp/dist/html/tickadj.html patch external/bsd/ntp/dist/html/warp.html patch external/bsd/ntp/dist/html/xleave.html patch external/bsd/ntp/dist/html/drivers/driver1.html patch external/bsd/ntp/dist/html/drivers/driver10.html patch external/bsd/ntp/dist/html/drivers/driver11.html patch external/bsd/ntp/dist/html/drivers/driver12.html patch external/bsd/ntp/dist/html/drivers/driver16.html patch external/bsd/ntp/dist/html/drivers/driver18.html patch external/bsd/ntp/dist/html/drivers/driver19.html patch external/bsd/ntp/dist/html/drivers/driver20.html patch external/bsd/ntp/dist/html/drivers/driver22.html patch external/bsd/ntp/dist/html/drivers/driver26.html patch external/bsd/ntp/dist/html/drivers/driver27.html patch external/bsd/ntp/dist/html/drivers/driver28.html patch external/bsd/ntp/dist/html/drivers/driver29.html patch external/bsd/ntp/dist/html/drivers/driver3.html patch external/bsd/ntp/dist/html/drivers/driver30.html patch external/bsd/ntp/dist/html/drivers/driver31.html patch external/bsd/ntp/dist/html/drivers/driver32.html patch external/bsd/ntp/dist/html/drivers/driver33.html patch external/bsd/ntp/dist/html/drivers/driver34.html patch external/bsd/ntp/dist/html/drivers/driver35.html patch external/bsd/ntp/dist/html/drivers/driver36.html patch external/bsd/ntp/dist/html/drivers/driver37.html patch external/bsd/ntp/dist/html/drivers/driver38.html patch external/bsd/ntp/dist/html/drivers/driver39.html patch external/bsd/ntp/dist/html/drivers/driver4.html patch external/bsd/ntp/dist/html/drivers/driver40.html patch external/bsd/ntp/dist/html/drivers/driver42.html patch external/bsd/ntp/dist/html/drivers/driver43.html patch external/bsd/ntp/dist/html/drivers/driver44.html patch external/bsd/ntp/dist/html/drivers/driver45.html patch external/bsd/ntp/dist/html/drivers/driver46.html patch external/bsd/ntp/dist/html/drivers/driver5.html patch external/bsd/ntp/dist/html/drivers/driver6.html patch external/bsd/ntp/dist/html/drivers/driver7.html patch external/bsd/ntp/dist/html/drivers/driver8.html patch external/bsd/ntp/dist/html/drivers/driver9.html patch external/bsd/ntp/dist/html/drivers/mx4200data.html patch external/bsd/ntp/dist/html/drivers/oncore-shmem.html patch external/bsd/ntp/dist/html/drivers/tf582_4.html patch external/bsd/ntp/dist/html/hints/sco.html patch external/bsd/ntp/dist/html/hints/solaris.html patch external/bsd/ntp/dist/html/hints/vxworks.html patch external/bsd/ntp/dist/html/hints/winnt.html patch external/bsd/ntp/dist/html/scripts/monopt.txt patch external/bsd/ntp/dist/include/Makefile.am patch external/bsd/ntp/dist/include/Makefile.in patch external/bsd/ntp/dist/include/adjtime.h patch external/bsd/ntp/dist/include/ascii.h patch external/bsd/ntp/dist/include/audio.h patch external/bsd/ntp/dist/include/binio.h patch external/bsd/ntp/dist/include/declcond.h patch external/bsd/ntp/dist/include/gps.h patch external/bsd/ntp/dist/include/hopf6039.h patch external/bsd/ntp/dist/include/icom.h patch external/bsd/ntp/dist/include/ieee754io.h patch external/bsd/ntp/dist/include/intreswork.h patch external/bsd/ntp/dist/include/iosignal.h patch external/bsd/ntp/dist/include/l_stdlib.h patch external/bsd/ntp/dist/include/lib_strbuf.h patch external/bsd/ntp/dist/include/libntp.h patch external/bsd/ntp/dist/include/mbg_gps166.h patch external/bsd/ntp/dist/include/mx4200.h patch external/bsd/ntp/dist/include/ntif.h patch external/bsd/ntp/dist/include/ntp.h patch external/bsd/ntp/dist/include/ntp_assert.h patch external/bsd/ntp/dist/include/ntp_calendar.h patch external/bsd/ntp/dist/include/ntp_cmdargs.h patch external/bsd/ntp/dist/include/ntp_config.h patch external/bsd/ntp/dist/include/ntp_control.h patch external/bsd/ntp/dist/include/ntp_crypto.h patch external/bsd/ntp/dist/include/ntp_datum.h patch external/bsd/ntp/dist/include/ntp_debug.h patch external/bsd/ntp/dist/include/ntp_filegen.h patch external/bsd/ntp/dist/include/ntp_fp.h patch external/bsd/ntp/dist/include/ntp_if.h patch external/bsd/ntp/dist/include/ntp_intres.h patch external/bsd/ntp/dist/include/ntp_io.h patch external/bsd/ntp/dist/include/ntp_libopts.h patch external/bsd/ntp/dist/include/ntp_lineedit.h patch external/bsd/ntp/dist/include/ntp_lists.h patch external/bsd/ntp/dist/include/ntp_machine.h patch external/bsd/ntp/dist/include/ntp_malloc.h patch external/bsd/ntp/dist/include/ntp_md5.h patch external/bsd/ntp/dist/include/ntp_net.h patch external/bsd/ntp/dist/include/ntp_prio_q.h patch external/bsd/ntp/dist/include/ntp_proto.h patch external/bsd/ntp/dist/include/ntp_random.h patch external/bsd/ntp/dist/include/ntp_refclock.h patch external/bsd/ntp/dist/include/ntp_request.h patch external/bsd/ntp/dist/include/ntp_rfc2553.h patch external/bsd/ntp/dist/include/ntp_select.h patch external/bsd/ntp/dist/include/ntp_stdlib.h patch external/bsd/ntp/dist/include/ntp_string.h patch external/bsd/ntp/dist/include/ntp_syscall.h patch external/bsd/ntp/dist/include/ntp_syslog.h patch external/bsd/ntp/dist/include/ntp_tty.h patch external/bsd/ntp/dist/include/ntp_types.h patch external/bsd/ntp/dist/include/ntp_unixtime.h patch external/bsd/ntp/dist/include/ntp_worker.h patch external/bsd/ntp/dist/include/ntp_workimpl.h patch external/bsd/ntp/dist/include/ntpd.h patch external/bsd/ntp/dist/include/ntpsim.h patch external/bsd/ntp/dist/include/parse.h patch external/bsd/ntp/dist/include/parse_conf.h patch external/bsd/ntp/dist/include/recvbuff.h patch external/bsd/ntp/dist/include/refclock_atom.h patch external/bsd/ntp/dist/include/ssl_applink.c patch external/bsd/ntp/dist/include/timepps-SCO.h patch external/bsd/ntp/dist/include/timepps-Solaris.h patch external/bsd/ntp/dist/include/timepps-SunOS.h patch external/bsd/ntp/dist/include/timespecops.h patch external/bsd/ntp/dist/include/timetoa.h patch external/bsd/ntp/dist/include/timevalops.h patch external/bsd/ntp/dist/include/trimble.h patch external/bsd/ntp/dist/include/vint64ops.h patch external/bsd/ntp/dist/include/isc/Makefile.in patch external/bsd/ntp/dist/include/isc/mem.h patch external/bsd/ntp/dist/kernel/Makefile.in patch external/bsd/ntp/dist/kernel/sys/Makefile.in patch external/bsd/ntp/dist/kernel/sys/bsd_audioirig.h patch external/bsd/ntp/dist/kernel/sys/i8253.h patch external/bsd/ntp/dist/kernel/sys/parsestreams.h patch external/bsd/ntp/dist/kernel/sys/pcl720.h patch external/bsd/ntp/dist/kernel/sys/ppsclock.h patch external/bsd/ntp/dist/kernel/sys/timex.h patch external/bsd/ntp/dist/kernel/sys/tpro.h patch external/bsd/ntp/dist/kernel/sys/tt560_api.h patch external/bsd/ntp/dist/lib/isc/app_api.c patch external/bsd/ntp/dist/lib/isc/assertions.c patch external/bsd/ntp/dist/lib/isc/backtrace-emptytbl.c patch external/bsd/ntp/dist/lib/isc/backtrace.c patch external/bsd/ntp/dist/lib/isc/base32.c patch external/bsd/ntp/dist/lib/isc/base64.c patch external/bsd/ntp/dist/lib/isc/bitstring.c patch external/bsd/ntp/dist/lib/isc/buffer.c patch external/bsd/ntp/dist/lib/isc/bufferlist.c patch external/bsd/ntp/dist/lib/isc/commandline.c patch external/bsd/ntp/dist/lib/isc/entropy.c patch external/bsd/ntp/dist/lib/isc/error.c patch external/bsd/ntp/dist/lib/isc/event.c patch external/bsd/ntp/dist/lib/isc/fsaccess.c patch external/bsd/ntp/dist/lib/isc/hash.c patch external/bsd/ntp/dist/lib/isc/heap.c patch external/bsd/ntp/dist/lib/isc/hex.c patch external/bsd/ntp/dist/lib/isc/hmacmd5.c patch external/bsd/ntp/dist/lib/isc/hmacsha.c patch external/bsd/ntp/dist/lib/isc/httpd.c patch external/bsd/ntp/dist/lib/isc/inet_aton.c patch external/bsd/ntp/dist/lib/isc/inet_ntop.c patch external/bsd/ntp/dist/lib/isc/inet_pton.c patch external/bsd/ntp/dist/lib/isc/iterated_hash.c patch external/bsd/ntp/dist/lib/isc/lex.c patch external/bsd/ntp/dist/lib/isc/lfsr.c patch external/bsd/ntp/dist/lib/isc/lib.c patch external/bsd/ntp/dist/lib/isc/log.c patch external/bsd/ntp/dist/lib/isc/md5.c patch external/bsd/ntp/dist/lib/isc/mem.c patch external/bsd/ntp/dist/lib/isc/mem_api.c patch external/bsd/ntp/dist/lib/isc/mutexblock.c patch external/bsd/ntp/dist/lib/isc/netaddr.c patch external/bsd/ntp/dist/lib/isc/netscope.c patch external/bsd/ntp/dist/lib/isc/ondestroy.c patch external/bsd/ntp/dist/lib/isc/parseint.c patch external/bsd/ntp/dist/lib/isc/portset.c patch external/bsd/ntp/dist/lib/isc/print.c patch external/bsd/ntp/dist/lib/isc/quota.c patch external/bsd/ntp/dist/lib/isc/radix.c patch external/bsd/ntp/dist/lib/isc/random.c patch external/bsd/ntp/dist/lib/isc/ratelimiter.c patch external/bsd/ntp/dist/lib/isc/refcount.c patch external/bsd/ntp/dist/lib/isc/region.c patch external/bsd/ntp/dist/lib/isc/result.c patch external/bsd/ntp/dist/lib/isc/rwlock.c patch external/bsd/ntp/dist/lib/isc/serial.c patch external/bsd/ntp/dist/lib/isc/sha1.c patch external/bsd/ntp/dist/lib/isc/sha2.c patch external/bsd/ntp/dist/lib/isc/sockaddr.c patch external/bsd/ntp/dist/lib/isc/socket_api.c patch external/bsd/ntp/dist/lib/isc/stats.c patch external/bsd/ntp/dist/lib/isc/string.c patch external/bsd/ntp/dist/lib/isc/strtoul.c patch external/bsd/ntp/dist/lib/isc/symtab.c patch external/bsd/ntp/dist/lib/isc/task.c patch external/bsd/ntp/dist/lib/isc/task_api.c patch external/bsd/ntp/dist/lib/isc/task_p.h patch external/bsd/ntp/dist/lib/isc/taskpool.c patch external/bsd/ntp/dist/lib/isc/timer.c patch external/bsd/ntp/dist/lib/isc/timer_api.c patch external/bsd/ntp/dist/lib/isc/timer_p.h patch external/bsd/ntp/dist/lib/isc/version.c patch external/bsd/ntp/dist/lib/isc/alpha/include/isc/atomic.h patch external/bsd/ntp/dist/lib/isc/ia64/include/isc/atomic.h patch external/bsd/ntp/dist/lib/isc/include/isc/Makefile patch external/bsd/ntp/dist/lib/isc/include/isc/app.h patch external/bsd/ntp/dist/lib/isc/include/isc/assertions.h patch external/bsd/ntp/dist/lib/isc/include/isc/backtrace.h patch external/bsd/ntp/dist/lib/isc/include/isc/base32.h patch external/bsd/ntp/dist/lib/isc/include/isc/base64.h patch external/bsd/ntp/dist/lib/isc/include/isc/bind9.h patch external/bsd/ntp/dist/lib/isc/include/isc/bitstring.h patch external/bsd/ntp/dist/lib/isc/include/isc/boolean.h patch external/bsd/ntp/dist/lib/isc/include/isc/buffer.h patch external/bsd/ntp/dist/lib/isc/include/isc/bufferlist.h patch external/bsd/ntp/dist/lib/isc/include/isc/commandline.h patch external/bsd/ntp/dist/lib/isc/include/isc/entropy.h patch external/bsd/ntp/dist/lib/isc/include/isc/error.h patch external/bsd/ntp/dist/lib/isc/include/isc/event.h patch external/bsd/ntp/dist/lib/isc/include/isc/eventclass.h patch external/bsd/ntp/dist/lib/isc/include/isc/file.h patch external/bsd/ntp/dist/lib/isc/include/isc/formatcheck.h patch external/bsd/ntp/dist/lib/isc/include/isc/fsaccess.h patch external/bsd/ntp/dist/lib/isc/include/isc/hash.h patch external/bsd/ntp/dist/lib/isc/include/isc/heap.h patch external/bsd/ntp/dist/lib/isc/include/isc/hex.h patch external/bsd/ntp/dist/lib/isc/include/isc/hmacmd5.h patch external/bsd/ntp/dist/lib/isc/include/isc/hmacsha.h patch external/bsd/ntp/dist/lib/isc/include/isc/httpd.h patch external/bsd/ntp/dist/lib/isc/include/isc/interfaceiter.h patch external/bsd/ntp/dist/lib/isc/include/isc/ipv6.h patch external/bsd/ntp/dist/lib/isc/include/isc/iterated_hash.h patch external/bsd/ntp/dist/lib/isc/include/isc/lang.h patch external/bsd/ntp/dist/lib/isc/include/isc/lex.h patch external/bsd/ntp/dist/lib/isc/include/isc/lfsr.h patch external/bsd/ntp/dist/lib/isc/include/isc/lib.h patch external/bsd/ntp/dist/lib/isc/include/isc/list.h patch external/bsd/ntp/dist/lib/isc/include/isc/log.h patch external/bsd/ntp/dist/lib/isc/include/isc/magic.h patch external/bsd/ntp/dist/lib/isc/include/isc/md5.h patch external/bsd/ntp/dist/lib/isc/include/isc/mem.h patch external/bsd/ntp/dist/lib/isc/include/isc/msgcat.h patch external/bsd/ntp/dist/lib/isc/include/isc/msgs.h patch external/bsd/ntp/dist/lib/isc/include/isc/mutexblock.h patch external/bsd/ntp/dist/lib/isc/include/isc/namespace.h patch external/bsd/ntp/dist/lib/isc/include/isc/netaddr.h patch external/bsd/ntp/dist/lib/isc/include/isc/netscope.h patch external/bsd/ntp/dist/lib/isc/include/isc/ondestroy.h patch external/bsd/ntp/dist/lib/isc/include/isc/os.h patch external/bsd/ntp/dist/lib/isc/include/isc/parseint.h patch external/bsd/ntp/dist/lib/isc/include/isc/platform.h patch external/bsd/ntp/dist/lib/isc/include/isc/portset.h patch external/bsd/ntp/dist/lib/isc/include/isc/print.h patch external/bsd/ntp/dist/lib/isc/include/isc/queue.h patch external/bsd/ntp/dist/lib/isc/include/isc/quota.h patch external/bsd/ntp/dist/lib/isc/include/isc/radix.h patch external/bsd/ntp/dist/lib/isc/include/isc/random.h patch external/bsd/ntp/dist/lib/isc/include/isc/ratelimiter.h patch external/bsd/ntp/dist/lib/isc/include/isc/refcount.h patch external/bsd/ntp/dist/lib/isc/include/isc/region.h patch external/bsd/ntp/dist/lib/isc/include/isc/resource.h patch external/bsd/ntp/dist/lib/isc/include/isc/result.h patch external/bsd/ntp/dist/lib/isc/include/isc/resultclass.h patch external/bsd/ntp/dist/lib/isc/include/isc/rwlock.h patch external/bsd/ntp/dist/lib/isc/include/isc/serial.h patch external/bsd/ntp/dist/lib/isc/include/isc/sha1.h patch external/bsd/ntp/dist/lib/isc/include/isc/sha2.h patch external/bsd/ntp/dist/lib/isc/include/isc/sockaddr.h patch external/bsd/ntp/dist/lib/isc/include/isc/socket.h patch external/bsd/ntp/dist/lib/isc/include/isc/stats.h patch external/bsd/ntp/dist/lib/isc/include/isc/stdio.h patch external/bsd/ntp/dist/lib/isc/include/isc/stdlib.h patch external/bsd/ntp/dist/lib/isc/include/isc/string.h patch external/bsd/ntp/dist/lib/isc/include/isc/symtab.h patch external/bsd/ntp/dist/lib/isc/include/isc/task.h patch external/bsd/ntp/dist/lib/isc/include/isc/taskpool.h patch external/bsd/ntp/dist/lib/isc/include/isc/timer.h patch external/bsd/ntp/dist/lib/isc/include/isc/types.h patch external/bsd/ntp/dist/lib/isc/include/isc/util.h patch external/bsd/ntp/dist/lib/isc/include/isc/version.h patch external/bsd/ntp/dist/lib/isc/include/isc/xml.h patch external/bsd/ntp/dist/lib/isc/mips/include/isc/atomic.h patch external/bsd/ntp/dist/lib/isc/nls/msgcat.c patch external/bsd/ntp/dist/lib/isc/noatomic/include/isc/atomic.h patch external/bsd/ntp/dist/lib/isc/nothreads/condition.c patch external/bsd/ntp/dist/lib/isc/nothreads/mutex.c patch external/bsd/ntp/dist/lib/isc/nothreads/thread.c patch external/bsd/ntp/dist/lib/isc/nothreads/include/isc/condition.h patch external/bsd/ntp/dist/lib/isc/nothreads/include/isc/mutex.h patch external/bsd/ntp/dist/lib/isc/nothreads/include/isc/once.h patch external/bsd/ntp/dist/lib/isc/nothreads/include/isc/thread.h patch external/bsd/ntp/dist/lib/isc/powerpc/include/isc/atomic.h patch external/bsd/ntp/dist/lib/isc/pthreads/condition.c patch external/bsd/ntp/dist/lib/isc/pthreads/mutex.c patch external/bsd/ntp/dist/lib/isc/pthreads/thread.c patch external/bsd/ntp/dist/lib/isc/pthreads/include/isc/condition.h patch external/bsd/ntp/dist/lib/isc/pthreads/include/isc/mutex.h patch external/bsd/ntp/dist/lib/isc/pthreads/include/isc/once.h patch external/bsd/ntp/dist/lib/isc/pthreads/include/isc/thread.h patch external/bsd/ntp/dist/lib/isc/sparc64/include/isc/atomic.h patch external/bsd/ntp/dist/lib/isc/tests/hash_test.c patch external/bsd/ntp/dist/lib/isc/tests/isctest.c patch external/bsd/ntp/dist/lib/isc/tests/isctest.h patch external/bsd/ntp/dist/lib/isc/tests/queue_test.c patch external/bsd/ntp/dist/lib/isc/tests/socket_test.c patch external/bsd/ntp/dist/lib/isc/tests/symtab_test.c patch external/bsd/ntp/dist/lib/isc/tests/task_test.c patch external/bsd/ntp/dist/lib/isc/tests/taskpool_test.c patch external/bsd/ntp/dist/lib/isc/unix/app.c patch external/bsd/ntp/dist/lib/isc/unix/dir.c patch external/bsd/ntp/dist/lib/isc/unix/entropy.c patch external/bsd/ntp/dist/lib/isc/unix/errno2result.c patch external/bsd/ntp/dist/lib/isc/unix/errno2result.h patch external/bsd/ntp/dist/lib/isc/unix/file.c patch external/bsd/ntp/dist/lib/isc/unix/fsaccess.c patch external/bsd/ntp/dist/lib/isc/unix/ifiter_getifaddrs.c patch external/bsd/ntp/dist/lib/isc/unix/ifiter_ioctl.c patch external/bsd/ntp/dist/lib/isc/unix/ifiter_sysctl.c patch external/bsd/ntp/dist/lib/isc/unix/interfaceiter.c patch external/bsd/ntp/dist/lib/isc/unix/ipv6.c patch external/bsd/ntp/dist/lib/isc/unix/keyboard.c patch external/bsd/ntp/dist/lib/isc/unix/net.c patch external/bsd/ntp/dist/lib/isc/unix/os.c patch external/bsd/ntp/dist/lib/isc/unix/resource.c patch external/bsd/ntp/dist/lib/isc/unix/socket.c patch external/bsd/ntp/dist/lib/isc/unix/socket_p.h patch external/bsd/ntp/dist/lib/isc/unix/stdio.c patch external/bsd/ntp/dist/lib/isc/unix/stdtime.c patch external/bsd/ntp/dist/lib/isc/unix/strerror.c patch external/bsd/ntp/dist/lib/isc/unix/syslog.c patch external/bsd/ntp/dist/lib/isc/unix/time.c patch external/bsd/ntp/dist/lib/isc/unix/include/isc/Makefile patch external/bsd/ntp/dist/lib/isc/unix/include/isc/dir.h patch external/bsd/ntp/dist/lib/isc/unix/include/isc/int.h patch external/bsd/ntp/dist/lib/isc/unix/include/isc/keyboard.h patch external/bsd/ntp/dist/lib/isc/unix/include/isc/net.h patch external/bsd/ntp/dist/lib/isc/unix/include/isc/netdb.h patch external/bsd/ntp/dist/lib/isc/unix/include/isc/offset.h patch external/bsd/ntp/dist/lib/isc/unix/include/isc/stat.h patch external/bsd/ntp/dist/lib/isc/unix/include/isc/stdtime.h patch external/bsd/ntp/dist/lib/isc/unix/include/isc/strerror.h patch external/bsd/ntp/dist/lib/isc/unix/include/isc/syslog.h patch external/bsd/ntp/dist/lib/isc/unix/include/isc/time.h patch external/bsd/ntp/dist/lib/isc/win32/DLLMain.c patch external/bsd/ntp/dist/lib/isc/win32/app.c patch external/bsd/ntp/dist/lib/isc/win32/condition.c patch external/bsd/ntp/dist/lib/isc/win32/dir.c patch external/bsd/ntp/dist/lib/isc/win32/entropy.c patch external/bsd/ntp/dist/lib/isc/win32/errno2result.c patch external/bsd/ntp/dist/lib/isc/win32/errno2result.h patch external/bsd/ntp/dist/lib/isc/win32/file.c patch external/bsd/ntp/dist/lib/isc/win32/fsaccess.c patch external/bsd/ntp/dist/lib/isc/win32/interfaceiter.c patch external/bsd/ntp/dist/lib/isc/win32/ipv6.c patch external/bsd/ntp/dist/lib/isc/win32/keyboard.c patch external/bsd/ntp/dist/lib/isc/win32/libgen.h patch external/bsd/ntp/dist/lib/isc/win32/net.c patch external/bsd/ntp/dist/lib/isc/win32/netdb.h patch external/bsd/ntp/dist/lib/isc/win32/ntgroups.c patch external/bsd/ntp/dist/lib/isc/win32/ntpaths.c patch external/bsd/ntp/dist/lib/isc/win32/once.c patch external/bsd/ntp/dist/lib/isc/win32/os.c patch external/bsd/ntp/dist/lib/isc/win32/resource.c patch external/bsd/ntp/dist/lib/isc/win32/socket.c patch external/bsd/ntp/dist/lib/isc/win32/stdio.c patch external/bsd/ntp/dist/lib/isc/win32/stdtime.c patch external/bsd/ntp/dist/lib/isc/win32/strerror.c patch external/bsd/ntp/dist/lib/isc/win32/syslog.c patch external/bsd/ntp/dist/lib/isc/win32/syslog.h patch external/bsd/ntp/dist/lib/isc/win32/thread.c patch external/bsd/ntp/dist/lib/isc/win32/time.c patch external/bsd/ntp/dist/lib/isc/win32/unistd.h patch external/bsd/ntp/dist/lib/isc/win32/version.c patch external/bsd/ntp/dist/lib/isc/win32/win32os.c patch external/bsd/ntp/dist/lib/isc/win32/include/isc/bind_registry.h patch external/bsd/ntp/dist/lib/isc/win32/include/isc/bindevt.h patch external/bsd/ntp/dist/lib/isc/win32/include/isc/condition.h patch external/bsd/ntp/dist/lib/isc/win32/include/isc/dir.h patch external/bsd/ntp/dist/lib/isc/win32/include/isc/int.h patch external/bsd/ntp/dist/lib/isc/win32/include/isc/ipv6.h patch external/bsd/ntp/dist/lib/isc/win32/include/isc/keyboard.h patch external/bsd/ntp/dist/lib/isc/win32/include/isc/mutex.h patch external/bsd/ntp/dist/lib/isc/win32/include/isc/net.h patch external/bsd/ntp/dist/lib/isc/win32/include/isc/netdb.h patch external/bsd/ntp/dist/lib/isc/win32/include/isc/ntgroups.h patch external/bsd/ntp/dist/lib/isc/win32/include/isc/ntpaths.h patch external/bsd/ntp/dist/lib/isc/win32/include/isc/offset.h patch external/bsd/ntp/dist/lib/isc/win32/include/isc/once.h patch external/bsd/ntp/dist/lib/isc/win32/include/isc/platform.h patch external/bsd/ntp/dist/lib/isc/win32/include/isc/stat.h patch external/bsd/ntp/dist/lib/isc/win32/include/isc/stdtime.h patch external/bsd/ntp/dist/lib/isc/win32/include/isc/strerror.h patch external/bsd/ntp/dist/lib/isc/win32/include/isc/syslog.h patch external/bsd/ntp/dist/lib/isc/win32/include/isc/thread.h patch external/bsd/ntp/dist/lib/isc/win32/include/isc/time.h patch external/bsd/ntp/dist/lib/isc/win32/include/isc/win32os.h patch external/bsd/ntp/dist/lib/isc/x86_32/include/isc/atomic.h patch external/bsd/ntp/dist/lib/isc/x86_64/include/isc/atomic.h patch external/bsd/ntp/dist/libjsmn/LICENSE patch external/bsd/ntp/dist/libjsmn/Makefile patch external/bsd/ntp/dist/libjsmn/README.md patch external/bsd/ntp/dist/libjsmn/jsmn.c patch external/bsd/ntp/dist/libjsmn/jsmn.h patch external/bsd/ntp/dist/libjsmn/jsmn_test.c patch external/bsd/ntp/dist/libntp/Makefile.am patch external/bsd/ntp/dist/libntp/Makefile.in patch external/bsd/ntp/dist/libntp/a_md5encrypt.c patch external/bsd/ntp/dist/libntp/adjtime.c patch external/bsd/ntp/dist/libntp/adjtimex.c patch external/bsd/ntp/dist/libntp/atoint.c patch external/bsd/ntp/dist/libntp/atolfp.c patch external/bsd/ntp/dist/libntp/atouint.c patch external/bsd/ntp/dist/libntp/audio.c patch external/bsd/ntp/dist/libntp/authkeys.c patch external/bsd/ntp/dist/libntp/authreadkeys.c patch external/bsd/ntp/dist/libntp/authusekey.c patch external/bsd/ntp/dist/libntp/bsd_strerror.c patch external/bsd/ntp/dist/libntp/buftvtots.c patch external/bsd/ntp/dist/libntp/caljulian.c patch external/bsd/ntp/dist/libntp/caltontp.c patch external/bsd/ntp/dist/libntp/calyearstart.c patch external/bsd/ntp/dist/libntp/clocktime.c patch external/bsd/ntp/dist/libntp/clocktypes.c patch external/bsd/ntp/dist/libntp/decodenetnum.c patch external/bsd/ntp/dist/libntp/dofptoa.c patch external/bsd/ntp/dist/libntp/dolfptoa.c patch external/bsd/ntp/dist/libntp/emalloc.c patch external/bsd/ntp/dist/libntp/findconfig.c patch external/bsd/ntp/dist/libntp/getopt.c patch external/bsd/ntp/dist/libntp/hextoint.c patch external/bsd/ntp/dist/libntp/hextolfp.c patch external/bsd/ntp/dist/libntp/humandate.c patch external/bsd/ntp/dist/libntp/icom.c patch external/bsd/ntp/dist/libntp/iosignal.c patch external/bsd/ntp/dist/libntp/lib_strbuf.c patch external/bsd/ntp/dist/libntp/machines.c patch external/bsd/ntp/dist/libntp/mktime.c patch external/bsd/ntp/dist/libntp/modetoa.c patch external/bsd/ntp/dist/libntp/mstolfp.c patch external/bsd/ntp/dist/libntp/msyslog.c patch external/bsd/ntp/dist/libntp/netof.c patch external/bsd/ntp/dist/libntp/ntp_calendar.c patch external/bsd/ntp/dist/libntp/ntp_crypto_rnd.c patch external/bsd/ntp/dist/libntp/ntp_intres.c patch external/bsd/ntp/dist/libntp/ntp_libopts.c patch external/bsd/ntp/dist/libntp/ntp_lineedit.c patch external/bsd/ntp/dist/libntp/ntp_random.c patch external/bsd/ntp/dist/libntp/ntp_rfc2553.c patch external/bsd/ntp/dist/libntp/ntp_worker.c patch external/bsd/ntp/dist/libntp/numtoa.c patch external/bsd/ntp/dist/libntp/numtohost.c patch external/bsd/ntp/dist/libntp/octtoint.c patch external/bsd/ntp/dist/libntp/prettydate.c patch external/bsd/ntp/dist/libntp/recvbuff.c patch external/bsd/ntp/dist/libntp/refnumtoa.c patch external/bsd/ntp/dist/libntp/snprintf.c patch external/bsd/ntp/dist/libntp/socket.c patch external/bsd/ntp/dist/libntp/socktoa.c patch external/bsd/ntp/dist/libntp/socktohost.c patch external/bsd/ntp/dist/libntp/ssl_init.c patch external/bsd/ntp/dist/libntp/statestr.c patch external/bsd/ntp/dist/libntp/strdup.c patch external/bsd/ntp/dist/libntp/strl_obsd.c patch external/bsd/ntp/dist/libntp/syssignal.c patch external/bsd/ntp/dist/libntp/systime.c patch external/bsd/ntp/dist/libntp/systime_s.c patch external/bsd/ntp/dist/libntp/timetoa.c patch external/bsd/ntp/dist/libntp/timevalops.c patch external/bsd/ntp/dist/libntp/uglydate.c patch external/bsd/ntp/dist/libntp/vint64ops.c patch external/bsd/ntp/dist/libntp/work_fork.c patch external/bsd/ntp/dist/libntp/work_thread.c patch external/bsd/ntp/dist/libntp/ymd2yd.c patch external/bsd/ntp/dist/libparse/Makefile.in patch external/bsd/ntp/dist/libparse/binio.c patch external/bsd/ntp/dist/libparse/clk_computime.c patch external/bsd/ntp/dist/libparse/clk_dcf7000.c patch external/bsd/ntp/dist/libparse/clk_hopf6021.c patch external/bsd/ntp/dist/libparse/clk_meinberg.c patch external/bsd/ntp/dist/libparse/clk_rawdcf.c patch external/bsd/ntp/dist/libparse/clk_rcc8000.c patch external/bsd/ntp/dist/libparse/clk_schmid.c patch external/bsd/ntp/dist/libparse/clk_sel240x.c patch external/bsd/ntp/dist/libparse/clk_trimtaip.c patch external/bsd/ntp/dist/libparse/clk_trimtsip.c patch external/bsd/ntp/dist/libparse/clk_varitext.c patch external/bsd/ntp/dist/libparse/clk_wharton.c patch external/bsd/ntp/dist/libparse/data_mbg.c patch external/bsd/ntp/dist/libparse/gpstolfp.c patch external/bsd/ntp/dist/libparse/ieee754io.c patch external/bsd/ntp/dist/libparse/info_trimble.c patch external/bsd/ntp/dist/libparse/mfp_mul.c patch external/bsd/ntp/dist/libparse/parse.c patch external/bsd/ntp/dist/libparse/parse_conf.c patch external/bsd/ntp/dist/libparse/parsesolaris.c patch external/bsd/ntp/dist/libparse/parsestreams.c patch external/bsd/ntp/dist/libparse/trim_info.c patch external/bsd/ntp/dist/ntpd/Makefile.am patch external/bsd/ntp/dist/ntpd/Makefile.in patch external/bsd/ntp/dist/ntpd/check_y2k.c patch external/bsd/ntp/dist/ntpd/cmd_args.c patch external/bsd/ntp/dist/ntpd/complete.conf.in patch external/bsd/ntp/dist/ntpd/declcond.h patch external/bsd/ntp/dist/ntpd/invoke-ntp.conf.texi patch external/bsd/ntp/dist/ntpd/invoke-ntp.keys.texi patch external/bsd/ntp/dist/ntpd/invoke-ntpd.texi patch external/bsd/ntp/dist/ntpd/jupiter.h patch external/bsd/ntp/dist/ntpd/keyword-gen.c patch external/bsd/ntp/dist/ntpd/ntp.conf.5man patch external/bsd/ntp/dist/ntpd/ntp.conf.5mdoc patch external/bsd/ntp/dist/ntpd/ntp.conf.def patch external/bsd/ntp/dist/ntpd/ntp.conf.html patch external/bsd/ntp/dist/ntpd/ntp.conf.man.in patch external/bsd/ntp/dist/ntpd/ntp.conf.mdoc.in patch external/bsd/ntp/dist/ntpd/ntp.keys.5man patch external/bsd/ntp/dist/ntpd/ntp.keys.5mdoc patch external/bsd/ntp/dist/ntpd/ntp.keys.def patch external/bsd/ntp/dist/ntpd/ntp.keys.html patch external/bsd/ntp/dist/ntpd/ntp.keys.man.in patch external/bsd/ntp/dist/ntpd/ntp.keys.mdoc.in patch external/bsd/ntp/dist/ntpd/ntp_config.c patch external/bsd/ntp/dist/ntpd/ntp_control.c patch external/bsd/ntp/dist/ntpd/ntp_crypto.c patch external/bsd/ntp/dist/ntpd/ntp_filegen.c patch external/bsd/ntp/dist/ntpd/ntp_io.c patch external/bsd/ntp/dist/ntpd/ntp_leapsec.c patch external/bsd/ntp/dist/ntpd/ntp_leapsec.h patch external/bsd/ntp/dist/ntpd/ntp_loopfilter.c patch external/bsd/ntp/dist/ntpd/ntp_monitor.c patch external/bsd/ntp/dist/ntpd/ntp_parser.c patch external/bsd/ntp/dist/ntpd/ntp_parser.h patch external/bsd/ntp/dist/ntpd/ntp_parser.y patch external/bsd/ntp/dist/ntpd/ntp_peer.c patch external/bsd/ntp/dist/ntpd/ntp_prio_q.c patch external/bsd/ntp/dist/ntpd/ntp_proto.c patch external/bsd/ntp/dist/ntpd/ntp_refclock.c patch external/bsd/ntp/dist/ntpd/ntp_request.c patch external/bsd/ntp/dist/ntpd/ntp_restrict.c patch external/bsd/ntp/dist/ntpd/ntp_scanner.c patch external/bsd/ntp/dist/ntpd/ntp_scanner.h patch external/bsd/ntp/dist/ntpd/ntp_signd.c patch external/bsd/ntp/dist/ntpd/ntp_timer.c patch external/bsd/ntp/dist/ntpd/ntp_util.c patch external/bsd/ntp/dist/ntpd/ntpd-opts.c patch external/bsd/ntp/dist/ntpd/ntpd-opts.def patch external/bsd/ntp/dist/ntpd/ntpd-opts.h patch external/bsd/ntp/dist/ntpd/ntpd.1ntpdman patch external/bsd/ntp/dist/ntpd/ntpd.1ntpdmdoc patch external/bsd/ntp/dist/ntpd/ntpd.c patch external/bsd/ntp/dist/ntpd/ntpd.html patch external/bsd/ntp/dist/ntpd/ntpd.man.in patch external/bsd/ntp/dist/ntpd/ntpd.mdoc.in patch external/bsd/ntp/dist/ntpd/ntpdbase-opts.def patch external/bsd/ntp/dist/ntpd/ntpsim.c patch external/bsd/ntp/dist/ntpd/ppsapi_timepps.h patch external/bsd/ntp/dist/ntpd/refclock_acts.c patch external/bsd/ntp/dist/ntpd/refclock_arbiter.c patch external/bsd/ntp/dist/ntpd/refclock_arc.c patch external/bsd/ntp/dist/ntpd/refclock_as2201.c patch external/bsd/ntp/dist/ntpd/refclock_atom.c patch external/bsd/ntp/dist/ntpd/refclock_bancomm.c patch external/bsd/ntp/dist/ntpd/refclock_chronolog.c patch external/bsd/ntp/dist/ntpd/refclock_chu.c patch external/bsd/ntp/dist/ntpd/refclock_conf.c patch external/bsd/ntp/dist/ntpd/refclock_datum.c patch external/bsd/ntp/dist/ntpd/refclock_dumbclock.c patch external/bsd/ntp/dist/ntpd/refclock_fg.c patch external/bsd/ntp/dist/ntpd/refclock_gpsdjson.c patch external/bsd/ntp/dist/ntpd/refclock_gpsvme.c patch external/bsd/ntp/dist/ntpd/refclock_heath.c patch external/bsd/ntp/dist/ntpd/refclock_hopfpci.c patch external/bsd/ntp/dist/ntpd/refclock_hopfser.c patch external/bsd/ntp/dist/ntpd/refclock_hpgps.c patch external/bsd/ntp/dist/ntpd/refclock_irig.c patch external/bsd/ntp/dist/ntpd/refclock_jjy.c patch external/bsd/ntp/dist/ntpd/refclock_jupiter.c patch external/bsd/ntp/dist/ntpd/refclock_leitch.c patch external/bsd/ntp/dist/ntpd/refclock_local.c patch external/bsd/ntp/dist/ntpd/refclock_msfees.c patch external/bsd/ntp/dist/ntpd/refclock_mx4200.c patch external/bsd/ntp/dist/ntpd/refclock_neoclock4x.c patch external/bsd/ntp/dist/ntpd/refclock_nmea.c patch external/bsd/ntp/dist/ntpd/refclock_oncore.c patch external/bsd/ntp/dist/ntpd/refclock_palisade.c patch external/bsd/ntp/dist/ntpd/refclock_palisade.h patch external/bsd/ntp/dist/ntpd/refclock_parse.c patch external/bsd/ntp/dist/ntpd/refclock_pcf.c patch external/bsd/ntp/dist/ntpd/refclock_pst.c patch external/bsd/ntp/dist/ntpd/refclock_ripencc.c patch external/bsd/ntp/dist/ntpd/refclock_shm.c patch external/bsd/ntp/dist/ntpd/refclock_tpro.c patch external/bsd/ntp/dist/ntpd/refclock_true.c patch external/bsd/ntp/dist/ntpd/refclock_tsyncpci.c patch external/bsd/ntp/dist/ntpd/refclock_tt560.c patch external/bsd/ntp/dist/ntpd/refclock_ulink.c patch external/bsd/ntp/dist/ntpd/refclock_wwv.c patch external/bsd/ntp/dist/ntpd/refclock_wwvb.c patch external/bsd/ntp/dist/ntpd/refclock_zyfer.c patch external/bsd/ntp/dist/ntpdate/Makefile.in patch external/bsd/ntp/dist/ntpdate/ntpdate.c patch external/bsd/ntp/dist/ntpdate/ntpdate.h patch external/bsd/ntp/dist/ntpdc/Makefile.am patch external/bsd/ntp/dist/ntpdc/Makefile.in patch external/bsd/ntp/dist/ntpdc/invoke-ntpdc.texi patch external/bsd/ntp/dist/ntpdc/nl_in.c patch external/bsd/ntp/dist/ntpdc/ntpdc-layout.c patch external/bsd/ntp/dist/ntpdc/ntpdc-opts.c patch external/bsd/ntp/dist/ntpdc/ntpdc-opts.def patch external/bsd/ntp/dist/ntpdc/ntpdc-opts.h patch external/bsd/ntp/dist/ntpdc/ntpdc.1ntpdcman patch external/bsd/ntp/dist/ntpdc/ntpdc.1ntpdcmdoc patch external/bsd/ntp/dist/ntpdc/ntpdc.c patch external/bsd/ntp/dist/ntpdc/ntpdc.h patch external/bsd/ntp/dist/ntpdc/ntpdc.html patch external/bsd/ntp/dist/ntpdc/ntpdc.man.in patch external/bsd/ntp/dist/ntpdc/ntpdc.mdoc.in patch external/bsd/ntp/dist/ntpdc/ntpdc_ops.c patch external/bsd/ntp/dist/ntpq/Makefile.am patch external/bsd/ntp/dist/ntpq/Makefile.in patch external/bsd/ntp/dist/ntpq/invoke-ntpq.texi patch external/bsd/ntp/dist/ntpq/libntpq.c patch external/bsd/ntp/dist/ntpq/libntpq.h patch external/bsd/ntp/dist/ntpq/libntpq_subs.c patch external/bsd/ntp/dist/ntpq/ntpq-opts.c patch external/bsd/ntp/dist/ntpq/ntpq-opts.def patch external/bsd/ntp/dist/ntpq/ntpq-opts.h patch external/bsd/ntp/dist/ntpq/ntpq-subs.c patch external/bsd/ntp/dist/ntpq/ntpq.1ntpqman patch external/bsd/ntp/dist/ntpq/ntpq.1ntpqmdoc patch external/bsd/ntp/dist/ntpq/ntpq.c patch external/bsd/ntp/dist/ntpq/ntpq.h patch external/bsd/ntp/dist/ntpq/ntpq.html patch external/bsd/ntp/dist/ntpq/ntpq.man.in patch external/bsd/ntp/dist/ntpq/ntpq.mdoc.in patch external/bsd/ntp/dist/ntpsnmpd/Makefile.am patch external/bsd/ntp/dist/ntpsnmpd/Makefile.in patch external/bsd/ntp/dist/ntpsnmpd/invoke-ntpsnmpd.texi patch external/bsd/ntp/dist/ntpsnmpd/netsnmp_daemonize.c patch external/bsd/ntp/dist/ntpsnmpd/ntpSnmpSubagentObject.c patch external/bsd/ntp/dist/ntpsnmpd/ntpSnmpSubagentObject.h patch external/bsd/ntp/dist/ntpsnmpd/ntp_snmp.h patch external/bsd/ntp/dist/ntpsnmpd/ntpsnmpd-opts.c patch external/bsd/ntp/dist/ntpsnmpd/ntpsnmpd-opts.def patch external/bsd/ntp/dist/ntpsnmpd/ntpsnmpd-opts.h patch external/bsd/ntp/dist/ntpsnmpd/ntpsnmpd.1ntpsnmpdman patch external/bsd/ntp/dist/ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc patch external/bsd/ntp/dist/ntpsnmpd/ntpsnmpd.c patch external/bsd/ntp/dist/ntpsnmpd/ntpsnmpd.html patch external/bsd/ntp/dist/ntpsnmpd/ntpsnmpd.man.in patch external/bsd/ntp/dist/ntpsnmpd/ntpsnmpd.mdoc.in patch external/bsd/ntp/dist/parseutil/Makefile.in patch external/bsd/ntp/dist/parseutil/dcfd.c patch external/bsd/ntp/dist/parseutil/testdcf.c patch external/bsd/ntp/dist/scripts/Makefile.am patch external/bsd/ntp/dist/scripts/Makefile.in patch external/bsd/ntp/dist/scripts/invoke-plot_summary.texi patch external/bsd/ntp/dist/scripts/invoke-summary.texi patch external/bsd/ntp/dist/scripts/plot_summary-opts patch external/bsd/ntp/dist/scripts/plot_summary-opts.def patch external/bsd/ntp/dist/scripts/plot_summary.1plot_summaryman patch external/bsd/ntp/dist/scripts/plot_summary.1plot_summarymdoc patch external/bsd/ntp/dist/scripts/plot_summary.html patch external/bsd/ntp/dist/scripts/plot_summary.man.in patch external/bsd/ntp/dist/scripts/plot_summary.mdoc.in patch external/bsd/ntp/dist/scripts/summary-opts patch external/bsd/ntp/dist/scripts/summary-opts.def patch external/bsd/ntp/dist/scripts/summary.1summaryman patch external/bsd/ntp/dist/scripts/summary.1summarymdoc patch external/bsd/ntp/dist/scripts/summary.html patch external/bsd/ntp/dist/scripts/summary.man.in patch external/bsd/ntp/dist/scripts/summary.mdoc.in patch external/bsd/ntp/dist/scripts/build/Makefile.am patch external/bsd/ntp/dist/scripts/build/Makefile.in patch external/bsd/ntp/dist/scripts/build/VersionName patch external/bsd/ntp/dist/scripts/build/checkHtmlFileDates patch external/bsd/ntp/dist/scripts/build/updateBEDate patch external/bsd/ntp/dist/scripts/calc_tickadj/Makefile.am patch external/bsd/ntp/dist/scripts/calc_tickadj/Makefile.in patch external/bsd/ntp/dist/scripts/calc_tickadj/calc_tickadj-opts patch external/bsd/ntp/dist/scripts/calc_tickadj/calc_tickadj-opts.def patch external/bsd/ntp/dist/scripts/calc_tickadj/calc_tickadj.1calc_tickadjman patch external/bsd/ntp/dist/scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc patch external/bsd/ntp/dist/scripts/calc_tickadj/calc_tickadj.html patch external/bsd/ntp/dist/scripts/calc_tickadj/calc_tickadj.man.in patch external/bsd/ntp/dist/scripts/calc_tickadj/calc_tickadj.mdoc.in patch external/bsd/ntp/dist/scripts/calc_tickadj/invoke-calc_tickadj.texi patch external/bsd/ntp/dist/scripts/lib/Makefile.in patch external/bsd/ntp/dist/scripts/lib/NTP/Util.pm patch external/bsd/ntp/dist/scripts/monitoring/ntp.pl patch external/bsd/ntp/dist/scripts/monitoring/ntptrap patch external/bsd/ntp/dist/scripts/ntp-wait/Makefile.am patch external/bsd/ntp/dist/scripts/ntp-wait/Makefile.in patch external/bsd/ntp/dist/scripts/ntp-wait/invoke-ntp-wait.texi patch external/bsd/ntp/dist/scripts/ntp-wait/ntp-wait-opts patch external/bsd/ntp/dist/scripts/ntp-wait/ntp-wait-opts.def patch external/bsd/ntp/dist/scripts/ntp-wait/ntp-wait.1ntp-waitman patch external/bsd/ntp/dist/scripts/ntp-wait/ntp-wait.1ntp-waitmdoc patch external/bsd/ntp/dist/scripts/ntp-wait/ntp-wait.html patch external/bsd/ntp/dist/scripts/ntp-wait/ntp-wait.man.in patch external/bsd/ntp/dist/scripts/ntp-wait/ntp-wait.mdoc.in patch external/bsd/ntp/dist/scripts/ntpsweep/Makefile.am patch external/bsd/ntp/dist/scripts/ntpsweep/Makefile.in patch external/bsd/ntp/dist/scripts/ntpsweep/invoke-ntpsweep.texi patch external/bsd/ntp/dist/scripts/ntpsweep/ntpsweep-opts patch external/bsd/ntp/dist/scripts/ntpsweep/ntpsweep-opts.def patch external/bsd/ntp/dist/scripts/ntpsweep/ntpsweep.1ntpsweepman patch external/bsd/ntp/dist/scripts/ntpsweep/ntpsweep.1ntpsweepmdoc patch external/bsd/ntp/dist/scripts/ntpsweep/ntpsweep.html patch external/bsd/ntp/dist/scripts/ntpsweep/ntpsweep.man.in patch external/bsd/ntp/dist/scripts/ntpsweep/ntpsweep.mdoc.in patch external/bsd/ntp/dist/scripts/ntptrace/Makefile.am patch external/bsd/ntp/dist/scripts/ntptrace/Makefile.in patch external/bsd/ntp/dist/scripts/ntptrace/invoke-ntptrace.texi patch external/bsd/ntp/dist/scripts/ntptrace/ntptrace-opts patch external/bsd/ntp/dist/scripts/ntptrace/ntptrace-opts.def patch external/bsd/ntp/dist/scripts/ntptrace/ntptrace.1ntptraceman patch external/bsd/ntp/dist/scripts/ntptrace/ntptrace.1ntptracemdoc patch external/bsd/ntp/dist/scripts/ntptrace/ntptrace.html patch external/bsd/ntp/dist/scripts/ntptrace/ntptrace.man.in patch external/bsd/ntp/dist/scripts/ntptrace/ntptrace.mdoc.in patch external/bsd/ntp/dist/sntp/COPYRIGHT patch external/bsd/ntp/dist/sntp/Makefile.am patch external/bsd/ntp/dist/sntp/Makefile.in patch external/bsd/ntp/dist/sntp/aclocal.m4 patch external/bsd/ntp/dist/sntp/configure patch external/bsd/ntp/dist/sntp/crypto.c patch external/bsd/ntp/dist/sntp/crypto.h patch external/bsd/ntp/dist/sntp/data_formats.h patch external/bsd/ntp/dist/sntp/invoke-sntp.texi patch external/bsd/ntp/dist/sntp/kod_management.c patch external/bsd/ntp/dist/sntp/kod_management.h patch external/bsd/ntp/dist/sntp/log.c patch external/bsd/ntp/dist/sntp/log.h patch external/bsd/ntp/dist/sntp/main.c patch external/bsd/ntp/dist/sntp/main.h patch external/bsd/ntp/dist/sntp/networking.c patch external/bsd/ntp/dist/sntp/networking.h patch external/bsd/ntp/dist/sntp/scm-rev patch external/bsd/ntp/dist/sntp/sntp-opts.c patch external/bsd/ntp/dist/sntp/sntp-opts.def patch external/bsd/ntp/dist/sntp/sntp-opts.h patch external/bsd/ntp/dist/sntp/sntp.1sntpman patch external/bsd/ntp/dist/sntp/sntp.1sntpmdoc patch external/bsd/ntp/dist/sntp/sntp.c patch external/bsd/ntp/dist/sntp/sntp.html patch external/bsd/ntp/dist/sntp/sntp.man.in patch external/bsd/ntp/dist/sntp/sntp.mdoc.in patch external/bsd/ntp/dist/sntp/tests_main.h patch external/bsd/ntp/dist/sntp/utilities.c patch external/bsd/ntp/dist/sntp/utilities.h patch external/bsd/ntp/dist/sntp/ag-tpl/Mdoc.pm patch external/bsd/ntp/dist/sntp/ag-tpl/agman-cmd.tpl patch external/bsd/ntp/dist/sntp/ag-tpl/agmdoc-cmd.tpl patch external/bsd/ntp/dist/sntp/ag-tpl/cmd-doc.tlib patch external/bsd/ntp/dist/sntp/ag-tpl/mdoc-synopsis.tlib patch external/bsd/ntp/dist/sntp/ag-tpl/mdoc2man patch external/bsd/ntp/dist/sntp/ag-tpl/mdoc2texi patch external/bsd/ntp/dist/sntp/ag-tpl/perlopt.tpl patch external/bsd/ntp/dist/sntp/ag-tpl/0-old/Mdoc.pm patch external/bsd/ntp/dist/sntp/ag-tpl/0-old/agman-cmd.tpl patch external/bsd/ntp/dist/sntp/ag-tpl/0-old/agmdoc-cmd.tpl patch external/bsd/ntp/dist/sntp/ag-tpl/0-old/cmd-doc.tlib patch external/bsd/ntp/dist/sntp/ag-tpl/0-old/mdoc-synopsis.tlib patch external/bsd/ntp/dist/sntp/ag-tpl/0-old/mdoc2man patch external/bsd/ntp/dist/sntp/ag-tpl/0-old/mdoc2texi patch external/bsd/ntp/dist/sntp/ag-tpl/0-old/perlopt.tpl patch external/bsd/ntp/dist/sntp/ag-tpl/Old/agman-file.tpl patch external/bsd/ntp/dist/sntp/ag-tpl/Old/agmdoc-file.tpl patch external/bsd/ntp/dist/sntp/ag-tpl/Old/agtexi-cmd.tpl patch external/bsd/ntp/dist/sntp/ag-tpl/Old/cmd-doc.tlib patch external/bsd/ntp/dist/sntp/ag-tpl/Old/mdoc2man patch external/bsd/ntp/dist/sntp/include/Makefile.in patch external/bsd/ntp/dist/sntp/include/autogen-version.def patch external/bsd/ntp/dist/sntp/include/copyright.def patch external/bsd/ntp/dist/sntp/include/version.def patch external/bsd/ntp/dist/sntp/include/version.texi patch external/bsd/ntp/dist/sntp/libevent/ChangeLog patch external/bsd/ntp/dist/sntp/libevent/CommitLog patch external/bsd/ntp/dist/sntp/libevent/Makefile.am patch external/bsd/ntp/dist/sntp/libevent/Makefile.in patch external/bsd/ntp/dist/sntp/libevent/Makefile.nmake patch external/bsd/ntp/dist/sntp/libevent/arc4random.c patch external/bsd/ntp/dist/sntp/libevent/buffer.c patch external/bsd/ntp/dist/sntp/libevent/buffer_iocp.c patch external/bsd/ntp/dist/sntp/libevent/bufferevent-internal.h patch external/bsd/ntp/dist/sntp/libevent/bufferevent.c patch external/bsd/ntp/dist/sntp/libevent/bufferevent_async.c patch external/bsd/ntp/dist/sntp/libevent/bufferevent_filter.c patch external/bsd/ntp/dist/sntp/libevent/bufferevent_openssl.c patch external/bsd/ntp/dist/sntp/libevent/bufferevent_pair.c patch external/bsd/ntp/dist/sntp/libevent/bufferevent_ratelim.c patch external/bsd/ntp/dist/sntp/libevent/bufferevent_sock.c patch external/bsd/ntp/dist/sntp/libevent/changelist-internal.h patch external/bsd/ntp/dist/sntp/libevent/config.h.in patch external/bsd/ntp/dist/sntp/libevent/configure patch external/bsd/ntp/dist/sntp/libevent/configure.ac patch external/bsd/ntp/dist/sntp/libevent/defer-internal.h patch external/bsd/ntp/dist/sntp/libevent/devpoll.c patch external/bsd/ntp/dist/sntp/libevent/epoll.c patch external/bsd/ntp/dist/sntp/libevent/epoll_sub.c patch external/bsd/ntp/dist/sntp/libevent/epolltable-internal.h patch external/bsd/ntp/dist/sntp/libevent/evbuffer-internal.h patch external/bsd/ntp/dist/sntp/libevent/evconfig-private.h patch external/bsd/ntp/dist/sntp/libevent/evdns.3 patch external/bsd/ntp/dist/sntp/libevent/evdns.c patch external/bsd/ntp/dist/sntp/libevent/event-internal.h patch external/bsd/ntp/dist/sntp/libevent/event.3 patch external/bsd/ntp/dist/sntp/libevent/event.c patch external/bsd/ntp/dist/sntp/libevent/event_iocp.c patch external/bsd/ntp/dist/sntp/libevent/event_tagging.c patch external/bsd/ntp/dist/sntp/libevent/evmap-internal.h patch external/bsd/ntp/dist/sntp/libevent/evmap.c patch external/bsd/ntp/dist/sntp/libevent/evport.c patch external/bsd/ntp/dist/sntp/libevent/evrpc-internal.h patch external/bsd/ntp/dist/sntp/libevent/evrpc.c patch external/bsd/ntp/dist/sntp/libevent/evsignal-internal.h patch external/bsd/ntp/dist/sntp/libevent/evthread-internal.h patch external/bsd/ntp/dist/sntp/libevent/evthread.c patch external/bsd/ntp/dist/sntp/libevent/evthread_pthread.c patch external/bsd/ntp/dist/sntp/libevent/evthread_win32.c patch external/bsd/ntp/dist/sntp/libevent/evutil.c patch external/bsd/ntp/dist/sntp/libevent/evutil_rand.c patch external/bsd/ntp/dist/sntp/libevent/evutil_time.c patch external/bsd/ntp/dist/sntp/libevent/ht-internal.h patch external/bsd/ntp/dist/sntp/libevent/http-internal.h patch external/bsd/ntp/dist/sntp/libevent/http.c patch external/bsd/ntp/dist/sntp/libevent/iocp-internal.h patch external/bsd/ntp/dist/sntp/libevent/ipv6-internal.h patch external/bsd/ntp/dist/sntp/libevent/kqueue-internal.h patch external/bsd/ntp/dist/sntp/libevent/kqueue.c patch external/bsd/ntp/dist/sntp/libevent/listener.c patch external/bsd/ntp/dist/sntp/libevent/log-internal.h patch external/bsd/ntp/dist/sntp/libevent/log.c patch external/bsd/ntp/dist/sntp/libevent/make_epoll_table.py patch external/bsd/ntp/dist/sntp/libevent/minheap-internal.h patch external/bsd/ntp/dist/sntp/libevent/mm-internal.h patch external/bsd/ntp/dist/sntp/libevent/poll.c patch external/bsd/ntp/dist/sntp/libevent/ratelim-internal.h patch external/bsd/ntp/dist/sntp/libevent/select.c patch external/bsd/ntp/dist/sntp/libevent/signal.c patch external/bsd/ntp/dist/sntp/libevent/strlcpy-internal.h patch external/bsd/ntp/dist/sntp/libevent/strlcpy.c patch external/bsd/ntp/dist/sntp/libevent/time-internal.h patch external/bsd/ntp/dist/sntp/libevent/util-internal.h patch external/bsd/ntp/dist/sntp/libevent/whatsnew-2.1.txt patch external/bsd/ntp/dist/sntp/libevent/win32select.c patch external/bsd/ntp/dist/sntp/libevent/WIN32-Code/evconfig-private.h patch external/bsd/ntp/dist/sntp/libevent/WIN32-Code/tree.h patch external/bsd/ntp/dist/sntp/libevent/WIN32-Code/event2/event-config.h patch external/bsd/ntp/dist/sntp/libevent/WIN32-Code/nmake/evconfig-private.h patch external/bsd/ntp/dist/sntp/libevent/WIN32-Code/nmake/event2/event-config.h patch external/bsd/ntp/dist/sntp/libevent/compat/sys/queue.h patch external/bsd/ntp/dist/sntp/libevent/include/Makefile.in patch external/bsd/ntp/dist/sntp/libevent/include/evdns.h patch external/bsd/ntp/dist/sntp/libevent/include/event.h patch external/bsd/ntp/dist/sntp/libevent/include/evhttp.h patch external/bsd/ntp/dist/sntp/libevent/include/evrpc.h patch external/bsd/ntp/dist/sntp/libevent/include/evutil.h patch external/bsd/ntp/dist/sntp/libevent/include/include.am patch external/bsd/ntp/dist/sntp/libevent/include/event2/buffer.h patch external/bsd/ntp/dist/sntp/libevent/include/event2/buffer_compat.h patch external/bsd/ntp/dist/sntp/libevent/include/event2/bufferevent.h patch external/bsd/ntp/dist/sntp/libevent/include/event2/bufferevent_compat.h patch external/bsd/ntp/dist/sntp/libevent/include/event2/bufferevent_ssl.h patch external/bsd/ntp/dist/sntp/libevent/include/event2/bufferevent_struct.h patch external/bsd/ntp/dist/sntp/libevent/include/event2/dns.h patch external/bsd/ntp/dist/sntp/libevent/include/event2/dns_compat.h patch external/bsd/ntp/dist/sntp/libevent/include/event2/dns_struct.h patch external/bsd/ntp/dist/sntp/libevent/include/event2/event.h patch external/bsd/ntp/dist/sntp/libevent/include/event2/event_compat.h patch external/bsd/ntp/dist/sntp/libevent/include/event2/event_struct.h patch external/bsd/ntp/dist/sntp/libevent/include/event2/http.h patch external/bsd/ntp/dist/sntp/libevent/include/event2/http_compat.h patch external/bsd/ntp/dist/sntp/libevent/include/event2/http_struct.h patch external/bsd/ntp/dist/sntp/libevent/include/event2/keyvalq_struct.h patch external/bsd/ntp/dist/sntp/libevent/include/event2/listener.h patch external/bsd/ntp/dist/sntp/libevent/include/event2/rpc.h patch external/bsd/ntp/dist/sntp/libevent/include/event2/rpc_compat.h patch external/bsd/ntp/dist/sntp/libevent/include/event2/rpc_struct.h patch external/bsd/ntp/dist/sntp/libevent/include/event2/tag.h patch external/bsd/ntp/dist/sntp/libevent/include/event2/tag_compat.h patch external/bsd/ntp/dist/sntp/libevent/include/event2/thread.h patch external/bsd/ntp/dist/sntp/libevent/include/event2/util.h patch external/bsd/ntp/dist/sntp/libevent/include/event2/visibility.h patch external/bsd/ntp/dist/sntp/libevent/m4/LICENSE-OPENLDAP patch external/bsd/ntp/dist/sntp/libevent/m4/openldap-thread-check.m4 patch external/bsd/ntp/dist/sntp/libevent/sample/Makefile.in patch external/bsd/ntp/dist/sntp/libevent/sample/dns-example.c patch external/bsd/ntp/dist/sntp/libevent/sample/event-read-fifo.c patch external/bsd/ntp/dist/sntp/libevent/sample/hello-world.c patch external/bsd/ntp/dist/sntp/libevent/sample/hostcheck.c patch external/bsd/ntp/dist/sntp/libevent/sample/hostcheck.h patch external/bsd/ntp/dist/sntp/libevent/sample/http-server.c patch external/bsd/ntp/dist/sntp/libevent/sample/https-client.c patch external/bsd/ntp/dist/sntp/libevent/sample/include.am patch external/bsd/ntp/dist/sntp/libevent/sample/le-proxy.c patch external/bsd/ntp/dist/sntp/libevent/sample/openssl_hostname_validation.c patch external/bsd/ntp/dist/sntp/libevent/sample/openssl_hostname_validation.h patch external/bsd/ntp/dist/sntp/libevent/sample/signal-test.c patch external/bsd/ntp/dist/sntp/libevent/sample/time-test.c patch external/bsd/ntp/dist/sntp/libevent/test/Makefile.in patch external/bsd/ntp/dist/sntp/libevent/test/Makefile.nmake patch external/bsd/ntp/dist/sntp/libevent/test/bench.c patch external/bsd/ntp/dist/sntp/libevent/test/bench_cascade.c patch external/bsd/ntp/dist/sntp/libevent/test/bench_http.c patch external/bsd/ntp/dist/sntp/libevent/test/bench_httpclient.c patch external/bsd/ntp/dist/sntp/libevent/test/include.am patch external/bsd/ntp/dist/sntp/libevent/test/print-winsock-errors.c patch external/bsd/ntp/dist/sntp/libevent/test/regress.c patch external/bsd/ntp/dist/sntp/libevent/test/regress.gen.c patch external/bsd/ntp/dist/sntp/libevent/test/regress.gen.h patch external/bsd/ntp/dist/sntp/libevent/test/regress.h patch external/bsd/ntp/dist/sntp/libevent/test/regress_buffer.c patch external/bsd/ntp/dist/sntp/libevent/test/regress_bufferevent.c patch external/bsd/ntp/dist/sntp/libevent/test/regress_dns.c patch external/bsd/ntp/dist/sntp/libevent/test/regress_et.c patch external/bsd/ntp/dist/sntp/libevent/test/regress_finalize.c patch external/bsd/ntp/dist/sntp/libevent/test/regress_http.c patch external/bsd/ntp/dist/sntp/libevent/test/regress_iocp.c patch external/bsd/ntp/dist/sntp/libevent/test/regress_listener.c patch external/bsd/ntp/dist/sntp/libevent/test/regress_main.c patch external/bsd/ntp/dist/sntp/libevent/test/regress_minheap.c patch external/bsd/ntp/dist/sntp/libevent/test/regress_rpc.c patch external/bsd/ntp/dist/sntp/libevent/test/regress_ssl.c patch external/bsd/ntp/dist/sntp/libevent/test/regress_testutils.c patch external/bsd/ntp/dist/sntp/libevent/test/regress_testutils.h patch external/bsd/ntp/dist/sntp/libevent/test/regress_thread.c patch external/bsd/ntp/dist/sntp/libevent/test/regress_thread.h patch external/bsd/ntp/dist/sntp/libevent/test/regress_util.c patch external/bsd/ntp/dist/sntp/libevent/test/regress_zlib.c patch external/bsd/ntp/dist/sntp/libevent/test/rpcgen_wrapper.sh patch external/bsd/ntp/dist/sntp/libevent/test/test-changelist.c patch external/bsd/ntp/dist/sntp/libevent/test/test-closed.c patch external/bsd/ntp/dist/sntp/libevent/test/test-dumpevents.c patch external/bsd/ntp/dist/sntp/libevent/test/test-eof.c patch external/bsd/ntp/dist/sntp/libevent/test/test-fdleak.c patch external/bsd/ntp/dist/sntp/libevent/test/test-init.c patch external/bsd/ntp/dist/sntp/libevent/test/test-ratelim.c patch external/bsd/ntp/dist/sntp/libevent/test/test-ratelim.sh patch external/bsd/ntp/dist/sntp/libevent/test/test-time.c patch external/bsd/ntp/dist/sntp/libevent/test/test-weof.c patch external/bsd/ntp/dist/sntp/libevent/test/test.sh patch external/bsd/ntp/dist/sntp/libevent/test/tinytest.c patch external/bsd/ntp/dist/sntp/libevent/test/tinytest.h patch external/bsd/ntp/dist/sntp/libevent/test/tinytest_demo.c patch external/bsd/ntp/dist/sntp/libevent/test/tinytest_local.h patch external/bsd/ntp/dist/sntp/libevent/test/tinytest_macros.h patch external/bsd/ntp/dist/sntp/libopts/COPYING.gplv3 patch external/bsd/ntp/dist/sntp/libopts/COPYING.lgplv3 patch external/bsd/ntp/dist/sntp/libopts/Makefile.am patch external/bsd/ntp/dist/sntp/libopts/Makefile.in patch external/bsd/ntp/dist/sntp/libopts/README patch external/bsd/ntp/dist/sntp/libopts/ag-char-map.h patch external/bsd/ntp/dist/sntp/libopts/alias.c patch external/bsd/ntp/dist/sntp/libopts/ao-strs.c patch external/bsd/ntp/dist/sntp/libopts/ao-strs.h patch external/bsd/ntp/dist/sntp/libopts/autoopts.c patch external/bsd/ntp/dist/sntp/libopts/autoopts.h patch external/bsd/ntp/dist/sntp/libopts/boolean.c patch external/bsd/ntp/dist/sntp/libopts/check.c patch external/bsd/ntp/dist/sntp/libopts/configfile.c patch external/bsd/ntp/dist/sntp/libopts/cook.c patch external/bsd/ntp/dist/sntp/libopts/enum.c patch external/bsd/ntp/dist/sntp/libopts/env.c patch external/bsd/ntp/dist/sntp/libopts/file.c patch external/bsd/ntp/dist/sntp/libopts/find.c patch external/bsd/ntp/dist/sntp/libopts/genshell.c patch external/bsd/ntp/dist/sntp/libopts/genshell.h patch external/bsd/ntp/dist/sntp/libopts/gettext.h patch external/bsd/ntp/dist/sntp/libopts/init.c patch external/bsd/ntp/dist/sntp/libopts/intprops.h patch external/bsd/ntp/dist/sntp/libopts/libopts.c patch external/bsd/ntp/dist/sntp/libopts/load.c patch external/bsd/ntp/dist/sntp/libopts/makeshell.c patch external/bsd/ntp/dist/sntp/libopts/nested.c patch external/bsd/ntp/dist/sntp/libopts/numeric.c patch external/bsd/ntp/dist/sntp/libopts/option-value-type.c patch external/bsd/ntp/dist/sntp/libopts/option-value-type.h patch external/bsd/ntp/dist/sntp/libopts/option-xat-attribute.c patch external/bsd/ntp/dist/sntp/libopts/option-xat-attribute.h patch external/bsd/ntp/dist/sntp/libopts/parse-duration.c patch external/bsd/ntp/dist/sntp/libopts/parse-duration.h patch external/bsd/ntp/dist/sntp/libopts/pgusage.c patch external/bsd/ntp/dist/sntp/libopts/proto.h patch external/bsd/ntp/dist/sntp/libopts/putshell.c patch external/bsd/ntp/dist/sntp/libopts/reset.c patch external/bsd/ntp/dist/sntp/libopts/restore.c patch external/bsd/ntp/dist/sntp/libopts/save.c patch external/bsd/ntp/dist/sntp/libopts/sort.c patch external/bsd/ntp/dist/sntp/libopts/stack.c patch external/bsd/ntp/dist/sntp/libopts/stdnoreturn.in.h patch external/bsd/ntp/dist/sntp/libopts/streqvcmp.c patch external/bsd/ntp/dist/sntp/libopts/text_mmap.c patch external/bsd/ntp/dist/sntp/libopts/time.c patch external/bsd/ntp/dist/sntp/libopts/tokenize.c patch external/bsd/ntp/dist/sntp/libopts/usage.c patch external/bsd/ntp/dist/sntp/libopts/version.c patch external/bsd/ntp/dist/sntp/libopts/autoopts/options.h patch external/bsd/ntp/dist/sntp/libopts/autoopts/project.h patch external/bsd/ntp/dist/sntp/libopts/autoopts/usage-txt.h patch external/bsd/ntp/dist/sntp/libopts/compat/_Noreturn.h patch external/bsd/ntp/dist/sntp/libopts/compat/compat.h patch external/bsd/ntp/dist/sntp/libopts/compat/pathfind.c patch external/bsd/ntp/dist/sntp/libopts/compat/snprintf.c patch external/bsd/ntp/dist/sntp/libopts/compat/strchr.c patch external/bsd/ntp/dist/sntp/libopts/compat/strdup.c patch external/bsd/ntp/dist/sntp/libopts/compat/windows-config.h patch external/bsd/ntp/dist/sntp/libopts/m4/libopts.m4 patch external/bsd/ntp/dist/sntp/libopts/m4/liboptschk.m4 patch external/bsd/ntp/dist/sntp/libopts/m4/stdnoreturn.m4 patch external/bsd/ntp/dist/sntp/loc/README patch external/bsd/ntp/dist/sntp/loc/darwin patch external/bsd/ntp/dist/sntp/loc/debian patch external/bsd/ntp/dist/sntp/loc/freebsd patch external/bsd/ntp/dist/sntp/loc/legacy patch external/bsd/ntp/dist/sntp/loc/netbsd patch external/bsd/ntp/dist/sntp/loc/redhat patch external/bsd/ntp/dist/sntp/loc/solaris patch external/bsd/ntp/dist/sntp/m4/ntp_crypto_rand.m4 patch external/bsd/ntp/dist/sntp/m4/ntp_dir_sep.m4 patch external/bsd/ntp/dist/sntp/m4/ntp_libevent.m4 patch external/bsd/ntp/dist/sntp/m4/ntp_libntp.m4 patch external/bsd/ntp/dist/sntp/m4/ntp_locinfo.m4 patch external/bsd/ntp/dist/sntp/m4/version.m4 patch external/bsd/ntp/dist/sntp/scripts/Makefile.in patch external/bsd/ntp/dist/sntp/scripts/genLocInfo patch external/bsd/ntp/dist/sntp/tests/Makefile.in patch external/bsd/ntp/dist/sntp/tests/fileHandlingTest.h patch external/bsd/ntp/dist/sntp/tests/sntptest.h patch external/bsd/ntp/dist/tests/Makefile.in patch external/bsd/ntp/dist/tests/libntp/Makefile.am patch external/bsd/ntp/dist/tests/libntp/Makefile.in patch external/bsd/ntp/dist/tests/libntp/lfpfunc.cpp patch external/bsd/ntp/dist/tests/libntp/lfptest.h patch external/bsd/ntp/dist/tests/libntp/libntptest.h patch external/bsd/ntp/dist/tests/libntp/sockaddrtest.h patch external/bsd/ntp/dist/tests/libntp/timestructs.h patch external/bsd/ntp/dist/tests/libntp/vi64ops.cpp patch external/bsd/ntp/dist/tests/ntpd/Makefile.in patch external/bsd/ntp/dist/tests/ntpd/leapsec.cpp patch external/bsd/ntp/dist/tests/ntpd/ntpdtest.h patch external/bsd/ntp/dist/util/Makefile.am patch external/bsd/ntp/dist/util/Makefile.in patch external/bsd/ntp/dist/util/audio-pcm.c patch external/bsd/ntp/dist/util/byteorder.c patch external/bsd/ntp/dist/util/hist.c patch external/bsd/ntp/dist/util/invoke-ntp-keygen.texi patch external/bsd/ntp/dist/util/jitter.c patch external/bsd/ntp/dist/util/jitter.h patch external/bsd/ntp/dist/util/kern.c patch external/bsd/ntp/dist/util/longsize.c patch external/bsd/ntp/dist/util/ntp-keygen-opts.c patch external/bsd/ntp/dist/util/ntp-keygen-opts.def patch external/bsd/ntp/dist/util/ntp-keygen-opts.h patch external/bsd/ntp/dist/util/ntp-keygen.1ntp-keygenman patch external/bsd/ntp/dist/util/ntp-keygen.1ntp-keygenmdoc patch external/bsd/ntp/dist/util/ntp-keygen.c patch external/bsd/ntp/dist/util/ntp-keygen.html patch external/bsd/ntp/dist/util/ntp-keygen.man.in patch external/bsd/ntp/dist/util/ntp-keygen.mdoc.in patch external/bsd/ntp/dist/util/ntptime.c patch external/bsd/ntp/dist/util/pps-api.c patch external/bsd/ntp/dist/util/precision.c patch external/bsd/ntp/dist/util/sht.c patch external/bsd/ntp/dist/util/testrs6000.c patch external/bsd/ntp/dist/util/tg.c patch external/bsd/ntp/dist/util/tg2.c patch external/bsd/ntp/dist/util/tickadj.c patch external/bsd/ntp/dist/util/timetrim.c patch external/bsd/ntp/include/config.h patch external/bsd/ntp/lib/libiscntp/Makefile patch external/bsd/ntp/lib/libntp/Makefile patch external/bsd/ntp/lib/libopts/Makefile patch external/bsd/ntp/scripts/mkver patch Update ntp to version 4.2.8. [christos, ticket #351] @ text @d13 1 a13 1 15-Nov-2012 06:42 @ 1.1.1.3 log @Import ntp 4.2.8 @ text @d13 1 a13 1 15-Nov-2012 06:42 @ 1.1.1.3.6.1 log @file driver36.html was added on branch netbsd-5-1 on 2015-01-07 12:13:15 +0000 @ text @d1 150 @ 1.1.1.3.6.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 150 Radio WWV/H Audio Demodulator/Decoder

Radio WWV/H Audio Demodulator/Decoder

Author: David L. Mills (mills@@udel.edu)
Last updage: 15-Nov-2012 06:42 UTC


Synopsis

Address: 127.127.36.u
Reference ID: WVf or WHf
Driver ID: WWV_AUDIO
Autotune Port: /dev/icom; 1200/9600 baud, 8-bits, no parity
Audio Device: /dev/audio and /dev/audioctl

Description

This driver synchronizes the computer time using shortwave radio transmissions from NIST time/frequency stations WWV in Ft. Collins, CO, and WWVH in Kauai, HI. Transmissions are made continuously on 2.5, 5, 10 and 15 MHz from both stations and on 20 MHz from WWV. An ordinary shortwave receiver can be tuned manually to one of these frequencies or, in the case of ICOM receivers, the receiver can be tuned automatically by the driver as propagation conditions change throughout the day and season. The radio is connected via an optional attenuator and cable to either the microphone or line-in port of a workstation or PC.

The driver requires an audio codec or sound card with sampling rate 8 kHz and μ-law companding to demodulate the data. This is the same standard as used by the telephone industry and is supported by most hardware and operating systems, including Solaris, FreeBSD and Linux, among others. In this implementation only one audio driver and codec can be supported on a single machine. In order to assure reliable signal capture, the codec frequency error must be less than 187 PPM (.0187 percent). If necessary, the tinker codec configuration command can be used to bracket the codec frequency to this range.

In general and without calibration, the driver is accurate within 1 ms relative to the broadcast time when tracking a station. However, variations up to 0.3 ms can be expected due to diurnal variations in ionospheric layer height and ray geometry. In Newark DE, 2479 km from the transmitter, the predicted two-hop propagation delay varies from 9.3 ms in sunlight to 9.0 ms in moonlight. When not tracking the station the accuracy depends on the computer clock oscillator stability, ordinarily better than 0.5 PPM.

After calibration relative to the PPS signal from a GPS receiver, the mean offset with a 2.4-GHz P4 running FreeBSD 6.1 is generally within 0.1 ms short-term with 0.4 ms jitter. The long-term mean offset varies up to 0.3 ms due to propagation path geometry variations. The processor load due to the driver is 0.4 percent on the P4.

The driver performs a number of error checks to protect against overdriven or underdriven input signal levels, incorrect signal format or improper hardware configuration. The specific checks are detailed later in this page. Note that additional checks are done elsewhere in the reference clock interface routines.

This driver incorporates several features in common with other audio drivers such as described in the Radio CHU Audio Demodulator/Decoder and the IRIG Audio Decoder pages. They include automatic gain control (AGC), selectable audio codec port and signal monitoring capabilities. For a discussion of these common features, as well as a guide to hookup, debugging and monitoring, see the Reference Clock Audio Drivers page.

Technical Overview

The driver processes 8-kHz μ-law companded codec samples using maximum-likelihood techniques which exploit the considerable degree of redundancy available in the broadcast signal. The WWV signal format is described in NIST Special Publication 432 (Revised 1990) and also available on the WWV/H web site. It consists of three elements, a 5-ms, 1000-Hz pulse, which occurs at the beginning of each second, a 800-ms, 1000-Hz pulse, which occurs at the beginning of each minute, and a pulse-width modulated 100-Hz subcarrier for the data bits, one bit per second. The WWVH format is identical, except that the 1000-Hz pulses are sent at 1200 Hz. Each minute encodes nine BCD digits for the time of century plus seven bits for the daylight savings time (DST) indicator, leap warning indicator and DUT1 correction.

The demodulation and decoding algorithms used by this driver are based on a machine language program developed for the TAPR DSP93 DSP unit, which uses the TI 320C25 DSP chip. The analysis, design and performance of the program for this unit is described in: Mills, D.L. A precision radio clock for WWV transmissions. Electrical Engineering Report 97-8-1, University of Delaware, August 1997, 25 pp. Available from www.eecis.udel.edu/~mills/reports.htm. For use in this driver, the original program was rebuilt in the C language and adapted to the NTP driver interface. The algorithms have been modified to improve performance, especially under weak signal conditions and to provide an automatic frequency and station selection feature.

As in the original program, the clock discipline is modelled as a Markov process, with probabilistic state transitions corresponding to a conventional clock and the probabilities of received decimal digits. The result is a performance level with very high accuracy and reliability, even under conditions when the minute beep of the signal, normally its most prominent feature, can barely be detected by ear using a communications receiver.

Baseband Signal Processing

The 1000/1200-Hz pulses and 100-Hz subcarrier are first separated using a 600-Hz bandpass filter centered on 1100 Hz and a 150-Hz lowpass filter. The minute pulse is extracted using an 800-ms synchronous matched filter and pulse grooming logic which discriminates between WWV and WWVH signals and noise. The second pulse is extracted using a 5-ms FIR matched filter for each station and a single 8000-stage comb filter.

The phase of the 100-Hz subcarrier relative to the second pulse is fixed at the transmitter; however, the audio stage in many radios affects the phase response at 100 Hz in unpredictable ways. The driver adjusts for each radio using two 170-ms synchronous matched filters. The I (in-phase) filter is used to demodulate the subcarrier envelope, while the Q (quadrature-phase) filter is used in a type-1 phase-lock loop (PLL) to discipline the demodulator phase.

A bipolar data signal is determined from the matched filter subcarrier envelope using a pulse-width discriminator. The discriminator samples the I channel at 15 ms (n), 200 ms (s0) and 500 ms (s1), and the envelope (RMS I and Q channels) at 200 ms (e1) and the end of the second (e0). The bipolar data signal is expressed 2s1 - s0 - n, where positive values correspond to data 1 and negative values correspond to data 0. Note that, since the signals s0 and s1 include the noise n, the noise component cancels out. The data bit SNR is calculated as 20 log10(e1 / e0). If the driver has not synchronized to the minute pulse, or if the data bit amplitude e1 or SNR are below thresholds, the bit is considered invalid and the bipolar signal is forced to zero.

The bipolar signal is exponentially averaged in a set of 60 accumulators, one for each second, to determine the semi-static miscellaneous bits, such as DST indicator, leap second warning and DUT1 correction. In this design a data average value larger than a positive threshold is interpreted as +1 (hit) and a value smaller than a negative threshold as a -1 (miss). Values between the two thresholds, which can occur due to signal fades, are interpreted as an erasure and result in no change of indication.

Maximum-Likelihood Decoder

The BCD digit in each digit position of the timecode is represented as four data bits. The bits are correlated with the bits corresponding to each of the valid decimal digits in this position. If any of the four bits are invalid, the correlated value for all digits in this position is assumed zero. In either case, the values for all digits are exponentially averaged in a likelihood vector associated with this position. The digit associated with the maximum over all averaged values then becomes the maximum-likelihood candidate for this position and the ratio of the maximum over the next lower value represents the digit SNR.

The decoding matrix contains nine row vectors, one for each digit position. Each row vector includes the maximum-likelihood digit, likelihood vector and other related data. The maximum-likelihood digit for each of the nine digit positions becomes the maximum-likelihood time of the century. A built-in transition function implements a conventional clock with decimal digits that count the minutes, hours, days and years, as corrected for leap seconds and leap years. The counting operation also rotates the likelihood vector corresponding to each digit as it advances. Thus, once the clock is set, each clock digit should correspond to the maximum-likelihood digit as transmitted.

Each row of the decoding matrix also includes a compare counter and the most recently determined maximum-likelihood digit. If a digit likelihood exceeds the decision level and compares with previous digits for a number of successive minutes in any row, the maximum-likelihood digit replaces the clock digit in that row. When this condition is true for all rows and the second epoch has been reliably determined, the clock is set (or verified if it has already been set) and delivers correct time to the integral second. The fraction within the second is derived from the logical master clock, which runs at 8000 Hz and drives all system timing functions.

Master Clock Discipline

The logical master clock is derived from the audio codec clock. Its frequency is disciplined by a frequency-lock loop (FLL) which operates independently of the data recovery functions. The maximum value of the 5-ms pulse after the comb filter represents the on-time epoch of the second. At averaging intervals determined by the measured jitter, the frequency error is calculated as the difference between the epoches over the interval divided by the interval itself. The sample clock frequency is then corrected by this amount divided by a time constant of 8.

When first started, the frequency averaging interval is 8 seconds, in order to compensate for intrinsic codec clock frequency offsets up to 125 PPM. Under most conditions, the averaging interval doubles in stages from the initial value to 1024 s, which results in an ultimate frequency resolution of 0.125 PPM, or about 11 ms/day.

The data demodulation functions operate using the subcarrier clock, which is independent of the epoch. However, the data decoding functions are driven by the epoch. The decoder is phase-locked to the epoch in such a way that, when the clock state machine has reliably decoded the broadcast time to the second, the epoch timestamp of that second becomes a candidate to set the system clock.

The comb filter can have a long memory and is vulnerable to noise and stale data, especially when coming up after a long fade. Therefore, a candidate is considered valid only if the 5-ms signal amplitude and SNR are above thresholds. In addition, the system clock is not set until after one complete averaging interval has passed with valid candidates.

Station Identification

It is important that the logical clock frequency is stable and accurately determined, since in many applications the shortwave radio will be tuned to a fixed frequency where WWV or WWVH signals are not available throughout the day. In addition, in some parts of the US, especially on the west coast, signals from either or both WWV and WWVH may be available at different times or even at the same time. Since the propagation times from either station are almost always different, each station must be reliably identified before attempting to set the clock.

Reliable station identification requires accurate discrimination between very weak signals in noise and noise alone. The driver very aggressively soaks up every scrap of signal information, but has to be careful to avoid making pseudo-sense of noise alone. The signal quality metric depends on the minute pulse amplitude and SNR measured in second 0 of the minute, together with the data subcarrier amplitude and SNR measured in second 1. If all four values are above defined thresholds a hit is declared, otherwise a miss. In principle, the data pulse in second 58 is usable, but the AGC in most radios is not fast enough for a reliable measurement.

The number of hits declared in the last 6 minutes for each station represents the high order bits of the metric, while the current minute pulse amplitude represents the low order bits. Only if the metric is above a defined threshold is the station signal considered acceptable. The metric is also used by the autotune function described below and reported in the timecode string.

Performance

It is the intent of the design that the accuracy and stability of the indicated time be limited only by the characteristics of the ionospheric propagation medium. Conventional wisdom is that manual synchronization via oscilloscope and HF medium is good only to a millisecond under the best propagation conditions. The performance of the NTP daemon disciplined by this driver is clearly better than this, even under marginal conditions.

The figure below shows the measured offsets over a typical day near the bottom of the sunspot cycle ending in October, 2006. Variations up to ±0.4 ms can be expected due to changing ionospheric layer height and ray geometry over the day and night.

gif

The figure was constructed using a 2.4-GHz P4 running FreeBSD 6.1. For these measurements the computer clock was disciplined within a few microseconds of UTC using a PPS signal and GPS receiver and the measured offsets determined from the filegen peerstats data.

The predicted propagation delay from the WWV transmitter at Boulder, CO, to the receiver at Newark, DE, varies over 9.0-9.3 ms. In addition, the receiver contributes 4.7 ms and the 600-Hz bandpass filter 0.9 ms. With these values, the mean error is less than 0.1 ms and varies ±0.3 ms over the day as the result of changing ionospheric height and ray geometry.

Program Operation

The driver begins operation immediately upon startup. It first searches for one or both of the stations WWV and WWVH and attempts to acquire minute synch. This may take some fits and starts, as the driver expects to see several consecutive minutes with good signals and low jitter. If the autotune function is active, the driver will rotate over all five frequencies and both WWV and WWVH stations until finding a station and frequency with acceptable metric.

While this is going on the the driver acquires second synch, which can take up to several minutes, depending on signal quality. When minute synch has been acquired, the driver accumulates likelihood values for the unit (seconds) digit of the nine timecode digits, plus the seven miscellaneous bits included in the WWV/H transmission format. When a good unit digit has been found, the driver accumulated likelihood values for the remaining eight digits of the timecode. When three repetitions of all nine digits have decoded correctly, which normally takes 15 minutes with good signals, and up to 40 minutes when buried in noise, and the second synch has been acquired, the clock is set (or verified) and is selectable to discipline the system clock.

Once the clock is set, it continues to provide correct timecodes as long as the signal metric is above threshold, as described in the previous section. As long as the clock is correctly set or verified, the system clock offsets are provided once each minute to the reference clock interface, where they are processed using the same algorithms as with other reference clocks and remote servers.

It may happen as the hours progress around the clock that WWV and WWVH signals may appear alone, together or not at all. When the driver has mitigated which station and frequency is best, it sets the reference identifier to the string WVf for WWV and WHf for WWVH, where f is the frequency in megahertz. If the propagation delays have been properly set with the fudge time1 (WWV) and fudge time2 (WWVH) commands in the configuration file, handover from one station to the other is seamless.

Operation continues as long as the signal metric from at least one station on at least one frequency is acceptable. A consequence of this design is that, once the clock is set, the time and frequency are disciplined only by the second synch pulse and the clock digits themselves are driven by the clock state machine. If for some reason the state machine drifts to the wrong second, it would never resynchronize. To protect against this most unlikely situation, if after two days with no signals, the clock is considered unset and resumes the synchronization procedure from the beginning.

Once the system clock been set correctly it will continue to read correctly even during the holdover interval, but with increasing dispersion. Assuming the system clock frequency can be disciplined within 1 PPM, it can coast without signals for several days without exceeding the NTP step threshold of 128 ms. During such periods the root distance increases at 15 μs per second, which makes the driver appear less likely for selection as time goes on. Eventually, when the distance due all causes exceeds 1 s, it is no longer suitable for synchronization. Ordinarily, this happens after about 18 hours with no signals. The tinker maxdist configuration command can be used to change this value.

Autotune

The driver includes provisions to automatically tune the radio in response to changing radio propagation conditions throughout the day and night. The radio interface is compatible with the ICOM CI-V standard, which is a bidirectional serial bus operating at TTL levels. The bus can be connected to a standard serial port using a level converter such as the CT-17. Further details are on the Reference Clock Audio Drivers page.

If specified, the driver will attempt to open the device /dev/icom and, if successful will activate the autotune function and tune the radio to each operating frequency in turn while attempting to acquire minute synch from either WWV or WWVH. However, the driver is liberal in what it assumes of the configuration. If the /dev/icom link is not present or the open fails or the CI-V bus is inoperative, the driver quietly gives up with no harm done.

Once acquiring minute synch, the driver operates as described above to set the clock. However, during seconds 59, 0 and 1 of each minute it tunes the radio to one of the five broadcast frequencies to measure the signal metric as described above. Each of the five frequencies are probed in a five-minute rotation to build a database of current propagation conditions for all signals that can be heard at the time. At the end of each probe a mitigation procedure scans the database and retunes the radio to the best frequency and station found. For this to work well, the radio should be set for a fast AGC recovery time. This is most important while tracking a strong signal, which is normally the case, and then probing another frequency, which may have much weaker signals.

The mitigation procedure selects the frequency and station with the highest valid metric, ties going first to the highest frequency and then to WWV in order. A station is considered valid only if the metric is above a specified threshold; if no station is above the metric, the rotating probes continue until a valid station is found.

The behavior of the autotune function over a typical day is shown in the figure below.

gif

As expected, the lower frequencies prevail when the ray path is in moonlight (0100-1300 UTC) and the higher frequencies when the path is in sunlight (1300-0100 UTC). Note three periods in the figure show zero frequency when signals are below the minimum for all frequencies and stations.

Debugging Aids

The most convenient way to track the driver status is using the ntpq program and the clockvar command. This displays the last determined timecode and related status and error counters, even when the driver is not disciplining the system clock. If the debugging trace feature (-d on the ntpd command line) is enabled, the driver produces detailed status messages as it operates. If the fudge flag 4 is set, these messages are written to the clockstats file. All messages produced by this driver have the prefix wwv for convenient filtering with the Unix grep command.

The autotune process produces diagnostic information along with the timecode. This is very useful for evaluating the performance of the algorithms, as well as radio propagation conditions in general. The message is produced once each minute for each frequency in turn after minute synch has been acquired.

wwv5 status agc epoch secamp/secsnr datamp/datsnr wwv wwvh

where the fields after the wwv5 identifier are: status contains status bits, agc audio gain, epoch second epoch, secamp/secsnr second pulse amplitude/SNR, and wwv and wwvh are two sets of fields, one each for WWV and WWVH. Each of the two fields has the format

ident score metric minamp/minsnr

where ident encodes the station (WV for WWV, WH for WWVH) and frequency (2, 5, 10, 15 or 20), score 32-bit shift register recording the hits (1) and misses (0) of the last 32 probes (hits and misses enter from the right), metric is described above, and minamp/minsnr is the minute pulse ampliture/SNR. An example is:

wwv5 000d 111 5753 3967/20.1 3523/10.2 WV20 bdeff 100 8348/30.0 WH20 0000 1 22/-12.4

There are several other messages that can occur; these are documented in the source listing.

Monitor Data

When enabled by the filegen facility, every received timecode is written to the clockstats file in the following format:

sq yyyy ddd hh:mm:ss l d du lset agc ident metric errs freq avg

The fields beginning with yyyy and extending through du are decoded from the received data and are in fixed-length format. The remaining fields are in variable-length format. The fields are as follows:
s
The synch indicator is initially ? before the clock is set, but turns to space when all nine digits of the timecode are correctly set and the decoder is synchronized to the station within 125 μs.
q
The quality character is a four-bit hexadecimal code showing which alarms have been raised. Each bit is associated with a specific alarm condition according to the following:
0x8
synch alarm. The decoder is not synchronized to the station within 125 μs.
0x4
Digit error alarm. Less than nine decimal digits were found in the last minute.
0x2
Error alarm. More than 40 data bit errors were found in the last minute.
0x1
Compare alarm. A maximum-likelihood digit failed to agree with the current associated clock digit in the last minute.
It is important to note that one or more of the above alarms does not necessarily indicate a clock error, but only that the decoder has detected a marginal condition.
yyyy ddd hh:mm:ss
The timecode format itself is self explanatory. Since the driver latches the on-time epoch directly from the second synch pulse, the seconds fraction is always zero. Although the transmitted timecode includes only the year of century, the Gregorian year is augmented by 2000.
l
The leap second warning is normally space, but changes to L if a leap second is to occur at the end of the month.
d
The DST state is S or D when standard time or daylight time is in effect, respectively. The state is I or O when daylight time is about to go into effect or out of effect, respectively.
du
The DUT sign and magnitude shows the current UT1 offset relative to the displayed UTC time, in deciseconds.
lset
Before the clock is set, the interval since last set is the number of minutes since the driver was started; after the clock is set, this is number of minutes since the decoder was last synchronized to the station within 125 μs.
agc
The audio gain shows the current codec gain setting in the range 0 to 255. Ordinarily, the receiver audio gain control should be set for a value midway in this range.
ident
The station identifier shows the station, WVf for WWV or WHf for WWVH, and frequency f being tracked. If neither station is heard on any frequency, the reference identifier shows NONE.
metric
The signal metric described above from 0 (no signal) to 100 (best).
errs
The bit error counter is useful to determine the quality of the data signal received in the most recent minute. It is normal to drop a couple of data bits even under good signal conditions and increasing numbers as conditions worsen. While the decoder performs moderately well even with half the bits are in error in any minute, usually by that point the metric drops below threshold and the decoder switches to a different frequency.
freq
The frequency offset is the current estimate of the codec frequency offset to within 0.1 PPM. This may wander a bit over the day due to local temperature fluctuations and propagation conditions.
avg
The averaging time is the interval between frequency updates in powers of two to a maximum of 1024 s. Attainment of the maximum indicates the driver is operating at the best possible resolution in time and frequency.

An example timecode is:

0 2000 006 22:36:00 S +3 1 115 WV20 86 5 66.4 1024

Here the clock has been set and no alarms are raised. The year, day and time are displayed along with no leap warning, standard time and DUT +0.3 s. The clock was set on the last minute, the AGC is safely in the middle ot the range 0-255, and the receiver is tracking WWV on 20 MHz. Good receiving conditions prevail, as indicated by the metric 86 and 5 bit errors during the last minute. The current frequency is 66.4 PPM and the averaging interval is 1024 s, indicating the maximum precision available.

Fudge Factors

time1 time
Specifies the propagation delay for WWV (40:40:49.0N 105:02:27.0W), in seconds and fraction, with default 0.0.
time2 time
Specifies the propagation delay for WWVH (21:59:26.0N 159:46:00.0W), in seconds and fraction, with default 0.0.
stratum number
Specifies the driver stratum, in decimal from 0 to 15, with default 0.
refid string
Ordinarily, this field specifies the driver reference identifier; however, the driver sets the reference identifier automatically as described above.
flag1 0 | 1
Not used by this driver.
flag2 0 | 1
Specifies the microphone port if set to zero or the line-in port if set to one. It does not seem useful to specify the compact disc player port.
flag3 0 | 1
Enables audio monitoring of the input signal. For this purpose, the speaker volume must be set before the driver is started.
flag4 0 | 1
Enable verbose clockstats recording if set.

@ 1.1.1.3.4.1 log @file driver36.html was added on branch netbsd-5-2 on 2015-01-07 10:10:05 +0000 @ text @d1 150 @ 1.1.1.3.4.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.cnew external/bsd/ntp/dist/sntp/libevent/sample/openssl_hostname_validation.hnew 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. CVE-2014-9293, CVE-2014-9294, CVE-2014-9295, and CVE-2014-9296. [he, ticket #1938] @ text @a0 150 Radio WWV/H Audio Demodulator/Decoder

Radio WWV/H Audio Demodulator/Decoder

Author: David L. Mills (mills@@udel.edu)
Last updage: 15-Nov-2012 06:42 UTC


Synopsis

Address: 127.127.36.u
Reference ID: WVf or WHf
Driver ID: WWV_AUDIO
Autotune Port: /dev/icom; 1200/9600 baud, 8-bits, no parity
Audio Device: /dev/audio and /dev/audioctl

Description

This driver synchronizes the computer time using shortwave radio transmissions from NIST time/frequency stations WWV in Ft. Collins, CO, and WWVH in Kauai, HI. Transmissions are made continuously on 2.5, 5, 10 and 15 MHz from both stations and on 20 MHz from WWV. An ordinary shortwave receiver can be tuned manually to one of these frequencies or, in the case of ICOM receivers, the receiver can be tuned automatically by the driver as propagation conditions change throughout the day and season. The radio is connected via an optional attenuator and cable to either the microphone or line-in port of a workstation or PC.

The driver requires an audio codec or sound card with sampling rate 8 kHz and μ-law companding to demodulate the data. This is the same standard as used by the telephone industry and is supported by most hardware and operating systems, including Solaris, FreeBSD and Linux, among others. In this implementation only one audio driver and codec can be supported on a single machine. In order to assure reliable signal capture, the codec frequency error must be less than 187 PPM (.0187 percent). If necessary, the tinker codec configuration command can be used to bracket the codec frequency to this range.

In general and without calibration, the driver is accurate within 1 ms relative to the broadcast time when tracking a station. However, variations up to 0.3 ms can be expected due to diurnal variations in ionospheric layer height and ray geometry. In Newark DE, 2479 km from the transmitter, the predicted two-hop propagation delay varies from 9.3 ms in sunlight to 9.0 ms in moonlight. When not tracking the station the accuracy depends on the computer clock oscillator stability, ordinarily better than 0.5 PPM.

After calibration relative to the PPS signal from a GPS receiver, the mean offset with a 2.4-GHz P4 running FreeBSD 6.1 is generally within 0.1 ms short-term with 0.4 ms jitter. The long-term mean offset varies up to 0.3 ms due to propagation path geometry variations. The processor load due to the driver is 0.4 percent on the P4.

The driver performs a number of error checks to protect against overdriven or underdriven input signal levels, incorrect signal format or improper hardware configuration. The specific checks are detailed later in this page. Note that additional checks are done elsewhere in the reference clock interface routines.

This driver incorporates several features in common with other audio drivers such as described in the Radio CHU Audio Demodulator/Decoder and the IRIG Audio Decoder pages. They include automatic gain control (AGC), selectable audio codec port and signal monitoring capabilities. For a discussion of these common features, as well as a guide to hookup, debugging and monitoring, see the Reference Clock Audio Drivers page.

Technical Overview

The driver processes 8-kHz μ-law companded codec samples using maximum-likelihood techniques which exploit the considerable degree of redundancy available in the broadcast signal. The WWV signal format is described in NIST Special Publication 432 (Revised 1990) and also available on the WWV/H web site. It consists of three elements, a 5-ms, 1000-Hz pulse, which occurs at the beginning of each second, a 800-ms, 1000-Hz pulse, which occurs at the beginning of each minute, and a pulse-width modulated 100-Hz subcarrier for the data bits, one bit per second. The WWVH format is identical, except that the 1000-Hz pulses are sent at 1200 Hz. Each minute encodes nine BCD digits for the time of century plus seven bits for the daylight savings time (DST) indicator, leap warning indicator and DUT1 correction.

The demodulation and decoding algorithms used by this driver are based on a machine language program developed for the TAPR DSP93 DSP unit, which uses the TI 320C25 DSP chip. The analysis, design and performance of the program for this unit is described in: Mills, D.L. A precision radio clock for WWV transmissions. Electrical Engineering Report 97-8-1, University of Delaware, August 1997, 25 pp. Available from www.eecis.udel.edu/~mills/reports.htm. For use in this driver, the original program was rebuilt in the C language and adapted to the NTP driver interface. The algorithms have been modified to improve performance, especially under weak signal conditions and to provide an automatic frequency and station selection feature.

As in the original program, the clock discipline is modelled as a Markov process, with probabilistic state transitions corresponding to a conventional clock and the probabilities of received decimal digits. The result is a performance level with very high accuracy and reliability, even under conditions when the minute beep of the signal, normally its most prominent feature, can barely be detected by ear using a communications receiver.

Baseband Signal Processing

The 1000/1200-Hz pulses and 100-Hz subcarrier are first separated using a 600-Hz bandpass filter centered on 1100 Hz and a 150-Hz lowpass filter. The minute pulse is extracted using an 800-ms synchronous matched filter and pulse grooming logic which discriminates between WWV and WWVH signals and noise. The second pulse is extracted using a 5-ms FIR matched filter for each station and a single 8000-stage comb filter.

The phase of the 100-Hz subcarrier relative to the second pulse is fixed at the transmitter; however, the audio stage in many radios affects the phase response at 100 Hz in unpredictable ways. The driver adjusts for each radio using two 170-ms synchronous matched filters. The I (in-phase) filter is used to demodulate the subcarrier envelope, while the Q (quadrature-phase) filter is used in a type-1 phase-lock loop (PLL) to discipline the demodulator phase.

A bipolar data signal is determined from the matched filter subcarrier envelope using a pulse-width discriminator. The discriminator samples the I channel at 15 ms (n), 200 ms (s0) and 500 ms (s1), and the envelope (RMS I and Q channels) at 200 ms (e1) and the end of the second (e0). The bipolar data signal is expressed 2s1 - s0 - n, where positive values correspond to data 1 and negative values correspond to data 0. Note that, since the signals s0 and s1 include the noise n, the noise component cancels out. The data bit SNR is calculated as 20 log10(e1 / e0). If the driver has not synchronized to the minute pulse, or if the data bit amplitude e1 or SNR are below thresholds, the bit is considered invalid and the bipolar signal is forced to zero.

The bipolar signal is exponentially averaged in a set of 60 accumulators, one for each second, to determine the semi-static miscellaneous bits, such as DST indicator, leap second warning and DUT1 correction. In this design a data average value larger than a positive threshold is interpreted as +1 (hit) and a value smaller than a negative threshold as a -1 (miss). Values between the two thresholds, which can occur due to signal fades, are interpreted as an erasure and result in no change of indication.

Maximum-Likelihood Decoder

The BCD digit in each digit position of the timecode is represented as four data bits. The bits are correlated with the bits corresponding to each of the valid decimal digits in this position. If any of the four bits are invalid, the correlated value for all digits in this position is assumed zero. In either case, the values for all digits are exponentially averaged in a likelihood vector associated with this position. The digit associated with the maximum over all averaged values then becomes the maximum-likelihood candidate for this position and the ratio of the maximum over the next lower value represents the digit SNR.

The decoding matrix contains nine row vectors, one for each digit position. Each row vector includes the maximum-likelihood digit, likelihood vector and other related data. The maximum-likelihood digit for each of the nine digit positions becomes the maximum-likelihood time of the century. A built-in transition function implements a conventional clock with decimal digits that count the minutes, hours, days and years, as corrected for leap seconds and leap years. The counting operation also rotates the likelihood vector corresponding to each digit as it advances. Thus, once the clock is set, each clock digit should correspond to the maximum-likelihood digit as transmitted.

Each row of the decoding matrix also includes a compare counter and the most recently determined maximum-likelihood digit. If a digit likelihood exceeds the decision level and compares with previous digits for a number of successive minutes in any row, the maximum-likelihood digit replaces the clock digit in that row. When this condition is true for all rows and the second epoch has been reliably determined, the clock is set (or verified if it has already been set) and delivers correct time to the integral second. The fraction within the second is derived from the logical master clock, which runs at 8000 Hz and drives all system timing functions.

Master Clock Discipline

The logical master clock is derived from the audio codec clock. Its frequency is disciplined by a frequency-lock loop (FLL) which operates independently of the data recovery functions. The maximum value of the 5-ms pulse after the comb filter represents the on-time epoch of the second. At averaging intervals determined by the measured jitter, the frequency error is calculated as the difference between the epoches over the interval divided by the interval itself. The sample clock frequency is then corrected by this amount divided by a time constant of 8.

When first started, the frequency averaging interval is 8 seconds, in order to compensate for intrinsic codec clock frequency offsets up to 125 PPM. Under most conditions, the averaging interval doubles in stages from the initial value to 1024 s, which results in an ultimate frequency resolution of 0.125 PPM, or about 11 ms/day.

The data demodulation functions operate using the subcarrier clock, which is independent of the epoch. However, the data decoding functions are driven by the epoch. The decoder is phase-locked to the epoch in such a way that, when the clock state machine has reliably decoded the broadcast time to the second, the epoch timestamp of that second becomes a candidate to set the system clock.

The comb filter can have a long memory and is vulnerable to noise and stale data, especially when coming up after a long fade. Therefore, a candidate is considered valid only if the 5-ms signal amplitude and SNR are above thresholds. In addition, the system clock is not set until after one complete averaging interval has passed with valid candidates.

Station Identification

It is important that the logical clock frequency is stable and accurately determined, since in many applications the shortwave radio will be tuned to a fixed frequency where WWV or WWVH signals are not available throughout the day. In addition, in some parts of the US, especially on the west coast, signals from either or both WWV and WWVH may be available at different times or even at the same time. Since the propagation times from either station are almost always different, each station must be reliably identified before attempting to set the clock.

Reliable station identification requires accurate discrimination between very weak signals in noise and noise alone. The driver very aggressively soaks up every scrap of signal information, but has to be careful to avoid making pseudo-sense of noise alone. The signal quality metric depends on the minute pulse amplitude and SNR measured in second 0 of the minute, together with the data subcarrier amplitude and SNR measured in second 1. If all four values are above defined thresholds a hit is declared, otherwise a miss. In principle, the data pulse in second 58 is usable, but the AGC in most radios is not fast enough for a reliable measurement.

The number of hits declared in the last 6 minutes for each station represents the high order bits of the metric, while the current minute pulse amplitude represents the low order bits. Only if the metric is above a defined threshold is the station signal considered acceptable. The metric is also used by the autotune function described below and reported in the timecode string.

Performance

It is the intent of the design that the accuracy and stability of the indicated time be limited only by the characteristics of the ionospheric propagation medium. Conventional wisdom is that manual synchronization via oscilloscope and HF medium is good only to a millisecond under the best propagation conditions. The performance of the NTP daemon disciplined by this driver is clearly better than this, even under marginal conditions.

The figure below shows the measured offsets over a typical day near the bottom of the sunspot cycle ending in October, 2006. Variations up to ±0.4 ms can be expected due to changing ionospheric layer height and ray geometry over the day and night.

gif

The figure was constructed using a 2.4-GHz P4 running FreeBSD 6.1. For these measurements the computer clock was disciplined within a few microseconds of UTC using a PPS signal and GPS receiver and the measured offsets determined from the filegen peerstats data.

The predicted propagation delay from the WWV transmitter at Boulder, CO, to the receiver at Newark, DE, varies over 9.0-9.3 ms. In addition, the receiver contributes 4.7 ms and the 600-Hz bandpass filter 0.9 ms. With these values, the mean error is less than 0.1 ms and varies ±0.3 ms over the day as the result of changing ionospheric height and ray geometry.

Program Operation

The driver begins operation immediately upon startup. It first searches for one or both of the stations WWV and WWVH and attempts to acquire minute synch. This may take some fits and starts, as the driver expects to see several consecutive minutes with good signals and low jitter. If the autotune function is active, the driver will rotate over all five frequencies and both WWV and WWVH stations until finding a station and frequency with acceptable metric.

While this is going on the the driver acquires second synch, which can take up to several minutes, depending on signal quality. When minute synch has been acquired, the driver accumulates likelihood values for the unit (seconds) digit of the nine timecode digits, plus the seven miscellaneous bits included in the WWV/H transmission format. When a good unit digit has been found, the driver accumulated likelihood values for the remaining eight digits of the timecode. When three repetitions of all nine digits have decoded correctly, which normally takes 15 minutes with good signals, and up to 40 minutes when buried in noise, and the second synch has been acquired, the clock is set (or verified) and is selectable to discipline the system clock.

Once the clock is set, it continues to provide correct timecodes as long as the signal metric is above threshold, as described in the previous section. As long as the clock is correctly set or verified, the system clock offsets are provided once each minute to the reference clock interface, where they are processed using the same algorithms as with other reference clocks and remote servers.

It may happen as the hours progress around the clock that WWV and WWVH signals may appear alone, together or not at all. When the driver has mitigated which station and frequency is best, it sets the reference identifier to the string WVf for WWV and WHf for WWVH, where f is the frequency in megahertz. If the propagation delays have been properly set with the fudge time1 (WWV) and fudge time2 (WWVH) commands in the configuration file, handover from one station to the other is seamless.

Operation continues as long as the signal metric from at least one station on at least one frequency is acceptable. A consequence of this design is that, once the clock is set, the time and frequency are disciplined only by the second synch pulse and the clock digits themselves are driven by the clock state machine. If for some reason the state machine drifts to the wrong second, it would never resynchronize. To protect against this most unlikely situation, if after two days with no signals, the clock is considered unset and resumes the synchronization procedure from the beginning.

Once the system clock been set correctly it will continue to read correctly even during the holdover interval, but with increasing dispersion. Assuming the system clock frequency can be disciplined within 1 PPM, it can coast without signals for several days without exceeding the NTP step threshold of 128 ms. During such periods the root distance increases at 15 μs per second, which makes the driver appear less likely for selection as time goes on. Eventually, when the distance due all causes exceeds 1 s, it is no longer suitable for synchronization. Ordinarily, this happens after about 18 hours with no signals. The tinker maxdist configuration command can be used to change this value.

Autotune

The driver includes provisions to automatically tune the radio in response to changing radio propagation conditions throughout the day and night. The radio interface is compatible with the ICOM CI-V standard, which is a bidirectional serial bus operating at TTL levels. The bus can be connected to a standard serial port using a level converter such as the CT-17. Further details are on the Reference Clock Audio Drivers page.

If specified, the driver will attempt to open the device /dev/icom and, if successful will activate the autotune function and tune the radio to each operating frequency in turn while attempting to acquire minute synch from either WWV or WWVH. However, the driver is liberal in what it assumes of the configuration. If the /dev/icom link is not present or the open fails or the CI-V bus is inoperative, the driver quietly gives up with no harm done.

Once acquiring minute synch, the driver operates as described above to set the clock. However, during seconds 59, 0 and 1 of each minute it tunes the radio to one of the five broadcast frequencies to measure the signal metric as described above. Each of the five frequencies are probed in a five-minute rotation to build a database of current propagation conditions for all signals that can be heard at the time. At the end of each probe a mitigation procedure scans the database and retunes the radio to the best frequency and station found. For this to work well, the radio should be set for a fast AGC recovery time. This is most important while tracking a strong signal, which is normally the case, and then probing another frequency, which may have much weaker signals.

The mitigation procedure selects the frequency and station with the highest valid metric, ties going first to the highest frequency and then to WWV in order. A station is considered valid only if the metric is above a specified threshold; if no station is above the metric, the rotating probes continue until a valid station is found.

The behavior of the autotune function over a typical day is shown in the figure below.

gif

As expected, the lower frequencies prevail when the ray path is in moonlight (0100-1300 UTC) and the higher frequencies when the path is in sunlight (1300-0100 UTC). Note three periods in the figure show zero frequency when signals are below the minimum for all frequencies and stations.

Debugging Aids

The most convenient way to track the driver status is using the ntpq program and the clockvar command. This displays the last determined timecode and related status and error counters, even when the driver is not disciplining the system clock. If the debugging trace feature (-d on the ntpd command line) is enabled, the driver produces detailed status messages as it operates. If the fudge flag 4 is set, these messages are written to the clockstats file. All messages produced by this driver have the prefix wwv for convenient filtering with the Unix grep command.

The autotune process produces diagnostic information along with the timecode. This is very useful for evaluating the performance of the algorithms, as well as radio propagation conditions in general. The message is produced once each minute for each frequency in turn after minute synch has been acquired.

wwv5 status agc epoch secamp/secsnr datamp/datsnr wwv wwvh

where the fields after the wwv5 identifier are: status contains status bits, agc audio gain, epoch second epoch, secamp/secsnr second pulse amplitude/SNR, and wwv and wwvh are two sets of fields, one each for WWV and WWVH. Each of the two fields has the format

ident score metric minamp/minsnr

where ident encodes the station (WV for WWV, WH for WWVH) and frequency (2, 5, 10, 15 or 20), score 32-bit shift register recording the hits (1) and misses (0) of the last 32 probes (hits and misses enter from the right), metric is described above, and minamp/minsnr is the minute pulse ampliture/SNR. An example is:

wwv5 000d 111 5753 3967/20.1 3523/10.2 WV20 bdeff 100 8348/30.0 WH20 0000 1 22/-12.4

There are several other messages that can occur; these are documented in the source listing.

Monitor Data

When enabled by the filegen facility, every received timecode is written to the clockstats file in the following format:

sq yyyy ddd hh:mm:ss l d du lset agc ident metric errs freq avg

The fields beginning with yyyy and extending through du are decoded from the received data and are in fixed-length format. The remaining fields are in variable-length format. The fields are as follows:
s
The synch indicator is initially ? before the clock is set, but turns to space when all nine digits of the timecode are correctly set and the decoder is synchronized to the station within 125 μs.
q
The quality character is a four-bit hexadecimal code showing which alarms have been raised. Each bit is associated with a specific alarm condition according to the following:
0x8
synch alarm. The decoder is not synchronized to the station within 125 μs.
0x4
Digit error alarm. Less than nine decimal digits were found in the last minute.
0x2
Error alarm. More than 40 data bit errors were found in the last minute.
0x1
Compare alarm. A maximum-likelihood digit failed to agree with the current associated clock digit in the last minute.
It is important to note that one or more of the above alarms does not necessarily indicate a clock error, but only that the decoder has detected a marginal condition.
yyyy ddd hh:mm:ss
The timecode format itself is self explanatory. Since the driver latches the on-time epoch directly from the second synch pulse, the seconds fraction is always zero. Although the transmitted timecode includes only the year of century, the Gregorian year is augmented by 2000.
l
The leap second warning is normally space, but changes to L if a leap second is to occur at the end of the month.
d
The DST state is S or D when standard time or daylight time is in effect, respectively. The state is I or O when daylight time is about to go into effect or out of effect, respectively.
du
The DUT sign and magnitude shows the current UT1 offset relative to the displayed UTC time, in deciseconds.
lset
Before the clock is set, the interval since last set is the number of minutes since the driver was started; after the clock is set, this is number of minutes since the decoder was last synchronized to the station within 125 μs.
agc
The audio gain shows the current codec gain setting in the range 0 to 255. Ordinarily, the receiver audio gain control should be set for a value midway in this range.
ident
The station identifier shows the station, WVf for WWV or WHf for WWVH, and frequency f being tracked. If neither station is heard on any frequency, the reference identifier shows NONE.
metric
The signal metric described above from 0 (no signal) to 100 (best).
errs
The bit error counter is useful to determine the quality of the data signal received in the most recent minute. It is normal to drop a couple of data bits even under good signal conditions and increasing numbers as conditions worsen. While the decoder performs moderately well even with half the bits are in error in any minute, usually by that point the metric drops below threshold and the decoder switches to a different frequency.
freq
The frequency offset is the current estimate of the codec frequency offset to within 0.1 PPM. This may wander a bit over the day due to local temperature fluctuations and propagation conditions.
avg
The averaging time is the interval between frequency updates in powers of two to a maximum of 1024 s. Attainment of the maximum indicates the driver is operating at the best possible resolution in time and frequency.

An example timecode is:

0 2000 006 22:36:00 S +3 1 115 WV20 86 5 66.4 1024

Here the clock has been set and no alarms are raised. The year, day and time are displayed along with no leap warning, standard time and DUT +0.3 s. The clock was set on the last minute, the AGC is safely in the middle ot the range 0-255, and the receiver is tracking WWV on 20 MHz. Good receiving conditions prevail, as indicated by the metric 86 and 5 bit errors during the last minute. The current frequency is 66.4 PPM and the averaging interval is 1024 s, indicating the maximum precision available.

Fudge Factors

time1 time
Specifies the propagation delay for WWV (40:40:49.0N 105:02:27.0W), in seconds and fraction, with default 0.0.
time2 time
Specifies the propagation delay for WWVH (21:59:26.0N 159:46:00.0W), in seconds and fraction, with default 0.0.
stratum number
Specifies the driver stratum, in decimal from 0 to 15, with default 0.
refid string
Ordinarily, this field specifies the driver reference identifier; however, the driver sets the reference identifier automatically as described above.
flag1 0 | 1
Not used by this driver.
flag2 0 | 1
Specifies the microphone port if set to zero or the line-in port if set to one. It does not seem useful to specify the compact disc player port.
flag3 0 | 1
Enables audio monitoring of the input signal. For this purpose, the speaker volume must be set before the driver is started.
flag4 0 | 1
Enable verbose clockstats recording if set.

@ 1.1.1.3.2.1 log @file driver36.html was added on branch netbsd-5 on 2015-01-07 04:45:23 +0000 @ text @d1 150 @ 1.1.1.3.2.2 log @Pullup the following revision (requested by he in ticket #1938): 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.cnew external/bsd/ntp/dist/sntp/libevent/sample/openssl_hostname_validation.hnew 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 150 Radio WWV/H Audio Demodulator/Decoder

Radio WWV/H Audio Demodulator/Decoder

Author: David L. Mills (mills@@udel.edu)
Last updage: 15-Nov-2012 06:42 UTC


Synopsis

Address: 127.127.36.u
Reference ID: WVf or WHf
Driver ID: WWV_AUDIO
Autotune Port: /dev/icom; 1200/9600 baud, 8-bits, no parity
Audio Device: /dev/audio and /dev/audioctl

Description

This driver synchronizes the computer time using shortwave radio transmissions from NIST time/frequency stations WWV in Ft. Collins, CO, and WWVH in Kauai, HI. Transmissions are made continuously on 2.5, 5, 10 and 15 MHz from both stations and on 20 MHz from WWV. An ordinary shortwave receiver can be tuned manually to one of these frequencies or, in the case of ICOM receivers, the receiver can be tuned automatically by the driver as propagation conditions change throughout the day and season. The radio is connected via an optional attenuator and cable to either the microphone or line-in port of a workstation or PC.

The driver requires an audio codec or sound card with sampling rate 8 kHz and μ-law companding to demodulate the data. This is the same standard as used by the telephone industry and is supported by most hardware and operating systems, including Solaris, FreeBSD and Linux, among others. In this implementation only one audio driver and codec can be supported on a single machine. In order to assure reliable signal capture, the codec frequency error must be less than 187 PPM (.0187 percent). If necessary, the tinker codec configuration command can be used to bracket the codec frequency to this range.

In general and without calibration, the driver is accurate within 1 ms relative to the broadcast time when tracking a station. However, variations up to 0.3 ms can be expected due to diurnal variations in ionospheric layer height and ray geometry. In Newark DE, 2479 km from the transmitter, the predicted two-hop propagation delay varies from 9.3 ms in sunlight to 9.0 ms in moonlight. When not tracking the station the accuracy depends on the computer clock oscillator stability, ordinarily better than 0.5 PPM.

After calibration relative to the PPS signal from a GPS receiver, the mean offset with a 2.4-GHz P4 running FreeBSD 6.1 is generally within 0.1 ms short-term with 0.4 ms jitter. The long-term mean offset varies up to 0.3 ms due to propagation path geometry variations. The processor load due to the driver is 0.4 percent on the P4.

The driver performs a number of error checks to protect against overdriven or underdriven input signal levels, incorrect signal format or improper hardware configuration. The specific checks are detailed later in this page. Note that additional checks are done elsewhere in the reference clock interface routines.

This driver incorporates several features in common with other audio drivers such as described in the Radio CHU Audio Demodulator/Decoder and the IRIG Audio Decoder pages. They include automatic gain control (AGC), selectable audio codec port and signal monitoring capabilities. For a discussion of these common features, as well as a guide to hookup, debugging and monitoring, see the Reference Clock Audio Drivers page.

Technical Overview

The driver processes 8-kHz μ-law companded codec samples using maximum-likelihood techniques which exploit the considerable degree of redundancy available in the broadcast signal. The WWV signal format is described in NIST Special Publication 432 (Revised 1990) and also available on the WWV/H web site. It consists of three elements, a 5-ms, 1000-Hz pulse, which occurs at the beginning of each second, a 800-ms, 1000-Hz pulse, which occurs at the beginning of each minute, and a pulse-width modulated 100-Hz subcarrier for the data bits, one bit per second. The WWVH format is identical, except that the 1000-Hz pulses are sent at 1200 Hz. Each minute encodes nine BCD digits for the time of century plus seven bits for the daylight savings time (DST) indicator, leap warning indicator and DUT1 correction.

The demodulation and decoding algorithms used by this driver are based on a machine language program developed for the TAPR DSP93 DSP unit, which uses the TI 320C25 DSP chip. The analysis, design and performance of the program for this unit is described in: Mills, D.L. A precision radio clock for WWV transmissions. Electrical Engineering Report 97-8-1, University of Delaware, August 1997, 25 pp. Available from www.eecis.udel.edu/~mills/reports.htm. For use in this driver, the original program was rebuilt in the C language and adapted to the NTP driver interface. The algorithms have been modified to improve performance, especially under weak signal conditions and to provide an automatic frequency and station selection feature.

As in the original program, the clock discipline is modelled as a Markov process, with probabilistic state transitions corresponding to a conventional clock and the probabilities of received decimal digits. The result is a performance level with very high accuracy and reliability, even under conditions when the minute beep of the signal, normally its most prominent feature, can barely be detected by ear using a communications receiver.

Baseband Signal Processing

The 1000/1200-Hz pulses and 100-Hz subcarrier are first separated using a 600-Hz bandpass filter centered on 1100 Hz and a 150-Hz lowpass filter. The minute pulse is extracted using an 800-ms synchronous matched filter and pulse grooming logic which discriminates between WWV and WWVH signals and noise. The second pulse is extracted using a 5-ms FIR matched filter for each station and a single 8000-stage comb filter.

The phase of the 100-Hz subcarrier relative to the second pulse is fixed at the transmitter; however, the audio stage in many radios affects the phase response at 100 Hz in unpredictable ways. The driver adjusts for each radio using two 170-ms synchronous matched filters. The I (in-phase) filter is used to demodulate the subcarrier envelope, while the Q (quadrature-phase) filter is used in a type-1 phase-lock loop (PLL) to discipline the demodulator phase.

A bipolar data signal is determined from the matched filter subcarrier envelope using a pulse-width discriminator. The discriminator samples the I channel at 15 ms (n), 200 ms (s0) and 500 ms (s1), and the envelope (RMS I and Q channels) at 200 ms (e1) and the end of the second (e0). The bipolar data signal is expressed 2s1 - s0 - n, where positive values correspond to data 1 and negative values correspond to data 0. Note that, since the signals s0 and s1 include the noise n, the noise component cancels out. The data bit SNR is calculated as 20 log10(e1 / e0). If the driver has not synchronized to the minute pulse, or if the data bit amplitude e1 or SNR are below thresholds, the bit is considered invalid and the bipolar signal is forced to zero.

The bipolar signal is exponentially averaged in a set of 60 accumulators, one for each second, to determine the semi-static miscellaneous bits, such as DST indicator, leap second warning and DUT1 correction. In this design a data average value larger than a positive threshold is interpreted as +1 (hit) and a value smaller than a negative threshold as a -1 (miss). Values between the two thresholds, which can occur due to signal fades, are interpreted as an erasure and result in no change of indication.

Maximum-Likelihood Decoder

The BCD digit in each digit position of the timecode is represented as four data bits. The bits are correlated with the bits corresponding to each of the valid decimal digits in this position. If any of the four bits are invalid, the correlated value for all digits in this position is assumed zero. In either case, the values for all digits are exponentially averaged in a likelihood vector associated with this position. The digit associated with the maximum over all averaged values then becomes the maximum-likelihood candidate for this position and the ratio of the maximum over the next lower value represents the digit SNR.

The decoding matrix contains nine row vectors, one for each digit position. Each row vector includes the maximum-likelihood digit, likelihood vector and other related data. The maximum-likelihood digit for each of the nine digit positions becomes the maximum-likelihood time of the century. A built-in transition function implements a conventional clock with decimal digits that count the minutes, hours, days and years, as corrected for leap seconds and leap years. The counting operation also rotates the likelihood vector corresponding to each digit as it advances. Thus, once the clock is set, each clock digit should correspond to the maximum-likelihood digit as transmitted.

Each row of the decoding matrix also includes a compare counter and the most recently determined maximum-likelihood digit. If a digit likelihood exceeds the decision level and compares with previous digits for a number of successive minutes in any row, the maximum-likelihood digit replaces the clock digit in that row. When this condition is true for all rows and the second epoch has been reliably determined, the clock is set (or verified if it has already been set) and delivers correct time to the integral second. The fraction within the second is derived from the logical master clock, which runs at 8000 Hz and drives all system timing functions.

Master Clock Discipline

The logical master clock is derived from the audio codec clock. Its frequency is disciplined by a frequency-lock loop (FLL) which operates independently of the data recovery functions. The maximum value of the 5-ms pulse after the comb filter represents the on-time epoch of the second. At averaging intervals determined by the measured jitter, the frequency error is calculated as the difference between the epoches over the interval divided by the interval itself. The sample clock frequency is then corrected by this amount divided by a time constant of 8.

When first started, the frequency averaging interval is 8 seconds, in order to compensate for intrinsic codec clock frequency offsets up to 125 PPM. Under most conditions, the averaging interval doubles in stages from the initial value to 1024 s, which results in an ultimate frequency resolution of 0.125 PPM, or about 11 ms/day.

The data demodulation functions operate using the subcarrier clock, which is independent of the epoch. However, the data decoding functions are driven by the epoch. The decoder is phase-locked to the epoch in such a way that, when the clock state machine has reliably decoded the broadcast time to the second, the epoch timestamp of that second becomes a candidate to set the system clock.

The comb filter can have a long memory and is vulnerable to noise and stale data, especially when coming up after a long fade. Therefore, a candidate is considered valid only if the 5-ms signal amplitude and SNR are above thresholds. In addition, the system clock is not set until after one complete averaging interval has passed with valid candidates.

Station Identification

It is important that the logical clock frequency is stable and accurately determined, since in many applications the shortwave radio will be tuned to a fixed frequency where WWV or WWVH signals are not available throughout the day. In addition, in some parts of the US, especially on the west coast, signals from either or both WWV and WWVH may be available at different times or even at the same time. Since the propagation times from either station are almost always different, each station must be reliably identified before attempting to set the clock.

Reliable station identification requires accurate discrimination between very weak signals in noise and noise alone. The driver very aggressively soaks up every scrap of signal information, but has to be careful to avoid making pseudo-sense of noise alone. The signal quality metric depends on the minute pulse amplitude and SNR measured in second 0 of the minute, together with the data subcarrier amplitude and SNR measured in second 1. If all four values are above defined thresholds a hit is declared, otherwise a miss. In principle, the data pulse in second 58 is usable, but the AGC in most radios is not fast enough for a reliable measurement.

The number of hits declared in the last 6 minutes for each station represents the high order bits of the metric, while the current minute pulse amplitude represents the low order bits. Only if the metric is above a defined threshold is the station signal considered acceptable. The metric is also used by the autotune function described below and reported in the timecode string.

Performance

It is the intent of the design that the accuracy and stability of the indicated time be limited only by the characteristics of the ionospheric propagation medium. Conventional wisdom is that manual synchronization via oscilloscope and HF medium is good only to a millisecond under the best propagation conditions. The performance of the NTP daemon disciplined by this driver is clearly better than this, even under marginal conditions.

The figure below shows the measured offsets over a typical day near the bottom of the sunspot cycle ending in October, 2006. Variations up to ±0.4 ms can be expected due to changing ionospheric layer height and ray geometry over the day and night.

gif

The figure was constructed using a 2.4-GHz P4 running FreeBSD 6.1. For these measurements the computer clock was disciplined within a few microseconds of UTC using a PPS signal and GPS receiver and the measured offsets determined from the filegen peerstats data.

The predicted propagation delay from the WWV transmitter at Boulder, CO, to the receiver at Newark, DE, varies over 9.0-9.3 ms. In addition, the receiver contributes 4.7 ms and the 600-Hz bandpass filter 0.9 ms. With these values, the mean error is less than 0.1 ms and varies ±0.3 ms over the day as the result of changing ionospheric height and ray geometry.

Program Operation

The driver begins operation immediately upon startup. It first searches for one or both of the stations WWV and WWVH and attempts to acquire minute synch. This may take some fits and starts, as the driver expects to see several consecutive minutes with good signals and low jitter. If the autotune function is active, the driver will rotate over all five frequencies and both WWV and WWVH stations until finding a station and frequency with acceptable metric.

While this is going on the the driver acquires second synch, which can take up to several minutes, depending on signal quality. When minute synch has been acquired, the driver accumulates likelihood values for the unit (seconds) digit of the nine timecode digits, plus the seven miscellaneous bits included in the WWV/H transmission format. When a good unit digit has been found, the driver accumulated likelihood values for the remaining eight digits of the timecode. When three repetitions of all nine digits have decoded correctly, which normally takes 15 minutes with good signals, and up to 40 minutes when buried in noise, and the second synch has been acquired, the clock is set (or verified) and is selectable to discipline the system clock.

Once the clock is set, it continues to provide correct timecodes as long as the signal metric is above threshold, as described in the previous section. As long as the clock is correctly set or verified, the system clock offsets are provided once each minute to the reference clock interface, where they are processed using the same algorithms as with other reference clocks and remote servers.

It may happen as the hours progress around the clock that WWV and WWVH signals may appear alone, together or not at all. When the driver has mitigated which station and frequency is best, it sets the reference identifier to the string WVf for WWV and WHf for WWVH, where f is the frequency in megahertz. If the propagation delays have been properly set with the fudge time1 (WWV) and fudge time2 (WWVH) commands in the configuration file, handover from one station to the other is seamless.

Operation continues as long as the signal metric from at least one station on at least one frequency is acceptable. A consequence of this design is that, once the clock is set, the time and frequency are disciplined only by the second synch pulse and the clock digits themselves are driven by the clock state machine. If for some reason the state machine drifts to the wrong second, it would never resynchronize. To protect against this most unlikely situation, if after two days with no signals, the clock is considered unset and resumes the synchronization procedure from the beginning.

Once the system clock been set correctly it will continue to read correctly even during the holdover interval, but with increasing dispersion. Assuming the system clock frequency can be disciplined within 1 PPM, it can coast without signals for several days without exceeding the NTP step threshold of 128 ms. During such periods the root distance increases at 15 μs per second, which makes the driver appear less likely for selection as time goes on. Eventually, when the distance due all causes exceeds 1 s, it is no longer suitable for synchronization. Ordinarily, this happens after about 18 hours with no signals. The tinker maxdist configuration command can be used to change this value.

Autotune

The driver includes provisions to automatically tune the radio in response to changing radio propagation conditions throughout the day and night. The radio interface is compatible with the ICOM CI-V standard, which is a bidirectional serial bus operating at TTL levels. The bus can be connected to a standard serial port using a level converter such as the CT-17. Further details are on the Reference Clock Audio Drivers page.

If specified, the driver will attempt to open the device /dev/icom and, if successful will activate the autotune function and tune the radio to each operating frequency in turn while attempting to acquire minute synch from either WWV or WWVH. However, the driver is liberal in what it assumes of the configuration. If the /dev/icom link is not present or the open fails or the CI-V bus is inoperative, the driver quietly gives up with no harm done.

Once acquiring minute synch, the driver operates as described above to set the clock. However, during seconds 59, 0 and 1 of each minute it tunes the radio to one of the five broadcast frequencies to measure the signal metric as described above. Each of the five frequencies are probed in a five-minute rotation to build a database of current propagation conditions for all signals that can be heard at the time. At the end of each probe a mitigation procedure scans the database and retunes the radio to the best frequency and station found. For this to work well, the radio should be set for a fast AGC recovery time. This is most important while tracking a strong signal, which is normally the case, and then probing another frequency, which may have much weaker signals.

The mitigation procedure selects the frequency and station with the highest valid metric, ties going first to the highest frequency and then to WWV in order. A station is considered valid only if the metric is above a specified threshold; if no station is above the metric, the rotating probes continue until a valid station is found.

The behavior of the autotune function over a typical day is shown in the figure below.

gif

As expected, the lower frequencies prevail when the ray path is in moonlight (0100-1300 UTC) and the higher frequencies when the path is in sunlight (1300-0100 UTC). Note three periods in the figure show zero frequency when signals are below the minimum for all frequencies and stations.

Debugging Aids

The most convenient way to track the driver status is using the ntpq program and the clockvar command. This displays the last determined timecode and related status and error counters, even when the driver is not disciplining the system clock. If the debugging trace feature (-d on the ntpd command line) is enabled, the driver produces detailed status messages as it operates. If the fudge flag 4 is set, these messages are written to the clockstats file. All messages produced by this driver have the prefix wwv for convenient filtering with the Unix grep command.

The autotune process produces diagnostic information along with the timecode. This is very useful for evaluating the performance of the algorithms, as well as radio propagation conditions in general. The message is produced once each minute for each frequency in turn after minute synch has been acquired.

wwv5 status agc epoch secamp/secsnr datamp/datsnr wwv wwvh

where the fields after the wwv5 identifier are: status contains status bits, agc audio gain, epoch second epoch, secamp/secsnr second pulse amplitude/SNR, and wwv and wwvh are two sets of fields, one each for WWV and WWVH. Each of the two fields has the format

ident score metric minamp/minsnr

where ident encodes the station (WV for WWV, WH for WWVH) and frequency (2, 5, 10, 15 or 20), score 32-bit shift register recording the hits (1) and misses (0) of the last 32 probes (hits and misses enter from the right), metric is described above, and minamp/minsnr is the minute pulse ampliture/SNR. An example is:

wwv5 000d 111 5753 3967/20.1 3523/10.2 WV20 bdeff 100 8348/30.0 WH20 0000 1 22/-12.4

There are several other messages that can occur; these are documented in the source listing.

Monitor Data

When enabled by the filegen facility, every received timecode is written to the clockstats file in the following format:

sq yyyy ddd hh:mm:ss l d du lset agc ident metric errs freq avg

The fields beginning with yyyy and extending through du are decoded from the received data and are in fixed-length format. The remaining fields are in variable-length format. The fields are as follows:
s
The synch indicator is initially ? before the clock is set, but turns to space when all nine digits of the timecode are correctly set and the decoder is synchronized to the station within 125 μs.
q
The quality character is a four-bit hexadecimal code showing which alarms have been raised. Each bit is associated with a specific alarm condition according to the following:
0x8
synch alarm. The decoder is not synchronized to the station within 125 μs.
0x4
Digit error alarm. Less than nine decimal digits were found in the last minute.
0x2
Error alarm. More than 40 data bit errors were found in the last minute.
0x1
Compare alarm. A maximum-likelihood digit failed to agree with the current associated clock digit in the last minute.
It is important to note that one or more of the above alarms does not necessarily indicate a clock error, but only that the decoder has detected a marginal condition.
yyyy ddd hh:mm:ss
The timecode format itself is self explanatory. Since the driver latches the on-time epoch directly from the second synch pulse, the seconds fraction is always zero. Although the transmitted timecode includes only the year of century, the Gregorian year is augmented by 2000.
l
The leap second warning is normally space, but changes to L if a leap second is to occur at the end of the month.
d
The DST state is S or D when standard time or daylight time is in effect, respectively. The state is I or O when daylight time is about to go into effect or out of effect, respectively.
du
The DUT sign and magnitude shows the current UT1 offset relative to the displayed UTC time, in deciseconds.
lset
Before the clock is set, the interval since last set is the number of minutes since the driver was started; after the clock is set, this is number of minutes since the decoder was last synchronized to the station within 125 μs.
agc
The audio gain shows the current codec gain setting in the range 0 to 255. Ordinarily, the receiver audio gain control should be set for a value midway in this range.
ident
The station identifier shows the station, WVf for WWV or WHf for WWVH, and frequency f being tracked. If neither station is heard on any frequency, the reference identifier shows NONE.
metric
The signal metric described above from 0 (no signal) to 100 (best).
errs
The bit error counter is useful to determine the quality of the data signal received in the most recent minute. It is normal to drop a couple of data bits even under good signal conditions and increasing numbers as conditions worsen. While the decoder performs moderately well even with half the bits are in error in any minute, usually by that point the metric drops below threshold and the decoder switches to a different frequency.
freq
The frequency offset is the current estimate of the codec frequency offset to within 0.1 PPM. This may wander a bit over the day due to local temperature fluctuations and propagation conditions.
avg
The averaging time is the interval between frequency updates in powers of two to a maximum of 1024 s. Attainment of the maximum indicates the driver is operating at the best possible resolution in time and frequency.

An example timecode is:

0 2000 006 22:36:00 S +3 1 115 WV20 86 5 66.4 1024

Here the clock has been set and no alarms are raised. The year, day and time are displayed along with no leap warning, standard time and DUT +0.3 s. The clock was set on the last minute, the AGC is safely in the middle ot the range 0-255, and the receiver is tracking WWV on 20 MHz. Good receiving conditions prevail, as indicated by the metric 86 and 5 bit errors during the last minute. The current frequency is 66.4 PPM and the averaging interval is 1024 s, indicating the maximum precision available.

Fudge Factors

time1 time
Specifies the propagation delay for WWV (40:40:49.0N 105:02:27.0W), in seconds and fraction, with default 0.0.
time2 time
Specifies the propagation delay for WWVH (21:59:26.0N 159:46:00.0W), in seconds and fraction, with default 0.0.
stratum number
Specifies the driver stratum, in decimal from 0 to 15, with default 0.
refid string
Ordinarily, this field specifies the driver reference identifier; however, the driver sets the reference identifier automatically as described above.
flag1 0 | 1
Not used by this driver.
flag2 0 | 1
Specifies the microphone port if set to zero or the line-in port if set to one. It does not seem useful to specify the compact disc player port.
flag3 0 | 1
Enables audio monitoring of the input signal. For this purpose, the speaker volume must be set before the driver is started.
flag4 0 | 1
Enable verbose clockstats recording if set.

@