some quick comments on configuring cake

I’m using the below on a symmetrical 1Gb/1Gb connection but it reduces the over upload and download to 500Mb and I’ve checked CPU usage which is around 58% on an RB4011 any ideas what I’m doing wrong.

/queue type
add cake-diffserv=besteffort cake-nat=yes kind=cake name=cake-default1
add cake-ack-filter=filter cake-bandwidth=950.0Mbps cake-diffserv=besteffort cake-nat=yes kind=cake name=cake-up
add cake-bandwidth=950.0Mbps cake-diffserv=besteffort cake-nat=yes cake-wash=yes kind=cake name=cake-down
/queue simple
add bucket-size=0.001/0.001 name=cake queue=cake-down/cake-up target=ether1 total-queue=cake-default

I experience the same phenomenon on an RB5009 regardless if I use cake or fq_codel. Bandwidth on a Gigabit WAN link is roughly cut in half. I’m guessing it’s a CPU constraint ?

I’ve also picked up another issue with queues where some incoming traffic seems to exceed the limit of the queue quite significantly, effectively breaking cake’s ability to keep latency under control. In some cases I need to reduce the “bandwidth limit” to as low as 50% of the line’s rated capacity to stabilize ping and prevent throughput saturation, resulting in a glaring discrepancy between traffic shown on the queue vs traffic shown on the actual interface. If anyone has any clues on this please do shout?

Same experience. Download speed is ok but the upload speed is cut to almost a half.
Just keep the default settings for the “total-queue=default-small” , then everything go fine. I get 9xx / 9xx Mbps.
Any queue type other than the default-small causes serious upload drop.
Actually I dont know why. I just trial and error.

Australian NBN FTTP 50/20 user here. I am using the following on the NBN connection:

/queue type
add cake-diffserv=besteffort cake-nat=yes kind=cake name=cake-default
add cake-ack-filter=filter cake-bandwidth=18.0Mbps cake-diffserv=besteffort cake-nat=yes kind=cake name=cake-up
add cake-bandwidth=47.0Mbps cake-diffserv=besteffort cake-nat=yes cake-wash=yes kind=cake name=cake-down
/queue simple
add bucket-size=0.001/0.001 name=cake queue=cake-down/cake-up target=ether1 total-queue=cake-default

Do I need to include an Overhead Scheme such as via ethernet?

I have been trying to find info about the Australian NBN ‘upload policer’ and how I limit the upload egress traffic to avoid the NBN Policer dropping packets. I also need to configure uploads to combat bufferbloat. Will one upload queue satisfy the other?

!) queue - do not allow using CAKE type in simple and tree setups (already configured queues will be disabled);

Cake confirmed dead for Mikrotik.

I assume Mikrotik has never tried to contact the developer?

What are you talking about? It’s been working over here just fine?

A developer is me. Things were looking good.

cake working fine in simple queue for me routerOS 7.2.3

Then maybe you should read the latest patch notes?

They are talking about that Mikrotik decided to limit cake to interface queues only in the latest 7.3beta40 release. Release notes buried here: http://forum.mikrotik.com/t/v7-3rc-testing-is-released/157306/1
Apparently this breaks some use cases people had for using cake in other scenarios and there is a little but of murmuration because of that.

Hi!

Can somebody take a look at my CAKE config and tell me if there’s anything I can do to get as close to line-speed as possible. Some background:

Zen VDSL2 connection (80/20) into Vigor 130 modem (VLAN 101); PPPoE connection established via RB4011 on ether1. Jumbo packets enabled (ether1 MTU 1508; PPPoE MTU 1500)


add bucket-size=0.001/0.001 max-limit=72M/18M name="Cake - Smaller Bucket" queue=default-cake/default-cake target=pppoe-out1 total-queue=default-cake
add cake-atm=ptm cake-diffserv=diffserv4 cake-memlimit=32.0MiB cake-nat=yes cake-overhead=30 cake-overhead-scheme=pppoe-ptm kind=cake name=default-cake

Line speed according to the Vigor130 is 78M/20M; so the more I can eek out to get towards this speed would be a bonus; but otherwise my question would be around whether the correct overhead or mpu is set (PPPoE connection; VLAN101 however this is currently set modemside and jumbo packets router-end)

Thanks :slight_smile:

Cake is interface queue only.

Do you mean that the interface needs to be set to eth1 (as opposed to the pppoe-interface) or rather the upcoming change in ROS 7.3 that does not allow cake as a simple queue type?

Mikrotik couldn’t fix the bug so they cut the feature.Now cake in 7.3beta40 is useless.

Looks like it’s back to TP-Link

Cake is some sort of voodoo magic! Uploads are faster, downloads are more consistent, latency is lower under load??

With no queueing:

With CAKE:

Nice result! And yes, under load on some technologies it’s possible to get less latency, as remarkable as it is.

Powersave is often a problem. A device will go to sleep until there are more packets to transmit. This is a somewhat foolish behavior network-wise, in that - for example - a tcp syn then syn/ack packet outstanding needs all the boost it can get to get more packets in flight once the flow gets going.

One string of cable modems would sleep stupidly this way. Many of our devices will buffer up small numbers packets over a small interval and only release them after a ms or 4, to save on cpu context switches, also.

In other cases you can get inside the request/grant loop that some gpon and some cable has. The underlying hw makes a request for a slot ahead of time based on an estimate of what it will need in the next cycle from the previous, thus overlapping requests. cable has a 2-6ms request/grant cycle.

In wifi, the rate controller stablizes the more you use it.

the fq-codel derived packet schedulers try hard to give the sparsest flows a boost towards the head of the queue, so they more rapidly can come into balance with the others.

Lastly the reason why your upload is so good and responsive is due to the low latency and shorter queues tcp is seeing in that direction. So few test for up and download at the same time, and your first result is what so many see, an upload goes to hell with big queues.

they did reach out to me, and toke and I both replied, but they haven’t got back to us.

how can i do that kind of bandwidth/latency tests with that result graphs ??

Check out Flent! If you’re running Windows then you’ll need to setup a linux machine in order to use it. If it’s a newer Windows computer then I’d consider setting up the Windows Subsystem for Linux to get you going quickly.

Hi Dave! Any news on this front? I’m so confused by their reasoning.
Thanks!