Note
I'm using Gemini to correct my grammar mistakes, so sorry if this sounds like something written by AI
Here's a simpler version to set up in OpenWrt compared to the previous project: cake-autortt.
Motivation
After using CAKE (and fq_codel) for probably at least two years across different hardware and software (sometimes OpenWrt & MikroTik), I've found that the bandwidth and RTT parameters provide the most immediately noticeable differences for CAKE. While DiffServ can sometimes be helpful, it highly depends on how packets are marked. I've encountered edge cases where applications likely mismarked packets, causing some devices to be classified as "Bulk" instead of "Video" or "Best Effort." For my specific use case, DiffServ4, DiffServ8, or Best Effort don't really matter, as the per-flow isolation probably already helps significantly in the background.
Overhead parameters likely offer some benefit, but for a normal user like me, raw, conservative, and other overhead parameters don't yield noticeable differences. Regardless, I'm still using "overhead 44 mpu 96 noatm" today.
I mentioned that the two parameters providing the most immediate results for me are bandwidth and RTT. This is because you can instantly observe bandwidth changes when running speed tests. As for RTT, according to the man page, it's related to the AQM (Active Queue Management), so it probably plays a significant role in the background. However, since the services you use daily (YouTube, Netflix, Twitch, etc.) likely employ CDNs (Content Delivery Networks), you probably won't notice the effect of adjusting the RTT parameter.
The easiest way to benchmark whether the RTT parameter makes CAKE react differently is to change it while performing speed tests to servers far from your country (e.g., if you're in Singapore, try speed testing to servers in Germany or the US). I've noticed that adjusting the RTT parameter can further enable CAKE to handle connections to different servers more smoothly. Also, while dropping packets can prevent bufferbloat, for some real-time applications, packet drops can cause ping spikes, so it's a trade-off. Since AQM handles packet drops, that's likely why correctly adjusting the RTT parameter can yield meaningful results for the services you use daily.
Ookla is great for this since you can manually select the speed test server location. Also, as I mentioned before, the services you use daily are probably large enough to utilize CDNs. However, when you need to access resources like research papers or similar use cases, their websites usually don't employ CDNs. Not all universities, for instance, consider using CDNs to speed up access to PDFs and so forth. Therefore, experimenting with the RTT parameter can sometimes help with these scenarios.
cake-autortt
is a simple script that automatically handles RTT checking for you. The defaults are sane and work great for my home network. I'm using the latest OpenWrt version (see the README for further details) on an x86/64 platform, but it should work on other platforms since it's just a shell script.
This script is likely beneficial for people who want to further tweak CAKE to adapt to whatever websites or services they're connecting to.