freebsd-dev/contrib/ntp/html/driver1.htm

158 lines
6.0 KiB
HTML
Raw Normal View History

2001-08-29 14:35:15 +00:00
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<meta name="generator" content="HTML Tidy, see www.w3.org">
<meta http-equiv="Content-Type" content=
"text/html; charset=iso-8859-1">
<meta name="GENERATOR" content=
"Mozilla/4.01 [en] (Win95; I) [Netscape]">
<title>Undisciplined Local Clock</title>
</head>
<body>
<h3>Undisciplined Local Clock</h3>
<hr>
<h4>Synopsis</h4>
Address: 127.127.1.<i>u</i> <br>
Reference ID: <tt>LCL</tt> <br>
Driver ID: <tt>LOCAL</tt>
<h4>Description</h4>
<p>This driver is intended for use in an isolated network where no
external source of synchronization such as a radio clock or modem
is available. It allows a designated time server to act as a
primary server to provide synchronization to other clients on the
network. Pick a machine that has a good clock oscillator (Digital
machines are good, Sun machines are not) and configure it with this
driver. Set the clock using the best means available, like
eyeball-and-wristwatch. Then, point all the other machines at this
one or use broadcast (not multicast) mode to distribute time.</p>
<p>Another application for this driver is if a particular server
clock is to be used as the clock of last resort when all other
normal synchronization sources have gone away. This is especially
useful if that server has an ovenized oscillator. For this you
would configure this driver at a stratum greater than any other
likely sources of time (say 3 or 4) to prevent the server taking
over when legitimate sources are still available.</p>
<p>A third application for this driver is when an external
discipline source is available, such as the NIST <tt>lockclock</tt>
program, which synchronizes the local clock via a telephone modem
and the NIST Automated Computer Time Service (ACTS), or the Digital
Time Synchronization Service (DTSS), which runs on DCE machines. In
this case the stratum should be set at zero, indicating a bona fide
stratum-1 source. In the case of DTSS, the local clock can have a
rather large jitter, depending on the interval between corrections
and the intrinsic frequency error of the clock oscillator. In
extreme cases, this can cause clients to exceed the 128-ms slew
window and drop off the NTP subnet.</p>
<p>In the case where a NTP time server is synchronized to some
device or protocol that is not external to the NTP daemon itself,
some means should be provided to pass such things as error and
health values to the NTP daemon for dissemination to its clients.
If this is not done, there is a very real danger that the device or
protocol could fail and with no means to tell NTP clients of the
mishap. When ordinary Unix system calls like <tt>adjtime()</tt> are
used to discipline the kernel clock, there is no obvious way this
can be done without modifying the code for each case. However, when
a modified kernel with the <tt>ntp_adjtime()</tt> system call&nbsp;
is available, that routine can be used for the same purpose as the
<tt>adjtime()</tt> routine and in addition provided with the
estimated error, maximum error, and leap-indicator values. This is
the preferred way to synchronize the kernel clock and pass
information to the NTP clients.</p>
<p>In the default mode the behavior of the clock selection
algorithm is modified when this driver is in use. The algorithm is
designed so that this driver will never be selected unless no other
discipline source is available. This can be overridden with the
<tt>prefer</tt> keyword of the <tt>server</tt> configuration
command, in which case only this driver will be selected for
synchronization and all other discipline sources will be ignored.
This behavior is intended for use when an external discipline
source controls the system clock. See the <a href="prefer.htm">
Mitigation Rules and the <tt>prefer</tt> Keyword</a> page for a
detailed description of the exact behavior.</p>
<p>The stratum for this driver is set at 3 by default, but can be
changed by the <tt>fudge</tt> configuration command and/or the <tt>
ntpdc</tt> utility. The reference ID is <tt>LCL</tt> by default,
but can be changed using the same mechanisms. <b>*NEVER*</b>
configure this driver to operate at a stratum which might possibly
disrupt a client with access to a bona fide primary server, unless
the local clock oscillator is reliably disciplined by another
source. <b>*NEVER NEVER*</b> configure a server which might devolve
to an undisciplined local clock to use multicast mode.</p>
<p>This driver provides a mechanism to trim the local clock in both
time and frequency, as well as a way to manipulate the leap bits.
The <tt>fudge time1</tt> parameter adjusts the time (in seconds)
and the <tt>fudge time2</tt> parameter adjusts the frequency (in
parts per million). Both parameters are additive and operate only
once; that is, each command (as from <tt>ntpdc</tt>) adds signed
increments in time or frequency to the nominal local clock time and
frequency.</p>
<h4>Monitor Data</h4>
No <tt>filegen clockstats</tt> monitor data are produced by this
driver.
<h4>Fudge Factors</h4>
<dl>
<dt><tt>time1 <i>time</i></tt></dt>
<dd>Specifies the time offset calibration factor, in seconds and
fraction, with default 0.0.</dd>
<dt><tt>time2 <i>time</i></tt></dt>
<dd>Specifies the frequency offset calibration factor, in parts per
million, with default 0.0.</dd>
<dt><tt>stratum <i>number</i></tt></dt>
<dd>Specifies the driver stratum, in decimal from 0 to 15, with
default 3.</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>LCL</tt>.</dd>
<dt><tt>flag1 0 | 1</tt></dt>
<dd>Not used by this driver.</dd>
<dt><tt>flag2 0 | 1</tt></dt>
<dd>Not used by this driver.</dd>
<dt><tt>flag3 0 | 1</tt></dt>
<dd>Not used by this driver.</dd>
<dt><tt>flag4 0 | 1</tt></dt>
<dd>Not used by this driver.</dd>
</dl>
<p>Additional Information</p>
<p><a href="refclock.htm">Reference Clock Drivers</a></p>
<hr>
<a href="index.htm"><img align="left" src="pic/home.gif" alt=
"gif"></a>
<address><a href="mailto:mills@udel.edu">David L. Mills
&lt;mills@udel.edu&gt;</a></address>
</body>
</html>