]> git.ipfire.org Git - thirdparty/ntp.git/commitdiff
html/ cleanup
authorHarlan Stenn <stenn@ntp.org>
Mon, 27 Jan 2014 09:42:49 +0000 (09:42 +0000)
committerHarlan Stenn <stenn@ntp.org>
Mon, 27 Jan 2014 09:42:49 +0000 (09:42 +0000)
bk: 52e62a19uwy79uehwXDNbKTlV5s1JQ

ChangeLog
html/assoc.html
html/drivers/driver8.html
html/hints/solaris.html
html/pic/stats.gif [new file with mode: 0644]
html/pic/time1.gif [new file with mode: 0644]
html/refclock.html

index fce1464ce0d96231b48dc2fe6de11fea8688df3f..e8d61c32cd403ea8fbcff0e093c2f48daf8249d1 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,4 @@
+* html/ cleanup
 (4.2.7p412) 2014/01/20 Released by Harlan Stenn <stenn@ntp.org>
 * [Bug 2540] bootstrap script needs to 'touch' files in finer-grained groups.
 (4.2.7p411) 2014/01/12 Released by Harlan Stenn <stenn@ntp.org>
index 386966b9b1df597f51684f16eed7fb4411ce4582..e2cb7615016d8e6cf3cd12dfb2a4360331a24fbf 100644 (file)
@@ -53,7 +53,7 @@
 <p>As symmetric modes are most often used as root servers for moderate to large subnets where rapid response is required, it is generally best to set the minimum and maximum poll intervals of each root server to the same value using the <tt>minpoll</tt> and <tt>maxpoll</tt> options.</p>
 <h4 id="broad">Broadcast/Multicast Modes</h4>
 <p>NTP broadcast and multicast modes are intended for configurations involving one or a few servers and a possibly very large client population. Broadcast mode can be used with Ethernet, FDDI and WiFi spans interconnected by hubs or switches. Ordinarily, broadcast packets do not extend beyond a level-3 router. Where service is intended beyond a level-3 router, multicast mode can be used. Additional information is on the <a href="discover.html">Automatic NTP Configuration Options</a> page.</p>
-<p>A server is configured to send broadcast or multicast messages  using the <tt>broadcast</tt> command and specifying the subnet address for broadcast  or the multicast group address for multicast. A broadcast client is enabled using the <a href="confopt.html#broadcastclient.html"><tt>broadcastclient</tt></a> command, while a multicast client is enabled using the <a href="confopt.html#multicastclient"><tt>multicastclient</tt></a> command and specifying the multicast group address. Multiple commands of either type can be used. However,  the association is not mobilized until the first broadcast or multicast message is actually received.</p>
+<p>A server is configured to send broadcast or multicast messages  using the <tt>broadcast</tt> command and specifying the subnet address for broadcast  or the multicast group address for multicast. A broadcast client is enabled using the <a href="confopt.html#broadcastclient"><tt>broadcastclient</tt></a> command, while a multicast client is enabled using the <a href="confopt.html#multicastclient"><tt>multicastclient</tt></a> command and specifying the multicast group address. Multiple commands of either type can be used. However,  the association is not mobilized until the first broadcast or multicast message is actually received.</p>
 <h4 id="many">Manycast and Pool Modes</h4>
 <p>Manycast and pool modes are automatic discovery and configuration paradigms new to NTPv4. They are intended as a means for a  client to troll the nearby network neighborhood to find cooperating willing servers, validate them using cryptographic means and evaluate their time values with respect to other servers that might be lurking in the vicinity. The intended result is that each  client mobilizes ephemeral client associations with some number of the &quot;best&quot; of the nearby  servers, yet automatically reconfigures to sustain this number of servers should one or another fail. Additional information is on the <a href="discover.html">Automatic Server Discovery Schemes</a> page.</p>
 <h4 id="poll">Poll Interval Management</h4>
index 39be105fcd574f62d47f9780c46fdf177605680f..875279f16710eeca9ba0cae6dd71b0a24cda479e 100644 (file)
@@ -61,7 +61,7 @@
          <li><a href="http://www.selinc.com">Schweitzer Engineering
              Laboratories SEL-240x clocks</a>
             <p>This implementation was provided and verified by SEL and <a
-               href="networktimefoundation.org">Network Time Foundation</a>
+               href="http://networktimefoundation.org">Network Time Foundation</a>
              has an SEL-2407 in one of its development labs.</p>
          </li>
        </ul>
