/* Credit: CZFree.Net,Martin Devera,Netdave,Aquarius,Gandalf */\r
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */\r
\r
-/* Modified by: xChaos, 20150315\r
+/* Modified by: xChaos, 20150331\r
ludva, 20080415\r
\r
Prometheus QoS is free software; you can redistribute it and/or\r
for_each(sharedip, ips) if(eq(sharedip->name, ip->sharing))\r
{\r
sharedip->traffic += ip->traffic;\r
+ sharedip->traffic_down += ip->direct;\r
+ sharedip->traffic_up += ip->upload;\r
ip->traffic = 0;\r
ip->mark = sharedip->mark; \r
ip->lmsid = sharedip->lmsid;\r
if_exists(ip,ips,eq(ip->addr,_))\r
{\r
int unshape_this_ip = stop_shaping;\r
- long avg_mbps_down = ip->direct * 8 / how_much_seconds;\r
- long avg_mbps_up = ip->upload * 8 / how_much_seconds;\r
+ long avg_mbps_down = ip->traffic_down * 8 / how_much_seconds; \r
+ long avg_mbps_up = ip->traffic_up * 8 / how_much_seconds;\r
int min_mbps = ip->min>>10;\r
int agreg = 1, print_stats = 1;\r
\r
if(min_mbps <= avg_mbps_down)\r
{\r
unshape_this_ip = 0;\r
- agreg = (avg_mbps_down+1)/min_mbps;\r
+ agreg = (int)((float)(avg_mbps_down+1)/min_mbps+.5);\r
ip->max /= agreg;\r
printf("Download aggregation 1:%d for %s (min: %lu Mbps avg: %ld Mbps)\n", agreg, ip->name, min_mbps, avg_mbps_down);\r
}\r
if(min_mbps <= avg_mbps_up)\r
{\r
unshape_this_ip = 0;\r
- agreg = (avg_mbps_up+1)/min_mbps;\r
+ agreg = (int)((float)(avg_mbps_up+1)/min_mbps+.5);\r
ip->max /= agreg;\r
printf("Upload aggregation 1:%d for %s: (min: %lu Mbps avg: %ld Mbps)\n", agreg, ip->name, min_mbps, avg_mbps_up);\r
}\r
unshape_this_ip = 1;\r
}\r
}\r
- ip->mark=atoi(ptr);\r
+ ip->aggregated = agreg; \r
+ ip->mark = atoi(ptr);\r
if(ip->max < ip->desired || unshape_this_ip || reduce_ceil) /* apply or disable FUP limit immediately.... */\r
{\r
if(unshape_this_ip)\r