What's new

[Release] FreshJR Adaptive QOS (Improvements / Custom Rules / and Inner workings)

  • 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 did the test there, it doesn't work and my speed doesn't go up from 170 (I'm 300/15)

HW acceleration Disabled - incompatible with: QoS

Here is what I have. 300/15 direct internet advertised speed. With QoS Traditional enable and testing with my VPN client over 5G WiFi I get 186/13 mb/s. This is over VPN and it is pretty good result. I have the QoS config at 280/14 mb/s. You may be too focused on the download speed numbers.
QoS is not about improving your download speed but it is about prioritizing traffic and improving user experience. For me I have noticed that jitters when using FaceTime have disappeared and I always have a very good Skype connections. If you have not noticed, watching something like Netflix requires only 10-15 mb/s. With these speeds all you want to do is prioritize the traffic on your lan. Download speed - you should not focus on.
By default, file downloads in QoS are priorities at High not highest priority and that makes sense. Also for speed testing, notice that every test you do it will give you different results. Why is that you think?
 
As I know, It’s possible. In this case, I think using “ifb0” interface could solve this. On this way it’s possible to control the internet traffic in eth0 to multiple internal interfaces.

It’s necessary to create a mirror from eth0 ingress to ifb0 egress. Then, control all download traffic in ifb0 and upload on eth0.

But, I have no idea if this is working in asus software. I tried, I can mirror the interface, but do not control the traffic, I don’t know why and I didn’t spend too much time on this.

Correction: IFB0 does not work. I tried using MARK in iptables, but the egress traffic of IFB appear to be positioned before netfilter rules, it means at this time, it doesn't know the destination IP (it occurs before D-NAT) and not even the destination interface.

I tested using IMQ0. Just set it in the mangle table and apply the MARKs in the same chain, it doesn't matter the output interface, it will control the total traffic defined in the class.

I performed a test setting 20Mbps limit and 2 devices executing "fast.com" connected to br0 and br1 (simultaneously). The total traffic (sum of 2 devices) didn't exceed 20Mbps. So, it worked.

Someone know if there is any restriction about this?

I have no idea how this QoS script works (FreshJR), as I never tried, so, I'm not sure how the rules are created, but I think this would be just a case to change br0 to imq0 interface (after IMQ rule in iptables) and probably the QoS will work disregarding the interface, but respecting the service.
Or, maybe, not so simple!!!!!
 
Here is what I have. 300/15 direct internet advertised speed. With QoS Traditional enable and testing with my VPN client over 5G WiFi I get 186/13 mb/s. This is over VPN and it is pretty good result. I have the QoS config at 280/14 mb/s. You may be too focused on the download speed numbers.
QoS is not about improving your download speed but it is about prioritizing traffic and improving user experience. For me I have noticed that jitters when using FaceTime have disappeared and I always have a very good Skype connections. If you have not noticed, watching something like Netflix requires only 10-15 mb/s. With these speeds all you want to do is prioritize the traffic on your lan. Download speed - you should not focus on.
By default, file downloads in QoS are priorities at High not highest priority and that makes sense. Also for speed testing, notice that every test you do it will give you different results. Why is that you think?

I don't want to blur the main topic of conversation anymore, but you're wasting your bandwidth. Acceleration does not work with traditional qos. Someone else correct me if I'm saying something wrong.

To get rid of the doubt go to "tools" and look in the network part

HW acceleration

There it will tell you if it is active or not
regards
Fernando
 
I don't want to blur the main topic of conversation anymore, but you're wasting your bandwidth. Acceleration does not work with traditional qos. Someone else correct me if I'm saying something wrong.

To get rid of the doubt go to "tools" and look in the network part

HW acceleration

There it will tell you if it is active or not
regards
Fernando
That is correct HW acceleration is disabled in traditional QOS but that only really matters with high internet speeds as the router cpu wont be able to keep up. HW acceleration doesn't make anything faster it merely eases the cpu of "some" tasks and with lower sub-300mb"not exactly sure" connections it makes no difference if its on or off technically.
 
Are there any specific tweaks I can implement or rules I can create to reduce lag/ping/latency for Call of Duty Warzone? I get disconnected from the server a lot and the game lobbies I join are usually 100ms ping or higher. My Internet is fast though and running a speed test I usually get 10-15ms ping to the speedtest server and around 200-350 mbps.

I have the IP address of my console set under the GameIP and the rule looks like this:


Current Setup:
Local IP Remote IP Proto Local Port Remote Port Mark t
Rule
Rule
Rule
Rule
Gameip [Removed] both !80:443 000000 g
Appdb
Appdb
Appdb
Appdb

I feel like there are additional things I can tweak to maybe get better QoS specifically for gaming traffic. I tried using the built in WTFast that comes with the ASUS router but unfortunately this game isn't supported.

Thanks all!
 
That is correct HW acceleration is disabled in traditional QOS but that only really matters with high internet speeds as the router cpu wont be able to keep up. HW acceleration doesn't make anything faster it merely eases the cpu of "some" tasks and with lower sub-300mb"not exactly sure" connections it makes no difference if its on or off technically.

I understand that, but with my download of 300mb, without acceleration I do not go over 170mb ... I do not reach the maximum download speed that I have contracted.
 
I understand that, but with my download of 300mb, without acceleration I do not go over 170mb ... I do not reach the maximum download speed that I have contracted.
that may be... that number will differ depending on router model and cpu in it etc but 170mb with qos working properly and stable low ping can be better than 300mb with ping all over the map from downloads etc.. if you have ping sensitive apps like online gaming voip etc id go with the 170mb option.. your call of course. you need to decide what matters to you.. jitter free and stable online voice calls/gaming or a maximum dl speed
 
Has anyone ever set a custom iptables rule or appdb rule using a wildcard Mark (e.g. 13****)? Seems to result in a syntax error because it doesn’t convert the asterisks to zeros before issuing the final commands. I will try to fix this if I’m right, so I just want to confirm if anyone else has used this feature?

You can see the problem if you then run the script with -debug2, plus there will be iptables errors in your syslog from the firewall-restart.

I don't recall seeing mention of wildcards in mark values earlier in the thread. Of course, I wasn't looking specifically for that and may have missed / misunderstood in the blur of information...
 
Are there any specific tweaks I can implement or rules I can create to reduce lag/ping/latency for Call of Duty Warzone? I get disconnected from the server a lot and the game lobbies I join are usually 100ms ping or higher. My Internet is fast though and running a speed test I usually get 10-15ms ping to the speedtest server and around 200-350 mbps.

You can enter the IP address / CIDR of your console (e.g. 192.168.1.40/32) into the Gaming rule and it will treat all traffic to/from your console as gaming. Then make sure on the QoS tab that you are using the Custom priority ordering and place Game traffic highest in the list so it's getting the best treatment.

I'm assuming you're already configured with Adaptive QoS, set your bandwidth manually at optimal levels to reduce bufferbloat, e.g. DSLreports speed test. This is usually in the 85-90% range of max.
 
I don't recall seeing mention of wildcards in mark values earlier in the thread. Of course, I wasn't looking specifically for that and may have missed / misunderstood in the blur of information...
I pushed a fix for it to my fork repo. https://github.com/dave14305/FreshJR_QOS/commits/master

I wanted such a rule to catch any untracked https traffic from my TV to go into Streaming. Partly to test this feature and partly to geek out.
upload_2020-5-30_19-13-37.png
 
I understand that, but with my download of 300mb, without acceleration I do not go over 170mb ... I do not reach the maximum download speed that I have contracted.
You are forgetting from my post that I did the test over VPN. This is why I would not get even close to advertised speed of 300.
When you enable VPN client even on rt86u like in my case you will not get 300.
Ready my post again.
 
Ridiculous this thread has so much traction after so long, rightfully so as most QoS isn't very well made even in modern routers.

So, I've been attempting to prioritize one specific machine, but when I setup a rule for it (192.168.0.10/32), it results in the router eventually becoming very unresponsive even though the rule looks like it's being applied properly. It also seems to cause a lot of oscillating latency on the computer in question when the network is under load from other clients. The router will sit at 50-90% CPU utilization and download rates suffer as well even on the highly prioritized computer.

Nothing on the router is changed and removing the rule with a reset, everything returns to normal.

Added photo. I noticed some people aren't even including the netmask. Is it needed? I added it based on other posts.
 

Attachments

  • Capture.JPG
    Capture.JPG
    82 KB · Views: 181
I pushed a fix for it to my fork repo. https://github.com/dave14305/FreshJR_QOS/commits/master

I wanted such a rule to catch any untracked https traffic from my TV to go into Streaming. Partly to test this feature and partly to geek out.
View attachment 23814
I can see plenty of uses for this! How can we update to include your pushed fix? When using AMTM it doesnt show a minor change or do we need to use the curl from your github each time? If you don't mind me asking how is the 384.18 version of the script coming along? Any hiccups you for see or help you may need? I have two 86u units with varying speeds if you need things tested.

Code:
curl "https://raw.githubusercontent.com/FreshPr/FreshJR_QOS/master/FreshJR_QOS.sh" -o /jffs/scripts/FreshJR_QOS --create-dirs && sh /jffs/scripts/FreshJR_QOS -install
 
How can we update to include your pushed fix?
Recheck the github read me. I updated the URL for installing. AMTM still respects the original author, which is fine until we can prove he’s not coming back AND I know what I’m doing.
If you don't mind me asking how is the 384.18 version of the script coming along?
I’m not in a position yet to test 384.18. I’m not an Alpha male (in a lot of ways). I only have one router supporting the family so I’m less aggressive upgrading new GPL merges. Plus I need to think about the old and new schemes existing concurrently in the script.
 
Recheck the github read me. I updated the URL for installing. AMTM still respects the original author, which is fine until we can prove he’s not coming back AND I know what I’m doing.
Thanks I see the updated Readme with the new curl command. Worked perfect this morning.

I’m not in a position yet to test 384.18. I’m not an Alpha male (in a lot of ways). I only have one router supporting the family so I’m less aggressive upgrading new GPL merges. Plus I need to think about the old and new schemes existing concurrently in the script.
I understand completely. I usually do my network changes late at night or before everyone wakes up. "If momma aint happpy, aint no body happy". ;)Thanks for the update.
 
