This is amazing! I applied it to my QoS and browsing seems faster. Not only that, but I can fully max upload on my laptop and continue browsing on it with no noticeable lags (or any special QoS settings that would discriminate between different traffic). Thanks for this suggestion! Also, the Buffetfloat rating on DSLReports speed test went from an F to an A.
pbix wrote:If you can build your own version of Gargoyle here is something you can try.
The ACC function is contained in the file qosmon.c. Locate this file and search for the following lines of code:
Code: Select all
while (!sigterm) {
int len = sizeof (packet);
socklen_t fromlen = sizeof (from);
int cc;
u_char chill;
struct timeval timeout;
fd_set fdmask;
FD_ZERO(&fdmask);
FD_SET(s , &fdmask);
//This variable will be set in pr_pack() if we get a pong that matched
//our ping, but in case we don't get we initialize to the period.
rawfltime=period;
and change to this.
Code: Select all
//Initialize plimit to a sane value.
plimit = period*1000;
while (!sigterm) {
int len = sizeof (packet);
socklen_t fromlen = sizeof (from);
int cc;
u_char chill;
struct timeval timeout;
fd_set fdmask;
FD_ZERO(&fdmask);
FD_SET(s , &fdmask);
//This variable will be set in pr_pack() if we get a pong that matched
//our ping, but in case we don't get we initialize to the current plimit * 2
rawfltime=plimit/500;
Dropped ICMP packets are strong indication of a saturated link and it does not seem correct to me to do nothing in response. The new code will more gradually drop the link limit in response to dropped packets.
Please report on your results in a new thread.
Hopefully that works. I have family in Mexico who I installed a Gargoyle router, thinking ACC would be a perfect fit for them because they use a WISP (variable internet speeds; no set speed/plan), but ACC didn't work because during peak times there would be random ping drops.
old-hacker wrote:I'm slowly adding in new rules, always going back and testing to make sure I don't break anything. I want to make sure VOIP works well, and Netflix, both of which are not used often. I think I'm understanding how to do it better now, although I still have a lot to learn.
Remember that unlike other firmwares, Gargoyle doesn't need many QoS rules because it has per IP sharing. The rules orangetek showed should work for most because of this (unless you have a slower or easily congested connection). Basically, Gargoyle equally divides the available bandwidth between current users so one user won't hog it all. So if one user starts maxing the connection with a torrent download or HD stream, Gargoyle will automatically make bandwidth available to another user... keeping everyone's speeds and pings quite good. One way to test is to start a large download on one laptop (say, a Linux distribution image) then on another device start a speed test. If those are the only two devices downloading, they should both get about 50% of bandwidth during the speed test. As soon as the speed test is over, the PC doing the download will get all the bandwidth back again. Basically it's dynamic according to demand and how much bandwidth is available.