What's new

FlexQoS FlexQoS 1.0 - Flexible QoS Enhancement Script for Adaptive QoS

  • SNBForums Code of Conduct

    SNBForums is a community for everyone, no matter what their level of experience.

    Please be tolerant and patient of others, especially newcomers. We are all here to share and learn!

    The rules are simple: Be patient, be nice, be helpful or be gone!

ASUSWRT-Merlin RT-AX88U 384.19_alpha1-g9ca4b67bb0 Wed Jul 1 22:58:11 UTC 2020
vexira@RT-AX88U-C528:/tmp/home/root# nvram get bwdpi_app_rulelist
9,20<8<0,5,6,15,17<7,10,11,21,23<13,24<4<1,3,14<4,13<customize
vexira@RT-AX88U-C528:/tmp/home/root#

528fymd204c4iw46g.jpg
Good, in the sense that I haven’t made it any worse.
 
For anyone having issues on AX routers, can you share the output of this command? I’m merely curious.
Code:
realtc qdisc ls | grep root
 
here :
qdisc htb 1: dev eth0 root refcnt 2 r2q 10 default 0 direct_packets_stat 0 direct_qlen 1000
qdisc pfifo_fast 0: dev eth1 root refcnt 2 bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
qdisc pfifo_fast 0: dev eth2 root refcnt 2 bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
qdisc pfifo_fast 0: dev eth3 root refcnt 2 bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
qdisc pfifo_fast 0: dev eth4 root refcnt 2 bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
qdisc pfifo_fast 0: dev eth5 root refcnt 2 bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
qdisc pfifo_fast 0: dev spu_us_dummy root refcnt 2 bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
qdisc pfifo_fast 0: dev spu_ds_dummy root refcnt 2 bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
qdisc pfifo_fast 0: dev eth6 root refcnt 2 bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
qdisc pfifo_fast 0: dev eth7 root refcnt 2 bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
qdisc htb 1: dev br0 root refcnt 2 r2q 10 default 0 direct_packets_stat 8 direct_qlen 2
 
RT-AX88U (QoS not used/enabled currently).

Code:
realtc qdisc ls | grep root
qdisc pfifo_fast 0: dev eth0 root refcnt 2 bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
qdisc pfifo_fast 0: dev eth1 root refcnt 2 bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
qdisc pfifo_fast 0: dev eth2 root refcnt 2 bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
qdisc pfifo_fast 0: dev eth3 root refcnt 2 bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
qdisc pfifo_fast 0: dev eth4 root refcnt 2 bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
qdisc pfifo_fast 0: dev eth5 root refcnt 2 bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
qdisc pfifo_fast 0: dev spu_us_dummy root refcnt 2 bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
qdisc pfifo_fast 0: dev spu_ds_dummy root refcnt 2 bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
qdisc pfifo_fast 0: dev eth6 root refcnt 2 bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
qdisc pfifo_fast 0: dev eth7 root refcnt 2 bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
qdisc pfifo_fast 0: dev tun21 root refcnt 2 bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
qdisc pfifo_fast 0: dev tun22 root refcnt 2 bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
qdisc pfifo_fast 0: dev wl0.1 root refcnt 2 bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
qdisc pfifo_fast 0: dev wl0.2 root refcnt 2 bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
qdisc pfifo_fast 0: dev wl0.3 root refcnt 2 bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
qdisc pfifo_fast 0: dev wl1.1 root refcnt 2 bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
qdisc pfifo_fast 0: dev wl1.2 root refcnt 2 bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
qdisc pfifo_fast 0: dev wds0.0.1 root refcnt 2 bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
qdisc pfifo_fast 0: dev wds1.0.1 root refcnt 2 bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
 
@dave14305
Thoroughly enjoying it, is there any chance near to fix rule mention in flexqos GUI, as rule 1 or gaming rule applied showing untracked and i know you're well aware of this issue
Thanks
 
@dave14305
Thoroughly enjoying it, is there any chance near to fix rule mention in flexqos GUI, as rule 1 or gaming rule applied showing untracked and i know you're well aware of this issue
Thanks
My trouble with being able to implement custom rule naming is where to store the custom name without sacrificing space for the actual rules. Since I now use the Asus tableApi to manage the rules, I could easily add a field for a description in the pop up window, but fitting that extra column within the standard width of the Asus window is troublesome to me. I’m not very good with designing UI, so I’m waiting for someone else’s good idea to copy. In theory, going wider than the standard 750px isn’t bad, since the browser window is so wide, but it looks sloppy in the context of Asus’ UI style.

Ideas welcome.
 
For anyone having issues on AX routers, can you share the output of this command? I’m merely curious.
Code:
realtc qdisc ls | grep root
On an AX3000 (AX58U)
Code:
realtc qdisc ls | grep root
qdisc pfifo_fast 0: dev eth0 root refcnt 2 bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
qdisc pfifo_fast 0: dev eth1 root refcnt 2 bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
qdisc pfifo_fast 0: dev eth2 root refcnt 2 bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
qdisc pfifo_fast 0: dev eth3 root refcnt 2 bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
qdisc htb 1: dev eth4 root refcnt 2 r2q 10 default 0 direct_packets_stat 3121974 direct_qlen 1000
qdisc pfifo_fast 0: dev eth5 root refcnt 2 bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
qdisc pfifo_fast 0: dev eth6 root refcnt 2 bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
qdisc htb 1: dev br0 root refcnt 2 r2q 10 default 0 direct_packets_stat 1430699 direct_qlen 2
qdisc pfifo_fast 0: dev tun21 root refcnt 2 bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
Looking forward to https://github.com/dave14305/FlexQoS/issues/11
 