@dave14305 I tried taking your repo for a spin and receive this error message.

Code:
Placing FreshJR_QOS entry into firewall-start
mount: mounting /jffs/scripts/www_FreshJR_QoS_Stats.asp on /www/QoS_Stats.asp failed: No such file or directory
FreshJR QOS v8.9 has been installed

Seems odd to say the least, since it seems to be working for others, and there are no code changes that seem anywhat related to the error. I've had a play around but I always end up with "failed: No such file or directory".

edit: and installing FreshJR_QoS via amtm works fine.
 
Last edited:
@dave14305 I tried taking your repo for a spin and receive this error message.

Code:
Placing FreshJR_QOS entry into firewall-start
mount: mounting /jffs/scripts/www_FreshJR_QoS_Stats.asp on /www/QoS_Stats.asp failed: No such file or directory
FreshJR QOS v8.9 has been installed

Seems odd to say the least, since it seems to be working for others, and there are no code changes that seem anywhat related to the error. I've had a play around but I always end up with "failed: No such file or directory".

edit: and installing FreshJR_QoS via amtm works fine.
Is there a file /jffs/scripts/www_FreshJR_QoS_Stats.asp ? Maybe the Github download failed.
 
@dave14305 I tried taking your repo for a spin and receive this error message.

Code:
Placing FreshJR_QOS entry into firewall-start
mount: mounting /jffs/scripts/www_FreshJR_QoS_Stats.asp on /www/QoS_Stats.asp failed: No such file or directory
FreshJR QOS v8.9 has been installed

