mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2024-12-15 16:04:37 +00:00
BUG/MINOR: quic: Missing time threshold multiplifier for loss delay computation
It seems this multiplier ended up in oblivion. Indeed a multiplier must be applied to the loss delay expressed as an RTT multiplier: 9/8. So, some packets were detected as lost too soon, leading to be retransmitted too early!
This commit is contained in:
parent
1601395063
commit
c40e19d711
@ -33,6 +33,12 @@
|
||||
#define QUIC_TIMER_GRANULARITY 1U /* 1ms */
|
||||
#define QUIC_LOSS_INITIAL_RTT 333U /* 333ms */
|
||||
|
||||
/* QUIC loss time threshold expressed an RTT multiplier
|
||||
* (QUIC_LOSS_TIME_THRESHOLD_MULTIPLICAND / QUIC_LOSS_TIME_THRESHOLD_DIVISOR)
|
||||
*/
|
||||
#define QUIC_LOSS_TIME_THRESHOLD_MULTIPLICAND 9
|
||||
#define QUIC_LOSS_TIME_THRESHOLD_DIVISOR 8
|
||||
|
||||
/* Note that all the unit of variables for QUIC LOSS dectections
|
||||
* is the tick.
|
||||
*/
|
||||
|
@ -154,7 +154,8 @@ void qc_packet_loss_lookup(struct quic_pktns *pktns, struct quic_conn *qc,
|
||||
|
||||
ql = &qc->path->loss;
|
||||
loss_delay = QUIC_MAX(ql->latest_rtt, ql->srtt >> 3);
|
||||
loss_delay = QUIC_MAX(loss_delay, MS_TO_TICKS(QUIC_TIMER_GRANULARITY));
|
||||
loss_delay = QUIC_MAX(loss_delay, MS_TO_TICKS(QUIC_TIMER_GRANULARITY)) *
|
||||
QUIC_LOSS_TIME_THRESHOLD_MULTIPLICAND / QUIC_LOSS_TIME_THRESHOLD_DIVISOR;
|
||||
|
||||
node = eb64_first(pkts);
|
||||
while (node) {
|
||||
|
Loading…
Reference in New Issue
Block a user