On 03/02/2017 04:15, Robert Scott wrote:
I am writing some parsing code for reading Time Server packets.  The
first 32 bits of the returned packet are:

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|LI | VN  |Mode |    Stratum    |     Poll      |   Precision    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

When the two LI bits come back as 11 (clocks not synchronized) I have
been treating that as a fatal error for that server.  I ignore that
packet and do not attempt to retry my query for that server.  However
I have found that LI=11 is not all that uncommon for servers from the
pool.  Is my response to LI=11 the correct one?  Should I discard the
response and should I write off that server for retries?  So far, the
only reason I might retry a server is if my recvfrom() socket call
times out.


I suspect this is the expected response from a time server which has
recently booted and has not yet synchronized itself, probably combined
with stratum=15 or more.  But I haven't double checked this against
code or RFCs.

Retrying after a standard poll delay (with exponential backoff as
usual) is probably the best way to handle this.


Enjoy

Jakob
--
Jakob Bohm, CIO, Partner, WiseMo A/S.  https://www.wisemo.com
Transformervej 29, 2860 Søborg, Denmark.  Direct +45 31 13 16 10
This public discussion message is non-binding and may contain errors.
WiseMo - Remote Service Management for PCs, Phones and Embedded

_______________________________________________
questions mailing list
[email protected]
http://lists.ntp.org/listinfo/questions

Reply via email to