What's new

FlexQoS FlexQoS 1.2.4 - 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!

This is adjacently related to the conversation happening in the last few comments in this thread, but I wanted to get a check-in from people who have been active recently.

In the old thread, I remember when Work-from-Home and Learn-from-Home first came out. After pouring over tons of comments (and other threads as well) I settled on this order:

Highest
Gaming
Work-From-Home
Others
Web Surfing
Video and Audio Streaming
File Transferring
Learn-From-Home
Lowest

Now I'd say my usage is pretty "general", just on the high usage end—I have gigabit down (only 30Mbps up) and I download a lot. I work from home with daily video meetings over Zoom, I play PlayStation casually but I'm not a serious gamer and I don't care about maximum gaming performance. I watch a good amount of 4k streaming.
Otherwise, nothing interesting really.

That being said, does the order above seem right?

Also, 2 specific questions:
1: Could/would I benefit from moving Work-From-Home to the top, above Gaming?
2: Is "Others" in the right place?
 
That being said, does the order above seem right?

Also, 2 specific questions:
1: Could/would I benefit from moving Work-From-Home to the top, above Gaming?
2: Is "Others" in the right place?
You probably have nothing to worry about on the download side, since you could allocate a minimum of 100 Mbit to each class with some to spare. So your focus should probably be on what your upload traffic patterns are and what needs priority in the face of congestion over the 30 Mbit. I would tend to favor Work-From-Home over Gaming for upload traffic, since I don't game. If you're the only one on the network and you don't game and video conference at the same time, it would not be an issue.

As your configuration is now, do you ever experience garbled video/audio calls, buffering while streaming, or bad gameplay? If not, your setup is probably fine for you. If you want to peek inside my curtains, I keep Streaming above Others and Web Surfing, mostly out of inertia.
 
You probably have nothing to worry about on the download side, since you could allocate a minimum of 100 Mbit to each class with some to spare. So your focus should probably be on what your upload traffic patterns are and what needs priority in the face of congestion over the 30 Mbit. I would tend to favor Work-From-Home over Gaming for upload traffic, since I don't game. If you're the only one on the network and you don't game and video conference at the same time, it would not be an issue.

As your configuration is now, do you ever experience garbled video/audio calls, buffering while streaming, or bad gameplay? If not, your setup is probably fine for you. If you want to peek inside my curtains, I keep Streaming above Others and Web Surfing, mostly out of inertia.

I do run a Plex server from my home, that serves to my parents and close friends.
Unrelated (whether the Plex server is being accessed or not), any time any 1 device on my network uploads at full speed, my entire network grinds to a halt. This most often happens with Plex, but any device can cause it. If it wasn't for this issue, I wouldn't use QoS at all. That being said, I've been using FlexQoS since basically day 1. Appreciate all your hard work, by the way.

I upgraded everything recently—386.1_2 and FlexQoS 1.2.1 both installed clean, straight from a complete format. As I was teaching on Zoom yesterday, my students were complaining that my video was really bad quality. I realized my parents were using my Plex, and asked them to stop. It solved it.

Now I'm just doing my due diligence and wondering if my old QoS "Customize" order (my highest to lowest list above) is still ideal.

dave14305 said:
I keep Streaming above Others and Web Surfing, mostly out of inertia.

Work-From-Home
Gaming
Video and Audio Streaming
Others
Web Surfing
File Transferring
Learn-From-Home

?
 
Last edited:
1614121218272.png

Are this the default values under Bandwith? From what I have read these are adjustable Correct?
 
Last edited:
As I was teaching on Zoom yesterday, my students were complaining that my video was really bad quality. I realized my parents were using my Plex, and asked them to stop. It solved it.
So this Plex traffic is going out via the Internet as upload traffic? How does it appear in the Tracked connections when it’s happening? How well is it identified? Is it hardwired to the router?

Also keep an eye on how your Zoom traffic is showing up. Classification has gotten better as ASUS/Trend signatures update, but you can always use the well-known Zoom rule if it’s not tracked 100% of the time.
 
View attachment 31162
Are this the default values under Bandwith? From what I have read these are adjustable Correct?
They probably are the default values, and they are adjustable. Hit the small Reset link in the heading to see if the values change when being reset to default. They won’t be saved unless you hit Apply, so no harm done. Refresh the page to see your saved values again.
 
I do run a Plex server from my home, that serves to my parents and close friends.
Unrelated (whether the Plex server is being accessed or not), any time any 1 device on my network uploads at full speed, my entire network grinds to a halt. This most often happens with Plex, but any device can cause it. If it wasn't for this issue, I wouldn't use QoS at all. That being said, I've been using FlexQoS since basically day 1. Appreciate all your hard work, by the way.

