commit 125fba2e9988a7a31d5f6d45d897c3e8f1ca7480 Author: Nick Mathewson nickm@torproject.org Date: Fri Jan 13 12:05:08 2012 -0500
Provide consensus params to constrain the threshold for Fast
resolves ticket 3946 --- changes/fast_bw_param | 8 ++++++++ src/or/dirserv.c | 12 ++++++++++++ 2 files changed, 20 insertions(+), 0 deletions(-)
diff --git a/changes/fast_bw_param b/changes/fast_bw_param new file mode 100644 index 0000000..abe630d --- /dev/null +++ b/changes/fast_bw_param @@ -0,0 +1,8 @@ + o Minor features (directory authority): + - Provide two consensus parameters (FastFlagMinThreshold and + FastFlagMaxThreshold) to control the range of allowable bandwidths for + the Fast directory flag. This allows authorities to run better + experiments on appropriate requirements for being a "Fast" node. + The AuthDirFastGuarantee flag still applies. + + diff --git a/src/or/dirserv.c b/src/or/dirserv.c index 94a415f..e599569 100644 --- a/src/or/dirserv.c +++ b/src/or/dirserv.c @@ -1938,6 +1938,18 @@ dirserv_compute_performance_thresholds(routerlist_t *rl) if (guard_tk > TIME_KNOWN_TO_GUARANTEE_FAMILIAR) guard_tk = TIME_KNOWN_TO_GUARANTEE_FAMILIAR;
+ { + /* We can vote on a parameter for the minimum and maximum. */ + int32_t min_fast, max_fast; + min_fast = networkstatus_get_param(NULL, "FastFlagMinThreshold", + 0, 0, INT32_MAX); + max_fast = networkstatus_get_param(NULL, "FastFlagMaxThreshold", + INT32_MAX, min_fast, INT32_MAX); + if (fast_bandwidth < (uint32_t)min_fast) + fast_bandwidth = min_fast; + if (fast_bandwidth > (uint32_t)max_fast) + fast_bandwidth = max_fast; + } /* Protect sufficiently fast nodes from being pushed out of the set * of Fast nodes. */ if (options->AuthDirFastGuarantee &&
tor-commits@lists.torproject.org