What's new

CakeQOS CakeQOS-Merlin

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

In my particular case, which have an LTE 40/10 connection, it'd be useful.
For defining a fixed bandwidth on download, but to have for example autorate-ingress on upload, which is very floating. My upload floats very much between 1 and 10 mbit.
As for download, it's always on 35 more or less.

I still feel like I am missing the point, wouldn't autorate-ingress keep a consistent download rate value if it wasn't fluxuating upstream?
 
I've been testing (as I remembered reading the information somewhere) and all that is needed is to change the validation for the bandwidth values so that they accept 0 (zero) - this is taken by cake as unlimited.

I manually edited my cake-qos.cfg to the following
Code:
##############################################
## Generated By Cake - Do Not Manually Edit ##
## Jun 27 11:47:36                          ##
##############################################

## Installer ##
dlspeed="0"
upspeed="0"
queueprio="diffserv4"
extraoptions="bridged-ptm ack-filter"

##############################################

And the result is:

Code:
CakeQOS-Merlin - v1.0.0: Running...
CakeQOS-Merlin - v1.0.0: > Download Status:
qdisc cake 8010: dev ifb9eth0 root refcnt 2 bandwidth unlimited diffserv4 triple-isolate nat nowash ingress ack-filter split-gso rtt 100.0ms ptm overhead 22 no-sce
CakeQOS-Merlin - v1.0.0: > Upload Status:
qdisc cake 800f: dev eth0 root refcnt 2 bandwidth unlimited diffserv4 triple-isolate nat nowash ack-filter split-gso rtt 100.0ms ptm overhead 22 no-sce
And for autorate-ingress? Do we have do specify some bandwithd?
 
i got the same effect without having to set speeds to zero:

Code:
dlspeed="550"
upspeed="15"
queueprio="diffserv4"
extraoptions="docsis unlimited dual-srchost ack-filter"

Code:
CakeQOS-Merlin: > Download Status:
qdisc cake 801a: dev ifb9eth0 root refcnt 2 bandwidth unlimited diffserv4 dual-srchost nat wash ingress ack-filter split-gso rtt 100.0ms noatm overhead 18 mpu 64 no-sce
CakeQOS-Merlin: > Upload Status:
qdisc cake 8019: dev eth0 root refcnt 2 bandwidth unlimited diffserv4 dual-srchost nat nowash ack-filter split-gso rtt 100.0ms noatm overhead 18 mpu 64 no-sce

Correct, having the unlimited value in your extra options will take priority;

Code:
skynet@RT-AX88U-DC28:/jffs/addons/cake-qos# cake-qos status

#########################################################
##               _                                     ##
##              | |                                    ##
##    ___  __ _ | | __ ___          __ _   ___   ___   ##
##   / __|/ _` || |/ // _ \ ______ / _` | / _ \ / __|  ##
##  | (__ |(_| ||   <|  __/|______| (_| || (_) |\__ \  ##
##   \___|\__,_||_|\_\\___|        \__, | \___/ |___/  ##
##                                    | |              ##
##                                    |_|              ##
##                                                     ##
##      https://github.com/ttgapers/cakeqos-merlin     ##
##                        v1.0.1                       ##
##                                                     ##
#########################################################


#########################################################

CakeQOS-Merlin: Running...
CakeQOS-Merlin: > Download Status:
qdisc cake 8010: dev ifb9eth0 root refcnt 2 bandwidth 92Mbit besteffort triple-isolate nat wash ingress ack-filter split-gso rtt 100.0ms noatm overhead 38 mpu 84 no-sce
CakeQOS-Merlin: > Upload Status:
qdisc cake 800f: dev eth0 root refcnt 2 bandwidth 37Mbit besteffort triple-isolate nat nowash ack-filter split-gso rtt 100.0ms noatm overhead 38 mpu 84 no-sce

#########################################################

skynet@RT-AX88U-DC28:/jffs/addons/cake-qos# cake-qos settings extraoptions "unlimited ethernet ack-filter"

#########################################################
##               _                                     ##
##              | |                                    ##
##    ___  __ _ | | __ ___          __ _   ___   ___   ##
##   / __|/ _` || |/ // _ \ ______ / _` | / _ \ / __|  ##
##  | (__ |(_| ||   <|  __/|______| (_| || (_) |\__ \  ##
##   \___|\__,_||_|\_\\___|        \__, | \___/ |___/  ##
##                                    | |              ##
##                                    |_|              ##
##                                                     ##
##      https://github.com/ttgapers/cakeqos-merlin     ##
##                        v1.0.1                       ##
##                                                     ##
#########################################################


#########################################################

