What's new

[Fork] FlexQoS - Flexible QoS Enhancement Script for Adaptive QoS

roboots21

Occasional Visitor
Hi Dave, Appdb redirection doesn't seem to work properly. Every time i change untracked traffic class to another class it automatically goes to Work-from-home class. same goes with any appdb redirection rules.
Haha I just posted virtually the same exact issue!
 

JAAAAA

Occasional Visitor
Run another one (preferably simultaneously to speedtest.net) with fast.com which should be classified as Netflix.

I would also disable QoS and run several tests and use the worst results as your QoS bandwidth (even if from separate test runs).

I don’t know that this explains your issue, but if QoS is not allowed to be your bottleneck, it won’t help at all. Meaning if your external bandwidth is dropping below your QoS bandwidth, QoS won’t help much.
Okayyyy - so I've turned off QOS and ran the following speed tests, what would you suggest I put as the numbers for manual bandwith? (current config set picture provided below). These tests were performed with 'some' internet usage occurring but not a completely dead test (which I thought we had to run to configure the previous numbers).
> What I mean by completely dead = when network traffic was very low. below numbers are normal usage (just web browsing etc occurring)

* PS if I know the device that is causing lag should I mark it as LOWEST in bandwidth monitor screen tag or does that do nothing?


1595940386007.png

1595940398126.png

1595940471839.png

1595940550282.png
 

Morris

Regular Contributor
I just monitored a youtube stream from e vs Chrome and saw the games they are playing with multiple IP's. I guess this is there anti theft mechanism and of cause it dose not work any better than copy protection on a CD.

They are using other IP ranges besides the one you mentioned. Are there required fields in the IP table? There is some very faint text that I guess you put there as documentation how to fill the form out. It is too light for me to read. Can you make it a bit more readable in the next release?

Using netstat on my PC I think I can identify the required IP blocks to classify youtube. I'm still wondering what the difference is that prevents Chrome's youtube traffic from being classified. The difference seems subtle.
I see two ways of dealing with Youtube running in Chrome on Windows and being classified as "other" rather than "streaming video and audio":

1) Report to Asus. I don't have a spare router do run stock to do this and will not sacrifice my production network as my family will not be happy. If I see a chap refurbish I might grab it.

2) Assign sufficient bandwidth and priority to "other". This is what I've been doing and it works. Possibly this should be mentioned under known anomalies on the documentation page.

Morris
 

QuikSilver

Very Senior Member
Okayyyy - so I've turned off QOS and ran the following speed tests, what would you suggest I put as the numbers for manual bandwith? (current config set picture provided below). These tests were performed with 'some' internet usage occurring but not a completely dead test (which I thought we had to run to configure the previous numbers).
> What I mean by completely dead = when network traffic was very low. below numbers are normal usage (just web browsing etc occurring)

* PS if I know the device that is causing lag should I mark it as LOWEST in bandwidth monitor screen tag or does that do nothing?


View attachment 24960
View attachment 24961
View attachment 24962
View attachment 24963
Your upload in the QOS field on the router needs to be changed. You have 34 but your test show much lower. Ideally you should run this test with nothing else running to give you a good baseline. From there you tweak the QOS settings to be 80-90% of your actual value. In your case I would try 81 for download (90 x .90) and 16 for upload (18 x .90). From there you can lower until you get the expected results. I still recommend running with nothing else or you can try SpdMerlin which is a script @Jack Yaz created. It runs a speedtest from the router itself.
 

dave14305

Part of the Furniture
Hi Dave, Appdb redirection doesn't seem to work properly. Every time i change untracked traffic class to another class it automatically goes to Work-from-home class. same goes with any appdb redirection rules.
So I'm getting some weird behavior when trying to add items to the AppDB Redirection Rules table. For instance, if I try to add Snapchat in to classify it into a lower level priority that work-from-home (which is one of my top priority rules), and add the rule, it seems to add OK, but when adding the rule it changes the class from "Others" to "work-from-home". No matter how many times I edit the rule and save/apply it, it won't let me set the category of the rule to what I want. Does this sound familiar or am I doing something wrong?
I'm guessing it's due to my recent feature to default the selector to the original appdb category. I will try to confirm this soon.
 

JAAAAA

Occasional Visitor
Your upload in the QOS field on the router needs to be changed. You have 34 but your test show much lower. Ideally you should run this test with nothing else running to give you a good baseline. From there you tweak the QOS settings to be 80-90% of your actual value. In your case I would try 81 for download (90 x .90) and 16 for upload (18 x .90). From there you can lower until you get the expected results. I still recommend running with nothing else or you can try SpdMerlin which is a script @Jack Yaz created. It runs a speedtest from the router itself.
Okayyyyy so
  1. Setting upload to 16 and DL to 81 √
  2. What do you mean:
    I still recommend running with nothing else or you can try SpdMerlin which is a script @Jack Yaz created. It runs a speedtest from the router itself.
  3. Do you mean to turn off QOS? Or just set those values that you said?
 

