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.
Priority is present as

1) Traffic Type Priority
2) Device Priority

Asus first evaluates priority by "Traffic Category".
It then goes through the process again within each traffic category to evaluate "Device Priority" INSIDE each container.

Traffic Priority is assigned via "Adaptive QOS" in webUI under the "Customize List" option.
Device Priority is assigned via "Highest, High, Medium, Default, Low" via "Bandwidth Monitor"

You can drag "Games" where you please, and the default priority recommendation already has it high up in the list.
You can set a specific device to "Highest" but I DO NOT recommend using device priority at all as the Asus implementation is poor.

As a work around if you really want a device to get highest priorty, but with sane bandwidth allocation in regards to other devices, you can make a custom rule to put all traffic from a particular IP into "Net Control" which is the top container of "Traffic Priority". (This is a hacky workaround, but that device will indeed have highest priority, with better results than the alternative of Asus built in device priority.)

I was supposed to fix the cascaded device priority in the past, but changes of Asus implementation between updates had me discontinue that goal.

Read the 1rst post entirely, and you should get a good understanding of how it actually works under the hood.


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.
 
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.

Gaming also uses VOIP for chat, so be wary of that.

You can give specific games priority by looking up to see what they are categorised under in the app dB and writing a rule to change their container.

I’d personally leave VOIP top, but redirect the app dB rule for those games you want as top knacker into the VOIP container.
 
Gaming also uses VOIP for chat, so be wary of that.

You can give specific games priority by looking up to see what they are categorised under in the app dB and writing a rule to change their container.

I’d personally leave VOIP top, but redirect the app dB rule for those games you want as top knacker into the VOIP container.

Hmm that never occurred to me. Well what I did to make things a bit easier is that I'm using the FreshJR script pretty much as is. The only thing I modified was that I moved Snapchat to Web instead of Other. Other then that I kept everything pretty much the way it is. I'll let it run for awhile and see if they get any issues. If they do then I'll do some work on the script to see if I can fix it for them. Thanks for the heads up though.

One last thing. I'm using fq_codel other the sfq because apparently it has better performance from what I read on several comments in this thread. Does this have any downsides or should I just put it back on sfq for them as default? Doesn't seem to be causing any issues at this point for them. I'm not too familiar with the whole sfq or fq_codel situation. But I figured I'd give it a try.
 
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.
I have a similar setup. When i get home ill give u the custom line for wow to add to the script so you can place it higher. I think it defaults to gaming but so does the gaming systems and theyre downloads. I find having voip/teamspeak/discord etc all the voice app highest and wow down below it since it has buffering built in. Ill post it later
 
The only game i play is Gears of War 4 on the Xbox One, can i use/add a custom line to prioritize this game or is it just enough to add the static ip address to the xbox within the script?
 
The only game i play is Gears of War 4 on the Xbox One, can i use/add a custom line to prioritize this game or is it just enough to add the static ip address to the xbox within the script?

The gaming rule will take care of it.

The only thing I modified was that I moved Snapchat to Web instead of Other. Other then that I kept everything pretty much the way it is.

That should work perfectly.

I'm using fq_codel // Does this have any downsides ?

no downsides, its better
 
You did everything correctly. It seems curl is bundled with the stock firmware on an “as-needed” basis. I assumed it was present on all Asus firmware, but your router is one of the many ones that doesn't have it.

Scp is a tool to transfer files between devices.
Curl is similar, but it transfers file from a website and onto a device.

Scp is executed on the computer. Curl is executed on the remote device/router itself.

Curl had an ease of installation bonus since it created missing directories on the destination device, unlike scp.

There will be no alternate “curl” command syntax update for stock firmware as there is nothing to update since the required executable does not exist.

@shelleyevans , the first post instructions have been updated to reflect your findings.

Glad you got it figured out and learned some tools in the process.

In any case, the scp method is superior since it is required if doing custom rules. The scp method was originally the only method explained since I didn't find it complicated and it was more versatile in regards to modifications.

