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.
diff --git a/src/quic_loss.c b/src/quic_loss.c
index 8f19645..eff8e6c 100644
--- a/src/quic_loss.c
+++ b/src/quic_loss.c
@@ -37,7 +37,7 @@
/* 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| */