FlexQoS FlexQoS - 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.

eastavin

Senior Member
I think you have a bug in the appDB section for editing entries. when you click the pencil.. rather then editing a field it just deletes the entire row. This is the same as the minus sign which I figure must be actually for deleting the row. Hope I helped.
 

dave14305

Part of the Furniture
I think you have a bug in the appDB section for editing entries. when you click the pencil.. rather then editing a field it just deletes the entire row. This is the same as the minus sign which I figure must be actually for deleting the row. Hope I helped.
It should be putting the values in the top edit row to be edited. Doesn't work the same way as the iptables section, unfortunately.
 

chris.at

Regular Contributor
Should this eventually be changed to work the same way as the iptables section? Because as you told us that the last match wins, it depends on the sequence and this gets changed because after editing it's appended at the bottom. Or am I getting it wrong with the sequence dependency?
 

dave14305

Part of the Furniture
Should this eventually be changed to work the same way as the iptables section? Because as you told us that the last match wins, it depends on the sequence and this gets changed because after editing it's appended at the bottom. Or am I getting it wrong with the sequence dependency?
For the AppDB rules, the sequence only affects the interpretation within the Tracked Connections table. Specific rules will always take precedence over wildcard rules at the tc filter layer. To support that in the webui, I force the wildcard rules to the bottom of the list so I can stop checking rules once I find the first match.
 

S.claus

Regular Contributor
Don't use develop right now. I see there's a bug in the while loop. It's infinite. Kill the script or reboot the router.
Everything is working again :) thank you
 

rsur2000

New Around Here
Does regular Adaptive QoS work in Dual WAN Load Balance mode?
Hi, to be honest, I'm totally don't know if the adaptive qos would work in regular adaptive qos.

I use to use MikroTik, and there I can configure queue to manage the bandwidth in load balance mode, but in Asus router, I have no experience.

Sorry...
 

Sinner

Senior Member
If not sooner, when 386.1 gets released I will remove support within FlexQoS to import and convert old FreshJR_QOS nvram settings to the new FlexQoS/Merlin API format. If FreshJR_QOS diehards haven't converted by now, they'll have to start from scratch (looking at you @Sinner ;)).

It's time to shed the legacy baggage that adds complexity to the code. And by baggage I only mean the code I wrote to convert the old rules, not the core gold of FreshJR's genius. I still marvel sometimes how he was able to write in javascript a function that interprets and applies iptables syntax to a list of connections. That code logic is still mostly untouched and remains the secret sauce of the webui.

I also need to rationalize (a popular IT buzzword these days) the multiple update-related functions that have made their way into the script lately and consolidate them.
ROFL yeh its true...:) Im on the old latest prior to the stats web gui. Cleaned it up and its nice n basic n jus works. I been watchin yur progress tho donchu worry, I'm just not up for beta testing this for life if that makes any sense
 

rlj2

Occasional Visitor
Id really like to try out the new stock firmware for Aimesh 2.0, it has some features like bind that would help me alot. BUT going without flexqos.. ugg. I believe its going to be awhile before Merlin will do these changes. Is there anyway from cli I can use the flex rules on stock. I understand there would be no gui setup. Dave, my setup is similiar to how you setup yours I believe. I have 2 shields that are just set as "streaming" no matter what they are doing. And a PS4 that is set as gaming nomatter what it does.
 

L&LD

Part of the Furniture
Forget stock firmware. Why don't you try the RMerlin Alpha 3 builds instead for your router? AiMesh 2.0 included.

 

rlj2

Occasional Visitor
Forget stock firmware. Why don't you try the RMerlin Alpha 3 builds instead for your router? AiMesh 2.0 included.

Ty, I didnt think he was working on the new builds yet per a message he had in asuswrt.
Edit: Seems to be working pretty good. The new aimesh stuff is cool if it keeps working. sucks were losing fq_codel. But my bufferbloat tests seem still on par. Just with codel before it was pretty bad.
 
Last edited:

BigTim

