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 have observed a need to wait approx 5 mins after adjusting QOS settings, before running the next test.

I'm pretty sure that means the manual bandwidth settings.

Yes, the FreshJRQoS script has a built-in 5 minute delay before it enables its rules. This is to give the default Asus QoS rules to be fully defined and live before the FreshJRQoS script modifies them. You can see this in the system log.

BTW, thanks for the tip on using your own ping test to check for bufferbloat. I have pingplotter installed so presumably I could use that for this to doublecheck the results I'm seeing from DSLReports speed test.
 
Umm, so i noticed an AppDB section...can i use that to add Youtube/others?

Also how to get the Mark?
@fearz some of this info is explained in the 1st page. Check it out!
 
Dave
in my traffic classification pie graphs I have TWO Net Control Packets Class and a Working From Home Class. The additional Net Control Packets class seems to have replaced the Games Transferring class. I have rebooted twice and I am on 8.9b3. Check my signature for version info. Cheers.
 
Dave
in my traffic classification pie graphs I have TWO Net Control Packets Class and a Working From Home Class. The additional Net Control Packets class seems to have replaced the Games Transferring class. I have rebooted twice and I am on 8.9b3. Check my signature for version info. Cheers.

Joe - I last saw this problem when the install was inadvertently run from the "master" branch on Github instead of the "develop" branch?
Try an uninstall then reinstall from here
 
I've been annoyed by the 300 second startup delay since I started using the script. The QoS rule setup was allegedly slower back then partly due to RMerlin's shell-based faketc implementation. But back in 384.14, RMerlin re-implemented faketc as a C program for improved performance. Unfortunately, when that happened, we lost the debug feature inherent in the shell implementation, so it was hard to measure the positive performance impact, at least for us mortals.

Today I was poking around where I probably shouldn't be and came across /proc/bw_qos_debug. This is one of those files you can echo a value into to increase the QoS debug log level. By using "echo 2 > /proc/bw_qos_debug" and running "service restart_qos" you can see in the syslog how quickly all the tc commands are now processed (and most of it is waiting for the tdts_rule_agent). On my AC68U, it took about 30 seconds from the time it deletes the root qdiscs to the time it's finished adding the last filter. So I will keep experimenting to see if there's any reason we can't reliably cut the sleep down dramatically in the next iteration of the script.

And if you play with the /proc/bw_qos_debug, be sure to set it back to 1 when you're done to avoid app session logs.
Code:
echo 1 > /proc/bw_qos_debug
 
I've been annoyed by the 300 second startup delay since I started using the script. The QoS rule setup was allegedly slower back then partly due to RMerlin's shell-based faketc implementation. But back in 384.14, RMerlin re-implemented faketc as a C program for improved performance. Unfortunately, when that happened, we lost the debug feature inherent in the shell implementation, so it was hard to measure the positive performance impact, at least for us mortals.

Today I was poking around where I probably shouldn't be and came across /proc/bw_qos_debug. This is one of those files you can echo a value into to increase the QoS debug log level. By using "echo 2 > /proc/bw_qos_debug" and running "service restart_qos" you can see in the syslog how quickly all the tc commands are now processed (and most of it is waiting for the tdts_rule_agent). On my AC68U, it took about 30 seconds from the time it deletes the root qdiscs to the time it's finished adding the last filter. So I will keep experimenting to see if there's any reason we can't reliably cut the sleep down dramatically in the next iteration of the script.

And if you play with the /proc/bw_qos_debug, be sure to set it back to 1 when you're done to avoid app session logs.
Code:
echo 1 > /proc/bw_qos_debug
it always annoyed me as well.. I use 30sec on my 3100 without issue. id bet 50 or 60sec be good for any hardware and hella better than 3min
 
Joe - I last saw this problem when the install was inadvertently run from the "master" branch on Github instead of the "develop" branch?
Try an uninstall then reinstall from here
I'm seeing the same issue - I've reinstalled from the development branch. Checking the version reports "FreshJR QOS v8.9b3 released 06/05/2020". I'm running the latest 384.18 alpha on my RT-AX88U.
upload_2020-6-10_10-10-59.png
 
