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.
Using your script with my up and down load speeds set at what they would normally be with out any QOS turned on

Lower the speeds and see if it improves.

  1. If I flash my firmware (Asuswrt-Merlin, currently on 384.6) when a new firmware comes out, do I need to copy over and run the script again?
  2. I currently have NAT acceleration off since I need to use Parental Controls under AiProtection, does this degrade my performance?
Thanks for any input.

Wow man, thats a lot of reading! I really did try to put 99% of all information in the first post. The pictures I had in my posts were hosted on postimage. The links stopped working since the postimage domain changed. Reading through without pictures must have been confusing !!

1) No you don't have to reinstall. It should remain present and working.

2) Your router will use more CPU power to push traffic. Performance should be the same until the CPU hits 100%. Then bufferbloat will occur.

If your CPU can handle your speeds, then no it won't degrade performance.
Are you sure NAT acceleration is turned off? I can't believe its hitting 150mbps without acceleration.
 
Last edited:
Play the game as you normally would and ping google via pingplotter.

Look for bufferbloat and packet loss.
Fadge's stupid question of the day time - What specifically shows bufferbloat in pingplotter? Obviously, you want as low a ping as possible, with low latency records...

**This is not my home connection by the way...**

XyIxnBL.png


HU6XsXr.png


P.S. - I'm sure someone called it Pingotter further up the thread - Would have been a great name.
 
Last edited:
bufferbloat is your ping deviation above idle.

So if at idle you have 50ms ping and during load you have 200ms then you have 150ms of bufferbloat.

As pingplotter shows.
-A ping of 100ms+ is tolerable.
-A ping of 300ms+ is cause for concern and poor overall performance.

A ping of 300ms means that when visiting a website, there will be a 1/3sec delay on every click, no matter how small the payload.

pinglpotter.png
 
Last edited:
Thank you FreshJR! I appreciate the prompt response.

My sisters family doesn't really use VOIP. So I suppose I will have to prioritize GAMES above that? My newphews use the XBOX and PS4. They do have a gaming PC in which they play World of Warcraft (well most my brother-in-law LOL) and League of Legends I think it was. When it comes to WOW I know they throw a fit when they get lag or disconnections. So that's why I'm trying my best to make sure that doesn't happen and to prioritze the PC. I suppose what I will do is tell them that it's automatic and by default it should be covered by the GAMING category. In the meantime I guess I can move Snapchat I think it was and see about putting GAMING above VOIP, since like I mentioned no one in the house uses it.

custom down rules put:
${tc} filter add dev br0 protocol all prio 6 u32 match mark 0x80080016 0xc03fffff flowid ${Others} #WOW Live

custom up rules put:
${tc} filter add dev eth0 protocol all prio 6 u32 match mark 0x40080016 0xc03fffff flowid ${Others} #WOW Live

for manual wow placement. you can change (Others) to whatever category bst suits you but imo it shouldn't need to be higher than 2nd unless you have heavy data traffic in 1st priority in which case then id put it in 1st as well. Sorry for the delay ive been busy helpin a bro out with some renos.
 
Lower the speeds and see if it improves.



Wow man, thats a lot of reading! I really did try to put 99% of all information in the first post. The pictures I had in my posts were hosted on postimage. The links stopped working since the postimage domain changed. Reading through without pictures must have been confusing !!

1) No you don't have to reinstall. It should remain present and working.

2) Your router will use more CPU power to push traffic. Performance should be the same until the CPU hits 100%. Then bufferbloat will occur.

If your CPU can handle your speeds, then no it won't degrade performance.
Are you sure NAT acceleration is turned off? I can't believe its hitting 150mbps without acceleration.

Thanks for the quick reply! I haven't seen my CPU hit 100% under heavy load (2 teenagers playing games online, one streaming video and one web browsing). As far as NAT accel, the GUI shows that it is OFF (unless there is another way to check). I know it's OFF since I'm using the Parental Controls.
 
custom down rules put:
${tc} filter add dev br0 protocol all prio 6 u32 match mark 0x80080016 0xc03fffff flowid ${Others} #WOW Live

custom up rules put:
${tc} filter add dev eth0 protocol all prio 6 u32 match mark 0x40080016 0xc03fffff flowid ${Others} #WOW Live

for manual wow placement. you can change (Others) to whatever category bst suits you but imo it shouldn't need to be higher than 2nd unless you have heavy data traffic in 1st priority in which case then id put it in 1st as well. Sorry for the delay ive been busy helpin a bro out with some renos.


Thanks! I'll give this a try and see if that makes a difference for them. I've been looking at their usage and it needs a little tweaking but its not as bad as I initially thought.
 
