[tor-commits] [torflow/master] Be merciful in Guard intermediate voting mode.

mikeperry at torproject.org mikeperry at torproject.org
Sat Dec 10 01:20:24 UTC 2011


commit 846880384a6153caa8e8f6ffaa996b24c7611082
Author: Mike Perry <mikeperry-git at fscked.org>
Date:   Fri Dec 9 17:08:59 2011 -0800

    Be merciful in Guard intermediate voting mode.
    
    Also don't use Wgd in mercy mode or in section2 mode.
---
 NetworkScanners/BwAuthority/aggregate.py |   18 ++++++++++++++----
 1 files changed, 14 insertions(+), 4 deletions(-)

diff --git a/NetworkScanners/BwAuthority/aggregate.py b/NetworkScanners/BwAuthority/aggregate.py
index 93cad8a..ba6af20 100755
--- a/NetworkScanners/BwAuthority/aggregate.py
+++ b/NetworkScanners/BwAuthority/aggregate.py
@@ -656,7 +656,11 @@ def main(argv):
                                     0.0, False)
               else:
                 # Use previous vote's feedback bw
-                n.use_bw = prev_votes.vote_map[n.idhex].pid_bw
+                # FIXME: compare to ns_bw or prev_vote bw?
+                if cs_junk.use_mercy and n.desc_bw > n.ns_bw and n.pid_error < 0:
+                  n.use_bw = n.desc_bw
+                else:
+                  n.use_bw = prev_votes.vote_map[n.idhex].pid_bw
                 n.new_bw = n.get_pid_bw(prev_votes.vote_map[n.idhex],
                                     cs_junk.K_p,
                                     0.0,
@@ -677,10 +681,16 @@ def main(argv):
             if n.idhex in prev_consensus and \
               ("Guard" in prev_consensus[n.idhex].flags \
                and "Exit" in prev_consensus[n.idhex].flags):
+              # For section2-equivalent mode and/or use_mercy, we should
+              # not use Wgd
+              if n.use_bw == n.desc_bw:
+                weight = 1.0
+              else:
+                weight = (1.0-cs_junk.bw_weights["Wgd"])
               n.new_bw = n.get_pid_bw(prev_votes.vote_map[n.idhex],
-                              cs_junk.K_p*(1.0-cs_junk.bw_weights["Wgd"]),
-                              cs_junk.K_i*(1.0-cs_junk.bw_weights["Wgd"]),
-                              cs_junk.K_d*(1.0-cs_junk.bw_weights["Wgd"]),
+                              cs_junk.K_p*weight,
+                              cs_junk.K_i*weight,
+                              cs_junk.K_d*weight,
                               cs_junk.K_i_decay)
             else:
               n.new_bw = n.get_pid_bw(prev_votes.vote_map[n.idhex],



More information about the tor-commits mailing list