What's new

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

Status
Not open for further replies.
I think about the cheapest equipment to make alternative QOS work. So far I have used 87U with the Merlin soft loaded but the support has been dropped. In my case, 4 antennas are the minimum. I am currently using 3 and it's 7dbi instead of asus 5dbi. For my link, the AC88U is too strong. It is true that the sisters' wifi network card in the computer is under WiFi 6, but the AX88 is expensive. I do not look at the AC / AX86 versions because of the 3 antennas.

I am forced to use LTE. Optical fiber does not exist and will not be there for the next 3 years, and maybe even longer.
Just buy this one (RT-AX55) provided in the link above, I saw B&H and newegg have it for $70 plus it has 4 antennas:

AX1800 Dual Band WiFi 6 (802.11ax) Router supporting MU-MIMO and OFDMA technology, with AiProtection Classic network security powered by Trend Micro™, compatible with ASUS AiMesh WiFi system
 
Hi all,

A new test version is available on the develop branch with one change made to the structure of the underlying iptables chains. In theory, it should be more efficient to separate the traffic marking rules into separate download and upload chains so that download traffic doesn't have to traverse the upload rules and vice versa.

You can test it by switching to the develop branch with flexqos develop. If for any reason you are already on the develop branch, you can force an update with flexqos update.
Code:
Chain POSTROUTING (policy ACCEPT 9262 packets, 3879K bytes)
 pkts bytes target     prot opt in     out     source               destination         
 4119 2941K FlexQoS_down  all  --  *      br0     0.0.0.0/0            0.0.0.0/0           
 1741  212K FlexQoS_up  all  --  *      eth0    0.0.0.0/0            0.0.0.0/0           

Chain FlexQoS_down (1 references)
 pkts bytes target     prot opt in     out     source               destination         
    4   448 MARK       udp  --  *      *       0.0.0.0/0            0.0.0.0/0            multiport dports 500,4500 multiport sports 500,4500 MARK xset 0x8006ffff/0xc03fffff
    2    70 MARK       udp  --  *      *       0.0.0.0/0            0.0.0.0/0            multiport sports 3478:3481 mark match 0x80000000/0xc03fffff MARK xset 0x8006ffff/0xc03fffff
    0     0 MARK       udp  --  *      *       0.0.0.0/0            0.0.0.0/0            multiport sports 443 mark match 0x80000000/0xc03fffff MARK xset 0x8018ffff/0xc03fffff
   16  6704 MARK       tcp  --  *      *       0.0.0.0/0            192.168.1.7          multiport sports 443 MARK xset 0x8004ffff/0xc03fffff
   46 21511 MARK       tcp  --  *      *       17.0.0.0/8           0.0.0.0/0            multiport sports 5223 mark match 0x80000000/0xc03fffff MARK xset 0x8006ffff/0xc03fffff

Chain FlexQoS_up (1 references)
 pkts bytes target     prot opt in     out     source               destination         
   19   883 MARK       udp  --  *      *       0.0.0.0/0            0.0.0.0/0            multiport sports 500,4500 multiport dports 500,4500 MARK xset 0x4006ffff/0xc03fffff
    1    35 MARK       udp  --  *      *       0.0.0.0/0            0.0.0.0/0            multiport dports 3478:3481 mark match 0x40000000/0xc03fffff MARK xset 0x4006ffff/0xc03fffff
    0     0 MARK       udp  --  *      *       0.0.0.0/0            0.0.0.0/0            multiport dports 443 mark match 0x40000000/0xc03fffff MARK xset 0x4018ffff/0xc03fffff
   21  1783 MARK       tcp  --  *      *       192.168.1.7          0.0.0.0/0            multiport dports 443 MARK xset 0x4004ffff/0xc03fffff
   52 10627 MARK       tcp  --  *      *       0.0.0.0/0            17.0.0.0/8           multiport dports 5223 mark match 0x40000000/0xc03fffff MARK xset 0x4006ffff/0xc03fffff
 
