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.

maghuro

Very Senior Member
Hey Dave! Just one little thing I've noticed. When using ipv6, it isn't getting custom names (which we define on clientlist)

Awesome work!!!! Testing right now pal
 

Vexira

Part of the Furniture
i think i broke something, im having the same gui issue that QuikSilver did and also im getting this error in the logs, i uninstalled fresh jr qos first, before installing the script, and even after un installing yours and re installing the same bug happens

This is the output from chrome dev tools:
user3.asp:1300 Uncaught TypeError: Cannot read property 'toString' of undefined
at set_FlexQoS_mod_vars (user3.asp:1300)
at initial (user3.asp:562)
at onload (user3.asp:1519)

Log error:
Jun 25 17:28:29 custom_script: Running /jffs/scripts/service-event-end (args: restart firewall)
Jun 25 17:28:29 FlexQoS: /jffs/addons/flexqos/flexqos.sh (pid=9265) called with 2 args: -start eth0
Jun 25 17:28:29 FlexQoS: Applying iptables static rules
Jun 25 17:28:29 FlexQoS: TC Modification delayed for 0 seconds
Jun 25 17:28:29 FlexQoS: Applying AppDB static rules
Jun 25 17:28:29 FlexQoS: Applying custom bandwidth rates
Jun 25 17:28:29 FlexQoS: "rate" is required.
Jun 25 17:28:29 FlexQoS: "rate" is required.
Jun 25 17:28:29 FlexQoS: "rate" is required.
Jun 25 17:28:29 FlexQoS: "rate" is required.
Jun 25 17:28:29 FlexQoS: "rate" is required.
Jun 25 17:28:29 FlexQoS: "rate" is required.
Jun 25 17:28:29 FlexQoS: "rate" is required.
Jun 25 17:28:29 FlexQoS: "rate" is required.
Jun 25 17:28:29 FlexQoS: "rate" is required.
Jun 25 17:28:29 FlexQoS: "rate" is required.
Jun 25 17:28:29 FlexQoS: "rate" is required.
Jun 25 17:28:29 FlexQoS: "rate" is required.
Jun 25 17:28:29 FlexQoS: "rate" is required.
Jun 25 17:28:29 FlexQoS: "rate" is required.
Jun 25 17:28:29 FlexQoS: "rate" is required.
 

maghuro

Very Senior Member
Another things I noticed:
The appdb rules are only applied when we press "Apply". When we made some changes on router settings that causes QoS to restart (for example applying ipv6 configs), it seems they don't stick. For example, I created a appdb rule to sent DoT to Net control packets. After qos restart, it starts going again to web traffic.
- app DB doesn't support wildcard rules. When I entered 14**** it throws a red box (meaning that it is wrong, which it isn't because the hard coded rules mostly have wildcards)
 

maghuro

Very Senior Member
Well something odd happened.
I uninstalled flexqos and installed again.

Now the flexqos Gui doesn't show anything.

If it matters, I have ipv6 enabled.

Edit: added a screenshot from terminal
Edit2: found the culprit!!! It was sat between my chair and my computer. Adaptive QoS was disabled :p
 

Attachments

Last edited:

brummygit

Senior Member
I may have to tape a $20 bill to my forehead to get the attention of the Cake users... :p
Sorry, this is mainly a cross-post from the old FreshJR thread. Firstly, THANK YOU for taking this on :D

I'm one of those testing Cake, but whilst it's amazing at managing the queues, I still think there could be a future where Cake is configured with 4 or 8 "tins" using the traffic marking from adaptive QoS and your script. My reasoning is that cake shares everything fairly, whereas I had issues yesterday with multiple people viewing Premier League football being interrupted due to my bandwidth being way over subscribed, but cake trying to share it fairly. What I needed was for the low priority traffic (a large download someone else was running) to back off and only get a much reduced share of the bandwidth. Cake has a mode called "diffserv" which splits the traffic into up to 8 "tins" (essentially priority queues) but it's built in identification seems to put almost all of my traffic into it's default tin.

Whilst testing cake I haven't withdrawn my consent from Trend Micro (as per the advice on their thread) as I wanted to keep using other features including the bandwidth monitor and app analysis. I'm not bothered about memory use etc as long as my router runs fine, and I have to say that cake and Trend are living happily together.

The icing on the cake would be a collaboration between the 2 projects to get the cake benefits enhanced by traffic prioritisation. I understand that focus will currently be on polishing FlexQoS, but wanted to put my thoughts out there for future consideration.

Thanks again @dave14305
 

maghuro