On an AX3000 (AX58U)
Code:
realtc qdisc ls | grep root
qdisc pfifo_fast 0: dev eth0 root refcnt 2 bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
qdisc pfifo_fast 0: dev eth1 root refcnt 2 bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
qdisc pfifo_fast 0: dev eth2 root refcnt 2 bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
qdisc pfifo_fast 0: dev eth3 root refcnt 2 bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
qdisc htb 1: dev eth4 root refcnt 2 r2q 10 default 0 direct_packets_stat 3121974 direct_qlen 1000
qdisc pfifo_fast 0: dev eth5 root refcnt 2 bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
qdisc pfifo_fast 0: dev eth6 root refcnt 2 bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
qdisc htb 1: dev br0 root refcnt 2 r2q 10 default 0 direct_packets_stat 1430699 direct_qlen 2
qdisc pfifo_fast 0: dev tun21 root refcnt 2 bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
Looking forward to https://github.com/dave14305/FlexQoS/issues/11
I think I have a way to do this without hardcoding anymore. Will work it out tomorrow. Thanks for the output!
 
I think I have a way to do this without hardcoding anymore. Will work it out tomorrow. Thanks for the output!
Thanks! Can you just replace all instances of "eth0" with your "${wan}" variable, or is there more at play?
All 15 instances in the script relate to tc and no other command.
Code:
$ grep -c eth0 flexqos.sh && grep -c tc.*eth0 flexqos.sh
15
15
$ sed -i 's/eth0/\$\{wan\}/' flexqos.sh
 
@dave14305
Out of 10 times, 2 occurrences that flexqos check applies back settings, means it was not applied previously and that is on slower devices like ac68u
Is there any idea for recheck if tc is applied well after 5/10 minutes like persistence check at 3:30 AM?
 
@dave14305 is learn from home meant to be game transfer under flex charts?
Yes, Learn-From-Home is redundant since Trend/Asus left the Learn-From-Home applications in their original categories. So I left Learn-From-Home to be repurposed as Game Downloads, in case Game Downloads are used by people.
Thanks! Can you just replace all instances of "eth0" with your "${wan}" variable, or is there more at play?
All 15 instances in the script relate to tc and no other command.
Code:
$ grep -c eth0 flexqos.sh && grep -c tc.*eth0 flexqos.sh
15
15
$ sed -i 's/eth0/\$\{wan\}/' flexqos.sh
I had done that at one point in development but then read this post from FreshJR and I didn’t fully understand it, but it made me revert my change.
This is because eth0 in TC is not related to eth0 in iptables. I have no idea why the two references don’t line up and where in the routing structure this disconnect is present.
But I think I can get tc to tell me which interfaces it has qdisc defined on and use that info. The script sometimes runs outside of firewall-start which passes the WAN iface name. In the meantime, your idea would work as a temporary measure if your WAN iface name is really eth4 in the rest of the router’s functions (nvram get wan_ifnames).
@dave14305
Out of 10 times, 2 occurrences that flexqos check applies back settings, means it was not applied previously and that is on slower devices like ac68u
Is there any idea for recheck if tc is applied well after 5/10 minutes like persistence check at 3:30 AM?
Yes, I’m thinking that I need to put a delayed cronjob to check 1 and 5 minutes after start.
 
Last edited:
Yes, Learn-From-Home is redundant since Trend/Asus left the Learn-From-Home applications in their original categories. So I left Learn-From-Home to be repurposed as Game Downloads, in case Game Downloads are used by people.

I had done that at one point in development but then read this post from FreshJR and I didn’t fully understand it, but it made me revert my change.

But I think I can get tc to tell me which interfaces it has qdisc defined on and use that info. Because the script sometimes run outside of firewall-start which passes the WAN iface name. In the meantime, your idea would work as a temporary measure if your WAN iface name is really eth4 in the rest of the router’s functions (nvram get wan_ifnames).

Yes, I’m thinking that I need to put a delayed cronjob to check 1 and 5 minutes after start.
Ahh that's a bit silly of Asus not to fix that.
 
Ahh that's a bit silly of Asus not to fix that.

It's not a bug, it's just a bad design. Those app categories (Web Services, and I forgot the other one) can contain traffic that is not related to Learn-From-Home, which in the end messes up proper classification for a lot of web traffic NOT related to eLearning. I advise people to leave that category at the bottom to avoid messing up other traffic types (or, it can be re-purposed by FlexQoS, at least until Asus/Trend Micro decide to more properly implement eLearning classification).

And treat Work-from-Home as you would treat VoIP and Messenging - they just renamed the category. Again, some stuff totally unrelated to working from home (like social media IMs) will end up under that category.
 
Version 0.9.0
  • Remove custom table.js and tableValidator.js after learning how to customize the tableValidator objects within my own script
  • Added wan interface detection for tc commands to account for routers that do not use eth0 (e.g. AX58U)
  • Added cronjob 5 minutes after startup to ensure nothing reset QoS tc environment after script execution
  • Added Reset to defaults option to iptables and AppDB rules tables in webUI
Code:
sh /jffs/addons/flexqos/flexqos.sh update
 

Sign Up For SNBForums Daily Digest

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