What's new

Endgame Bufferbloat Results: RT-AX86U Pro + CAKE SQM (+0ms Active Latency)

Also, I do not see the benefit of allowing software to do something instead of hardware.

This is a different topic. For specific reasons I personally prefer all forms of so called "hardware acceleration" (where offered or available) in regards to routing to be disabled on my gateways, residential or business use.
 
To make this work perfectly, the settings in the ASUS QoS GUI must match the script’s parameters:


1. QoS Mode: Set to CAKE in the GUI.


2. Bandwidth: Set to the same values as the script (550 Down / 275 Up).


3. Overhead: Must be set to 34 (for VDSL/FTTH PPPoE) in the WAN packet overhead field in the GUI.


The logic is simple: I let the ASUS GUI initialize the CAKE qdiscs first, and then my JFFS script runs to apply the Core Steering (RPS/SMP Affinity) and fine-tune the qdisc parameters. This combination is what delivers the rock-solid +0ms Bufferbloat at 500+ Mbps
#!/bin/sh
sleep 20

# Disable Hardware Acceleration to allow CAKE to work
fc disable 2>/dev/null
runner disable 2>/dev/null
echo 65536 > /proc/sys/net/core/rps_sock_flow_entries

# Core Steering: Offloading from Core 1 to Cores 2, 3, 4 (Mask 'e')
for iface in eth0 ppp0; do
if [ -d "/sys/class/net/$iface/queues" ]; then
for q in /sys/class/net/$iface/queues/rx-*; do
echo e > $q/rps_cpus 2>/dev/null
echo 32768 > $q/rps_flow_cnt 2>/dev/null
done
fi
done

# IRQ Steering: Moving ppp0/eth0 interrupts away from Core 1
for irq in $(grep -E 'ppp0|eth0' /proc/interrupts | cut -d: -f1); do
echo e > /proc/irq/$irq/smp_affinity 2>/dev/null
done

# Applying CAKE settings (550/275 for a 500/250 line)
tc qdisc del dev ppp0 root 2>/dev/null
tc qdisc del dev ifb4ppp0 root 2>/dev/null
tc qdisc del dev ppp0 handle ffff: ingress 2>/dev/null
tc qdisc add dev ppp0 handle ffff: ingress
tc filter add dev ppp0 parent ffff: protocol all u32 match u32 0 0 action mirred egress redirect dev ifb4ppp0
tc qdisc replace dev ppp0 root cake bandwidth 275mbit diffserv3 dual-srchost nat nowash no-ack-filter split-gso rtt 100ms noatm overhead 34
tc qdisc replace dev ifb4ppp0 root cake bandwidth 550mbit besteffort dual-dsthost nat wash ingress no-ack-filter split-gso rtt 100ms noatm overhead 34

logger "LAB_PERFECT_ACTIVE"
This is really interesting..keep sharing your findings/testing and possibly asus-wrtmerlin CAKE may get a future update. We appreciate it!
 
Nothing is "jittery" below line saturation. I have multiple fiber ISP lines and they will all show A+ on this test with simple bandwidth limiter below line saturation. Your "lab" test is broken, fixing non-existent issue.
When you say below line saturation what do you mean? The ISP rating of the connection?
 
From experience - the best QoS is upgrade to good quality symmetrical fiber line where available.
Ya I wish that was an option here.
Either
northerntel pushing Bell FibreOp 250/30 (FTTH)
or
Eastlink 300/10 or 940/15 (fibre to pole - coax from pole to home)
up here to choose from
 
The focus of this 'Lab' setup was to minimize the micro-jitter and the specific CPU Core 1 bottlenecks that occur on the RT-AX86U Pro during PPPoE encapsulation at high speeds. My physical line is a 1000/500 Fiber, but I have deliberately limited it to 550/275 (Aggressive Undershoot) within the CAKE settings.


By keeping the throughput at these levels and applying the smp_affinity fixes to pin the interrupts across all cores, I’ve eliminated the erratic spikes I was seeing even with a simple GUI limit. It’s about the difference between 'it works fine' and it being 'surgically stable' under heavy multi-client load. For a high-bandwidth PPPoE connection, this manual core distribution just feels more 'solid' than the standard hardware-accelerated flow.


If it’s flat and clean — don’t touch it!"
 
Is there something specific about this technique that requires 3004, or is that just what you tried so far?
 
northerntel pushing Bell FibreOp 250/30 (FTTH)
When you say below line saturation what do you mean?

FTTH is the best ISP option for you and all you have to do is set bandwidth limiter to ~230Mbps. Your router can do it and you'll get consistent A/A+ ratings on those online bufferbloat testing sites.

The focus of this 'Lab' setup was to minimize the micro-jitter

Which basically doesn't matter for the user experience. You pay very high price (half of your WAN bandwidth) to get some number. For Internet access your Wi-Fi 6 router is down below Wi-Fi 5 levels.
 
You're missing the point of a 'Lab' setup. Bandwidth is for downloads; Latency and Jitter are for Competitive Online Gaming.


1. Micro-jitter & Bufferbloat: I prioritize a +0ms Active Latency over raw numbers. Running CAKE SQM at 550 Mbps ensures my BCM4908 CPU stays within its 'sweet spot' for processing packets without a single millisecond of delay. Having 1Gbps with +20ms spikes is useless for gaming.


2. Core Pinning & IRQ Steering: My custom script doesn't just 'limit' speed; it re-distributes the network load across all 4 cores. By manually steering IRQs to Core 1 and pinning RPS, I eliminate the processing bottlenecks that standard firmware ignores.


