[ntp:questions] Using a uC based embedded device as SNTP server

David Woolley david at ex.djwhome.demon.invalid
Thu Feb 16 21:29:36 UTC 2012

Thorsten Mühlfelder wrote:

> In my understanding my server is a stratum 1 with reference identifier
> LOCL. Also I chose reference timestamp as last time correction by
> SNTP. Is this correct?

Strictly speaking it is an invalid SNTP server as SNTP clients are not 
allowed to be SNTP servers (the standard strongly discourages, which in 
formal RFC language probably means "SHOULD NOT").  So everything else is 
rather arbitrary.
> I also wonder about the precision an root dispersion settings, as the
> RTC only has a resolution of 1 second.

I'm not sure that all of these are defined for SNTP, but if they are, 
precision is 0. I would guess that root dispersion would have to be 
35ms/second of uptime, plus the results of the standard computation for 
an upstream NTP server, maybe using suitable guesses for any parameters 
that specifically derive from the NTP model.  Normally one uses 15ms/s, 
but that assumes that some attempt has been made to correct the static 
frequency error.

Reference identifier should be the first 32 bits of the MD5 hash of the 
IPv6 or NSAP address of the  the server used at startup, and reference 
time should be the startup time.  (If you use LOCL as reference 
identifier, I believe reference time should be now and root dispersion 
should be zero, but, generally, the local "clock" driver is a deliberate 
protocol violation.)

Stratum is either one greater than the server used at start-up, if 
claiming that as the reference, or 1 if you are pretending LOCL is 
really a reference clock.  However I think that best practice for ntpd 
servers with LOCL should apply and you should actually claim stratum 10, 
with LOCL.

A low stratum is OK when claiming the real source, as root dispersion 
will disqualify you before you do too much damage.
> Thanks for any help, I'd like to set it up the right way.

More information about the questions mailing list