Skip to content

Latest commit

 

History

History
726 lines (501 loc) · 25.4 KB

drivers.adoc

File metadata and controls

726 lines (501 loc) · 25.4 KB

=ci NTPD driver retention analysis = Eric S. Raymond <[email protected]> Version 1.16, 2019-08-08

Summary

ntpd contains support for 42 driver types. Of these: 2 are IPC drivers which must be retained; 12 are for hardware that might, under very generous assumptions, still be of use; and 28 can be discarded.

Out of that 12, the actual utility of some remains dubious, but the cultural/political context of the project probably requires that we retain them. I discuss related issues in a concluding section.

Technological context

NTP’s driver inventory contains several different classes of precision time sources. The software is now around 40 years old, and some of those classes are now obsolescent or semi-obsolescent.

See "Introduction to Time Service" for terminology, device classes, and accuracy. The summary version is that inexpensive 1PPS-capable GPS devices have a nearly overwhelming cost-effectiveness advantage over older time source types, and the utility of supporting those older types is accordingly plummeting.

It is actually seriously questionable whether support for any of these legacy devices is worth maintaining. No hardware drivers have been added since 2006, and possibly none since 2002. NIST’s modulation change at 2012-10-29T15:00:00Z laid waste to the U.S. time-radio industry. It may actually be the case that all the Stratum 1 sites running non-custom ntpd instances are using GPSes now.

However, political reality - especially for a federally-funded project with customers in a lot of .gov and .mil shops running very old iron - does not necessarily allow the best technical move, which would be to drop all the drivers, see who screams, and reinstate the fewest we can. I will return to this issue.

Objectives and criteria

Two of our main objectives in the ntpd rescue are (1) to eliminate security vulnerabilities and (2) move the code to a maintainable state. An effective way of accomplishing both would be to outright remove as much code as possible from ntpd.

ntpd includes no fewer than 46 device drivers for local clock sources. Some effective means of removing code would be to remove drivers which are obsolescent by the following criteria:

INTRINSIC

Remove hardware that can no longer work for intrinsic technical reasons.

DEPRECATED

Remove deprecated drivers - that is, drivers which the ntpd documentation itself declares obsolete or no longer documents.

DISCONTINUED

Remove drivers for products that have been discontinued for more than seven years. (In the first version of this report the proposal was ten years. Please see the final section on policy and conclusions.)

UNAVAILABLE

Remove drivers for products which cannot be found for sale with a web search. (I have noted when remaindered units are available on eBay and second-hand sites.)

REDUNDANT

Remove drivers that duplicate capabilities better provided by GPSD (or, in principle, other sensor managers).

INACCURATE

Remove GPS drivers and time radios for which the hardware offers no better source accuracy than a timing GPS available for less than $75 in 2015; that is, about 5ms. (However, do not necessarily remove poorer-performing GPS-conditioned clocks, as they continue to supply time in holdover mode when the GPS cannot get satellite lock.)

SECURITY

As a policy choice, we do not support devices requiring closed-source code to be linked to the OS kernel.

We should certainly keep drivers such as SHM and GPSD-NG that are IPC methods for peer time-source programs in ntpd itself.

First-round triage

The following lists the drivers in ntpd, categorizes them, and recommends a disposition for each. It’s based on the master list from the NTP Classic documentation.

Types 15, 23, 24, and 25 are not listed because they are reserved and not in use. In any case, we no longer use the old-style driver numbers The name symbols given in the following list do not necessarily match those in Classic; when a driver has a newer shortname string in NTPsec that is used instead.

Type 1 (LOCAL): Undisciplined Local Clock

This driver type is described as deprecated. It is in any case obsolete anywhere with a sky view, where a GPS will do a better job.

Disposition: Fails tests DEPRECATED and INACCURATE; Remove.

Type 2 (GPS_TRAK): Trak 8820 GPS Receiver

This driver still existed only as one mention in the ntpd documentation. There is no refclock implementation for it.

Web searches reach one copy of the technical manual dating from 1994 and preserved here:

All other references are to copies of old ntpd documentation. I conclude that this hardware is extremely obsolete and discontinued well before before 2000.