I upgraded everything recently—386.1_2 and FlexQoS 1.2.1 both installed clean, straight from a complete format. As I was teaching on Zoom yesterday, my students were complaining that my video was really bad quality. I realized my parents were using my Plex, and asked them to stop. It solved it.

Now I'm just doing my due diligence and wondering if my old QoS "Customize" order (my highest to lowest list above) is still ideal.



Work-From-Home
Gaming
Video and Audio Streaming
Others
Web Surfing
File Transferring
Learn-From-Home

?
Plex lets you limit the egress bandwidth, I'd strongly recommend that you shave a few megabits off your upload maximum to stop Plex hogging your bandwidth
 
I do run a Plex server from my home, that serves to my parents and close friends.
Unrelated (whether the Plex server is being accessed or not), any time any 1 device on my network uploads at full speed, my entire network grinds to a halt. This most often happens with Plex, but any device can cause it. If it wasn't for this issue, I wouldn't use QoS at all. That being said, I've been using FlexQoS since basically day 1. Appreciate all your hard work, by the way.

I upgraded everything recently—386.1_2 and FlexQoS 1.2.1 both installed clean, straight from a complete format. As I was teaching on Zoom yesterday, my students were complaining that my video was really bad quality. I realized my parents were using my Plex, and asked them to stop. It solved it.

Now I'm just doing my due diligence and wondering if my old QoS "Customize" order (my highest to lowest list above) is still ideal.



Work-From-Home
Gaming
Video and Audio Streaming
Others
Web Surfing
File Transferring
Learn-From-Home

?
I've asked about including Plex and Emby in the past, but it was never addressed. Maybe someday...
 
:rolleyes: You didn’t really ask anything. You made a wish. No other Plex/Emby users replied.
Assuming that the user means remote streaming...set a custom port for remote access (or even the default 32400) and create a custom rule for any traffic on that port as streaming. Or am I misunderstanding the problem?
 
You can experiment manually by copying the tc commands from /tmp/flexqos_tcrules.
Code:
grep ^class /tmp/flexqos_tcrules
Add tc before each line and change the burst or cburst value to whatever you like. If you mess it up, just run flexqos restart.
Thanks Dave.
I edited the burst and cburst figures for gaming priority and saved (nano). I checked on your script but the figures didnt stick...
 
Assuming that the user means remote streaming...set a custom port for remote access (or even the default 32400) and create a custom rule for any traffic on that port as streaming. Or am I misunderstanding the problem?
Most appreciate the tip, but I think the challenge is due to different ports being used based on the Plex or Emby source provider.

If there are any Plex or Emby consumers out there, please chime in if you've found a solution that identifies the traffic. You can PM/DM too. Thanks for all responses to date!
 
Last edited:
Hi Dave, we talked, now I'll bring you some tests:
EFFECTIVE 18.8 DL, 0.97 UL
Set to 16.9 DL, 0.83 UL

Traditional QoS UL

bloat1.jpg

Traditional QoS DL
bloat2.jpg

FlexQoS DL (Great)
flex1.jpg


FlexQoS UL (Cry)
flex2.jpg


You're doing a good job ....... but remember us too, we have little bandwidth.
 
Hi Dave, we talked, now I'll bring you some tests:
EFFECTIVE 18.8 DL, 0.97 UL
Set to 16.9 DL, 0.83 UL

Traditional QoS UL

View attachment 31185
Traditional QoS DL
View attachment 31186
FlexQoS DL (Great)
View attachment 31188

FlexQoS UL (Cry)
View attachment 31189

You're doing a good job ....... but remember us too, we have little bandwidth.
When running with Traditional QoS, please get me the output of these commands:
Code:
tc -d class show dev eth0
tc -d class show dev br0
tc -d qdisc ls
 
Most appreciate the tip, but I think the challenge is due to different ports being used based on the Plex or Emby source provider.

If there are any Plex or Emby consumers out there, please chime in if you've found a solution that identifies the traffic. You can PM/DM too. Thanks for all responses to date!
I am a Plex Server host for family and friends and I use the technique I mentioned :)
I don't use any of Plex's "value added" services like Tidal, my own content served only and traffic appears to be identified as I prefer, i.e. video streaming
 