QuikSilver

Very Senior Member
Okayyyyy so
  1. Setting upload to 16 and DL to 81 √
  2. What do you mean:
    I still recommend running with nothing else or you can try SpdMerlin which is a script @Jack Yaz created. It runs a speedtest from the router itself.
  3. Do you mean to turn off QOS? Or just set those values that you said?
For now set those values. I was recommending a script that can run automatically that will run a speedtest from your router out to the internet. It can show you your past results in a table and graph. That would help you get a better idea of what your speed really is.

 

dave14305

Part of the Furniture
I'm guessing it's due to my recent feature to default the selector to the original appdb category. I will try to confirm this soon.
Hotfix pushed to revert this "feature" for now. Please update and test to confirm. Check any appdb rules you added recently to make sure they reflect the intended Class.
 

dave14305

Part of the Furniture
Hi Dave, Appdb redirection doesn't seem to work properly. Every time i change untracked traffic class to another class it automatically goes to Work-from-home class.
This could be a slightly different issue. Please update and try it again. If it's still not working, please post the output of these 2 commands:
Bash:
tc -s filter show dev br0  | grep x80000 -B1
tc -s filter show dev eth0 | grep x40000 -B1
 

Wycleff

Occasional Visitor
What do you see if you run: tc qdisc ls | grep "htb.*root"

And then: tc -d class show dev eth4 | grep "parent 1:1 "

And then rerun one of the commands from the debug to see if it gives that RTNETLINK error:
Bash:
realtc class change dev eth4 parent 1:1 classid 1:17 htb overhead 19 linklayer ethernet prio 7 rate 1638Kbit ceil 32768Kbit burst 3199b cburst 39985b
I'm ashuming it's an issue with eth4, but maybe the joke's on me and it's br0, because something is happening to the br0 classes and filters between the initial delay (10s) and the time it wants to apply the custom TC rules.
What do you see if you run: tc qdisc ls | grep "htb.*root"
--->>

Code:
qdisc htb 1: dev eth4 root refcnt 2 r2q 10 default 0 direct_packets_stat 511 direct_qlen 1000
qdisc htb 1: dev br0 root refcnt 2 r2q 10 default 0 direct_packets_stat 87904 direct_qlen 2
tc -d class show dev eth4 | grep "parent 1:1 "
--->>

Code:
class htb 1:11 parent 1:1 leaf 11: prio 1 quantum 81912 rate 6553Kbit overhead 27 ceil 32768Kbit linklayer ethernet burst 7997b/1 mpu 0b overhead 0b cburst 39985b/1 mpu 0b overhead 0b level 0
class htb 1:10 parent 1:1 leaf 10: prio 0 quantum 20475 rate 1638Kbit overhead 27 ceil 32768Kbit linklayer ethernet burst 3198b/1 mpu 0b overhead 0b cburst 39985b/1 mpu 0b overhead 0b level 0
class htb 1:13 parent 1:1 leaf 13: prio 3 quantum 122875 rate 9830Kbit overhead 27 ceil 32768Kbit linklayer ethernet burst 3197b/1 mpu 0b overhead 0b cburst 39985b/1 mpu 0b overhead 0b level 0
class htb 1:12 parent 1:1 leaf 12: prio 2 quantum 61437 rate 4915Kbit overhead 27 ceil 32768Kbit linklayer ethernet burst 3197b/1 mpu 0b overhead 0b cburst 39985b/1 mpu 0b overhead 0b level 0
class htb 1:15 parent 1:1 leaf 15: prio 5 quantum 40950 rate 3276Kbit overhead 27 ceil 32768Kbit linklayer ethernet burst 3198b/1 mpu 0b overhead 0b cburst 39985b/1 mpu 0b overhead 0b level 0
class htb 1:14 parent 1:1 leaf 14: prio 4 quantum 40950 rate 3276Kbit overhead 27 ceil 32768Kbit linklayer ethernet burst 3198b/1 mpu 0b overhead 0b cburst 39985b/1 mpu 0b overhead 0b level 0
class htb 1:17 parent 1:1 leaf 17: prio 7 quantum 20475 rate 1638Kbit overhead 27 ceil 32768Kbit linklayer ethernet burst 3199b/1 mpu 0b overhead 0b cburst 39985b/1 mpu 0b overhead 0b level 0
class htb 1:16 parent 1:1 leaf 16: prio 6 quantum 20475 rate 1638Kbit overhead 27 ceil 32768Kbit linklayer ethernet burst 3198b/1 mpu 0b overhead 0b cburst 39985b/1 mpu 0b overhead 0b level 0
realtc class change dev eth4 parent 1:1 classid 1:17 htb overhead 19 linklayer ethernet prio 7 rate 1638Kbit ceil 32768Kbit burst 3199b cburst 39985b
--->>

