tor

The Tor anonymity network
git clone https://git.dasho.dev/tor.git
Log | Files | Refs | README | LICENSE

commit 482cde5931b537d49dc2535bf7a7771d740f441a
parent c50496036b5eea150ce5019b06140b8065f992a2
Author: Mike Perry <mikeperry-git@torproject.org>
Date:   Tue, 10 Jan 2023 20:47:11 +0000

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.

Diffstat:
Msrc/core/or/congestion_control_common.c | 2+-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git 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,