FlexQoS FlexQoS 1.0 - Flexible QoS Enhancement Script for Adaptive QoS

  • SNBForums will be unavailable for about 2 hours TODAY 23 January starting around 2PM EDT for a server changeover.

    All accounts and posts will be preserved.
  • 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
Hi Dave,
I'm running FlexQOS 1.06 on an AC3200 FW 384.13_10. I setup streaming as the priority, but when Flex QOS is enabled, it kills media streaming, iPlayer, Netflix, Amazon, just hang.

I did a speed test with QOS on and off:
QOS ON:
DL 43.34 Mb/s
UL 10.05 Mb/s

QOS OFF:
DL 60.39 Mb/s
UL 9.53 Mb/s

Code:
FlexQoS v1.0.6 released 2020-11-20

Debug date: 2020-11-22 12:59:58-0500
Router Model: RT-AC3200
Firmware Ver: 384.13_10
WAN iface: eth0
tc WAN iface: eth0
Undf Prio: 2
Down Band: 0
Up Band  : 0
***********
Net Control: 1:10
Work-From-Home: 1:12
Gaming: 1:13
Others: 1:16
Web Surfing: 1:14
Streaming: 1:11
File Downloads: 1:15
Game Downloads: 1:17
***********
Custom rates disabled with Automatic Bandwidth mode!
***********
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 eth0 -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 eth0 -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 eth0 -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 eth0 -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 change dev br0 prio 2 protocol all handle 827::800 u32 flowid 1:16
filter change dev eth0 prio 2 protocol all handle 827::800 u32 flowid 1:16
filter add dev br0 protocol all prio 2 u32 match mark 0x8000006B 0xc03fffff flowid 1:16
filter add dev eth0 protocol all prio 2 u32 match mark 0x4000006B 0xc03fffff flowid 1:16
filter add dev br0 protocol all prio 15 u32 match mark 0x800D0007 0xc03fffff flowid 1:15
filter add dev eth0 protocol all prio 15 u32 match mark 0x400D0007 0xc03fffff flowid 1:15
filter add dev br0 protocol all prio 15 u32 match mark 0x800D0086 0xc03fffff flowid 1:15
filter add dev eth0 protocol all prio 15 u32 match mark 0x400D0086 0xc03fffff flowid 1:15
filter add dev br0 protocol all prio 15 u32 match mark 0x800D00A0 0xc03fffff flowid 1:15
filter add dev eth0 protocol all prio 15 u32 match mark 0x400D00A0 0xc03fffff flowid 1:15
filter add dev br0 protocol all prio 20 u32 match mark 0x8012003F 0xc03fffff flowid 1:14
filter add dev eth0 protocol all prio 20 u32 match mark 0x4012003F 0xc03fffff flowid 1:14
filter change dev br0 prio 22 protocol all handle 802::800 u32 flowid 1:14
filter change dev eth0 prio 22 protocol all handle 802::800 u32 flowid 1:14
filter change dev br0 prio 23 protocol all handle 804::800 u32 flowid 1:14
filter change dev eth0 prio 23 protocol all handle 804::800 u32 flowid 1:14
filter add dev br0 protocol all prio 2 u32 match mark 0x801A0000 0xc03f0000 flowid 1:15
filter add dev eth0 protocol all prio 2 u32 match mark 0x401A0000 0xc03f0000 flowid 1:15
What am I missing?
I tried Automatic Bandwidth once and it broke my Internet so I quickly turned it off. Try using Manual Bandwidth mode.
 

dave14305

Part of the Furniture
Thanks, I will try that. Also just confirming no compatibility issues being on 384.13_10?
None that I can remember. So you updated your debug output in the previous post. Does it work now?
 

abat119

Occasional Visitor
On my router, I’ve never seen any evidence that setting device priorities on that page actually changes anything in iptables or tc, so my opinion is that it is broken or not intended to work with Adaptive QoS, or I’m not using it right.
From my experience these priorities update only the User-defined QoS rules in the Traditional QoS but not in Adaptive QoS so they should make no difference in FlexQoS.
Thanks! That clears it up for me :)
 
  • Like
Reactions: NGI

dave14305

Part of the Furniture
No still same issue, I’ll have to do some more playing since I’m also using x3mRouting
Yes, perhaps a MARK conflict. I've never used it before since I don't have a VPN, but if you post the output of iptables -t mangle -S I might be able to understand (but not solve) the conflict.
 

abat119

Occasional Visitor
So if I want to specify a class for a specific device (like in traditional qos) I would add an iptables rule as follows?

"Device Name" -- "Local IP Address" -- (blank) -- BOTH -- (blank) -- (blank) -- (blank) -- Class

I'm assuming I can add multiple devices with various classes...

And from my understanding - I would want the most important device last on the list...

Is this correct?
 

dave14305

Part of the Furniture
So if I want to specify a class for a specific device (like in traditional qos) I would add an iptables rule as follows?

