[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[or-cvs] r17821: {tor} Spec compliance: if weighted MTBF of a router is at least 5 (in tor/trunk: . src/or)



Author: nickm
Date: 2008-12-29 15:17:18 -0500 (Mon, 29 Dec 2008)
New Revision: 17821

Modified:
   tor/trunk/ChangeLog
   tor/trunk/src/or/dirserv.c
Log:
Spec compliance: if weighted MTBF of a router is at least 5 days, always vote it as Stable.

Modified: tor/trunk/ChangeLog
===================================================================
--- tor/trunk/ChangeLog	2008-12-29 19:57:17 UTC (rev 17820)
+++ tor/trunk/ChangeLog	2008-12-29 20:17:18 UTC (rev 17821)
@@ -23,6 +23,8 @@
       don't need to use RELAY_EARLY cells: the first hop knows what kind of
       cell it is, and nobody else can even see the cell type.  This makes
       it easier to cannibalize circuits like this later.
+    - Authorities now list vote for the Stable flag for any router whose
+      weighted MTBF is at least 5 days, regardless of the mean MTBF.
 
   o Code simplifications and refactoring:
     - Change our header file guard macros to be less likely to conflict

Modified: tor/trunk/src/or/dirserv.c
===================================================================
--- tor/trunk/src/or/dirserv.c	2008-12-29 19:57:17 UTC (rev 17820)
+++ tor/trunk/src/or/dirserv.c	2008-12-29 20:17:18 UTC (rev 17821)
@@ -1625,7 +1625,6 @@
 #define UPTIME_TO_GUARANTEE_STABLE (3600*24*30)
 /** If a router's MTBF is at least this value, then it is always stable.
  * See above.  (Corresponds to about 7 days for current decay rates.) */
-/*XXXX021 Never actually used! */
 #define MTBF_TO_GUARANTEE_STABLE (60*60*24*5)
 /** Similarly, we protect sufficiently fast nodes from being pushed
  * out of the set of Fast nodes. */
@@ -1695,7 +1694,7 @@
 {
   if (need_uptime) {
     if (!enough_mtbf_info) {
-      /* XXX021 Once most authorities are on v3, we should change the rule from
+      /* XXX022 Once most authorities are on v3, we should change the rule from
        * "use uptime if we don't have mtbf data" to "don't advertise Stable on
        * v3 if we don't have enough mtbf data." */
       long uptime = real_uptime(router, now);
@@ -1705,7 +1704,8 @@
     } else {
       double mtbf =
         rep_hist_get_stability(router->cache_info.identity_digest, now);
-      if (mtbf < stable_mtbf)
+      if (mtbf < stable_mtbf &&
+          mtbf < MTBF_TO_GUARANTEE_STABLE)
         return 1;
     }
   }