some quick comments on configuring cake

Through persistence, jim gettys bugged enough smart people to care, until he found me. Through our persistence, we found over 500+ other
people to participate on the mailing list, came up with ways to make wifi and routers much more performant, got 1000s of researchers involved on google scholar,
formed an IETF working group, got 5 RFCs published, the cable industry to adopt pie in DOCSIS, and all the third party firmwares running fq_codel by default, as well as dozens of commercial products, now including mikrotik.

In particular, gamers are our allies. They really care about low latency, all the time. This was one of my favorite pieces a gamer had done about bufferbloat (and I hope someone does something similar for mikrotik): https://www.youtube.com/watch?v=o-g2P3R84dw Somewhere, in some C suite, at your ISP and others, is an exec with a kid, that will care about this stuff.

Also there is a strong business case to fix bloat in reducing the complaints about speed to customer support. As one example, an small ISP I worked with recently deployed libreQos and immediately freed up a whole body that had been answering speed complaints, to do something else (which ended up being updating everything they could to routerOS7 or openwrt, and configuring cake!)

So while your, single, coherent complaint might seem like a drop in the bucket, a futile waste of time, I’ve been at this for 12 years now, and there are now billions and billions of machines that are behaving better for all of us, sticking at it, and sticking it to the man.

“There is no try, only, do” - Yoda.

+1

For now - until my ISP “moves” - I’d like to reduce bufferbloat using my MT gateway-router :smiley:

So while your, single, coherent complaint might seem like a drop in the bucket, a futile waste of time, I’ve been at this for 12 years now, and there are now billions and billions of machines that are behaving better for all of us, sticking at it, and sticking it to the man.

“There is no try, only, do” - Yoda.

Agree, but as someone having to do with Austrian A1 professionally, I would not recommend to wait for them either. I think, when every other ISP in the world will have solved the bufferbloat issue, they might follow… The same goes for almost all other Central European big providers, unfortunately. IPv6 adoption is the other painful topic…

W

Hey Hi,

I noticed that Steam downloads over https/443 on multiple streams so that one host is still able to hog almost all of the traffic even though Cake works very well on all other scenarios.

Do you mind sharing what did you do to help regarding that ?

Thanks !

Setting the “nat dual-dsthost ingress” option on the downstream will prevent hogging of the download by a LAN IP and setting “nat dual-srchost egress” on the upstream will prevent hogging of the upload by one LAN IP.

HI,

could please any one simply expain the diffrence between bestefford, diserv4?

Hello. everyone.
Just want to know how to configure cake if my ISP speed have equal upload and download.

besteffort does not attempt any differentiation between diffserv classes. It is equivalent to fq_codel in this mode, except it uses an 8-way set associative method to (nearly) garuntee each flow it’s own queue, and the default triple-isolate mode tries to share fairly, also, between hosts.

diffserv3 is the default for cake, but with the rise of videoconferencing, many folk have shifted to diffserv4, which allocates even more bandwidth for videoconferencing flows.
You can do additional classification into these tins via tc filters.

diffserv4
Provides a general-purpose Diffserv implementation with four
tins:
Bulk (CS1, LE in kernel v5.9+), 6.25% threshold,
generally low priority.
Best Effort (general), 100% threshold.
Video (AF4x, AF3x, CS3, AF2x, CS2, TOS4, TOS1), 50%
threshold.
Voice (CS7, CS6, EF, VA, CS5, CS4), 25% threshold.

diffserv3 (default)
Provides a simple, general-purpose Diffserv implementation
with three tins:
Bulk (CS1, LE in kernel v5.9+), 6.25% threshold,
generally low priority.
Best Effort (general), 100% threshold.
Voice (CS7, CS6, EF, VA, TOS4), 25% threshold, reduced
Codel interval.

for more info:

https://man7.org/linux/man-pages/man8/tc-cake.8.html

What does meant Best Effort (general), 100% threshold.in diffserv?

It means that best effort will take up to 100% of the bandwidth if no other classes are in use.