Code:
[email protected]:/tmp/home/root# realtc class change dev eth4 parent 1:1 classid 1:17 htb overhead 19 linklayer ethernet pri
o 7 rate 1638Kbit ceil 32768Kbit burst 3199b cburst 39985b
[email protected]:/tmp/home/root#
 

Vexira

Part of the Furniture
Okayyyy - so I've turned off QOS and ran the following speed tests, what would you suggest I put as the numbers for manual bandwith? (current config set picture provided below). These tests were performed with 'some' internet usage occurring but not a completely dead test (which I thought we had to run to configure the previous numbers).
> What I mean by completely dead = when network traffic was very low. below numbers are normal usage (just web browsing etc occurring)

* PS if I know the device that is causing lag should I mark it as LOWEST in bandwidth monitor screen tag or does that do nothing?


View attachment 24960
View attachment 24961
View attachment 24962
View attachment 24963
Use 95% of both values.
 

dave14305

Part of the Furniture
Version 0.9.6
  • NEW: Added experimental option to flush conntrack table after applying iptables rules (enable with flexqos flushct or disable with flexqos noflushct)
  • NEW: Added reset option to Tracked Connections filters
  • CHANGED: Don't allow iptables rules that only contain a Mark (these should be AppDB rules)
  • CHANGED: Converted Download/Upload rates in pie chart table from Kibibytes to Kilobits
  • CHANGED: Improve detection of WAN interface used for tc commands
  • CHANGED: Changed the way we detect if FlexQoS rules have been applied yet
  • FIXED: Coloring of Untracked traffic if Untracked AppDB rule deleted
  • FIXED: AppDB new rule classes were overridden by the default class for the app due to logic bug
Bash:
sh /jffs/addons/flexqos/flexqos.sh update
 

dave14305

Part of the Furniture
What do you see if you run: tc qdisc ls | grep "htb.*root"
--->>

Code:
qdisc htb 1: dev eth4 root refcnt 2 r2q 10 default 0 direct_packets_stat 511 direct_qlen 1000
qdisc htb 1: dev br0 root refcnt 2 r2q 10 default 0 direct_packets_stat 87904 direct_qlen 2
tc -d class show dev eth4 | grep "parent 1:1 "
--->>

Code:
class htb 1:11 parent 1:1 leaf 11: prio 1 quantum 81912 rate 6553Kbit overhead 27 ceil 32768Kbit linklayer ethernet burst 7997b/1 mpu 0b overhead 0b cburst 39985b/1 mpu 0b overhead 0b level 0
class htb 1:10 parent 1:1 leaf 10: prio 0 quantum 20475 rate 1638Kbit overhead 27 ceil 32768Kbit linklayer ethernet burst 3198b/1 mpu 0b overhead 0b cburst 39985b/1 mpu 0b overhead 0b level 0
class htb 1:13 parent 1:1 leaf 13: prio 3 quantum 122875 rate 9830Kbit overhead 27 ceil 32768Kbit linklayer ethernet burst 3197b/1 mpu 0b overhead 0b cburst 39985b/1 mpu 0b overhead 0b level 0
class htb 1:12 parent 1:1 leaf 12: prio 2 quantum 61437 rate 4915Kbit overhead 27 ceil 32768Kbit linklayer ethernet burst 3197b/1 mpu 0b overhead 0b cburst 39985b/1 mpu 0b overhead 0b level 0
class htb 1:15 parent 1:1 leaf 15: prio 5 quantum 40950 rate 3276Kbit overhead 27 ceil 32768Kbit linklayer ethernet burst 3198b/1 mpu 0b overhead 0b cburst 39985b/1 mpu 0b overhead 0b level 0
class htb 1:14 parent 1:1 leaf 14: prio 4 quantum 40950 rate 3276Kbit overhead 27 ceil 32768Kbit linklayer ethernet burst 3198b/1 mpu 0b overhead 0b cburst 39985b/1 mpu 0b overhead 0b level 0
class htb 1:17 parent 1:1 leaf 17: prio 7 quantum 20475 rate 1638Kbit overhead 27 ceil 32768Kbit linklayer ethernet burst 3199b/1 mpu 0b overhead 0b cburst 39985b/1 mpu 0b overhead 0b level 0
class htb 1:16 parent 1:1 leaf 16: prio 6 quantum 20475 rate 1638Kbit overhead 27 ceil 32768Kbit linklayer ethernet burst 3198b/1 mpu 0b overhead 0b cburst 39985b/1 mpu 0b overhead 0b level 0
realtc class change dev eth4 parent 1:1 classid 1:17 htb overhead 19 linklayer ethernet prio 7 rate 1638Kbit ceil 32768Kbit burst 3199b cburst 39985b
--->>