CakeQOS-Merlin: Stopping
Broadcom Packet Flow Cache HW acceleration <ENABLED>
CPU Speed (*) ==> Enable
Changing power settings. Setting cpu frequency setting to adaptive.
Broadcom Packet Flow Cache learning via BLOG enabled.
CakeQOS-Merlin: Starting - ( 92Mbit | 37Mbit | besteffort | unlimited ethernet ack-filter )
Broadcom Packet Flow Cache HW acceleration <DISABLED>
CPU Speed (*) ==> Disable
Changing power settings. Forcing cpu to max frequency.
   Set cpuspeed to on(pwr config --cpuspeed on) to make it adaptive again
Broadcom Packet Flow Cache learning via BLOG disabled.
Broadcom Packet Flow Cache flushing the flows

#########################################################

skynet@RT-AX88U-DC28:/jffs/addons/cake-qos# cake-qos status

#########################################################
##               _                                     ##
##              | |                                    ##
##    ___  __ _ | | __ ___          __ _   ___   ___   ##
##   / __|/ _` || |/ // _ \ ______ / _` | / _ \ / __|  ##
##  | (__ |(_| ||   <|  __/|______| (_| || (_) |\__ \  ##
##   \___|\__,_||_|\_\\___|        \__, | \___/ |___/  ##
##                                    | |              ##
##                                    |_|              ##
##                                                     ##
##      https://github.com/ttgapers/cakeqos-merlin     ##
##                        v1.0.1                       ##
##                                                     ##
#########################################################


#########################################################

CakeQOS-Merlin: Running...
CakeQOS-Merlin: > Download Status:
qdisc cake 8012: dev ifb9eth0 root refcnt 2 bandwidth unlimited besteffort triple-isolate nat wash ingress ack-filter split-gso rtt 100.0ms noatm overhead 38 mpu 84 no-sce
CakeQOS-Merlin: > Upload Status:
qdisc cake 8011: dev eth0 root refcnt 2 bandwidth unlimited besteffort triple-isolate nat nowash ack-filter split-gso rtt 100.0ms noatm overhead 38 mpu 84 no-sce

#########################################################

skynet@RT-AX88U-DC28:/jffs/addons/cake-qos#
 
In my particular case, which have an LTE 40/10 connection, it'd be useful.
For defining a fixed bandwidth on download, but to have for example autorate-ingress on upload, which is very floating. My upload floats very much between 1 and 10 mbit.
As for download, it's always on 35 more or less.

i have the same problem. my UL varies from 2Mbps to 20Mbps during workhours.
autorate-ingress helped my case (i applied it to both UL/DL). from my results, it looked like it would have been better if it could have been applied to UL only (cake-qos script doesn't allow it, but also from the TC man page, it wasn't clear to me if it is ok to apply in only one direction. probably it is).

but right now i'm using "unlimited" instead. surprisingly i'm getting better results (even with the speed on my UL changing between 10Mbps to 20Mbps on a weekend). but i still need to see how it handles on a workday when my ISP network gets really congested (and changes between 2Mbps and 20Mbps). fingers crossed
 
Last edited:
And for autorate-ingress? Do we have do specify some bandwithd?
you should. it's the starting point. and autorate takes it from there. this is per the man page.

you probably can skip it, and cake can start with autorate without specifying speeds, but i like to have the visual reminder on the config, of the initial estimates for the speeds

this was my config for my autorate test:

Code:
dlspeed="550"
upspeed="15"
queueprio="diffserv4"
extraoptions="docsis autorate-ingress ack-filter"
 
Last edited:
i got the same effect without having to set speeds to zero:

Code:
dlspeed="550"
upspeed="15"
queueprio="diffserv4"
extraoptions="docsis unlimited dual-srchost ack-filter"

Code:
CakeQOS-Merlin: > Download Status:
qdisc cake 801a: dev ifb9eth0 root refcnt 2 bandwidth unlimited diffserv4 dual-srchost nat wash ingress ack-filter split-gso rtt 100.0ms noatm overhead 18 mpu 64 no-sce
CakeQOS-Merlin: > Upload Status:
qdisc cake 8019: dev eth0 root refcnt 2 bandwidth unlimited diffserv4 dual-srchost nat nowash ack-filter split-gso rtt 100.0ms noatm overhead 18 mpu 64 no-sce
Even simpler :D
 
I still feel like I am missing the point, wouldn't autorate-ingress keep a consistent download rate value if it wasn't fluxuating upstream?
My experience with autorate-ingress is that during low utilisation it's bandwidth estimation falls back towards zero and takes some seconds to get back to full capacity. It's also causing higher bufferbloat in my tests (not terrible but worse) therefore the option to apply in one direction only might be helpful.

