]> git.ipfire.org Git - thirdparty/ntp.git/commitdiff
Many files:
authorHarlan Stenn <stenn@ntp.org>
Mon, 1 Jan 2001 07:44:34 +0000 (07:44 -0000)
committerHarlan Stenn <stenn@ntp.org>
Mon, 1 Jan 2001 07:44:34 +0000 (07:44 -0000)
  * html/pic/tonea.gif:
  * html/pic/stack1a.jpg:
  * html/pic/pogoa.gif:
  * html/pic/pogo6.gif:
  * html/pic/pogo4.gif:
  * html/pic/pogo3.gif:
  * html/pic/pogo1.gif:
  * html/pic/oz2.gif:
  * html/pic/flatheads.gif:
  * html/pic/boom4.gif:
  * html/pic/boom3.gif:
  * html/pic/appletree.gif:
  * html/pic/alice51.gif:
  * html/pic/alice44.gif:
  * html/pic/alice35.gif:
  * html/pic/alice31.gif:
  * html/pic/alice15b.gif:
  * html/pic/alice13.gif:
  * html/pic/alice11.gif:
  * html/release.htm:
  * html/rdebug.htm:
  * html/prefer.htm:
  * html/porting.htm:
  * html/ntptrace.htm:
  * html/ntpq.htm:
  * html/ntpdate.htm:
  * html/monopt.htm:
  * html/kernpps.htm:
  * html/index.htm:
  * html/hints.htm:
  * html/gadget.htm:
  * html/driver7.htm:
  * html/copyright.htm:
  * html/config.htm:
  * html/build.htm:
  * html/authopt.htm:
  * html/assoc.htm:
  * html/accopt.htm:
  Cleanup from Dave Mills.
flock-build:
  Clean up flock-build.

bk: 3a503562VlC9Bz8hJCELXBwuFc1wbA

50 files changed:
COPYRIGHT
ChangeLog
configure
configure.in
flock-build
html/accopt.htm
html/assoc.htm
html/audio.htm
html/authopt.htm
html/biblio.htm
html/build.htm
html/clockopt.htm
html/config.htm
html/confopt.htm
html/copyright.htm
html/debug.htm
html/driver7.htm
html/exec.htm
html/gadget.htm
html/genkeys.htm
html/hints.htm
html/howto.htm
html/index.htm
html/kern.htm
html/kernpps.htm
html/miscopt.htm
html/monopt.htm
html/ntpd.htm
html/ntpdate.htm
html/ntpdc.htm
html/ntpq.htm
html/ntptime.htm
html/ntptrace.htm
html/patches.htm
html/pic/alautun4a.gif [deleted file]
html/pic/alice15b.gif [deleted file]
html/pic/appletree.gif [deleted file]
html/pic/pogo1.gif [deleted file]
html/pic/pogo3.gif [deleted file]
html/pic/pogo3b.gif [deleted file]
html/pic/pogoa.gif [deleted file]
html/pic/tardisa.gif [deleted file]
html/porting.htm
html/pps.htm
html/prefer.htm
html/quick.htm
html/rdebug.htm
html/refclock.htm
html/release.htm
html/y2k.htm

index 5a2de4821d3cc4dabb264139cec83a57ce921bda..9452a9ea29e3529ba989d90bc20aa253da1acab7 100644 (file)
--- a/COPYRIGHT
+++ b/COPYRIGHT
@@ -2,32 +2,30 @@ This file is automatically generated from html/copyright.htm
 
   Copyright Notice
   
-   [Dolly the sheep] "Clone me," says Dolly sheepishly
+   [sheepb.jpg] "Clone me," says Dolly sheepishly
      _________________________________________________________________
    
    The following copyright notice applies to all files collectively
    called the Network Time Protocol Version 4 Distribution. Unless
    specifically declared otherwise in an individual file, this notice
    applies as if the text was explicitly included in the file.
-
-/***********************************************************************
- *                                                                     *
- * Copyright (c) David L. Mills 1992-2000                              *
- *                                                                     *
- * Permission to use, copy, modify, and distribute this software and   *
- * its documentation for any purpose and without fee is hereby         *
- * granted, provided that the above copyright notice appears in all    *
- * copies and that both the copyright notice and this permission       *
- * notice appear in supporting documentation, and that the name        *
- * University of Delaware not be used in advertising or publicity      *
- * pertaining to distribution of the software without specific,        *
- * written prior permission. The University of Delaware makes no       *
- * representations about the suitability this software for any         *
- * purpose. It is provided "as is" without express or implied          *
- * warranty.                                                           *
- *                                                                     *
- ***********************************************************************
- */
+***********************************************************************
+*                                                                     *
+* Copyright (c) David L. Mills 1992-2001                              *
+*                                                                     *
+* Permission to use, copy, modify, and distribute this software and   *
+* its documentation for any purpose and without fee is hereby         *
+* granted, provided that the above copyright notice appears in all    *
+* copies and that both the copyright notice and this permission       *
+* notice appear in supporting documentation, and that the name        *
+* University of Delaware not be used in advertising or publicity      *
+* pertaining to distribution of the software without specific,        *
+* written prior permission. The University of Delaware makes no       *
+* representations about the suitability this software for any         *
+* purpose. It is provided "as is" without express or implied          *
+* warranty.                                                           *
+*                                                                     *
+***********************************************************************
 
    The following individuals contributed in part to the Network Time
    Protocol Distribution Version 4 and are acknowledged as authors of
@@ -107,7 +105,7 @@ This file is automatically generated from html/copyright.htm
        validated HTML documents according to the HTML DTD
      _________________________________________________________________
    
-   [50]Home
+   [50][home.gif] 
    
    
     [51]David L. Mills <mills@udel.edu>
@@ -163,5 +161,5 @@ References
   47. mailto:tsuruoka@nc.fukuoka-u.ac.jp
   48. mailto:vixie@vix.com
   49. mailto:Ulrich.Windl@rz.uni-regensburg.de
-  50. file://localhost/backroom/ntp4+/html/index.htm
+  50. file://localhost/backroom/ntp4/html/index.htm
   51. mailto:mills@udel.edu
index 53c310ad36947a1aac1127eba0c674bedb945401..d807823dfc21293d74e49cd62eb2d17f7ac11c44 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,54 @@
+2001-01-01  Harlan Stenn  <stenn@whimsy.udel.edu>
+
+       * html/pic/wingdorothy.gif:
+       * html/pic/bustardfly.gif:
+       * html/pic/boom3a.gif:
+       * html/pic/tonea.gif:
+       * html/pic/stack1a.jpg:
+       * html/pic/pogoa.gif:
+       * html/pic/pogo8.gif:
+       * html/pic/pogo6.gif:
+       * html/pic/pogo5.gif:
+       * html/pic/pogo4.gif:
+       * html/pic/pogo3.gif:
+       * html/pic/pogo1.gif:
+       * html/pic/oz2.gif:
+       * html/pic/flatheads.gif:
+       * html/pic/boom4.gif:
+       * html/pic/boom3.gif:
+       * html/pic/appletree.gif:
+       * html/pic/alice51.gif:
+       * html/pic/alice44.gif:
+       * html/pic/alice35.gif:
+       * html/pic/alice31.gif:
+       * html/pic/alice15b.gif:
+       * html/pic/alice13.gif:
+       * html/pic/alice11.gif:
+       * html/release.htm:
+       * html/rdebug.htm:
+       * html/prefer.htm:
+       * html/porting.htm:
+       * html/ntptrace.htm:
+       * html/ntpq.htm:
+       * html/ntpdate.htm:
+       * html/monopt.htm:
+       * html/kernpps.htm:
+       * html/index.htm:
+       * html/hints.htm:
+       * html/gadget.htm:
+       * html/driver7.htm:
+       * html/copyright.htm:
+       * html/config.htm:
+       * html/build.htm:
+       * html/authopt.htm:
+       * html/assoc.htm:
+       * html/accopt.htm: 
+       Cleanup from Dave Mills.
+
 2000-12-30  Harlan Stenn  <stenn@whimsy.udel.edu>
 
+       * configure.in: 4.0.99k13
+
        * ntpd/refclock_wwv.c (wwv_start): Call audio_init with DEVICE_AUDIO.
        * ntpd/refclock_irig.c (irig_start): Call audio_init with DEVICE_AUDIO.
        * ntpd/refclock_chu.c: Documentation cleanup.
index 96ac4133c7a54d642e0e30e103acaa23b976ff71..d673d86318ddb4e5dc3a5fd6245bb3c3b8c23a1a 100755 (executable)
--- a/configure
+++ b/configure
@@ -1181,7 +1181,7 @@ fi
 # Define the identity of the package.
 PACKAGE=ntp
 
-VERSION=4.0.99k12
+VERSION=4.0.99k13
 
 cat >>confdefs.h <<EOF
 #define PACKAGE "$PACKAGE"
index 762a21ce62b0d1264693a0e8d732a4f218f74774..78583f69cda7779f28e632ee6f5959e7795bc638 100644 (file)
@@ -5,7 +5,7 @@ AC_CANONICAL_SYSTEM
 AC_DEFINE_UNQUOTED(STR_SYSTEM, "$target")
 AM_CONFIG_HEADER(config.h)
 AC_ARG_PROGRAM
-AM_INIT_AUTOMAKE(ntp, 4.0.99k12)
+AM_INIT_AUTOMAKE(ntp, 4.0.99k13)
 AC_PREREQ(2.49)
 
 ac_cv_var_oncore_ok=no
index e543cd6ff6cd4faf7a3682498a76080eacfad715..4089ddefe20f8e15995bd54beb2a977a3c677998 100755 (executable)
@@ -1,6 +1,8 @@
 #! /bin/sh
 
 BUILD_ARGS="$@"
+PARSE="--enable-parse-clocks"
+#PARSE=
 
 # * baldwin        sparc-sun-solaris2.7
 #   bridgeport     sparc-sun-solaris2.6
@@ -28,7 +30,7 @@ esac
 for i in $LIST
 do
     echo $i
-    ssh $i "cd $c_d ; ./build $SIG --enable-parse-clocks $BUILD_ARGS" &
-    ssh $i "cd $c_d ; ./build $SIG --enable-parse-clocks --with-crypto=autokey $BUILD_ARGS" &
-    ssh $i "cd $c_d ; ./build $SIG --enable-parse-clocks --without-crypto $BUILD_ARGS" &
+    ssh $i "cd $c_d ; ./build $SIG $PARSE $BUILD_ARGS" &
+    ssh $i "cd $c_d ; ./build $SIG $PARSE --with-crypto=autokey $BUILD_ARGS" &
+    ssh $i "cd $c_d ; ./build $SIG $PARSE --without-crypto $BUILD_ARGS" &
 done
index 55d2d5eb0d6008994b98623b056137ffe9fd7516..0009592e2aa5a812ed02216664e36c630bc14cbe 100644 (file)
@@ -2,7 +2,12 @@
 Access Control Options
 </TITLE></HEAD><BODY><H3>
 Access Control Options
-</H3><HR>
+</H3>
+
+<img align=left src=pic/pogo6.gif><a href=http://www.eecis.udel.edu/~mills/pictures.htm>from <i>Pogo</i>, Walt Kelly</a>
+
+<p>The skunk watches for intruders and sprays.
+<br clear=left><hr>
 
 <H4>Access Control Support</H4>
 
index 2d7f52989f96ea32b65f8f11554eb23ff48590bd..b8ac68fdf347048b40af386bd5c6ef400501c72e 100644 (file)
@@ -2,11 +2,17 @@
 Association Management
 </title></head><body><h3>
 Association Management
-</h3><hr>
+</h3>
+
+<img align=left src=pic/alice51.gif><a href=http://www.eecis.udel.edu/~mills/pictures.htm>
+from <i>Alice's Adventures in Wonderland</i>, Lewis Carroll</a>
+
+<p>Make sure who your friends are.
+<br clear=left><hr>
 
 <h4>Association Modes</h4>
 
-<p>NTP Version 4 (NTPv4) incorporates new features and refinements to the NTP Version 3 (NTPv3) algorithms; however, it continues the tradition of backwards compatibility with older versions. A number of new operating modes for automatic server discovery and improved accuracy in occasionally connected networks are provided. Following is an overview of the new features; additional information is available on the <a href=confopt.htm>Configuration Options</a> and <a href=authopt.htm>Authentication Options</a> pages and in the papers, reports, memoranda and briefings at www.ntp.org.
+<p>NTP Version 4 (NTPv4) incorporates new features and refinements to the NTP Version 3 (NTPv3) algorithms; however, it continues the tradition of backwards compatibility with older versions. A number of new operating modes for automatic server discovery and improved accuracy in occasionally connected networks are provided. Following is an overview of the new features; additional information is available on the <a href=confopt.htm>Configuration Options</a> and <a href=authopt.htm>Authentication Options</a> pages and in the papers, reports, memoranda and briefings at <a href=http://www.ntp.org>www.ntp.org</a>.
 
 <p>There are two types of associations: persistent associations, which result from configuration file commands, and ephemeral associations, which result from protocol operations described below. A persistent association is never demobilized, although it may become dormant when the associated server becomes unreachable. An ephemeral association is mobilized when a message arrives from a server; for instance, a symmetric passive association is mobilized upon arrival of a symmetric active message. A broadcast client association is mobilized upon arrival of a broadcast server message, while a manycast client association is mobilized upon arrival of a manycast server message.
 
index 5df5570e482c427dc081f1902a93c7e9d6e8743c..48f7fd44580d40adb275defcbca104c8c0d07c35 100644 (file)
@@ -2,7 +2,12 @@
 Reference Clock Audio Drivers
 </title></head><body><h3>
 Reference Clock Audio Drivers
-</h3><hr>
+</h3>
+
+<img align=left src=pic/radio2.jpg>
+
+<p>Make a little noise here.
+<br clear=left><hr>
 
 <p>There are some applications in which the computer time can be
 disciplined to an audio signal, rather than a serial timecode and
index 8e86ed2a61f33b2ffbdc93cdf4a1b9c6d7f62325..c485613bba8cf97305839cd2086e67fb174abe74 100644 (file)
@@ -2,7 +2,13 @@
 Authentication Options
 </title></head><body><h3>
 Authentication Options
-</h3><hr>
+</h3>
+
+<img align=left src=pic/alice44.gif><a href=http://www.eecis.udel.edu/~mills/pictures.htm>
+from <i>Alice's Adventures in Wonderland</i>, Lewis Carroll</a>
+
+<p>Our resident cryptographer; now you see him, now you don't.
+<br clear=left><hr>
 
 <h4>Authentication Support</h4>
 
index dd4024e8c56b46cc987618b7629c4e25a159e84f..7f621d35550000fc276521d750f478a0c9f0d562 100644 (file)
@@ -3,8 +3,9 @@ Protocol Conformance Statement
 </title></head><body><h3>
 Protocol Conformance Statement
 </h3>
-<BR><IMG align=left SRC="pic/flatheads.gif">From <i>The
-Wizard of Oz</i>, L. Frank Baum
+
+<img align=left src=pic/flatheads.gif><a href=http://www.eecis.udel.edu/~mills/pictures.htm>From <i>The
+Wizard of Oz</i>, L. Frank Baum</a>
 
 <p>Say it three times and it must be right.
 <br clear=left>
@@ -12,9 +13,7 @@ Wizard of Oz</i>, L. Frank Baum
 
 <p>The Network Time Protocol (NTP) is used to synchronize the time of a computer client or server to another server or reference time source, such as a radio or satellite receiver or modem. It provides accuracies typically within a millisecond on LANs up to a few tens of milliseconds on WANs relative to Coordinated Universal Time (UTC), as provided by a Global Positioning Service (GPS) receiver, for example. Typical NTP configurations utilize multiple redundant servers and diverse network paths, in order to achieve high accuracy and reliability. Some configurations include cryptographic authentication to prevent accidental or malicious protocol attacks.
 
-<p>Information on the NTP architecture, protocol and algorithms can be found in the following articles and reports, which are available online. General issues of the concepts and facilities assumed by NTP are discussed in tHe <a href=exec.htm>Executive Summary - Computer Network Time Synchronization</a> page, while issues related to the NTP timescale and pending century are discussed in the <a href=y2k.htm> Network Time Protocol Year 2000 Conformance Statement</a> page, both of which are included in this software distribution.
-
-<p>Note that network timekeeping technology continues to advance and may obsolete some of the following documents. For a current list of all papers, reports, briefings and other documents relevant to the NTP community, see the <a href=http://www.eecis.udel.edu/~mills>David L. Mills</a> web page. A historical perspective is available in
+<p>Information on the NTP architecture, protocol and algorithms can be found in the following articles and reports, which are available online. General issues of the concepts and facilities assumed by NTP are discussed in the <a href=exec.htm>Executive Summary - Computer Network Time Synchronization</a> page, while issues related to the NTP timescale and pending century are discussed in the <a href=y2k.htm> Network Time Protocol Year 2000 Conformance Statement</a> page, both of which are included in this software distribution. Network timekeeping technology continues to advance and may obsolete some of the following documents. For a current list of all papers, reports, briefings and other documents relevant to the NTP community, see the <a href=http://www.eecis.udel.edu/~mills>David L. Mills</a> web page. A historical perspective is available in
 
 <ul>
 
@@ -30,9 +29,7 @@ Wizard of Oz</i>, L. Frank Baum
 
 </ul>
 
-<p>The NTP specification and implementation has evolved over the last two decades to the current Version 4 of the protocol. This version includes significant enhancements in accuracy and reliability, as determined by experience in an estimated total of well over 100,000 clients and servers in the Internet, while retaining backward compatibility with previous versions.
-
-<p>This software distribution contains an implementation of the NTP Version 4 architecture, protocol and algorithms. While a formal specification of this version is not yet available, this version is fully compliant with the previous NTP Version 3 specification and implementation defined in
+<p>The NTP specification and implementation has evolved over the last two decades to the current Version 4 of the protocol. This version includes significant enhancements in accuracy and reliability, as determined by experience in an estimated total of well over 100,000 clients and servers in the Internet, while retaining backward compatibility with previous versions. This software distribution contains an implementation of the NTP Version 4 architecture, protocol and algorithms. While a formal specification of this version is not yet available, this version is fully compliant with the previous NTP Version 3 specification and implementation defined in
 <ul>
 
 <p><li>Mills, D.L. Network Time Protocol (Version 3) specification, implementation and analysis. Network Working Group Report RFC-1305, University of Delaware, March 1992, 113 pp. Abstract: <a
index 44b0391b6fcd479872dc1593c6ccf0a63a3f33d0..b818d710563ef2e42df79c56f44fd191dafa7439 100644 (file)
@@ -1,10 +1,10 @@
-<HTML><HEAD><TITLE>
+<html><head><title>
 Building and Installing the Distribution
-</TITLE></HEAD><BODY><H3>
+</title></head><body><h3>
 Building and Installing the Distribution
-</H3>
+</h3>
 
-<img align=left src=pic/beaver.gif>From <i>pogo</i>, Walt Kelly
+<img align=left src=pic/beaver.gif><a href=http://www.eecis.udel.edu/~mills/pictures.htm>from <i>Pogo</i>, Walt Kelly</a>
 
 <p>For putting out compiler fires.
 <br clear=left><hr>
index bad9b028da5bbeb4a25aba48b9511bfaec9caecd..18773f032e959ef39c7c2a377742ac40ef1d554f 100644 (file)
@@ -2,7 +2,12 @@
 Reference Clock Options
 </title></head><body><h3>
 Reference Clock Options
-</h3><hr>
+</h3>
+
+<img align=left src=pic/boom4.gif><a href=http://www.eecis.udel.edu/~mills/pictures.htm>from <i>Pogo</i>, Walt Kelly</a>
+
+<p>See the radios, all in a row.
+<br clear=left><hr>
 
 <h4>Reference Clock Support</h4>
 
index f8606f2fc8b714845d615832c6051d5b30c5cc24..a4c2d8659d7642abfbaf48a42fd4976d8b90a5c6 100644 (file)
@@ -1,11 +1,13 @@
-<HTML><HEAD><TITLE>
+<html><head><title>
 Configuration Options
-</TITLE></HEAD><BODY><H3>
+</title></head><body><h3>
 Configuration Options
-</H3>
+</h3>
 
-<IMG align=left SRC="pic/pogo3a.gif">From <i>pogo</i>, Walt Kelly
-<BR clear=left><HR>
+<img align=left src=pic/pogo3a.gif><a href=http://www.eecis.udel.edu/~mills/pictures.htm>from <i>Pogo</i>, Walt Kelly</a>
+
+<p>Gnu autoconfigure tools are in the backpack.
+<br clear=left><hr>
 
 <H4>Basic Configuration Options - the <TT>configure</TT> utility</H4>
 
index 79c34222d831bc2557907f18486628b774719b29..fdeacff2d433976f025db4ceadb8c79d4bc1dabe 100644 (file)
@@ -2,7 +2,12 @@
 Configuration Options
 </title></head><body><h3>
 Configuration Options
-</h3><hr>
+</h3>
+
+<img align=left src=pic/boom3a.gif><a href=http://www.eecis.udel.edu/~mills/pictures.htm>from <i>Pogo</i>, Walt Kelly</a>
+
+<p>The chicken is getting configuration advice.
+<br clear=left><hr>
 
 <h4>Configuration Support</h4>
 
index 7c2da14d1d1bd5bd5871a6d7c1b4386c6b3d5711..d552bc535eaab59a21e36ad574e574c1d6bee976 100644 (file)
-<html><head>
-<title>Copyright Notice</title>
-</head>
-<body>
+<html><head><title>
+Copyright Notice
+</title></head><body><h3>
+Copyright Notice
+</h3>
 
-<h3>Copyright Notice</h3>
-
-<IMG align=left HEIGHT=264 WIDTH=206 SRC="pic/sheepb.jpg" ALT="[Dolly the sheep]">"Clone
-me," says Dolly sheepishly
+<img align=left src=pic/sheepb.jpg>"Clone me," says Dolly sheepishly
 <br clear=left><hr>
 
-<P>The following copyright notice applies to all files collectively
-called the Network Time Protocol Version 4 Distribution. Unless
-specifically declared otherwise in an individual file, this notice
-applies as if the text was explicitly included in the file.
+<P>The following copyright notice applies to all files collectively called the Network Time Protocol Version 4 Distribution. Unless specifically declared otherwise in an individual file, this notice applies as if the text was explicitly included in the file.
 <br>
 