"Device Name" -- "Local IP Address" -- (blank) -- BOTH -- (blank) -- (blank) -- (blank) -- Class

I'm assuming I can add multiple devices with various classes...

And from my understanding - I would want the most important device last on the list...

Is this correct?
Yes, that is correct. You would want the device rules to be last to ensure no later rule could override your device rule. If you use one or more of these device rules, the order of them doesn't matter, as long as they all appear after the other rules.
 

abat119

Occasional Visitor
Yes, that is correct. You would want the device rules to be last to ensure no later rule could override your device rule. If you use one or more of these device rules, the order of them doesn't matter, as long as they all appear after the other rules.
Thanks again :)
 

Kingp1n

Very Senior Member
Any gamers here can recommend how you guys are setting your priority traffic w/Adaptive QoS settings (specifically for gaming only):



W-from-H
Others
Gaming
Web Surfing
Video/Audio Stream
File Transfer
L-from-H

or should Gaming or Others be in top:

Others
Gaming
W-from-H
Web Surfing
Video/Audio Stream
File Transfer
L-from-H

Or these should not matter too much? Any input is greatly appreciated!
 

JohnSmith

Regular Contributor
Any gamers here can recommend how you guys are setting your priority traffic w/Adaptive QoS settings (specifically for gaming only):



W-from-H
Others
Gaming
Web Surfing
Video/Audio Stream
File Transfer
L-from-H

or should Gaming or Others be in top:

Others
Gaming
W-from-H
Web Surfing
Video/Audio Stream
File Transfer
L-from-H

Or these should not matter too much? Any input is greatly appreciated!

Having up to 3 Gamers in the house, plus Netflix, Work from Home, etc. potentially going on at the same time, what works for my household is, (especially when large game downloads are happening):

Gaming
W-from-H
Others
Web Surfing
Video/Audio Stream
L-from-H
File Transfer
 

dave14305

Part of the Furniture
Having up to 3 Gamers in the house, plus Netflix, Work from Home, etc. potentially going on at the same time, what works for my household is, (especially when large game downloads are happening):

Gaming
W-from-H
Others
Web Surfing
Video/Audio Stream
L-from-H
File Transfer
This is very good for all the gamers to share their "best practices" with each other since I'm not into gaming personally.

I will say that during all the stay-at-home activity for work and school, I would go ballistic if someone's gaming was taking priority over my work conference call or Zoom class for school. :mad:
 

Kingp1n

Very Senior Member
This is very good for all the gamers to share their "best practices" with each other since I'm not into gaming personally.

I will say that during all the stay-at-home activity for work and school, I would go ballistic if someone's gaming was taking priority over my work conference call or Zoom class for school. :mad:
@dave14305, however, with Flex installed. Everything should run smoothly :)

I do use a VPN so I had to eventually upgrade from my AC68U to a AX88U when using both VPN and QoS enabled.
 

Prodeje79

Regular Contributor
In July or so, I got an 86u, got merlin installed and then lastly installed this! I'd like to get all updated and want to make sure I do it right.
I put things in the order as recommended at the time added the gaming rule for my gaming PC IP....
!80,443
000000
Gaming

Oh on the QoS I did the Adaptive, manual, fq_codel and did a little limitings of my DL/UL to eliminate buffer bloat....

Please help me update to newest version and make any new tweaks you recommend. My family was watching Disney+ last night and I noticed my gaming was a little impacted. I rana speed test and it was like 25 vs the usual 400 I see.

I am open to making gaming priority as I only play at night anyway......
Thanks for all of your hard work!

EDIT:
Sorry should have tried harder the first time!
I opened SSH, logged in, then typed flexqos -update
I was able to update fine!
I guess at this point I'd still love to hear any tweaks I can do to the QoS settings etc!
 
Last edited:

Kingp1n

Very Senior Member
In July or so, I got an 86u, got merlin installed and then lastly installed this! I'd like to get all updated and want to make sure I do it right.
I put things in the order as recommended at the time added the gaming rule for my gaming PC IP....
!80,443
000000
Gaming

Oh on the QoS I did the Adaptive, manual, fq_codel and did a little limitings of my DL/UL to eliminate buffer bloat....

Please help me update to newest version and make any new tweaks you recommend. My family was watching Disney+ last night and I noticed my gaming was a little impacted. I rana speed test and it was like 25 vs the usual 400 I see.

I am open to making gaming priority as I only play at night anyway......
THanks for all of your hard work!

EDIT:
Sorry should have tried harder the first time!
I oepned SSH, logged in, then typed flexqos -update
I was able to update fine!
I guess at this point I'd still love to hear any tweaks I can do to the QoS settings etc!
You may upgrade via amtm.

When you say your game was impacted by a litttle...are your gaming devices currently wired or connected via WIFI?
 

Prodeje79

