Added option to run without the assumption of PlanetLab Vservers. We still assume...
[distributedratelimiting.git] / drl / config.h
index e1a436f..3322573 100644 (file)
@@ -69,15 +69,34 @@ typedef struct ident_config {
     /** The gossip branch factor (when commfabric is COMM_GOSSIP). */
     int branch;
 
+    /** The gossip group membership policy (SWIM, ZOOKEEPER). */
+    enum memberships membership;
+
+    /** The behavioral policy to use when one or more failures in group
+     * membership are detected. */
+    enum failure_behaviors failure_behavior;
+
+#ifdef BUILD_ZOOKEEPER
+
+    /** The host string that should be passed to zookeeper_init when using
+     * zookeeper.  This consists of comma-separated ipaddr:port pairs. Example:
+     * "127.0.0.1:3000,127.0.0.1:3001,127.0.0.1:3002" */
+    char *zk_host;
+
+#endif
+
     /** The flow accounting mechanism to be used by this identity. */
     enum accountings accounting;
 
     /** The fixed (1-second) ewma weight value for this identity. */
     double fixed_ewma_weight;
 
-    /** The number of estimate intervals to wait between calls to estimate,
+    /** The number of limiter intervals to wait between calls to estimate,
      * allocate and enforce. */
-    int intervals;
+    int mainloop_intervals;
+
+    /** The number of limiter intervals to wait between communication. */
+    int communication_intervals;
 
     /** The type of this identity. */
     enum ident_types type;
@@ -88,9 +107,20 @@ typedef struct ident_config {
     /** The number of peers. */
     int peer_count;
 
+    /** If this is set, the node goes under the root rather than machine nodes. */
+    int independent;
+
     /** List of the identity's members (type IDENT_SET only). */
     ident_member *members;
 
+    /** If NM is setting up the hierarchy for us, this is the htb node to use
+     * for this identity. */
+    int htb_node;
+
+    /** If NM is setting up the hierarchy for us, this is the htb parent node
+     * to use for this identity. */
+    int htb_parent;
+
     /** Pointer to the next ident in the list or NULL if this is the last. */
     struct ident_config *next;
 } ident_config;
@@ -158,4 +188,6 @@ int parse_drl_config(const char *configfile, parsed_configs *configs);
  * allocation fails, or 1 if the cause of the error is unclear. */
 int get_eligible_leaves(struct drl_instance *instance);
 
+int parse_leaves(struct drl_instance *instance, char *leafstring);
+
 #endif  /* _DRL_CONFIG_ */