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.
 

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