Curl simply was a workaround for the installation complaints I received, but I do not like it since robs users the ability to see inside the script.
Fresh, I had the same issue and had to use scp.. I have the GT AC5300 and the router has had its fair share of issues.. But with that said im a total noob at this but I also got the script to work. Ive been lurking on here a lot and really appreciate you being so helpful to everyone. My next step is going to read a lot more on here so I can customize your script for gaming and learn things from all your help you have given here in this whole thread.. I find this very interesting.. I play a lot of Halo5 on the xbox one x. But I have a very weird thing happening that I cant for the love of me figure out what the cause is. When I start a game the game performs very well for about a minute then all of a sudden I get this slowing effect in the game and things become very sluggish.. Shots begin to not register and really the game just gets out of sync. This may not be the best explanation but I was wondering what maybe your thoughts on this might be? I totally understand it could be anything really. Im hoping that with your script I will be able to cure this very strange performance.. Again thanks for sharing so much of your knowledge with us.. Heck if it wasn't for you I wouldn't have learned even the basics of putty and scp..
 
Shots begin to not register and really the game just gets out of sync.

Does this happen with QOS disabled?

Also I wouldn't read the entire thread. First 3 posts and last few pages is enough.

The first 3 contain everything important. Last few pages for any recent issues.
 
Does this happen with QOS disabled?

Also I wouldn't read the entire thread. First 3 posts and last few pages is enough.

The first 3 contain everything important. Last few pages for any recent issues.
Thanks Fresh, I will read up on those posts you have mentioned above. Honestly I do find this all very interesting. Im all eyes and ears on what you have shared and thank you for it.. Heck ive learned more from you then I ever thought was possible when it comes to things like your script/coding and the workings of QoS.. Even though im a total noob at this and don't have a quarter grasp on it... im learning. This weird performance issue im having has totally baffled me.. Ive been a gamer for a long time and have never encountered this before. Just to be clear this issue was present before your script was used. But I will also have to give you credit your script has helped a lot though just as it is out of the box with out any customizing.. I will see what happens once I turn QoS off once.. Im not sure if ive tried that before. I would at least like to eliminate as many possibilities as possible.. Specially if it something on my end. Thanks for your reply and time I will post back what the effects are with QoS off..
 
Thanks Fresh, I will read up on those posts you have mentioned above. Honestly I do find this all very interesting. Im all eyes and ears on what you have shared and thank you for it.. Heck ive learned more from you then I ever thought was possible when it comes to things like your script/coding and the workings of QoS.. Even though im a total noob at this and don't have a quarter grasp on it... im learning. This weird performance issue im having has totally baffled me.. Ive been a gamer for a long time and have never encountered this before. Just to be clear this issue was present before your script was used. But I will also have to give you credit your script has helped a lot though just as it is out of the box with out any customizing.. I will see what happens once I turn QoS off once.. Im not sure if ive tried that before. I would at least like to eliminate as many possibilities as possible.. Specially if it something on my end. Thanks for your reply and time I will post back what the effects are with QoS off..
Stupid question but have you looked at a traceroute test?
 
I have a similar setup. When i get home ill give u the custom line for wow to add to the script so you can place it higher. I think it defaults to gaming but so does the gaming systems and theyre downloads. I find having voip/teamspeak/discord etc all the voice app highest and wow down below it since it has buffering built in. Ill post it later

Neat thanks for sharing!
 
Hi everyone,

Wondering about this script, I'm not a developer but I notice there's no "IFB" mentionned anywhere.
Does that mean there's no ingress borrowing? E.g. if you set a download ceiling of 80% for 2 different classes, they can both try to use "160%" of the available bandwith?

I might be explaining this poorly, but the general spirit of my question is that those that impliment fq_codel + SQM fully tend to use IFB for a "virtual" ingress borrowing logic. This seems to still be missing from AsusWRT, am I correct?
 
Hi everyone,

Wondering about this script, I'm not a developer but I notice there's no "IFB" mentionned anywhere.
Does that mean there's no ingress borrowing? E.g. if you set a download ceiling of 80% for 2 different classes, they can both try to use "160%" of the available bandwith?

I might be explaining this poorly, but the general spirit of my question is that those that impliment fq_codel + SQM fully tend to use IFB for a "virtual" ingress borrowing logic. This seems to still be missing from AsusWRT, am I correct?

You setup IFBs if you want to shape ingress traffic correct?

