diff options
author | Mike Perry <mikeperry-git@torproject.org> | 2023-01-10 20:47:11 +0000 |
---|---|---|
committer | Mike Perry <mikeperry-git@torproject.org> | 2023-01-10 20:47:11 +0000 |
commit | 482cde5931b537d49dc2535bf7a7771d740f441a (patch) | |
tree | abddcb85ee1c155aaeb708b32ccd2354c804f918 | |
parent | c50496036b5eea150ce5019b06140b8065f992a2 (diff) | |
download | tor-482cde5931b537d49dc2535bf7a7771d740f441a.tar.gz tor-482cde5931b537d49dc2535bf7a7771d740f441a.zip |
Do not reset our RTT in slow start.
If a circuit only sends a tiny amount of data such that its cwnd is not
full, it won't increase its cwnd above the minimum. Since slow start circuits
should never hit the minimum otherwise, we can just ignore them for RTT reset
to handle this.
-rw-r--r-- | src/core/or/congestion_control_common.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/core/or/congestion_control_common.c b/src/core/or/congestion_control_common.c index e96d22cbfa..f5b7740bed 100644 --- a/src/core/or/congestion_control_common.c +++ b/src/core/or/congestion_control_common.c @@ -902,7 +902,7 @@ congestion_control_update_circuit_rtt(congestion_control_t *cc, if (cc->min_rtt_usec == 0) { // If we do not have a min_rtt yet, use current ewma cc->min_rtt_usec = cc->ewma_rtt_usec; - } else if (cc->cwnd == cc->cwnd_min) { + } else if (cc->cwnd == cc->cwnd_min && !cc->in_slow_start) { // Raise min rtt if cwnd hit cwnd_min. This gets us out of a wedge state // if we hit cwnd_min due to an abnormally low rtt. uint64_t new_rtt = percent_max_mix(cc->ewma_rtt_usec, cc->min_rtt_usec, |