I'm seeing the same issue - I've reinstalled from the development branch. Checking the version reports "FreshJR QOS v8.9b3 released 06/05/2020". I'm running the latest 384.18 alpha on my RT-AX88U.
View attachment 24013
The AX builds don’t have the new QoS categories yet, as I understand it. Only the AC mainline does. Welcome to Merlin’s GPL challenge. Net Control packets appears twice because your nvram doesn’t have the new Learn-From-Home category numbers “4,13” in the priority list. So the lookup fails and it picks up the label at position 0 which is Net Control.

Hopefully this will all equalize before the beta phase of 384.18, but hard to know at this point.
 
The AX builds don’t have the new QoS categories yet, as I understand it. Only the AC mainline does. Welcome to Merlin’s GPL challenge. Net Control packets appears twice because your nvram doesn’t have the new Learn-From-Home category numbers “4,13” in the priority list. So the lookup fails and it picks up the label at position 0 which is Net Control.

Hopefully this will all equalize before the beta phase of 384.18, but hard to know at this point.
Thanks, that was my misunderstanding that they were included (although I know that 384_9107 can't yet be merged in).

I assume running your fixed version for 384.17 would work then? If so, can you confirm the installation location / process for that one (EDIT: Is it the Master branch)?
 
it always annoyed me as well.. I use 30sec on my 3100 without issue. id bet 50 or 60sec be good for any hardware and hella better than 3min
I didn’t do enough testing yet to be certain, but I think everything important was created before the firewall-start script was even invoked. So a delay can probably be replaced by a rule count and only sleep for a few seconds if necessary.
 
I assume running your fixed version for 384.17 would work then? If so, can you confirm the installation location / process for that one?
It’s the master branch. Life would be less confusing if FreshJR were around to at least merge pull requests.
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
 
It’s the master branch. Life would be less confusing if FreshJR were around to at least merge pull requests.
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
Thank you for the clarification - all working correctly now :oops:
 
@dave14305
I sometimes play COD(call of duty) game on my phone
How to add this game in appdb?
I set my ps4 with ip/32 , 32 because I've single console attached, and it's showing traffic properly
Please help with mobile app thingy?
 
@dave14305
I sometimes play COD(call of duty) game on my phone
How to add this game in appdb?
I set my ps4 with ip/32 , 32 because I've single console attached, and it's showing traffic properly
Please help with mobile app thingy?
Trend Micro defines the appdb. I don't understand what you want.
 
@dave14305
I sometimes play COD(call of duty) game on my phone
How to add this game in appdb?
I set my ps4 with ip/32 , 32 because I've single console attached, and it's showing traffic properly
Please help with mobile app thingy?
Add phone as you did ps4 console or as your playing click on Mark and add it to the proper category.
 
@dave14305 @QuikSilver
Feeling bad for my lack of knowledge, but someday one learns, and I'm sure it'll too :)
Yes exactly i want to know how i can be sure of mobile game mark, so i put that mark in appdb option and select category as gaming
Want to know how i can detect the right mark for game, many ips going to untracked for my phone , as showing in classification?
 
@dave14305 @QuikSilver
Feeling bad for my lack of knowledge, but someday one learns, and I'm sure it'll too :)
Yes exactly i want to know how i can be sure of mobile game mark, so i put that mark in appdb option and select category as gaming
Want to know how i can detect the right mark for game, many ips going to untracked for my phone , as showing in classification?
You should filter the list to display only your phone, then play the game. For connections marked Untracked, see if the remote ports are tcp or udp, and if they are 80/443 or other non-standard ports. You could make a rule for your phone similar to the Gaming rule where local IP is the phone, remote ports !80,443 and mark 000000, redirect to gaming. But the actual details of your connections will determine the best combination.

The script only implements the rule. You have to create the rule in your head first. ;)
 
You should filter the list to display only your phone, then play the game. For connections marked Untracked, see if the remote ports are tcp or udp, and if they are 80/443 or other non-standard ports. You could make a rule for your phone similar to the Gaming rule where local IP is the phone, remote ports !80,443 and mark 000000, redirect to gaming. But the actual details of your connections will determine the best combination.

The script only implements the rule. You have to create the rule in your head first. ;)
Got the idea
Thanks alot for explaining :)
 
Last edited:
it always annoyed me as well.. I use 30sec on my 3100 without issue. id bet 50 or 60sec be good for any hardware and hella better than 3min

How do we change the start up delay?
 
Status
Not open for further replies.

Latest threads

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