Disposition: Fails tests DEPRECATED, DISCONTINUED, UNAVAILABLE; already removed.

Type 3 (WWV_PST): PSTI/Traconex 1020 WWV/WWVH Receiver

This device is described here with a 2005 note that it is "not very reliable" having drifted by a full minute.

Investigating the vendor site at U.S. Traffic Corp (now Peek Traffic) reveals that this device was discontinued, probably before 2000.

According to this August 2001 post

the device required manual intervention every year and was not designed for use after 2001. Dave Mills replied to that one in a way that implies he still has two of these and there is a workaround to the problem described, but also says they have a service life of only a few years due to a failure-prone component.

I could not find any for sale on the Web. This hardware would no longer work even if a specimen could be found, due to WWVB’s modulation change as described in the next entry.

Disposition: Fails tests INTRINSIC, DISCONTINUED, UNAVAILABLE, and INACCURATE; already removed.

Type 4 (SPECTRACOM): Spectracom WWVB/GPS Receivers

Since WWVB changed its modulation scheme at 2012-10-29T15:00:00Z Spectracom WWVB receivers from before that date no longer function. The models covered by this driver (Model 8170, Netclock/2 WWVB) are in this category. Spectracom has not produced any new time-radio gear since the modulation change.

However, the Spectracom 9300 (still in production and support) is a GPS clock that can emit the type 0 and 2 formats recognized by this driver.

Disposition: Retain.

Type 5 (TRUETIME): TrueTime GPS/GOES/OMEGA Receivers

True Time was a product line of timer sources. The most recent relevant document I can find is is a military test report dated 1997:

This implies that the device was still in production in 1996, and also that it does not receive PPS.

The devices can be found for sale, but only on eBay and electronics remainder sites. The vendor seems to be long gone.

Disposition: DISCONTINUED; Remove.

Type 6 (IRIG): IRIG Audio Decoder

This driver is a very, very bad idea given flesh. It demodulates an audio signal emitted by several radio time sources, requiring custom wiring to connect to a microphone or line-in port. All for accuracy two orders of magnitude worse (500µs) than a cheap 1PPS GPS and no holdover capability.

We removed this one in July 2016 following a determination that the hardware required by audio-path drivers imposed serious precision limits and is now obsolete.

Disposition: INACCURATE; already removed.

Type 7 (CHU): Radio CHU Audio Demodulator/Decoder

A very bad idea similarly wired to IRIG, using a Canadian analog of WWVB. Cited as 1ms accuracy without GPS calibration.

We removed this one in July 2016 following a determination that the hardware required by audio-path drivers imposed serious precision limits and is now obsolete.

Disposition: INACCURATE; already removed.

Type 8 (GENERIC): Generic Reference Driver

This is a driver supporting a large variety of time radios, some of which (such as the Meinberg line) are still generally available.

Disposition: Move to refclockd.

Type 9 (MAGNAVOX): Magnavox MX4200 GPS Receiver

A line of GPSes produced by Magnavox, discontinued in 1994, with the surplus stock marketed by Leica Geosystems. Leica no longer sells them. They shipped 1PPS. I could find only two units at dodgy surplus houses; even eBay doesn’t have them.

Disposition: DISCONTINUED, UNAVAILABLE; already removed.

Type 10 (AUSTRON): Austron 2200A/2201A GPS Receivers

An obsolete line of 1PPS GPS receivers. Austron was acquired some time before 1996 and the product line apparently discontinued then. A few units were still in hobbyist use in 2006, but there don’t seem to be more recent references even on the time-nuts list. I could find none available for sale.

Removed in July 2016 when our program manager decided it was too ancient to be worth keeping.

Disposition: Fails tests DISCONTINUED, UNAVAILABLE; already removed.

Type 11 (ARBITER): Arbiter 1088A/B GPS Receiver

Arbiter systems is still alive at http://www.arbiter.com/

With 100ns worst-case accuracy relative to 1PPS this is still a viable time source.

Disposition: Retain.

Type 12 (IRIG_TPRO): KSI/Odetics TPRO/S IRIG Interface

An obsolete clock source that connected directly to the SBus of a Sun workstation. SBus was replaced rapidly by PCI after 1997; no hardware based on SBus has been shipped for at least a decade and the last of these were probably shipped before the year 2000. I could find none of them for sale.