When running with Traditional QoS, please get me the output of these commands:
Code:
tc -d class show dev eth0
tc -d class show dev br0
tc -d qdisc ls
Nutella05@DSL-AC68U-AF00:/tmp/home/root# tc -d class show dev eth0
Nutella05@DSL-AC68U-AF00:/tmp/home/root# tc -d class show dev br0
Nutella05@DSL-AC68U-AF00:/tmp/home/root# tc -d qdisc ls
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 8001: dev vlan3880 root refcnt 2 limit 1p
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 htb 2: dev br0 root refcnt 2 r2q 10 default 40 direct_packets_stat 0 ver 3.17
qdisc pfifo 60: dev br0 parent 2:60 limit 1p
qdisc fq_codel 10: dev br0 parent 2:10 limit 1000p flows 1024 quantum 300 target 5.0ms interval 100.0ms
qdisc fq_codel 20: dev br0 parent 2:20 limit 1000p flows 1024 quantum 300 target 5.0ms interval 100.0ms
qdisc fq_codel 30: dev br0 parent 2:30 limit 1000p flows 1024 quantum 300 target 5.0ms interval 100.0ms
qdisc fq_codel 40: dev br0 parent 2:40 limit 1000p flows 1024 quantum 300 target 5.0ms interval 100.0ms
qdisc fq_codel 50: dev br0 parent 2:50 limit 1000p flows 1024 quantum 300 target 5.0ms interval 100.0ms
qdisc htb 1: dev ppp0 root refcnt 2 r2q 10 default 40 direct_packets_stat 448 ver 3.17
qdisc pfifo 60: dev ppp0 parent 1:60 limit 3p
Nutella05@DSL-AC68U-AF00:/tmp/home/root#

Thanks
 
i have set Gaming as the highes Flexqos Priority does it look all good to you guys?