Eg. perhaps the egress traffic will be after NAT and that loses device IP information so a situation could arise where you want to shape before NAT takes place.

I didn’t look into the internal routing setup, but TC currently shapes on two interfaces

-one with download traffic egress
-one with upload traffic egress.

I did come across the situation where I wanted to shape filtering by ip of the device generating upload traffic but creating this filter was not possible when dealing with upload egresss as it occurs after nat and the ip is lost.

Instead of an IFB, with the existing setup, it was possible to mark the packet in iptables and have TC pick up that mark to create a filter with the same effect even though the IP information was lost due to nat.



Anyway if you set two ciels to 80% and both could saturate the settings. Then the higher priority class would get 80% and the lower priority class would get 20%.

Out of box all ciels are set to 100%.
Reserved bandwidth adds up to 100% for all categories present.

An example is in the first post.

There is borrowing. Borrowing is achieved with an HTB. Borrowing has nothing to do with IFB.

Sqm is a term for smart queue management.
Fq-codel is sqm.
Cake is sqm.
Sfq is not.
 
Last edited:
I was going to recommend the trial of Pingplotter next. It works as a way better trace route.

But first turn off QOS
Okay I did try with QOS off and the game did seem to not have that slowing effect. But the game didn't perform well in the manner of hit registration. But my guess is that may have to do with having more buffer bloat present because I don't have any QOS turned on.. Because of my lack of knowledge its hard to say which performs better.. With QOS on and have this slowing effect or off not having this slowing effect but also have poor hit registration..

As far as ping plotter I could try that. But last time I recall trying it I got a 100% packet loss. But my understanding from that was because the MS servers arent pingable.. The game is Hosted on MS data centers.. There seems to be a lot of Ip address that are tied to this game.. A lot of TCP type addresses that seem to communicate on port 443 and only a handful of UDP type addresses that seem to communicate on 3075.. Would it be okay to post a section of my system logs connections here so you could look at it? I was going to add it right away but wasn't sure if that was safe to do or not.. I do think if I was able to run ping plotter on some of those addresses that would really explain a lot. Or at the very least eliminate packet loss from the equation...

Thanks for all your help and time.
 
Stupid question but have you looked at a traceroute test?
That's not a stupid question at all and appreciate the question.. Ive tried ping plotter before and discovered a 100% packet loss to some of the servers ip addresses. But I was told that was normal because MS servers weren't pingable.. Maybe I was miss informed or I was doing something wrong.. But I had tried several times with no luck at all.. If you have any ideas or suggestions please feel free. Thanks!
 
That's not a stupid question at all and appreciate the question.. Ive tried ping plotter before and discovered a 100% packet loss to some of the servers ip addresses. But I was told that was normal because MS servers weren't pingable.. Maybe I was miss informed or I was doing something wrong.. But I had tried several times with no luck at all.. If you have any ideas or suggestions please feel free. Thanks!
With a traceroute you can determine where the bottleneck is if there is one. You should be able to see where it leaves your network (ISP) and where it enters theirs. Try to isolate the issue to a hop in the traceroute results. This really sounds like a network problem between you and the server. Or a congestion issue with that server. See what you can find out.
 
But my understanding from that was because the MS servers arent pingable.

Play the game as you normally would and ping google via pingplotter.

Look for bufferbloat and packet loss.

Bufferbloat should ideally be low.
Packet loss is unacceptable.

Whats your dslreports grade for quality and bufferbloat?
 
Play the game as you normally would and ping google via pingplotter.

Look for bufferbloat and packet loss.

Bufferbloat should ideally be low.
Packet loss is unacceptable.

Whats your dslreports grade for quality and bufferbloat?
Currently my bufferbloat grade is a B and my Quality is A+. Using your script with my up and down load speeds set at what they would normally be with out any QOS turned on.. So basically its my max speeds.. Hope that makes sense..
 
First I want to thank @Fresh for his contribution and helping my Asus RT-AC68U work a lot more efficient. Believe it or not, I read all 94 pages of this thread before installing the script and running it. I did edit the category % to my needs and checked my logs to make sure all is running well as well as the QOS Stats. I used the recommended QOS order by Fresh and fq_codel discipline.

This is my DSLReports test...

37561040.png


I do have two questions though:

  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.
 
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