BUG/MINOR: quic: Wrong rtt variance computing
In ->srtt quic_loss struct this is 8*srtt which is stored so that not to have to multiply/devide it to compute the RTT variance (at least). This is where there was a bug in quic_loss_srtt_update(): each time ->srtt must be used, it must be devided by 8 or right shifted by 3. This bug had a very bad impact for network with non negligeable packet loss. Must be backported to 2.6 and 2.7.
This commit is contained in:
parent
d721571d26
commit
5d5afe7900
|
@ -37,7 +37,7 @@ void quic_loss_srtt_update(struct quic_loss *ql,
|
|||
/* Specific to QUIC (RTT adjustment). */
|
||||
if (ack_delay && rtt > ql->rtt_min + ack_delay)
|
||||
rtt -= ack_delay;
|
||||
diff = ql->srtt - rtt;
|
||||
diff = (ql->srtt >> 3) - rtt;
|
||||
if (diff < 0)
|
||||
diff = -diff;
|
||||
/* 4*rttvar = 3*rttvar + |diff| */
|
||||
|
|
Loading…
Reference in New Issue