Disposition: DISCONTINUED, UNAVAILABLE; already removed.

Type 13 (ATOM_LEITCH): Leitch CSD 5300 Master Clock Controller

Documentation has been removed from the ntpd4 webpages.

A clock source that synchronized with the U.S. national time authority via modem. Leitch was acquired by Harris Broadcasting in 2005.

Propagation jitter in the POTS network dooms any chance this could even match the performance of a cheap serial GPS. Remnant units are available on eBay and electronics remainder sites.

Disposition: DEPRECATED, DISCONTINUED, and INACCURATE; already removed.

Type 14 (MSF_EES): EES M201 MSF Receiver

Documentation for this driver has been removed from the ntpd4 webpages.

All the references to it I can find on the Web point back to old NTP documentation. I conclude that it is obsolete.

Disposition: Fails test DEPRECATED and DISCONTINUED; already removed.

Type 16 (GPS_BANCOMM): Bancomm GPS/IRIG Receiver

A discontinued VME board for Sun 4 systems. The last VME-based Sun 4 issued in 1989 to be replaced by SBus systems also now obsolete. Required a proprietary driver.

Disposition: DISCONTINUED. SECURITY; already removed.

Type 17 (GPS_DATUM): Datum Precision Time System

Documentation has been removed from the ntpd4 webpages. There used to be a company called Datum that sold clock sources, but it has left no traces on the Web and I can find no evidence of surviving hardware.

Disposition: DEPRECATED, DISCONTINUED, UNAVAILABLE; already removed.

Type 18 (ACTS_MODEM): NIST/USNO/PTB Modem Time Services

The USNO timer service still nominally exists, but requires a Hayes-compatible 1200bps modem, hardware now 20 years obsolete:

It claims 4ms jitter (before propagation delays in the POTS network). Retain because it might be useful in holdover mode.

Disposition: Retain.

Type 19 (WWV_HEATH): Heath WWV/WWVH Receiver

Pre-1992 time-radio receiver, cited as worse than 100ms accuracy. Undated web pages suggest that a few may survive in hobbyist use.

Disposition: DISCONTINUED, UNAVAILABLE, INACCURATE; already removed.

Type 20 (NMEA): Generic NMEA GPS Receiver

GPSD does this better.

Disposition: REDUNDANT; Remove

Type 21 (GPS_VME): TrueTime GPS-VME Interface

VME-bus time source for Sun workstations, long dead, documentation removed.

Disposition: INTRINSIC, DEPRECATED, DISCONTINUED; already removed.

Type 22 (PPS): PPS Clock Discipline

I had this marked for retention in the 1.0 version of this document; it could still have been potentially useful in some very odd situations - the documentation mentions "the vicinity of Mars".

However, Hal Murray reports that the PPS support in ntpd is "kludgy" and needs to be fixed. That says to me that this driver is too broken to be worth saving. Should be replaced with the GPSD PPS code, which is better tested.

Disposition: INTRINSIC; Remove

Type 26 (GPS_HP): Hewlett Packard 58503A GPS Receiver

Support for two discontinued HP time sources, not updated since 2005. Used units can be found on the Web. Accuracy cited as better than 1µs when GPS-locked, drift of better than 10ms in holdover mode. Some are available on eBay.

I had this marked for removal in the 1.0 version of this document, but Hal Murray - who is credible when he says such things - reports that (a) these were heavily used in cell towers before being discontinued, so surplus units are easy to find, and (b) they’re widely used in the time-hacker community.

Disposition: DISCONTINUED; move to refclockd.

Type 27 (MSF_ARCRON): Arcron MSF Receiver

Obsolete time source, noted in 2003 posting

to be "not very good" and inferior to a common Trimble GPS. The vendor is gone. Web searches do not find units for sale.

We got advice from the last maintainer of this driver to remove it.

Disposition: DISCONTINUED, UNAVAILABLE, INACCURATE; already removed.

Type 28 (SHM): Shared Memory Driver

IPC driver, to be retained.

Type 29 (PALISADE): Trimble Navigation Palisade GPS

GPSD does this better.

