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.
Thank you Fresh for the update. Does this update fix "port 563 showing under VoIP" issue?

nzb right? Create a custom rule to get it where you want it.

Tried to load this on my AC88U yesterday....didn't work.
Previously had version 1.9 working last year but decided i didnt need it so uninstalled it.

Any advice?
Im on the latest beta

If you are going from the fast/experimental version to compatible, you will need to uninstall the experimental version before installing the compatible version. (That or install the compatible version over the experimental and perform a system reboot)


How can I provide any more help without logs. I'm shooting in the dark here.

I will automate this uninstall step when switching versions. I didn't think of it at time. For now it has to be done manually.

Any advice?
Im on the latest beta

It is out of beta. Do you mean on the experimental version in the first post.

Try running

/jffs/scripts/FreshJR_QOS -uninstall
or
/jffs/scripts/FreshJR_QOS uninstall
(Syntax changed out of beta, that's why there is two different uninstall commands)

The uninstall will clear any mounts or prompt you to restart the router if the umount command fails.

After the reboot or successful uninstall, follow the install instructions (pscp over current version if you have an older one present).
We can continue from there.
 
Last edited:
Hey guys I'm getting lost in the dport/sport here. I think ive got myself all confused trying to determine if I require both or just one. For a game here specifically my connections are as follows:

nat'd address
192.168.10.120:56722
dest port
94.31.61.21:30584 ASSURED

with rousource monitor I'm only seeing my pc listening for port 56722 which I think changes everytime I play so ive made these rules:

${tc} filter add dev br0 protocol all prio $1 u32 match ip dport 30584 0xffff flowid ${VOIP}
${tc} filter add dev eth0 protocol all prio $1 u32 match ip sport 30584 0xffff flowid ${VOIP}

um using the voip as my top priority container.. not a lot of data but highest priority in my house. I think I'm only requiring the outbound one on the eth0 because I have the unclassified also going into VOIP on the inbound.

Ive totally confused myself researching it here and would really appreciate someone bringing me back down to earth here! :)

Also testing the new compatible.. Excited about the new check and hoping I can use it to refine my personal time down from 3min. :)
 
sinner said:
Also testing the new compatible.. Excited about the new check and hoping I can use it to refine my personal time down from 3min. :)

Not recommended. QOS initilization time varies depending on router load. 5 min is new recommended value for all fw380+.

If you want instant results, use the fast version.

Stability will be significantly worse if you keep reducing the sleep time when compared simply switching to the fast/experimental version. Just doesn't make any sense to do so.

For download
94.31.61.21:30584 = source
192.168.10.120:56722 = destination

For upload
192.168.10.120:56722 = source
94.31.61.21:30584 = destination

I already told you in PM, you CANNOT create rules for ports 49152 - 65535.
Those are dynamic/ephemeral ports.
They are randomly assigned for all website connections && apps that use them.
No port rule will ever work in the dynamic/ephemeral range as it will be assigned a different random port on next connection.

Either filter by server PORT or server IP if those are constant
 
Last edited:
Thanks fresh.. I remember clearly you telling me that thus I haven't considered doing that. What I WAS researching was why those lines aren't working and wanted to make sure they were correct. As a test I've swapped them into "Others" for the past hour, even hit apply on qos 2nd time and game is running..
Download
Class Total Rate Packet rate
Net Control Packets 1024.00 Bytes 0 bit 0 pps
Others 0.00 Bytes 0 bit 0 pps
VoIP and Instant Messaging 57.66 KB 480 bit 1 pps
Web Surfing 196.89 KB 728 bit 0 pps
Video and Audio Streaming 819.29 KB 0 bit 0 pps
Gaming 0.00 Bytes 0 bit 0 pps
File Transferring 15.76 KB 0 bit 0 pps
Default 3.83 KB 0 bit 0 pps

Upload
Class Total Rate Packet rate
Net Control Packets 2.18 KB 0 bit 0 pps
Others 0.00 Bytes 0 bit 0 pps
VoIP and Instant Messaging 58.88 KB 488 bit 1 pps
Web Surfing 99.81 KB 768 bit 0 pps
Video and Audio Streaming 260.20 KB 0 bit 0 pps
Gaming 0.00 Bytes 0 bit 0 pps
File Transferring 1.37 KB 0 bit 0 pps
Default 4.21 KB 0 bit 0 pps

and yet resource monitor and connections in router report 94.31.61.21:30584 = destination
Sorry yet again if I'm overly troubling you with this ridiculousness. Maybe someone else has an idea?
 
It's both a source and destination depending on which way traffic is flowing
I guess whats confusing me is do I require both lines if I'm sending to 30584 and listening on dynamic/ephemeral ports? I assumed the dynamic/ephemeral ports were being handled by your line redirecting unidentified to wherever?
 
Uhh, I don't know how to explain this any simpler

Code:
For download
94.31.61.21:30584 = source
192.168.10.120:56722 = destination  <--- cannot filter on this

For upload
192.168.10.120:56722 = source   <--- cannot filter on this
94.31.61.21:30584 = destination

After removing the unfilterable elements, you have following filterable entries:

For download
94.31.61.21:30584 = source

