[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[tor-commits] [tor] 11/15: Safety fixes to RFC3742



This is an automated email from the git hooks/post-receive script.

dgoulet pushed a commit to branch main
in repository tor.

commit 5ddd3a9069081c9a96d9beb1b0ef99f27636eef5
Author: Mike Perry <mikeperry-git@xxxxxxxxxxxxxx>
AuthorDate: Thu Dec 15 22:03:26 2022 +0000

    Safety fixes to RFC3742
---
 src/core/or/congestion_control_vegas.c | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/src/core/or/congestion_control_vegas.c b/src/core/or/congestion_control_vegas.c
index ae945e7e00..71ffde3061 100644
--- a/src/core/or/congestion_control_vegas.c
+++ b/src/core/or/congestion_control_vegas.c
@@ -283,8 +283,11 @@ rfc3742_ss_inc(const congestion_control_t *cc)
     //  => K = 2*cwnd/max_ssthresh
     // cwnd += int(MSS/K);
     //  => cwnd += MSS*max_ssthresh/(2*cwnd)
-    return ((uint64_t)cc->sendme_inc*cc->vegas_params.ss_cwnd_cap + cc->cwnd)/
-            (2*cc->cwnd);
+    // Return at least 1 for inc.
+    return MAX(
+            ((uint64_t)cc->sendme_inc*cc->vegas_params.ss_cwnd_cap + cc->cwnd)/
+                 (2*cc->cwnd),
+               1);
   }
 }
 
@@ -447,8 +450,10 @@ congestion_control_vegas_process_sendme(congestion_control_t *cc,
         cc->cwnd += inc;
 
         // Check if inc is less than what we would do in steady-state
-        // avoidance
-        if (inc*SENDME_PER_CWND(cc) <= CWND_INC(cc)) {
+        // avoidance. Note that this is likely never to happen
+        // in practice, but we keep this block and the metrics to make
+        // sure.
+        if (inc*SENDME_PER_CWND(cc) <= CWND_INC(cc)*cc->cwnd_inc_rate) {
           congestion_control_vegas_exit_slow_start(circ, cc);
 
           cc_stats_vegas_below_ss_inc_floor++;

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.
_______________________________________________
tor-commits mailing list
tor-commits@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits