ntp: fix poll interleaving with unsynchronised peers

Update the remote poll and remote stratum even for unsychronised peers,
and handle stratum of 0 as 16, so the peers work with the opposite
differences between their strata and can adjust their polling intervals
in order to interleave the packets.
This commit is contained in:
Miroslav Lichvar 2017-06-30 11:32:19 +02:00
parent 854ff69f78
commit 577290c5bc

View file

@ -1575,9 +1575,11 @@ receive_packet(NCR_Instance inst, NTP_Local_Address *local_addr,
!UTI_CompareTimespecs(&inst->local_rx.ts, &rx_ts->ts));
if (valid_packet) {
inst->remote_poll = message->poll;
inst->remote_stratum = message->stratum != NTP_INVALID_STRATUM ?
message->stratum : NTP_MAX_STRATUM;
if (synced_packet) {
inst->remote_poll = message->poll;
inst->remote_stratum = message->stratum;
inst->tx_count = 0;
SRC_UpdateReachability(inst->source, 1);
}