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.
This commit is contained in:
Frédéric Lécaille 2023-04-02 10:07:48 +02:00
parent 23b8eef05b
commit db54847212

View File

@ -203,7 +203,8 @@ static void quic_cc_cubic_ss_cb(struct quic_cc *cc, struct quic_cc_event *ev)
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;