Code:
[email protected]:/tmp/home/root# realtc class change dev eth4 parent 1:1 classid 1:17 htb overhead 19 linklayer ethernet pri
o 7 rate 1638Kbit ceil 32768Kbit burst 3199b cburst 39985b
[email protected]:/tmp/home/root#
Unfortunately, this doesn't have any surprising information, so I suspect it's a timing issue when qos has restarted.
 

dave14305

Part of the Furniture
@dave14305

Please throw some light on this change?
The webui will no longer let you create an iptables rule that consists only of a Mark and a Class. It’s the equivalent of an AppDB rule and should be created there instead. Do you see a problem with this restriction?
 

immi803

Regular Contributor
The webui will no longer let you create an iptables rule that consists only of a Mark and a Class. It’s the equivalent of an AppDB rule and should be created there instead. Do you see a problem with this restriction?
Yes, it's not a good idea for gaming consoles, different games behave differently, most use ports other than 80 & 443 , but not all, and most of them with mark "000000" , so I've set my statically set console ip with mark "000000" only and categorized as gaming, so console untracked mark go to first prioritized gaming section, games with non-untracked marks already going to gaming head, found this the best way to optimize gaming console traffic
 

dave14305

Part of the Furniture
Yes, it's not a good idea for gaming consoles, different games behave differently, most use ports other than 80 & 443 , but not all, and most of them with mark "000000" , so I've set my statically set console ip with mark "000000" only and categorized as gaming, so console untracked mark go to first prioritized gaming section, games with non-untracked marks already going to gaming head, found this the best way to optimize gaming console traffic
If you have an IP defined in the rule, it is allowed. If you tried to create an iptables rule with blank local IP, blank local port, blank remote IP, blank remote port, and Mark = 000000 it would be rejected.
 

immi803

Regular Contributor
@dave14305
Here's log related to ppp0 or eth0
Jul 29 05:00:20 custom_script: Running /jffs/scripts/firewall-start (args: ppp0)
Jul 29 05:00:21 FlexQoS: /jffs/addons/flexqos/flexqos.sh (pid=3330) called with 2 args: -start ppp0
Jul 29 05:00:22 FlexQoS: [*] Killing Delayed Process (pid=1215)
Jul 29 05:00:23 FlexQoS: [*] 1215 thunder 1560 S sh /jffs/addons/flexqos/flexqos.sh -start ppp0
Jul 29 05:00:27 FlexQoS: Applying iptables static rules
Jul 29 05:00:28 FlexQoS: Applying iptables custom rules
Jul 29 05:00:33 FlexQoS: Applying AppDB static rules
Jul 29 05:00:33 FlexQoS: Cannot find device "ppp0,eth0"
Jul 29 05:00:34 FlexQoS: Applying AppDB custom rules and TC rates
Jul 29 05:00:34 FlexQoS: Cannot find device "ppp0,eth0"
Jul 29 05:00:34 FlexQoS: Cannot find device "ppp0,eth0"
Jul 29 05:00:34 FlexQoS: Cannot find device "ppp0,eth0"
Jul 29 05:00:34 FlexQoS: Cannot find device "ppp0,eth0"
Jul 29 05:00:34 FlexQoS: Cannot find device "ppp0,eth0"
Jul 29 05:00:34 FlexQoS: Cannot find device "ppp0,eth0"
Jul 29 05:01:18 Skynet: [*] WebUI Integration Requires Logging To Be Enabled
Jul 29 05:01:23 Skynet: [#] 323603 IPs (+0) -- 1569 Ranges Banned (+0) || 1 Inbound -- 0 Outbound Connections Blocked! [start] [115s]
Jul 29 00:01:46 transmission-daemon[2264]: Port Forwarding Starting (port-forwarding.c:107)
Jul 29 05:05:00 FlexQoS: /jffs/addons/flexqos/flexqos.sh (pid=6620) called with 1 args: -check
Jul 29 05:05:01 FlexQoS: No TC modifications necessary

Dirty flashed over 0.9.5
 

Latest threads

Sign Up For SNBForums Daily Digest

Get an update of what's new every day delivered to your mailbox. Sign up here!
Top