New Around Here
Just updated my RT-AX58U to the just released 386.1 alpha3. Uninstalled Flex and reinstalled. I'm aware of the fq_codel no longer being supported but is it normal to now not see the pie graphs on the FlexQoS tab? Read back through the last few pages and have not seen anything mentioned on it.
 

dave14305

Part of the Furniture
Just updated my RT-AX58U to the just released 386.1 alpha3. Uninstalled Flex and reinstalled. I'm aware of the fq_codel no longer being supported but is it normal to now not see the pie graphs on the FlexQoS tab? Read back through the last few pages and have not seen anything mentioned on it.
What happens on Merlin’s Classification page? Same thing or not? I haven’t tested 386.1 at all, so no idea yet how it will behave. AX58 has special handling in the firmware because it uses eth4 instead of eth0 for stats collection.
 

BigTim

New Around Here
Doesn't draw.

See log:
Nov 14 23:19:00 FlexQoS: /jffs/addons/flexqos/flexqos.sh (pid=1794) called with 1 args: -check
Nov 14 23:19:01 FlexQoS: TC Modification Delayed Start
Nov 14 23:24:13 FlexQoS: TC Modification Delay reached maximum 300 seconds. Aborting startup!
Nov 14 23:24:13 FlexQoS: TC Modification delayed for 300 seconds
Nov 14 23:24:13 FlexQoS: Scheduled Persistence Check -> Reapplying Changes
Nov 14 23:24:14 FlexQoS: Applying AppDB rules and TC rates
Nov 14 23:24:14 FlexQoS: ERROR! Check /tmp/flexqos_tcrules.log
Nov 14 23:29:00 FlexQoS: /jffs/addons/flexqos/flexqos.sh (pid=3542) called with 1 args: -check
Nov 14 23:29:01 FlexQoS: TC Modification Delayed Start


I can pull the tcrules.log if you tell me what to put into putty to pull it.
 

dave14305

Part of the Furniture
Doesn't draw.

See log:
Nov 14 23:19:00 FlexQoS: /jffs/addons/flexqos/flexqos.sh (pid=1794) called with 1 args: -check
Nov 14 23:19:01 FlexQoS: TC Modification Delayed Start
Nov 14 23:24:13 FlexQoS: TC Modification Delay reached maximum 300 seconds. Aborting startup!
Nov 14 23:24:13 FlexQoS: TC Modification delayed for 300 seconds
Nov 14 23:24:13 FlexQoS: Scheduled Persistence Check -> Reapplying Changes
Nov 14 23:24:14 FlexQoS: Applying AppDB rules and TC rates
Nov 14 23:24:14 FlexQoS: ERROR! Check /tmp/flexqos_tcrules.log
Nov 14 23:29:00 FlexQoS: /jffs/addons/flexqos/flexqos.sh (pid=3542) called with 1 args: -check
Nov 14 23:29:01 FlexQoS: TC Modification Delayed Start


I can pull the tcrules.log if you tell me what to put into putty to pull it.
Your QoS seems broken since it also affects Merlin. How is your QoS page setup? Run cat /tmp/flexqos_tcrules.log and then flexqos debug in PuTTY.
 

BigTim

New Around Here
cat command throws an error.

Debug does work:
[email protected]:/tmp# flexqos debug
Code:
FlexQoS v1.0.5 released 2020-11-01

Debug:

