# NTP Stratum 1 servers and leap second



## bsduni (Jul 20, 2015)

I have got a fundamental question about from where the Stratum 1 NTP servers gets its time from? The question arose after the recent leap second event on 30th June 2015.

I have got two FreeBSD stratum 1 NTP servers - namely ServerA and ServerB - synchronized with identical GPSs. 

I initiated an experiment on 29th June 2015 to see how leap second events are handled by FreeBSD stratum 1 NTP servers.

I added leap_events file downloaded from the NIST's website to ServerA, added the location of the leap_events to /ntp/conf as `leapfile /etc/ntp/leap_events`, and restarted the ntpd .

At the same time ServerB was left without the leap_events file or any changes. My intention is to  

As the first step I recorded time differences (offsets) between these two servers and a number of other public stratum 1 NTP servers using `ntpdate -q` command on 29th June 2015. All the servers - both ServerA, ServerB, and the public stratum 1 servers have had very negligible time differences (offsets). 

After the leap second event, repeated the measurements using `ntpdate -q` for time differences. Even though I expected 1 second difference in the times returned by ServerA and ServerB, the measurements show that both the servers have adjusted their times to accommodate the leap second event similarly despite only one server (ServerA) having the leap_events file and required configurations to handle the event. I also double confirmed this results by comparing with the same set of external public stratum 1 NTP servers. 

Now my question is, how ServerB learned about the leap second event without the leap_events file?
If the leap second event is learned from the GPS input then why do we need to provide leap_events file and add the line `leapfile /etc/ntp/leap_events` in /ntp/conf?


----------



## Uniballer (Jul 20, 2015)

This sounds like a question for the TimeNuts list, but I'll try to help.

Authoritative background info: The NTP Timescale and Leap Seconds

I assume that your GPS units provide both a time code and PPS outputs.  So that implies that if the GPS unit knows about the leap second then it will be taken care of (eventually).  Mostly, anyway. Some units are reported as not working quite right.

TLDR: Leap seconds never show up in the conventional UNIX time functions.

The leap-seconds.list file is used for advance notification of leap second events  (e.g. your NTP dependents can be notified by your stratum 1 server of the impending leap second so that they can handle the leap second gracefully, too).


----------



## bsduni (Jul 21, 2015)

Thank you so much Uniballer.


----------

