FlexQoS FlexQoS 1.0 - Flexible QoS Enhancement Script for Adaptive QoS

  • ATTENTION! You'll notice a Prefix dropdown when you create a thread. If your post applies to one of the topics listed, please use that Prefix for your post. When browsing the thread list you can use the Prefix to filter the view.
  • ATTENTION! As of November 1, 2020, you are not able to reply to threads 6 months after the thread is opened if there are more than 500 posts in the thread.
    Threads will not be locked, so posts may still be edited by their authors.
    Just start a new thread on the topic to post if you get an error message when trying to reply to a thread.

dave14305

Part of the Furniture
it does after a signature update which i believe happen at 2am. it reruns the script because aft a sig update its disabled
FlexQoS will trigger immediately after the signature update (restart_wrs event), unlike FreshJR_QOS which relied on the 3:30 AM scheduled check.
 

Kanji-San

Regular Contributor
Of course you can always comment out these 2 lines from /jffs/scripts/service-event-end:
Code:
if [ "$1" = "restart" ] && [ "$2" = "wrs" ]; then { sh /jffs/addons/flexqos/flexqos.sh -check & } ; fi # FlexQoS Addition
if [ "$1" = "start" ] && [ "$2" = "sig_check" ]; then { sh /jffs/addons/flexqos/flexqos.sh -check & } ; fi # FlexQoS Addition
You would only need to repeat this after a FlexQoS version update.
Thanks, Dave, I'll try this.
 

dave14305

Part of the Furniture
If any 386.1 alpha 2 users with an AX router are also running FlexQoS (or even if you're using stock Adaptive QoS), please run this test for me to see if the above-mentioned tc filter issue is resolved on the 386 branch.
Bash:
tc filter show dev br0 | grep -c flowid
service restart_qos
sleep 60
tc filter show dev br0 | grep -c flowid
The counts from the first command to the last command should not be doubling each time you do this. That is the test. Doubling = bad.

If you're actually running FlexQoS, reinstate the custom rules afterward by running flexqos check

Thanking you in advance.
 

visortgw

Senior Member
If any 386.1 alpha 2 users with an AX router are also running FlexQoS (or even if you're using stock Adaptive QoS), please run this test for me to see if the above-mentioned tc filter issue is resolved on the 386 branch.
Bash:
tc filter show dev br0 | grep -c flowid
service restart_qos
sleep 60
tc filter show dev br0 | grep -c flowid
The counts from the first command to the last command should not be doubling each time you do this. That is the test. Doubling = bad.

If you're actually running FlexQoS, reinstate the custom rules afterward by running flexqos check

Thanking you in advance.
RT-AX88U, Merlin 386 Alpha 2
Code:
[email protected]:/jffs/scripts# tc filter show dev br0 | grep -c flowid
56
[email protected]:/jffs/scripts# service restart_qos

Done.
[email protected]:/jffs/scripts# sleep 60
[email protected]:/jffs/scripts# tc filter show dev br0 | grep -c flowid
41
[email protected]:/jffs/scripts# tc filter show dev br0 | grep -c flowid
41
[email protected]:/jffs/scripts# service restart_qos

Done.
[email protected]:/jffs/scripts# sleep 60

[email protected]:/jffs/scripts# tc filter show dev br0 | grep -c flowid
41
 

Kanji-San

Regular Contributor
RT-AX88U, Merlin 386 Alpha 2
Code:
[email protected]:/jffs/scripts# tc filter show dev br0 | grep -c flowid
56
[email protected]:/jffs/scripts# service restart_qos

Done.
[email protected]:/jffs/scripts# sleep 60
[email protected]:/jffs/scripts# tc filter show dev br0 | grep -c flowid
41
[email protected]:/jffs/scripts# tc filter show dev br0 | grep -c flowid
41
[email protected]:/jffs/scripts# service restart_qos

Done.
[email protected]:/jffs/scripts# sleep 60

[email protected]:/jffs/scripts# tc filter show dev br0 | grep -c flowid
41
This is encouraging :)
Why does the count go down the first time?
 

L&LD

Part of the Furniture
@dave14305 I finally got around to trying FlexQoS properly on my RT-AX88U with 386.1 Alpha 2 installed (and stable for the last five days or so).

I ran the commands in post-1623 above and I got 54 and 40 after the restart. Is this significant?

I don't know what magic is happening here, but I am getting my full 1Gbps up/down speeds on my wired desktop with 2ms unloaded and 6ms loaded latency. Even if the router's built-in speed test is showing about 200Mbps slower for both up/down.

Page loading when browsing has been improved too, particularly on heavy pages like Lenovo.com (when configuring a laptop), but is even noticeable just logging into the router GUI too. Magnificent work here!

An observation: I guess the Customize button in the QoS tab isn't meant to be used now. It just resets itself to its defaults no matter how I adjust the priorities (and hit Save, of course).

A question I can't seem to search easily; can I reorder the priorities at all (via drag and drop)?

My preferred order would be:
  • Web Surfing
  • Video and Audio Streaming
  • Others
  • File Transfers
  • (all others at the bottom here)
  • Gaming last (always).
I know the interface is much more customizable than what I'm asking, but at the same time, it is daunting too. :)

No matter, the defaults are doing a great job of giving me an even smoother online experience along with all the other scripts I run too.

Thank you!
 

dave14305

Part of the Furniture
An observation: I guess the Customize button in the QoS tab isn't meant to be used now. It just resets itself to its defaults no matter how I adjust the priorities (and hit Save, of course).
Try setting one of the other pre-sets first (e.g. Web Surfing) and hitting Apply. Then try using Customize again.
 

L&LD

Part of the Furniture
Thanks for the quick response @dave14305, that worked!

What a great way to start the week! :)
 