Log date: 2020-11-14 23:48:27-0500
Router Model: RT-AX58U
Firmware Ver: 386.1_alpha3-g874b3ed69d
sed: /tmp/bwdpi/qosd.conf: No such file or directory
tc WAN iface: eth4
Undf Prio: -1
Undf FlowID:
Down Band: 371712
Up Band  : 30976
***********
Net Control:
Work-From-Home:
Gaming:
Others:
Web Surfing:
Streaming:
File Downloads:
Game Downloads:
***********
Downrates: 0, 0, 0, 0, 0, 0, 0, 0
Downceils: 0, 0, 0, 0, 0, 0, 0, 0
Downbursts: 3200, 3200, 3200, 3200, 3200, 3200, 3200, 3200
DownCbursts: 3200, 3200, 3200, 3200, 3200, 3200, 3200, 3200
DownQuantums: 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514
***********
Uprates: 0, 0, 0, 0, 0, 0, 0, 0
Upceils: 0, 0, 0, 0, 0, 0, 0, 0
Upbursts: 3200, 3200, 3200, 3200, 3200, 3200, 3200, 3200
UpCbursts: 3200, 3200, 3200, 3200, 3200, 3200, 3200, 3200
UpQuantums: 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514
***********
iptables settings: <>>udp>>500,4500>>3<>>udp>16384:16415>>>3<>>tcp>>119,563>>5<>>tcp>>80,443>08****>7
-o br0 -p udp -m multiport --sports 500,4500 -j MARK --set-mark 0x8006ffff/0x3fffff
-o eth4 -p udp -m multiport --dports 500,4500 -j MARK --set-mark 0x4006ffff/0x3fffff
-o br0 -p udp --dport 16384:16415 -j MARK --set-mark 0x8006ffff/0x3fffff
-o eth4 -p udp --sport 16384:16415 -j MARK --set-mark 0x4006ffff/0x3fffff
-o br0 -p tcp -m multiport --sports 119,563 -j MARK --set-mark 0x8003ffff/0x3fffff
-o eth4 -p tcp -m multiport --dports 119,563 -j MARK --set-mark 0x4003ffff/0x3fffff
-o br0 -p tcp -m multiport --sports 80,443 -m mark --mark 0x80080000/0xc03f0000 -j MARK --set-mark 0x803fffff/0x3fffff
-o eth4 -p tcp -m multiport --dports 80,443 -m mark --mark 0x40080000/0xc03f0000 -j MARK --set-mark 0x403fffff/0x3fffff
***********
appdb rules: <000000>6<00006B>6<0D0007>5<0D0086>5<0D00A0>5<12003F>4<13****>4<14****>4<1A****>5
filter add dev br0 protocol all prio -1 u32 match mark 0x80000000 0xc000ffff flowid
filter add dev eth4 protocol all prio -1 u32 match mark 0x40000000 0xc000ffff flowid
filter add dev br0 protocol all prio -1 u32 match mark 0x8000006B 0xc03fffff flowid
filter add dev eth4 protocol all prio -1 u32 match mark 0x4000006B 0xc03fffff flowid
filter add dev br0 protocol all prio -1 u32 match mark 0x800D0007 0xc03fffff flowid
filter add dev eth4 protocol all prio -1 u32 match mark 0x400D0007 0xc03fffff flowid
filter add dev br0 protocol all prio -1 u32 match mark 0x800D0086 0xc03fffff flowid
filter add dev eth4 protocol all prio -1 u32 match mark 0x400D0086 0xc03fffff flowid
filter add dev br0 protocol all prio -1 u32 match mark 0x800D00A0 0xc03fffff flowid
filter add dev eth4 protocol all prio -1 u32 match mark 0x400D00A0 0xc03fffff flowid
filter add dev br0 protocol all prio -1 u32 match mark 0x8012003F 0xc03fffff flowid
filter add dev eth4 protocol all prio -1 u32 match mark 0x4012003F 0xc03fffff flowid
filter add dev br0 protocol all prio -1 u32 match mark 0x80130000 0xc03f0000 flowid
filter add dev eth4 protocol all prio -1 u32 match mark 0x40130000 0xc03f0000 flowid
filter add dev br0 protocol all prio -1 u32 match mark 0x80140000 0xc03f0000 flowid
filter add dev eth4 protocol all prio -1 u32 match mark 0x40140000 0xc03f0000 flowid
filter add dev br0 protocol all prio -1 u32 match mark 0x801A0000 0xc03f0000 flowid
filter add dev eth4 protocol all prio -1 u32 match mark 0x401A0000 0xc03f0000 flowid
 

Similar threads

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