Debug date : 2021-02-24 21:30:16+0100
Router Model : RT-AC5300
Firmware Ver : 386.1_2
DPI/Sig Ver : 2.0.1 / 2.218
WAN iface : ppp0
tc WAN iface : eth0
IPv6 : dhcp6
Undf Prio : 2
Down Band : 95232
Up Band : 17408
**************
Net Control : 1:10
Work-From-Home: 1:12
Gaming : 1:11
Others : 1:13
Web Surfing : 1:14
Streaming : 1:15
File Downloads: 1:16
Game Downloads: 1:17
**************
Downrates : 4761, 33331, 9523, 4761, 4761, 28569, 4761, 4761
Downceils : 95232, 95232, 80947, 57139, 66662, 95232, 95232, 95232
Uprates : 870, 6092, 1740, 870, 870, 5222, 870, 870
Upceils : 17408, 17408, 11315, 10444, 10444, 17408, 17408, 17408
**************
iptables settings: <>>udp>>500,4500>>3<>>udp>16384:16415>>>3<>>tcp>>119,563>>5<>>tcp>>80,443>08****>7<>>udp>>3478:3481>000000>3<192.168.1.118>>both>>!80,443>000000>1<>>udp>>19302:19309>>3<>>udp>>8801:8810>000000>3
-o br0 -p udp -m multiport --sports 500,4500 -j MARK --set-mark 0x8006ffff/0xc03fffff
-o ppp0 -p udp -m multiport --dports 500,4500 -j MARK --set-mark 0x4006ffff/0xc03fffff
-o br0 -p udp -m multiport --sports 500,4500 -j MARK --set-mark 0x8006ffff/0xc03fffff
-o ppp0 -p udp -m multiport --dports 500,4500 -j MARK --set-mark 0x4006ffff/0xc03fffff
-o br0 -p udp -m multiport --dports 16384:16415 -j MARK --set-mark 0x8006ffff/0xc03fffff
-o ppp0 -p udp -m multiport --sports 16384:16415 -j MARK --set-mark 0x4006ffff/0xc03fffff
-o br0 -p udp -m multiport --dports 16384:16415 -j MARK --set-mark 0x8006ffff/0xc03fffff
-o ppp0 -p udp -m multiport --sports 16384:16415 -j MARK --set-mark 0x4006ffff/0xc03fffff
-o br0 -p tcp -m multiport --sports 119,563 -j MARK --set-mark 0x8003ffff/0xc03fffff
-o ppp0 -p tcp -m multiport --dports 119,563 -j MARK --set-mark 0x4003ffff/0xc03fffff
-o br0 -p tcp -m multiport --sports 119,563 -j MARK --set-mark 0x8003ffff/0xc03fffff
-o ppp0 -p tcp -m multiport --dports 119,563 -j MARK --set-mark 0x4003ffff/0xc03fffff
-o br0 -p tcp -m multiport --sports 80,443 -m mark --mark 0x80080000/0xc03f0000 -j MARK --set-mark 0x803fffff/0xc03fffff
-o ppp0 -p tcp -m multiport --dports 80,443 -m mark --mark 0x40080000/0xc03f0000 -j MARK --set-mark 0x403fffff/0xc03fffff
-o br0 -p tcp -m multiport --sports 80,443 -m mark --mark 0x80080000/0xc03f0000 -j MARK --set-mark 0x803fffff/0xc03fffff
-o ppp0 -p tcp -m multiport --dports 80,443 -m mark --mark 0x40080000/0xc03f0000 -j MARK --set-mark 0x403fffff/0xc03fffff
-o br0 -p udp -m multiport --sports 3478:3481 -m mark --mark 0x80000000/0xc03fffff -j MARK --set-mark 0x8006ffff/0xc03fffff
-o ppp0 -p udp -m multiport --dports 3478:3481 -m mark --mark 0x40000000/0xc03fffff -j MARK --set-mark 0x4006ffff/0xc03fffff
-o br0 -p udp -m multiport --sports 3478:3481 -m mark --mark 0x80000000/0xc03fffff -j MARK --set-mark 0x8006ffff/0xc03fffff
-o ppp0 -p udp -m multiport --dports 3478:3481 -m mark --mark 0x40000000/0xc03fffff -j MARK --set-mark 0x4006ffff/0xc03fffff
-o br0 -d 192.168.1.118 -p tcp -m multiport ! --sports 80,443 -m mark --mark 0x80000000/0xc03fffff -j MARK --set-mark 0x8008ffff/0xc03fffff
-o br0 -d 192.168.1.118 -p udp -m multiport ! --sports 80,443 -m mark --mark 0x80000000/0xc03fffff -j MARK --set-mark 0x8008ffff/0xc03fffff
-o ppp0 -s 192.168.1.118 -p tcp -m multiport ! --dports 80,443 -m mark --mark 0x40000000/0xc03fffff -j MARK --set-mark 0x4008ffff/0xc03fffff
-o ppp0 -s 192.168.1.118 -p udp -m multiport ! --dports 80,443 -m mark --mark 0x40000000/0xc03fffff -j MARK --set-mark 0x4008ffff/0xc03fffff
-o br0 -p udp -m multiport --sports 19302:19309 -j MARK --set-mark 0x8006ffff/0xc03fffff
-o ppp0 -p udp -m multiport --dports 19302:19309 -j MARK --set-mark 0x4006ffff/0xc03fffff
-o br0 -p udp -m multiport --sports 19302:19309 -j MARK --set-mark 0x8006ffff/0xc03fffff
-o ppp0 -p udp -m multiport --dports 19302:19309 -j MARK --set-mark 0x4006ffff/0xc03fffff
-o br0 -p udp -m multiport --sports 8801:8810 -m mark --mark 0x80000000/0xc03fffff -j MARK --set-mark 0x8006ffff/0xc03fffff
-o ppp0 -p udp -m multiport --dports 8801:8810 -m mark --mark 0x40000000/0xc03fffff -j MARK --set-mark 0x4006ffff/0xc03fffff
-o br0 -p udp -m multiport --sports 8801:8810 -m mark --mark 0x80000000/0xc03fffff -j MARK --set-mark 0x8006ffff/0xc03fffff
-o ppp0 -p udp -m multiport --dports 8801:8810 -m mark --mark 0x40000000/0xc03fffff -j MARK --set-mark 0x4006ffff/0xc03fffff
**************
appdb rules: Defaults
filter change dev br0 prio 2 protocol all handle 828::800 u32 flowid 1:13
filter change dev eth0 prio 2 protocol all handle 828::800 u32 flowid 1:13
filter add dev br0 protocol all prio 2 u32 match mark 0x8000006B 0xc03fffff flowid 1:13
filter add dev eth0 protocol all prio 2 u32 match mark 0x4000006B 0xc03fffff flowid 1:13
filter add dev br0 protocol all prio 15 u32 match mark 0x800D0007 0xc03fffff flowid 1:16
filter add dev eth0 protocol all prio 15 u32 match mark 0x400D0007 0xc03fffff flowid 1:16
filter add dev br0 protocol all prio 15 u32 match mark 0x800D0086 0xc03fffff flowid 1:16
filter add dev eth0 protocol all prio 15 u32 match mark 0x400D0086 0xc03fffff flowid 1:16
filter add dev br0 protocol all prio 15 u32 match mark 0x800D00A0 0xc03fffff flowid 1:16
filter add dev eth0 protocol all prio 15 u32 match mark 0x400D00A0 0xc03fffff flowid 1:16
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
class change dev br0 parent 1:1 classid 1:10 htb overhead 27 linklayer ethernet prio 0 rate 4761Kbit ceil 95232Kbit burst 11904b cburst 118400b quantum 59512
class change dev eth0 parent 1:1 classid 1:10 htb overhead 27 linklayer ethernet prio 0 rate 870Kbit ceil 17408Kbit burst 3200b cburst 20800b quantum 10875
class change dev br0 parent 1:1 classid 1:11 htb overhead 27 linklayer ethernet prio 1 rate 33331Kbit ceil 95232Kbit burst 11904b cburst 118400b quantum 416637
class change dev eth0 parent 1:1 classid 1:11 htb overhead 27 linklayer ethernet prio 1 rate 6092Kbit ceil 17408Kbit burst 3200b cburst 20800b quantum 76150
class change dev br0 parent 1:1 classid 1:12 htb overhead 27 linklayer ethernet prio 2 rate 9523Kbit ceil 80947Kbit burst 10118b cburst 100800b quantum 119037
class change dev eth0 parent 1:1 classid 1:12 htb overhead 27 linklayer ethernet prio 2 rate 1740Kbit ceil 11315Kbit burst 3200b cburst 12800b quantum 21750
class change dev br0 parent 1:1 classid 1:13 htb overhead 27 linklayer ethernet prio 3 rate 4761Kbit ceil 57139Kbit burst 7142b cburst 70400b quantum 59512
class change dev eth0 parent 1:1 classid 1:13 htb overhead 27 linklayer ethernet prio 3 rate 870Kbit ceil 10444Kbit burst 3200b cburst 12800b quantum 10875
class change dev br0 parent 1:1 classid 1:14 htb overhead 27 linklayer ethernet prio 4 rate 4761Kbit ceil 66662Kbit burst 8332b cburst 83200b quantum 59512
class change dev eth0 parent 1:1 classid 1:14 htb overhead 27 linklayer ethernet prio 4 rate 870Kbit ceil 10444Kbit burst 3200b cburst 12800b quantum 10875
class change dev br0 parent 1:1 classid 1:15 htb overhead 27 linklayer ethernet prio 5 rate 28569Kbit ceil 95232Kbit burst 11904b cburst 118400b quantum 357112
class change dev eth0 parent 1:1 classid 1:15 htb overhead 27 linklayer ethernet prio 5 rate 5222Kbit ceil 17408Kbit burst 3200b cburst 20800b quantum 65275
class change dev br0 parent 1:1 classid 1:16 htb overhead 27 linklayer ethernet prio 6 rate 4761Kbit ceil 95232Kbit burst 11904b cburst 118400b quantum 59512
class change dev eth0 parent 1:1 classid 1:16 htb overhead 27 linklayer ethernet prio 6 rate 870Kbit ceil 17408Kbit burst 3200b cburst 20800b quantum 10875
class change dev br0 parent 1:1 classid 1:17 htb overhead 27 linklayer ethernet prio 7 rate 4761Kbit ceil 95232Kbit burst 11904b cburst 118400b quantum 59512
class change dev eth0 parent 1:1 classid 1:17 htb overhead 27 linklayer ethernet prio 7 rate 870Kbit ceil 17408Kbit burst 3200b cburst 20800b quantum 10875
qdisc replace dev br0 parent 1:2 fq_codel limit 1024
qdisc replace dev eth0 parent 1:2 fq_codel limit 1024
qdisc replace dev br0 parent 1:10 fq_codel limit 1024
qdisc replace dev eth0 parent 1:10 fq_codel limit 1024
qdisc replace dev br0 parent 1:11 fq_codel limit 1024
qdisc replace dev eth0 parent 1:11 fq_codel limit 1024
qdisc replace dev br0 parent 1:12 fq_codel limit 1024
qdisc replace dev eth0 parent 1:12 fq_codel limit 1024
qdisc replace dev br0 parent 1:13 fq_codel limit 1024
qdisc replace dev eth0 parent 1:13 fq_codel limit 1024
qdisc replace dev br0 parent 1:14 fq_codel limit 1024
qdisc replace dev eth0 parent 1:14 fq_codel limit 1024
qdisc replace dev br0 parent 1:15 fq_codel limit 1024
qdisc replace dev eth0 parent 1:15 fq_codel limit 1024
qdisc replace dev br0 parent 1:16 fq_codel limit 1024
qdisc replace dev eth0 parent 1:16 fq_codel limit 1024
qdisc replace dev br0 parent 1:17 fq_codel limit 1024
qdisc replace dev eth0 parent 1:17 fq_codel limit 1024
 

Latest threads

Support SNBForums w/ Amazon

If you'd like to support SNBForums, just use this link and buy anything on Amazon. Thanks!

Sign Up For SNBForums Daily Digest

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