X-Git-Url: http://git.onelab.eu/?p=distributedratelimiting.git;a=blobdiff_plain;f=drl%2Fdrl_state.h;h=950ea7ec850cb957de719e9ab7130a1f622ea882;hp=2b1ec5e68282fb867b31bd0b9721c665653ce4eb;hb=762f4e00371f2a8e01a6cf60867f837b90460a60;hpb=0be9704d6b24d09ebd55beedec52758cb88c570b diff --git a/drl/drl_state.h b/drl/drl_state.h index 2b1ec5e..950ea7e 100644 --- a/drl/drl_state.h +++ b/drl/drl_state.h @@ -31,7 +31,10 @@ #define MAX_IDENTS (1024) #define MAX_LIMITERS (128) -#define REMOTE_AWOL_THRESHOLD (3) +#define MESH_REMOTE_AWOL_THRESHOLD (5) + +//FIXME: Make this more scientific? +#define GOSSIP_REMOTE_AWOL_THRESHOLD (10 * comm->remote_node_count / comm->gossip.gossip_branch) enum transports { UDP, TCP }; @@ -208,9 +211,13 @@ void free_comm(comm_t *comm); * @param aggregate The location at which the aggregate value will * be stored. * + * @param decayto When using a mesh comm fabric, limiters whose value + * has not been heard in several timesteps will decay to this value. + * Generally globallimit/N. + * * @returns 0 on success, EINVAL on error. */ -int read_comm(comm_t *comm, double *aggregate); +int read_comm(comm_t *comm, double *aggregate, double decayto); /** * Updates the locally observed value of an identity.