Also for people with highly asymetrical services it could be useful to allow the download to run without limits whilst the upload is well managed.
 
And for autorate-ingress? Do we have do specify some bandwithd?
You don't have to, but as @ugandy said, it seems to be beneficial.
autorate-ingress
Automatic capacity estimation based on traffic arriving at this
qdisc. This is most likely to be useful with cellular links, which
tend to change quality randomly. A bandwidth parameter can be used
in conjunction to specify an initial estimate. The shaper will
periodically be set to a bandwidth slightly below the estimated rate.
This estimator cannot estimate the bandwidth of links downstream of
itself.
 
if you've tested "autorate-ingress" because, like me, your ISP's UL bandwidth fluctuates wildly, please test "unlimited" as an alternative (and share your results). so far i'm getting better results. in both directions.

i've added https://testmy.net/upload to my testing suite.
 
Last edited:
if you've tested "autorate-ingress" because, like me, your ISP's UL bandwidth fluctuates wildly, please test "unlimited" as an alternative (and share your results). so far i'm getting better results. in both directions.

i've added https://testmy.net/upload to my testing suite.
I've just run a few tests, and my first gave straight A's on DSL Reports and max bandwidth with minimal latency. Then I tried sharing my connection with a TV stream running on my phone (tests were run on my laptop) I get C's across the board and this looks to be mainly due to upload bufferbloat running around +100ms. Since then I'm always getting C's.

But unlimited is looking great set on my download only (by editing the config file) I get full download capacity with little or no bufferbloat while my upload is also performing well with a fixed bandwidth value.

In my case my bandwidth is usually predictable, but I'm currently having some issues where I fail over to 4G backup which varies wildly. I think I'll continue to test with fixed upload and unlimited download. The experience may be different tomorrow when we are working from home using Teams meetings and VoIP calls.
 
I've just run a few tests, and my first gave straight A's on DSL Reports and max bandwidth with minimal latency. Then I tried sharing my connection with a TV stream running on my phone (tests were run on my laptop) I get C's across the board and this looks to be mainly due to upload bufferbloat running around +100ms. Since then I'm always getting C's.

But unlimited is looking great set on my download only (by editing the config file) I get full download capacity with little or no bufferbloat while my upload is also performing well with a fixed bandwidth value.

In my case my bandwidth is usually predictable, but I'm currently having some issues where I fail over to 4G backup which varies wildly. I think I'll continue to test with fixed upload and unlimited download. The experience may be different tomorrow when we are working from home using Teams meetings and VoIP calls.

i'm also having doubts about how to properly measure bufferbloat. i've had instances of dslreports saying I got 120ms while my pingplotter was parked at 30ms during the test. do you use dslreports too?
Monday will be an altogether different animal for sure :)
 
SotP method works best for me to measure differences in bufferbloat. :)

(Seat of the pants) SotP method is simply browsing the net and the internal network (shared folders, NAS', etc.) and seeing how responsive they are.

The various 'test' sites are interesting too (when they work), but I don't let their results veil what is in front of my eyes either. :)

A network is either slower, faster, or effectively the same using SotP. Anything else is moot.
 
SotP method works best for me to measure differences in bufferbloat. :)

(Seat of the pants) SotP method is simply browsing the net and the internal network (shared folders, NAS', etc.) and seeing how responsive they are.

The various 'test' sites are interesting too (when they work), but I don't let their results veil what is in front of my eyes either. :)

A network is either slower, faster, or effectively the same using SotP. Anything else is moot.
And there was I having you pegged as a measure and analyse kind of person :D
 
are the current cake binaries we are using, 'fresh'?
 
I'm planning to mess around with CakeQoS again tomorrow. So I'm curious what everyone is liking most for "Queue priority" and "Extra options" so far?

I'm guessing "Best effort" for queue priority. But extra options has me curious on what people are liking the most, after they have done some testing.
 
I'm planning to mess around with CakeQoS again tomorrow. So I'm curious what everyone is liking most for "Queue priority" and "Extra options" so far?

I'm guessing "Best effort" for queue priority. But extra options has me curious on what people are liking the most, after they have done some testing.

i've settled on "diffserv4 unlimited dual-srchost ack-filter" plus "docsis".
good results over the weekend but i need to see what happens comes Monday and workhours comcast UL congestion.
 
Does @Odkrys have all the necessary tools to build equivalent packages for the other router models (assuming they are running v4 kernels)?

I'm sure more people would love a chance to play with cake. Just not sure what other dependencies there are. Clearly a 1.8GHz or better ARM53 based CPU is a basic requirement for decent perfformance.
 

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!

Staff online

Top