Disposition: REDUNDANT; Remove.

Type 30 (ONCORE): Motorola UT Oncore GPS

GPSD does this better.

Disposition: REDUNDANT; Remove.

Type 31 (JUPITER): Rockwell Jupiter GPS

GPSD does this better. Anyway, the driver turned out to rely on the assumption that it was in Epoch 0 and cannot have worked since the Epoch 1 turnover in 1999.

Disposition: INTRINSIC, REDUNDANT; Removed.

Type 32 (CHRONOLOG): Chrono-log K-series WWVB receiver

Discontinued WWVB receiver described as "very old" in 2010. Vendor still exists but is now making blood-platelet counters rather than clocks. Only 1 second accuracy. Wouldn’t work following the WWVB modulation change, anyway.

Disposition: INTRINSIC, DISCONTINUED, UNAVAILABLE, INACCURATE; already removed.

Type 33 (DUMBCLOCK): Dumb Clock

I can find no evidence that non-GPS ASCII clocks of this kind still exist. It is not clear to me that they ever existed except as custom hobbyist rigs! Precision 2000 times worse than a cheap serial GPS.

Disposition: INACCURATE; Already removed.

A discontinued time radio. Most recent references on the Web are from 2008; still on sale in 2004. This posting

notes that accuracy is bad compared to a GPS. Would no longer work due to the WWVB modulation change.

Disposition: INTRINSIC, DISCONTINUED and INACCURATE; already removed.

Type 35 (PCF): Conrad Parallel Port Radio Clock

Obsolete port type, obsolete clock. The vendor is still in business but this product has been discontinued. All web references I found, except one 404, are pointers to ntpd documentation from before 2010. Not portable; relies on a BSD-only driver, with a former Linux one having apparently disappeared. Can only report to 0.5s accuracy.

Disposition: DISCONTINUED, UNAVAILABLE, INACCURATE; already removed.

Type 36(WWV): Radio WWV/H Audio Demodulator/Decoder

Yet another really bad idea based on audio signal demodulation. Only accurate to 1ms; a cheap GPS can do 200 times better.

Disposition: INACCURATE; already removed.

Type 37 (FG): Forum Graphic GPS Dating station

Product discontinued, vendor vanished, more than 15 years old and had a Y2K issue then.

Disposition: DISCONTINUED, INACCURATE; already removed.

Type 38 (HOPF_S): hopf GPS/DCF77 6021/komp for Serial Line

This was originally slated for removal, but in late November 2015 we were informed that the "Hopf 6021 Standard" protocol this handles is still emitted by several Hopf models in production use in off-Internet applications.

In 2016 it was removed anyway because it duplicates support in the parse driver.

Disposition: already removed

Type 39 (HOPF_P): hopf GPS/DCF77 6039 for PCI-Bus

Still a live product - an industrial-grade timing receiver, or what passed for one in 2001 (date of manual). At a claimed jitter of 2ms it is 400 times less accurate than any common 1PPS device today and half the accuracy of a $30 USB timing GPS. However, as a clock rather than plain GPS the DCF77 variant evades the INACCURATE tag (just barely).

Disposition: SECURITY; already removed.

Type 40 (JJY): JJY Receivers

The TriState and C-Dex devices this supports may still be live products, though little information seems to be available in English.

Disposition: Retain.

Type 41 (REFCLK_TT560): TrueTime 560 IRIG-B Decoder

Documentation has been removed from the ntpd4 web pages, but from web searches and context this is another obsolete product in the audio-decoder class from a dead vendor.

Disposition: DEPRECATED and DISCONTINUED; already removed.

Type 42 (ZYFER): Zyfer GPStarplus Receiver

Live product with a supporting vendor. 100ns accuracy.

Disposition: Retain.

Type 43 (RIPENCC): RIPE NCC interface for Trimble Palisade

Requires custom hardware no longer being made.

Disposition: INTRINSIC; already removed.

Type 44 (NEOCLOCK4X): NeoClock4X - DCF77 / TDF serial line