Very Senior Member
Using openvpn to connect to home and all traffic is correctly cathegorized (Microsoft teams that I'm using). However it's all counting as File Transfer uploads...

Don't know if the problem persists in lan, as I'm out of home
 

dave14305

Part of the Furniture
i think i broke something, im having the same gui issue that QuikSilver did and also im getting this error in the logs, i uninstalled fresh jr qos first, before installing the script, and even after un installing yours and re installing the same bug happens

This is the output from chrome dev tools:
user3.asp:1300 Uncaught TypeError: Cannot read property 'toString' of undefined
at set_FlexQoS_mod_vars (user3.asp:1300)
at initial (user3.asp:562)
at onload (user3.asp:1519)

Log error:
Jun 25 17:28:29 custom_script: Running /jffs/scripts/service-event-end (args: restart firewall)
Jun 25 17:28:29 FlexQoS: /jffs/addons/flexqos/flexqos.sh (pid=9265) called with 2 args: -start eth0
Jun 25 17:28:29 FlexQoS: Applying iptables static rules
Jun 25 17:28:29 FlexQoS: TC Modification delayed for 0 seconds
Jun 25 17:28:29 FlexQoS: Applying AppDB static rules
Jun 25 17:28:29 FlexQoS: Applying custom bandwidth rates
Jun 25 17:28:29 FlexQoS: "rate" is required.
Jun 25 17:28:29 FlexQoS: "rate" is required.
Jun 25 17:28:29 FlexQoS: "rate" is required.
Jun 25 17:28:29 FlexQoS: "rate" is required.
Jun 25 17:28:29 FlexQoS: "rate" is required.
Jun 25 17:28:29 FlexQoS: "rate" is required.
Jun 25 17:28:29 FlexQoS: "rate" is required.
Jun 25 17:28:29 FlexQoS: "rate" is required.
Jun 25 17:28:29 FlexQoS: "rate" is required.
Jun 25 17:28:29 FlexQoS: "rate" is required.
Jun 25 17:28:29 FlexQoS: "rate" is required.
Jun 25 17:28:29 FlexQoS: "rate" is required.
Jun 25 17:28:29 FlexQoS: "rate" is required.
Jun 25 17:28:29 FlexQoS: "rate" is required.
Jun 25 17:28:29 FlexQoS: "rate" is required.
I didn’t properly setup defaults on a fresh install. I was over-focused on migration from FreshJR. So if you install FreshJR, then install FlexQoS, it should work better. I will fix that today.
 

dave14305

Part of the Furniture
How much space does a typical iptables rule use in custom_settings.txt? It looks like that's where you're saving the rules now, is that right? I'm just conscious that that file has an 8kb limit
126 chars if every field is filled to the max in a rule, which is very unlikely. It worst case will be 2999 bytes (API limit). I will start monitoring the size of the variable and the size of the full custom_settings to see how it’s growing for a user.
 

Vexira

Part of the Furniture
I didn’t properly setup defaults on a fresh install. I was over-focused on migration from FreshJR. So if you install FreshJR, then install FlexQoS, it should work better. I will fix that today.
Ohh all good I thought broke something lol here I am thinking my old age is setting in lol.

But thank you for that it works now, GUI shows up, I did the migration but the "rate" error is still appearing in the logs is there anything I can do on my end to fix it?

My AX88U doesn't have the work from home or learn form home yet so I wonder if that's the issue.
 
Last edited:

dave14305

Part of the Furniture
Hey Dave! Just one little thing I've noticed. When using ipv6, it isn't getting custom names (which we define on clientlist)

Awesome work!!!! Testing right now pal
IPv6 client list is very ephemeral in the firmware IPv6 log, at least on my network. Looking for ideas...
Another things I noticed:
The appdb rules are only applied when we press "Apply". When we made some changes on router settings that causes QoS to restart (for example applying ipv6 configs), it seems they don't stick. For example, I created a appdb rule to sent DoT to Net control packets. After qos restart, it starts going again to web traffic.
- app DB doesn't support wildcard rules. When I entered 14**** it throws a red box (meaning that it is wrong, which it isn't because the hard coded rules mostly have wildcards)
If you run flexqos -check it should reapply the rules, much like the cronjob would at 3:30am. I will look into the AppDB mark issue. My last change there was to prevent an empty rule. I will look into it.
 

immi803

Regular Contributor
I'm opting for flexqos since I think adaptive qos can work with hardware acceleration, cake can't.
what impacts in real analysis, not theoretical, you feel for hardware acceleration? any comparisons or guidelines? just for info
 

Wade Coxon

Regular Contributor
what impacts in real analysis, not theoretical, you feel for hardware acceleration? any comparisons or guidelines? just for info
In simple terms, lack of hardware acceleration means that you cannot go any faster than 300Mbps on a ac86u or ax88u.

So if your internet speed is under 200Mbps (for safety) and you have a ac86u or ax88u, then cake may be preferable as a set and forget solution.

Any faster internet speeds, different router models, or someone with specific traffic shaping requirements should stick with fq_codel and FlexQoS.
 

Adamm

Part of the Furniture
I'm opting for flexqos since I think adaptive qos can work with hardware acceleration, cake can't.
Both require runner being disabled, although I'm not quite sure if Flow Cache also needs to be disabled for Cake as per the current implementation. Will need to do some investigation on that front.

In any case its great to see Dave officially revive this project, its served users well for many years!
 

Jack Yaz

Part of the Furniture
Both require runner being disabled, although I'm not quite sure if Flow Cache also needs to be disabled for Cake as per the current implementation. Will need to do some investigation on that front.

In any case its great to see Dave officially revive this project, its served users well for many years!
i hit my 370mbps with adaptive, i havent put cake through its paces but user reports seem to suggest that you would typically see slower speeds
 

Vexira

Part of the Furniture
I'm can't wait to see the day that cake is added to adaptive QoS and become a native implementation of it.
 

raion969

Regular Contributor
so is felxqos even in the beta better than the reguald freshjr script ?, does it also work well with steam and cs go implements ?
are there any options to add 95% rule /hardcoded?
 

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