commit 4d30dde15670bd4fb572025116304286880db636 Merge: 35025ee 9f8e462 Author: Nick Mathewson nickm@torproject.org Date: Mon May 8 13:54:59 2017 -0400
Merge branch 'netflow_padding-v6-rebased2-squashed'
changes/bug16861 | 16 + changes/bug17592 | 13 + changes/bug17604 | 14 + changes/fast_channel_lookup | 2 + doc/tor.1.txt | 44 +- src/or/Makefile.nmake | 1 + src/or/channel.c | 232 +++++-- src/or/channel.h | 96 ++- src/or/channelpadding.c | 746 +++++++++++++++++++++ src/or/channelpadding.h | 40 ++ src/or/channeltls.c | 104 ++- src/or/circuitbuild.c | 11 +- src/or/circuitlist.c | 41 ++ src/or/circuituse.c | 25 +- src/or/command.c | 13 +- src/or/config.c | 38 +- src/or/connection_or.c | 60 +- src/or/connection_or.h | 2 + src/or/include.am | 2 + src/or/main.c | 48 +- src/or/networkstatus.c | 6 +- src/or/or.h | 24 +- src/or/relay.c | 83 +++ src/or/rephist.c | 291 +++++++- src/or/rephist.h | 27 + src/or/router.c | 6 + src/test/Makefile.nmake | 1 + src/test/include.am | 1 + src/test/test.c | 1 + src/test/test.h | 1 + src/test/test_channelpadding.c | 892 +++++++++++++++++++++++++ src/test/test_options.c | 31 +- src/test/testing_common.c | 6 + src/trunnel/channelpadding_negotiation.c | 281 ++++++++ src/trunnel/channelpadding_negotiation.h | 98 +++ src/trunnel/channelpadding_negotiation.trunnel | 17 + src/trunnel/include.am | 9 +- 37 files changed, 3156 insertions(+), 167 deletions(-)
diff --cc src/or/config.c index 201cca7,dcf6717..9280868 --- a/src/or/config.c +++ b/src/or/config.c @@@ -2819,13 -2813,13 +2823,13 @@@ compute_publishserverdescriptor(or_opti #define MIN_REND_POST_PERIOD (10*60) #define MIN_REND_POST_PERIOD_TESTING (5)
- /** Highest allowable value for PredictedPortsRelevanceTime; if this is - * too high, our selection of exits will decrease for an extended - * period of time to an uncomfortable level .*/ - #define MAX_PREDICTED_CIRCS_RELEVANCE (60*60) + /** Higest allowable value for CircuitsAvailableTimeout. + * If this is too large, client connections will stay open for too long, + * incurring extra padding overhead. */ + #define MAX_CIRCS_AVAILABLE_TIME (24*60*60)
/** Highest allowable value for RendPostPeriod. */ -#define MAX_DIR_PERIOD (MIN_ONION_KEY_LIFETIME/2) +#define MAX_DIR_PERIOD ((7*24*60*60)/2)
/** Lowest allowable value for MaxCircuitDirtiness; if this is too low, Tor * will generate too many circuits and potentially overload the network. */ diff --cc src/or/main.c index 0da43dc,b729e0b..fe63ddb --- a/src/or/main.c +++ b/src/or/main.c @@@ -1186,7 -1188,8 +1190,9 @@@ CALLBACK(check_dns_honesty) CALLBACK(write_bridge_ns); CALLBACK(check_fw_helper_app); CALLBACK(heartbeat); +CALLBACK(clean_consdiffmgr); + CALLBACK(reset_padding_counts); + CALLBACK(check_canonical_channels);
#undef CALLBACK
@@@ -1219,7 -1221,8 +1225,9 @@@ static periodic_event_item_t periodic_e CALLBACK(write_bridge_ns), CALLBACK(check_fw_helper_app), CALLBACK(heartbeat), + CALLBACK(clean_consdiffmgr), + CALLBACK(reset_padding_counts), + CALLBACK(check_canonical_channels), END_OF_PERIODIC_EVENTS }; #undef CALLBACK diff --cc src/test/test.c index 4d2cf15,9a78859..30944d8 --- a/src/test/test.c +++ b/src/test/test.c @@@ -1186,9 -1186,9 +1186,10 @@@ struct testgroup_t testgroups[] = { "cellfmt/", cell_format_tests }, { "cellqueue/", cell_queue_tests }, { "channel/", channel_tests }, + { "channelpadding/", channelpadding_tests }, { "channeltls/", channeltls_tests }, { "checkdir/", checkdir_tests }, + { "circuitbuild/", circuitbuild_tests }, { "circuitlist/", circuitlist_tests }, { "circuitmux/", circuitmux_tests }, { "circuituse/", circuituse_tests }, diff --cc src/test/test.h index 3d7d05e,1f12a9d..0ba91fb --- a/src/test/test.h +++ b/src/test/test.h @@@ -181,9 -181,9 +181,10 @@@ extern struct testcase_t buffer_tests[] extern struct testcase_t cell_format_tests[]; extern struct testcase_t cell_queue_tests[]; extern struct testcase_t channel_tests[]; + extern struct testcase_t channelpadding_tests[]; extern struct testcase_t channeltls_tests[]; extern struct testcase_t checkdir_tests[]; +extern struct testcase_t circuitbuild_tests[]; extern struct testcase_t circuitlist_tests[]; extern struct testcase_t circuitmux_tests[]; extern struct testcase_t circuituse_tests[];