Thanks, I added the new VPN rules and now it works without problems! (QOS + VPN Client fix reverse)
Code:
Aug 12 23:51:01 adaptive QOS: Applying - Iptable Down Rules
Aug 12 23:51:02 adaptive QOS: Applying - Iptable Up   Rules (eth0)
Aug 12 23:51:02 adaptive QOS: TC Modification Delayed Start (5min)
Aug 12 23:56:04 adaptive QOS: Applying  TC Down Rules
Aug 12 23:56:04 adaptive QOS: Applying  TC Up   Rules
Aug 12 23:56:04 adaptive QOS: Modifying TC Class Rates

Download rules:
FKrxUa3.png


Upload rules:
J1jXlJe.png


My rules in VPN Client:
icrcVhL.png

The rule with the IP 192.168.2.25, I only use it when I play on the computer, I add that static IP and when I stop playing, I change the static IP in the computer.

Other:
192.168.2.8/30 is IP range, it's like adding rules for 192.168.2.8 to 192.168.2.11
  • Static IP in DHCP
  • 1 Xbox One: 192.168.2.8
  • 2 Xbox One: 192.168.2.9
  • Play Station 4: 192.168.2.10
  • Nintendo: 192.168.2.11
http://www.subnet-calculator.com/cidr.php
I hope you don't mind me using your setup with my vpn provider. I game on my PC so having that test IP to the wan instead of the vpn would be nice. Also, why don't you use udp for your vpn? Most providers suggest to use udp or tcp for speed, but if it works for you, all power to ya :)
 
Hi,

I have 2 Apple TVs and i'm using the device priority having the Apple TV 4K (192.168.2.47) as Highest and the other Apple Tv (192.168.2.81) as Low but when both are playing the Apple TV uses more bandwidth, how to fix that?

Both are using 5 G-1 Wifi networks, i'm using Smart Wifi.

NAT Acceleration: Disabled

Merlin firmware 384.6

I have a 10Mbit ADSL connection download, and 1 Mbit upload.

QOS settings:

Adaptive QOS
Fq_codel
Download: 9
Upload: 1
WAN Packet overhead: ATM not checked, preset 19

In my customize QOS list I have #1 Gaming & #2 Video & Audio Streaming.

Here are some info that might help:


fearz@RT-AC5300-7DC0:/jffs/scripts# /jffs/scripts/FreshJR_QOS -debug
adaptive QOS: Classes Present: 8
adaptive QOS: Undf Prio: 2
adaptive QOS: Undf FlowID: 1:16
adaptive QOS: ***********
adaptive QOS: Down Band -- 9216
adaptive QOS: Downrates -- 460,2764,2304,1382,921,460,460,460
adaptive QOS: ***********
adaptive QOS: Up Band -- 1024
adaptive QOS: Uprates -- 51,307,256,153,102,51,51,51
adaptive QOS: ***********
adaptive QOS: Net = 1:10
adaptive QOS: VOIP = 1:15
adaptive QOS: Gaming = 1:11
adaptive QOS: Others = 1:16
adaptive QOS: Web = 1:13
adaptive QOS: Streaming = 1:12
adaptive QOS: Downloads = 1:14
adaptive QOS: Defaults = 1:17
adaptive QOS: ***********
adaptive QOS: FreshJR fakeTC is enabled
adaptive QOS: (Adaptive QOS is turned ON in router UI)
fearz@RT-AC5300-7DC0:/jffs/scripts#​
 
Last edited:
Hi,

I have 2 Apple TVs
Apple TV 4K (192.168.2.47) as Highest
Apple Tv (192.168.2.81) as Low

when both are playing the Apple TV uses more bandwidth, how to fix that?

Don't assign bandwidth priority to any device and then they should get fair allocation between themselves.
This was mentioned in the first post.

I said in the first posts that Asus’s implementation of bandwidth allocation per device is broken and not to use it.

A fix was possible to get that portion of QOS working as in a logical manor with the fakeTC approach, but I stopped pursing that modification.
 
Last edited:
Don't assign bandwidth priority any device and they should get even bandwidth.
This was mentioned in the first post.

I said in the first posts that Asus implementation of bandwidth allocation is broken and not to use it.

A fix was possible to get that portion of QOS working as in a logical manor with the fakeTC, but I stopped pursing it that modification.


So what happens if i assign priorities? and what if i want to give higher priority to a device? is there any work around for my situation?
 
So what happens if i assign priorities? and what if i want to give higher priority to a device? is there any work around for my situation?

Exactly what you experience. The most stupid bandwidth allocation setup possible.

Read issue #2 in first post for the full explanation. A workaround would require to build upon the fakeTC version of the script which has been discontinued. Your remaining solution is to have all devices as default priority.

Don’t ask why asus makes such poor choices and refuses to fix them. No one knows.
 
Last edited:
Getting pretty good bufferbloat results on cable here using Adaptive QoS + fq_codel (without your script). My downstream bufferbloat:

upload_2018-8-23_15-6-46.png