-<PRE>
-/***********************************************************************
- *                                                                     *
- * Copyright (c) David L. Mills 1992-2000                              *
- *                                                                     *
- * Permission to use, copy, modify, and distribute this software and   *
- * its documentation for any purpose and without fee is hereby         *
- * granted, provided that the above copyright notice appears in all    *
- * copies and that both the copyright notice and this permission       *
- * notice appear in supporting documentation, and that the name        *
- * University of Delaware not be used in advertising or publicity      *
- * pertaining to distribution of the software without specific,        *
- * written prior permission. The University of Delaware makes no       *
- * representations about the suitability this software for any         *
- * purpose. It is provided "as is" without express or implied          *
- * warranty.                                                           *
- *                                                                     *
- ***********************************************************************
- */
-</PRE>
-
-The following individuals contributed in part to the Network Time
-Protocol Distribution Version 4 and are acknowledged as authors of this
-work.
-
-<OL>
-
-<LI><A HREF="mailto: marka@syd.dms.csiro.au">Mark Andrews
-&lt;marka@syd.dms.csiro.au&gt;</a> Leitch atomic clock controller</LI>
-
-<LI><A HREF="mailto: vbais@mailman1.intel.co">Viraj Bais
-&lt;vbais@mailman1.intel.com&gt;</a> and <A HREF="mailto:
+<pre>
+***********************************************************************
+*                                                                     *
+* Copyright (c) David L. Mills 1992-2001                              *
+*                                                                     *
+* Permission to use, copy, modify, and distribute this software and   *
+* its documentation for any purpose and without fee is hereby         *
+* granted, provided that the above copyright notice appears in all    *
+* copies and that both the copyright notice and this permission       *
+* notice appear in supporting documentation, and that the name        *
+* University of Delaware not be used in advertising or publicity      *
+* pertaining to distribution of the software without specific,        *
+* written prior permission. The University of Delaware makes no       *
+* representations about the suitability this software for any         *
+* purpose. It is provided "as is" without express or implied          *
+* warranty.                                                           *
+*                                                                     *
+***********************************************************************
+</pre>
+
+The following individuals contributed in part to the Network Time Protocol Distribution Version 4 and are acknowledged as authors of this work.
+
+<ol>
+
+<li><A HREF="mailto: marka@syd.dms.csiro.au">Mark Andrews &lt;marka@syd.dms.csiro.au&gt;</a> Leitch atomic clock controller</li>
+
+<li><A HREF="mailto: vbais@mailman1.intel.co">Viraj Bais &lt;vbais@mailman1.intel.com&gt;</a> and <A HREF="mailto:
 kirkwood@striderfm.intel.com">Clayton Kirkwood
-&lt;kirkwood@striderfm.intel.com&gt;</a> port to WindowsNT 3.5</LI>
+&lt;kirkwood@striderfm.intel.com&gt;</a> port to WindowsNT 3.5</li>
 
-<LI><A HREF="mailto: michael.barone@lmco.com">Michael Barone
-&lt;michael,barone@lmco.com&gt;</a> GPSVME fixes</LI>
+<li><A HREF="mailto: michael.barone@lmco.com">Michael Barone &lt;michael,barone@lmco.com&gt;</a> GPSVME fixes</li>
 
-<LI><A HREF="mailto: karl@owl.HQ.ileaf.com">Karl Berry
-&lt;karl@owl.HQ.ileaf.com&gt;</a> syslog to file option</LI>
+<li><A HREF="mailto: karl@owl.HQ.ileaf.com">Karl Berry &lt;karl@owl.HQ.ileaf.com&gt;</a> syslog to file option</li>
 
-<LI><A HREF="mailto: greg.brackley@bigfoot.com">Greg Brackley
-&lt;greg.brackley@bigfoot.com&gt;</a> Major rework of WINNT port. Clean
-up recvbuf and iosignal code into separate modules.</LI>
+<li><A HREF="mailto: greg.brackley@bigfoot.com">Greg Brackley &lt;greg.brackley@bigfoot.com&gt;</a> Major rework of WINNT port. Clean up recvbuf and iosignal code into separate modules.</li>
 
-<LI><A HREF="mailto: Marc.Brett@westgeo.com">Marc Brett
-&lt;Marc.Brett@westgeo.com&gt;</a> Magnavox GPS clock driver</LI>
+<li><A HREF="mailto: Marc.Brett@westgeo.com">Marc Brett &lt;Marc.Brett@westgeo.com&gt;</a> Magnavox GPS clock driver</li>
 
-<LI><A HREF="mailto: Piete.Brooks@cl.cam.ac.uk">Piete Brooks
-&lt;Piete.Brooks@cl.cam.ac.uk&gt;</a> MSF clock driver, Trimble PARSE
-support</LI>
+<li><A HREF="mailto: Piete.Brooks@cl.cam.ac.uk">Piete Brooks &lt;Piete.Brooks@cl.cam.ac.uk&gt;</a> MSF clock driver, Trimble PARSE support</li>
 
-<LI><A HREF="mailto: clift@ml.csiro.au">Steve Clift
-&lt;clift@ml.csiro.au&gt;</a> OMEGA clock driver</LI>
+<li><A HREF="mailto: clift@ml.csiro.au">Steve Clift &lt;clift@ml.csiro.au&gt;</a> OMEGA clock driver</li>
 
-<LI><A HREF="mailto:casey@csc.co.za">Casey Crellin
-&lt;casey@csc.co.za&gt;</a> vxWorks (Tornado) port and help with target
-configuration</LI>
+<li><A HREF="mailto:casey@csc.co.za">Casey Crellin &lt;casey@csc.co.za&gt;</a> vxWorks (Tornado) port and help with target configuration</li>
 
-<LI><A HREF="mailto: Sven_Dietrich@trimble.COM">Sven Dietrich
-&lt;sven_dietrich@trimble.com&gt;</a> Palisade reference clock driver,
-NT adj. residuals, integrated Greg's Winnt port.</LI>
+<li><A HREF="mailto: Sven_Dietrich@trimble.COM">Sven Dietrich &lt;sven_dietrich@trimble.com&gt;</a> Palisade reference clock driver, NT adj. residuals, integrated Greg's Winnt port.</li>
 
-<LI><A HREF="mailto: dundas@salt.jpl.nasa.gov">John A. Dundas III
-&lt;dundas@salt.jpl.nasa.gov&gt;</a> Apple A/UX port</LI>
+<li><A HREF="mailto: dundas@salt.jpl.nasa.gov">John A. Dundas III &lt;dundas@salt.jpl.nasa.gov&gt;</a> Apple A/UX port</li>
 
-<LI><A HREF="mailto: duwe@immd4.informatik.uni-erlangen.de">Torsten Duwe
-&lt;duwe@immd4.informatik.uni-erlangen.de&gt;</a> Linux port</LI>
+<li><A HREF="mailto: duwe@immd4.informatik.uni-erlangen.de">Torsten Duwe &lt;duwe@immd4.informatik.uni-erlangen.de&gt;</a> Linux port</li>
 
-<LI><A HREF="mailto: dennis@mrbill.canet.ca">Dennis Ferguson
-&lt;dennis@mrbill.canet.ca&gt;</a> foundation code for NTP Version 2 as
-specified in RFC-1119</LI>
+<li><A HREF="mailto: dennis@mrbill.canet.ca">Dennis Ferguson
+&lt;dennis@mrbill.canet.ca&gt;</a> foundation code for NTP Version 2 as specified in RFC-1119</li>
 
-<LI><A HREF="mailto: glenn@herald.usask.ca">Glenn Hollinger
-&lt;glenn@herald.usask.ca&gt;</a> GOES clock driver</LI>
+<li><A HREF="mailto: glenn@herald.usask.ca">Glenn Hollinger &lt;glenn@herald.usask.ca&gt;</a> GOES clock driver</li>
 
-<LI><A HREF="mailto: iglesias@uci.edu">Mike Iglesias
-&lt;iglesias@uci.edu&gt;</a> DEC Alpha port</LI>
+<li><A HREF="mailto: iglesias@uci.edu">Mike Iglesias &lt;iglesias@uci.edu&gt;</a> DEC Alpha port</li>
 
-<LI><A HREF="mailto: jagubox.gsfc.nasa.gov">Jim Jagielski
-&lt;jim@jagubox.gsfc.nasa.gov&gt;</a> A/UX port</LI>
+<li><A HREF="mailto: jagubox.gsfc.nasa.gov">Jim Jagielski &lt;jim@jagubox.gsfc.nasa.gov&gt;</a> A/UX port</li>
 
-<LI><A HREF="mailto: jbj@chatham.usdesign.com">Jeff Johnson
-&lt;jbj@chatham.usdesign.com&gt;</a> massive prototyping overhaul</LI>
+<li><A HREF="mailto: jbj@chatham.usdesign.com">Jeff Johnson &lt;jbj@chatham.usdesign.com&gt;</a> massive prototyping overhaul</li>
 
-<LI><A HREF="mailto: jones@hermes.chpc.utexas.edu">William L. Jones
-&lt;jones@hermes.chpc.utexas.edu&gt;</a> RS/6000 AIX modifications, HPUX
-modifications</LI>
+<li><A HREF="mailto: jones@hermes.chpc.utexas.edu">William L. Jones &lt;jones@hermes.chpc.utexas.edu&gt;</a> RS/6000 AIX modifications, HPUX modifications</li>
 
-<LI><A HREF="mailto:Hans.Lambermont@nl.origin-it.com">Hans Lambermont
-&lt;Hans.Lambermont@nl.origin-it.com&gt;</A> or <A
-HREF="mailto:H.Lambermont@chello.nl">&lt;H.Lambermont@chello.nl&gt;</A>
-ntpsweep</LI>
+<li><A HREF="mailto:Hans.Lambermont@nl.origin-it.com">Hans Lambermont &lt;Hans.Lambermont@nl.origin-it.com&gt;</A> or <A
+HREF="mailto:H.Lambermont@chello.nl">&lt;H.Lambermont@chello.nl&gt;</A> ntpsweep</li>
 
-<LI><A HREF="http://www4.informatik.uni-erlangen.de/~kardel">Frank
-Kardel</A> <A HREF="mailto: Frank.Kardel@informatik.uni-erlangen.de">
-&lt;Frank.Kardel@informatik.uni-erlangen.de&gt;</a> PARSE
-&lt;GENERIC&gt; driver (14 reference clocks), STREAMS modules for PARSE,
-support scripts, syslog cleanup</LI>
+<li><A HREF="http://www4.informatik.uni-erlangen.de/~kardel">Frank Kardel</A> <A HREF="mailto: Frank.Kardel@informatik.uni-erlangen.de"> &lt;Frank.Kardel@informatik.uni-erlangen.de&gt;</a> PARSE &lt;GENERIC&gt; driver (14 reference clocks), STREAMS modules for PARSE, support scripts, syslog cleanup</li>
 
-<LI><A HREF="mailto: dkatz@cisco.com">Dave Katz
-&lt;dkatz@cisco.com&gt;</a> RS/6000 AIX port</LI>
+<li><A HREF="mailto: dkatz@cisco.com">Dave Katz &lt;dkatz@cisco.com&gt;</a> RS/6000 AIX port</li>
 
-<LI><A HREF="mailto: leres@ee.lbl.gov">Craig Leres
-&lt;leres@ee.lbl.gov&gt;</a> 4.4BSD port, ppsclock, Magnavox GPS clock
-driver</LI>
+<li><A HREF="mailto: leres@ee.lbl.gov">Craig Leres
+&lt;leres@ee.lbl.gov&gt;</a> 4.4BSD port, ppsclock, Magnavox GPS clock driver</li>
 
-<LI><A HREF="mailto: lindholm@ucs.ubc.ca">George Lindholm
-&lt;lindholm@ucs.ubc.ca&gt;</a> SunOS 5.1 port</LI>
+<li><A HREF="mailto: lindholm@ucs.ubc.ca">George Lindholm &lt;lindholm@ucs.ubc.ca&gt;</a> SunOS 5.1 port</li>
 
-<LI><A HREF="mailto: louie@ni.umd.edu">Louis A. Mamakos
-&lt;louie@ni.umd.edu&gt;</a> MD5-based authentication</LI>
+<li><A HREF="mailto: louie@ni.umd.edu">Louis A. Mamakos &lt;louie@ni.umd.edu&gt;</a> MD5-based authentication</li>
 
-<LI><A HREF="mailto: thorinn@diku.dk">Lars H. Mathiesen
-&lt;thorinn@diku.dk&gt;</a> adaptation of foundation code for Version 3
-as specified in RFC-1305</LI>
+<li><A HREF="mailto: thorinn@diku.dk">Lars H. Mathiesen &lt;thorinn@diku.dk&gt;</a> adaptation of foundation code for Version 3 as specified in RFC-1305</li>
 
-<LI><A HREF="mailto: mills@udel.edu">David L. Mills
-&lt;mills@udel.edu&gt;</a> Version 4 foundation: clock discipline,
-authentication, precision kernel; clock drivers: Spectracom, Austron,
-Arbiter, Heath, ATOM, ACTS, KSI/Odetics; audio clock drivers: CHU,
-WWV/H, IRIG</LI>
+<li><A HREF="mailto: mills@udel.edu">David L. Mills &lt;mills@udel.edu&gt;</a> Version 4 foundation: clock discipline, authentication, precision kernel; clock drivers: Spectracom, Austron, Arbiter, Heath, ATOM, ACTS, KSI/Odetics; audio clock drivers: CHU, WWV/H, IRIG</li>
 
-<LI><A HREF="mailto: moeller@gwdgv1.dnet.gwdg.de">Wolfgang Moeller
-&lt;moeller@gwdgv1.dnet.gwdg.de&gt;</a> VMS port</LI>
+<li><A HREF="mailto: moeller@gwdgv1.dnet.gwdg.de">Wolfgang Moeller &lt;moeller@gwdgv1.dnet.gwdg.de&gt;</a> VMS port</li>
 
-<LI><A HREF="mailto: mogul@pa.dec.com">Jeffrey Mogul
-&lt;mogul@pa.dec.com&gt;</a> ntptrace utility</LI>
+<li><A HREF="mailto: mogul@pa.dec.com">Jeffrey Mogul &lt;mogul@pa.dec.com&gt;</a> ntptrace utility</li>
 
-<LI><A HREF="mailto: tmoore@fievel.daytonoh.ncr.com">Tom Moore
-&lt;tmoore@fievel.daytonoh.ncr.com&gt;</a> i386 svr4 port</LI>
+<li><A HREF="mailto: tmoore@fievel.daytonoh.ncr.com">Tom Moore &lt;tmoore@fievel.daytonoh.ncr.com&gt;</a> i386 svr4 port</li>
 
-<LI><A HREF="mailto: kamal@whence.com">Kamal A Mostafa
-&lt;kamal@whence.com&gt;</a> SCO OpenServer port</LI>
+<li><A HREF="mailto: kamal@whence.com">Kamal A Mostafa &lt;kamal@whence.com&gt;</a> SCO OpenServer port</li>
 
-<LI><A HREF="mailto: derek@toybox.demon.co.uk">Derek Mulcahy
-&lt;derek@toybox.demon.co.uk&gt;</a> and <A HREF="mailto:
-d@hd.org">Damon Hart-Davis &lt;d@hd.org&gt;</a> ARCRON MSF clock
-driver</LI>
+<li><A HREF="mailto: derek@toybox.demon.co.uk">Derek Mulcahy &lt;derek@toybox.demon.co.uk&gt;</a> and <A HREF="mailto: d@hd.org">Damon Hart-Davis &lt;d@hd.org&gt;</a> ARCRON MSF clock driver</li>
 
-<LI><A HREF="mailto: Rainer.Pruy@informatik.uni-erlangen.de">Rainer Pruy
-&lt;Rainer.Pruy@informatik.uni-erlangen.de&gt;</a> monitoring/trap
-scripts, statistics file handling</LI>
+<li><A HREF="mailto: Rainer.Pruy@informatik.uni-erlangen.de">Rainer Pruy &lt;Rainer.Pruy@informatik.uni-erlangen.de&gt;</a> monitoring/trap scripts, statistics file handling</li>
 
-<LI><A HREF="mailto: dirce@zk3.dec.com">Dirce Richards
-&lt;dirce@zk3.dec.com&gt;</a> Digital UNIX V4.0 port</LI>
+<li><A HREF="mailto: dirce@zk3.dec.com">Dirce Richards &lt;dirce@zk3.dec.com&gt;</a> Digital UNIX V4.0 port</li>
 
-<LI><A HREF="mailto: wsanchez@apple.com">Wilfredo S&aacute;nchez
-&lt;wsanchez@apple.com&gt;</A> added support for NetInfo</LI>
+<li><A HREF="mailto: wsanchez@apple.com">Wilfredo S&aacute;nchez &lt;wsanchez@apple.com&gt;</A> added support for NetInfo</li>
 
-<LI><A HREF="mailto: mrapple@quack.kfu.com">Nick Sayer
-&lt;mrapple@quack.kfu.com&gt;</a> SunOS streams modules</LI>
+<li><A HREF="mailto: mrapple@quack.kfu.com">Nick Sayer &lt;mrapple@quack.kfu.com&gt;</a> SunOS streams modules</li>
 
-<LI><A HREF="mailto: jack@innovativeinternet.com">Jack Sasportas
-&lt;jack@innovativeinternet.com&gt;</A> Saved a Lot of space on the
-stuff in the html/pic/ subdirectory</LI>
+<li><A HREF="mailto: jack@innovativeinternet.com">Jack Sasportas &lt;jack@innovativeinternet.com&gt;</A> Saved a Lot of space on the stuff in the html/pic/ subdirectory</li>
 
-<LI><A HREF="mailto: schnitz@unipress.com">Ray Schnitzler
-&lt;schnitz@unipress.com&gt;</a> Unixware1 port</LI>
+<li><A HREF="mailto: schnitz@unipress.com">Ray Schnitzler &lt;schnitz@unipress.com&gt;</a> Unixware1 port</li>
 
-<LI><A HREF="mailto: shields@tembel.org">Michael Shields
-&lt;shields@tembel.org&gt;</a> USNO clock driver</LI>
+<li><A HREF="mailto: shields@tembel.org">Michael Shields &lt;shields@tembel.org&gt;</a> USNO clock driver</li>
 
-<LI><A HREF="mailto: pebbles.jpl.nasa.gov">Jeff Steinman
-&lt;jss@pebbles.jpl.nasa.gov&gt;</a> Datum PTS clock driver</LI>
+<li><A HREF="mailto: pebbles.jpl.nasa.gov">Jeff Steinman &lt;jss@pebbles.jpl.nasa.gov&gt;</a> Datum PTS clock driver</li>
 
-<LI><A HREF="mailto: harlan@pfcs.com">Harlan Stenn
-&lt;harlan@pfcs.com&gt;</a> GNU automake/autoconfigure makeover, various
-other bits (see the ChangeLog)</LI>
+<li><A HREF="mailto: harlan@pfcs.com">Harlan Stenn &lt;harlan@pfcs.com&gt;</a> GNU automake/autoconfigure makeover, various other bits (see the ChangeLog)</li>
 
-<LI><A HREF="mailto: ken@sdd.hp.com">Kenneth Stone
-&lt;ken@sdd.hp.com&gt;</a> HP-UX port</LI>
+<li><A HREF="mailto: ken@sdd.hp.com">Kenneth Stone &lt;ken@sdd.hp.com&gt;</a> HP-UX port</li>
 
-<LI><A HREF="mailto: ajit@ee.udel.edu">Ajit Thyagarajan
-&lt;ajit@ee.udel.edu&gt;</a>IP multicast/anycast support</LI>
+<li><A HREF="mailto: ajit@ee.udel.edu">Ajit Thyagarajan &lt;ajit@ee.udel.edu&gt;</a>IP multicast/anycast support</li>
 
-<LI><A HREF="mailto: tsuruoka@nc.fukuoka-u.ac.jp">Tomoaki TSURUOKA
-&lt;tsuruoka@nc.fukuoka-u.ac.jp&gt;</a>TRAK clock driver</LI>
+<li><A HREF="mailto: tsuruoka@nc.fukuoka-u.ac.jp">Tomoaki TSURUOKA &lt;tsuruoka@nc.fukuoka-u.ac.jp&gt;</a>TRAK clock driver</li>
 
-<LI><A HREF="mailto: vixie@vix.com">Paul A Vixie
-&lt;vixie@vix.com&gt;</a> TrueTime GPS driver, generic TrueTime clock
-driver</LI>
+<li><A HREF="mailto: vixie@vix.com">Paul A Vixie &lt;vixie@vix.com&gt;</a> TrueTime GPS driver, generic TrueTime clock driver</li>
 
-<LI><A HREF="mailto: Ulrich.Windl@rz.uni-regensburg.de">Ulrich Windl
-&lt;Ulrich.Windl@rz.uni-regensburg.de&gt;</a> corrected and validated
-HTML documents according to the HTML DTD</LI>
+<li><A HREF="mailto: Ulrich.Windl@rz.uni-regensburg.de">Ulrich Windl &lt;Ulrich.Windl@rz.uni-regensburg.de&gt;</a> corrected and validated HTML documents according to the HTML DTD</li>
 
-</OL>
+</ol>
 
-<hr>
-<a href=index.htm><img align=left src="pic/home.gif" 
-WIDTH=36 HEIGHT=24 ALT="Home"></a>
-<address>
-<a href="mailto:mills@udel.edu">David L. Mills &lt;mills@udel.edu&gt;</a>
-</address>
-</body>
-</html>
+<hr><a href=index.htm><img align=left src=pic/home.gif></a><address><a href=mailto:mills@udel.edu>David L. Mills &lt;mills@udel.edu&gt;</a></address></a></body></html>
index 92fb81e9dfad17cf11a4db05ba81552ed35a1fe6..40afd8845e33bfb4baad160a3306ebfc112a7fcb 100644 (file)
-<HTML><HEAD><TITLE>
+<html><head><title>
 NTP Debugging Techniques
-</TITLE></HEAD><BODY><H3>
+</title></head><body><h3>
 NTP Debugging Techniques
-</H3>
+</h3>
 
-<IMG align=left SRC="pic/pogo.gif"><I>Pogo Possum</I>, with toolkit
-and bug, Walt Kelly
+<img align=left src=pic/pogo.gif><a href=http://www.eecis.udel.edu/~mills/pictures.htm>from <i>Pogo</i>, Walt Kelly</a>
+
+<p>We make house calls and bring our own bugs.
 <br clear=left><hr>
 
-<p>Once the NTP software distribution has been compiled and installed
-and the configuration file constructed, the next step is to verify
-correct operation and fix any bugs that may result. Usually, the command
-line that starts the daemon is included in the system startup file, so
-it is executed only at system boot time; however, the daemon can be
-stopped and restarted from root at any time. Usually, no command-line
-arguments are required, unless special actions described in the
-<tt><A HREF="ntpd.htm">ntpd</A></tt> page are required. Once started,
-the daemon will begin sending and receiving messages, as specified in
-the configuration file.
+<p>Once the NTP software distribution has been compiled and installed and the configuration file constructed, the next step is to verify correct operation and fix any bugs that may result. Usually, the command line that starts the daemon is included in the system startup file, so it is executed only at system boot time; however, the daemon can be stopped and restarted from root at any time. Usually, no command-line arguments are required, unless special actions described in the <tt><A HREF="ntpd.htm">ntpd</A></tt> page are required. Once started, the daemon will begin sending and receiving messages, as specified in the configuration file.
 
 <h4>Initial Startup</h4>
 