Hi all,

A new test version is available on the develop branch with one change made to the structure of the underlying iptables chains. In theory, it should be more efficient to separate the traffic marking rules into separate download and upload chains so that download traffic doesn't have to traverse the upload rules and vice versa.

You can test it by switching to the develop branch with flexqos develop. If for any reason you are already on the develop branch, you can force an update with flexqos update.
Code:
Chain POSTROUTING (policy ACCEPT 9262 packets, 3879K bytes)
pkts bytes target     prot opt in     out     source               destination       
4119 2941K FlexQoS_down  all  --  *      br0     0.0.0.0/0            0.0.0.0/0         
1741  212K FlexQoS_up  all  --  *      eth0    0.0.0.0/0            0.0.0.0/0         

Chain FlexQoS_down (1 references)
pkts bytes target     prot opt in     out     source               destination       
    4   448 MARK       udp  --  *      *       0.0.0.0/0            0.0.0.0/0            multiport dports 500,4500 multiport sports 500,4500 MARK xset 0x8006ffff/0xc03fffff
    2    70 MARK       udp  --  *      *       0.0.0.0/0            0.0.0.0/0            multiport sports 3478:3481 mark match 0x80000000/0xc03fffff MARK xset 0x8006ffff/0xc03fffff
    0     0 MARK       udp  --  *      *       0.0.0.0/0            0.0.0.0/0            multiport sports 443 mark match 0x80000000/0xc03fffff MARK xset 0x8018ffff/0xc03fffff
   16  6704 MARK       tcp  --  *      *       0.0.0.0/0            192.168.1.7          multiport sports 443 MARK xset 0x8004ffff/0xc03fffff
   46 21511 MARK       tcp  --  *      *       17.0.0.0/8           0.0.0.0/0            multiport sports 5223 mark match 0x80000000/0xc03fffff MARK xset 0x8006ffff/0xc03fffff

Chain FlexQoS_up (1 references)
pkts bytes target     prot opt in     out     source               destination       
   19   883 MARK       udp  --  *      *       0.0.0.0/0            0.0.0.0/0            multiport sports 500,4500 multiport dports 500,4500 MARK xset 0x4006ffff/0xc03fffff
    1    35 MARK       udp  --  *      *       0.0.0.0/0            0.0.0.0/0            multiport dports 3478:3481 mark match 0x40000000/0xc03fffff MARK xset 0x4006ffff/0xc03fffff
    0     0 MARK       udp  --  *      *       0.0.0.0/0            0.0.0.0/0            multiport dports 443 mark match 0x40000000/0xc03fffff MARK xset 0x4018ffff/0xc03fffff
   21  1783 MARK       tcp  --  *      *       192.168.1.7          0.0.0.0/0            multiport dports 443 MARK xset 0x4004ffff/0xc03fffff
   52 10627 MARK       tcp  --  *      *       0.0.0.0/0            17.0.0.0/8           multiport dports 5223 mark match 0x40000000/0xc03fffff MARK xset 0x4006ffff/0xc03fffff
@dave14305
Thanks for the update...I just updated, but I noticed the version release is showing Mar 2022 (when I do "Flexqos debug") would this mean the develop version didn't update correctly for me?

Code:
FlexQoS v1.3.1 released 2022-03-15
 Development channel

Debug date    : 2022-09-11 21:33:40-0400
Router Model  : GT-AX11000
Firmware Ver  : 386.7_2
DPI/Sig Ver   : 2.0.1 / 2.312
WAN iface     : eth0
tc WAN iface  : eth0
IPv6          : disabled
Undf Prio     : 2
Down Band     : 102400
Up Band       : 7680
**************
Net Control   : 1:10
Work-From-Home: 1:15
Gaming        : 1:11
Others        : 1:13
Web Surfing   : 1:14
Streaming     : 1:12
File Transfers: 1:16
Learn-From-Home: 1:17
**************
 
