12b15cb3dSCy Schubert<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 22b15cb3dSCy Schubert<html><head> 32b15cb3dSCy Schubert <meta http-equiv="Content-Type" 42b15cb3dSCy Schubert content="text/html;charset=iso-8859-1"><title>GPSD-NG client driver</title> 52b15cb3dSCy Schubert 62b15cb3dSCy Schubert <link href="scripts/style.css" type="text/css" rel="stylesheet"> 72b15cb3dSCy Schubert <style type="text/css"> 82b15cb3dSCy Schubert table.dlstable { font-size:85%; } 92b15cb3dSCy Schubert td.ttf{ font-family:Courier; font-weight:bold; } 102b15cb3dSCy Schubert </style></head> 112b15cb3dSCy Schubert 122b15cb3dSCy Schubert 132b15cb3dSCy Schubert 142b15cb3dSCy Schubert <body> 152b15cb3dSCy Schubert <h3>GPSD NG client driver</h3> 162b15cb3dSCy Schubert<p>Last update: 17276da39aSCy Schubert <!-- #BeginDate format:En2m -->30-Apr-2015 05:53<!-- #EndDate --> 182b15cb3dSCy Schubert UTC</p> 192b15cb3dSCy Schubert <hr> 202b15cb3dSCy Schubert <h4>Synopsis</h4> 212b15cb3dSCy Schubert 222b15cb3dSCy Schubert <p> 232b15cb3dSCy Schubert Address: 127.127.46.<i>u</i><br> 242b15cb3dSCy Schubert Reference ID: <tt>GPSD</tt><br> 252b15cb3dSCy Schubert Driver ID: <tt>GPSD_JSON</tt><br> 262b15cb3dSCy Schubert Serial Port: <tt>/dev/gps<i>u</i></tt> as symlink to the true 272b15cb3dSCy Schubert device (not used directly; see below)<br> 282b15cb3dSCy Schubert Features: <tt></tt> 292b15cb3dSCy Schubert </p> 302b15cb3dSCy Schubert 31276da39aSCy Schubert <!-- --------------------------------------------------------- --> 322b15cb3dSCy Schubert 33276da39aSCy Schubert <br><h4>Description</h4> 342b15cb3dSCy Schubert <p> 352b15cb3dSCy Schubert This driver is a client driver to the <i>GPSD</i> daemon, which 362b15cb3dSCy Schubert over the time became increasingly popular for UN*Xish 372b15cb3dSCy Schubert platforms. <i>GPSD</i> can manage several devices in parallel, 382b15cb3dSCy Schubert aggregate information, and acts as a data hub for client 392b15cb3dSCy Schubert applications. <i>GPSD</i> can also auto-detect and handle PPS 402b15cb3dSCy Schubert hardware signals on serial ports. Have a look 412b15cb3dSCy Schubert at <a href="http://www.catb.org/gpsd/">the 422b15cb3dSCy Schubert <i>GPSD</i> project page</a>. 432b15cb3dSCy Schubert </p> 442b15cb3dSCy Schubert <p> 452b15cb3dSCy Schubert <b>It is important to understand that this driver works best 462b15cb3dSCy Schubert using a GPS device with PPS support.</b> 472b15cb3dSCy Schubert </p> 482b15cb3dSCy Schubert <p> 492b15cb3dSCy Schubert The GPSD-NG protocol is text based, using JSON notation to 502b15cb3dSCy Schubert transfer records in form of JSON objects. The driver uses a 512b15cb3dSCy Schubert TCP/IP connection to <tt>localhost:gpsd</tt> to connect to the 522b15cb3dSCy Schubert daemon and then requests the GPS 532b15cb3dSCy Schubert device <tt>/dev/gps<i>u</i></tt> to be watched. (Different clock 542b15cb3dSCy Schubert units use different devices, and 552b15cb3dSCy Schubert <i>GPSD</i> is able to give only the relevant information to a clock 562b15cb3dSCy Schubert instance.) 572b15cb3dSCy Schubert </p> 582b15cb3dSCy Schubert <p> 592b15cb3dSCy Schubert This driver does not expect <i>GPSD</i> to be running or the 602b15cb3dSCy Schubert clock device to be present <i>a priori</i>; it will try to 612b15cb3dSCy Schubert re-establish a lost or hitherto unsuccessful connection and will 622b15cb3dSCy Schubert wait for device to come up in <i>GPSD.</i> There is an initial 632b15cb3dSCy Schubert 10 seconds delay between a connection loss or failed attempt and 642b15cb3dSCy Schubert the next reconnect attempt; this makes sure that there is no 652b15cb3dSCy Schubert thrashing on the network layer. If the connection fails again, 662b15cb3dSCy Schubert an exponential back off is used with an upper limit of 672b15cb3dSCy Schubert approximately 10 minutes. 682b15cb3dSCy Schubert </p> 692b15cb3dSCy Schubert <p> 702b15cb3dSCy Schubert The overall accuracy depends on the receiver used. The driver 712b15cb3dSCy Schubert uses the error estimations (95% probability limits) provided by 72276da39aSCy Schubert <i>GPSD</i> to set the clock precision dynamically according to 73276da39aSCy Schubert these readings. 742b15cb3dSCy Schubert </p> 752b15cb3dSCy Schubert <p> 76276da39aSCy Schubert The driver needs the VERSION, TPV, PPS, WATCH and TOFF objects 77276da39aSCy Schubert of the <i>GPSD</i> protocol. (Others are quietly ignored.) The 78276da39aSCy Schubert driver can operate without the TOFF objects, which are available 79276da39aSCy Schubert with the <i>protocol</i> version 3.10 and above. (Not to be 80276da39aSCy Schubert confused with the <i>release</i> version of <i>GPSD</i>!) 81276da39aSCy Schubert Running without TOFF objects has a negative impact on the jitter 82276da39aSCy Schubert and offset of the serial timing information; if possible, a 83276da39aSCy Schubert version of <i>GPSD</i> with support for TOFF objects should be 84276da39aSCy Schubert used. 85276da39aSCy Schubert </p> 86276da39aSCy Schubert <p>The acronym <u>STI</u> is used here as a synonym for <i>serial 87276da39aSCy Schubert time information</i> from the data channel of the receiver, no 88276da39aSCy Schubert matter what objects were used to obtain it. 892b15cb3dSCy Schubert </p> 902b15cb3dSCy Schubert 91276da39aSCy Schubert <!-- --------------------------------------------------------- --> 922b15cb3dSCy Schubert 93276da39aSCy Schubert <br><h4>Naming a Device</h4> 942b15cb3dSCy Schubert <p> 95*a466cc55SCy Schubert By default, the <i>GPSD</i> driver uses the same device name as 96*a466cc55SCy Schubert the NMEA driver, namely <tt>/dev/gps<i>u</i></tt>. There is a 97*a466cc55SCy Schubert simple reason for that: While the NMEA driver and 98*a466cc55SCy Schubert the <i>GPSD</i> driver can be active at the same time <b>for 99*a466cc55SCy Schubert different devices</b>, they cannot access the same device at a 100276da39aSCy Schubert time. Having the same name helps on that. It also eases 101276da39aSCy Schubert migration from using NMEA directly to using <i>GPSD</i>, as no 102276da39aSCy Schubert new links etc need to be created. 1032b15cb3dSCy Schubert </p> 1042b15cb3dSCy Schubert <p> 1052b15cb3dSCy Schubert <i>GPSD</i> is normally started with the device name to access; 1062b15cb3dSCy Schubert it can also be instructed by hot-plug scripts to add or remove 1072b15cb3dSCy Schubert devices from its device pool. Luckily, the symlinks used by the 1082b15cb3dSCy Schubert NMEA driver are happily accepted and used by <i>GPSD</i>; this 1092b15cb3dSCy Schubert makes it possible to use the symlink names as device 1102b15cb3dSCy Schubert identification. This makes the migration from the built-in NMEA 1112b15cb3dSCy Schubert driver a bit easier. 1122b15cb3dSCy Schubert </p> 113*a466cc55SCy Schubert <p> 114*a466cc55SCy Schubert The driver also honors <tt>device</tt> statements for 115*a466cc55SCy Schubert the <tt>timedata</tt> channel. (PPS is handled 116*a466cc55SCy Schubert inside <i>GPSD</i>, so there's no need for that.) This permits a 117*a466cc55SCy Schubert more natural way to specify the link between <i>GPSD</i> 118*a466cc55SCy Schubert and <i>NTPD</i>: Simply name the device as it was given 119*a466cc55SCy Schubert to <i>GPSD</i>. 120*a466cc55SCy Schubert </p> 121276da39aSCy Schubert <p><b>Note:</b> <i>GPSD</i> (as of version 3.10) cannot use kernel 122*a466cc55SCy Schubert mode PPS on devices that are hot-plugged or activated on demand. 123*a466cc55SCy Schubert This is not likely to change in the future. Have a look 124*a466cc55SCy Schubert at <i>GPSD</i>'s <tt>-n</tt> (<i>nowait</i>) option. 1252b15cb3dSCy Schubert </p> 1262b15cb3dSCy Schubert 127276da39aSCy Schubert <!-- --------------------------------------------------------- --> 128276da39aSCy Schubert 129276da39aSCy Schubert <br><h4>The 'mode' word</h4> 1302b15cb3dSCy Schubert <p> 1312b15cb3dSCy Schubert A few operation modes can be selected with the mode word. 1322b15cb3dSCy Schubert </p> 1332b15cb3dSCy Schubert <p> 1342b15cb3dSCy Schubert <table border="1" frame="box" rules="all"> 1352b15cb3dSCy Schubert <th colspan="3">The Mode Word</th> 1362b15cb3dSCy Schubert <tr> <td>Bits</td><td>Value</td><td>Description</td> 1372b15cb3dSCy Schubert </tr> 138276da39aSCy Schubert <tr> <td rowspan="4"align="center">0..1</td> 139276da39aSCy Schubert <td align="center">0</td> 140276da39aSCy Schubert <td>STI only operation. This mode is affected by the timing 141276da39aSCy Schubert stability of whatever protocol is used between the GPS 142276da39aSCy Schubert device and GPSD. 143276da39aSCy Schubert <br> 144276da39aSCy Schubert Running on STI only is not recommended in general. Possible 145276da39aSCy Schubert use cases include: 146276da39aSCy Schubert <ul> 147276da39aSCy Schubert <li>The receiver does not provide a PPS signal. 148276da39aSCy Schubert <li>The receiver <i>does</i> provide a PPS signal and 149276da39aSCy Schubert the secondary PPS unit is used. 150276da39aSCy Schubert <li>The receiver has a stable serial timing and a proper 151276da39aSCy Schubert fudge can be established. 152276da39aSCy Schubert <li>You have other time sources available and want to 153276da39aSCy Schubert establish a useful fudge value for <tt>time2</tt>. 154276da39aSCy Schubert </ul> 155276da39aSCy Schubert </td> 1562b15cb3dSCy Schubert </tr> 157276da39aSCy Schubert <tr> 158276da39aSCy Schubert <td align="center">1</td> 159276da39aSCy Schubert <td>Strict operation. This mode needs a valid PPS and a 160276da39aSCy Schubert valid STI to combine the absolute time from the STI with 161276da39aSCy Schubert the time stamp from the PPS record. Does not feed clock 162276da39aSCy Schubert samples if no valid PPS+STI pair is available. 163276da39aSCy Schubert <br><br> 164276da39aSCy Schubert This type of operation results in an ordinary clock with a 165276da39aSCy Schubert very low jitter as long as the PPS data is available, but 166276da39aSCy Schubert the clock fails once PPS drops out. This mode is a 167276da39aSCy Schubert possible choice for receivers that provide a PPS signal 168276da39aSCy Schubert most of the time but have an unstable serial timing that 169276da39aSCy Schubert cannot be fudge-compensated. 170276da39aSCy Schubert </td> 1712b15cb3dSCy Schubert </tr> 1722b15cb3dSCy Schubert <tr><td align="center">2</td> 173276da39aSCy Schubert <td>Automatic mode. Tries to operate in strict mode unless 174276da39aSCy Schubert it fails to process valid samples for some time, currently 175276da39aSCy Schubert 120s. Then it reverts to STI-only operation until the PPS 176276da39aSCy Schubert is stable again for 40s, when strict mode is engaged 177276da39aSCy Schubert again. 178*a466cc55SCy Schubert <br><br><b>Important Notice: This is an experimental 179276da39aSCy Schubert feature!</b><br> Switching between strict and STI-only 180276da39aSCy Schubert mode will cause changes in offset and jitter. Use this 181276da39aSCy Schubert mode only if STI-only works fairly well with your setup, 182276da39aSCy Schubert or if you expect longer dropouts of the PPS signal and 183276da39aSCy Schubert prefer to use STI alone over not getting synchronised at 184276da39aSCy Schubert all.</td> 1852b15cb3dSCy Schubert </tr> 186276da39aSCy Schubert <tr> 187276da39aSCy Schubert <td align="center">3</td> 188276da39aSCy Schubert <td><i>(reserved for future extension, do not use)</i></td> 1892b15cb3dSCy Schubert </tr> 190276da39aSCy Schubert <tr> 191276da39aSCy Schubert <td align="center">2..31</td> 192276da39aSCy Schubert <td colspan="2"><i>(reserved for future extension, do not 193276da39aSCy Schubert use)</i></td> 194276da39aSCy Schubert </tr> 1952b15cb3dSCy Schubert </table> 1962b15cb3dSCy Schubert </p> 1972b15cb3dSCy Schubert 198276da39aSCy Schubert <!-- --------------------------------------------------------- --> 199276da39aSCy Schubert 200276da39aSCy Schubert <br><h4>Syslog flood throttle</h4> 2012b15cb3dSCy Schubert <p>This driver can create a lot of syslog messages when things go 202276da39aSCy Schubert wrong, and cluttering the log files is frowned upon. So we 203276da39aSCy Schubert attempt to log persistent or recurring errors only once per 204276da39aSCy Schubert hour. On the other hand, when tracking a problem the syslog 205276da39aSCy Schubert flood throttle can get into the way.</p> 2062b15cb3dSCy Schubert <p>Therefore, fudge <i>flag3</i> can be used to <i>disable</i> the 2072b15cb3dSCy Schubert flood throttle at any time; the throttle is engaged by 2082b15cb3dSCy Schubert default. Running with the syslog flood throttle disabled for 2092b15cb3dSCy Schubert lengthy time is not recommended unless the log files are closely 2102b15cb3dSCy Schubert monitored.</p> 2112b15cb3dSCy Schubert 212276da39aSCy Schubert <!-- --------------------------------------------------------- --> 213276da39aSCy Schubert 214276da39aSCy Schubert <br><h4>PPS secondary clock unit</h4> 215276da39aSCy Schubert <p>Units with numbers ≥128 act as secondary clock unit for the 216276da39aSCy Schubert primary clock unit (u mod 128). A secondary unit processes only 217276da39aSCy Schubert the PPS data from <i>GPSD</i> and needs the corresponding master 218276da39aSCy Schubert unit to work<a href="#fn1" name="fn1bl"><sup>1</sup></a>. Use 219*a466cc55SCy Schubert the '<tt>noselect</tt>' keyword on the primary unit if you are not 220276da39aSCy Schubert interested in its data. 221276da39aSCy Schubert </p><p>The secondary unit employs the usual precautions before 222276da39aSCy Schubert feeding clock samples:</p> 223276da39aSCy Schubert <ul> 224276da39aSCy Schubert <li>The system must be already in a synchronised state. 225276da39aSCy Schubert <li>The system offset must be less than 400ms absolute. 226276da39aSCy Schubert <li>The phase adjustment from the PPS signal must also be less 227276da39aSCy Schubert than 400ms absolute. 228276da39aSCy Schubert </ul> 229276da39aSCy Schubert <p>If fudge flag <tt>flag1</tt> is set for the secondary unit, the 230276da39aSCy Schubert unit asserts the PPS flag on the clock as long as PPS data is 231276da39aSCy Schubert available. This makes the unit eligible as PPS peer and should 232276da39aSCy Schubert only be used if the GPS receiver can be trusted for the quality 233276da39aSCy Schubert of its PPS signal<a href="fn2" 234276da39aSCy Schubert name="fn2bl"><sup>2</sup></a>. The PPS flag gets cleared if no 235*a466cc55SCy Schubert PPS records can be acquired for some time. The unit also flushes 236276da39aSCy Schubert the sample buffer at this point to avoid the use of stale PPS 237276da39aSCy Schubert data.</p> 238276da39aSCy Schubert <p><b>Attention:</b> This unit uses its own PPS fudge value 239276da39aSCy Schubert which must be set as fudge <tt>time1</tt>. Only the fudge 240276da39aSCy Schubert values <tt>time1</tt> and <tt>flag1</tt> have an impact on secondary 241276da39aSCy Schubert units.</p> 242276da39aSCy Schubert 243276da39aSCy Schubert <!-- --------------------------------------------------------- --> 244276da39aSCy Schubert 245276da39aSCy Schubert <br><h4>Clockstats</h4> 246276da39aSCy Schubert <p>If flag4 is set when the driver is polled, a clockstats record 247276da39aSCy Schubert is written for the primary clock unit. (The secondary PPS unit 248276da39aSCy Schubert does not provide clock stats on its own.) The first 3 fields are 249276da39aSCy Schubert the normal date, time, and IP address common to all clockstats 250276da39aSCy Schubert records. 251276da39aSCy Schubert </p><p> 252276da39aSCy Schubert <table border="1" frame="box" rules="all"> 253276da39aSCy Schubert <th colspan="2">The Clockstats Line</th> 254276da39aSCy Schubert <tr> <td>field</td><td>Description</td> </tr> 255276da39aSCy Schubert <tr> 256276da39aSCy Schubert <td align="center">1</td> 257276da39aSCy Schubert <td>Date as day number since NTP epoch.</td> 258276da39aSCy Schubert </tr><tr> 259276da39aSCy Schubert <td align="center">2</td> 260276da39aSCy Schubert <td>Time as seconds since midnight.</td> 261276da39aSCy Schubert </tr><tr> 262276da39aSCy Schubert <td align="center">3</td> 263276da39aSCy Schubert <td>(Pseudo-) IP address of clock unit.</td> 264276da39aSCy Schubert </tr><tr> 265276da39aSCy Schubert <td align="center">4</td> 266276da39aSCy Schubert <td>Number of received known JSON records since last 267276da39aSCy Schubert poll. The driver knows about TPV, PPS, TOFF, VERSION and 268276da39aSCy Schubert WATCH records; others are silently ignored. 269276da39aSCy Schubert </td> 270276da39aSCy Schubert </tr><tr> 271276da39aSCy Schubert <td align="center">5</td> 272276da39aSCy Schubert <td>Bad replies since last poll. A record is considered 273276da39aSCy Schubert malformed or a bad reply when it is missing vital fields 274276da39aSCy Schubert or the fields contain malformed data that cannot be 275276da39aSCy Schubert parsed. 276276da39aSCy Schubert </td> 277276da39aSCy Schubert </tr><tr> 278276da39aSCy Schubert <td align="center">6</td> 279276da39aSCy Schubert <td>Number of sample cycles since last poll that were 280276da39aSCy Schubert discarded because there was no GPS fix. This is 281276da39aSCy Schubert effectively the number of TPV records with a fix value 282276da39aSCy Schubert < 2 or without a time stamp. 283276da39aSCy Schubert </td> 284276da39aSCy Schubert </tr><tr> 285276da39aSCy Schubert <td align="center">7</td> 286276da39aSCy Schubert <td>Number of serial time information records (TPV or TOFF, 287276da39aSCy Schubert depending on the GPSD version) received since last poll. 288276da39aSCy Schubert </td> 289276da39aSCy Schubert </tr><tr> 290276da39aSCy Schubert <td align="center">8</td> 291276da39aSCy Schubert <td>Number of serial time information records used for 292276da39aSCy Schubert clock samples since the last poll. 293276da39aSCy Schubert </td> 294276da39aSCy Schubert </tr><tr> 295276da39aSCy Schubert <td align="center">9</td> 296276da39aSCy Schubert <td>Number of PPS records received since the last poll.</td> 297276da39aSCy Schubert </tr><tr> 298276da39aSCy Schubert <td align="center">10</td> 299276da39aSCy Schubert <td>Number of PPS records used for clock samples on the 300276da39aSCy Schubert secondary channel since the last poll. 301276da39aSCy Schubert </td> 302276da39aSCy Schubert </tr> 303276da39aSCy Schubert </table> 304276da39aSCy Schubert </p> 305276da39aSCy Schubert 306276da39aSCy Schubert <!-- --------------------------------------------------------- --> 307276da39aSCy Schubert 308276da39aSCy Schubert <br><h4>Fudge Factors</h4> 3092b15cb3dSCy Schubert 3102b15cb3dSCy Schubert <dl> 3112b15cb3dSCy Schubert <dt><tt>time1 <i>time</i></tt></dt> 3122b15cb3dSCy Schubert <dd>Specifies the PPS time offset calibration factor, in seconds 3132b15cb3dSCy Schubert and fraction, with default 0.0.</dd> 3142b15cb3dSCy Schubert <dt><a name="fudgetime2"><tt>time2 <i>time</i></tt></a></dt> 315276da39aSCy Schubert <dd><em>[Primary Unit]</em> Specifies the TPV/TIME time offset 316276da39aSCy Schubert calibration factor, in seconds and fraction, with default 317276da39aSCy Schubert 0.0.</dd> 3182b15cb3dSCy Schubert <dt><tt>stratum <i>number</i></tt></dt> 319276da39aSCy Schubert <dd>Specifies the driver stratum, in decimal from 0 to 15, with 320276da39aSCy Schubert default 0.</dd> 3212b15cb3dSCy Schubert <dt><tt>refid <i>string</i></tt></dt> 3222b15cb3dSCy Schubert <dd>Specifies the driver reference identifier, an ASCII string 3232b15cb3dSCy Schubert from one to four characters, with default <tt>GPSD</tt>.</dd> 324276da39aSCy Schubert <dt><tt>flag1 0 | 1</tt></dt><dd><em>[<b>Secondary</b> 325276da39aSCy Schubert Unit]</em> When set, flags the secondary clock unit as a 326276da39aSCy Schubert potential PPS peer as long as good PPS data is available. 327276da39aSCy Schubert </dd> 328276da39aSCy Schubert <dt><tt>flag2 0 | 1</tt></dt> 329276da39aSCy Schubert <dd><em>[Primary Unit]</em> When set, <u>disables</u> the 330276da39aSCy Schubert processing of incoming PPS records. Intended as an aide to 331276da39aSCy Schubert test the effects of a PPS dropout when using automatic mode 332276da39aSCy Schubert (mode 2). 333276da39aSCy Schubert </dd> 334276da39aSCy Schubert <dt><tt>flag3 0 | 1</tt></dt><dd><em>[Primary Unit]</em> 335276da39aSCy Schubert If set, <u>disables</u> the log throttle. Useful when tracking 336276da39aSCy Schubert problems in the interaction between <i>GPSD</i> and <i>NTPD</i>, 337276da39aSCy Schubert since now all error events are logged. Persistent/recurrent 338276da39aSCy Schubert errors can easily fill up the log, so this should only be 339276da39aSCy Schubert enabled during bug hunts.</dd> 340276da39aSCy Schubert <dt><tt>flag4 0 | 1</tt></dt><dd><em>[Primary Unit]</em> 341276da39aSCy Schubert If set, write a clock stats line on every poll cycle. 342276da39aSCy Schubert </dd> 3432b15cb3dSCy Schubert </dl> 3442b15cb3dSCy Schubert 345276da39aSCy Schubert <!-- -- footnotes -------------------------------------------- --> 346276da39aSCy Schubert 347276da39aSCy Schubert <hr> 348276da39aSCy Schubert <p><a name="fn1" href="#fn1bl"><sup>1</sup>) </a>Data transmission 349276da39aSCy Schubert an decoding is done only once by the primary unit. The decoded 350276da39aSCy Schubert data is then processed independently in both clock units. This 351276da39aSCy Schubert avoids double transmission over two sockets and decoding the 352276da39aSCy Schubert same data twice, but the primary unit is always needed as a 353276da39aSCy Schubert downside of this approach. 354276da39aSCy Schubert </p> 355276da39aSCy Schubert <p><a name="fn2" href="#fn2bl"><sup>2</sup>) </a>The clock driver 356276da39aSCy Schubert suppresses the processing PPS records when the TPV/TIME data 357276da39aSCy Schubert indicates the receiver has no fix. It can also deal with 358276da39aSCy Schubert situations where the PPS signal is not delivered 359276da39aSCy Schubert to <i>GPSD</i>. But once it is available, it is also processed 360276da39aSCy Schubert and used to create samples. If a receiver cannot be trusted for 361276da39aSCy Schubert the precision of its PPS signal, it should not be used to create 362276da39aSCy Schubert a possible PPS peer: These get extra clout and can effectively 363276da39aSCy Schubert become the sole source of input for the control loop. You do not 364276da39aSCy Schubert want to use sloppy data for that. 365276da39aSCy Schubert <hr> 3662b15cb3dSCy Schubert <p>Additional Information</p> 3672b15cb3dSCy Schubert <p><a href="../refclock.html">Reference Clock Drivers</a></p> 3682b15cb3dSCy Schubert <hr> 3692b15cb3dSCy Schubert <script type="text/javascript" language="javascript" src="scripts/footer.txt"></script> 3702b15cb3dSCy Schubert </body></html> 371