GIT.Harvie.CZ
/
svn
/
Prometheus-QoS
/
.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
digital-divide, total avg.speed was nonsense
[svn/Prometheus-QoS/.git]
/
prometheus.c
diff --git
a/prometheus.c
b/prometheus.c
index 313941946142eb2cba45a134ae20ae66c507bff6..993b185aeda82202bc4a85313c847e8c11a677dc 100644
(file)
--- a/
prometheus.c
+++ b/
prometheus.c
@@
-7,7
+7,7
@@
/* Credit: CZFree.Net,Martin Devera,Netdave,Aquarius,Gandalf */
\r
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
\r
\r
/* Credit: CZFree.Net,Martin Devera,Netdave,Aquarius,Gandalf */
\r
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
\r
\r
-/* Modified by: xChaos, 201
50315
\r
+/* Modified by: xChaos, 201
60622
\r
ludva, 20080415
\r
\r
Prometheus QoS is free software; you can redistribute it and/or
\r
ludva, 20080415
\r
\r
Prometheus QoS is free software; you can redistribute it and/or
\r
@@
-29,10
+29,10
@@
#include "cll1-0.6.2.h"
\r
#include "ipstruct.h"
\r
\r
#include "cll1-0.6.2.h"
\r
#include "ipstruct.h"
\r
\r
-const char *version = "0.8.5-
c
";
\r
+const char *version = "0.8.5-
e
";
\r
\r
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
\r
\r
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
\r
-/* Versions: 0.8.
3 is development release, 0.8.4
will be "stable" */
\r
+/* Versions: 0.8.
5 is development release, 0.8.6
will be "stable" */
\r
/* Official Trac URL: https://dev.arachne.cz/svn/prometheus */
\r
/* Official SVN URL: https://dev.arachne.cz/repos/prometheus */
\r
/* BTC donations account: 19rriLx8vR19wGefPaMhakqnCYNYwjLvxq */
\r
/* Official Trac URL: https://dev.arachne.cz/svn/prometheus */
\r
/* Official SVN URL: https://dev.arachne.cz/repos/prometheus */
\r
/* BTC donations account: 19rriLx8vR19wGefPaMhakqnCYNYwjLvxq */
\r
@@
-244,7
+244,6
@@
void get_config(char *config_filename)
keyword->ip_count = 0;
\r
keyword->leaf_discipline = "";
\r
keyword->allowed_avgmtu = 0;
\r
keyword->ip_count = 0;
\r
keyword->leaf_discipline = "";
\r
keyword->allowed_avgmtu = 0;
\r
- keyword->download_aggregation = keyword->upload_aggregation = 1;
\r
\r
push(keyword, keywords);
\r
if(!defaultkeyword)
\r
\r
push(keyword, keywords);
\r
if(!defaultkeyword)
\r
@@
-308,6
+307,7
@@
void get_config(char *config_filename)
lloption("wan-download",line);
\r
lloption("wan-upload",up);
\r
ioption("hall-of-fame-enable",hall_of_fame);
\r
lloption("wan-download",line);
\r
lloption("wan-upload",up);
\r
ioption("hall-of-fame-enable",hall_of_fame);
\r
+ ioption("digital-divide-weirdness-ratio",digital_divide);
\r
option("hall-of-fame-title",title);
\r
option("hall-of-fame-filename",html);
\r
option("json-filename",json_traffic);
\r
option("hall-of-fame-title",title);
\r
option("hall-of-fame-filename",html);
\r
option("json-filename",json_traffic);
\r
@@
-605,6
+605,8
@@
Credit: CZFree.Net, Martin Devera, Netdave, Aquarius, Gandalf\n\n",version);
for_each(sharedip, ips) if(eq(sharedip->name, ip->sharing))
\r
{
\r
sharedip->traffic += ip->traffic;
\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
ip->traffic = 0;
\r
ip->mark = sharedip->mark;
\r
ip->lmsid = sharedip->lmsid;
\r
@@
-1050,24
+1052,25
@@
Credit: CZFree.Net, Martin Devera, Netdave, Aquarius, Gandalf\n\n",version);
ptr++;
\r
if_exists(ip,ips,eq(ip->addr,_))
\r
{
\r
ptr++;
\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
- int min_mbps = ip->min>>10;
\r
+ int unshape_this_ip = 0;
\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 agreg = 1, print_stats = 1;
\r
\r
int agreg = 1, print_stats = 1;
\r
\r
- if(min_mbps < 1)
\r
- {
\r
- min_mbps = 1;
\r
- }
\r
-
\r
if(ip->keyword->download_aggregation)
\r
{
\r
if(ip->keyword->download_aggregation)
\r
{
\r
+ int min_mbps = (ip->min/ip->keyword->download_aggregation)>>10;
\r
+ if(min_mbps < 1)
\r
+ {
\r
+ min_mbps = 1;
\r
+ }
\r
+
\r
if(min_mbps <= avg_mbps_down)
\r
{
\r
unshape_this_ip = 0;
\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
ip->max /= agreg;
\r
+ ip->pps_limit /= 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
else
\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
else
\r
@@
-1077,10
+1080,16
@@
Credit: CZFree.Net, Martin Devera, Netdave, Aquarius, Gandalf\n\n",version);
}
\r
else if(ip->keyword->upload_aggregation)
\r
{
\r
}
\r
else if(ip->keyword->upload_aggregation)
\r
{
\r
+ int min_mbps = (ip->min/ip->keyword->upload_aggregation)>>10;
\r
+ if(min_mbps < 1)
\r
+ {
\r
+ min_mbps = 1;
\r
+ }
\r
+
\r
if(min_mbps <= avg_mbps_up)
\r
{
\r
unshape_this_ip = 0;
\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
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
@@
-1089,7
+1098,12
@@
Credit: CZFree.Net, Martin Devera, Netdave, Aquarius, Gandalf\n\n",version);
unshape_this_ip = 1;
\r
}
\r
}
\r
unshape_this_ip = 1;
\r
}
\r
}
\r
- ip->mark=atoi(ptr);
\r
+ if(stop_shaping)
\r
+ {
\r
+ unshape_this_ip = 1;
\r
+ }
\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
if(ip->max < ip->desired || unshape_this_ip || reduce_ceil) /* apply or disable FUP limit immediately.... */
\r
{
\r
if(unshape_this_ip)
\r
This page took
0.175195 seconds
and
4
git commands to generate.