Browse Source

Split ROUTER_REQUIRED_MIN_BANDWIDTH into RELAY_ and BRIDGE_ variants

Also raise those minima from 20 to 75 and 50 respectively.

Closes ticket 13822.
Nick Mathewson 9 years ago
parent
commit
4beb830953
4 changed files with 19 additions and 8 deletions
  1. 5 0
      changes/feature13822
  2. 11 6
      src/or/config.c
  3. 1 1
      src/or/dirserv.c
  4. 2 1
      src/or/or.h

+ 5 - 0
changes/feature13822

@@ -0,0 +1,5 @@
+  o Minor features:
+    - Use separate minimum bandwidth values for the configurations of
+      relays and bridges. Raise the minimum configured bandwidth for
+      bridges to 50 KiB/sec and for relays to 75 KiB/sec. (The old
+      values were 20 KiB/sec.) Closes ticket 13822.

+ 11 - 6
src/or/config.c

@@ -3180,19 +3180,24 @@ options_validate(or_options_t *old_options, or_options_t *options,
     options->RelayBandwidthRate = options->RelayBandwidthBurst;
 
   if (server_mode(options)) {
+    const unsigned ROUTER_REQUIRED_MIN_BANDWIDTH = // tolower XXXX
+      public_server_mode(options) ?
+       RELAY_REQUIRED_MIN_BANDWIDTH : BRIDGE_REQUIRED_MIN_BANDWIDTH;
+    const char * const optbridge =
+      public_server_mode(options) ? "" : "bridge ";
     if (options->BandwidthRate < ROUTER_REQUIRED_MIN_BANDWIDTH) {
       tor_asprintf(msg,
                        "BandwidthRate is set to %d bytes/second. "
-                       "For servers, it must be at least %d.",
-                       (int)options->BandwidthRate,
+                       "For %sservers, it must be at least %u.",
+                       (int)options->BandwidthRate, optbridge,
                        ROUTER_REQUIRED_MIN_BANDWIDTH);
       return -1;
     } else if (options->MaxAdvertisedBandwidth <
                ROUTER_REQUIRED_MIN_BANDWIDTH/2) {
       tor_asprintf(msg,
                        "MaxAdvertisedBandwidth is set to %d bytes/second. "
-                       "For servers, it must be at least %d.",
-                       (int)options->MaxAdvertisedBandwidth,
+                       "For %sservers, it must be at least %u.",
+                       (int)options->MaxAdvertisedBandwidth, optbridge,
                        ROUTER_REQUIRED_MIN_BANDWIDTH/2);
       return -1;
     }
@@ -3200,8 +3205,8 @@ options_validate(or_options_t *old_options, or_options_t *options,
       options->RelayBandwidthRate < ROUTER_REQUIRED_MIN_BANDWIDTH) {
       tor_asprintf(msg,
                        "RelayBandwidthRate is set to %d bytes/second. "
-                       "For servers, it must be at least %d.",
-                       (int)options->RelayBandwidthRate,
+                       "For %sservers, it must be at least %u.",
+                       (int)options->RelayBandwidthRate, optbridge,
                        ROUTER_REQUIRED_MIN_BANDWIDTH);
       return -1;
     }

+ 1 - 1
src/or/dirserv.c

@@ -1427,7 +1427,7 @@ dirserv_compute_performance_thresholds(routerlist_t *rl,
     /* The 12.5th percentile bandwidth is fast. */
     fast_bandwidth_kb = find_nth_uint32(bandwidths_kb, n_active, n_active/8);
     /* (Now bandwidths is sorted.) */
-    if (fast_bandwidth_kb < ROUTER_REQUIRED_MIN_BANDWIDTH/(2 * 1000))
+    if (fast_bandwidth_kb < RELAY_REQUIRED_MIN_BANDWIDTH/(2 * 1000))
       fast_bandwidth_kb = bandwidths_kb[n_active/4];
     guard_bandwidth_including_exits_kb =
       third_quartile_uint32(bandwidths_kb, n_active);

+ 2 - 1
src/or/or.h

@@ -4937,7 +4937,8 @@ typedef struct dir_server_t {
                                **/
 } dir_server_t;
 
-#define ROUTER_REQUIRED_MIN_BANDWIDTH (20*1024)
+#define RELAY_REQUIRED_MIN_BANDWIDTH (75*1024)
+#define BRIDGE_REQUIRED_MIN_BANDWIDTH (50*1024)
 
 #define ROUTER_MAX_DECLARED_BANDWIDTH INT32_MAX