but I noticed the version release is showing Mar 2022 (when I do "Flexqos debug") would this mean the develop version didn't update correctly for me?
I'm seeing the same thing, glad it's not just me :)

@dave14305 are we supposed to see a version bump and/or date change after we force the update on the develop branch?
 
I'm seeing the same thing, glad it's not just me :)

@dave14305 are we supposed to see a version bump and/or date change after we force the update on the develop branch?
No, I did not increment the version for this one change. I barely remembered how to use git after all these months. ;)
 
Excited about trying the dev mode later. I know, easy pleased.

Edit - Now activated, no issues as yet.

Edit - Thursday still no issues, the big test will be at the weekend when then 3 kids are bleeding the internet dry.

Edit - Weekend played Overwatch when 2 of 3 kids were online - No issues, no spikes, smooth as butter.
 
Last edited:
Hi all - First post here.

I live in area with poor VDSL links, so I use 2 x 4G mobile connections, which are load balanced. I have an AC68U running Merlin with FlexQOS installed.

As my connections are mobile and hence variable, is there anyway to make FlexQOS work when the line speed is always variable in throughput? I suspect the answer is no.

The rules I have worked perfectly on the slow VDSL connection, but now I have variable speeds, any client doing a large download will cause problems for other clients doing video conferencing (eg. Teams or Zoom).

Thanks for any opinions or advice.
 
I suspect the answer is no.
Pretty much, no. The main problems are a) measuring the link variability and 2) changing the configured rates in HTB without being disruptive.

If you are willing to buy a router that supports OpenWrt, there is a neat solution available to manage CAKE for variable rate connections. @Lynx has LTE connections and started out here with an Asus router but switched to a Belkin RT3200 running OpenWrt and CAKE and seems to have a working setup like you are seeking.

 
Pretty much, no. The main problems are a) measuring the link variability and 2) changing the configured rates in HTB without being disruptive.

If you are willing to buy a router that supports OpenWrt, there is a neat solution available to manage CAKE for variable rate connections. @Lynx has LTE connections and started out here with an Asus router but switched to a Belkin RT3200 running OpenWrt and CAKE and seems to have a working setup like you are seeking.

Thank you for the detailed and clear answer. I have now ordered a OpenWRT compatible router and I have read the thread and the adaptive script information - looks exactly like the use case I have . So again, thank you.

It would be wonderful if the adaptive script could be adapted for FlexQOS, as I really like it and the rest of the Asuswrt-Merlin features and interface. However, it's not me that has to do the work or any idea how to do it!
 
Hi all - First post here.

I live in area with poor VDSL links, so I use 2 x 4G mobile connections, which are load balanced. I have an AC68U running Merlin with FlexQOS installed.

As my connections are mobile and hence variable, is there anyway to make FlexQOS work when the line speed is always variable in throughput? I suspect the answer is no.

The rules I have worked perfectly on the slow VDSL connection, but now I have variable speeds, any client doing a large download will cause problems for other clients doing video conferencing (eg. Teams or Zoom).

Thanks for any opinions or advice.
Not a total coverage for your need but somehow it may help: spdmerlin. I user FlexQoS on a line that vary per day and mesure the speed per hour. You have an option to adapt the UP/DL depending on the last speedtest taken. This work very well for me. The author included all my wishes: a min/max value to avoid disruption if the speedtest result is wrongly made, a % of the result to be in the 85-95%, etc...Well yes I'm happy with it and need to tell it :D
 
Not a total coverage for your need but somehow it may help: spdmerlin. I user FlexQoS on a line that vary per day and mesure the speed per hour. You have an option to adapt the UP/DL depending on the last speedtest taken. This work very well for me. The author included all my wishes: a min/max value to avoid disruption if the speedtest result is wrongly made, a % of the result to be in the 85-95%, etc...Well yes I'm happy with it and need to tell it :D
Thanks. I think LTE will be too volatile for this solution, but thanks for the info.
 