NGI

Regular Contributor
@dave14305 I was looking at the Bandwidth utilization and I realized something strange so I would welcome your view on that. My understanding is that if you have a Minimum bandwidth of a high priority Class (e.g "Other" in the attached) set to X% a lower priority class (e.g. "Streaming" in the attached) should not be be able to utilize more than 100%-X% of the bandwidth as long as there is an active connection of "Other" Class but as you could see in the attached this is not the case. Streaming is using 79% of the bandwidth whilst "Other" Class has 30% Min reserved but only uses currently less than 30%. My understanding was that Streaming in the attached example shall not be able to use more that 70% of the bandwidth assuming there is nothing else active other than "Other" Class. Is that correct or does my understanding on how ASUS QoS works is not correct?

Many thanks in advance.
 

Attachments

dave14305

Part of the Furniture
@dave14305 I was looking at the Bandwidth utilization and I realized something strange so I would welcome your view on that. My understanding is that if you have a Minimum bandwidth of a high priority Class (e.g "Other" in the attached) set to X% a lower priority class (e.g. "Streaming" in the attached) should not be be able to utilize more than 100%-X% of the bandwidth as long as there is an active connection of "Other" Class but as you could see in the attached this is not the case. Streaming is using 79% of the bandwidth whilst "Other" Class has 30% Min reserved but only uses currently less than 30%. My understanding was that Streaming in the attached example shall not be able to use more that 70% of the bandwidth assuming there is nothing else active other than "Other" Class. Is that correct or does my understanding on how ASUS QoS works is not correct?

Many thanks in advance.
The way Hierarchical Token Bucket (HTB) works — this is the underlying qdisc that sets up the different classes — the minimum rate is guaranteed to a class if needed, but if not needed the remaining available bandwidth is available to lower priority classes up until they hit their maximum (or ceiling).

I think your belief was very prevalent around here, but I’m pretty sure it’s not correct based on my research into HTB as I worked on FlexQoS.
 

NGI

Regular Contributor
The way Hierarchical Token Bucket (HTB) works — this is the underlying qdisc that sets up the different classes — the minimum rate is guaranteed to a class if needed, but if not needed the remaining available bandwidth is available to lower priority classes up until they hit their maximum (or ceiling).

I think your belief was very prevalent around here, but I’m pretty sure it’s not correct based on my research into HTB as I worked on FlexQoS.
Many thanks for the prompt response and the clarification which makes perfect sense. My confusion is coming from how ASUS explained it in the Traditional QoS settings here: https://www.asus.com/uk/support/FAQ/1010951/
 

S.claus

Regular Contributor
@dave14305 I can't switch to the developer branch. I restarted my router and the flexqos tab disappeared so I reset the router completely and did the install again via AMTM. It shows the script is installed until I type in the command to switch to the dev branch then it returns -sh: flexqos : not found

I tried to uninstall it now with a message (FlexQos is not installed correctly. Please update or reinstall )
 

dave14305

Part of the Furniture
I tried to uninstall it now with a message (FlexQos is not installed correctly. Please update or reinstall )
This is a flaw in the logic during uninstall since the script should obviously no longer be installed correctly after an uninstall.

If you don’t have entware and you haven’t logged out since installing, the shortcut to FlexQoS won’t exist yet, so you can run sh /jffs/addons/flexqos/flexqos.sh develop

There’s nothing exciting in develop at the moment. :)
 

S.claus

Regular Contributor
This is a flaw in the logic during uninstall since the script should obviously no longer be installed correctly after an uninstall.

If you don’t have entware and you haven’t logged out since installing, the shortcut to FlexQoS won’t exist yet, so you can run sh /jffs/addons/flexqos/flexqos.sh develop

There’s nothing exciting in develop at the moment. :)
Dave14305.PNG

1. AMTM shows flexqos installed
2. No tab in GUI
3. All 4 CPU cores are spiking
 

S.claus

Regular Contributor
Run sh -x /jffs/addons/flexqos/flexqos.sh check and post the output, please.
Dave.PNG

Have this about 200x more times

Edit :I suspect that something got corrupted today because my UPnP doesn't function correctly either
 

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