To facilitate my explanation, please see the following link (it's a screenshot of the QoS rule page for the Tomato firmware):
http://www.polarcloud.com/img/ssqosc108.png
I've been using the Gargoyle router for a bit now, and everything works wonderfully (I especially love the active congestion control feature). I'd like to be able to classify traffic based on transferred amount. If I understand the "connection bytes reach" QoS option correctly, then that's Gargoyle's method of doing so; however, anything less than 1 MB returns an error. Is there any way of accomplishing the same as in the screenshot, where port 53 traffic above 2KB and port 80/443 traffic above 512KB get a different classification? 1MB is too high a starting point for my "needs".
Thanks in advance for your time and consideration.
QoS: Transferred Amount/Connection Bytes Reach
Moderator: Moderators
Re: QoS: Transferred Amount/Connection Bytes Reach
Your screen shot is not available. Displays as "Forbidden".
Also, explain why 1MB is not a suitable minimum?
Also, explain why 1MB is not a suitable minimum?
Linksys WRT1900ACv2
Netgear WNDR3700v2
TP Link 1043ND v3
TP-Link TL-WDR3600 v1
Buffalo WZR-HP-G300NH2
WRT54G-TM
Netgear WNDR3700v2
TP Link 1043ND v3
TP-Link TL-WDR3600 v1
Buffalo WZR-HP-G300NH2
WRT54G-TM
Re: QoS: Transferred Amount/Connection Bytes Reach
I think I recall what reverie is talking about, I do remember tomato had this setup by default (before switching to gargoyle).
The reason 1mb is too high is because the most crucial data coming from ports 53 (dns) is normally small and we want this passed as quickly as possible over other data, same with the webpages at port 80 - showing the first few bytes of the page will get us what we need to see, the rest we can wait for so-to-speak...
Let me know if that helps, and I agree with reverie.
Also if possible to copy some of the defaults of tomato because it was very good at QOS right from the install and I'd love to see gargoyle do the same
p.s. I did notice skype and bittorrent were setup by default but there are a few more things that help shape average home networks become much faster when using a third party firmware.
The reason 1mb is too high is because the most crucial data coming from ports 53 (dns) is normally small and we want this passed as quickly as possible over other data, same with the webpages at port 80 - showing the first few bytes of the page will get us what we need to see, the rest we can wait for so-to-speak...
Let me know if that helps, and I agree with reverie.
Also if possible to copy some of the defaults of tomato because it was very good at QOS right from the install and I'd love to see gargoyle do the same

p.s. I did notice skype and bittorrent were setup by default but there are a few more things that help shape average home networks become much faster when using a third party firmware.
Linksys WRT54GL = Gargoyle 1.4.2
TP-Link TL-WR741ND = Gargoyle 1.4.2
Buffalo WZR-HP-G300NH = Gargoyle 1.4.2
http://eduboris.blogspot.com/search/label/Gargoyle
TP-Link TL-WR741ND = Gargoyle 1.4.2
Buffalo WZR-HP-G300NH = Gargoyle 1.4.2
http://eduboris.blogspot.com/search/label/Gargoyle
Re: QoS: Transferred Amount/Connection Bytes Reach
Thank you for the responses, pbix and bplotkin.
I'm not sure why the screen shot is not coming up for you. I tried it on another computer and it works for me. Might be some kind of hotlink prevention, but then I don't know why it works for me. In any case, the screenshot can be navigated to by going to http://www.polarcloud.com/tomato and then clicking on "QoS Classification".
As for why 1MB is not a suitable minimum, well, it's not a HUGE deal, but the added control would be nice. It's as bplotkin says, dns traffic on port 53 is typically several KB and I'd like to give it high priority if it really is legitimate dns traffic, but also be prepared for the off-chance that abuse occurs by throttling it down to low priority. Similarly, actual web browsing rarely exceeds half of that 1MB figure per connection, if even that high (only thing I've seen that high is Gmail), with most pages being less than 100KB. The only other connections exceeding ~500KB are always downloads and video streams, and while most do exceed 1MB, we'd prefer that anything exceeding normal web page access gets throttled down immediately rather than at the 1MB mark. I understand there are L7 rules that can help, but memory has been a big issue so far.
--
Something I just noticed though, and forgive me if I'm just groggy-headed or my router is being weird. Am I correct that if X is specified for "connection bytes reach", then that rule only kicks in when X is reached (I had assumed it was the opposite, that the rule would only apply up to X, after which traffic falls into the default "catch-all" service class)? Unless people normally want "catch-all" traffic to be given higher priority (rather than lower priority), wouldn't it save the need for an extra rule (and thus memory usage), like thus:
Rule 1: All port 80,443 traffic *less than* X bytes -> high priority
Default: low priority
versus
Rule 1: All port 80,443 traffic *more than* X bytes -> low priority
Rule 2: All port 80,443 traffic -> high priority
Default: low priority
I don't know how much router memory each additional QoS rule takes up, so maybe it's insignificant and not an issue; I've just grown used to the whole memory conservation mentality since my router goes over 97% usage quite often and has hit 100% (and crashed) a few times.
Perhaps the best option would be to replace "connection bytes reach" with a definable range, a la Tomato?
And again, I need to emphasize I think you guys are doing incredible work here. QoS controls that actually work (*cough* DD-WRT) and reduce latency for latency-critical stuff *while* the entire bandwidth is being saturated? Wow!
I'm not sure why the screen shot is not coming up for you. I tried it on another computer and it works for me. Might be some kind of hotlink prevention, but then I don't know why it works for me. In any case, the screenshot can be navigated to by going to http://www.polarcloud.com/tomato and then clicking on "QoS Classification".
As for why 1MB is not a suitable minimum, well, it's not a HUGE deal, but the added control would be nice. It's as bplotkin says, dns traffic on port 53 is typically several KB and I'd like to give it high priority if it really is legitimate dns traffic, but also be prepared for the off-chance that abuse occurs by throttling it down to low priority. Similarly, actual web browsing rarely exceeds half of that 1MB figure per connection, if even that high (only thing I've seen that high is Gmail), with most pages being less than 100KB. The only other connections exceeding ~500KB are always downloads and video streams, and while most do exceed 1MB, we'd prefer that anything exceeding normal web page access gets throttled down immediately rather than at the 1MB mark. I understand there are L7 rules that can help, but memory has been a big issue so far.
--
Something I just noticed though, and forgive me if I'm just groggy-headed or my router is being weird. Am I correct that if X is specified for "connection bytes reach", then that rule only kicks in when X is reached (I had assumed it was the opposite, that the rule would only apply up to X, after which traffic falls into the default "catch-all" service class)? Unless people normally want "catch-all" traffic to be given higher priority (rather than lower priority), wouldn't it save the need for an extra rule (and thus memory usage), like thus:
Rule 1: All port 80,443 traffic *less than* X bytes -> high priority
Default: low priority
versus
Rule 1: All port 80,443 traffic *more than* X bytes -> low priority
Rule 2: All port 80,443 traffic -> high priority
Default: low priority
I don't know how much router memory each additional QoS rule takes up, so maybe it's insignificant and not an issue; I've just grown used to the whole memory conservation mentality since my router goes over 97% usage quite often and has hit 100% (and crashed) a few times.
Perhaps the best option would be to replace "connection bytes reach" with a definable range, a la Tomato?
And again, I need to emphasize I think you guys are doing incredible work here. QoS controls that actually work (*cough* DD-WRT) and reduce latency for latency-critical stuff *while* the entire bandwidth is being saturated? Wow!
Re: QoS: Transferred Amount/Connection Bytes Reach
The "Connection Bytes Reached" term matches when the connection reaches the specified bytes. The rules are applied in the order listed until a match is found. Using this technique it is not necessary to have things fall to the default classification. Just add another rule below your connection byte rule.
The amount of memory that a rule takes is small. I am testing these days on a WRT54GL (16MB Flash) to see how unstable these low memory routers are with Gargoyle. I agree that strangeness possibly related to low memory occurs. If you are having trouble you should disable the active congestion control and see if your strangeness disappears. My primary router is a WRT54G-TM which I love and recommend.
I also do not recommend using L7 rules since in my experience the patterns provided are just not very accurate. A L7 rule for example can match 10% (or more) of the connections incorrectly. They should probably be removed from the default list on Gargoyle. Accurate rules use IP addresses, protocol, port numbers and connection bytes. If you use L7 pattern make sure to test its function. You can see if its working by looking at the connections screen.
Regarding the default QoS rules. I will consider any suggestions but the referenced Tomato screen shows only upload rules. Not very interesting since download is where the action is. If someone wants to install Tomato and make screen shots of the default upload and download QoS screens that would be helpful to the discussion.
In the next release of Gargoyle QoS is enhanced to show the dynamic bandwidth of each class on the QoS screen which is pretty cool. Also a few improvements to help in low memory routers and the v1.3.5 L7 add rule bug is fixed. To get these features you can wait until the next release or if you have a Linux box build out of the current GIT.
The amount of memory that a rule takes is small. I am testing these days on a WRT54GL (16MB Flash) to see how unstable these low memory routers are with Gargoyle. I agree that strangeness possibly related to low memory occurs. If you are having trouble you should disable the active congestion control and see if your strangeness disappears. My primary router is a WRT54G-TM which I love and recommend.
I also do not recommend using L7 rules since in my experience the patterns provided are just not very accurate. A L7 rule for example can match 10% (or more) of the connections incorrectly. They should probably be removed from the default list on Gargoyle. Accurate rules use IP addresses, protocol, port numbers and connection bytes. If you use L7 pattern make sure to test its function. You can see if its working by looking at the connections screen.
Regarding the default QoS rules. I will consider any suggestions but the referenced Tomato screen shows only upload rules. Not very interesting since download is where the action is. If someone wants to install Tomato and make screen shots of the default upload and download QoS screens that would be helpful to the discussion.
In the next release of Gargoyle QoS is enhanced to show the dynamic bandwidth of each class on the QoS screen which is pretty cool. Also a few improvements to help in low memory routers and the v1.3.5 L7 add rule bug is fixed. To get these features you can wait until the next release or if you have a Linux box build out of the current GIT.
Linksys WRT1900ACv2
Netgear WNDR3700v2
TP Link 1043ND v3
TP-Link TL-WDR3600 v1
Buffalo WZR-HP-G300NH2
WRT54G-TM
Netgear WNDR3700v2
TP Link 1043ND v3
TP-Link TL-WDR3600 v1
Buffalo WZR-HP-G300NH2
WRT54G-TM
Re: QoS: Transferred Amount/Connection Bytes Reach
reverie
That's interesting the site shows forbidden but going to the website I can see the image and then your link worked maybe sessions or something... anyway I agree with your points about smaller chunks get priority this could be cool also if it's going to be pre-set with some general options like tomato.
[edit]
I also have WRT54GL with version 1.3.6 and with quota, qos and even the new Active Congestion Control enabled and my RAM never exceeds mid 90% (right now 13.1MB / 14MB 94.1%)
I use it quite excessively at times and see no issues on my end though i don't check the ram I never experienced a crash but the router does have some kind of high pitch noise which been going on for a while now...
Note I don't have many other's using the router it's mainly myself and another light set of users the quote is mostly for myself not to go over
pbix
I don't plan to install tomato anymore (had it before gargoyle) but I think we can figure out some of our own custom settings that will work for gargoyle users right
About the upload that's not entirely true, I had instances when I upload files (either http/bittorrent or both) and it would slow down the connection very much, to the point even browsing to a small website (say google) takes long to load.
So I found fairly simple rules to add that fixed it and improved browsing under high load, it now functions great under full load of uploading and downloading and I would love to see these or similar rules come pre-set with gargoyle:
Bottom of the list (Upload):
Destination Port: 80 - Slow
Application Protocol: BitTorrent - Slow
Below skype rules (Download):
Source Port: 53 - Fast
Source Port: 80 - Fast
Application Protocol: BitTorrent - Slow
Anyway let me know what you think!
Maybe I'll try learning some gargoyle programming what language does it use?
That's interesting the site shows forbidden but going to the website I can see the image and then your link worked maybe sessions or something... anyway I agree with your points about smaller chunks get priority this could be cool also if it's going to be pre-set with some general options like tomato.
[edit]
I also have WRT54GL with version 1.3.6 and with quota, qos and even the new Active Congestion Control enabled and my RAM never exceeds mid 90% (right now 13.1MB / 14MB 94.1%)
I use it quite excessively at times and see no issues on my end though i don't check the ram I never experienced a crash but the router does have some kind of high pitch noise which been going on for a while now...
Note I don't have many other's using the router it's mainly myself and another light set of users the quote is mostly for myself not to go over