FlexQoS Version 1.3.2 - Released 16-Sep-2022

This is just a minor release with an iptables optimization. Nothing exciting or outwardly visible has changed.
  • CHANGED: Split iptables rules into separate upload and download chains to avoid unnecessary rule traversal
  • CHANGED: Tweaked 'debug' command output formatting for better readability
 
@dave14305 update done through the webUI, all seems working well.
Thanks for your work!
 
FlexQoS Version 1.3.2 - Released 16-Sep-2022

This is just a minor release with an iptables optimization. Nothing exciting or outwardly visible has changed.
  • CHANGED: Split iptables rules into separate upload and download chains to avoid unnecessary rule traversal
  • CHANGED: Tweaked 'debug' command output formatting for better readability
Thanks @dave14305 ...any FlexQoS update is exciting for us :)

I appreciate the update!
 
Hi all,

A new test version is available on the develop branch with one change made to the structure of the underlying iptables chains. In theory, it should be more efficient to separate the traffic marking rules into separate download and upload chains so that download traffic doesn't have to traverse the upload rules and vice versa.

You can test it by switching to the develop branch with flexqos develop. If for any reason you are already on the develop branch, you can force an update with flexqos update.
Code:
Chain POSTROUTING (policy ACCEPT 9262 packets, 3879K bytes)
pkts bytes target     prot opt in     out     source               destination       
4119 2941K FlexQoS_down  all  --  *      br0     0.0.0.0/0            0.0.0.0/0         
1741  212K FlexQoS_up  all  --  *      eth0    0.0.0.0/0            0.0.0.0/0         

Chain FlexQoS_down (1 references)
pkts bytes target     prot opt in     out     source               destination       
    4   448 MARK       udp  --  *      *       0.0.0.0/0            0.0.0.0/0            multiport dports 500,4500 multiport sports 500,4500 MARK xset 0x8006ffff/0xc03fffff
    2    70 MARK       udp  --  *      *       0.0.0.0/0            0.0.0.0/0            multiport sports 3478:3481 mark match 0x80000000/0xc03fffff MARK xset 0x8006ffff/0xc03fffff
    0     0 MARK       udp  --  *      *       0.0.0.0/0            0.0.0.0/0            multiport sports 443 mark match 0x80000000/0xc03fffff MARK xset 0x8018ffff/0xc03fffff
   16  6704 MARK       tcp  --  *      *       0.0.0.0/0            192.168.1.7          multiport sports 443 MARK xset 0x8004ffff/0xc03fffff
   46 21511 MARK       tcp  --  *      *       17.0.0.0/8           0.0.0.0/0            multiport sports 5223 mark match 0x80000000/0xc03fffff MARK xset 0x8006ffff/0xc03fffff

Chain FlexQoS_up (1 references)
pkts bytes target     prot opt in     out     source               destination       
   19   883 MARK       udp  --  *      *       0.0.0.0/0            0.0.0.0/0            multiport sports 500,4500 multiport dports 500,4500 MARK xset 0x4006ffff/0xc03fffff
    1    35 MARK       udp  --  *      *       0.0.0.0/0            0.0.0.0/0            multiport dports 3478:3481 mark match 0x40000000/0xc03fffff MARK xset 0x4006ffff/0xc03fffff
    0     0 MARK       udp  --  *      *       0.0.0.0/0            0.0.0.0/0            multiport dports 443 mark match 0x40000000/0xc03fffff MARK xset 0x4018ffff/0xc03fffff
   21  1783 MARK       tcp  --  *      *       192.168.1.7          0.0.0.0/0            multiport dports 443 MARK xset 0x4004ffff/0xc03fffff
   52 10627 MARK       tcp  --  *      *       0.0.0.0/0            17.0.0.0/8           multiport dports 5223 mark match 0x40000000/0xc03fffff MARK xset 0x4006ffff/0xc03fffff