-<p>The best way to verify correct operation is using the <tt><A
-HREF="ntpq.htm">ntpq</A></tt> and <tt><A HREF="ntpdc.htm">ntpdc</A></tt>
-utility programs, either on the server itself or from another machine
-elsewhere in the network. The <tt>ntpq</tt> program implements the
-management functions specified in Appendix A of the NTP specification <A
-HREF=
-"http://www.eecis.udel.edu/~mills/database/rfc/rfc1305/rfc1305c.ps">
-RFC-1305, Appendix A</A>. The <tt>ntpdc</tt> program implements
-additional functions not provided in the standard. Both programs can be
-used to inspect the state variables defined in the specification and, in
-the case of <tt>ntpdc</tt>, additional ones of interest. In addition,
-the <tt>ntpdc</tt> program can be used to selectively reconfigure and
-enable or disable some functions while the daemon is running.
-
-<p>In extreme cases with elusive bugs, the daemon can operate in two
-modes, depending on the presence of the <tt>-d</tt> command-line debug
-switch. If not present, the daemon detaches from the controlling
-terminal and proceeds autonomously. If one or more <tt>-d</tt> switches
-are present, the daemon does not detach and generates special output
-useful for debugging. In general, interpretation of this output requires
-reference to the sources. However, a single <tt>-d</tt> does produce
-only mildly cryptic output and can be very useful in finding problems
-with configuration and network troubles. With a little experience, the
-volume of output can be reduced by piping the output to <tt>grep
-</tt>and specifying the keyword of the trace you want to see.
-
-<p>Some problems are immediately apparent when the daemon first starts
-running. The most common of these are the lack of a UDP port for NTP
-(123) in the Unix <tt>/etc/services</tt> file. Note that NTP does not
-use TCP in any form. Other problems are apparent in the system log file.
-The log file should show the startup banner, some cryptic initialization
-data and the computed precision value. The next most common problem is
-incorrect DNS names. Check that each DNS name used in the configuration
-file responds to the Unix <tt>ping</tt> command.
-
-<p>When first started, the daemon normally polls the servers listed in
-the configuration file at 64-s intervals. In order to allow a sufficient
-number of samples for the NTP algorithms to reliably discriminate
-between correctly operating servers and possible intruders, at least
-four valid messages from the majority of servers and peers listed in the
-configuration file is required before the daemon can set the local
-clock. However, if the current system time is greater than 1000 s in
-error from the server times, the daemon will not set the local clock;
-instead, it will plant a message in the system log and shut down. It is
-necessary to set the local clock to within 1000 s first, either by a
-time-of-year hardware clock, by first using the <A
-HREF="ntpdate.htm"><tt>ntpdate</tt></A> program or manually be eyeball
-and wristwatch.
-
-<p>If the initial time error is less than 1000 s but greater than 125
-ms, the daemon will perform a step adjustment; otherwise, it will
-gradually slew the clock to the nominal time. However, if a step
-adjustment, the clock discipline algorithm will start all over again,
-requiring another round of at least four messages as before. This is
-necessary so that all servers and peers operate on the same set of time
-values.
-
-<p>If, as discussed later in this page, for some reason the hardware
-clock oscillator frequency error is relatively large, the time errors
-upon first startup of the daemon may increase over time until exceeding
-125 ms, which requires another step correction. However, due to
-provisions that reduce vulnerability to noise spikes, the second
-correction will not be done until 900 s have elapsed since the last
-adjustment. When the frequency error is very large, it may take a number
-of cycles like this until converging on the nominal frequency
-correction. After this, the correction is written to the
-<tt>ntp.drift</tt> file, which is read upon subsequent restarts, so the
-herky-jerky cycles should not recur.
+<p>The best way to verify correct operation is using the <tt><A HREF="ntpq.htm">ntpq</A></tt> and <tt><A HREF="ntpdc.htm">ntpdc</A></tt> utility programs, either on the server itself or from another machine elsewhere in the network. The <tt>ntpq</tt> program implements the management functions specified in the NTP specification <A HREF="http://www.eecis.udel.edu/~mills/database/rfc/rfc1305/rfc1305c.ps">
+RFC-1305, Appendix A</A>. The <tt>ntpdc</tt> program implements additional functions not provided in the standard. Both programs can be used to inspect the state variables defined in the specification and, in the case of <tt>ntpdc</tt>, additional ones of interest. In addition, the <tt>ntpdc</tt> program can be used to selectively reconfigure and enable or disable some functions while the daemon is running.
+
+<p>In extreme cases with elusive bugs, the daemon can operate in two modes, depending on the presence of the <tt>-d</tt> command-line debug switch. If not present, the daemon detaches from the controlling
+terminal and proceeds autonomously. If one or more <tt>-d</tt> switches are present, the daemon does not detach and generates special output useful for debugging. In general, interpretation of this output requires reference to the sources. However, a single <tt>-d</tt> does produce only mildly cryptic output and can be very useful in finding problems with configuration and network troubles. With a little experience, the volume of output can be reduced by piping the output to <tt>grep </tt>and specifying the keyword of the trace you want to see.
+
+<p>Some problems are immediately apparent when the daemon first starts running. The most common of these are the lack of a UDP port for NTP (123) in the Unix <tt>/etc/services</tt> file. Note that NTP does not use TCP in any form. Other problems are apparent in the system log file. The log file should show the startup banner, some cryptic initialization data and the computed precision value. The next most common problem is incorrect DNS names. Check that each DNS name used in the configuration file responds to the Unix <tt>ping</tt> command.
+
+<p>When first started, the daemon normally polls the servers listed in the configuration file at 64-s intervals. In order to allow a sufficient number of samples for the NTP algorithms to reliably discriminate between correctly operating servers and possible intruders, at least four valid messages from the majority of servers and peers listed in the configuration file is required before the daemon can set the local clock. However, if the current system time is greater than 1000 s in error from the server times, the daemon will not set the local clock; instead, it will plant a message in the system log and shut down. It is necessary to set the local clock to within 1000 s first, either by a time-of-year hardware clock, by first using the <A HREF="ntpdate.htm"><tt>ntpdate</tt></A> program or manually be eyeball and wristwatch.
+
+<p>If the initial time error is less than 1000 s but greater than 125 ms, the daemon will perform a step adjustment; otherwise, it will gradually slew the clock to the nominal time. However, if a step adjustment, the clock discipline algorithm will start all over again, requiring another round of at least four messages as before. This is necessary so that all servers and peers operate on the same set of time values.
+
+<p>If, as discussed later in this page, for some reason the hardware clock oscillator frequency error is relatively large, the time errors upon first startup of the daemon may increase over time until exceeding 125 ms, which requires another step correction. However, due to provisions that reduce vulnerability to noise spikes, the second correction will not be done until 900 s have elapsed since the last adjustment. When the frequency error is very large, it may take a number of cycles like this until converging on the nominal frequency correction. After this, the correction is written to the <tt>ntp.drift</tt> file, which is read upon subsequent restarts, so the herky-jerky cycles should not recur.
 
 <h4>Verifying Correct Operation</h4>
 
-<p>After starting the daemon, run the <tt>ntpq</tt> program using the
-<tt>-n</tt> switch, which will avoid possible distractions due to name
-resolution problems. Use the <tt>pe</tt> command to display a billboard
-showing the status of configured peers and possibly other clients poking
-the daemon. After operating for a few minutes, the display should be
-something like:
+<p>After starting the daemon, run the <tt>ntpq</tt> program using the <tt>-n</tt> switch, which will avoid possible distractions due to name resolution problems. Use the <tt>pe</tt> command to display a billboard showing the status of configured peers and possibly other clients poking the daemon. After operating for a few minutes, the display should be something like:
 
-<pre>ntpq> pe
+<p><pre>ntpq> pe
      remote      refid       st t when poll reach delay offset jitter
 =====================================================================
 -isipc6.cairn.ne .GPS1.        1 u  18  64  377  65.592 -5.891  0.044
@@ -108,33 +40,11 @@ something like:
 *pogo.udel.edu   .GPS1.        1 u  95 128  377   0.607  0.123  0.027
 </pre>
 
