Blog

Observing the leap second

July 2nd 2012 · 1 min read

A leap second was inserted June 30, 2012 - and we wanted to record how the leap second was handled via the various protocols - including PTP, NTP, and GPS, in both off the shelf software installs and with the latest network appliances. We also wanted to capture the network traffic over the period for later dissection.  With TimeKeeper, this was easy:

With TimeKeeper, we easily tracked a group of sources with this configuration:

Track pulse from serial port, get time of day from SOURCE8

SOURCE0() { PPSDEV=/dev/ttyS1; MAJORTIME=SOURCE8; }

Track internal NTP server appliance at 4 queries/second

SOURCE1() { NTPSERVER=10.0.0.90; NTPSYNCRATE=4; }

Track additional internal NTP server appliance at 4 queries/second

SOURCE2() { NTPSERVER=10.0.0.91; NTPSYNCRATE=4; }

Track PTP grandmaster on domain 80 (It gets its time from GPS)

SOURCE3() { PTPCLIENTVERSION=2;PTPDOMAIN=80; }

Track internal off the shelf Linux ntpd server at 4 samples/second

SOURCE4() { NTPSERVER=10.0.0.110; NTPSYNCRATE=4; }

Track public NTP server at the default query rate

SOURCE5() { NTPSERVER=tick.uh.edu;}

Follow a NIST server at the default query rate (US east coast)

SOURCE6() { NTPSERVER=nist1.aol-va.symmetricom.com; }

Follow a NIST server at the default query rate (US west coast)

SOURCE7() { NTPSERVER=nist1-sj.ustiming.org; }

Track system time and provide time of day for SOURCE0

SOURCE8() { PPSDEV=self; }

On startup, set the time directly to avoid an initial clock slew

SETTIMEON_STARTUP=1

Capture relevant timing protocol data automatically for later analysis

VERBOSE_TCPDUMP=1

And that’s it! Multiple NTP servers tracked at different query rates, along with a PTP grandmaster, a PPS input directly from GPS, and both off the shelf ntpd behavior and network appliance NTP are represented.  All sources were modeled and logged throughout the transition.  For timing folks, it was a pretty exciting Saturday night.