The script probably really help when dealing with traffic classification. The bloat handling is probably mostly done by fq_codel (and by limiting the up/downstream to 85-90% of provisioned rates).

I tried to get Asus to add fq_codel, even provided their QoS engineer with benchmark results. He found the results interesting and said he'd review them with the team, but I guess management decided not to pursue that any further :(
 
@RMerlin

Can you also suggest to them to boost the reserved bandwidth allocation across the board?

The low reserved bandwidths are the major cause for poor QOS performance. The bandwidth allocation under network load is terrible. This occurs both within the main traffic categories and cascaded device priorities.

(Doubt they will listen as they ignored fq-codel implementation, but worth a shot)

If they implement fq-codel and fix bandwidth allocation, every Asus users can have proper performance without needing to use your firmware or install the script, respectively.

Such stubbornness!
 
@RMerlin

Can you also suggest to them to boost the reserved bandwidth allocation across the board?

I generally have very little success with such suggestions (aside for a few specific cases that are exceptions - can't go into any details there), so I generally don't bother anymore, unless we're talking about a crashing issue or a security issue.

They never implemented the Traditional QoS fixes that I merged last spring either.

If they implement fq-codel and fix bandwidth allocation, every Asus users can have proper performance without needing to use your firmware or install the script, respectively.

Such stubbornness!

One theory is that maybe they can't switch their implementation to fq_codel as they might lose official technical support from Trend Micro then.


Did you check if by any chance there's anything that could be tweaked in the files they generate in /tmp/bwdpi/ ? I suspect intercepting their creation would be tricky tho, but still, might be worth investigating. Heck, maybe some values could even be recoded by editing the bwdpi binary blobs (I did it once to fix a typo they did in one of their tc commands)...
 
One theory is that maybe they can't switch their implementation to fq_codel as they might lose official technical support from Trend Micro then.

That might be true for the queing disciplines but I know that’s not the case for minimum reserved bandwidths as they have adjusted it in recent firmware updates.

They should just have the thing add up to 100%. :mad:

On the licensing end that’s all negotiable, especially with a contract of their scale. It’s not like they have no leverage but this isn’t our business.

Skip the hassle since they won’t listen.

Off topic:
I’d say either they don’t care or they want to save it as an upgrade in an upcoming product.

My view is that you should give people a great product and they will purchase your brand again in the future.

People who find QOS important will probably look for routers actively involved with the bufferbloat project. The new competition in the consumer space is great.
 
Last edited:
My view is that you should give people a great product and they will purchase your brand again in the future.

They could have added it to their HND models - especially since fq_codel ships with the 4.1 kernel, no patching required. Label it as "Improved Adaptive QoS" or "Adaptive QoS 2.0" even, give the marketing drone more bulletpoints to add to their marketing propaganda :)

I also recommended that they allowed users to use fullcone NAT on their GT-AC5300, especially as it would be something the gaming community would actively look for when shopping for a new "gaming" router, without any success. So for now, it's only available to RT-AC86U users of my firmware.

That's why I just decided to step back a bit, and stop trying to push too hard for potential improvements. In a way, I don't want to start coming off as being pushy, being a complete outsider to them.

The new competition in the consumer space is great.

Might be interesting to see if DumaOS leverages it. I suspect they do, since they're based on OpenWRT.
 
I hope you don't mind me using your setup with my vpn provider.
You're welcome :D

I game on my PC so having that test IP to the wan instead of the vpn would be nice. Also, why don't you use udp for your vpn? Most providers suggest to use udp or tcp for speed, but if it works for you, all power to ya :)
That VPN company only allows TCP protocol when using Double VPN, but with only one VPN server, it is allowed to use TCP and UDP.

I only use it for security, I do not feel any change when I use UDP or TCP and on the computer I am using another VPN called VPN.AC

Note: When I play games like Fortnite, I stop using VPN on the computer and use the IP Test (192.168.2.25)
 
Last edited:
Fadge's stupid question of the day time - What specifically shows bufferbloat in pingplotter? Obviously, you want as low a ping as possible, with low latency records...

**This is not my home connection by the way...**

XyIxnBL.png


HU6XsXr.png


P.S. - I'm sure someone called it Pingotter further up the thread - Would have been a great name.

The same problem that those images I had when I used Dynamic IP and after I hired a Static/Dedicated IP with my ISP, my problem was solved and I have a stable connection/ping. (I had to add the IP manually to the router)
 
Last edited:
The same problem that those images I had when I used Dynamic IP and after I hired a Static/Dedicated IP with my ISP, my problem was solved and I have a stable connection/ping. (I had to add the IP manually to the router)

Thanks, but that was just a pingplotter example from my hugely uneconomically routed work network.

My home network runs just fine, with the odd spike. Round trip to google is ~24 ms
 
Status
Not open for further replies.

Sign Up For SNBForums Daily Digest

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