3. On-Demand Performance: I haven't 'lost' my 1000/500 speed. When I need to download large files, I simply toggle QoS OFF in the GUI. But when I play online, one command (sh /jffs/scripts/latency_fix.sh) restores my Lab Perfect environment (avg 5.8ms) instantly.


It’s about having Total Control: Raw 1Gbps when I want it, and Surgical Precision when I need it.
 
Your router and you are free to do anything you like with it. I perhaps have to add to the list of drawbacks and inconveniences of this approach potential negative impact on other network users. I know gamers are ready to do anything though. Thanks for sharing again and enjoy! 👍
 
Actually, it's the exact opposite. The whole point of using CAKE with dual-srchost / dual-dsthost and triple-isolate (which my script enables) is to ensure Fairness.


Unlike standard QoS, CAKE prevents any single device from hogging the bandwidth. If someone else in the house starts a 4K stream or a large download, CAKE ensures that every flow gets its fair share without skyrocketing the latency for anyone.


So, not only am I getting a 'Lab' gaming experience, but I'm also providing a buffer-free environment for every other user on the network. It's a win-win, not a drawback.


Thanks for the chat! 👍
 
Question: Does your router restart when you enable/disable Cake QoS in GUI?
 
No, it doesn't perform a full system reboot. It only restarts the network services to apply the new qdisc rules, which causes a brief 2-3 second drop in connectivity.

However, since I use my custom script to fine-tune the Cake parameters (overhead, pinning, etc.), I always run my command right after the GUI 'Apply' to ensure my specific optimizations are correctly locked in without needing any further intervention
 
Having 1Gbps with +20ms spikes is useless for gaming.
Most times spikes like that are from ISP network congestion or infrastructure issues.
I never have latency or jitter no matter what time of day it is.
All online games are butter smooth without using any QoS.
 
I have both "jittery" and "smooth" ISPs:

DOCSIS (averaging 15-17ms):

1774885127875.png


and FTTH (averaging 1-2ms):

1774885200450.png


Don't have QoS enabled on any of the above. The latency spikes on DOCSIS are network congestion indeed. Happen always at high traffic hours, no fixing of this thing on the user side.
 
I have both "jittery" and "smooth" ISPs:

DOCSIS (averaging 15-17ms):

View attachment 70990

and FTTH (averaging 1-2ms):

View attachment 70991

Don't have QoS enabled on any of the above. The latency spikes on DOCSIS are network congestion indeed. Happen always at high traffic hours, no fixing of this thing on the user side.
hmmm slight tangent here, I would guess or say my FTTH is more like your DOCSIS one and I have a buddy that's probably the same with his FTTH. Does FFTH have nodes or anything that can cause spikes like the DOCSIS plot above when loaded/overloaded?
 
Latency increase in high traffic hours usually indicates oversold capacity. Some ISPs do up to 50:1 ratio. We have limited choices in Canada. Most people don't complain if YouTube and Netflix run okay. Home routers don't have line quality monitoring, most people don't have line quality stats, don't know what it is or don't care. We like to pay high price for okay services.

CA DOCSIS line is CAD80/month, EU FTTH line is CAD24/month (€15).
 
Latency increase in high traffic hours usually indicates oversold capacity. Some ISPs do up to 50:1 ratio. We have limited choices in Canada. Most people don't complain if YouTube and Netflix run okay. Home routers don't have line quality monitoring, most people don't have line quality stats, don't know what it is or don't care. We like to pay high price for okay services.

CA DOCSIS line is CAD80/month, EU FTTH line is CAD24/month (€15).
ahhhh thx
Well no one likes to pay for okay services, it's just everything is meh so there is no choice, well except no internet.

an example of my bell fibreop from Timmins to who knows where

1774997271358.png

1774997465315.png
 
I know... I had a cottage some time ago in Tobermory direction and we had there... some Internet, and some phone service. Not even 300km North of Toronto. The Great White North, right? I'll just tell you my EU phone plan is CAD16/month (€10) with 1000min talk, 25GB local data and 10GB roaming data in 27 countries. 🤷‍♂️
 
Last edited:
I can guarantee someone with the same bandwidth and quality ISP line and the same model router running latest stock Asuswrt with NAT acceleration enabled by default will have better user experience 99% of the time due to the following:

- there is no way to fix bad ISP line on user's end
- the ISP already applies QoS on all shared residential lines
- no bandwidth 0.3-0.5Gbps restriction (≥50% loss in this case)
- no firmware features restriction (3004 vs 3006 in this case)
- no need to install custom firmware (full featured ASUS App?)
- no need to expose to vulnerabilities with Nov 2004 firmware
- no need to waste time with Waveform (or other similar) website
- no need to waste time in fixing what is not broken in first place
- they can freely use other available features in firmware (the "perfection" may disappear the moment other firmware feature starts actively using the same core, assumed 100% available all the time)

Thanks for sharing your work and experience.
I appreciate the feedback! You're right that for 99% of users, stock firmware and full bandwidth is the way to go. However, this setup is for the 1% who prioritize latency consistency over raw throughput.

NAT acceleration is great for speedtests, but it doesn't prevent bufferbloat under load. By using CAKE with manual CPU affinity (Mask F), I've achieved a jitter of 0.3ms and a max spike of 8ms under 100% load. In competitive gaming (Warzone), a stable 38ms ping is much more valuable than an unstable 1000Mbps line. It's a 'purist' build for a specific goal: Zero variance.
 

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!
Back
Top