Long-outstanding commit. (Hopefully) Final version before running experiments for...
[distributedratelimiting.git] / drl / raterouter.h
index 958ef4e..37f0141 100644 (file)
 
 enum policies { POLICY_GRD = 1, POLICY_FPS = 2 };
 enum commfabrics { COMM_MESH = 1, COMM_GOSSIP = 2 };
-enum accountings { ACT_STANDARD = 1, ACT_SAMPLEHOLD = 2, ACT_SIMPLE = 3 };
+enum accountings { ACT_STANDARD = 1, ACT_SAMPLEHOLD = 2, ACT_SIMPLE = 3, ACT_MULTIPLE = 4};
+enum dampenings { DAMPEN_NONE = 0, DAMPEN_TEST = 1, DAMPEN_FAILED = 2, DAMPEN_PASSED = 3, DAMPEN_SKIP = 4};
 
 /* The comm library also has definitions for comfabrics. This prevents us
  * from defining them twice. */
 #define COMM_DEFS
 
 /* global constants */
-#define IDENT_CLEAN_INTERVAL 10 /* in seconds */
+#define IDENT_CLEAN_INTERVAL 5 /* in seconds */
 
 #define LIMITER_LISTEN_PORT 9001
 
@@ -59,7 +60,9 @@ enum accountings { ACT_STANDARD = 1, ACT_SAMPLEHOLD = 2, ACT_SIMPLE = 3 };
  */
 #define FLOW_START_THRESHOLD (6000)
 
-#define CLOSE_ENOUGH (0.99)
+#define CLOSE_ENOUGH (0.90)
+
+#define GRD_BIG_DROP (0.90)
 
 /**
  * All fields come from the ip protocol header.
@@ -74,6 +77,12 @@ enum accountings { ACT_STANDARD = 1, ACT_SAMPLEHOLD = 2, ACT_SIMPLE = 3 };
  */
 #define FLOWKEYSIZE (13)
 
+/* Causes each identity to track every flow in two tables.  One table is as
+ * specified in the config file.  The second is a standard table with
+ * "perfect" accounting so that we can compare the two.  Turn this off for 
+ * any type of production setting. */
+//#define SHADOW_ACCTING
+
 /* forward declare some structs */
 struct limiter;
 struct identity;