I ran the command below:


Code:
iptables -t mangle -nvL

I saw one minor difference on my output and just curious if anyone would know why it shows 0 references in line 6: Chain FlexQoS (0 references):


Code:
Chain POSTROUTING (policy ACCEPT 3167 packets, 435K bytes)
pkts bytes target     prot opt in     out     source               destination        
  543  110K FlexQoS_down  all  --  *      br0     0.0.0.0/0            0.0.0.0/0          
2264  250K FlexQoS_up  all  --  *      eth0    0.0.0.0/0            0.0.0.0/0          

Chain FlexQoS (0 references)
pkts bytes target     prot opt in     out     source               destination        

Chain FlexQoS_down (1 references)
pkts bytes target     prot opt in     out     source               destination        
    0     0 MARK       udp  --  *      *       0.0.0.0/0            0.0.0.0/0            multiport sports 500,4500 MARK xset 0x8006ffff/0xc03fffff
    0     0 MARK       udp  --  *      *       0.0.0.0/0            0.0.0.0/0            multiport dports 16384:16415 MARK xset 0x8006ffff/0xc03fffff
    0     0 MARK       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            multiport sports 119,563 MARK xset 0x8003ffff/0xc03fffff
    0     0 MARK       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            multiport sports 80,443 mark match 0x80080000/0xc03f0000 MARK xset 0x8003ffff/f
    1    52 MARK       tcp  --  *      *       0.0.0.0/0            192.168.1.10/31      multiport sports 80,443 mark match ! 0x80040000/0xc03f0000 MARK xset 0x8004ffff
   12  1882 MARK       tcp  --  *      *       0.0.0.0/0            192.168.1.96/28      multiport sports 80,443 mark match ! 0x80040000/0xc03f0000 MARK xset 0x8004ffff
    0     0 MARK       tcp  --  *      *       0.0.0.0/0            192.168.1.16/28      multiport sports  !80,443 mark match 0x80000000/0xc03fffff MARK xset 0x8008ffff
    0     0 MARK       udp  --  *      *       0.0.0.0/0            192.168.1.16/28      multiport sports  !80,443 mark match 0x80000000/0xc03fffff MARK xset 0x8008ffff

Chain FlexQoS_up (1 references)
pkts bytes target     prot opt in     out     source               destination        
    0     0 MARK       udp  --  *      *       0.0.0.0/0            0.0.0.0/0            multiport dports 500,4500 MARK xset 0x4006ffff/0xc03fffff
    0     0 MARK       udp  --  *      *       0.0.0.0/0            0.0.0.0/0            multiport sports 16384:16415 MARK xset 0x4006ffff/0xc03fffff
    0     0 MARK       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            multiport dports 119,563 MARK xset 0x4003ffff/0xc03fffff
    0     0 MARK       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            multiport dports 80,443 mark match 0x40080000/0xc03f0000 MARK xset 0x4003ffff/f
    1    40 MARK       tcp  --  *      *       192.168.1.10/31      0.0.0.0/0            multiport dports 80,443 mark match ! 0x40040000/0xc03f0000 MARK xset 0x4004ffff
   22  4268 MARK       tcp  --  *      *       192.168.1.96/28      0.0.0.0/0            multiport dports 80,443 mark match ! 0x40040000/0xc03f0000 MARK xset 0x4004ffff
    0     0 MARK       tcp  --  *      *       192.168.1.16/28      0.0.0.0/0            multiport dports  !80,443 mark match 0x40000000/0xc03fffff MARK xset 0x4008ffff
    0     0 MARK       udp  --  *      *       192.168.1.16/28      0.0.0.0/0            multiport dports  !80,443 mark match 0x40000000/0xc03fffff MARK xset 0x4008ffff

However all is working properly!!! Thanks again!
 
I ran the command below:


Code:
iptables -t mangle -nvL

