1*2b15cb3dSCy SchubertNotes for NTP Version 3 2*2b15cb3dSCy Schubert 3*2b15cb3dSCy SchubertThis version operates in much the same manner as Version 2 with the 4*2b15cb3dSCy Schubertfollowing changes and additions: 5*2b15cb3dSCy Schubert 6*2b15cb3dSCy Schubert1. The protocol machinery operates in conformance with the RFC1305 NTP 7*2b15cb3dSCy Schubert Version 3 specification. The most visible characteristic of this 8*2b15cb3dSCy Schubert version is that the poll intervals for all polls, even selected 9*2b15cb3dSCy Schubert ones, is significantly increased. This is especially desirable when 10*2b15cb3dSCy Schubert serving a large client population. This implementation supports 11*2b15cb3dSCy Schubert previous versions as non-configured peers; for version-2 configured 12*2b15cb3dSCy Schubert peers a "version 2" keyword should be included on the "peer" line. 13*2b15cb3dSCy Schubert 14*2b15cb3dSCy Schubert2. The configuration file has a new keyword: statfile <file>, where 15*2b15cb3dSCy Schubert <file> is the name of a statistics file." When present, each clock 16*2b15cb3dSCy Schubert update generates an entry of the form: 17*2b15cb3dSCy Schubert 18*2b15cb3dSCy Schubert <day> <sec>.<frac> <addr> <status> <offset> <delay> <disp> 19*2b15cb3dSCy Schubert 20*2b15cb3dSCy Schubert where <day> is the modified Julian day, <sec>.<frac> is the time of 21*2b15cb3dSCy Schubert day, <addr> is the peer address and <status> is the peer status. 22*2b15cb3dSCy Schubert The <offset>, <delay> and <disp> are the measured offset, delay and 23*2b15cb3dSCy Schubert dispersion, respectively, of the peer clock relative to the local 24*2b15cb3dSCy Schubert clock. About once per day the current file is closed and a new one 25*2b15cb3dSCy Schubert created with names <file>.<gen>, where <gen> starts at one and 26*2b15cb3dSCy Schubert increments for each new generation. 27*2b15cb3dSCy Schubert 28*2b15cb3dSCy Schubert3. A number of additional platforms are supported. See ./Config file 29*2b15cb3dSCy Schubert for details. 30*2b15cb3dSCy Schubert 31*2b15cb3dSCy Schubert4. A driver for the TrueTime 468DC GOES Synchronized Clock is 32*2b15cb3dSCy Schubert included. This driver (refclock_goes.c) should also work for other 33*2b15cb3dSCy Schubert TrueTime radio clocks, since all use the same format. 34*2b15cb3dSCy Schubert 35*2b15cb3dSCy Schubert5. A replacement driver for the Spectracom 8170 WWVB Synchronized 36*2b15cb3dSCy Schubert Clock is included. This driver (refclock_wwvb.c) (a) does not 37*2b15cb3dSCy Schubert require a 1-pulse-per-second signal, (b) supports both format 0 38*2b15cb3dSCy Schubert (original 8170) and format 2 (Netclock/2 and upgraded 8170), (c) 39*2b15cb3dSCy Schubert can be connected to more than one computer and (d) automatically 40*2b15cb3dSCy Schubert compensates for all serial baud rates. 41*2b15cb3dSCy Schubert 42*2b15cb3dSCy Schubert6. A driver for the German time/frequency station DCF77 is included. 43*2b15cb3dSCy Schubert This requires a special STREAMS module. 44*2b15cb3dSCy Schubert 45*2b15cb3dSCy Schubert7. In Version 2 special line-discipline modules were required for the 46*2b15cb3dSCy Schubert CHU and WWVB drivers. This code continues to work in Version 3, 47*2b15cb3dSCy Schubert although it is no longer needed for the WWVB driver. However, this 48*2b15cb3dSCy Schubert code does not work under STREAMS, as used in SunOS 4.1.1. 49*2b15cb3dSCy Schubert Equivalent STREAMS modules are supplied with Version 3. 50*2b15cb3dSCy Schubert 51*2b15cb3dSCy Schubert8. Support for an external 1-pulse-per-second (pps) signal is 52*2b15cb3dSCy Schubert provided. The signal is connected to a serial port (see 53*2b15cb3dSCy Schubert xntpd/ntp_loopfilter.c for details). When present the leading edge 54*2b15cb3dSCy Schubert of the pulse establishes the on-time epoch within an interval 55*2b15cb3dSCy Schubert established by the selected radio clock or other NTP time server. 56*2b15cb3dSCy Schubert Use of the pps is indicated when the tattletale displayed by ntpq 57*2b15cb3dSCy Schubert changes from "*" to "o". 58*2b15cb3dSCy Schubert 59*2b15cb3dSCy Schubert9. The clock-selection and poll-update procedures have been modified 60*2b15cb3dSCy Schubert slightly in order to achieve better performance on high speed LANs 61*2b15cb3dSCy Schubert with compromise in performance on typical WANs. 62*2b15cb3dSCy Schubert 63*2b15cb3dSCy Schubert10. In order to comply with U.S. Commerce Department regulations, the DES 64*2b15cb3dSCy Schubert encryption routine lib/authdes.c cannot be exported. For exportable 65*2b15cb3dSCy Schubert versions of this distribution a DES-encrypted version of this routine 66*2b15cb3dSCy Schubert lib/authdes.c.des is included along with an unencrypted version 67*2b15cb3dSCy Schubert lib/authdes.c.export, which allows normal operation, but without the 68*2b15cb3dSCy Schubert NTP authentication feature. Further information is available in the 69*2b15cb3dSCy Schubert lib/authdes.c.export file. 70*2b15cb3dSCy Schubert 71*2b15cb3dSCy Schubert11. As an alternative to the DES-based authentication mechanism, an 72*2b15cb3dSCy Schubert implementation of the RSA Message Digest 5 algorithm is provided. 73*2b15cb3dSCy Schubert (see applicable copyright information in the library files). 74*2b15cb3dSCy Schubert 75*2b15cb3dSCy Schubert12. A driver for the Magnavox MX4200 GPS clock. 76*2b15cb3dSCy Schubert 77*2b15cb3dSCy Schubert13. A STREAMS module which captures carrier-detect data-lead transitions to 78*2b15cb3dSCy Schubert connect a precision source of 1-pps, yet avoid the ugly overhead in the 79*2b15cb3dSCy Schubert usual STREAMS processing. See the ppsclock subdirectory. 80*2b15cb3dSCy Schubert 81*2b15cb3dSCy Schubert14. Support for the Apple A/UX operating system and enhanced support for the 82*2b15cb3dSCy Schubert Hewlet-Packard HP/UX operating system. See the various README and Config 83*2b15cb3dSCy Schubert files for further information. 84*2b15cb3dSCy Schubert 85*2b15cb3dSCy SchubertSee the COPYRIGHT file for authors and copyright information. Note that some 86*2b15cb3dSCy Schubertmodules in this distribution contain copyright information that supersedes 87*2b15cb3dSCy Schubertthe copyright information in that file. 88*2b15cb3dSCy Schubert 89*2b15cb3dSCy SchubertIf I missed something or neglected to give due credit, please advise. 90*2b15cb3dSCy Schubert 91*2b15cb3dSCy SchubertDavid L. Mills 92*2b15cb3dSCy SchubertUniversity of Delaware 93*2b15cb3dSCy Schubert31 May 1992, amended 23 July 1992, 25 October 1992 94*2b15cb3dSCy Schubert 95*2b15cb3dSCy SchubertBugs and notes 96*2b15cb3dSCy Schubert 97*2b15cb3dSCy SchubertA bug in the original tty_clk_STREAMS.c module has been fixed. 98*2b15cb3dSCy Schubert 99*2b15cb3dSCy SchubertThe poll-interval randomization feature of poll_update (in 100*2b15cb3dSCy Schubertxntpd/ntp_proto.c) has been extended to apply when the poll interval is 101*2b15cb3dSCy Schubertincreased, as well as reduced. This spreads the update messages in time 102*2b15cb3dSCy Schubertand helps avoid unpleasant bursts of messages. 103*2b15cb3dSCy Schubert 104*2b15cb3dSCy SchubertIn the clock_select algorithm the peers selected for combining are 105*2b15cb3dSCy Schubertlimited to those survivors at the lowest stratum, not the entire list. 106*2b15cb3dSCy SchubertThis helps avoid whiplash when large numbers of peers are at the same 107*2b15cb3dSCy Schubertstratum. 108*2b15cb3dSCy Schubert 109*2b15cb3dSCy SchubertThe number formerly displayed by ntpq as "compliance" is now the time 110*2b15cb3dSCy Schubertconstant of integration. 111*2b15cb3dSCy Schubert 112*2b15cb3dSCy SchubertThe DNS resolver xntpd/ntp_intres.c is now integrated into xntpd, making 113*2b15cb3dSCy Schubertconfiguration of multiple hosts easier. 114*2b15cb3dSCy Schubert 115*2b15cb3dSCy SchubertSystem and peer event are now written to the system log at priority 116*2b15cb3dSCy SchubertLOG_INFO. 117*2b15cb3dSCy Schubert 118*2b15cb3dSCy SchubertThe leap-second code was fixed to avoid broadcasting leap warnings on 119*2b15cb3dSCy Schubertall except the last day of June and December. 120