aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Kandaurov <pluknet@nginx.com>2023-06-12 23:38:56 +0400
committerSergey Kandaurov <pluknet@nginx.com>2023-06-12 23:38:56 +0400
commite3d2bd0a10390c5f18f9d723164dcfa16395b9bf (patch)
treeef3c7b02c67300e4b8d3be9bc1f59d4214e283b7
parent6915d2fb2e88e0c339fe37b37ce14f5fe446c1c6 (diff)
downloadnginx-e3d2bd0a10390c5f18f9d723164dcfa16395b9bf.tar.gz
nginx-e3d2bd0a10390c5f18f9d723164dcfa16395b9bf.zip
QUIC: fixed rttvar on subsequent RTT samples (ticket #2505).
Previously, computing rttvar used an updated smoothed_rtt value as per RFC 9002, section 5.3, which appears to be specified in a wrong order. A technical errata ID 7539 is reported.
-rw-r--r--src/event/quic/ngx_event_quic_ack.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/event/quic/ngx_event_quic_ack.c b/src/event/quic/ngx_event_quic_ack.c
index 21ee888c9..f194abfff 100644
--- a/src/event/quic/ngx_event_quic_ack.c
+++ b/src/event/quic/ngx_event_quic_ack.c
@@ -207,9 +207,9 @@ ngx_quic_rtt_sample(ngx_connection_t *c, ngx_quic_ack_frame_t *ack,
adjusted_rtt -= ack_delay;
}
- qc->avg_rtt += (adjusted_rtt >> 3) - (qc->avg_rtt >> 3);
rttvar_sample = ngx_abs((ngx_msec_int_t) (qc->avg_rtt - adjusted_rtt));
qc->rttvar += (rttvar_sample >> 2) - (qc->rttvar >> 2);
+ qc->avg_rtt += (adjusted_rtt >> 3) - (qc->avg_rtt >> 3);
}
ngx_log_debug4(NGX_LOG_DEBUG_EVENT, c->log, 0,