This is a radio clock synchronized to DCF77 and thus has 2ms jitter. In 2015, I found a source page at http://www.linux-funkuhr.de/ that suggests it was written by a small software company "Linum Software GmbH" for Linux hosts. In 2019, that site was gone. The device ships only 2-digit years, suggesting a design predating the Y2K flap. Internal evidence in the NTP Classic revision history is that it has not had updates since 2004.

Disposition: DISCONTINUED (<2004), UNAVAILABLE; Remove.

Type 45 (TSYNCPCI): Spectracom TSync PCI

Spectracom is a product line of of time sources that is still available and supported by a vendor. The TSync is a GPS clock with a specified accuracy of 100ns. However, it required a proprietary driver and is therefore unacceptable as a matter of security policy.

Disposition: SECURITY; already removed.

Type 46 (GPSD): GPSD NG client protocol

IPC driver, to be retained.

Summary

For hardware marked "<2000?" the date it was end-of-lifed cannot be determined cetainly but was almost certainly in the last century.

Table 1. Hardware status summary

1

DEPRECATED, INACCURATE

2

DEPRECATED, DISCONTINUED (<2000?), UNAVAILABLE

3

INTRINSIC, DISCONTINUED (<2000?), UNAVAILABLE, INACCURATE; REMOVED

4

-

5

DISCONTINUED (<2000?)

6

INACCURATE; REMOVED

7

INACCURATE; REMOVED

8

-

9

DISCONTINUED (1994), UNAVAILABLE

10

DISCONTINUED (1996), UNAVAILABLE; REMOVED

11

-

12

UNDOCUMENTED, DISCONTINUED (<2000?), UNAVAILABLE; REMOVED

13

DISCONTINUED (<2005), INACCURATE; REMOVED

14

DEPRECATED and DISCONTINUED (<2000?); REMOVED

16

DISCONTINUED (<2000?), SECURITY; REMOVED

17

UNDOCUMENTED, DEPRECATED, DISCONTINUED (<2000?), UNAVAILABLE; REMOVED

19

DISCONTINUED (<1992), UNAVAILABLE, INACCURATE; REMOVED

20

REDUNDANT

21

INTRINSIC, DEPRECATED, DISCONTINUED (<2000?); REMOVED

26

DISCONTINUED (2005?)

27

DISCONTINUED (<2000?), UNAVAILABLE, INACCURATE; REMOVED

29

REDUNDANT

30

REDUNDANT

31

REDUNDANT

32

INTRINSIC, DISCONTINUED (<2000?), UNAVAILABLE, INACCURATE; REMOVED

33

INACCURATE; REMOVED

34

INTRINSIC, DISCONTINUED (>2004,<2015) and INACCURATE; REMOVED

35

DISCONTINUED (<2010), UNAVAILABLE; REMOVED

36

INACCURATE; REMOVED

37

DISCONTINUED (<2000), INACCURATE; REMOVED

38

REMOVED

39

SECURITY; REMOVED

40

-

41

DEPRECATED, DISCONTINUED

42

-

43

INTRINSIC; REMOVED

44

DISCONTINUED (<2004), UNAVAILABLE; Remove.

45

SECURITY; REMOVED

Second-round triage

Table 2. Potentially viable drivers

Type 1

LOCAL

Undisciplined Local Clock

Type 4

SPECTRACOM

Spectracom WWVB/GPS Receivers

Type 8

GENERIC

Generic Reference Driver

Type 11

ARBITER

Arbiter 1088A/B GPS Receiver

Type 18

ACTS

NIST/USNO/PTB Modem Time Services

Type 26

HPGPS

Hewlett Packard 58503A GPS Receiver

Type 28

SHM

Shared Memory Driver

Type 40

JJY

JJY Receivers

Type 42

ZYFER

Zyfer GPStarplus Receiver

Type 44

NEOCLOCK

NeoClock4X - DCF77 / TDF serial line

Type 46

GPSD

GPSD JSON client protocol

The Type 4 driver supports recent Spectracom GPS clocks, if I can believe their protocol documentation. But Spectracom no longer makes WWVB receivers; this has been renamed "Spectracom Type 2 protocol".

Types 28 and 46 are no-brainers to keep. We will eventually want to deprecate the SHM driver in favor of the JSON one. That needs to be described as a future direction in the documentation.