For upload
94.31.61.21:30584 = destination


Filter download by src ip or sport
Filter upload by dst ip or dport (TC rule for this upload rule, not the iptables variant)

The iptables varient for upload is only needed when upload traffic is to be filtered by src port or ip.

.....


You have to verify if the game is always hosted on same server or same port.

Otherwise, all rules do exactally what they state.
IF something is unidentified by Asus qos definition THEN that will be redirected to "Others" instead of "defaults", nothing more, nothing less.

There is no mystery to uncover.
 
Last edited:
I have tried and tried and I cannot break this script!! It's awesome! Nice work @FreshJR ...:D
 
I have tried and tried and I cannot break this script!! It's awesome! Nice work @FreshJR ...:D

I can think of a way.
-If the rates are not able to be applied after the 5min timer, any following persistence checks will also not reapply users custom rates.

The persistence check only checks for presence of the "unidentified Traffic -> "defaults" factory rule to see if the script has to be reran.

If the script modification only applied custom rules but not rates, this means subsequent persistence checks will never trigger a script rerun and the users custom rates will never be rectified.

If this proves to be a problem, I will have to update the persistence check to become a little smarter, but for now, I we should be okay.

Currently it's a harmless fringe possibility.
 
Last edited:
I can think of a way.
-If the rates are not able to be applied within the 5min timer, all following persistence checks will all fail to update rates. The persistence check only checks for presence of the "unidentified Traffic -> Others" custom rule. If it is not present, only then is the script triggered.

If this proves to be a problem, I will have to update the persistence check, but for now, I think we might be okay.
IMHO using the compatible version of the script and waiting the 5 minutes for it to start, results in a very stable script. That being said I have not tried what you suggest.
 
Hello.

In the fast version can I put in the bandwidth setup rates of less then 5%?
For example putting Default_DownBandPercent=0.

Thanks.
 
Hello.

In the fast version can I put in the bandwidth setup rates of less then 5%?
For example putting Default_DownBandPercent=0.

Thanks.

No you cannot.

Keep in mind, the 5% doesn't waste any bandwidth so keep it at 5 even if its never used.

The 5% that is assigned to the unused "defaults" category will spill over into the next category which is netcontrol -> then again next category -> etc, so do not worry about its presence.

The 5% is a hard minimum for all.

-----

Comments in this section should state

Code:
minimum value per section 5, sum should not be greater than 100

but I see the "fast" version has outdated comments
 
Last edited:
Apologies if this has already been covered, but I've just gotten merlin and this script running today. Wired and 5ghz devices are running beautifully, but 2.4ghz would need to be throttled quite a bit more to keep latency down on that band. Is there a way to do this without dragging everything else down?
 
. Is there a way to do this without dragging everything else down?

Not with the current setup. There might be a way by assigning all 2.4g devices a priority then bandwidth limiting that device priority via subclass rates, but I haven't experimented with sub class rates yet.

Do you have 40mhz assigned on the 2.4g band? That should provide a nice chunk of bandwidth.

I'm not even sure how different that would be from hitting the bandwidth cap offered by the 24g antenna performance wise.


--

I saw your other thread that you get high ping while on the 2.4g band. What is your ISP's bandwidth?
 
Last edited:
I'm paying for 100/10 but get about 115/12. I should point out that I'm really gutting my bandwidth in exchange for rock solid latency, I'm sure many are not as picky. Before loading this script I was running the original QoS at about 55 Mbps down in order to have +5 ping under load. Now I'm able to enjoy the same ping at about 75-85 down with these optimizations + codel. Tried a few different wireless settings including 40mhz but anything outside of 35 down (2.4 only) with codel through adaptive QoS is pretty bad. Was hoping the script would magically infect the "Bandwidth Limiter" radial/menu but that does not seem to be the case
 
I'm paying for 100/10 but get about 115/12. I should point out that I'm really gutting my bandwidth in exchange for rock solid latency, I'm sure many are not as picky. Before loading this script I was running the original QoS at about 55 Mbps down in order to have +5 ping under load. Now I'm able to enjoy the same ping at about 75-85 down with these optimizations + codel. Tried a few different wireless settings including 40mhz but anything outside of 35 down (2.4 only) with codel through adaptive QoS is pretty bad. Was hoping the script would magically infect the "Bandwidth Limiter" radial/menu but that does not seem to be the case

Wireless n should be good upto 300mbps on 2.4g.
I think wireless ac even bumps it up to 600mbps.
Are your devices connected as wireless-n?

It makes no different for QOS is your devices are 2.4g, 5g, or wireless.
QOS is implemented between the router and your modem.

No idea where you bufferbloat is comming from on the 2.4g network. You might have defective hardware.
 
Last edited:
I think you're right, after more testing it seems I have a motley crew of devices on 2.4. I was casting doubt on the 2.4ghz chip/driver but that seems unlikely.
 
Hey Fresh, can you please share the default prioritizing settings since you recommended it in the first page. I've adjusted mine multiple time and not sure how to reset it.

I keep all devices set to default priority. It's the grey icon you drag over the device if you want it back to default.

At that point all devices are equal priority and share bandwidth randomly.
 
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