From: Miroslav Lichvar Date: Mon, 18 Jul 2022 10:50:05 +0000 (+0200) Subject: ntp: enable sub-second poll sooner with filter option X-Git-Tag: 4.3-pre1~17 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3556dadea1b0ccbd7685ebd903eb521229843bf7;p=thirdparty%2Fchrony.git ntp: enable sub-second poll sooner with filter option When the minimum round-trip time is checked to enable a sub-second polling interval, consider also the last sample in the filter to avoid waiting for the first sample to be accumulated in sourcestats. --- diff --git a/ntp_core.c b/ntp_core.c index cd8b6270..6e4745b7 100644 --- a/ntp_core.c +++ b/ntp_core.c @@ -783,6 +783,8 @@ NCR_ChangeRemoteAddress(NCR_Instance inst, NTP_Remote_Address *remote_addr, int static void adjust_poll(NCR_Instance inst, double adj) { + NTP_Sample last_sample; + inst->poll_score += adj; if (inst->poll_score >= 1.0) { @@ -808,7 +810,9 @@ adjust_poll(NCR_Instance inst, double adj) or it is not in a local network according to the measured delay */ if (inst->local_poll < MIN_NONLAN_POLL && (!SRC_IsReachable(inst->source) || - SST_MinRoundTripDelay(SRC_GetSourcestats(inst->source)) > MAX_LAN_PEER_DELAY)) + (SST_MinRoundTripDelay(SRC_GetSourcestats(inst->source)) > MAX_LAN_PEER_DELAY && + (!inst->filter || !SPF_GetLastSample(inst->filter, &last_sample) || + last_sample.peer_delay > MAX_LAN_PEER_DELAY)))) inst->local_poll = MIN_NONLAN_POLL; }