Trac issueshttps://gitlab.torproject.org/legacy/trac/-/issues2020-06-13T15:00:03Zhttps://gitlab.torproject.org/legacy/trac/-/issues/19878Sample SAMPLED_GUARDS from GUARDS per new guard plan2020-06-13T15:00:03ZAndrea ShepardSample SAMPLED_GUARDS from GUARDS per new guard planNew guard plan summarized at https://lists.torproject.org/pipermail/tor-dev/2016-July/011234.html
2) Sample SAMPLED_GUARDS from GUARDS
- Fill in state for each sampled guard (added_on_date, etc.)
- Save/load SAMPLED_GUARDS to/from sta...New guard plan summarized at https://lists.torproject.org/pipermail/tor-dev/2016-July/011234.html
2) Sample SAMPLED_GUARDS from GUARDS
- Fill in state for each sampled guard (added_on_date, etc.)
- Save/load SAMPLED_GUARDS to/from state
- Unittests for sampling/saving/loading
- Thoughtworks function: fill_sampled_guards_from_entrynodes()
- Thoughtworks unittest: test_fill_in_sampled_set()Tor: 0.3.0.x-finalNick MathewsonNick Mathewsonhttps://gitlab.torproject.org/legacy/trac/-/issues/19879Derive FILTERED_GUARDS / USABLE_FILTERED_GUARDS from SAMPLED_GUARDS per new g...2020-06-13T15:00:04ZAndrea ShepardDerive FILTERED_GUARDS / USABLE_FILTERED_GUARDS from SAMPLED_GUARDS per new guard planNew guard plan summarized at https://lists.torproject.org/pipermail/tor-dev/2016-July/011234.html
3) Derive FILTERED_GUARDS / USABLE_FILTERED_GUARDS from SAMPLED_GUARDS
- The filtering function can be called at any point (e.g. ON_CONSE...New guard plan summarized at https://lists.torproject.org/pipermail/tor-dev/2016-July/011234.html
3) Derive FILTERED_GUARDS / USABLE_FILTERED_GUARDS from SAMPLED_GUARDS
- The filtering function can be called at any point (e.g. ON_CONSENSUS)
- Write unittests ensuring correctness of filtering
- See populate_live_entry_guards()
- Thoughtworks function: filter_set() / filter_sampled()Tor: 0.3.0.x-finalNick MathewsonNick Mathewsonhttps://gitlab.torproject.org/legacy/trac/-/issues/19880Maintain set of PRIMARY_GUARDS per new guard plan2020-06-13T15:00:05ZAndrea ShepardMaintain set of PRIMARY_GUARDS per new guard planNew guard plan summarized at https://lists.torproject.org/pipermail/tor-dev/2016-July/011234.html
4) Maintain set of PRIMARY_GUARDS
- Functions to extract set of (live) primary guards out of FILTERED_GUARDS
- Unittest
- Thoughtworks ...New guard plan summarized at https://lists.torproject.org/pipermail/tor-dev/2016-July/011234.html
4) Maintain set of PRIMARY_GUARDS
- Functions to extract set of (live) primary guards out of FILTERED_GUARDS
- Unittest
- Thoughtworks function: retry_primary_guards() / next_primary_guard()
- Thoughtworks unittests: test_next_primary_guard()Tor: 0.3.0.x-finalNick MathewsonNick Mathewsonhttps://gitlab.torproject.org/legacy/trac/-/issues/19881New guard plan - guard selection for circuits2020-06-13T15:00:05ZAndrea ShepardNew guard plan - guard selection for circuitsNew guard plan summarized at https://lists.torproject.org/pipermail/tor-dev/2016-July/011234.html
5) Selecting guards for circuits
- Meant to replace choose_random_entry_impl()
- See section SELECTING in prop271
- Add new circuit sta...New guard plan summarized at https://lists.torproject.org/pipermail/tor-dev/2016-July/011234.html
5) Selecting guards for circuits
- Meant to replace choose_random_entry_impl()
- See section SELECTING in prop271
- Add new circuit states to or_circuit_t
- Implement the guard selection logic
- Unittests on circuit state machine
- Unittests on guard selection logicTor: 0.3.0.x-finalNick MathewsonNick Mathewsonhttps://gitlab.torproject.org/legacy/trac/-/issues/19882New guard plan - update guard state when a circuit fails/succeeds2020-06-13T15:00:06ZAndrea ShepardNew guard plan - update guard state when a circuit fails/succeedsNew guard plan summarized at https://lists.torproject.org/pipermail/tor-dev/2016-July/011234.html
6) Update guard state when a circuit fails/succeeds
- Section ON_FAIL and ON_SUCCESS
- See entry_guard_register_connect_status()
- Unit...New guard plan summarized at https://lists.torproject.org/pipermail/tor-dev/2016-July/011234.html
6) Update guard state when a circuit fails/succeeds
- Section ON_FAIL and ON_SUCCESS
- See entry_guard_register_connect_status()
- UnittestTor: 0.3.0.x-finalNick MathewsonNick Mathewsonhttps://gitlab.torproject.org/legacy/trac/-/issues/19883Maintain CONFIRMED_GUARDS per new guard plan2020-06-13T15:00:06ZAndrea ShepardMaintain CONFIRMED_GUARDS per new guard planNew guard plan summarized at https://lists.torproject.org/pipermail/tor-dev/2016-July/011234.html
7) Maintain CONFIRMED_GUARDS
- Add guard to CONFIRMED_GUARDS when circuit succeeds
- Fill in state info for each confirmed guard (confir...New guard plan summarized at https://lists.torproject.org/pipermail/tor-dev/2016-July/011234.html
7) Maintain CONFIRMED_GUARDS
- Add guard to CONFIRMED_GUARDS when circuit succeeds
- Fill in state info for each confirmed guard (confirmed_on_date, etc.)
- Migration from old state format to new
- Thoughtworks unittest: test_used_guards_parse_state()Tor: 0.3.0.x-finalNick MathewsonNick Mathewsonhttps://gitlab.torproject.org/legacy/trac/-/issues/19884Retry schedule for guards per new guard plan2020-06-13T15:00:07ZAndrea ShepardRetry schedule for guards per new guard planNew guard plan summarized at https://lists.torproject.org/pipermail/tor-dev/2016-July/011234.html
8) Retry schedule for guards (section RETRYING)
- See entry_is_time_to_retry()
- UnittestNew guard plan summarized at https://lists.torproject.org/pipermail/tor-dev/2016-July/011234.html
8) Retry schedule for guards (section RETRYING)
- See entry_is_time_to_retry()
- UnittestTor: 0.3.0.x-finalNick MathewsonNick Mathewsonhttps://gitlab.torproject.org/legacy/trac/-/issues/19885New guard plan - update list of waiting circuits2020-06-13T15:00:07ZAndrea ShepardNew guard plan - update list of waiting circuitsNew guard plan summarized at https://lists.torproject.org/pipermail/tor-dev/2016-July/011234.html
9) Update list of waiting circuits (section UPDATE_WAITING)
- Implementation of guard "higher priority" ordering (see CONFIRMED)
- UnittestNew guard plan summarized at https://lists.torproject.org/pipermail/tor-dev/2016-July/011234.html
9) Update list of waiting circuits (section UPDATE_WAITING)
- Implementation of guard "higher priority" ordering (see CONFIRMED)
- UnittestTor: 0.3.0.x-finalNick MathewsonNick Mathewsonhttps://gitlab.torproject.org/legacy/trac/-/issues/19886New guard plan - update state whenever we get a new consensus2020-06-13T15:00:08ZAndrea ShepardNew guard plan - update state whenever we get a new consensusNew guard plan summarized at https://lists.torproject.org/pipermail/tor-dev/2016-July/011234.html
10) Update state whenever we get a new consensus (section ON_CONSENSUS)
- Update SAMPLED_GUARDS elements (section SAMPLED)
- Remove obso...New guard plan summarized at https://lists.torproject.org/pipermail/tor-dev/2016-July/011234.html
10) Update state whenever we get a new consensus (section ON_CONSENSUS)
- Update SAMPLED_GUARDS elements (section SAMPLED)
- Remove obsolete/expired guards
- See entry_guards_compute_status() / remove_obsolete_entry_guards()
- Thoughtworks function: entry_guards_update_profiles()Tor: 0.3.0.x-finalNick MathewsonNick Mathewsonhttps://gitlab.torproject.org/legacy/trac/-/issues/19887New guard plan - bridge support2020-06-13T15:00:09ZAndrea ShepardNew guard plan - bridge supportNew guard plan summarized at https://lists.torproject.org/pipermail/tor-dev/2016-July/011234.html
11) Bridge support
- Thoughtworks function: fill_in_from_bidges()New guard plan summarized at https://lists.torproject.org/pipermail/tor-dev/2016-July/011234.html
11) Bridge support
- Thoughtworks function: fill_in_from_bidges()Tor: 0.3.0.x-finalNick MathewsonNick Mathewsonhttps://gitlab.torproject.org/legacy/trac/-/issues/19889New guard plan - Glue things together!2020-06-13T15:00:10ZAndrea ShepardNew guard plan - Glue things together!New guard plan summarized at https://lists.torproject.org/pipermail/tor-dev/2016-July/011234.html
13) Glue things together!
- Add clean and meaningful logging so that we can *heavily* field test the feature in our machinesNew guard plan summarized at https://lists.torproject.org/pipermail/tor-dev/2016-July/011234.html
13) Glue things together!
- Add clean and meaningful logging so that we can *heavily* field test the feature in our machinesTor: 0.3.0.x-finalNick MathewsonNick Mathewsonhttps://gitlab.torproject.org/legacy/trac/-/issues/19858Move guard state out of globals per new guard plan2020-06-13T15:02:10ZAndrea ShepardMove guard state out of globals per new guard planNew guard plan summarized here at https://lists.torproject.org/pipermail/tor-dev/2016-July/011234.html
1) Create main guard selection state data structure (instead of using global variables)
- Ideally there should be no global variable...New guard plan summarized here at https://lists.torproject.org/pipermail/tor-dev/2016-July/011234.html
1) Create main guard selection state data structure (instead of using global variables)
- Ideally there should be no global variables, so that in the future we can have multiple parallel guardsets (e.g. prop247)
- Thoughtworks: guard_selection_tTor: 0.3.0.x-finalAndrea ShepardAndrea Shepardhttps://gitlab.torproject.org/legacy/trac/-/issues/20720prop271 -- Save persistent data in state file.2020-06-13T15:03:36ZNick Mathewsonprop271 -- Save persistent data in state file.Tor: 0.3.0.x-finalNick MathewsonNick Mathewsonhttps://gitlab.torproject.org/legacy/trac/-/issues/19888New guard plan - separate state instances when EntryNodes/ExcludeNodes/etc ar...2020-06-13T15:03:44ZAndrea ShepardNew guard plan - separate state instances when EntryNodes/ExcludeNodes/etc are usedNew guard plan summarized at https://lists.torproject.org/pipermail/tor-dev/2016-July/011234.html
12) Separate state instances when EntryNodes/ExcludeNodes/etc are used
- See prop271 MEANINGFUL_RESTRICTION_FRAC etc.New guard plan summarized at https://lists.torproject.org/pipermail/tor-dev/2016-July/011234.html
12) Separate state instances when EntryNodes/ExcludeNodes/etc are used
- See prop271 MEANINGFUL_RESTRICTION_FRAC etc.Tor: 0.3.0.x-finalNick MathewsonNick Mathewsonhttps://gitlab.torproject.org/legacy/trac/-/issues/20829Document state format for prop271 guards2020-06-13T15:03:46ZNick MathewsonDocument state format for prop271 guardsTor: 0.3.0.x-finalNick MathewsonNick Mathewsonhttps://gitlab.torproject.org/legacy/trac/-/issues/20834Write patches for all spec-deviations in prop2712020-06-13T15:03:48ZNick MathewsonWrite patches for all spec-deviations in prop271The prop271 implementation I produced is not 100% conformant to the proposal, since in some cases I found gaps or things that the proposal didn't consider. Before we merge #19877, we should be sure that the spec is up-to-date too.The prop271 implementation I produced is not 100% conformant to the proposal, since in some cases I found gaps or things that the proposal didn't consider. Before we merge #19877, we should be sure that the spec is up-to-date too.Tor: 0.3.0.x-finalNick MathewsonNick Mathewsonhttps://gitlab.torproject.org/legacy/trac/-/issues/20920Lower MAX_SAMPLE_THRESHOLD by a lot2020-06-13T15:04:11ZNick MathewsonLower MAX_SAMPLE_THRESHOLD by a lotthe current value of 0.3.0 in my prop271_030_v1 branch is ridiculously large.the current value of 0.3.0 in my prop271_030_v1 branch is ridiculously large.Tor: 0.3.0.x-finalNick MathewsonNick Mathewsonhttps://gitlab.torproject.org/legacy/trac/-/issues/20922Consider faster retry schedule for primary guards2020-06-13T15:04:12ZNick MathewsonConsider faster retry schedule for primary guards30 minutes may be too low. Should we aim for 10?30 minutes may be too low. Should we aim for 10?Tor: 0.3.0.x-final