What's new

Adaptive CAKE QoS

  • 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!

hmmm, i created service-event-end inside /jffs/scripts and put this inside

Code:
#!/bin/sh

if [ "$2" = "wrs" ] || [ "$2" = "sig_check" ]; then { sh /jffs/addons/flexcake.sh & } ; fi

and my performance fell off dramatically. idk what i'm doing wrong?
 
and my performance fell off dramatically. idk what i'm doing wrong?
Performance fell off how exactly?

Your dl/ul throughput speeds are lower? Or your bufferbloat/pings blew out?

That script should only run when a service ends. The line checks if that service was the Trend signature check, and re-runs the flexcake script.
My router already had this script file, and I just added the extra line to it. I think that the only other line in there was a cake-qos entry.

I wouldn't have thought that this would have caused any weird problems that you wouldn't have already seen from running flexcake.sh manually.
 
so i re added the ip[sets i had and now have had flexcake runnign for a few mins and the ipsets are populating with more "members" so i think that might be the issue @dave14305 knows more then us though
 
so i re added the ip[sets i had and now have had flexcake runnign for a few mins and the ipsets are populating with more "members" so i think that might be the issue @dave14305 knows more then us though

You’re mixing up different scripts and threads. CakeQoS-Merlin 2.2.0 beta uses ipsets. This thread’s script does not. FlexQoS does not.
 
so even though they are there thy arent being used by the script. ok. btw i think whats really going on here is hw accel is got something wrong with it because i did a bufferbloat test with just stock adaptive qos enabled and hwc and got a D (+40ms under load) all i did was disable hw accel and its down to +4 with download +14 with upload... i still get lower pings with flexcake/cake but still . is this a ASUS bug or a merlin bug?

I would try flashing stock but i just got everything finshed when it hought of this.. and i'm tired AF but if someone else feels up to it that would be great
 
so even though they are there thy arent being used by the script. ok. btw i think whats really going on here is hw accel is got something wrong with it because i did a bufferbloat test with just stock adaptive qos enabled and hwc and got a D (+40ms under load) all i did was disable hw accel and its down to +4 with download +14 with upload... i still get lower pings with flexcake/cake but still . is this a ASUS bug or a merlin bug?

I would try flashing stock but i just got everything finshed when it hought of this.. and i'm tired AF but if someone else feels up to it that would be great
Blame your ISP for your bufferbloat issues. These scripts assist to reduce bufferbloat and without them I would be lost since comcast bufferbloat is pretty bad. I've used Comcast routers and I've come along way with my current setup, but I'm glad I've switched to an Asus router. I tried Netgear routers, IQRouter, Google & eero mesh systems without any luck.
 
Last edited:
Blame your ISP for your bufferbloat issues. These scripts assist to reduce bufferbloat and without them I would be lost since comcast bufferbloat is pretty bad. I've used Comcast routers and I've come along way with my current setup, but I'm glad I've switched to an Asus router. I tried Netgear routers, IQRouter, Google & eero mesh systems without any luck.
again. read what i said. i'm not complaining i'm saying i think runner and flow control have a bug or something. try it. turn on hw acell and do a bufferbloat test. turn it back off.. doesnt matter if your using flex adaptive cake or no qos you will see a huge difference (if your connection isnt higher then 250mbps)
 
again. read what i said. i'm not complaining i'm saying i think runner and flow control have a bug or something. try it. turn on hw acell and do a bufferbloat test. turn it back off.. doesnt matter if your using flex adaptive cake or no qos you will see a huge difference (if your connection isnt higher then 250mbps)
Like you mentioned earlier on your earlier post. You should/I would recommend trying the stock firmware to compare the the issues (if any) you're seeing w/QoS from 3rd party to the stock fw while using the 3rd party scripts vs stock QoS.

What I meant with my comment was that at the the end of the day, most of your bufferbloat issues will be coming from your ISP. Maybe when you switch to the stock fw, all your bufferbloat issues may be fixed, who knows...

Do what's best for your environment.

Best of luck though.
 
Last edited:
A FlexQoS teaser with a long wait for the payoff...

1634085772247.png
 
haha...nice....can we try the 2.0.0 dev option already...jk? Appreciate all you do.
Adding the UI option was the easy part.

I've done the code to replace fq_codel with CAKE, disable HW acceleration, and setup basic iptables rules to map the existing Trend Micro marks to DSCP values for CAKE to consume. Now I have to work through the use of AppDB rules and mapping the Adaptive QoS categories (Gaming, Streaming, Others, etc.) to the CAKE diffserv4 tins. I want to avoid using diffserv8 because I think it's too much. It would map neatly 1-to-1, but the diffserv8 tins really have no intuitive meaning.

And then I have to figure out how to get the CAKE tc stats every 3 seconds for the GUI refresh, and reimagine the graphs since there are no rates included in the CAKE stats. So maybe back to pie charts...
 
I've done the code to replace fq_codel with CAKE, disable HW acceleration, and setup basic iptables rules to map the existing Trend Micro marks to DSCP values for CAKE to consume. Now I have to work through the use of AppDB rules and mapping the Adaptive QoS categories (Gaming, Streaming, Others, etc.) to the CAKE diffserv4 tins. I want to avoid using diffserv8 because I think it's too much. It would map neatly 1-to-1, but the diffserv8 tins really have no intuitive meaning.
Absolutely perfect :) Outstanding work!
And yes, diffserv4 is more than enough. Even the cake maintainers say they don't see any value in diffserv8 in their own tests.
 
ClassApplicationCat (dec)Cat (hex)DSCPdiffserv4 TinWME AC
File TransferringFile sharing services and tools33CS1bulkbk
File TransferringPeer-to-peer networks11CS1bulkbk
File TransferringSecurity update tools140eCS1bulkbk
GamingOnline games88CS6voicevo
Learn-From-HomeMedia streaming services44AF41videovi
Learn-From-HomeWeb services130dCS0besteffortbe
N/AAdult2216CS0besteffortbe
N/AAdvertisements261aCS1bulkbk
Net ControlManagement tools and protocols99CS6voicevo
Net ControlNetwork protocols1812CS6voicevo
Net ControlNetwork protocols1913CS0besteffortbe
Net ControlNetwork protocols2014CS0besteffortbe
OthersDatabase tools77CS0besteffortbe
OthersN/A2115CS0besteffortbe
OthersPrivate protocols2317CS0besteffortbe
OthersRemote access terminals100aCS0besteffortbe
OthersTunneling and proxy services110bCS0besteffortbe
Video and Audio StreamingMedia streaming services44AF41videovi
Web SurfingSocial networks2418CS0besteffortbe
Web SurfingWeb services130dCS0besteffortbe
Work-From-HomeBusiness tools1711AF41videovi
Work-From-HomeEmail messaging services55AF41videovi
Work-From-HomeInstant messengers00AF41videovi
Work-From-HomeVoIP services66CS6voicevo
Work-From-HomeWeb instant messengers150FAF41videovi

This is how I've drafted the mapping of Adaptive QoS categories and subcategories from the current hex marks to the necessary DSCP values to put them in the desired CAKE tin and (in a new consideration) an intentional WiFi WME Access Category.

I'm planning to eventually have these customizable just like AppDB rules today in FlexQoS. But putting this out there for comments in case anyone else is dorky enough to be interested.

If you want to know what's in each sub-category, search the /tmp/bwdpi/bwdpi.app.db file for the decimal number in the first position in the file.
Code:
# find what's in VoIP services
grep ^6, /tmp/bwdpi/bwdpi.app.db
 
Last edited:
I'm planning to eventually have these customizable just like AppDB rules today in FlexQoS. But putting this out there for comments in case anyone else is dorky enough to be interested.
Looks pretty logical to me.
The only one that jumps out is the "Remote Access Terminal". Seeing as that would imply an interactive activity, then bumping it up to Video might be good.
 
Hi Dave,

4 Tins should be more than enough. My observations has been that most people are happy with best effort. The exception seems to be some gamers who play games that flood the interface and also those with insufficient bandwidth. The gamers will want to make there game the top priority and the expense of all else. I wonder how others on there network that are streaming or using VOIP will feel when those applications experience degradation. For those with insufficient bandwidth, they would be best served if they can chose which applications get priority. I'm thinking giving the ability to customize will be critical to making them happy though I don't know if this is actually possible as some of the users of there network will have to deal with an inferiors experience. Your improvements will probably show them that you can't sough an elephant through a straw.

Good luck :-}
 
The exception seems to be some gamers who play games that flood the interface
There are not so many games that flood the interface on their own. You are talking about 1Mbps download for the worst of them (and far less than that in upload) . Adding VOIP on top of that is unlikely to tip anything over the edge unless you have a horribly slow connection.
If the interface is that slow then the various users are going to be better off coming to an verbal agreement to not use their respective services simultaneously, otherwise noone will have a satisfactory experience.

IMHO all interactive flows need to be up there in the top category (so long as they aren't massive data hogs).

Now I don't know what the various game-streaming services would be categorised as (These are the ones that run the game on the server and just stream the video to the user). Those will need to be low latency, but will be huge data hogs.
Though my earlier statement about slow connection still holds. If the game exceeds the interface's capacity in the first place, then the experience is going to be garbage anyway. The user needs to accept that their connection is incapable of supporting that activity.
 
4 Tins should be more than enough. My observations has been that most people are happy with best effort.
You don’t say? ;)
I'm thinking giving the ability to customize will be critical to making them happy though I don't know if this is actually possible as some of the users of there network will have to deal with an inferiors experience.
The trick will be to only prioritize what is important to you, or deprioritize what is unimportant to you.
 

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