Browse Source

perconnbwrate and perconnbwburst consensus params

Roger Dingledine 13 years ago
parent
commit
0ac67bf3c3
3 changed files with 18 additions and 2 deletions
  1. 7 0
      changes/bug1947
  2. 9 0
      doc/spec/dir-spec.txt
  3. 2 2
      src/or/connection_or.c

+ 7 - 0
changes/bug1947

@@ -0,0 +1,7 @@
+  o Minor features:
+    - Add new "perconnbwrate" and "perconnbwburst" consensus params to
+      do individual connection-level rate limiting of clients. The torrc
+      config options with the same names trump the consensus params, if
+      both are present. Replaces the old "bwconnrate" and "bwconnburst"
+      consensus params which were broken from 0.2.2.7-alpha through
+      0.2.2.14-alpha. Closes bug 1947.

+ 9 - 0
doc/spec/dir-spec.txt

@@ -1168,6 +1168,15 @@
         and 0.2.2.10-alpha recognized a "CircPriorityHalflifeMsec" parameter,
         but mishandled it badly.)
 
+        "perconnbwrate" and "perconnbwburst" -- if set, each relay sets
+        up a separate token bucket for every client OR connection,
+        and rate limits that connection indepedently. Typically left
+        unset, except when used for performance experiments around trac
+        entry 1750. Only honored by relays running Tor 0.2.2.16-alpha
+        and later. (Note that relays running 0.2.2.7-alpha through
+        0.2.2.14-alpha looked for bwconnrate and bwconnburst, but then
+        did the wrong thing with them; see bug 1830 for details.)
+
         See also "2.4.5. Consensus parameters governing behavior"
         in path-spec.txt for a series of circuit build time related
         consensus params.

+ 2 - 2
src/or/connection_or.c

@@ -370,10 +370,10 @@ connection_or_update_token_buckets_helper(or_connection_t *conn, int reset,
      * bandwidth parameters in the consensus, but allow local config
      * options to override. */
     rate = options->PerConnBWRate ? (int)options->PerConnBWRate :
-        (int)networkstatus_get_param(NULL, "bwconnrate",
+        (int)networkstatus_get_param(NULL, "perconnbwrate",
                                      (int)options->BandwidthRate);
     burst = options->PerConnBWBurst ? (int)options->PerConnBWBurst :
-        (int)networkstatus_get_param(NULL, "bwconnburst",
+        (int)networkstatus_get_param(NULL, "perconnbwburst",
                                      (int)options->BandwidthBurst);
   }