mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-27 22:03:31 +01:00
Make MinTimeToReportBandwidth a testing-only option (and rename it)
This commit is contained in:
parent
2ae24d003d
commit
9d7fca2306
@ -1,5 +1,6 @@
|
|||||||
o Minor features (bandwidth reporting):
|
o Minor features (testing):
|
||||||
- Relays can now use the MinTimeToReportBandwidth option to change
|
- On a testing network, relays can now use the
|
||||||
|
TestingMinTimeToReportBandwidth option to change
|
||||||
the smallest amount of time over which they're willing to report
|
the smallest amount of time over which they're willing to report
|
||||||
their observed maximum bandwidth. Previously, this was fixed
|
their observed maximum bandwidth. Previously, this was fixed
|
||||||
at 1 day. For safety, values under 2 hours are only supported on
|
at 1 day. For safety, values under 2 hours are only supported on
|
||||||
|
@ -2448,13 +2448,6 @@ is non-zero):
|
|||||||
If we have more onionskins queued for processing than we can process in
|
If we have more onionskins queued for processing than we can process in
|
||||||
this amount of time, reject new ones. (Default: 1750 msec)
|
this amount of time, reject new ones. (Default: 1750 msec)
|
||||||
|
|
||||||
[[MinTimeToReportBandwidth]] **MinTimeToReportBandwidth** __N__ **seconds**|**minutes**|**hours**::
|
|
||||||
Do not report our measurements for our maximum observed bandwidth for any
|
|
||||||
time period that has lasted for less than this amount of time.
|
|
||||||
Setting this option too low can enable traffic analysis, and is
|
|
||||||
not permitted except on testing networks. Values over 1 day have
|
|
||||||
no effect. (Default: 1 day)
|
|
||||||
|
|
||||||
[[MyFamily]] **MyFamily** __fingerprint__,__fingerprint__,...::
|
[[MyFamily]] **MyFamily** __fingerprint__,__fingerprint__,...::
|
||||||
Declare that this Tor relay is controlled or administered by a group or
|
Declare that this Tor relay is controlled or administered by a group or
|
||||||
organization identical or similar to that of the other relays, defined by
|
organization identical or similar to that of the other relays, defined by
|
||||||
@ -3602,6 +3595,11 @@ The following options are used for running a testing Tor network.
|
|||||||
Minimum value for the Fast flag. Overrides the ordinary minimum taken
|
Minimum value for the Fast flag. Overrides the ordinary minimum taken
|
||||||
from the consensus when TestingTorNetwork is set. (Default: 0.)
|
from the consensus when TestingTorNetwork is set. (Default: 0.)
|
||||||
|
|
||||||
|
[[TestingMinTimeToReportBandwidth]] **TestingMinTimeToReportBandwidth** __N__ **seconds**|**minutes**|**hours**::
|
||||||
|
Do not report our measurements for our maximum observed bandwidth for any
|
||||||
|
time period that has lasted for less than this amount of time.
|
||||||
|
Values over 1 day have no effect. (Default: 1 day)
|
||||||
|
|
||||||
[[TestingServerConsensusDownloadInitialDelay]] **TestingServerConsensusDownloadInitialDelay** __N__::
|
[[TestingServerConsensusDownloadInitialDelay]] **TestingServerConsensusDownloadInitialDelay** __N__::
|
||||||
Initial delay in seconds for when servers should download consensuses. Changing this
|
Initial delay in seconds for when servers should download consensuses. Changing this
|
||||||
requires that **TestingTorNetwork** is set. (Default: 0)
|
requires that **TestingTorNetwork** is set. (Default: 0)
|
||||||
|
@ -563,7 +563,7 @@ static const config_var_t option_vars_[] = {
|
|||||||
V(MaxUnparseableDescSizeToLog, MEMUNIT, "10 MB"),
|
V(MaxUnparseableDescSizeToLog, MEMUNIT, "10 MB"),
|
||||||
VPORT(MetricsPort),
|
VPORT(MetricsPort),
|
||||||
V(MetricsPortPolicy, LINELIST, NULL),
|
V(MetricsPortPolicy, LINELIST, NULL),
|
||||||
V(MinTimeToReportBandwidth, INTERVAL, "1 day"),
|
V(TestingMinTimeToReportBandwidth, INTERVAL, "1 day"),
|
||||||
VAR("MyFamily", LINELIST, MyFamily_lines, NULL),
|
VAR("MyFamily", LINELIST, MyFamily_lines, NULL),
|
||||||
V(NewCircuitPeriod, INTERVAL, "30 seconds"),
|
V(NewCircuitPeriod, INTERVAL, "30 seconds"),
|
||||||
OBSOLETE("NamingAuthoritativeDirectory"),
|
OBSOLETE("NamingAuthoritativeDirectory"),
|
||||||
@ -3712,13 +3712,6 @@ options_validate_cb(const void *old_options_, void *options_, char **msg)
|
|||||||
options->HeartbeatPeriod = MIN_HEARTBEAT_PERIOD;
|
options->HeartbeatPeriod = MIN_HEARTBEAT_PERIOD;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (options->MinTimeToReportBandwidth < MIN_MIN_TIME_TO_REPORT_BW &&
|
|
||||||
!options->TestingTorNetwork) {
|
|
||||||
log_warn(LD_CONFIG, "MinTimeToReportBandwidth is too short; "
|
|
||||||
"raising to %d seconds.", MIN_MIN_TIME_TO_REPORT_BW);
|
|
||||||
options->MinTimeToReportBandwidth = MIN_MIN_TIME_TO_REPORT_BW;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (options->KeepalivePeriod < 1)
|
if (options->KeepalivePeriod < 1)
|
||||||
REJECT("KeepalivePeriod option must be positive.");
|
REJECT("KeepalivePeriod option must be positive.");
|
||||||
|
|
||||||
@ -3994,6 +3987,7 @@ options_validate_cb(const void *old_options_, void *options_, char **msg)
|
|||||||
CHECK_DEFAULT(TestingSigningKeySlop);
|
CHECK_DEFAULT(TestingSigningKeySlop);
|
||||||
CHECK_DEFAULT(TestingAuthKeySlop);
|
CHECK_DEFAULT(TestingAuthKeySlop);
|
||||||
CHECK_DEFAULT(TestingLinkKeySlop);
|
CHECK_DEFAULT(TestingLinkKeySlop);
|
||||||
|
CHECK_DEFAULT(TestingMinTimeToReportBandwidth);
|
||||||
or_options_free(dflt_options);
|
or_options_free(dflt_options);
|
||||||
}
|
}
|
||||||
#undef CHECK_DEFAULT
|
#undef CHECK_DEFAULT
|
||||||
|
@ -24,13 +24,6 @@
|
|||||||
* expose more information than we're comfortable with. */
|
* expose more information than we're comfortable with. */
|
||||||
#define MIN_HEARTBEAT_PERIOD (30*60)
|
#define MIN_HEARTBEAT_PERIOD (30*60)
|
||||||
|
|
||||||
/**
|
|
||||||
* Lowest allowable value for MinTimeToReportBandwidth on a non-testing
|
|
||||||
* network; if this is too low we might report detail that is too
|
|
||||||
* fine-grained.
|
|
||||||
**/
|
|
||||||
#define MIN_MIN_TIME_TO_REPORT_BW (2*60*60)
|
|
||||||
|
|
||||||
/** Maximum default value for MaxMemInQueues, in bytes. */
|
/** Maximum default value for MaxMemInQueues, in bytes. */
|
||||||
#if SIZEOF_VOID_P >= 8
|
#if SIZEOF_VOID_P >= 8
|
||||||
#define MAX_DEFAULT_MEMORY_QUEUE_SIZE (UINT64_C(8) << 30)
|
#define MAX_DEFAULT_MEMORY_QUEUE_SIZE (UINT64_C(8) << 30)
|
||||||
|
@ -1084,7 +1084,7 @@ struct or_options_t {
|
|||||||
|
|
||||||
/** How far must we be into the current bandwidth-measurement period to
|
/** How far must we be into the current bandwidth-measurement period to
|
||||||
* report bandwidth observations from this period? */
|
* report bandwidth observations from this period? */
|
||||||
int MinTimeToReportBandwidth;
|
int TestingMinTimeToReportBandwidth;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Configuration objects for individual modules.
|
* Configuration objects for individual modules.
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
{ "TestingV3AuthInitialDistDelay", "20 seconds" },
|
{ "TestingV3AuthInitialDistDelay", "20 seconds" },
|
||||||
{ "TestingAuthDirTimeToLearnReachability", "0 minutes" },
|
{ "TestingAuthDirTimeToLearnReachability", "0 minutes" },
|
||||||
{ "MinUptimeHidServDirectoryV2", "0 minutes" },
|
{ "MinUptimeHidServDirectoryV2", "0 minutes" },
|
||||||
{ "MinTimeToReportBandwidth", "0 seconds" },
|
{ "TestingMinTimeToReportBandwidth", "0 seconds" },
|
||||||
{ "TestingServerDownloadInitialDelay", "0" },
|
{ "TestingServerDownloadInitialDelay", "0" },
|
||||||
{ "TestingClientDownloadInitialDelay", "0" },
|
{ "TestingClientDownloadInitialDelay", "0" },
|
||||||
{ "TestingServerConsensusDownloadInitialDelay", "0" },
|
{ "TestingServerConsensusDownloadInitialDelay", "0" },
|
||||||
|
@ -241,7 +241,7 @@ MOCK_IMPL(int,
|
|||||||
bwhist_bandwidth_assess,(void))
|
bwhist_bandwidth_assess,(void))
|
||||||
{
|
{
|
||||||
uint64_t w,r;
|
uint64_t w,r;
|
||||||
int min_obs_time = get_options()->MinTimeToReportBandwidth;
|
int min_obs_time = get_options()->TestingMinTimeToReportBandwidth;
|
||||||
r = find_largest_max(read_array, min_obs_time);
|
r = find_largest_max(read_array, min_obs_time);
|
||||||
w = find_largest_max(write_array, min_obs_time);
|
w = find_largest_max(write_array, min_obs_time);
|
||||||
if (r>w)
|
if (r>w)
|
||||||
|
Loading…
Reference in New Issue
Block a user