Here is an updated version that should work for v382.
https://pastebin.com/5nMP45ev
This version is temporary. I just wanted to push something out for everyone that is waiting. I will release a new version that integrates with the tc command interceptor that Merlin has implemented and scrap the current approach we have used up untill now entirely.
Using the new interposer method means we can edit these values as they are created during runtime, instead of changing them after. It will eliminate the current hacky sleep that waits until ASUS QOS finishes setting up its own values and multiple instances that are sometimes spawned from the firewall-start command.
As for the current version, I implemented that script lock that Jack Yaz took from another script. It will eliminate the multiple instances that occur for some users using the current approach. The hacky sleep method has been increased generously, as the QOS initiates quite slow in this latest firmware version.
I also see that ASUS fixed the minimum alloted bandwidth per category, as it is now a more reasonable value. With that partially fixed, I still kept the user definable bandwidth allotments active in the script so power users will have fine control. I also see that ASUS has changed the burst/cburst values as they differ per category. I simply query all their values and keep them as they are.
I would have to look into what an the most appropriate value is for VOIP, as setting it manually may be beneficial for performance.
I have no ETA on whent he improved interposer version of this script will be ready as I am a little busy at the moment. This release had minimal testing, but it does function. The interposer will simply be more efficient but functionality will be the same.
Extensive testing has dropped, as I am not a user of the script anymore, so I will not notice any oddities. I recently got upgraded to gigabit internet, so it makes no sense to take the performance hit of having hardware acceleration disabled to perform unnecessary QOS.
Vexira this portion is for you
Code:
DownCeil="$(printf "%.0f" $(nvram get qos_ibw))"
UpCeil="$(printf "%.0f" $(nvram get qos_obw))"
DownCeil="$(expr ${DownCeil} \* 95 / 100)"
UpCeil="$(expr ${UpCeil} \* 95 / 100)"
It should change bandwidth to 95% of the inputted values into the QOS engine. They way you don't have to lower the number yourself. Try it and see if it works. Just add the two DownCeil/UpCeil commands below the two existing ones. The expr takes the existing value, multiplies by 95 then divides by 100.
Note: 382 has a bug where QOS sometimes does not initiate after a reboot. This is an ASUS bug and not a script bug.