BUG/MINOR: quic: Cubic congestion control window may wrap
Add a check to prevent the cubic congestion control from wrapping (very low risk)
in slow start callback.
Must be backported to 2.6 and 2.7.
diff --git a/src/quic_cc_cubic.c b/src/quic_cc_cubic.c
index d60d3ed..e91b766 100644
--- a/src/quic_cc_cubic.c
+++ b/src/quic_cc_cubic.c
@@ -203,7 +203,8 @@
TRACE_PROTO("CC cubic", QUIC_EV_CONN_CC, cc->qc, ev);
switch (ev->type) {
case QUIC_CC_EVT_ACK:
- path->cwnd += ev->ack.acked;
+ if (path->cwnd < QUIC_CC_INFINITE_SSTHESH - ev->ack.acked)
+ path->cwnd += ev->ack.acked;
/* Exit to congestion avoidance if slow start threshold is reached. */
if (path->cwnd >= c->ssthresh)
cc->algo->state = QUIC_CC_ST_CA;