index 7161d5dd3b390e368613f66e3f763a098fd0baba..5c8b8fe65827e6c25cdce42b6d3e4efb19cc87a4 100644 (file)
@@ -38,7 +38,7 @@ set dosynctodr = 0
 <P>
 Instead of the <I>tick</I> kernel variable, which many operating
 systems use to control microseconds added to the system time every
-clock tick (c.f. <A HREF="../notes.html#frequency_tolerance">Dealing
+clock tick (c.f. <A HREF="#frequency_tolerance">Dealing
 with Frequency Tolerance Violations</A>), Solaris has the variables
 <I>nsec_per_tick</I> and <I>usec_per_tick</I>.
 <P>
@@ -63,6 +63,95 @@ HREF="solaris.xtra.S99ntpd">this one</A>, installed in
 <CODE>/etc/init.d/ntpd</CODE> with a symbol link from
 <CODE>/etc/rc2.d/S99ntpd</CODE>.
 
+<a id="frequency_tolerance" />
+<h4>Dealing with Frequency Tolerance Violations (<tt>tickadj</tt> and
+Friends)</h4>
+    The NTP Version 3 specification RFC-1305 calls for a maximum
+    oscillator frequency tolerance of +-100 parts-per-million (PPM), which is
+representative of those components suitable for use in relatively
+inexpensive workstation platforms. For those platforms meeting this
+tolerance, NTP will automatically compensate for the frequency errors of the
+individual oscillator and no further adjustments are required, either to the
+configuration file or to various kernel variables. For the NTP Version 4
+release, this tolerance has been increased to +-500 PPM.  <p>However, in the
+case of certain notorious platforms, in particular Sun 4.1.1 systems, the
+performance can be improved by adjusting the values of certain kernel
+variables; in particular, <tt>tick</tt> and <tt>tickadj</tt>.  The variable
+<tt>tick</tt> is the increment in microseconds added to the system time on
+each interval- timer interrupt, while the variable <tt>tickadj</tt> is used
+by the time adjustment code as a slew rate, in microseconds per tick. When
+the time is being adjusted via a call to the system routine
+<tt>adjtime()</tt>, the kernel increases or reduces tick by <tt>tickadj</tt>
+microseconds per tick until the specified adjustment has been
+completed. Unfortunately, in most Unix implementations the tick increment
+must be either zero or plus/minus exactly <tt>tickadj</tt> microseconds,
+meaning that adjustments are truncated to be an integral multiple of
+<tt>tickadj</tt> (this latter behaviour is a misfeature, and is the only
+reason the <tt>tickadj</tt> code needs to concern itself with the internal
+implementation of <tt>tickadj</tt> at all). In addition, the stock Unix
+implementation considers it an error to request another adjustment before a
+prior one has completed.</p> <p>Thus, to make very sure it avoids problems
+related to the roundoff, the <tt>tickadj</tt> program can be used to adjust
+the values of <tt>tick</tt> and <tt>tickadj</tt>. This ensures that all
+adjustments given to <tt>adjtime()</tt> are an even multiple of
+<tt>tickadj</tt> microseconds and computes the largest adjustment that can
+be completed in the adjustment interval (using both the value of
+<tt>tick</tt> and the value of <tt>tickadj</tt>) so it can avoid exceeding
+this limit. It is important to note that not all systems will allow
+inspection or modification of kernel variables other than at system build
+time. It is also important to know that, with the current NTP tolerances, it
+is rarely necessary to make these changes, but in many cases they will
+substantially improve the general accuracy of the time service.</p>
+<p>Unfortunately, the value of <tt>tickadj</tt> set by default is almost
+always too large for <tt>ntpd</tt>. NTP operates by continuously making
+small adjustments to the clock, usually at one-second intervals. If
+<tt>tickaj</tt> is set too large, the adjustments will disappear in the
+roundoff; while, if <tt>tickadj</tt> is too small, NTP will have difficulty
+if it needs to make an occasional large adjustment. While the daemon itself
+will read the kernel's values of these variables, it will not change the
+values, even if they are unsuitable. You must do this yourself before the
+daemon is started using the <tt>tickadj</tt> program included in the
+<tt>./util</tt> directory of the distribution. Note that the latter program
+will also compute an optimal value of <tt>tickadj</tt> for NTP use based on
+the kernel's value of <tt>tick</tt>.</p> <p>The <tt>tickadj</tt> program can
+reset several other kernel variables if asked. It can change the value of
+<tt>tick</tt> if asked. This is handy to compensate for kernel bugs which
+cause the clock to run with a very large frequency error, as with SunOS
+4.1.1 systems. It can also be used to set the value of the kernel
+<tt>dosynctodr</tt> variable to zero. This variable controls whether to
+synchronize the system clock to the time-of-day clock, something you really
+don't want to be happen when <tt>ntpd</tt> is trying to keep it under
+control. In some systems, such as recent Sun Solaris kernels, the
+<tt>dosynctodr</tt > variable is the only one that can be changed by the
+<tt>tickadj</tt> program.  In this and other modern kernels, it is not
+necessary to change the other variables in any case.</p>
+
+<p>We have a report that says starting with Solaris 2.6 we should leave
+<i>dosynctodr</i> alone.</p> <p>In order to maintain reasonable correctness
+bounds, as well as reasonably good accuracy with acceptable polling
+intervals, <tt>ntpd</tt> will complain if the frequency error is greater
+than 500 PPM. For machines with a value of <tt>tick</tt> in the 10-ms range,
+a change of one in the value of <tt>tick</tt> will change the frequency by
+about 100 PPM. In order to determine the value of <tt>tick</tt> for a
+particular CPU, disconnect the machine from all source s of time
+(<tt>dosynctodr</tt> = 0) and record its actual time compared to an outside
+source (eyeball-and-wristwatch will do) over a day or more. Multiply the
+time change over the day by 0.116 and add or subtract the result to tick,
+depending on whether the CPU is fast or slow. An example call to
+<tt>tickadj</tt> useful on SunOS 4.1.1 is:</p>
+                <pre>
+     <tt>tickadj</tt> -t 9999 -a 5 -s
+</pre>
+which sets tick 100 PPM fast, <tt>tickadj</tt> to 5 microseconds and turns
+off the clock/calendar chip fiddle. This line can be added to the <tt
+>rc.local</tt> configuration file to automatically set the kernel variables
+at boot time.  <p>All this stuff about diddling kernel variables so the NTP
+daemon will work is really silly. If vendors would ship machines with clocks
+that kept reasonable time and would make their <tt>adjtime()</tt> system
+call apply the slew it is given exactly, independent of the value of
+<tt>tickadj</tt>, all this could go away. This is in fact the case on many
+current Unix systems.</p>
+
 <H3>Solaris 2.6</H3>
 <P>
 Solaris 2.6 adds support for kernel PLL timekeeping, but breaks this
diff --git a/html/pic/stats.gif b/html/pic/stats.gif
new file mode 100644 (file)
index 0000000..b0d0aaa
Binary files /dev/null and b/html/pic/stats.gif differ
diff --git a/html/pic/time1.gif b/html/pic/time1.gif
new file mode 100644 (file)
index 0000000..88e7042
Binary files /dev/null and b/html/pic/time1.gif differ
index 3b09e1428a62948ce9f333b8958f01b2d9c1d44d..08dcb96505ca6716a6f30c20a314d9a959db0ac9 100644 (file)
@@ -41,7 +41,7 @@
 <p>Following is a list showing the type and title of each driver currently implemented. The compile-time identifier for each is shown in parentheses. Click on a selected type for specific description and configuration documentation, including the clock address, reference ID, driver ID, device name and serial line speed. For those drivers without specific documentation, please contact the author listed in the <a href="copyright.html">Copyright Notice</a> page.</p>
 <ul>
   <li class="inline"><a href="drivers/driver1.html">Type 1</a> Undisciplined Local Clock (<tt>LOCAL</tt>)</li>
-  <li class="inline"><a href="drivers/driver2.html">Type 2</a> Trak 8820 GPS Receiver (<tt>GPS_TRAK</tt>)</li>
+  <li class="inline">Type 2 Deprecated: was Trak 8820 GPS Receiver</li>
   <li class="inline"><a href="drivers/driver3.html">Type 3</a> PSTI/Traconex 1020 WWV/WWVH Receiver (<tt>WWV_PST</tt>)</li>
   <li class="inline"><a href="drivers/driver4.html">Type 4</a> Spectracom WWVB/GPS Receivers (<tt>WWVB_SPEC</tt>)</li>
   <li class="inline"><a href="drivers/driver5.html">Type 5</a> TrueTime GPS/GOES/OMEGA Receivers (<tt>TRUETIME</tt>)</li>