[tor-bugs] #25886 [Core Tor/Tor]: Have frac_nodes_with_descriptors() take and use for_direct_connect

Tor Bug Tracker & Wiki blackhole at torproject.org
Fri May 4 22:29:32 UTC 2018


#25886: Have frac_nodes_with_descriptors() take and use for_direct_connect
--------------------------+----------------------------------
 Reporter:  nickm         |          Owner:  (none)
     Type:  defect        |         Status:  new
 Priority:  Medium        |      Milestone:  Tor: unspecified
Component:  Core Tor/Tor  |        Version:
 Severity:  Normal        |     Resolution:
 Keywords:                |  Actual Points:
Parent ID:                |         Points:
 Reviewer:                |        Sponsor:
--------------------------+----------------------------------
Description changed by teor:

Old description:

> On their review for #25691, teor notes (about for_direct_connect):
>
> >We should pass for_direct_conn into this function, and use
> node_has_preferred_descriptor().
>
> >For the mid and exit case:
> >We won't bootstrap unless we have enough actual mid and exit bandwidth,
> even if we have mids or exits listed as our bridges.
> >
> >For the guard case:
> >The guard case is unchanged for non-bridge clients.
> >
> >The bridge client case could be tricky, because:
> >
> >   1. compute_frac_paths_available() only checks guard-flagged nodes,
> not bridges
> >   2. even if it did check bridges, they don't have bandwidths
> >   3. even if we used a weight of 1 for each bridge, we don't require
> 65% of bridges to be up to bootstrap
> >
> >To workaround this issue, I suggest we make f_guard = 1.0 in
> compute_frac_paths_available() if we are using bridges, and have at least
> one bridge with the preferred descriptor.

New description:

 On their review for #25691, teor notes (about for_direct_connect):

 >We should pass for_direct_conn into this function, and use
 node_has_preferred_descriptor().

 >For the mid and exit case:
 >We won't bootstrap unless we have enough actual mid and exit bandwidth,
 even if we have mids or exits listed as our bridges.
 >
 >For the guard case:
 >The guard case is unchanged for non-bridge clients.
 >
 >The bridge client case could be tricky, because:
 >
 >   1. compute_frac_paths_available() only checks guard-flagged nodes, not
 bridges
 >   2. even if it did check bridges, they don't have bandwidths
 >   3. even if we used a weight of 1 for each bridge, we don't require 65%
 of bridges to be up to bootstrap
 >
 >To workaround this issue, I suggest we make f_guard = 1.0 in
 compute_frac_paths_available() if we are using bridges, and have at least
 one bridge with ~~the preferred~~ a full descriptor.

 Edit: bridge clients always use full descriptors for bridges

--

--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/25886#comment:1>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online


More information about the tor-bugs mailing list