X-Git-Url: http://git.onelab.eu/?p=distributedratelimiting.git;a=blobdiff_plain;f=drl%2Fulogd_DRL.c;h=14de4fe2f3f0084bff069d2291285b3ba549d82e;hp=e8e0747be381d563322a8d96c660a28715a67129;hb=8c906a2f229c11beaedfa5968b60133421bd0c6f;hpb=28e1741a1a10567be2a6b02d1ba468b9f62ba33c diff --git a/drl/ulogd_DRL.c b/drl/ulogd_DRL.c index e8e0747..14de4fe 100644 --- a/drl/ulogd_DRL.c +++ b/drl/ulogd_DRL.c @@ -521,7 +521,7 @@ static identity_t *new_identity(ident_config *config) { memset(comm_nodes, 0, config->peer_count * sizeof(remote_node_t)); ident->id = config->id; - ident->limit = (uint32_t) (((double) config->limit * 1000000.0) / 8.0); + ident->limit = (uint32_t) (((double) config->limit * 1000.0) / 8.0); ident->fixed_ewma_weight = config->fixed_ewma_weight; ident->intervals = config->intervals; ident->ewma_weight = pow(ident->fixed_ewma_weight, @@ -990,15 +990,6 @@ static int create_htb_hierarchy(drl_instance_t *instance) { } printlog(LOG_DEBUG, "HTB_cmd: %s\n", cmd); - /* Add back 1:20. */ - sprintf(cmd, "/sbin/tc class add dev eth0 parent 1:1 classid 1:20 htb rate 8bit ceil 1000mbit"); - - if (execute_cmd(cmd)) { - return 1; - } - printlog(LOG_DEBUG, "HTB_cmd: %s\n", cmd); - - /* Add machines. */ for (i = 0; i < instance->machine_count; ++i) { sprintf(cmd, "/sbin/tc class add dev eth0 parent 1:%x classid 1:%x htb rate 8bit ceil %lubit", @@ -1012,6 +1003,25 @@ static int create_htb_hierarchy(drl_instance_t *instance) { printlog(LOG_DEBUG, "HTB_cmd: %s\n", cmd); } +#define LIMITEXEMPT + + /* Add back 1:20. */ +#ifdef LIMITEXEMPT + if (instance->last_machine == NULL) { + sprintf(cmd, "/sbin/tc class add dev eth0 parent 1:1 classid 1:20 htb rate 8bit ceil 1000mbit"); + } else { + sprintf(cmd, "/sbin/tc class add dev eth0 parent 1:%x classid 1:20 htb rate 8bit ceil 1000mbit", + instance->last_machine->htb_node); + } +#else + sprintf(cmd, "/sbin/tc class add dev eth0 parent 1:1 classid 1:20 htb rate 8bit ceil 1000mbit"); +#endif + + if (execute_cmd(cmd)) { + return 1; + } + printlog(LOG_DEBUG, "HTB_cmd: %s\n", cmd); + /* Add sets. */ for (j = (instance->set_count - 1); j >= 0; --j) { sprintf(cmd, "/sbin/tc class add dev eth0 parent 1:%x classid 1:%x htb rate 8bit ceil %lubit", @@ -1110,16 +1120,6 @@ static int create_htb_hierarchy(drl_instance_t *instance) { /* End delay testing */ #endif -//#define SFQTEST - -#ifdef SFQTEST - sprintf(cmd, "/sbin/tc qdisc del dev eth0 parent 1:1000 handle 1000 pfifo"); - execute_cmd(cmd); - - sprintf(cmd, "/sbin/tc qdisc replace dev eth0 parent 1:1000 handle 1000 sfq perturb 20"); - execute_cmd(cmd); -#endif - return 0; }