I saw one minor difference on my output and just curious if anyone would know why it shows 0 references in line 6: Chain FlexQoS (0 references):


Code:
Chain POSTROUTING (policy ACCEPT 3167 packets, 435K bytes)
pkts bytes target     prot opt in     out     source               destination       
  543  110K FlexQoS_down  all  --  *      br0     0.0.0.0/0            0.0.0.0/0         
2264  250K FlexQoS_up  all  --  *      eth0    0.0.0.0/0            0.0.0.0/0         

Chain FlexQoS (0 references)
pkts bytes target     prot opt in     out     source               destination       

Chain FlexQoS_down (1 references)
pkts bytes target     prot opt in     out     source               destination       
    0     0 MARK       udp  --  *      *       0.0.0.0/0            0.0.0.0/0            multiport sports 500,4500 MARK xset 0x8006ffff/0xc03fffff
    0     0 MARK       udp  --  *      *       0.0.0.0/0            0.0.0.0/0            multiport dports 16384:16415 MARK xset 0x8006ffff/0xc03fffff
    0     0 MARK       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            multiport sports 119,563 MARK xset 0x8003ffff/0xc03fffff
    0     0 MARK       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            multiport sports 80,443 mark match 0x80080000/0xc03f0000 MARK xset 0x8003ffff/f
    1    52 MARK       tcp  --  *      *       0.0.0.0/0            192.168.1.10/31      multiport sports 80,443 mark match ! 0x80040000/0xc03f0000 MARK xset 0x8004ffff
   12  1882 MARK       tcp  --  *      *       0.0.0.0/0            192.168.1.96/28      multiport sports 80,443 mark match ! 0x80040000/0xc03f0000 MARK xset 0x8004ffff
    0     0 MARK       tcp  --  *      *       0.0.0.0/0            192.168.1.16/28      multiport sports  !80,443 mark match 0x80000000/0xc03fffff MARK xset 0x8008ffff
    0     0 MARK       udp  --  *      *       0.0.0.0/0            192.168.1.16/28      multiport sports  !80,443 mark match 0x80000000/0xc03fffff MARK xset 0x8008ffff

Chain FlexQoS_up (1 references)
pkts bytes target     prot opt in     out     source               destination       
    0     0 MARK       udp  --  *      *       0.0.0.0/0            0.0.0.0/0            multiport dports 500,4500 MARK xset 0x4006ffff/0xc03fffff
    0     0 MARK       udp  --  *      *       0.0.0.0/0            0.0.0.0/0            multiport sports 16384:16415 MARK xset 0x4006ffff/0xc03fffff
    0     0 MARK       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            multiport dports 119,563 MARK xset 0x4003ffff/0xc03fffff
    0     0 MARK       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            multiport dports 80,443 mark match 0x40080000/0xc03f0000 MARK xset 0x4003ffff/f
    1    40 MARK       tcp  --  *      *       192.168.1.10/31      0.0.0.0/0            multiport dports 80,443 mark match ! 0x40040000/0xc03f0000 MARK xset 0x4004ffff
   22  4268 MARK       tcp  --  *      *       192.168.1.96/28      0.0.0.0/0            multiport dports 80,443 mark match ! 0x40040000/0xc03f0000 MARK xset 0x4004ffff
    0     0 MARK       tcp  --  *      *       192.168.1.16/28      0.0.0.0/0            multiport dports  !80,443 mark match 0x40000000/0xc03fffff MARK xset 0x4008ffff
    0     0 MARK       udp  --  *      *       192.168.1.16/28      0.0.0.0/0            multiport dports  !80,443 mark match 0x40000000/0xc03fffff MARK xset 0x4008ffff

However all is working properly!!! Thanks again!
That’s a remnant from the old config. It’ll disappear with a reboot or by running:
Code:
iptables -t mangle -X FlexQoS
ip6tables -t mangle -X FlexQoS
 
Status
Not open for further replies.

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