Kludgy PPS support in ntpd may compromise types 4, 8, and 45. This is an issue we need to keep an eye on.

Policy consequences

The 1.0 version of this document contained a technical policy proposal but no conclusions. It was, essentially, to remove all drivers tagged INTRINSIC, DEPRECATED, OBSOLETE, REDUNDANT, and INACCURATE, but allow for reinstatement of merely OBSOLETE drivers on demonstration of a real-world use case.

At that time the proposed obsolescence timeout was ten years. I noted that there is only one driver for hardware that has been discontinued, but possibly too recently - Type 35; the date it was end-of-lifed is unclear. I have continued to designate it OBSOLETE, as its reliance on a parallel port means it is extremely likely to have been discontinued before 2008.

Susan Sons, acting as program manager, changed the timeout to seven years. She endorsed the exception that obsolete drivers may be reinstated if and when specific users demonstrate a need for them.

To date, there have been two such reinstatements:

  • the Hewlett Packard 58503A (type 26), requested by Hal Murray.

  • the Hopf 6021 Serial, requested by Martin Kotzan.

The second one was later dropped again when it was discovered that a GENERIC mode supports this hardware.

Accordingly, the list under "Potentially viable drivers" is the list to be retained in the cleanup release of NTP. This list may be revised as we receive new information.

Appendix: Test equipment available

Harlan Stenn reports:

Here at my lab I have:

- Meinberg LANtime M600
- SEL-2407
- Sure GPS
- ublox

At ISC we have:

- Meinberg GPS167BGT
- - IRIG Audio
- - Serial with no PPS
- - Serial with PPS
- - DCF77 output
- Meinberg DCF77 receiver
- Trimble Acutime 2000

I think we have a Trimble Acutime Gold as well, but no cable for it.

> |==========================================================
> |Type 4: Spectracom WWVB/GPS Receivers (WWVB_SPEC)
> |Type 11: Arbiter 1088A/B GPS Receiver (GPS_ARBITER)

Dave Mills might have these two, but I have no idea if they're up and
running and there's no good way to access them at his place.  If they
are up and running I might be able to get logs for you.

> |Type 42: Zyfer GPStarplus Receiver

I had one of these back when I wrote the driver, but I haven't seen one
since.  There is no maintainer for this refclock, so if a problem is
found with it I'll ping the manufacturer and either they'll fix it or
I'll deprecate the driver.  I wrote this driver because Zyfer had a
customer (the NSA) who asked for it.  I haven't heard a word about this

History

Version 1.0, 2015-03-03

Initial version.

Version 1.1, 2015-03-06

Dropped type 22, reinstated type 26. Added hardware status summary.

Version 1.2, 2015-03-10

Added section on policy and conclusions. ACTS is still used for backup at government Stratum 1 sites, so keep it.

Version 1.3, 2015-06-16

Minor typo fixes.

Version 1.4, 2015-06-30

Add DEPRECATED tags to three refclocks because they are undocumented. Note that driver 2 was already gone and that 13, 14, 17, 21, and 41 have already been removed.

Version 1.5, 2015-11-26

Take Type 38 off the removal list in response to user feedback.

Version 1.6, 2015-11-28

Properly mark removed drivers.

Version 1.7, 2015-12-09

Correct the date of the WWVB modulation change.

Version 1.8, 2015-06-12

Remove Conrad Parallel Port radio (refclock 35).

Version 1.9, 2016-06-16

Remove Spectracom TSYNC PCI (refclock 45) and ARCRON MSF (refclock 27). Add SECURITY tag.

Version 1.10, 2016-07-23

We don’t use magic numbers any more. Update accordingly.

Version 1.11, 2016-08-22

Minor typo fixes.

Version 1.12, 2016-01-30

Remove DUMBCLOCK (refclock 33).

Version 1.13, 2017-05-13

Remove JUPITER - can’t have worked since 1999.

Version 1.14, 2017-09-17

Remove MAGNAVOX; discontinued and unavailable.

Version 1.15, 2019-02-05

Millisecond-microsecond correction.

Version 1.16. 2019-08-08

The REFCLOCKD proposal has been abandoned. The neoclock4x driver’s vendor is gone.

clocktower64