pbix
I don't plan to install tomato anymore (had it before gargoyle) but I think we can figure out some of our own custom settings that will work for gargoyle users right

About the upload that's not entirely true, I had instances when I upload files (either http/bittorrent or both) and it would slow down the connection very much, to the point even browsing to a small website (say google) takes long to load.
So I found fairly simple rules to add that fixed it and improved browsing under high load, it now functions great under full load of uploading and downloading and I would love to see these or similar rules come pre-set with gargoyle:
Bottom of the list (Upload):
Destination Port: 80 - Slow
Application Protocol: BitTorrent - Slow
Below skype rules (Download):
Source Port: 53 - Fast
Source Port: 80 - Fast
Application Protocol: BitTorrent - Slow
Anyway let me know what you think!
Maybe I'll try learning some gargoyle programming what language does it use?
Linksys WRT54GL = Gargoyle 1.4.2
TP-Link TL-WR741ND = Gargoyle 1.4.2
Buffalo WZR-HP-G300NH = Gargoyle 1.4.2
http://eduboris.blogspot.com/search/label/Gargoyle
TP-Link TL-WR741ND = Gargoyle 1.4.2
Buffalo WZR-HP-G300NH = Gargoyle 1.4.2
http://eduboris.blogspot.com/search/label/Gargoyle