Commit 0ac67bf3 authored by Roger Dingledine's avatar Roger Dingledine
Browse files

perconnbwrate and perconnbwburst consensus params

parent 277295ef
Loading
Loading
Loading
Loading

changes/bug1947

0 → 100644
+7 −0
Original line number Diff line number Diff line
  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
Original line number Diff line number Diff line
@@ -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
Original line number Diff line number Diff line
@@ -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);
  }