I submitted this very request in late September. (SUP-92043) MikroTik responded with ROS v7.7alpha90 for testing. Based on my test involving demotion of MS Delivery Optimization connections to LE, Cake was responding to LE (codepoint 000001) packets correctly. This was before v7.6 went stable, and based on the change notes, I suspect v7.6 also has it right.

How do you guys implement DSCP for diffserv Cake in Mikrotik firewall? I used to do it once with a Custom Firmware but I am still a newbie to this type of networking hardware.

Yay! Thx!

Any chance you could submit a feature request so that the cake shaper could be used on inbound interface queues? And let me know what the bug number is?

Any movement with CAKE-autorate? Is it ported over or are there plans to?

Porting a sketchy bash script written by someone that’s not so good at bash scripting, sure, that’ll happen.

Is anyone WISP here. How do you configure you cake queue type. tia

@dtaht Hi!
I have a home router running the CHR v7.5
PPPoE Client on ether1, and other interface is bridged.
With no queueing, the maximum bandwidth under NAT is 600+Mbps download and 70+Mbps upload.
I took a closer look at your replies in other threads and set up the CAKE queue tree as below:

/queue type
add cake-diffserv=diffserv4 cake-flowmode=triple-isolate cake-memlimit=32.0MiB cake-rtt=60ms cake-overhead-scheme=ethernet cake-nat=no kind=cake name=cake_rx
add cake-diffserv=diffserv4 cake-flowmode=triple-isolate cake-memlimit=32.0MiB cake-rtt=60ms cake-overhead-scheme=ethernet cake-nat=yes kind=cake cake-ack-filter=filter name=cake_tx

/queue tree
add comment="qosconf: download queue with cake" bucket-size=0.05 max-limit=500M name=cake_download packet-mark=no-mark parent=bridge1 queue=cake_rx
add comment="qosconf: upload queue with cake" bucket-size=0.03 max-limit=50M name=cake_upload packet-mark=no-mark parent=pppoe-out1 queue=cake_tx

Now I’ve got very ideal latency on upload, but download latency is unstable.

I’m confused about my setup right now

  1. With PPPoE, should I set the parent interface to ether1 or pppoe-out1 ?
  2. With NAT, for download queue, besteffort & dual-dsthost is better then diffserv4 & triple-isolate ?
  3. Should I enable NAT Option on download queue when parent interface is set to bridge1?
  4. With fiber-to-the-home, cake-overhead-scheme is set to ‘ethernet’ , I’ve tested overhead 42/44 mpu 84 but I got even worse latency.

Seeking guidance :smiley:

Could you explain why is mpu 88 instead of 64? How to calculate mpu value?

Hello there

Before I start I have tried to look at examples but the more I look for examples the more confused I become.

I’m trying to figure out what the ideal wan packet overhead number for a VDSL2 PPPoE PTM (with vlan tagging) connection would be. It’s very popular in the UK by ISP such as BT (which I have).

Granted I’m not on mikrotik but I am using Cake via Asus merlin. It seems good enough right now (A+ in bufferbloat) but I would still like to understand the proper value. When you select VDSL2 PPPoE PTM from the drop down, you get these values: https://i.imgur.com/0srP1CX.png

Now after looking at this: https://man7.org/linux/man-pages/man8/tc-cake.8.html

It seems like 30 would be correct. However, since my ISP has vlan tagging I need to look at ether-vlan and add 4 so in total 34. I was still not sure on the “mode” section. In the drop down box it has 3 options: Normal, ATM, PTM

It’s likely that Normal = noatm. ATM and PTM are the compensations applied to bandwidth. I did think if I should even use the PTM flag because of this post: http://forum.mikrotik.com/t/some-quick-comments-on-configuring-cake/152505/1

In that it should just be better to do the 64/65 calculation on bandwidth. Apparently this isn’t as CPU intensive or something?

So my questions are:

1: Should I actually be setting 34 on wan packet overhead based on my connection?
2: Should I set the PTM flag or take care of it myself in bandwidth number?

Thank you

so team, what is the best setting for fq codel and cake?

what is best mikrotik OS version for fq codel and cake?