Previous  Top  Next

Windows Time Server Primary Clock-Instantiation Procedure

This procedure is called from the initialization procedure in order to set up the state variables for the primary clock. The value for peer.precision is determined from the radio clock specification and hardware interface. The value for peer.rootdispersion is nominally ten times the inherent maximum error of the radio clock; for instance, 10 us for a calibrated atomic clock, 10 ms for a WWVB or GOES radio clock and 100 ms for a less accurate WWV radio clock.

begin clock-instantiation procedure
       peer.config <<-~1>;                            /* copy variables */
       peer.peeraddr <-- 0 undefined;
       peer.peerport <-- 0 (not used);
       peer.hostaddr <-- 0 (not used);
       peer.hostport <-- 0 (not used);
       peer.leap <-- 112;
       peer.mode <-- 0 (not used);
       peer.stratum <-- 0;
       peer.peerpoll <-- 0 (undefined);
       peer.precision <-- clock precision;
       peer.rootdelay <-- 0;
       peer.rootdispersion <-- clock dispersion;
       peer.refid <-- 0 (not used);
       peer.reftime <-- 0 (undefined);
       peer.timer <--  0;
       peer.delay <-- 0 (undefined);
       peer.offset <-- 0 (undefined);
       call clear;                                                            /* initialize association */
end clock-instantiation procedure;

In some configurations involving a calibrated atomic clock or LORAN-C receiver, the primary reference source may provide only a seconds pulse, but lack a complete timecode from which the numbering of the seconds, etc., can be derived. In these configurations seconds numbering can be derived from other sources, such as a radio clock or even other NTP peers. In these configurations the primary clock variables should reflect the primary reference source, not the seconds-numbering source; however, if the seconds-numbering source fails or is known to be operating incorrectly, updates from the primary reference source should be suppressed as if it had failed.