summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Perry <mikeperry-git@torproject.org>2023-01-10 20:47:11 +0000
committerMike Perry <mikeperry-git@torproject.org>2023-01-10 20:47:11 +0000
commit482cde5931b537d49dc2535bf7a7771d740f441a (patch)
treeabddcb85ee1c155aaeb708b32ccd2354c804f918
parentc50496036b5eea150ce5019b06140b8065f992a2 (diff)
downloadtor-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.c2
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,