Feature Request: Linked Upload and Download
Posted: Sat Apr 11, 2015 7:46 pm
My ISP enforces a total bandwidth cap of 80 Mbps on Upload & Download combined, for QoS and ACC to work I had to cap Download at 60 Mbps and Upload at 20 Mpbs.
Are there any plans for adding some flexible support for this kind of ISP bandwidth capping? Many ISPs in Western Europe employ this kind of bandwidth capping and the only current option for Gargoyle is (sadly!) to reserve part of the bandwidth exclusively for uploading, leaving the rest for downloading.
It seems to me that the easiest way to achieve this goal is just to spawn a "shadow class" counting towards Upload but simply mirroring the current total Download rate. The "shadow class" should have the absolute highest priority possible, defying all percentages and caps of all other Upload classes. As long as the total current Download rate is mirrored in Upload QoS, all the real Upload classes will have to make do with whatever is left to them.
By capping this "shadow class" at a certain percentage or an absolute value, we could keep Download from pushing back Upload beyond a desirable threshold. This would involve spawning a second "shadow class" in Download QoS, automatically capped at [(total bandwidth) minus (maximum value of the first shadow class]) and basically "defending" some bandwidth for the various Upload classes.
E.g. if I cap the Download Shadow Class at 50 Mbps and my total link bandwidth is 80 Mbps, any Download traffic is mirrored in Upload as an active, top-priority shadow class of up to 50 Mbps, and any Upload traffic is mirrored in Download as an active, top-priority shadow class of up to 80 - 50 = 30 Mbps. Thus Download traffic will have the privilege of pushing back all existing Upload traffic for as far as 50 Mbps, and any Upload traffic will push all existing Download traffic for as far as 30 Mbps, 30 + 50 resulting in the total Linked Upload & Download Bandwidth cap.
This may sound clumsy but it should work without rewriting the whole QoS because Upload and Download counters are left independent, it's just some numbers from either side which are mirrored as fake traffic in the opposite direction.
Are there any plans for adding some flexible support for this kind of ISP bandwidth capping? Many ISPs in Western Europe employ this kind of bandwidth capping and the only current option for Gargoyle is (sadly!) to reserve part of the bandwidth exclusively for uploading, leaving the rest for downloading.
It seems to me that the easiest way to achieve this goal is just to spawn a "shadow class" counting towards Upload but simply mirroring the current total Download rate. The "shadow class" should have the absolute highest priority possible, defying all percentages and caps of all other Upload classes. As long as the total current Download rate is mirrored in Upload QoS, all the real Upload classes will have to make do with whatever is left to them.
By capping this "shadow class" at a certain percentage or an absolute value, we could keep Download from pushing back Upload beyond a desirable threshold. This would involve spawning a second "shadow class" in Download QoS, automatically capped at [(total bandwidth) minus (maximum value of the first shadow class]) and basically "defending" some bandwidth for the various Upload classes.
E.g. if I cap the Download Shadow Class at 50 Mbps and my total link bandwidth is 80 Mbps, any Download traffic is mirrored in Upload as an active, top-priority shadow class of up to 50 Mbps, and any Upload traffic is mirrored in Download as an active, top-priority shadow class of up to 80 - 50 = 30 Mbps. Thus Download traffic will have the privilege of pushing back all existing Upload traffic for as far as 50 Mbps, and any Upload traffic will push all existing Download traffic for as far as 30 Mbps, 30 + 50 resulting in the total Linked Upload & Download Bandwidth cap.
This may sound clumsy but it should work without rewriting the whole QoS because Upload and Download counters are left independent, it's just some numbers from either side which are mirrored as fake traffic in the opposite direction.