[tor-bugs] #8273 [Tor]: Set flag thresholds and flags based on measured bandwidth

Tor Bug Tracker & Wiki blackhole at torproject.org
Fri Mar 8 00:01:16 UTC 2013


#8273: Set flag thresholds and flags based on measured bandwidth
----------------------+-----------------------------------------------------
 Reporter:  nickm     |          Owner:                    
     Type:  defect    |         Status:  needs_review      
 Priority:  critical  |      Milestone:  Tor: 0.2.4.x-final
Component:  Tor       |        Version:                    
 Keywords:  tor-auth  |         Parent:                    
   Points:            |   Actualpoints:                    
----------------------+-----------------------------------------------------
Changes (by andrea):

  * status:  needs_revision => needs_review


Comment:

 Replying to [comment:2 nickm]:
 > Quick notes:
 >   * The "/* Check if we cleared the whole thing and free if so */" seems
 unnecessary.  dirserv_clear_measured_bw_cache will free this eventually,
 right?

 It saves one extra block of memory for the map itself when it's empty.

 >   * In case time is unsigned, the expiry check should be something like
 "e->as_of < now - MX_MEASUREMENT_TIME". This might also help the compiler
 raise the computation. (Not that it matters.)

 Done.

 >   * We should be calling dirserv_clear_measured_bw_cache from
 dirserv_free_all.

 Done.

 >   * Would DIGESTMAP_FOREACH_MODIFY and DIGESTMAP_FOREACH_MODIFY_END make
 the expiry function easier to write?

 Done.

 >   * The node_id argument for dirserv_query_measured_bw_cache should
 probably be const.  The documentation for that function should explain
 what the return value means, and what exactly happens to the *_out
 variables.

 Done.

 >   * dirserv_get_bandwidth_for_router should take a const routerinfo

 Done.

 >   * I think dirserv_cache_measured_bw should take a const parsed_line.

 Done.

 > And an issue of medium trickiness:
 >   * It would be cool to have some unit tests for the new machinery here.

 Done; not really that tricky.

 > And a trickier issue:
 >   * When we have a sufficient number/fraction of nodes with measured
 bandwidth, I think we should stop believing nodes' advertised bandwidths.
 That is, if the number/fraction of measured nodes is high enough, then we
 should *never* call unmeasured nodes Fast, or Guard, or HSDir, or anything
 else that depends on bandwidth.  (Plausible?)

 That sounds like a good idea potentially; what about other circumstances
 we use the advertised bandwidth?  Should we consider those cases or just
 concern ourselves with the flags?

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


More information about the tor-bugs mailing list