Page 2 of 5

Re: Disappointing bufferbloat

Posted: Thu Oct 01, 2015 2:23 pm
by old-hacker
orangetek wrote:It works because anything other than important packets (0-512 bytes) go to the default service class. You could set the percentages 50/50 and it would work the same because the packets in the classification rule would never use 50% of your bandwidth. Understanding what those packets are and why they need to be prioritized first is another story. Google TCP ACK and go from there. Just remember, whatever classification rules you create, the default service class catches everything that doesn't match and should always be set to your slowest service class.

I run a wisp in Cyprus with 400+ customers connected. Without proper qos i would not have a business.
Thanks, orangetek. I've been doing a lot of reading about both QoS and networking lately, including the Gargoyle docs on the QoS. I understand it a lot better now, especially how the logic works on what gets chosen. So, I've figured out what your suggestion did, although I'm not knowledgeable enough to know the exact implications of prioritizing the ACKs. Hopefully, it's not simply increasing the score on the test instead of increasing performance. :-)

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.

Re: Disappointing bufferbloat

Posted: Thu Oct 01, 2015 4:01 pm
by Volaris
orangetek wrote:Do the following, and test again. Make sure you change your total upload/download bandwidth accordingly.

Step 1.
https://www.dropbox.com/s/gsnyhwzk5f2s8 ... 2.JPG?dl=0

Step 2.
https://www.dropbox.com/s/v6lo03f105dxn ... 1.JPG?dl=0

Step 3.
https://www.dropbox.com/s/hm0k9hsgi98ba ... 2.JPG?dl=0

Step 4.
https://www.dropbox.com/s/cgiku87hzuhuf ... 1.JPG?dl=0
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.

Re: Disappointing bufferbloat

Posted: Thu Oct 01, 2015 9:54 pm
by old-hacker
Volaris wrote: . . .
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.
Thanks, I'm not adding much. I basically added one for VOIP (the default that comes with the software), and I created another class for streaming video to/from my TV. I tested and it's working very well. Did a speedtest while streaming, and it was slower, but not that slow, and the video had no problems. Same for VOIP calling. I think I understand things pretty well now.

Re: Disappointing bufferbloat

Posted: Tue Oct 06, 2015 5:49 pm
by mckman
Hello,

I would love to improve my bufferbloat issues but when I click on the dropbox links, they say that that're no longer available. Can someone repost the settings?

Thanks in advance.

Re: Disappointing bufferbloat

Posted: Wed Oct 07, 2015 12:55 pm
by Volaris
mckman wrote:Hello,

I would love to improve my bufferbloat issues but when I click on the dropbox links, they say that that're no longer available. Can someone repost the settings?

Thanks in advance.
See following image:
https://snapr.pw/i/29cca34693.png

His had Fast set to 70% and Normal to 30%. I kept it 50/50... either should work because Fast bandwidth will never reach that (since it's just for <512 byte traffic). Same setup for Upload and Download QoS, just make sure your upload/download bandwidth at bottom is set to accommodate your Internet connection speeds. With those settings Gargoyle will automatically and dynamically split available bandwidth between devices.

Re: Disappointing bufferbloat

Posted: Wed Oct 07, 2015 2:29 pm
by mckman
Volaris wrote:
mckman wrote:Hello,

I would love to improve my bufferbloat issues but when I click on the dropbox links, they say that that're no longer available. Can someone repost the settings?

Thanks in advance.
See following image:
https://snapr.pw/i/29cca34693.png

His had Fast set to 70% and Normal to 30%. I kept it 50/50... either should work because Fast bandwidth will never reach that (since it's just for <512 byte traffic). Same setup for Upload and Download QoS, just make sure your upload/download bandwidth at bottom is set to accommodate your Internet connection speeds. With those settings Gargoyle will automatically and dynamically split available bandwidth between devices.
Much appreciated. Thank you. This works Excellently! I went from a D to an A with Bufferbloat and the quality went from a B to an A. Very Nice.
Image

Re: Disappointing bufferbloat

Posted: Mon Nov 30, 2015 4:48 am
by orangetek
Well i finally got around to recompiling gargoyle with a modification to ACC. After much testing i went with completely ignoring ping timeouts by replacing the timeout value with the ping limit. Got up this morning and my max limit is almost where it was last night which means its working :) The original code would have brought my max limit down from 120M to 30M even though traffic on my network at that time was low and capacity was high. For my ISP, this modification is a life saver. I might try and implement this as an option in the GUI along with a few other options so that we can tweak things depending on the situation.

Re: Disappointing bufferbloat

Posted: Mon Nov 30, 2015 5:00 am
by Lantis
Cool :)
Keep us informed :)

Re: Disappointing bufferbloat

Posted: Mon Nov 30, 2015 6:48 am
by tapper
orangetek wrote:Well i finally got around to recompiling gargoyle with a modification to ACC. After much testing i went with completely ignoring ping timeouts by replacing the timeout value with the ping limit. Got up this morning and my max limit is almost where it was last night which means its working :) The original code would have brought my max limit down from 120M to 30M even though traffic on my network at that time was low and capacity was high. For my ISP, this modification is a life saver. I might try and implement this as an option in the GUI along with a few other options so that we can tweak things depending on the situation.
Pachs and tweaks are always welcome :)

Re: Disappointing bufferbloat

Posted: Mon Nov 30, 2015 12:12 pm
by mckman
orangetek wrote:Well i finally got around to recompiling gargoyle with a modification to ACC. After much testing i went with completely ignoring ping timeouts by replacing the timeout value with the ping limit. Got up this morning and my max limit is almost where it was last night which means its working :) The original code would have brought my max limit down from 120M to 30M even though traffic on my network at that time was low and capacity was high. For my ISP, this modification is a life saver. I might try and implement this as an option in the GUI along with a few other options so that we can tweak things depending on the situation.
This would be a great option as I am experiencing the same issue. For now, I've been working around this issue by setting up a cron job that restarts QOS once a week.