Regular Contributor
You may upgrade via amtm.

When you say your game was impacted by a litttle...are your gaming devices currently wired or connected via WIFI?
Shoot I didn't use amtm and just did putty with flexqos -update
Hopefully that ok!
It's my wired gaming PC. Was getting some packet loss in rocket league and pubg. Plus the DSL speed test was crazy low! Never seen it that low, but I don't usually run speed test with disney+ 4k HDR+ stream going . Gaming is above streaming in the QoS thingy .

Note that our TV running disney + is also wired.
 

Sean Rhodes

Regular Contributor
Yes, perhaps a MARK conflict. I've never used it before since I don't have a VPN, but if you post the output of iptables -t mangle -S I might be able to understand (but not solve) the conflict.
Heres is what I get:

Code:
[email protected]:/tmp/home/root# iptables -t mangle -S
-P PREROUTING ACCEPT
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-P POSTROUTING ACCEPT
-N BWDPI_FILTER
-A PREROUTING -i tun13 -j MARK --set-xmark 0x1/0x7
-A PREROUTING -i eth0 -p udp -j BWDPI_FILTER
-A PREROUTING -i br0 -m set --match-set BBC_WEB3 dst -j MARK --set-xmark 0x4000/0x4000
-A FORWARD -p udp -m udp --dport 5060 -j MARK --set-xmark 0x1/0x7
-A FORWARD -p tcp -m tcp --dport 5060 -j MARK --set-xmark 0x1/0x7
-A FORWARD -s 10.0.1.0/24 -d 10.0.1.0/24 -o br0 -j MARK --set-xmark 0x1/0x7
-A OUTPUT -o eth0 -p udp -m multiport ! --dports 53,123 -j MARK --set-xmark 0x4003ffff/0xffffffff
-A OUTPUT -o eth0 -p tcp -m multiport ! --dports 53,123,853 -j MARK --set-xmark 0x4003ffff/0xffffffff
-A POSTROUTING -o br0 -p udp -m multiport --sports 500,4500 -j MARK --set-xmark 0x8006ffff/0x803fffff
-A POSTROUTING -o eth0 -p udp -m multiport --dports 500,4500 -j MARK --set-xmark 0x4006ffff/0x403fffff
-A POSTROUTING -o br0 -p udp -m udp --dport 16384:16415 -j MARK --set-xmark 0x8006ffff/0x803fffff
-A POSTROUTING -o eth0 -p udp -m udp --sport 16384:16415 -j MARK --set-xmark 0x4006ffff/0x403fffff
-A POSTROUTING -o br0 -p tcp -m multiport --sports 119,563 -j MARK --set-xmark 0x8003ffff/0x803fffff
-A POSTROUTING -o eth0 -p tcp -m multiport --dports 119,563 -j MARK --set-xmark 0x4003ffff/0x403fffff
-A POSTROUTING -o br0 -p tcp -m multiport --sports 80,443 -m mark --mark 0x80080000/0xc03f0000 -j MARK --set-xmark 0x803fffff/0x803fffff
-A POSTROUTING -o eth0 -p tcp -m multiport --dports 80,443 -m mark --mark 0x40080000/0xc03f0000 -j MARK --set-xmark 0x403fffff/0x403fffff
-A BWDPI_FILTER -i eth0 -p udp -m udp --sport 68 --dport 67 -j DROP
-A BWDPI_FILTER -i eth0 -p udp -m udp --sport 67 --dport 68 -j DROP
 

Milan

Senior Member
@dave14305 : is it really needed to restart QOS every 30 mins ?
It is really annoying to start radio stream again and again ...
 

NGI

Regular Contributor
One thing that you may need to check is if you have spdMerlin with AutoBW enabled and scheduled speedtest every 30min. If this is the case this will restart your FlexQoS every 30min and this is working as designed. I also listen a lot a FLAC radio streams and if the above is the thing that causes your problem the way I set it up is to do few spdMerlin scheduled speedtest at night when they are most accurate since there is no other traffic to interfere and this will set your Down/Up QoS BW limits in NVRAM if you have AutoBW enabled. FYI if you do a manual speedtest this will not restart the QoS nor will reset your Down/Up QoS BW limits in NVRAM.
 

Milan

Senior Member
One thing that you may need to check is if you have spdMerlin with AutoBW enabled and scheduled speedtest every 30min. If this is the case this will restart your FlexQoS every 30min and this is working as designed. I also listen a lot a FLAC radio streams and if the above is the thing that causes your problem the way I set it up is to do few spdMerlin scheduled speedtest at night when they are most accurate since there is no other traffic to interfere and this will set your Down/Up QoS BW limits in NVRAM if you have AutoBW enabled. FYI if you do a manual speedtest this will not restart the QoS nor will reset your Down/Up QoS BW limits in NVRAM.
You hit the nail … This is the reason, thanks.
 
  • Like
Reactions: NGI

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