-<p>The host names or addresses shown in the <tt>remote</tt> column
-correspond to the server and peer entries listed in the configuration
-file; however, the DNS names might not agree if the names listed are not
-the canonical DNS names. The <tt>refid</tt> column shows the current
-source of synchronization, while the <tt>st</tt> column reveals the
-stratum, <tt>t</tt> the type (<tt>u</tt> = unicast, <tt>m</tt> =
-multicast, <tt>l</tt> = local, <tt>-</tt> = don't know), and
-<tt>poll</tt> the poll interval in seconds. The <tt>when</tt> column
-shows the time since the peer was last heard in seconds, while the
-<tt>reach</tt> column shows the status of the reachability register (see
-RFC-1305) in octal. The remaining entries show the latest delay, offset
-and jitter in milliseconds. Note that in NTP Version 4 what used to be
-the <tt>dispersion</tt> column has been replaced by the <tt>jitter</tt>
-column.
-
-<p>The tattletale symbol at the left margin displays the synchronization
-status of each peer. The currently selected peer is marked <tt>*</tt>,
-while additional peers designated acceptable for synchronization, but
-not currently selected, are marked <tt>+</tt>. Peers marked <tt>*</tt>
-and <tt>+</tt> are included in the weighted average computation to set
-the local clock; the data produced by peers marked with other symbols
-are discarded. See the <tt>ntpq</tt> page for the meaning of these
-symbols.
-
-<p>Additional details for each peer separately can be determined by the
-following procedure. First, use the <tt>as</tt> command to display an
-index of association identifiers, such as
+<p>The host names or addresses shown in the <tt>remote</tt> column correspond to the server and peer entries listed in the configuration file; however, the DNS names might not agree if the names listed are not the canonical DNS names. The <tt>refid</tt> column shows the current source of synchronization, while the <tt>st</tt> column reveals the stratum, <tt>t</tt> the type (<tt>u</tt> = unicast, <tt>m</tt> = multicast, <tt>l</tt> = local, <tt>-</tt> = don't know), and <tt>poll</tt> the poll interval in seconds. The <tt>when</tt> column shows the time since the peer was last heard in seconds, while the <tt>reach</tt> column shows the status of the reachability register (see RFC-1305) in octal. The remaining entries show the latest delay, offset and jitter in milliseconds. Note that in NTP Version 4 what used to be the <tt>dispersion</tt> column has been replaced by the <tt>jitter</tt> column.
+
+<p>The tattletale symbol at the left margin displays the synchronization status of each peer. The currently selected peer is marked <tt>*</tt>, while additional peers designated acceptable for synchronization, but not currently selected, are marked <tt>+</tt>. Peers marked <tt>*</tt> and <tt>+</tt> are included in the weighted average computation to set the local clock; the data produced by peers marked with other symbols are discarded. See the <tt>ntpq</tt> page for the meaning of these symbols.
+
+<p>Additional details for each peer separately can be determined by the following procedure. First, use the <tt>as</tt> command to display an index of association identifiers, such as
 
 <p><pre>ntpq> as
 ind assID status  conf reach auth condition  last_event cnt
@@ -145,13 +55,7 @@ ind assID status  conf reach auth condition  last_event cnt
   4 50255  f614   yes   yes   ok   sys.peer   reachable  1
 </pre>
 
-<p>Each line in this billboard is associated with the corresponding line
-in the <tt>pe</tt> billboard above. The <tt>assID</tt> shows the unique
-identifier for each mobilized association, while the <tt>status</tt>
-column shows the peer status word in hex, as defined in the NTP
-specification. Next, use the <tt>rv</tt> command and the respective
-<tt>assID</tt> identifier to display a detailed synopsis for the
-selected peer, such as
+<p>Each line in this billboard is associated with the corresponding line in the <tt>pe</tt> billboard above. The <tt>assID</tt> shows the unique identifier for each mobilized association, while the <tt>status</tt> column shows the peer status word in hex, as defined in the NTP specification. Next, use the <tt>rv</tt> command and the respective <tt>assID</tt> identifier to display a detailed synopsis for the selected peer, such as
 
 <p><pre>ntpq> rv 50253
 status=f414 reach, conf, auth, sel_candidat, 1 event, event_reach,
@@ -172,79 +76,22 @@ hcookie=0x61f99cdb, initsequence=61, initkey=0x287b649c,
 timestamp=3172053041
 </pre>
 
-<p>A detailed explanation of the fields in this billboard are beyond the
-scope of this discussion; however, most variables defined in the NTP
-Version 3 specification RFC-1305 are available along with others defined
-for NTP Version 4. This particular example was chosen to illustrate
-probably the most complex configuration involving symmetric modes and
-public-key cryptography. As the result of debugging experience, the
-names and values of these variables may change from time to time. An
-explanation of the current set is on the <tt>ntpq</tt> page.
-
-<p>A useful indicator of miscellaneous problems is the <tt>flash</tt>
-value, which reveals the state of the various sanity tests on incoming
-packets. There are currently eleven bits, one for each test, numbered
-from the right, which is for test 1. If the test fails, the
-corresponding bit is set to one and zero otherwise. If any bit is set
-following each processing step, the packet is discarded. The meaning of
-each test is described on the <tt>ntpq</tt> page.
-
-<p>The three lines identified as <tt>filtdelay</tt>, <tt>filtoffset</tt>
-and <tt>filtdisp</tt> reveal the roundtrip delay, clock offset and
-dispersion for each of the last eight measurement rounds, all in
-milliseconds. Note that the dispersion, which is an estimate of the
-error, increases as the age of the sample increases. From these data, it
-is usually possible to determine the incidence of severe packet loss,
-network congestion, and unstable local clock oscillators. There are no
-hard and fast rules here, since every case is unique; however, if one or
-more of the rounds show large values or change radically from one round
-to another, the network is probably congested or lossy.
-
-<p>Once the daemon has set the local clock, it will continuously track
-the discrepancy between local time and NTP time and adjust the local
-clock accordingly. There are two components of this adjustment, time and
-frequency. These adjustments are automatically determined by the clock
-discipline algorithm, which functions as a hybrid phase/frequency
-feedback loop. The behavior of this algorithm is carefully controlled to
-minimize residual errors due to network jitter and frequency variations
-of the local clock hardware oscillator that normally occur in practice.
-However, when started for the first time, the algorithm may take some
-time to converge on the intrinsic frequency error of the host machine.
-
-<p>The frequency tolerance of computer clock oscillators can vary
-widely, which can put a strain on the daemon's ability to compensate for
-the intrinsic frequency error. While the daemon can handle frequency
-errors up to 500 parts-per-million (PPM), or 43 seconds per day, values
-much above 100 PPM reduce the headroom and increase the time to learn
-the particular value and record it in the <tt>ntp.drift</tt> file. In
-extreme cases before the particular oscillator frequency error has been
-determined, the residual system time offsets can sweep from one extreme
-to the other of the 128-ms tracking window only for the behavior to
-repeat at 900-s intervals until the measurements have converged.
-
-<p>In order to determine if excessive frequency error is a problem,
-observe the nominal <tt>filtoffset</tt> values for a number of rounds
-and divide by the poll interval. If the result is something approaching
-500 PPM, there is a good chance that NTP will not work properly until
-the frequency error is reduced by some means. A common cause is the
-hardware time-of-year (TOY) clock chip, which must be disabled when NTP
-disciplines the software clock. For some systems this can be done using
-the <tt><A HREF="tickadj.htm">tickadj</A></tt> utility and the <tt>-
-s</tt> command line argument. For other systems this can be done using a
-command in the system startup file.
-
-<p>If the TOY chip is not the cause, the problem may be that the
-hardware clock frequency may simply be too slow or two fast. In some
-systems this might require tweaking a trimmer capacitor on the
-motherboard. For other systems the clock frequency can be adjusted in
-increments of 100 PPM using the <tt>tickadj</tt> utility and the <tt>-
-t</tt> command line argument. Note that the <tt>tickadj</tt> alters
-certain kernel variables and, while the utility attempts to figure out
-an acceptable way to do this, there are many cases where
+<p>A detailed explanation of the fields in this billboard are beyond the scope of this discussion; however, most variables defined in the NTP Version 3 specification RFC-1305 are available along with others defined for NTP Version 4. This particular example was chosen to illustrate probably the most complex configuration involving symmetric modes and public-key cryptography. As the result of debugging experience, the names and values of these variables may change from time to time. An explanation of the current set is on the <tt>ntpq</tt> page.
+
+<p>A useful indicator of miscellaneous problems is the <tt>flash</tt> value, which reveals the state of the various sanity tests on incoming packets. There are currently eleven bits, one for each test, numbered from the right, which is for test 1. If the test fails, the corresponding bit is set to one and zero otherwise. If any bit is set following each processing step, the packet is discarded. The meaning of each test is described on the <tt>ntpq</tt> page.
+
+<p>The three lines identified as <tt>filtdelay</tt>, <tt>filtoffset</tt> and <tt>filtdisp</tt> reveal the roundtrip delay, clock offset and dispersion for each of the last eight measurement rounds, all in milliseconds. Note that the dispersion, which is an estimate of the error, increases as the age of the sample increases. From these data, it is usually possible to determine the incidence of severe packet loss, network congestion, and unstable local clock oscillators. There are no hard and fast rules here, since every case is unique; however, if one or more of the rounds show large values or change radically from one round to another, the network is probably congested or lossy.
+
+<p>Once the daemon has set the local clock, it will continuously track the discrepancy between local time and NTP time and adjust the local clock accordingly. There are two components of this adjustment, time and frequency. These adjustments are automatically determined by the clock discipline algorithm, which functions as a hybrid phase/frequency feedback loop. The behavior of this algorithm is carefully controlled to minimize residual errors due to network jitter and frequency variations of the local clock hardware oscillator that normally occur in practice. However, when started for the first time, the algorithm may take some time to converge on the intrinsic frequency error of the host machine.
+
+<p>The frequency tolerance of computer clock oscillators can vary widely, which can put a strain on the daemon's ability to compensate for the intrinsic frequency error. While the daemon can handle frequency errors up to 500 parts-per-million (PPM), or 43 seconds per day, values much above 100 PPM reduce the headroom and increase the time to learn the particular value and record it in the <tt>ntp.drift</tt> file. In extreme cases before the particular oscillator frequency error has been determined, the residual system time offsets can sweep from one extreme to the other of the 128-ms tracking window only for the behavior to repeat at 900-s intervals until the measurements have converged.
+
+<p>In order to determine if excessive frequency error is a problem, observe the nominal <tt>filtoffset</tt> values for a number of rounds and divide by the poll interval. If the result is something approaching 500 PPM, there is a good chance that NTP will not work properly until the frequency error is reduced by some means. A common cause is the hardware time-of-year (TOY) clock chip, which must be disabled when NTP disciplines the software clock. For some systems this can be done using the <tt><A HREF="tickadj.htm">tickadj</A></tt> utility and the <tt>-s</tt> command line argument. For other systems this can be done using a command in the system startup file.
+
+<p>If the TOY chip is not the cause, the problem may be that the hardware clock frequency may simply be too slow or two fast. In some systems this might require tweaking a trimmer capacitor on the motherboard. For other systems the clock frequency can be adjusted in increments of 100 PPM using the <tt>tickadj</tt> utility and the <tt>-t</tt> command line argument. Note that the <tt>tickadj</tt> alters certain kernel variables and, while the utility attempts to figure out an acceptable way to do this, there are many cases where
 <tt>tickadj</tt> is incompatible with a running kernel.
 
-<p>The state of the local clock itself can be determined using the
-<tt>rv</tt> command (without the argument), such as
+<p>The state of the local clock itself can be determined using the <tt>rv</tt> command (without the argument), such as
 
 <p><pre>ntpq> rv
 status=0644 leap_none, sync_ntp, 4 events, event_peer/strat_chg,
@@ -259,104 +106,35 @@ hostname="barnstable.udel.edu", publickey=3171372095, params=3171372095,
 refresh=3172016539
 </pre>
 
-<p>An explanation about most of these variables is in the RFC-1305
-specification. The most useful ones include <tt>clock</tt>, which shows
-when the clock was last adjusted, and <tt>reftime</tt>, which shows when
-the server clock of <tt>refid</tt> was last adjusted. The
-<tt>version</tt>, <tt>processor</tt> and <tt>system</tt> values are very
-helpful when included in bug reports. The mean millisecond time offset
-(<tt>phase</tt>) and deviation (<tt>jitter</tt>) monitor the clock
-quality, while the mean PPM frequency offset (<tt>frequency</tt>) and
-deviation (<tt>stability</tt>) monitor the clock stability and serve as
-a useful diagnostic tool. It has been the experience of NTP operators
-over the years that these data represent useful environment and hardware
-alarms. If the motherboard fan freezes up or some hardware bit sticks,
-the system clock is usually the first to notice it.
-
-<p>Among the new variables added for NTP Version 4 are the
-<tt>hostname</tt>, <tt>publickey</tt>, <tt>params</tt> and
-<tt>refresh</tt>, which are used for the Autokey public-key cryptography
-described on the <a href=authopt.htm>Authentication Options</a> page.
-The values show the filestamps, in NTP seconds, that the associated
-values were created. These are useful in diagnosing problems with
-cryptographic key consistency and ordering principles.
-
-<p>When nothing seems to happen in the <tt>pe</tt> billboard after some
-minutes, there may be a network problem. One common network problem
-is an access controlled router on the path to the selected peer or an
-access controlled server using methods described on the <a
-href=accopt.htm>Access Control Options</a> page. Another common problem
-is that the server is down or running in unsynchronized mode due to a
-local problem. Use the <tt>ntpq</tt> program to spy on the server
-variables in the same way you can spy on your own.
-
-<p>Normally, the daemon will adjust the local clock in small steps in
-such a way that system and user programs are unaware of its operation.
-The adjustment process operates continuously as long as the apparent
-clock error exceeds 128 milliseconds, which for most Internet paths is a
-quite rare event. If the event is simply an outlyer due to an occasional
-network delay spike, the correction is simply discarded; however, if the
-apparent time error persists for an interval of about 20 minutes, the
-local clock is stepped to the new value (as an option, the daemon can be
-compiled to slew at an accelerated rate to the new value, rather than be
-stepped). This behavior is designed to resist errors due to severely
-congested network paths, as well as errors due to confused radio clocks
-upon the epoch of a leap second.
+<p>An explanation about most of these variables is in the RFC-1305 specification. The most useful ones include <tt>clock</tt>, which shows when the clock was last adjusted, and <tt>reftime</tt>, which shows when the server clock of <tt>refid</tt> was last adjusted. The <tt>version</tt>, <tt>processor</tt> and <tt>system</tt> values are very helpful when included in bug reports. The mean millisecond time offset (<tt>phase</tt>) and deviation (<tt>jitter</tt>) monitor the clock quality, while the mean PPM frequency offset (<tt>frequency</tt>) and deviation (<tt>stability</tt>) monitor the clock stability and serve as a useful diagnostic tool. It has been the experience of NTP operators over the years that these data represent useful environment and hardware alarms. If the motherboard fan freezes up or some hardware bit sticks, the system clock is usually the first to notice it.
+
+<p>Among the new variables added for NTP Version 4 are the <tt>hostname</tt>, <tt>publickey</tt>, <tt>params</tt> and <tt>refresh</tt>, which are used for the Autokey public-key cryptography described on the <a href=authopt.htm>Authentication Options</a> page. The values show the filestamps, in NTP seconds, that the associated values were created. These are useful in diagnosing problems with cryptographic key consistency and ordering principles.
+
+<p>When nothing seems to happen in the <tt>pe</tt> billboard after some minutes, there may be a network problem. One common network problem is an access controlled router on the path to the selected peer or an access controlled server using methods described on the <a href=accopt.htm>Access Control Options</a> page. Another common problem is that the server is down or running in unsynchronized mode due to a local problem. Use the <tt>ntpq</tt> program to spy on the server variables in the same way you can spy on your own.
+
+<p>Normally, the daemon will adjust the local clock in small steps in such a way that system and user programs are unaware of its operation. The adjustment process operates continuously as long as the apparent clock error exceeds 128 milliseconds, which for most Internet paths is a quite rare event. If the event is simply an outlyer due to an occasional network delay spike, the correction is simply discarded; however, if the apparent time error persists for an interval of about 20 minutes, the local clock is stepped to the new value (as an option, the daemon can be compiled to slew at an accelerated rate to the new value, rather than be stepped). This behavior is designed to resist errors due to severely congested network paths, as well as errors due to confused radio clocks upon the epoch of a leap second.
 
 <H4>Debugging Checklist</H4>
 
-If the <tt>ntpq</tt> or <tt>ntpdc</tt> programs do not show that
-messages are being received by the daemon or that received messages do
-not result in correct synchronization, verify the following:
+If the <tt>ntpq</tt> or <tt>ntpdc</tt> programs do not show that messages are being received by the daemon or that received messages do not result in correct synchronization, verify the following:
 
 <OL>
 
-<p><li>Verify the <tt>/etc/services</tt> file host machine is configured
-to accept UDP packets on the NTP port 123. NTP is specifically designed
-to use UDP and does not respond to TCP.</li>
-
-<p><li>Check the system log for <tt>ntpd</tt> messages about
-configuration errors, name-lookup failures or initialization
-problems.</li>
-
-<p><li>Verify using <tt>ping</tt> or other utility that packets actually
-do make the round trip between the client and server. Verify using
-<tt>nslookup</tt> or other utility that the DNS server names do exist
-and resolve to valid Internet addresses.
-
-<p><li>Using the <tt>ntpdc</tt> program, verify that the packets
-received and packets sent counters are incrementing. If the sent counter
-does not increment and the configuration file includes configured
-servers, something may be wrong in the host network or interface
-configuration. If this counter does increment, but the received counter
-does not increment, something may be wrong in the network or the server
-NTP daemon may not be running or the server itself may be down or not
-responding.</li>
-
-<p><li>If both the sent and received counters do increment, but the
-<tt>reach</tt> values in the <tt>pe</tt> billboard with <tt>ntpq</tt>
-continues to show zero, received packets are probably being discarded
-for some reason. If this is the case, the cause should be evident from
-the <tt>flash</tt> variable as discussed above and on the <tt>ntpq</tt>
-page.</li>
-
-<p><li>If the <tt>reach</tt> values in the <tt>pe</tt> billboard show
-the servers are alive and responding, note the tattletale symbols at the
-left margin, which indicate the status of each server resulting from the
-various grooming and mitigation algorithms. The interpretation of these
-symbols is discussed on the <tt>ntpq</tt> page. After a few minutes of
-operation, one or another of the reachable server candidates should show
-a * tattletale symbol. If this doesn't happen, the intersection
-algorithm, which classifies the servers as truechimers or falsetickers,
-may be unable to find a majority of truechimers among the server
+<p><li>Verify the <tt>/etc/services</tt> file host machine is configured to accept UDP packets on the NTP port 123. NTP is specifically designed to use UDP and does not respond to TCP.</li>
+
+<p><li>Check the system log for <tt>ntpd</tt> messages about configuration errors, name-lookup failures or initialization problems.</li>
+
+<p><li>Verify using <tt>ping</tt> or other utility that packets actually do make the round trip between the client and server. Verify using <tt>nslookup</tt> or other utility that the DNS server names do exist and resolve to valid Internet addresses.
+
+<p><li>Using the <tt>ntpdc</tt> program, verify that the packets received and packets sent counters are incrementing. If the sent counter does not increment and the configuration file includes configured servers, something may be wrong in the host network or interface configuration. If this counter does increment, but the received counter does not increment, something may be wrong in the network or the server NTP daemon may not be running or the server itself may be down or not responding.</li>
+
+<p><li>If both the sent and received counters do increment, but the <tt>reach</tt> values in the <tt>pe</tt> billboard with <tt>ntpq</tt> continues to show zero, received packets are probably being discarded for some reason. If this is the case, the cause should be evident from the <tt>flash</tt> variable as discussed above and on the <tt>ntpq</tt> page.</li>
+
+<p><li>If the <tt>reach</tt> values in the <tt>pe</tt> billboard show the servers are alive and responding, note the tattletale symbols at the left margin, which indicate the status of each server resulting from the various grooming and mitigation algorithms. The interpretation of these symbols is discussed on the <tt>ntpq</tt> page. After a few minutes of operation, one or another of the reachable server candidates should show a * tattletale symbol. If this doesn't happen, the intersection algorithm, which classifies the servers as truechimers or falsetickers, may be unable to find a majority of truechimers among the server
 population.</li>
 
-<p><li>If all else fails, see the FAQ and/or the discussion and
-briefings at <a href=http://www.eecis.udel.edu/~mills/ntp.htm>Network
-Time Synchronization Project<a>.</li>
+<p><li>If all else fails, see the FAQ and/or the discussion and briefings at <a href=http://www.eecis.udel.edu/~mills/ntp.htm>Network Time Synchronization Project<a>.</li>
 
 </OL>
 
-<hr><a href=index.htm><img align=left src=pic/home.gif></a><address><a
-href=mailto:mills@udel.edu> David L. Mills &lt;mills@udel.edu&gt;</a>
-</address></a></body></html>
+<hr><a href=index.htm><img align=left src=pic/home.gif></a><address><a href=mailto:mills@udel.edu> David L. Mills &lt;mills@udel.edu&gt;</a></address></a></body></html>
index ee75a2a50c9d8fd63df88d279ff3611f20297506..b516fa0414ecf832cd66020115d8e92e2aaae2f3 100644 (file)
@@ -11,272 +11,75 @@ Address: 127.127.7.<I>u</I>
 <br>Driver ID: <tt>CHU</tt>
 <br>Modem Port: <tt>/dev/chu<I>u</I></tt>; 300 baud, 8-bits, no parity
 <br>Autotune Port: <tt>/dev/icom</tt>; 1200/9600 baud, 8-bits, no parity
-<br>Audio Device: <tt>/dev/audio</tt> and <tt>/dev/audioctl</tt>
+<br>Audio Device: <tt>/dev/chu_audio</tt> and <tt>/dev/audioctl</tt>
 
 <h4>Description</h4>
 
-This driver synchronizes the computer time using data encoded in radio
-transmissions from Canadian time/frequency station CHU in Ottawa,
-Ontario. Transmissions are made continuously on 3330 kHz, 7335 kHz and
-14670 kHz in upper sideband, compatible AM mode. 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 as
-propagation conditions change throughout the day and night. The
-performance of this driver when tracking the station is ordinarily
-better than 1 ms in time with frequency drift less than 0.5 PPM when not
-tracking the station.
-
-<p>While there are currently no known commercial CHU receivers, a simple
-but effective receiver/demodulator can be constructed from an ordinary
-shortwave receiver and Bell 103 compatible, 300-b/s modem or modem chip,
-as described in the <a href=pps.htm>Pulse-per-second (PPS) Signal
-Interfacing</a> page. The driver can be compiled to use a modem to
-receive the radio signal and demodulate the data. Alternatively, the
-driver can be compiled to use the audio codec of the Sun workstation or
-another with compatible audio interface. In the latter case, the driver
-implements the modem using DSP routines, so the radio can be connected
-directly to either the microphone on line input port.
-
-<p>The driver replaces an earlier one built by Dennis Ferguson in 1988.
-The earlier driver required a special line discipline which preprocessed
-the signal in order to improve accuracy and avoid errors. The new driver
-includes more powerful algorithms implemented directly in the driver and
-requires no line discipline. It decodes the data using a
-maximum-likelihood technique which exploits the considerable degree of
-redundancy available to maximize accuracy and minimize errors.
-
-<p>This driver incorporates several features in common with other audio
-drivers such as described in the <a href=driver36.htm>Radio WWV/H Audio
-Demodulator/Decoder</a> and the <a href=driver6.htm>IRIG Audio
-Decoder</a> 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 <a href=audio.htm>Reference Clock Audio Drivers</a>
-page.
-
-<p>Ordinarily, the driver poll interval is set to 14 (about 4.5 h),
-although this can be changed with configuration commands. As long as the
-clock is set or verified at least once during this interval, the NTP
-algorithms will consider the source reachable and selectable to
-discipline the system clock. However, if this does not happen for eight
-poll intervals, the algorithms will consider the source unreachable and
-some other source will be chosen (if available) to discipline the system
-clock.
-
-<p>The decoding algorithms take advantage of all the redundancy
-available in each broadcast message or burst. In each burst described in
-the next section, every character is sent twice and, in the case of
-format A bursts, the burst is sent eight times every minute. In the case
-of format B bursts, which are sent once each minute, the burst is
-considered correct only if every character matches its repetition in the
-burst. In the case of format A messages, a majority decoder requires at
-least six repetitions for each digit in the timecode and more than
-half of the repetitions decode to the same digit. Every character in
-every burst provides an independent timestamp upon arrival with a
-potential total of over 60 timestamps for each minute.
-
-<p>A timecode in the format described below is assembled when all bursts
-have been received in the minute. The timecode is considered valid and
-the clock set when at least one valid format B burst has been decoded
-and the above requirements are met. The <tt>yyyy</tt> year field in the
-timecode indicates whether a valid format B burst has been received.
-Upon startup, this field is initialized at zero; when a valid format B
-burst is received, it will be set to the correct Gregorian year. The
-<tt>q</tt> quality character field in the timecode indicates whether a
-valid timecode has been determined. If any of the high order three bits
-of this character are set, the timecode is invalid.
-
-<p>Once the clock has been set for the first time, it will appear
-reachable and selectable to discipline the system clock, even if the
-broadcast signal is lost. Since the signals are almost always available
-during some period of the day and the NTP clock discipline algorithms
-are designed to work well even in this case, it is unlikely that the
-system clock could drift more than a few tens of milliseconds during
-periods of signal loss. To protect against this most unlikely situation,
-if after four days with no signals, the clock is considered unset and
-resumes the synchronization procedure from the beginning.
-
-<p>The last three fields in the timecode are useful in assessing the
-quality of the radio channel during the most recent minute bursts were
-received. The <tt>bcnt</tt> field shows the number of format A bursts in
-the range 1-8. The <tt>dist</tt> field shows the majority decoder
-distance, or the minimum number of sample repetitions for each digit of
-the timecode in the range 0-16. The <tt>tsmp</tt> field shows the number
-of timestamps determined in the range 0-60. For a valid timecode,
-<tt>bcnt</tt> must be at least 3, <tt>dist</tt> must be greater than
-<tt>bcnt</tt> and <tt>tsmp</tt> must be at least 20.
+This driver synchronizes the computer time using data encoded in radio transmissions from Canadian time/frequency station CHU in Ottawa, Ontario. Transmissions are made continuously on 3330 kHz, 7335 kHz and 14670 kHz in upper sideband, compatible AM mode. 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 as propagation conditions change throughout the day and night. The performance of this driver when tracking the station is ordinarily better than 1 ms in time with frequency drift less than 0.5 PPM when not tracking the station.
+
+<p>While there are currently no known commercial CHU receivers, a simple but effective receiver/demodulator can be constructed from an ordinary shortwave receiver and Bell 103 compatible, 300-b/s modem or modem chip, as described in the <a href=gadget.htm>Gadget Box PPS Level Converter and CHU Modem</a> page. The driver can be compiled to use a modem to receive the radio signal and demodulate the data. Alternatively, the driver can be compiled to use the audio codec of the Sun workstation or another with compatible audio interface. In the latter case, the driver implements the modem using DSP routines, so the radio can be connected directly to either the microphone on line input port. Ordinarily, the driver is compiled for the audio codec only for SunOS and Solaris machines and for the serial port for other machines.
+
+<p>The driver replaces an earlier one built by Dennis Ferguson in 1988. The earlier driver required a special line discipline which preprocessed the signal in order to improve accuracy and avoid errors. The new driver includes more powerful algorithms implemented directly in the driver and requires no line discipline. It decodes the data using a maximum-likelihood technique which exploits the considerable degree of redundancy available to maximize accuracy and minimize errors.
+
+<p>This driver incorporates several features in common with other audio drivers such as described in the <a href=driver36.htm>Radio WWV/H Audio Demodulator/Decoder</a> and the <a href=driver6.htm>IRIG Audio Decoder</a> 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 <a href=audio.htm>Reference Clock Audio Drivers</a> page.
+
+<p>Ordinarily, the driver poll interval is set to 14 (about 4.5 h), although this can be changed with configuration commands. As long as the clock is set or verified at least once during this interval, the NTP algorithms will consider the source reachable and selectable to discipline the system clock. However, if this does not happen for eight poll intervals, the algorithms will consider the source unreachable and some other source will be chosen (if available) to discipline the system clock.
+
+<p>The decoding algorithms take advantage of all the redundancy available in each broadcast message or burst. In each burst described in the next section, every character is sent twice and, in the case of format A bursts, the burst is sent eight times every minute. In the case of format B bursts, which are sent once each minute, the burst is considered correct only if every character matches its repetition in the burst. In the case of format A messages, a majority decoder requires at least six repetitions for each digit in the timecode and more than half of the repetitions decode to the same digit. Every character in every burst provides an independent timestamp upon arrival with a potential total of over 60 timestamps for each minute.
+
+<p>A timecode in the format described below is assembled when all bursts have been received in the minute. The timecode is considered valid and the clock set when at least one valid format B burst has been decoded and the above requirements are met. The <tt>yyyy</tt> year field in the timecode indicates whether a valid format B burst has been received. Upon startup, this field is initialized at zero; when a valid format B burst is received, it will be set to the correct Gregorian year. The <tt>q</tt> quality character field in the timecode indicates whether a valid timecode has been determined. If any of the high order three bits of this character are set, the timecode is invalid.
+
+<p>Once the clock has been set for the first time, it will appear reachable and selectable to discipline the system clock, even if the broadcast signal is lost. Since the signals are almost always available during some period of the day and the NTP clock discipline algorithms are designed to work well even in this case, it is unlikely that the system clock could drift more than a few tens of milliseconds during periods of signal loss. To protect against this most unlikely situation, if after four days with no signals, the clock is considered unset and resumes the synchronization procedure from the beginning.
+
+<p>The last three fields in the timecode are useful in assessing the quality of the radio channel during the most recent minute bursts were received. The <tt>bcnt</tt> field shows the number of format A bursts in the range 1-8. The <tt>dist</tt> field shows the majority decoder distance, or the minimum number of sample repetitions for each digit of the timecode in the range 0-16. The <tt>tsmp</tt> field shows the number of timestamps determined in the range 0-60. For a valid timecode, <tt>bcnt</tt> must be at least 3, <tt>dist</tt> must be greater than <tt>bcnt</tt> and <tt>tsmp</tt> must be at least 20.
 
 <h4>Program Operation</h4>
 
-<p>The program consists of four major parts: the DSP modem, maximum
-likelihood UART, burst assembler and majority decoder. The DSP modem
-demodulates Bell 103 modem answer-frequency signals; that is, frequency-
-shift keyed (FSK) tones of 2225 Hz (mark) and 2025 Hz (space). This is
-done using a 4th-order IIR filter and limiter/discriminator with 500-Hz
-bandpass centered on 2125 Hz and followed by a FIR raised-cosine lowpass
-filter optimized for the 300-b/s data rate. Alternately, the driver can
-be compiled to delete the modem and input 300 b/s data directly from an
-external modem via a serial port.
-
-<p>The maximum likelihood UART is implemented using a set of eight
-11-stage shift registers, one for each of eight phases of the 300-b/s
-bit clock. At each phase a new baseband signal value from the DSP modem
-is shifted into the corresponding register and the maximum and minimum
-over all 11 samples computed. This establishes a slice level midway
-between the maximum and minimum over all stages. For each stage, a
-signal level above this level is a mark (1) and below is a space (0). A
-quality metric is calculated for each register with respect to the slice
-level and the a-priori signal consisting of a mark bit (previous stop
-bit), space (start) bit, eight arbitrary information bits and the first
-of the two mark (stop) bits.
-<p>The shift registers are processed in round-robin order as each modem
-value arrives until one of them shows a valid framing pattern consisting
-of a mark bit, space bit, eight arbitrary data bits and a mark bit. When
-found, the data bits from the register with the best metric is chosen as
-the maximum likelihood character and the UART begins to process the next
-character.
-
-<p>The burst assembler processes characters either from the maximum
-likelihood UART or directly from the serial port as configured. A burst
-begins when a character is received and is processed after a timeout
-interval when no characters are received. If the interval between
-characters is greater than two characters, but less than the timeout
-interval, the burst is rejected as a runt and a new burst begun. As each
-character is received, a timestamp is captured and saved for later
-processing.
-
-<p>A valid burst consists of ten characters in two replicated
-five-character blocks. A format B block contains the year and other
-information in ten hexadecimal digits. A format A block contains the
-timecode in ten decimal digits, the first of which is a framing code
-(6). The burst assembler must deal with cases where the first character
-of a format A burst is lost or is noise. This is done using the framing
-code to correct the phase, either one character early or one character
-late.
-
-<p>The burst distance is incremented by one for each bit in the first
-block that matches the corresponding bit in the second block and
-decremented by one otherwise. In a format B burst the second block is
-bit-inverted relative to the first, so a perfect burst of five 8-bit
-characters has distance -40. In a format A block the two blocks are
-identical, so a perfect burst has distance +40. Format B bursts must be
-perfect to be acceptable; however, format A bursts, which are further
-processed by the majority decoder, are acceptable if the distance is at
-least 28.
-
-<p>Each minute of transmission includes eight format A bursts containing
-two timecodes for each second from 31 through 39. The majority decoder
-uses a decoding matrix of ten rows, one for each digit position in the
-timecode, and 16 columns, one for each 4-bit code combination that might
-be decoded at that position. In order to use the character timestamps,
-it is necessary to reliably determine the second number of each burst.
-In a valid burst, the last digit of the two timecodes in the block must
-match and the value must be in the range 2-9 and greater than in the
-previous burst.
-
-<p>As each hex digit of a valid burst is processed, the value at the row
-corresponding to the digit position in the timecode and column
-corresponding to the code found at that position is incremented. At the
-end of each minute of transmission, each row of the decoding matrix
-encodes the number of occurrences of each code found at the
-corresponding position of the timecode. However, the first digit
-(framing code) is always 6, the ninth (second tens) is always 3 and the
-last (second units) changes for each burst, so are not used.
-
-<p>The maximum over all occurrences at each timecode digit position is
-the distance for that position and the corresponding code is the maximum
-likelihood candidate. If the distance is zero, the decoder assumes a
-miss; if the distance is not more than half the total number of
-occurrences, the decoder assumes a soft error; if two different codes
-with the same distance are found, the decoder assumes a hard error. In
-all these cases the decoder encodes a non-decimal character which will
-later cause a format error when the timecode is reformatted. The
-decoding distance is defined as the minimum distance over the first nine
-digits; the tenth digit varies over the seconds and is uncounted.
-
-<p>The result of the majority decoder is a nine-digit timecode
-representing the maximum likelihood candidate for the transmitted
-timecode in that minute. Note that the second and fraction within the
-minute are always zero and that the actual reference point to calculate
-timestamp offsets is backdated to the first second of the minute. At
-this point the timecode block is reformatted and the year, days, hours
-and minutes extracted along with other information from the format B
-burst, including DST state, DUT1 correction and leap warning. The
-reformatting operation checks the timecode for invalid code combinations
-that might have been left by the majority decoder and rejects the entire
-timecode if found.
-
-<p>If the timecode is valid, it is passed to the reference clock
-interface along with the backdated timestamp offsets accumulated over
-the minute. A perfect set of nine bursts could generate as many as 90
-timestamps, but the maximum the interface can handle is 60. These are
-processed by the interface using a median filter and trimmed-mean
-average, so the resulting system clock correction is usually much better
-than would otherwise be the case with radio noise, UART jitter and
-occasional burst errors.
+<p>The program consists of four major parts: the DSP modem, maximum likelihood UART, burst assembler and majority decoder. The DSP modem demodulates Bell 103 modem answer-frequency signals; that is, frequency-shift keyed (FSK) tones of 2225 Hz (mark) and 2025 Hz (space). This is done using a 4th-order IIR filter and limiter/discriminator with 500-Hz bandpass centered on 2125 Hz and followed by a FIR raised-cosine lowpass filter optimized for the 300-b/s data rate. Alternately, the driver can be compiled to delete the modem and input 300 b/s data directly from an external modem via a serial port.
+
+<p>The maximum likelihood UART is implemented using a set of eight 11-stage shift registers, one for each of eight phases of the 300-b/s bit clock. At each phase a new baseband signal value from the DSP modem is shifted into the corresponding register and the maximum and minimum over all 11 samples computed. This establishes a slice level midway between the maximum and minimum over all stages. For each stage, a signal level above this level is a mark (1) and below is a space (0). A quality metric is calculated for each register with respect to the slice level and the a-priori signal consisting of a mark bit (previous stop bit), space (start) bit, eight arbitrary information bits and the first of the two mark (stop) bits.
+
+<p>The shift registers are processed in round-robin order as each modem value arrives until one of them shows a valid framing pattern consisting of a mark bit, space bit, eight arbitrary data bits and a mark bit. When found, the data bits from the register with the best metric is chosen as the maximum likelihood character and the UART begins to process the next character.
+
+<p>The burst assembler processes characters either from the maximum likelihood UART or directly from the serial port as configured. A burst begins when a character is received and is processed after a timeout interval when no characters are received. If the interval between characters is greater than two characters, but less than the timeout interval, the burst is rejected as a runt and a new burst begun. As each character is received, a timestamp is captured and saved for later processing.
+
+<p>A valid burst consists of ten characters in two replicated five-character blocks. A format B block contains the year and other information in ten hexadecimal digits. A format A block contains the timecode in ten decimal digits, the first of which is a framing code (6). The burst assembler must deal with cases where the first character of a format A burst is lost or is noise. This is done using the framing code to correct the phase, either one character early or one character late.
+
+<p>The burst distance is incremented by one for each bit in the first block that matches the corresponding bit in the second block and decremented by one otherwise. In a format B burst the second block is bit-inverted relative to the first, so a perfect burst of five 8-bit characters has distance -40. In a format A block the two blocks are identical, so a perfect burst has distance +40. Format B bursts must be perfect to be acceptable; however, format A bursts, which are further processed by the majority decoder, are acceptable if the distance is at least 28.
+
+<p>Each minute of transmission includes eight format A bursts containing two timecodes for each second from 31 through 39. The majority decoder uses a decoding matrix of ten rows, one for each digit position in the timecode, and 16 columns, one for each 4-bit code combination that might be decoded at that position. In order to use the character timestamps, it is necessary to reliably determine the second number of each burst. In a valid burst, the last digit of the two timecodes in the block must match and the value must be in the range 2-9 and greater than in the previous burst.
+
+<p>As each hex digit of a valid burst is processed, the value at the row corresponding to the digit position in the timecode and column corresponding to the code found at that position is incremented. At the end of each minute of transmission, each row of the decoding matrix encodes the number of occurrences of each code found at the corresponding position of the timecode. However, the first digit (framing code) is always 6, the ninth (second tens) is always 3 and the last (second units) changes for each burst, so are not used.
+
+<p>The maximum over all occurrences at each timecode digit position is the distance for that position and the corresponding code is the maximum likelihood candidate. If the distance is zero, the decoder assumes a miss; if the distance is not more than half the total number of occurrences, the decoder assumes a soft error; if two different codes with the same distance are found, the decoder assumes a hard error. In all these cases the decoder encodes a non-decimal character which will later cause a format error when the timecode is reformatted. The decoding distance is defined as the minimum distance over the first nine digits; the tenth digit varies over the seconds and is uncounted.
+
+<p>The result of the majority decoder is a nine-digit timecode representing the maximum likelihood candidate for the transmitted timecode in that minute. Note that the second and fraction within the minute are always zero and that the actual reference point to calculate timestamp offsets is backdated to the first second of the minute. At this point the timecode block is reformatted and the year, days, hours and minutes extracted along with other information from the format B burst, including DST state, DUT1 correction and leap warning. The reformatting operation checks the timecode for invalid code combinations that might have been left by the majority decoder and rejects the entire timecode if found.
+
+<p>If the timecode is valid, it is passed to the reference clock interface along with the backdated timestamp offsets accumulated over the minute. A perfect set of nine bursts could generate as many as 90 timestamps, but the maximum the interface can handle is 60. These are processed by the interface using a median filter and trimmed-mean average, so the resulting system clock correction is usually much better than would otherwise be the case with radio noise, UART jitter and occasional burst errors.
 
 <h4>Autotune</h4>
 
-<p>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. The serial port speed is presently compiled in the program,
-but can be changed in the <tt>icom.h</tt> header file.
-
-<p>Each ICOM radio is assigned a unique 8-bit ID select code, usually
-expressed in hex format. To activate the CI-V interface, the
-<tt>mode</tt> keyword of the <tt>server</tt> configuration command
-specifies a nonzero select code in decimal format. A table of ID select
-codes for the known ICOM radios is given below. Since all ICOM select
-codes are less than 128, the high order bit of the code is used by the
-driver to specify the baud rate. If this bit is not set, the rate is
-9600 bps for the newer radios; if set, the rate is 1200 bps for the
-older radios. A missing <tt>mode</tt> keyword or a zero argument leaves
-the interface disabled.
-
-<p>If specified, the driver will attempt to open the device
-<tt>/dev/icom</tt> and, if successful will tune the radio to 3.330 MHz.
-If after five minutes at this frequency not more than two format A
-bursts have been received for any minute, the driver will tune to 7.335
-MHz, then to 14.670 MHz, then return to 3.330 MHz and continue in this
-cycle. However, the driver is liberal in what it assumes of the
-configuration. If the <tt>/dev/icom</tt> link is not present or the open
-fails or the CI-V bus or radio is inoperative, the driver quietly gives
-up with no harm done.
+<p>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. The serial port speed is presently compiled in the program, but can be changed in the <tt>icom.h</tt> header file.
+
+<p>Each ICOM radio is assigned a unique 8-bit ID select code, usually expressed in hex format. To activate the CI-V interface, the <tt>mode</tt> keyword of the <tt>server</tt> configuration command specifies a nonzero select code in decimal format. A table of ID select codes for the known ICOM radios is given below. Since all ICOM select codes are less than 128, the high order bit of the code is used by the driver to specify the baud rate. If this bit is not set, the rate is 9600 bps for the newer radios; if set, the rate is 1200 bps for the older radios. A missing <tt>mode</tt> keyword or a zero argument leaves the interface disabled.
+
+<p>If specified, the driver will attempt to open the device <tt>/dev/icom</tt> and, if successful will tune the radio to 3.330 MHz. If after five minutes at this frequency not more than two format A bursts have been received for any minute, the driver will tune to 7.335 MHz, then to 14.670 MHz, then return to 3.330 MHz and continue in this cycle. However, the driver is liberal in what it assumes of the configuration. If the <tt>/dev/icom</tt> link is not present or the open fails or the CI-V bus or radio is inoperative, the driver quietly gives up with no harm done.
 
 <h4>Radio Broadcast Format</h4>
 
-<p>The CHU time broadcast includes an audio signal compatible with the
-Bell 103 modem standard (mark = 2225 Hz, space = 2025 Hz). It consist of
-nine, ten-character bursts transmitted at 300 b/s and beginning each
-second from second 31 to second 39 of the minute. Each character
-consists of eight data bits plus one start bit and two stop bits to
-encode two hex digits. The burst data consist of five characters (ten
-hex digits) followed by a repeat of these characters. In format A, the
-characters are repeated in the same polarity; in format B, the
-characters are repeated in the opposite polarity.
+<p>The CHU time broadcast includes an audio signal compatible with the Bell 103 modem standard (mark = 2225 Hz, space = 2025 Hz). It consist of nine, ten-character bursts transmitted at 300 b/s and beginning each second from second 31 to second 39 of the minute. Each character consists of eight data bits plus one start bit and two stop bits to encode two hex digits. The burst data consist of five characters (ten hex digits) followed by a repeat of these characters. In format A, the characters are repeated in the same polarity; in format B, the characters are repeated in the opposite polarity.
 
-<p>Format A bursts are sent at seconds 32 through 39 of the minute in
-hex digits
+<p>Format A bursts are sent at seconds 32 through 39 of the minute in hex digits
 
 <p><tt>6dddhhmmss6dddhhmmss</tt>
-<p>The first ten digits encode a frame marker (<tt>6</tt>) followed by
-the day (<tt>ddd</tt>), hour (<tt>hh</tt>), minute (<tt>mm</tt>) and
-second (<tt>ss</tt>). Since format A bursts are sent during the
-third decade of seconds the tens digit of <tt>ss</tt> is always 3. The
-driver uses this to determine correct burst synchronization. These
-digits are then repeated with the same polarity.
+
+<p>The first ten digits encode a frame marker (<tt>6</tt>) followed by the day (<tt>ddd</tt>), hour (<tt>hh</tt>), minute (<tt>mm</tt>) and second (<tt>ss</tt>). Since format A bursts are sent during the third decade of seconds the tens digit of <tt>ss</tt> is always 3. The driver uses this to determine correct burst synchronization. These digits are then repeated with the same polarity.
+
 <p>Format B bursts are sent at second 31 of the minute in hex digits
 
 <p><tt>xdyyyyttaaxdyyyyttaa</tt>
 
-<p>The first ten digits encode a code (<tt>x</tt> described below)
-followed by the DUT1 (<tt>d</tt> in deciseconds), Gregorian year
-(<tt>yyyy</tt>), difference TAI - UTC (<tt>tt</tt>) and daylight time
-indicator (<tt>aa</tt>) peculiar to Canada. These digits are then
-repeated with inverted polarity.
+<p>The first ten digits encode a code (<tt>x</tt> described below) followed by the DUT1 (<tt>d</tt> in deciseconds), Gregorian year (<tt>yyyy</tt>), difference TAI - UTC (<tt>tt</tt>) and daylight time indicator (<tt>aa</tt>) peculiar to Canada. These digits are then repeated with inverted polarity.
 
 <p>The <tt>x</tt> is coded
 
@@ -289,79 +92,46 @@ repeated with inverted polarity.
 <dd>Leap second warning. One second will be added.</dd>
 
 <dt><tt>4</tt>
-<dd>Leap second warning. One second will be subtracted. This is not
-likely to happen in our universe.</dd>
+<dd>Leap second warning. One second will be subtracted. This is not likely to happen in our universe.</dd>
 
 <dt><tt>8</tt>
 <dd>Even parity bit for this nibble.</dd>
 
 </dl>
 
-<p>By design, the last stop bit of the last character in the burst
-coincides with 0.5 second. Since characters have 11 bits and are
-transmitted at 300 b/s, the last stop bit of the first character
-coincides with 0.5 - 10 * 11/300 = 0.133 second. Depending on the UART,
-character interrupts can vary somewhere between the beginning of bit 9
-and end of bit 11. These eccentricities can be corrected along with the
-radio propagation delay using the <tt>fudge time1</tt> variable.
+<p>By design, the last stop bit of the last character in the burst coincides with 0.5 second. Since characters have 11 bits and are transmitted at 300 b/s, the last stop bit of the first character coincides with 0.5 - 10 * 11/300 = 0.133 second. Depending on the UART, character interrupts can vary somewhere between the beginning of bit 9 and end of bit 11. These eccentricities can be corrected along with the radio propagation delay using the <tt>fudge time1</tt> variable.
 
 <h4>Debugging Aids</h4>
 
-<p>The most convenient way to track the program status is using the
-<tt>ntpq</tt> program and the <tt>clockvar</tt> command. This displays
-the last determined timecode and related status and error counters, even
-when the program is not discipline the system clock. If the debugging
-trace feature (<tt>-d</tt> on the <tt>ntpd</tt> command line)is enabled,
-the program produces detailed status messages as it operates. If the
-<tt>fudge flag 4</tt> is set, these messages are written to the
-<tt>clockstats</tt> file. All messages produced by this driver have the
-prefix <tt>chu</tt> for convenient filtering with the Unix <tt>grep</tt>
-command.
+<p>The most convenient way to track the program status is using the <tt>ntpq</tt> program and the <tt>clockvar</tt> command. This displays the last determined timecode and related status and error counters, even when the program is not discipline the system clock. If the debugging trace feature (<tt>-d</tt> on the <tt>ntpd</tt> command line)is enabled, the program produces detailed status messages as it operates. If the <tt>fudge flag 4</tt> is set, these messages are written to the <tt>clockstats</tt> file. All messages produced by this driver have the prefix <tt>chu</tt> for convenient filtering with the Unix <tt>grep</tt> command.
 
-<p>With debugging enabled the driver produces messages in the following
-formats:
+<p>With debugging enabled the driver produces messages in the following formats:
 
-<p>A format <tt>chuA</tt> message is produced for each format A burst
-received in seconds 32 through 39 of the minute:
+<p>A format <tt>chuA</tt> message is produced for each format A burst received in seconds 32 through 39 of the minute:
 
 <p><tt>chuA n b s code</tt>
 
-<p>where <tt>n</tt> is the number of characters in the burst (0-11),
-<tt>b</tt> the burst distance (0-40), <tt>s</tt> the synchronization
-distance (0-40) and <tt>code</tt> the burst characters as received. Note
-that the hex digits in each character are reversed and the last ten
-digits inverted, so the burst
+<p>where <tt>n</tt> is the number of characters in the burst (0-11), <tt>b</tt> the burst distance (0-40), <tt>s</tt> the synchronization distance (0-40) and <tt>code</tt> the burst characters as received. Note that the hex digits in each character are reversed and the last ten digits inverted, so the burst
+
 <p><tt>11 40 1091891300ef6e76ecff</tt>
-<p>is interpreted as containing 11 characters with burst distance 40.
-The nibble-swapped timecode shows DUT1 +0.1 second, year 1998 and TAI -
-UTC 31 seconds.
 
-<p>A format <tt>chuB</tt> message is produced for each format B burst
-received in second 31 of the minute:
+<p>is interpreted as containing 11 characters with burst distance 40. The nibble-swapped timecode shows DUT1 +0.1 second, year 1998 and TAI -UTC 31 seconds.
+
+<p>A format <tt>chuB</tt> message is produced for each format B burst received in second 31 of the minute:
 
 <p><tt>chuB n b f s m code</tt>
 
-<p>where <tt>n</tt> is the number of characters in the burst (0-11),
-<tt>b</tt> the burst distance (0-40), <tt>f</tt> the field alignment (-
-1, 0, 1), <tt>s</tt>the synchronization distance (0-16), <tt>m</tt>the
-burst number (2-9) and <tt>code</tt> the burst characters as received.
-Note that the hex digits in each character are reversed, so the burst
+<p>where <tt>n</tt> is the number of characters in the burst (0-11), <tt>b</tt> the burst distance (0-40), <tt>f</tt> the field alignment (-1, 0, 1), <tt>s</tt>the synchronization distance (0-16), <tt>m</tt>the burst number (2-9) and <tt>code</tt> the burst characters as received. Note that the hex digits in each character are reversed, so the burst
 
 <p><tt>10 38 0 16 9 06851292930685129293</tt>
 
-<p>is interpreted as containing 11 characters with burst distance 38,
-field alignment 0, synchronization distance 16 and burst number 9. The
-nibble-swapped timecode shows day 58, hour 21, minute 29 and second 39.
+<p>is interpreted as containing 11 characters with burst distance 38, field alignment 0, synchronization distance 16 and burst number 9. The nibble-swapped timecode shows day 58, hour 21, minute 29 and second 39.
 
-<p>If the CI-V interface for ICOM radios is active, a debug level
-greater than 1 will produce a trace of the CI-V command and response
-messages. Interpretation of these messages requires knowledge of the
-CI-V protocol, which is beyond the scope of this document.
+<p>If the CI-V interface for ICOM radios is active, a debug level greater than 1 will produce a trace of the CI-V command and response messages. Interpretation of these messages requires knowledge of the CI-V protocol, which is beyond the scope of this document.
 
 <h4>Monitor Data</h4>
 
-When enabled by the <tt>filegen</tt> facility, every received timecode
-is written to the <tt>clockstats</tt> file in the following format:
+When enabled by the <tt>filegen</tt> facility, every received timecode is written to the <tt>clockstats</tt> file in the following format:
 
 <pre>
         sq yy ddd hh:mm:ss.fff ld dut lset agc rfrq bcnt dist tsmp
@@ -385,63 +155,48 @@ is written to the <tt>clockstats</tt> file in the following format:
         tsmp    timestamps captured
 </pre>
 
-The fields beginning with <tt>year</tt> and extending through
-<tt>dut</tt> are decoded from the received data and are in fixed-length
-format. The <tt>agc</tt> and <tt>lset</tt> fields, as well as the
-following driver-dependent fields, are in variable-length format.
+The fields beginning with <tt>year</tt> and extending through <tt>dut</tt> are decoded from the received data and are in fixed-length format. The <tt>agc</tt> and <tt>lset</tt> fields, as well as the following driver-dependent fields, are in variable-length format.
 
 <dl>
 
 <dt><tt>s</tt>
-<dd>The sync indicator is initially <tt>?</tt> before the clock is set,
-but turns to space when the clock is correctly set.</dd>
+<dd>The sync indicator is initially <tt>?</tt> before the clock is set, but turns to space when the clock is correctly set.</dd>
 
 <dt><tt>q</tt>
-<dd>The quality character is a four-bit hexadecimal code showing which
-alarms have been raised during the most recent minute. Each bit is
-associated with a specific alarm condition according to the following:
+<dd>The quality character is a four-bit hexadecimal code showing which alarms have been raised during the most recent minute. Each bit is associated with a specific alarm condition according to the following:
 
 <dl>
 <dt><tt>8</tt>
-<dd>Decoder alarm. A majority of repetitions for at least one digit of
-the timecode fails to agree.
+<dd>Decoder alarm. A majority of repetitions for at least one digit of the timecode fails to agree.
 </dd>
 
 <dt><tt>4</tt>
 <dd>Timestamp alarm. Fewer than 20 timestamps have been determined.</dd>
 
 <dt><tt>2</tt>
-<dd>Format alarm. The majority timecode contains invalid bit
-combinations.</dd>
+<dd>Format alarm. The majority timecode contains invalid bit combinations.</dd>
 
 <dt><tt>1</tt>
-<dd>Frame alarm. A framing or format error occurred on at least one
-burst during the minute.</dd>
+<dd>Frame alarm. A framing or format error occurred on at least one burst during the minute.</dd>
 
 </dl>
 
-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 condition that may in future result in an error.
+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 condition that may in future result in an error.
 
 <dt><tt>yyyy ddd hh:mm:ss.fff</tt></tt>
-<dd>The timecode format itself is self explanatory. Note that the
-Gregorian year is decoded directly from the transmitted timecode.</dd>
+<dd>The timecode format itself is self explanatory. Note that the Gregorian year is decoded directly from the transmitted timecode.</dd>
+
 <dt><tt>l</tt>
-<dd>The leap second warning is normally space, but changes to <tt>L</tt>
-if a leap second is to occur at the end of the month of June or
-December.</dd>
+<dd>The leap second warning is normally space, but changes to <tt>L</tt> if a leap second is to occur at the end of the month of June or December.</dd>
 
 <dt><tt>d</tt>
 <dd>The DST code for Canada encodes the state for all provinces.</dd>
 
 <dt><tt>dut</tt>
-<dd>The DUT sign and magnitude shows the current UT1 offset relative to
-the displayed UTC time, in deciseconds.</dd>
+<dd>The DUT sign and magnitude shows the current UT1 offset relative to the displayed UTC time, in deciseconds.</dd>
 
 <dt><tt>lset</tt>
-<dd>Before the clock is set, the interval since last set is the number
-of minutes since the program was started; after the clock is set, this
+<dd>Before the clock is set, the interval since last set is the number of minutes since the program was started; after the clock is set, this
 is number of minutes since the time was last verified relative to the
 broadcast signal.</dd>
 
@@ -455,24 +210,18 @@ control should be set for a value midway in this range.
 if not.</dd>
 
 <dt><tt>bcnt</tt>
-<dd>The number of format A bursts received during the most recent minute
-bursts were received.</dd>
+<dd>The number of format A bursts received during the most recent minute bursts were received.</dd>
 
 <dt><tt>dist</tt>
-<dd>The minimum decoding distance determined during the most recent
-minute bursts were received.</dd>
+<dd>The minimum decoding distance determined during the most recent minute bursts were received.</dd>
 
 <dt><tt>tsmp</tt>
-<dd>The number of timestamps determined during the most recent
-minute bursts were received.</dd>
+<dd>The number of timestamps determined during the most recent minute bursts were received.</dd>
 </dl>
 
 <h4>Modes</h4>
 
-<p>The <tt>mode</tt> keyword of the <tt>server</tt> configuration
-command specifies the ICOM ID select code. A missing or zero argument
-disables the CI-V interface. Following are the ID select codes for the
-known radios.
+<p>The <tt>mode</tt> keyword of the <tt>server</tt> configuration command specifies the ICOM ID select code. A missing or zero argument disables the CI-V interface. Following are the ID select codes for the known radios.
 
 <p><table cols=6 width=100%>
 
@@ -555,32 +304,25 @@ known radios.
 <dl>
 
 <dt><tt>time1 <I>time</I></tt></dt>
-<dd>Specifies the propagation delay for CHU (45:18N 75:45N), in seconds
-and fraction, with default 0.0.</dd>
+<dd>Specifies the propagation delay for CHU (45:18N 75:45N), in seconds and fraction, with default 0.0.</dd>
 
 <dt><tt>time2 <I>time</I></tt></dt>
 <dd>Not used by this driver.</dd>
 
 <dt><tt>stratum <I>number</I></tt></dt>
-<dd>Specifies the driver stratum, in decimal from 0 to 15, with default
-0.</dd>
+<dd>Specifies the driver stratum, in decimal from 0 to 15, with default 0.</dd>
 
 <dt><tt>refid <I>string</I></tt></dt>
-<dd>Specifies the driver reference identifier, an ASCII string from one
-to four characters, with default <tt>CHU</tt>.</dd>
+<dd>Specifies the driver reference identifier, an ASCII string from one to four characters, with default <tt>CHU</tt>.</dd>
 
 <dt><tt>flag1 0 | 1</tt></dt>
 <dd>Not used by this driver.</dd>
 
 <dt><tt>flag2 0 | 1</tt></dt>
-<dd>When the audio driver is compiled, this flag selects the audio input
-port, where 0 is the mike port (default) and 1 is the line-in port. It
-does not seem useful to select the compact disc player port.</dd>
+<dd>When the audio driver is compiled, this flag selects the audio input port, where 0 is the mike port (default) and 1 is the line-in port. It does not seem useful to select the compact disc player port.</dd>
 
 <dt><tt>flag3 0 | 1</tt></dt>
-<dd>When the audio driver is compiled, this flag enables audio
-monitoring of the input signal. For this purpose, the speaker volume
-must be set before the driver is started.</dd>
+<dd>When the audio driver is compiled, this flag enables audio monitoring of the input signal. For this purpose, the speaker volume must be set before the driver is started.</dd>
 
 <dt><tt>flag4 0 | 1</tt></dt>
 <dd>Enable verbose <tt>clockstats</tt> recording if set.</dd>
@@ -588,9 +330,8 @@ must be set before the driver is started.</dd>
 </dl>
 
 <h4>Additional Information</h4>
+
 <A HREF="refclock.htm">Reference Clock Drivers</A>
 <br><A HREF="audio.htm">Reference Clock Audio Drivers</A>
 
-<hr><a href=index.htm><img align=left src=pic/home.gif></a><address><a
-href=mailto:mills@udel.edu> David L. Mills &lt;mills@udel.edu&gt;</a>
-</address></a></body></html>
+<hr><a href=index.htm><img align=left src=pic/home.gif></a><address><a href=mailto:mills@udel.edu> David L. Mills &lt;mills@udel.edu&gt;</a></address></a></body></html>
index 7caa3ef07a702821589191225523c42333aeb4b7..e39183083724b2a3b440badb7a84ba554176e5b9 100644 (file)
@@ -4,7 +4,7 @@ Executive Summary - Computer Network Time Synchronization
 Executive Summary - Computer Network Time Synchronization
 </h3>
 
-<img align=left src=pic/alice12.gif><a href=pictures.htm>
+<img align=left src=pic/alice12.gif><a href=http://www.eecis.udel.edu/~mills/pictures.htm>
 from <i>Alice's Adventures in Wonderland</i>, Lewis Carroll</a>
 
 <p>The executive is the one on the left.
index 80274535ecda3d03aaa5ea4d22476059ed5dc593..6bf64fc172c2aeef684592fb19135fcb414dd27a 100644 (file)
@@ -8,104 +8,41 @@ Gadget Box PPS Level Converter and CHU Modem
 
 <br clear=left><hr>
 
-<p><h4>Introduction</h4>
-
-<p>Many radio clocks used as a primary reference source for NTP servers
-produce a pulse-per-second (PPS) signal that can be used to improve
-accuracy to a high degree. However, the signals produced are usually
-incompatible with the modem interface signals on the serial ports used
-to connect the signal to the host. The gadget box consists of a handful
-of electronic components assembled in a small aluminum box. It includes
-level converters and a optional radio modem designed to decode the radio
-timecode signals transmitted by the Canadian time and frequency station
-CHU. A complete set of schematics, PCB artwork, drill templates can be
-obrtained via the web as the distribution <a href=
-"http://www.eecis.udel.edu/~mills/ntp/ntp">gadget.tar.Z</a>, or by
-anonymous FTP from ftp.udel.edu in the <TT>pub/ntp</TT> directory.
-
-<p>The gadget box is assembled in a 5&quot;x3&quot;x2&quot; aluminum
-minibox containing the level converter and modem circuitry. It includes
-two subcircuits. One of these converts a TTL positive edge into a fixed-
-width pulse at EIA levels and is for use with a timecode receiver or
-oscillator including a TTL PPS output. The other converts the timecode
-modulation broadcast by Canadian time/frequency standard station CHU
-into a 300-bps serial character stream at EIA levels and is for use with
-the <code>tty_clk</code> and <code>chu_tty</code> line disciplines in
-the ntp3 distribution.
-
-<p>This archive contains complete construction details for the gadget
-box, including schematic, parts list and artwork for a two-sided,
-printed-circuit board. All files are in PostScript, with the exception
-of this file and an information file, which are in ASCII. The artwork is
-in the 1:1 scale and is suitable for direct printing on photographic
-resist for each side of the board. While a plated-through-holes process
-is most convenient, it is possible to bridge the two sides using
-soldered wires where necessary.
-
-<p><h4>Circuit Description</h4>
-
-<p>Following is a brief functional description of the device. See the
-schematic diagram gadget.s01 for reference. The audio output of a
-shortwave radio tuned to CHU at 3330, 7335 or 14670 kHz is connected to
-J2. A level of at least 30 mV peak-peak is required, such as provided by
-the recorder output on many receivers. The input level is adjusted by
-potentiometer R8 so that the timecode modulation broadcast at 31-39
-seconds past the minute reliably lights green LED1, but the signals
-broadcast during other seconds of the minute do not.
-
-<p>Opamp U4A provides low-impedance drive for the bridged-tee bandpass
-filter U4B. The filter has a bandpass of about 600 Hz at the 6-dB points
-and a center frequency of about 2150 Hz. It is designed to avoid
-aliasing effects with receivers of relatively wide bandpass
-characteristics. The modem itself is implemented by U2 and its
-associated circuitry. Resistors R4 and R1 are a 40-dB pad which matches
-the filter output to the modem input. U2 is a TTL/EIA level converter
-with integral power supply for bipolar signals. The modem output is
-available at pin 3 (receive data) of DB25 connector J1.
-
-<p>The TTL PPS signal is connected via J3 to a retriggerable one-shot
-U3A, which generates a TTL pulse of width determined by potentiometer
-R7. The pulse width is determined by the bit rate of the attached serial
-port. In the common case the width is one bit-time, such as 26 us for
-38.4 kbps, for example. This appears to the port as a single start bit
-of zero followed by eight bits of ones and a stop bit of one. The second
-one-shot U3B generates a 200-ms pulse suitable for driving the amber
-LED3 as a visual monitor. The output of U3A is converted to EIA levels
-by U1 and appears at pin 12 (secondary receive data) of J1.
-
-<p>If only the PPS circuit is required, U2 and U4 can be deleted and the
-gadget box powered from the EIA modem-control signal at pin 20 (terminal
-ready) of J1, assuming this signal is placed in the on (positive
-voltage) condition by the computer program. J1 is wired to keep most
-finicky UARTs and terminal-driver programs happy. If the CHU circuit is
-required, an external 12-volt AC transformer or 9-12-volt DC supply
-connected to J4 is required. Red LED2 indicates power is supplied to the
-box.
+<h4>Introduction</h4>
+
+<p>Many radio clocks used as a primary reference source for NTP servers produce a pulse-per-second (PPS) signal that can be used to improve accuracy to a high degree. However, the signals produced are usually incompatible with the modem interface signals on the serial ports used to connect the signal to the host. The gadget box consists of a handful of electronic components assembled in a small aluminum box. It includes level converters and a optional radio modem designed to decode the radio timecode signals transmitted by the Canadian time and frequency station CHU. A complete set of schematics, PCB artwork, drill templates can be obrtained via the web as the distribution <a href= "http://www.eecis.udel.edu/~mills/ntp/ntp">gadget.tar.Z</a>, or by anonymous FTP from ftp.udel.edu in the <TT>pub/ntp</TT> directory.
+
+<p>The gadget box is assembled in a 5&quot;x3&quot;x2&quot; aluminum minibox containing the level converter and modem circuitry. It includes two subcircuits. One of these converts a TTL positive edge into a fixed-width pulse at EIA levels and is for use with a timecode receiver or oscillator including a TTL PPS output. The other converts the timecode modulation broadcast by Canadian time/frequency standard station CHU into a 300-bps serial character stream at EIA levels and is for use with the <a href=driver7.htm>Radio CHU Audio Demodulator/Decoder</a> driver.
+
+<p>This archive contains complete construction details for the gadget box, including schematic, parts list and artwork for a two-sided, printed-circuit board. All files are in PostScript, with the exception of this file and an information file, which are in ASCII. The artwork is in the 1:1 scale and is suitable for direct printing on photographic resist for each side of the board. While a plated-through-holes process is most convenient, it is possible to bridge the two sides using soldered wires where necessary.
+
+<h4>Circuit Description</h4>
+
+<p>Following is a brief functional description of the device. See the schematic diagram gadget.s01 for reference. The audio output of a shortwave radio tuned to CHU at 3330, 7335 or 14670 kHz is connected to J2. A level of at least 30 mV peak-peak is required, such as provided by the recorder output on many receivers. The input level is adjusted by potentiometer R8 so that the timecode modulation broadcast at 31-39 seconds past the minute reliably lights green LED1, but the signals broadcast during other seconds of the minute do not.
+
+<p>Opamp U4A provides low-impedance drive for the bridged-tee bandpass filter U4B. The filter has a bandpass of about 600 Hz at the 6-dB points and a center frequency of about 2150 Hz. It is designed to avoid aliasing effects with receivers of relatively wide bandpass characteristics. The modem itself is implemented by U2 and its associated circuitry. Resistors R4 and R1 are a 40-dB pad which matches the filter output to the modem input. U2 is a TTL/EIA level converter with integral power supply for bipolar signals. The modem output is available at pin 3 (receive data) of DB25 connector J1.
+
+<p>The TTL PPS signal is connected via J3 to a retriggerable one-shot U3A, which generates a TTL pulse of width determined by potentiometer R7. The pulse width is determined by the bit rate of the attached serial port. In the common case the width is one bit-time, such as 26 us for 38.4 kbps, for example. This appears to the port as a single start bit of zero followed by eight bits of ones and a stop bit of one. The second one-shot U3B generates a 200-ms pulse suitable for driving the amber LED3 as a visual monitor. The output of U3A is converted to EIA levels by U1 and appears at pin 12 (secondary receive data) of J1.
+
+<p>If only the PPS circuit is required, U2 and U4 can be deleted and the gadget box powered from the EIA modem-control signal at pin 20 (terminal ready) of J1, assuming this signal is placed in the on (positive voltage) condition by the computer program. J1 is wired to keep most finicky UARTs and terminal-driver programs happy. If the CHU circuit is required, an external 12-volt AC transformer or 9-12-volt DC supply
+connected to J4 is required. Red LED2 indicates power is supplied to the box.
 
 <p>Files
 
-<p>Following is a list of files included in this archive. All files are
-in PostScript, except the <code>README</code> and
-<code>gadget.lst</code> files, which are in ASCII. The files
-<code>gadget.s01, gadget.s02</code> and <code>gadget.lst</code> were
-generated using the Schema schematic-capture program from Omation. The
-printed-circuit files <code>*.lpr</code> were generated using Schema-
-PCB, also from Omation.
+<p>Following is a list of files included in this archive. All files are in PostScript, except the <tt>README</tt> and <tt>gadget.lst</tt> files, which are in ASCII. The files <tt>gadget.s01, gadget.s02</tt> and <tt>gadget.lst</tt> were generated using the Schema schematic-capture program from Omation. The printed-circuit files <tt>*.lpr</tt> were generated using Schema-PCB, also from Omation.
 
 <p>Files
 
-<p><code>README</code> - helpful information
-<br><code>gadget.s01</code> - circuit schematic
-<br><code>gadget.s02</code> - minibox assembly drawing
-<br><code>gadget.lst</code> - net list, pin list, parts list, etc.
-<br><code>gen0102.lpr</code> - pcb x-ray diagram
-<br><code>art01.lpr</code> - pcb artword side 1
-<br><code>art02.lpr</code> - pcb artwork side 2
-<br><code>adt0127.lpr</code> - pcb assembly drawing
-<br><code>dd0124.lpr</code> - pcb drill drawing
-<br><code>sm0228.lpr</code> - pcb solder mask (side 2)
-<br><code>sst0126.lpr</code> - pcb silkscreen mask (side 1)
-
-<hr><a href=index.htm><img align=left src=pic/home.gif></a><address><a
-href=mailto:mills@udel.edu> David L. Mills &lt;mills@udel.edu&gt;</a>
-</address></a></body></html>
+<p><tt>README</tt> - helpful information
+<br><tt>gadget.s01</tt> - circuit schematic
+<br><tt>gadget.s02</tt> - minibox assembly drawing
+<br><tt>gadget.lst</tt> - net list, pin list, parts list, etc.
+<br><tt>gen0102.lpr</tt> - pcb x-ray diagram
+<br><tt>art01.lpr</tt> - pcb artword side 1
+<br><tt>art02.lpr</tt> - pcb artwork side 2
+<br><tt>adt0127.lpr</tt> - pcb assembly drawing
+<br><tt>dd0124.lpr</tt> - pcb drill drawing
+<br><tt>sm0228.lpr</tt> - pcb solder mask (side 2)
+<br><tt>sst0126.lpr</tt> - pcb silkscreen mask (side 1)
+
+<hr><a href=index.htm><img align=left src=pic/home.gif></a><address><a href=mailto:mills@udel.edu> David L. Mills &lt;mills@udel.edu&gt;</a></address></a></body></html>
index baa4ba2212791b308fc83bf5cce318f2a5dfe224..871e7608461e5188a5a146015b8f252376377d6e 100644 (file)
@@ -2,7 +2,13 @@
 <tt>ntp_genkeys</tt> - generate public and private keys
 </title></head><body><h3>
 <tt>ntp_genkeys</tt> - generate public and private keys
-</h3><hr>
+</h3>
+
+<img align=left src=pic/alice23.gif><a href=http://www.eecis.udel.edu/~mills/pictures.htm>
+from <i>Alice's Adventures in Wonderland</i>, Lewis Carroll</a>
+
+<p>Alice holds the key.
+<br clear=left><hr>
 
 <h4>Synopsis</h4>
 
index 066b4dba899a5e50e6a50b7398c5a7c341ed282e..fcb533b0cbeee2448f471a344ae3efa45dfe2409 100644 (file)
@@ -2,7 +2,13 @@
 Hints and Kinks
 </title></head><body><h3>
 Hints and Kinks
-</h3><hr>
+</h3>
+
+<img align=left src=pic/alice35.gif><a href=http://www.eecis.udel.edu/~mills/pictures.htm>
+from <i>Alice's Adventures in Wonderland</i>, Lewis Carroll</a>
+
+<p>Mother in law has all the answers.
+<br clear=left><hr>
 
 <p>This is an index for a set of troubleshooting notes contained in
 individual text files in the <tt>./hints</tt> directory. They were
@@ -19,7 +25,7 @@ the computer manufacturer (and model numbers where appropriate),
 operating system (specific version(s) where appropriate), problem
 description, problem solution and submitter's name and electric address.
 If the submitter is willing to continue debate on the problem, please so
-advise. Bash <a href=http:hints>here</a> for a directory listing.
+advise. See the <a href=http:hints>directory listing</a>.
 
 <hr><a href=index.htm><img align=left src=pic/home.gif></a><address><a
 href=mailto:mills@udel.edu> David L. Mills &lt;mills@udel.edu&gt;</a>
index 7d03df9cdd8c17ac39e698c08803b624b56ac363..6e082425ca7bc66265e40e2781bf240c737525a9 100644 (file)
@@ -2,7 +2,12 @@
 How to Write a Reference Clock Driver
 </title></head><body><h3>
 How to Write a Reference Clock Driver
-</h3><hr>
+</h3>
+
+<img align=left src=pic/pogo4.gif><a href=http://www.eecis.udel.edu/~mills/pictures.htm>from <i>Pogo</i>, Walt Kelly</a>
+
+<p>You need a little magic.
+<br clear=left><hr>
 
 <h4>Description</h4>
 
index 1631a634c4371da4a1e0bd94a76adf535476dc37..04e5a7d864158abd32167823520c3778550ea876 100644 (file)
@@ -4,18 +4,18 @@ The Network Time Protocol (NTP) Distribution
 The Network Time Protocol (NTP) Distribution
 </h3>
 
-<IMG align=left SRC=pic/barnstable.gif>From <i>pogo</i>, Walt Kelly
+<img align=left src=pic/barnstable.gif><a href=http://www.eecis.udel.edu/~mills/pictures.htm><i>P.T. Bridgeport Bear</i>; from <i>Pogo</i>, Walt Kelly</a>
 
 <p>Pleased to meet you.
-<br clear=left><HR>
+<br clear=left><hr>
 
 <h4>Introduction</h4>
 
 Note: The software contained in this distribution is available without charge under the conditions set forth in the <a href=copyright.htm>Copyright Notice</a>.
 
-<p>The Network Time Protocol (NTP) is used to synchronize the time of a computer client or server to another server or reference time source, such as a radio or satellite receiver or modem. It provides client accuracies typically within a millisecond on LANs and up to a few tens of milliseconds on WANs relative to a primary server synchronized to Coordinated Universal Time (UTC) via a Global Positioning Service (GPS) receiver, for example. Typical NTP configurations utilize multiple redundant servers and diverse network paths, in order to achieve high accuracy and reliability. Some configurations include cryptographic authentication to prevent accidental or malicious protocol attacks.
+<p>The Network Time Protocol (NTP) is used to synchronize the time of a computer client or server to another server or reference time source, such as a radio or satellite receiver or modem. It provides accuracies typically within a millisecond on LANs and up to a few tens of milliseconds on WANs relative to Coordinated Universal Time (UTC) via a Global Positioning Service (GPS) receiver, for example. Typical NTP configurations utilize multiple redundant servers and diverse network paths in order to achieve high accuracy and reliability. Some configurations include cryptographic authentication to prevent accidental or malicious protocol attacks and some provide automatic server discovery using IP multicast.
 
-<p>Background information on computer network time synchronization can be found on the <a href=exec.htm>Executive Summary - Computer Network Time Synchronization</a> page. Discussion on protocol conformance issues and interoperability with previous NTP versions can be found in the <a href=biblio.htm>Protocol Conformance Statement</a> page. Discussion on year-2000 issues can be found in the <a href=y2k.htm>Year 2000 Conformance Statement page</a>. Background information, bibliography and briefing slides suitable for presentations can be found in the <a href=http://www.eecis.udel.edu/~mills/ntp.htm> Network Time Synchronization Project</a> page. Additional information can be found at the NTP web site <tt>www.ntp.org</tt>. Please send bug reports to <a href=mailto:bugs@mail.ntp.org>&lt;bugs@mail.ntp.org&gt;</a>.
+<p>Background information on computer network time synchronization can be found on the <a href=exec.htm>Executive Summary - Computer Network Time Synchronization</a> page. Discussion on protocol conformance issues and interoperability with previous NTP versions can be found in the <a href=biblio.htm>Protocol Conformance Statement</a> page. Discussion on year-2000 issues can be found in the <a href=y2k.htm>Year 2000 Conformance Statement page</a>. Background information, bibliography and briefing slides suitable for presentations can be found in the <a href=http://www.eecis.udel.edu/~mills/ntp.htm> Network Time Synchronization Project</a> page. Additional information can be found at the NTP web site <a href=http://www.ntp.org>www.ntp.org</a>. Please send bug reports to <a href=mailto:bugs@mail.ntp.org>&lt;bugs@mail.ntp.org&gt;</a>.
 
 <h4>Building and Installing NTP</h4>
 
@@ -27,11 +27,11 @@ The <a href=build.htm>Building and Installing the Distribution</a> page presents
 
 <p>NTP is by its very nature a complex distributed network application and can be configured and used for a great many widely divergent timekeeping scenarios. The documentation presented on these pages attempts to cover the entire suite of configuration, operation and maintenance facilities which this distribution supports. However, most applications will need only a few of these facilities. If this is the case, the <a href=quick.htm>Quick Start</a> page may be useful to get a simple workstation on the air with an existing server.
 
-<p>However, in order to participate in the existing NTP synchronization subnet and obtain accurate, reliable time, it is usually necessary to construct an appropriate configuration file, commonly called <tt>ntp.conf</tt>, which establishes the servers and/or external receivers or modems to be used by this particular machine. Directions for constructing this file are in the <a href=notes.htm>Notes on Configuring NTP and Setting up a NTP Subnet</a> page. However, in many common cases involving simple network topologies and workstations, the file data can be specified entirely on the command line.
+<p>However, in order to participate in the existing NTP synchronization subnet and obtain accurate, reliable time, it is usually necessary to construct an appropriate configuration file, commonly called <tt>ntp.conf</tt>, which establishes the servers and/or external receivers or modems to be used by this particular machine. Directions for constructing this file are in the <a href=notes.htm>Notes on Configuring NTP and Setting up a NTP Subnet</a> page. However, in many common cases involving simple network topologies and workstations, the cpnfiguration data can be specified entirely on the command line for the <a href=ntpd.htm><tt>ntpd</tt> - Network Time Protocol (NTP) daemon</a>.
 
-<p>The most important factor in providing accurate, reliable time is the selection of modes and servers to be used in the configuration file. NTP support for one or more computers is normally engineered as part of the existing NTP synchronization subnet. The existing NTP subnet consists of a multiply redundant hierarchy of servers and clients, with each level in the hierarchy identified by stratum number. Primary servers operate at stratum one and provide synchronization to secondary servers operating at stratum two and so on to higher strata. In this hierarchy, clients are simply servers that have no dependents.
+<p>The most important factor in providing accurate, reliable time is the selection of modes and servers to be used in the configuration file. A discussion on the available modes is on the <a href=assoc.htm>Association Management</a> page. NTP support for one or more computers is normally engineered as part of the existing NTP synchronization subnet. The existing NTP subnet consists of a multiply redundant hierarchy of servers and clients, with each level in the hierarchy identified by stratum number. Primary servers operate at stratum one and provide synchronization to secondary servers operating at stratum two and so on to higher strata. In this hierarchy, clients are simply servers that have no dependents.
 
-<p>The NTP subnet in late 2000 includes 103 public primary (stratum 1) servers synchronized directly to UTC by radio, satellite or modem and located in every continent of the globe, including Antarctica. Normally, client workstations and servers with a relatively small number of clients do not synchronize to primary servers. There are 116 public secondary (stratum 2) servers synchronized to the primary servers and providing synchronization to a total in excess of 100,000 clients and servers in the Internet. The current lists are maintained in the <a href=http://www.eecis.udel.edu/~mills/ntp/index.htm>Information on Time and Frequency Services</a> page, which is updated frequently. There are numerous private primary and secondary servers not normally available to the public as well. You are strongly discouraged from using these servers, since they sometimes hide in little ghettos behind dinky links to the outside world and your traffic can bring up expensive ISDN lines, causing much grief and frustration.
+<p>The NTP subnet in late 2000 includes pver a hundred public primary (stratum 1) servers synchronized directly to UTC by radio, satellite or modem and located in every continent of the globe, including Antarctica. Normally, client workstations and servers with a relatively small number of clients do not synchronize to primary servers. There are over a hundred public secondary (stratum 2) servers synchronized to the primary servers and providing synchronization to a total in excess of 100,000 clients and servers in the Internet. The current lists are maintained in the <a href=http://www.eecis.udel.edu/~mills/ntp/index.htm>Information on Time and Frequency Services</a> page, which is updated frequently. There are numerous private primary and secondary servers not normally available to the public as well. You are strongly discouraged from using these servers, since they sometimes hide in little ghettos behind dinky links to the outside world and your traffic can bring up expensive ISDN lines, causing much grief and frustration.
 
 <h4>Resolving Problems</h4>
 
@@ -58,7 +58,7 @@ Like other things Internet, the NTP synchronization subnets tend to be large and
 
 <ul>
 
-<LI<a href=ntp.htm>NTP Reference Library</a></li>
+<li><a href=http://www.eecis.udel.edu/~mills/ntp.htm>NTP Reference Library</a></li>
 <li><a href=copyright.htm>Copyright Notice</a></li>
 <li><a href=exec.htm>Executive Summary - Computer Network Time Synchronization</a></li>
 <li><a href=biblio.htm>Protocol Conformance Statement</a></li>
@@ -84,8 +84,11 @@ Like other things Internet, the NTP synchronization subnets tend to be large and
 <li><a href=pps.htm>Pulse-per-second (PPS) Signal Interfacing</a></li>
 <li><a href=gadget.htm>Gadget Box PPS Level Converter and CHU Modem</a></li>
 <li><a href=measure.htm>Time and Time Interval Measurement with Application to Computer and Network Performance Evaluation</a></li>
-<li><a href=kern.htm>A Kernel Model for Precision Timekeeping</a></li>
-<li><a href=kernpps.htm>A Kernel Programming Interface for Precision Time Signals</a></li>
+<li><a href=kern.htm>Kernel Model for Precision Timekeeping</a></li>
+<li><a href=kernpps.htm>Kernel Programming Interface for Precision Time Signals</a></li>
+
 </ul>
 
-<hr><a href=index.htm><img align=left src=pic/home.gif></a><address><a href=mailto:mills@udel.edu>David L. Mills &lt;mills@udel.edu&gt;</a></address></a></body></html>
+<hr><center><img src=pic/pogo1a.gif></center>
+
+<a href=index.htm><img align=left src=pic/home.gif></a><address><a href=mailto:mills@udel.edu>David L. Mills &lt;mills@udel.edu&gt;</a></address></a></body></html>
index d7a944f14e40ff493495cfa6c349bc8f1be8ab9c..05ec89a5b05953f032c1de18d226be910166c82b 100644 (file)
@@ -1,15 +1,29 @@
 <html><head><title>
-Kernel Model for Precision Timekeeping
+Kernel Model for Precision Timekeeping
 </title></head><body><h3>
-Kernel Model for Precision Timekeeping
+Kernel Model for Precision Timekeeping
 </h3><hr>
 
-<p>The technical memorandum: Mills, D.L. Unix kernel modifications for precision time synchronization. Electrical Engineering Department Report 94-10-1, University of Delaware, October 1994, 24 pp. Abstract: <a href=http://www.eecis.udel.edu/~mills/database/reports/kern/kerna.ps>PostScript</a> | <a href=http://www.eecis.udel.edu/~mills/database/reports/kern/kerna.pdf>PDF</a>, Body: <a href=http://www.eecis.udel.edu/~mills/database/reports/kern/kernb.ps>PostScript</a> | <a href=http://www.eecis.udel.edu/~mills/database/reports/kern/kernb.pdf>PDF</a> Major revision and update of: Network Working Group Report RFC-1589, University of Delaware, March 1994. 31 pp. <a href=http://www.eecis.udel.edu/~mills/database/rfc/rfc1589.txt>ASCII</a>, describes an engineering model which implements a precision time-of-day function for a generic operating system. The model is based on the principles of disciplined oscillators using phase-lock loops (PLL) and frequency-lock loops (FLL) often found in the engineering literature. The model uses a hybrid PLL/FLL discipline algorithm implemented in the kernel. The hybrid loop provides automatic time and frequency steering with update intervals from a few seconds to over one day.
+<p>The technical report [2], which is a major revision and update of an earlier report [3], describes an engineering model for a precision time-of-day function for a generic operating system. The model is based on the principles of disciplined oscillators using phase-lock loops (PLL) and frequency-lock loops (FLL) often found in the engineering literature. The model uses a hybrid PLL/FLL discipline algorithm implemented in the kernel. The hybrid loop provides automatic time and frequency steering with update intervals from a few seconds to over one day.
 
-<p>The hybrid PLL/FLL has been implemented in the Unix kernels for several operating systems, including FreeBSD and Linux and those made by Sun Microsystems, Digital/Compaq and Hewlett Packard. The modifications are currently included in the licensed kernels for Digital Unix 4.0 (aka Tru64) and Sun Solaris 2.8. Since the modifications involve proprietary kernel interface code, they cannot be provided for other licensed kernels directly. Inquiries should be directed to the manufacturer's representatives. The software and documentation, including a simulator with code segments almost identical to the implementations, but not involving licensed code, is available via the web at <a HREF="http://www.eecis.udel.edu/~mills/ntp/ntp">kernel.tar.Z</a> or by anonymous FTP from ftp.udel.edu in the <tt>pub/ntp</tt> directory.
+<p>The hybrid PLL/FLL has been implemented in the Unix kernels for several operating systems, including FreeBSD and Linux and those made by Sun Microsystems, Digital/Compaq and Hewlett Packard. The modifications are currently included in the licensed kernels for Digital Unix 4.0 (aka Tru64) and Sun Solaris 2.8. Since the modifications involve proprietary kernel interface code, they cannot be provided for other licensed kernels directly. Inquiries should be directed to the manufacturer's representatives. The software and documentation, including a simulator with code segments almost identical to the implementations, but not involving licensed code, is called <tt>nanokernel.tar.gz</tt> and available via the web at <a href=http://www.ntp.org>www.ntp.org</a> or by anonymous FTP from ftp.udel.edu in the <tt>pub/ntp/software</tt> directory.
 
-<p>Recently, the model has been re-implemented to support a nanosecond system clock. Implementations are available for Linux, FreeBSD, SunOS and Tru64; however, only the Linux and FreeBSD implementations, which are included in recent system versions, are directly available. The software and documentation, including a simulator with code segments almost identical to the implementations, but not involving licensed code, is available via the web at <a HREF="http://www.eecis.udel.edu/~mills/ntp/ntp">nanokernel.tar.gz</a> or by anonymous FTP from ftp.udel.edu in the <tt>pub/ntp/software</tt> directory.
+<p>Recently [1], the model has been re-implemented to support a nanosecond system clock. The <tt>/usr/include/sys/timex.h</tt> header file defines the applications programming interface (API) routines and data structures. Implementations are available for Linux, FreeBSD, SunOS and Tru64; however, only the Linux and FreeBSD implementations, which are included in recent system versions, are directly available. The software and documentation, including a simulator with code segments almost identical to the implementations, but not involving licensed code, is called <tt>nanokernel.tar.gz</tt> and available via the web at <a href=http://www.ntp.org>www.ntp.org</a> or by anonymous FTP from ftp.udel.edu in the <tt>pub/ntp/software</tt> directory.
 
-<p>The model changes the way the system clock is adjusted in time and frequency, as well as provides mechanisms to discipline its time and frequency to an external precision timing source, such as described in the <a href=pps.htm>Pulse-per-second (PPS) Signal Interfacing</a> page. The model incorporates a generic system-call interface for use with the Network Time Protocol (NTP) or similar time synchronization protocol. The NTP software daemons for Version 3 <tt>xntpd</tt> and Version 4 <tt>ntpd</tt> operate with this model to provide synchronization limited in principle only by the accuracy and stability of the external timing source. There are two new system calls defined in the model, <tt>ntp_gettime()</tt>, which returns a structure including the current time, estimated error and maximum error, and <tt>ntp_adjtime()</tt>, which provides a means to adjust kernel variables, including the current time and frequency offsets. Further information on the calling sequences and variable definitions are in the <tt>/usr/include/sys/timex.h</tt> file.
+<p>The model changes the way the system clock is adjusted in time and frequency, as well as provides mechanisms to discipline its time and frequency to an external precision timing source, such as described in the <a href=pps.htm>Pulse-per-second (PPS) Signal Interfacing</a> page. The model incorporates a generic system call interface for use with the NTP or similar time synchronization protocol. The NTP software daemons for Version 3 <tt>xntpd</tt> and Version 4 <tt>ntpd</tt> use this API to provide synchronization limited in principle only by the accuracy and stability of the external timing source. There are two new system calls defined in <tt>timex.h</tt>, <tt>ntp_gettime()</tt>, which returns a structure including the current time, estimated error and maximum error, and <tt>ntp_adjtime()</tt>, which provides a means to adjust kernel variables, including the current time and frequency offsets.
+
+<p>These kernel modifications are normally used in conjunction with a kernel hardware interface such as described in the <a href=kernpps.htm>Kernel Programming Interface for Precision Time Signals</a> page.
+
+<h4>References</h4>
+
+<ol>
+
+<p><li>Mills, D.L., and P.-H. Kamp. The nanokernel. <i>Proc. Precision Time and Time Interval (PTTI) Applications and Planning Meeting</i> (Reston VA, November 2000). Paper: <a href=database/papers/nano/nano2.ps>PostScript</a> | <a href=http://www.eecis.udel.edu/~mills/database/papers/nano/nano2.pdf>PDF</a>, Slides: <a href=http://www.eecis.udel.edu/~mills/database/brief/nano/nano.htm>HTML</a> | <a href=http://www.eecis.udel.edu/~mills/database/brief/nano/nano.ps>PostScript</a> | <a href=http://www.eecis.udel.edu/~mills/database/brief/nano/nano.pdf>PDF</a> | <a href=http://www.eecis.udel.edu/~mills/database/brief/nano/nano.ppt>PowerPoint</a></li>
+
+<p><li>Mills, D.L. Unix kernel modifications for precision time synchronization. Electrical Engineering Department Report 94-10-1, University of Delaware, October 1994, 24 pp. Abstract: <a href=http://www.eecis.udel.edu/~mills/database/reports/kern/kerna.ps>PostScript</a> | <a href=database/reports/kern/kerna.pdf>PDF</a>, Body: <a href=http://www.eecis.udel.edu/~mills/database/reports/kern/kernb.ps>PostScript</a> | <a href=http://www.eecis.udel.edu/~mills/database/reports/kern/kernb.pdf>PDF</a></li>
+
+<p><li>Mills, D.L. A kernel model for precision timekeeping. Network Working Group Report RFC-1589, University of Delaware, March 1994. 31 pp. <a href=http://www.eecis.udel.edu/~mills/database/rfc/rfc1589.txt>ASCII</a></li>
+
+</ol>
 
 <hr><a href=index.htm><img align=left src=pic/home.gif></a><address><a href=mailto:mills@udel.edu>David L. Mills &lt;mills@udel.edu&gt;</a></address></a></body></html>
index fe003f78d17f289791c917b72f785880d0556e92..d9c964315fa2881977b49fecf68c9d28351720e3 100644 (file)
@@ -1,25 +1,23 @@
 <html><head><title>
-Kernel Programming Interface for Precision Time Signals
+Kernel Programming Interface for Precision Time Signals
 Network Performance Evaluation
 </title></head><body><h3>
-Kernel Programming Interface for Precision Time Signals
+Kernel Programming Interface for Precision Time Signals
 </h3><hr>
 
-<p>The technical memorandum: <cite>A Kernel Programming Interface for
-Precision Time Signals</cite><a
-href="http://www.eecis.udel.edu/~mills/database/memos/memo96c.ps">
-(PostScript) </a> describes a proposed programming interface for
-external precision time signals, such as the pulse-per-second (PPS)
-signal generated by some radio clocks and cesium oscillators.
-
-<p>The memorandum argues for a generic capability in the ubiquitous Unix
-kernel, which could be used for a wide variety of measurement
-applications, including network time synchronization and experiments
-involving performance measurement and evaluation of computer networks
-and transmission systems. The hardware to do this requires only a serial
-port and a modem control lead, such as the data carrier detect (DCD)
-lead, which can be driven by an external source via a level
-converter/pulse generator.
+<p>The technical report [1] describes a proposed application programming interface (API) for external precision time signals, such as the pulse-per-second (PPS) signal generated by some radio clocks and cesium oscillators. The report argues for a generic capability in the ubiquitous Unix kernel, which could be used for a wide variety of measurement applications, including network time synchronization and experiments involving performance measurement and evaluation of computer networks and transmission systems. The hardware to do this requires only a serial port and a modem control lead, such as the data carrier detect (DCD) lead, which can be driven by an external source via a level converter/pulse generator.
+
+<p>Support for this API has been implemented in the NTP Version 4 software distribution. The <tt>/usr/include/sys/timepps.h</tt> header file defines the API interface routines and data structures. The API obsoletes previous APIs based on the <tt>tty_clock</tt> and <tt>ppsclock</tt> line disciplines and streams modules, which are no longer supported. The API used by the <a href=driver22.htm>PPS Clock Discipline</a> driver (type 22) to support PPS signals via either a serial port or parallel port, depending on the operating system. The API is supported in stock FreeBSD from 3.4 and with the addition of the <tt>PPSkit</tt> kernel software in Linux. Limited support for Solaris from 2.8 is available using the <tt>timepps.h.solaris</tt> header file included in this distribution. Copy this file to <tt>/usr/include/sys</tt> before configuring the distributution.
+
+<p>The API is normally used in conjunction with the precision time kernel modifications described in the <a href=kern.htm>Kernel Model for Precision Timekeeping</a> page.
+
+<h4>Reference</h4>
+
+<ol>
+
+<p><li>Mogul, J., D. Mills, J. Brittenson, J. Stone and U. Windl. Pulse-per-second API for Unix-like operating systems, version 1. Request for Comments RFC-2783, Internet Engineering Task Force, March 2000, 31 pp. <a href=http://www.eecis.udel.edu/~mills/database/rfc/rfc2783.txt>ASCII</a>
+
+</ol>
 
 <hr><a href=index.htm><img align=left src=pic/home.gif></a><address><a
 href=mailto:mills@udel.edu> David L. Mills &lt;mills@udel.edu&gt;</a>
index d93a4eb7ce212d722669dfbbb672999b42c9d3d3..1806f25017fc3df540fe62c644f35e949f55b938 100644 (file)
@@ -2,7 +2,12 @@
 Miscellaneous Options
 </title></head><body><h3>
 Miscellaneous Options
-</h3><hr>
+</h3>
+
+<img align=left src=pic/boom3.gif><a href=http://www.eecis.udel.edu/~mills/pictures.htm>from <i>Pogo</i>, Walt Kelly</a>
+
+<p>We have three, now looking for more.
+<br clear=left><hr>
 
 <dl>
 
index 267bbccc93aba169b599807c7b1677a7dce0d7b6..be0fc7dea0e06c053b05c378dad5f2e6cff8953d 100644 (file)
@@ -2,7 +2,12 @@
 Monitoring Options
 </title></head><body><h3>
 Monitoring Options
-</h3><hr>
+</h3>
+
+<img align=left src=pic/pogo8.gif><a href=http://www.eecis.udel.edu/~mills/pictures.htm>from <i>Pogo</i>, Walt Kelly</a>
+
+<p>The pig watches the logs.
+<br clear=left><hr>
 
 <h4>Monitoring Support</h4>
 
index 70966a91d40b21cf8eb3d373d71e9d72cd600aea..917fc0b9953e871772c29a984d1396741c248762 100644 (file)
@@ -1,10 +1,16 @@
-<HTML><HEAD><TITLE>
-<TT>ntpd</TT> - Network Time Protocol (NTP) daemon
-</TITLE></HEAD><BODY><H3>
-<TT>ntpd</TT> - Network Time Protocol (NTP) daemon
-</H3><HR>
+<html><head><title>
+<tt>ntpd</tt> - Network Time Protocol (NTP) daemon
+</title></head><body><h3>
+<tt>ntpd</tt> - Network Time Protocol (NTP) daemon
+</h3>
 
-<H4>Synopsis</H4>
+<img align=left src=pic/alice47.gif><a href=http://www.eecis.udel.edu/~mills/pictures.htm>
+from <i>Alice's Adventures in Wonderland</i>, Lewis Carroll</a>
+
+<p>The mushroom knows all the command line options.
+<br clear=left><hr>
+
+<h4>Synopsis</h4>
 
 <TT>ntpd [ -aAbdm ] [ -c <I>conffile</I> ] [ -f <I>driftfile</I> ] [ -g
 ] [ -k <I>keyfile</I> ] [ -l <I>logfile</I> ] [ -N high ] [ -p
index a7f532fef0e58e8c880ce29b2b7ac7d86e5d5fd8..700a3b23c18a74a1327f4b4990360122f5283ec3 100644 (file)
@@ -1,16 +1,15 @@
-<HTML>
-<HEAD>
-   <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
-   <META NAME="GENERATOR" CONTENT="Mozilla/4.01 [en] (Win95; I) [Netscape]">
-   <TITLE>ntpdate - set the date and time via NTP
-</TITLE>
-</HEAD>
-<BODY>
-
-<H3>
-<TT>ntpdate</TT> - set the date and time via NTP</H3>
+<html><head><title>
+<tt>ntpdate</tt> - set the date and time via NTP
+</title></head><body><h3>
+<tt>ntpdate</tt> - set the date and time via NTP
+</h3>
+
+<img align=left src=pic/rabbit.gif><a href=http://www.eecis.udel.edu/~mills/pictures.htm>
+from <i>Alice's Adventures in Wonderland</i>, Lewis Carroll</a>
+
+<p>I told you it was eyeball and wristwatch.
+<br clear=left><hr>
 
-<HR>
 <H4>
 Synopsis</H4>
 <TT>ntpdate [ -bBdoqsuv ] [ -a <I>key</I> ] [ -e <I>authdelay</I> ] [ -k
index af89988c2bc1c068c1a2273f79dd47183147529d..e94c97642f38f0b08b748c94060f63848ada3927 100644 (file)
@@ -2,7 +2,13 @@
 ntpdc - special NTP query program
 </title></head><body><h3>
 <tt>ntpdc</tt> - special NTP query program
-</h3><hr>
+</h3>
+
+<img align=left src=pic/alice31.gif><a href=http://www.eecis.udel.edu/~mills/pictures.htm>
+from <i>Alice's Adventures in Wonderland</i>, Lewis Carroll</a>
+
+<p>This program is a big puppy.
+<br clear=left><hr>
 
 <h4>Synopsis</h4>
 
index 9f0382f5e579604ae41d7943ea07409a674d68a2..55f42516127759180704b275a16ee182cc4d94e0 100644 (file)
@@ -2,7 +2,12 @@
 ntpq - standard NTP query program
 </title></head><body><h3>
 <tt>ntpq</tt> - standard NTP query program
-</h3><HR>
+</h3>
+
+<img align=left src=pic/bustardfly.gif><a href=http://www.eecis.udel.edu/~mills/pictures.htm>from <i>Pogo</i>, Walt Kelly</a>
+
+<p>A typical NTP monitoring packet.
+<br clear=left><hr>
 
 <h4>Synopsis</h4>
 
index 950f44587527926bd722ccd49c06151d2610f3b9..778cab1519fb79c8f6034d91543abcfcf18b17fa 100644 (file)
@@ -1,90 +1,54 @@
-<HTML>
-<HEAD>
-   <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
-   <META NAME="GENERATOR" CONTENT="Mozilla/4.01 [en] (Win95; I) [Netscape]">
-   <TITLE>ntptime - read kernel time variables
-</TITLE>
-</HEAD>
-<BODY>
-
-<H3>
-<TT>ntptime</TT> - read kernel time variables</H3>
-
-<HR>
-<H4>
-Synopsis</H4>
-<TT>ntptime [ -chr ] [ -e <I>est_error</I> ] [ -f <I>frequency</I> ] [
--m <I>max_error</I> ] [ -o <I>offset</I> ] [ -s <I>status</I> ] [ -t <I>time_constant</I>
-]</TT>
-<H4>
-Description</H4>
-This program is useful only with special kernels described in the <A HREF="kern.htm">A
-Kernel Model for Precision Timekeeping </A>page. It reads and displays
-time-related kernel variables using the <TT>ntp_gettime()</TT> system call.
-A similar display can be obtained using the <TT>ntpdc</TT> program and
-<TT>kerninfo</TT> command.
-<H4>
-Options</H4>
+<HTML><HEAD><TITLE>
+ntptime - read kernel time variables
+</TITLE></HEAD><BODY><H3>
+<TT>ntptime</TT> - read kernel time variables
+</H3>
 
-<DL>
-<DT>
-<TT>-c</TT></DT>
 
-<DD>
-Display the execution time of <TT>ntptime</TT> itself.</DD>
+<img align=left src=pic/pogo5.gif><a href=http://www.eecis.udel.edu/~mills/pictures.htm>from <i>Pogo</i>, Walt Kelly</a>
+
+<p>The turtle is been swimming in the kernel.
+<br clear=left><hr>
 
-<DT>
-<TT>-e <I>est_error</I></TT></DT>
+<h4>Synopsis</H4>
 
-<DD>
-Specify estimated error, in microseconds.</DD>
+<TT>ntptime [ -chr ] [ -e <I>est_error</I> ] [ -f <I>frequency</I> ] [ -m <I>max_error</I> ] [ -o <I>offset</I> ] [ -s <I>status</I> ] [ -t <I>time_constant</I>]</TT>
 
-<DT>
-<TT>-f <I>frequency</I></TT></DT>
+<H4>Description</H4>
 
-<DD>
-Specify frequency offset, in parts per million.</DD>
+This program is useful only with special kernels described in the <A HREF="kern.htm">A Kernel Model for Precision Timekeeping </A>page. It reads and displays time-related kernel variables using the <TT>ntp_gettime()</TT> system call. A similar display can be obtained using the <TT>ntpdc</TT> program and <TT>kerninfo</TT> command.
 
-<DT>
-<TT>-h</TT></DT>
+<H4>Options</H4>
 
-<DD>
-Display help information.</DD>
+<DL>
 
-<DT>
-<TT>-m <I>max_error</I></TT></DT>
+<DT><TT>-c</TT></DT>
+<DD>Display the execution time of <TT>ntptime</TT> itself.</DD>
 
-<DD>
-Specify max possible errors, in microseconds.</DD>
+<DT><TT>-e <I>est_error</I></TT></DT>
+<DD>Specify estimated error, in microseconds.</DD>
 
-<DT>
-<TT>-o <I>offset</I></TT></DT>
+<DT><TT>-f <I>frequency</I></TT></DT>
+<DD>Specify frequency offset, in parts per million.</DD>
 
-<DD>
-Specify clock offset, in microseconds.</DD>
+<DT><TT>-h</TT></DT>
+<DD>Display help information.</DD>
 
-<DT>
-<TT>-r</TT></DT>
+<DT><TT>-m <I>max_error</I></TT></DT>
+<DD>Specify max possible errors, in microseconds.</DD>
 
-<DD>
-Display Unix and NTP times in raw format.</DD>
+<DT><TT>-o <I>offset</I></TT></DT>
+<DD>Specify clock offset, in microseconds.</DD>
 
-<DT>
-<TT>-s <I>status</I></TT></DT>
+<DT><TT>-r</TT></DT>
+<DD>Display Unix and NTP times in raw format.</DD>
 
-<DD>
-Specify clock status. Better know what you are doing.</DD>
+<DT><TT>-s <I>status</I></TT></DT>
+<DD>Specify clock status. Better know what you are doing.</DD>
 
-<DT>
-<TT>-t <I>time_constant</I></TT></DT>
+<DT><TT>-t <I>time_constant</I></TT></DT>
+<DD>Specify time constant, an integer in the range 0-10.</DD>
 
-<DD>
-Specify time constant, an integer in the range 0-10.</DD>
 </DL>
 
-<HR>
-<ADDRESS>
-David L. Mills (mills@udel.edu)</ADDRESS>
-
-</BODY>
-</HTML>
+<hr><a href=index.htm><img align=left src=pic/home.gif></a><address><a href=mailto:mills@udel.edu>David L. Mills &lt;mills@udel.edu&gt;</a></address></a></body></html>
index 675c347a566af29142264fde41cc4c3f140431f6..9b048ac9ba59652268b25ceedd88c450033dcd4e 100644 (file)
@@ -1,82 +1,57 @@
-<HTML>
-<HEAD>
-   <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
-   <META NAME="GENERATOR" CONTENT="Mozilla/4.01 [en] (Win95; I) [Netscape]">
-   <TITLE>ntptrace - trace a chain of NTP servers back to the primary
-source
-</TITLE>
-</HEAD>
-<BODY>
-
-<H3>
-<TT>ntptrace</TT> - trace a chain of NTP servers back to the primary source</H3>
-
-<HR>
-<H4>
-Synopsis</H4>
-<TT>ntptrace [ -vdn ] [ -r <I>retries</I> ] [ -t <I>timeout</I> ] [ <I>server</I>
-]</TT>
-<H4>
-Description</H4>
-<TT>ntptrace</TT> determines where a given Network Time Protocol (NTP)
-server gets its time from, and follows the chain of NTP servers back to
-their master time source. If given no arguments, it starts with <TT>localhost</TT>.
-Here is an example of the output from <TT>ntptrace</TT>:
-<PRE>% ntptrace
+<html><head><title>
+<tt>ntptrace</tt> - trace a chain of NTP servers back to the primary source
+</title></head><body><h3>
+<tt>ntptrace</tt> - trace a chain of NTP servers back to the primary source
+</h3>
+
+<img align=left src=pic/alice13.gif><a href=http://www.eecis.udel.edu/~mills/pictures.htm>
+from <i>Alice's Adventures in Wonderland</i>, Lewis Carroll</a>
+
+<p>The rabbit knows the way back.
+<br clear=left><hr>
+
+<h4>Synopsis</h4>
+
+<tt>ntptrace [ -vdn ] [ -r <I>retries</I> ] [ -t <I>timeout</I> ] [ <I>server</I>
+]</tt>
+
+<h4>Description</h4>
+
+<p><tt>ntptrace</tt> determines where a given Network Time Protocol (NTP) server gets its time from, and follows the chain of NTP servers back to their master time source. If given no arguments, it starts with <tt>localhost</tt>. Here is an example of the output from <tt>ntptrace</tt>:
+
+<p><pre>% ntptrace
 localhost: stratum 4, offset 0.0019529, synch distance 0.144135
 server2ozo.com: stratum 2, offset 0.0124263, synch distance 0.115784
 usndh.edu: stratum 1, offset 0.0019298, synch distance 0.011993, refid
-'WWVB'</PRE>
-On each line, the fields are (left to right): the host name, the host stratum,
-the time offset between that host and the local host (as measured by <TT>ntptrace</TT>;
-this is why it is not always zero for "<TT>localhost</TT>"), the host synchronization
-distance, and (only for stratum-1 servers) the reference clock ID. All
-times are given in seconds. Note that the stratum is the server hop count
-to the primary source, while the synchronization distance is the estimated
-error relative to the primary source. These terms are precisely defined
-in RFC-1305.
-<H4>
-Options</H4>
-
-<DL>
-<DT>
-<TT>-d</TT></DT>
-
-<DD>
-Turns on some debugging output.</DD>
-
-<DT>
-<TT>-n</TT></DT>
-
-<DD>
-Turns off the printing of host names; instead, host IP addresses are given.
-This may be useful if a nameserver is down.</DD>
-
-<DT>
-<TT>-r <I>retries</I></TT></DT>
-
-<DD>
-Sets the number of retransmission attempts for each host (default = 5).</DD>
-
-<DT>
-<TT>-t <I>timeout</I></TT></DT>
-
-<DD>
-Sets the retransmission timeout (in seconds) (default = 2).</DD>
-
-<DT>
-<TT>-v</TT></DT>
-
-<DD>
-Prints verbose information about the NTP servers.</DD>
-</DL>
-
-<H4>
-Bugs</H4>
-This program makes no attempt to improve accuracy by doing multiple samples.&nbsp;
-<HR>
-<ADDRESS>
-David L. Mills (mills@udel.edu)</ADDRESS>
-
-</BODY>
-</HTML>
+'WWVB'</pre>
+
+On each line, the fields are (left to right): the host name, the host stratum, the time offset between that host and the local host (as measured by <tt>ntptrace</tt>; this is why it is not always zero for "<tt>localhost</tt>"), the host synchronization distance, and (only for stratum-1 servers) the reference clock ID. All times are given in seconds. Note that the stratum is the server hop count to the primary source, while the synchronization distance is the estimated error relative to the primary source. These terms are precisely defined in RFC-1305.
+
+<h4>Options</h4>
+
+<dl>
+
+<dt><tt>-d</tt></dt>
+<dd>Turns on some debugging output.</dd>
+
+<dt><tt>-n</tt></dt>
+<dd>Turns off the printing of host names; instead, host IP addresses are given. This may be useful if a nameserver is down.</dd>
+
+<dt><tt>-r <I>retries</I></tt></dt>
+<dd>Sets the number of retransmission attempts for each host (default = 5).</dd>
+
+<dt><tt>-t <I>timeout</I></tt></dt>
+<dd>Sets the retransmission timeout (in seconds) (default = 2).</dd>
+
+<dt><tt>-v</tt></dt>
+<dd>Prints verbose information about the NTP servers.</dd>
+
+</dl>
+
+<h4>Bugs</h4>
+
+This program makes no attempt to improve accuracy by doing multiple samples.
+
+<hr><a href=index.htm><img align=left src=pic/home.gif></a><address><a
+href=mailto:mills@udel.edu> David L. Mills &lt;mills@udel.edu&gt;</a>
+</address></a></body></html>
index b05203098947c2e48f8980037b692e2f9536b47c..ed4c8dd13886ea5d3c84eb63e57dc27889965102 100644 (file)
@@ -4,7 +4,10 @@ Patching Procedures
 Patching Procedures
 </h3>
 
-<img align=left src=pic/rabbit.gif>From <i>pogo</i>, Walt Kelly
+<img align=left src=pic/alice38.gif><a href=http://www.eecis.udel.edu/~mills/pictures.htm>
+from <i>Alice's Adventures in Wonderland</i>, Lewis Carroll</a>
+
+<p>The Mad Hatter needs patches.
 <br clear=left><hr>
 
 <p>A distribution so widely used as this one eventually develops numerous barnacles as the result of <a href=porting.htm>porting</a> to new systems, idiosyncratic new features and just plain bugs. In order to help keep order and make maintenance bearable, we ask that proposed changes to the distribution be submitted in the following form.
diff --git a/html/pic/alautun4a.gif b/html/pic/alautun4a.gif
deleted file mode 100644 (file)
index 3f2fae5..0000000
Binary files a/html/pic/alautun4a.gif and /dev/null differ
diff --git a/html/pic/alice15b.gif b/html/pic/alice15b.gif
deleted file mode 100644 (file)
index 5be1b0b..0000000
Binary files a/html/pic/alice15b.gif and /dev/null differ
diff --git a/html/pic/appletree.gif b/html/pic/appletree.gif
deleted file mode 100644 (file)
index 0c06769..0000000
Binary files a/html/pic/appletree.gif and /dev/null differ
diff --git a/html/pic/pogo1.gif b/html/pic/pogo1.gif
deleted file mode 100644 (file)
index 1035e7e..0000000
Binary files a/html/pic/pogo1.gif and /dev/null differ
diff --git a/html/pic/pogo3.gif b/html/pic/pogo3.gif
deleted file mode 100644 (file)
index 0c62893..0000000
Binary files a/html/pic/pogo3.gif and /dev/null differ
diff --git a/html/pic/pogo3b.gif b/html/pic/pogo3b.gif
deleted file mode 100644 (file)
index 67d445e..0000000
Binary files a/html/pic/pogo3b.gif and /dev/null differ
diff --git a/html/pic/pogoa.gif b/html/pic/pogoa.gif
deleted file mode 100644 (file)
index 6372c78..0000000
Binary files a/html/pic/pogoa.gif and /dev/null differ
diff --git a/html/pic/tardisa.gif b/html/pic/tardisa.gif
deleted file mode 100644 (file)
index 44e1700..0000000
Binary files a/html/pic/tardisa.gif and /dev/null differ
index d541d4e1da88be8e0c19e8d1741ae774a3834e72..4015d61b1e8de5b2cce7c8495a0187e7aadb8565 100644 (file)
@@ -2,7 +2,13 @@
 Porting Hints
 </title></head><body><h3>
 Porting Hints
-</h3><hr>
+</h3>
+
+<img align=left src=pic/wingdorothy.gif><a href=http://www.eecis.udel.edu/~mills/pictures.htm>from <i>The
+Wizard of Oz</i>, L. Frank Baum</a>
+
+<p>Porting Dorothy in Oz.
+<br clear=left><hr>
 
 <p>NOTE: The following procedures have been replaced by GNU automake and
 autoconfigure. This page is to be updated in the next release.
index ac97807b34f060a26d4cc05e08c20603e3217566..77600c94758363700e1636ea33588fe27995f83a 100644 (file)
@@ -2,7 +2,13 @@
 Pulse-per-second (PPS) Signal Interfacing
 </title></head><body><h3>
 Pulse-per-second (PPS) Signal Interfacing
-</h3><hr>
+</h3>
+
+<img align=left src=pic/alice32.gif><a href=http://www.eecis.udel.edu/~mills/pictures.htm>
+from <i>Alice's Adventures in Wonderland</i>, Lewis Carroll</a>
+
+<p>Alice is trying to find the PPS signal connector.
+<br clear=left><hr>
 
 <p>Some radio clocks and related timekeeping gear have a pulse-per-second (PPS) signal that can be used to discipline the local clock oscillator to a high degree of precision, typically to the order less than 10 <font face=Symbol>m</font>s in time and 0.01 parts-per-million (PPM) in frequency. The PPS signal can be connected in either of two ways: via the data carrier detector (DCD) pin of a serial port or via the acknowledge (ACK) pin of a parallel port, depending on the hardware and operating system. Connection via a serial port may require signal conversion and regeneration to RS232 levels, which can be done using a circuit such as described in the <A HREF=gadget.htm>Gadget Box PPS Level Converter and CHU Modem</A> page. Note that NTP no longer supports connection via the data leads of a serial port.
 
index 4200d735e28c60c5d8a7cd0e8e1cae3f8456e35a..57a047a73e267b7d0e115e5cd7bee01d97971c94 100644 (file)
@@ -1,8 +1,14 @@
 <html><head><title>
 Mitigation Rules and the <tt>prefer</tt> Keyword
 </title></head><body><h3>
-Mitigation Rules and the <TT>prefer</TT> Keyword
-</h3><hr>
+Mitigation Rules and the <tt>prefer</tt> Keyword
+</h3>
+
+<img align=left src=pic/alice11.gif><a href=http://www.eecis.udel.edu/~mills/pictures.htm>
+from <i>Alice's Adventures in Wonderland</i>, Lewis Carroll</a>
+
+<p>Listen carefully to what I say; it is very complicated.
+<br clear=left><hr>
 
 <h4>Introduction</h4>
 
index 5ce009924aca812d40ba31c806ca055f35dac4a8..009651bd03ec5a57f971d168ff8561ddcab75fd4 100644 (file)
@@ -1,99 +1,25 @@
-<HTML><HEAD><TITLE>
+<html><head><title>
 Quick Start
-</TITLE></HEAD><BODY><H3>
+</title></head><body><h3>
 Quick Start
-</H3>
+</h3>
 
 <img align=left src=pic/panda.gif>FAX test image for SATNET (1979).
 
-<p>The baby panda was scanned at University College London and used
-as a FAX test image for a demonstration of the DARPA Atlantic
-SATNET Program and the first transatlantic Internet connection in 1978.
-The computing system used for that demonstration was called the <A
-HREF="http://www.eecis.udel.edu/~mills/database/papers/fuzz.ps">Fuzzball
-</A>. As it happened, this was also the first Internet multimedia
-presentation and the first to use NTP in regular operation. The image
-was widely copied and used for testing purpose throughout much of the
-1980s.
-<br clear=left>
+<p>The baby panda was scanned at University College London and used as a FAX test image for a demonstration of the DARPA Atlantic SATNET Program and the first transatlantic Internet connection in 1978. The computing system used for that demonstration was called the <A HREF=http://www.eecis.udel.edu/~mills/database/papers/fuzz.ps>Fuzzball </A>. As it happened, this was also the first Internet multimedia presentation and the first to use NTP in regular operation. The image was widely copied and used for testing purpose throughout much of the 1980s.
+<br clear=left><hr>
 
-<H4>Introduction</H4>
+<p>This page describes what to expect when the NTP daemon <tt>ntpd</tt> is started for the first time. The discussion presumes the programs in this distribution have been compiled and installed as described in the <a href=build.htm>Building and Installing the Distribution</a> page.
 
-<p>This page describes what to expect when the NTP daemon <tt>ntpd</tt>
-is started for the first time. The discussion presumes the programs in
-this distribution have been compiled and installed as described in the
-<a href=build.htm>Building and Installing the Distribution</a> page.
+<p>When the daemon is started, whether for the first or subsequent times, a number of roundtrip samples are required to accumulate reliable measurements of network path delay and clock offset relative to the server(s). Normally, this takes about four minutes, after which the local clock is synchronized to the server. The daemon behavior at startup depends on whether a drift file <tt>ntp.drift</tt> exists. This file contains the latest estimate of local clock frequency error. When the daemon is started for the first time, this file is created after about one hour of operation and updated once each hour after that. When the daemon is started and the file does not exist, the daemon enters a special mode designed to quickly adapt to the particular system clock oscillator time and frequency error. This takes approximately 15 minutes, after which the time and frequency are set to nominal values and the daemon enters normal mode, where the time and frequency are continuously tracked relative to the server.
 
-<p>When the daemon is started, whether for the first or subsequent
-times, a number of roundtrip samples are required to accumulate reliable
-measurements of network path delay and clock offset relative to the
-server. Normally, this takes about four minutes, after which the local
-clock is synchronized to the server. The daemon behavior at startup
-depends on whether a drift file <tt>ntp.drift</tt> exists. This file
-contains the latest estimate of local clock frequency error. When the
-daemon is started for the first time, it is created after about one hour
-of operation and updated once each hour after that. When the daemon is
-started and the file does not exist, the daemon enters a special mode
-designed to quickly adapt to the particular system clock oscillator time
-and frequency error. This takes approximately 15 minutes, after which
-the time and frequency are set to nominal values and the daemon enters
-normal mode, where the time and frequency are continuously tracked
-relative to the server.
+<p>As a practical matter, once the local clock has been set, it very rarely strays more than 128 ms relative to the server, even under extreme cases of network path congestion and jitter. Sometimes, in particular when the daemon is first started, the relative clock offset exceeds 128 ms. In such cases the normal behavior of the daemon is to set the clock directly, rather than rely on gradual corrections. This may cause the clock to be set backwards if the local clock time is more than 128 s in the future relative to the server. In some applications, this behavior may be unacceptable. If the <tt>-x</tt> option is included on the command line that starts the daemon, the clock will never be stepped and only slew corrections will be used.
 
-<p>As a practical matter, once the local clock has been set, it very
-rarely strays more than 128 ms relative to the server, even under
-extreme cases of network path congestion and jitter. Sometimes, in
-particular when the daemon is first started, the relative clock offset
-exceeds 128 ms. In such cases the normal behavior of the daemon is to
-set the clock directly, rather than rely on gradual corrections. This
-may cause the clock to be set backwards, if the local clock time is more
-than 128 s in the future relative to the server. In some applications,
-this behavior may be unacceptable. If the <tt>-x</tt> option is included
-on the command line that starts the daemon, the clock will never be
-stepped and only slew corrections will be used.
+<p>The issues should be carefully explored before deciding to use the <tt>-x</tt> option. The maximum slew rate possible is limited to 500 parts-per-million (PPM) as a consequence of the correctness principles on which the NTP protocol and algorithm design are based. As a result, the local clock can take a long time to converge to an acceptable offset, about 2,000 s for each second the clock is outside the acceptable range. During this interval the local clock will not be consistent with any other network clock and the system cannot be used for distributed applications that require correctly synchronized network time.
 
-<p>The issues should be carefully explored before deciding to use the
-<tt>-x</tt> option. The maximum slew rate possible is limited to 500
-parts-per-million (PPM) as a consequence of the correctness principles
-on which the NTP protocol and algorithm design are based. As a result,
-the local clock can take a long time to converge to an acceptable
-offset, about 2000 s for each second the clock is outside the acceptable
-range. During this interval the local clock will not be consistent with
-any other network clock and the system cannot be used for distributed
-applications that require correctly synchronized network time.
+<p>There may be an occasional outlyer, where an individual measurement exceeds 128 ms. When the frequency of occurrence of these outlyers is low, the measurement is discarded and operation continues with the next one. However, if the outlyers persist for an interval longer than about 15 minutes, the next value is believed and the clock stepped or slewed as determined by the <tt>-x</tt> option. The usual reason for this behavior is when a leap second has occurred, but the reference clock receiver has not synchronized to it. When leap second support is implemented in the kernel, the kernel implements it as directed by the NTP daemon. If this happens and the reference clock source resynchronizes correctly within 15 minutes, the transient misbehavior of the source is transparent.
 
-<p>There may be an occasional outlyer, where an individual measurement
-exceeds 128 ms. When the frequency of occurrence of these outlyers is
-low, the measurement is discarded and operation continues with the next
-one. However, if the outlyers persist for an interval longer than about
-15 minutes, the next value is believed and the clock stepped or slewed
-as determined by the <tt>-x</tt> option. The usual reason for this
-behavior is when a leap second has occurred, but the reference clock
-receiver has not synchronized to it. When leap second support is
-implemented in the kernel, the kernel implements it as directed by the
-NTP daemon. If this happens and the reference clock source
-resynchronizes correctly within 15 minutes, the transient misbehavior of
-the source is transparent.
+<p>It has been observed that, as the result of extreme network congestion, the roundtrip delays can exceed three seconds and the synchronization distance, which is equal to one-half the roundtrip delay plus the error budget terms, can become very large. When the synchronization distance exceeds one second, the offset measurement is discarded. If this condition persists for several poll intervals, the server may be declared unreachable. Sometimes the large jitter results in large frequency errors which result in straying outside the acceptable offset range and an eventual step or slew time correction. If following such a correction the frequency error is so large that the first sample is outside the acceptable range, the daemon enters the same state as when the <tt>ntp.drift</tt> file is not present. The intent of this behavior is to quickly correct the frequency and restore operation to the normal tracking mode. In the most extreme cases (<tt>time.ien.it</tt> comes to mind), there may be occasional step/slew corrections and subsequent frequency corrections. It helps in these cases to use burst mode when configuring the server.
 
-<p>It has been observed that, as the result of extreme network
-congestion, the roundtrip delays can exceed three seconds and the
-synchronization distance, which is equal to one-half the roundtrip delay
-plus the error budget terms, can become very large. When the
-synchronization distance exceeds one second, the offset measurement is
-discarded. If this condition persists for several poll intervals, the
-server may be declared unreachable. Sometimes the large jitter results
-in  large frequency errors which result in straying outside the
-acceptable offset range and an eventual step or slew time correction. If
-following such a correction the frequency error is so large that the
-first sample is outside the acceptable range, the daemon enters the same
-state as when the <tt>ntp.drift</tt> file is not present. The intent of
-this behavior is to quickly correct the frequency and restore operation
-to the normal tracking mode. In the most extreme cases
-(<tt>time.ien.it</tt> comes to mind), there may be occasional step/slew
-corrections and subsequent frequency corrections. It helps in these
-cases to use burst mode when configuring the server.
-
-<hr><a href=index.htm><img align=left src=pic/home.gif></a><address><a
-href=mailto:mills@udel.edu> David L. Mills &lt;mills@udel.edu&gt;</a>
-</address></a></body></html>
+<hr><a href=index.htm><img align=left src=pic/home.gif></a><address><a href=mailto:mills@udel.edu> David L. Mills &lt;mills@udel.edu&gt;</a></address></a></body></html>
 
index cee1c417e952936c06f9bf0b52c90f6612501ce3..bc998caeffdc014afa45f0b018d35cc2c5a2a508 100644 (file)
@@ -2,7 +2,13 @@
 Debugging Hints for Reference Clock Drivers
 </title></head><body><h3>
 Debugging Hints for Reference Clock Drivers
-</h3><hr>
+</h3>
+
+<img align=left src=pic/oz2.gif><a href=http://www.eecis.udel.edu/~mills/pictures.htm>from <i>The
+Wizard of Oz</i>, L. Frank Baum</a>
+
+<p>Call the girls and the'll sweep your bugs.
+<br clear=left><hr>
 
 <p>The <a href=ntpq.htm><tt>ntpq</tt></a> and <a href=ntpdc.htm><tt>ntpdc</tt></a> utility programs can be used to debug reference clocks, either on the server itself or from another machine elsewhere in the network. The server is compiled, installed and started using the configuration file described in the <a href=ntpd.htm><tt>ntpd</tt></a> page and its dependencies. If the clock appears in the <tt>ntpq</tt> utility and <tt>pe</tt> command, no errors have occured and the daemon has started, opened the devices specified and waiting for peers and radios to come up. If not, the first thing to look for are error messages on the system log. These are usually due to improper configuration, missing links or multiple instances of the daemon. 
 
index 63e883730a4cceb1894c5904b6254cf78c9c2d6b..7d74a6727233db271f364845117a5ebfdcbdf613 100644 (file)
@@ -4,20 +4,9 @@ Reference Clock Drivers
 Reference Clock Drivers
 </H3>
 
-<IMG ALIGN=LEFT SRC=pic/tardisa.gif>From top:
+<img align=left src=pic/stack1a.jpg>Master Time Facility at the <a href=http://www.eecis.udel.edu/~mills/lab.htm>UDel Internet Research Laboratory</a>:
 
-<ul>
-
-<li>Austron 2100A GPS Receiver with LORAN-C assist</li>
-<li>Austron 2000 LORAN-C Receiver></li>
-<li>Spectracom 8170 WWVB Receiver</li>
-<li>Hewlett Packard 5061A Cesium Beam Standard</li>
-
-</ul>
-
-<br clear=left>
-The Tardis
-<hr>
+<br clear=left><hr>
 
 Support for most of the commonly available radio and modem reference clocks is included in the default configuration of the NTP daemon for Unix <tt>ntpd</tt>. Individual clocks can be activated by configuration file commands, specifically the <tt>server</tt> and <tt>fudge</tt> commands described in the <a href=ntpd.htm><tt>ntpd</tt> program manual page</a>. The following discussion presents Information on how to select and configure the device drivers in a running Unix system.
 
index bec718192d0889b08ac33598f4d1b7fe6c8d6620..de1eeffa91ae55284b60c7f87af0b07665869483 100644 (file)
@@ -4,10 +4,13 @@ NTP Version 4 Release Notes
 NTP Version 4 Release Notes
 </h3>
 
-<img align=left src=pic/hornraba.gif> <i>Alice's Adventures in Wonderland</i>, by Lewis Carroll, illustrations by Sir John Tenniel
+<img align=left src=pic/hornraba.gif><a href=http://www.eecis.udel.edu/~mills/pictures.htm>
+from <i>Alice's Adventures in Wonderland</i>, Lewis Carroll</a>
+
+<p>The rabbit toots to make sure you read thie.
 <br clear=left><hr>
 
-<p>This document was last updated 14 December 2000
+<p>This document was last updated 31 December 2000
 
 <h4>NTP Version 4 Release Notes</h4>
 
index 3609ee32c97bf68c5eeee75cc118048edcb6133f..c907ac848b3b41e72467201ac610e511ac33a95b 100644 (file)
@@ -4,9 +4,8 @@ Network Time Protocol Year 2000 Conformance Statement
 Network Time Protocol Year 2000 Conformance Statement
 </h3>
 
-<img align=left src=pic/alice15.gif>
-from <i>Alice's Adventures in Wonderland</i>, by Lewis Carroll,
-illustrations by Sir John Tenniel
+<img align=left src=pic/alice15.gif><a href=http://www.eecis.udel.edu/~mills/pictures.htm>
+from <i>Alice's Adventures in Wonderland</i>, Lewis Carroll</a>
 
 <p>The Mad Hatter and the March Hare are discussing whether the Teapot
 serial number should have two or four digits.