Seems odd to say the least, since it seems to be working for others, and there are no code changes that seem anywhat related to the error. I've had a play around but I always end up with "failed: No such file or directory".

edit: and installing FreshJR_QoS via amtm works fine.
Turns out FreshJR's readme on Github didn't account for downloading the ASP page. So I've updated it to match what he has in Post #2. Or choosing the update menu option would also download the ASP page.

Code:
curl "https://raw.githubusercontent.com/dave14305/FreshJR_QOS/master/FreshJR_QOS.sh" -o /jffs/scripts/FreshJR_QOS --create-dirs && curl "https://raw.githubusercontent.com/dave14305/FreshJR_QOS/master/FreshJR_QoS_Stats.asp" -o /jffs/scripts/www_FreshJR_QoS_Stats.asp && sh /jffs/scripts/FreshJR_QOS -install
 
But that should be covered by $webpath?
https://github.com/dave14305/FreshJ...49c4fcb5cbf5042c70f490c6c/FreshJR_QOS.sh#L302
Code:
webpath='/jffs/scripts/www_FreshJR_QoS_Stats.asp'       #path of FreshJR_QoS_Stats.asp

I'm pretty positive I tried this.
https://github.com/dave14305/FreshJ...9c4fcb5cbf5042c70f490c6c/FreshJR_QOS.sh#L1870
Code:
curl "https://raw.githubusercontent.com/dave14305/FreshJR_QOS/master/FreshJR_QOS.sh" -o /jffs/scripts/FreshJR_QOS --create-dirs && curl "https://raw.githubusercontent.com/dave14305/FreshJR_QOS/master/FreshJR_QoS_Stats.asp" -o "${webpath}" && sh /jffs/scripts/FreshJR_QOS -install

I got close, I replaced the output with the directory structure, but didn't think to add the filename there also. Anywho, working now, cheers.
 
I'm assuming you're already configured with Adaptive QoS, set your bandwidth manually at optimal levels to reduce bufferbloat, e.g. DSLreports speed test. This is usually in the 85-90% range of max.

I haven't set the bandwidth manually yet. I read up on it but didn't understand why I would use 90% instead of 100%. Is it so any one device/traffic category doesn't steal all the bandwidth? And every speed test is different, should I go with the average value of my spdMerlin results, which has daily, weekly, monthly test results? Or go with a different speedtest provider.

From the OP:
"
1) Use manual bandwidth with limits set to 85-95% of your non-throttled speedtest results

To zone in on the ideal bandwidth within this range you need to be aware of these relations while testing with DSLreports Speedtest:

If you are getting poor bufferbloat grade, reduce WebUI speeds
If you are getting poor quality, increase WebUI speeds."

Where are the WebUI Speed settings? I checked in the Asus GUI settings for QoS, the SSH menu for QoS, and on the DSLreports Speedtest page settings.

My DSLreports speed test results are about 1/3rd of the speeds that spdMerlin gets. DSLreports gets about 100mbs while spdMerlin gets 300mbs+ every time.


upload_2020-6-2_11-16-45.png upload_2020-6-2_11-17-50.png

Thanks!
 
Last edited:
Status
Not open for further replies.

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