[ASUS RT-AX53U] High jitter as AP

I started up tinkering with my router a couple of months ago because I needed a dynamic DNS splitting and OpenWRT seemed the best way to go. I flashed OpenWRT and almost everything has been working great. I say almost, because WiFi quality has been pretty poor. I tried everything, including upgrading from 23.04 to 23.05, but nothing fixes this simple fact: from any device if I ping 192.168.0.1 (my router) via WiFi, the ping is somewhat all over the place, ranging from 2/3 ms to up to 200 ms.

I know that a 200ms latency for a single package wouldn't be that strange via WiFi, but it happens every 10 to 20 packets. This makes low-latency use cases, for instance online fast-paced gaming, basically impossible. Every once in a while I get up to 5 minutes of normal ping, but more often than not, I cannot go 10 seconds without a ping spike. I monitor the CPU load of the router during the tests and I see 98% of idle CPU time.

The router is an Asus RT-AX53U, which I understand comes with a MT7621 SoC, with a MT7915 for WiFi.

The problem doesn't manifest at all via LAN (I get consistent 0.5ms pings). Also the laptops, phones, etc. I use to test WiFi stand 2 meters away from the router, with a ~-40 dB gain, which should be good enough.

Output of a 2 minute ping (with 1 second frequency):

$ ping 192.168.0.1
...
--- 192.168.0.1 ping statistics ---
127 packets transmitted, 127 received, 0% packet loss, time 126138ms
rtt min/avg/max/mdev = 2.118/17.391/139.695/31.318 ms

Thanks a lot,

  1. ubus call system board
"kernel": "5.15.167",
	"hostname": "OpenWrt",
	"system": "MediaTek MT7621 ver:1 eco:3",
	"model": "ASUS RT-AX53U",
	"board_name": "asus,rt-ax53u",
	"rootfs_type": "squashfs",
	"release": {
		"distribution": "OpenWrt",
		"version": "23.05.5",
		"revision": "r24106-10cc5fcd00",
		"target": "ramips/mt7621",
		"description": "OpenWrt 23.05.5 r24106-10cc5fcd00"
	}
}
  1. iwinfo
phy1-ap0  ESSID: REDACTED
          Access Point: REDACTED
          Mode: Master  Channel: 120 (5.600 GHz)  HT Mode: HE80
          Center Channel 1: 122 2: unknown
          Tx-Power: 26 dBm  Link Quality: 64/70
          Signal: -46 dBm  Noise: -89 dBm
          Bit Rate: 755.3 MBit/s
          Encryption: WPA2 PSK (CCMP)
          Type: nl80211  HW Mode(s): 802.11ac/ax/n
          Hardware: 14C3:7915 14C3:7915 [MediaTek MT7915E]
          TX power offset: none
          Frequency offset: none
          Supports VAPs: yes  PHY name: phy1
  1. config/network
config interface 'loopback'
	option device 'lo'
	option proto 'static'
	option ipaddr '127.0.0.1'
	option netmask '255.0.0.0'

config globals 'globals'
	option packet_steering '1'

config device
	option name 'br-lan'
	option type 'bridge'
	list ports 'lan1'
	list ports 'lan2'
	list ports 'lan3'

config device
	option type '8021q'
	option ifname 'wan'
	option vid '20'
	option name 'wan.20'
	option mtu '1500'
	option macaddr '10:7C:61:94:FF:50'

config interface 'lan'
	option device 'br-lan'
	option proto 'static'
	option ipaddr '192.168.0.1'
	option netmask '255.255.255.0'
	option ip6assign '0'
	option ipv6 '0'
	option delegate '0'

config interface 'wan'
	option device 'wan.20'
	option proto 'pppoe'
	option username REDACTED
	option password REDACTED
	option ipv6 '0'
	option peerdns '0'
	list dns '1.1.1.1'
	list dns '1.0.0.1'

config interface 'vpn'
	option proto 'wireguard'
	option private_key REDACTED
	option fwmark REDACTED
	list addresses '10.5.0.2/32'
	option delegate '0'

config rule
	option dest REDACTED
	option lookup 'vpn'

config route
	option interface 'vpn'
	option target '0.0.0.0/0'
	option table 'vpn'

config rule
	option dest REDACTED
	option lookup 'vpn'

config rule
	option src REDACTED
	option lookup 'vpn'
	option in 'lan'
	option disabled '1'
  1. config/wireless
config wifi-device 'radio0'
	option type 'mac80211'
	option path '1e140000.pcie/pci0000:00/0000:00:01.0/0000:02:00.0'
	option channel '1'
	option band '2g'
	option htmode 'HE20'
	option cell_density '0'
	option disabled '1'

config wifi-iface 'default_radio0'
	option device 'radio0'
	option network 'lan'
	option mode 'ap'
	option ssid REDACTED
	option encryption 'psk2'
	option key REDACTED
	option disabled '1'

config wifi-device 'radio1'
	option type 'mac80211'
	option path '1e140000.pcie/pci0000:00/0000:00:01.0/0000:02:00.0+1'
	option channel 'auto'
	option band '5g'
	option htmode 'HE80'
	option cell_density '0'
        option country 'ES'

config wifi-iface 'default_radio1'
	option device 'radio1'
	option network 'lan'
	option mode 'ap'
	option ssid REDACTED
	option encryption 'psk2'
	option key REDACTED
	option disabled '1'

config wifi-iface 'wifinet2'
	option device 'radio1'
	option mode 'ap'
	option ssid REDACTED
	option encryption 'psk2'
	option key REDACTED
	option network 'lan'
  1. config/firewall
config defaults
	option syn_flood '1'
	option input 'REJECT'
	option output 'ACCEPT'
	option forward 'REJECT'

config zone
	option name 'lan'
	option input 'ACCEPT'
	option output 'ACCEPT'
	option forward 'ACCEPT'
	list network 'lan'

config zone
	option name 'wan'
	option input 'REJECT'
	option output 'ACCEPT'
	option forward 'REJECT'
	option masq '1'
	option mtu_fix '1'
	list network 'wan'
	list network 'nord'

config forwarding
	option src 'lan'
	option dest 'wan'

config rule
	option name 'Allow-DHCP-Renew'
	option src 'wan'
	option proto 'udp'
	option dest_port '68'
	option target 'ACCEPT'
	option family 'ipv4'

config rule
	option name 'Allow-Ping'
	option src 'wan'
	option proto 'icmp'
	option icmp_type 'echo-request'
	option family 'ipv4'
	option target 'ACCEPT'

config rule
	option name 'Allow-IGMP'
	option src 'wan'
	option proto 'igmp'
	option family 'ipv4'
	option target 'ACCEPT'

config rule
	option name 'Allow-DHCPv6'
	option src 'wan'
	option proto 'udp'
	option dest_port '546'
	option family 'ipv6'
	option target 'ACCEPT'

config rule
	option name 'Allow-MLD'
	option src 'wan'
	option proto 'icmp'
	option src_ip 'fe80::/10'
	list icmp_type '130/0'
	list icmp_type '131/0'
	list icmp_type '132/0'
	list icmp_type '143/0'
	option family 'ipv6'
	option target 'ACCEPT'

config rule
	option name 'Allow-ICMPv6-Input'
	option src 'wan'
	option proto 'icmp'
	list icmp_type 'echo-request'
	list icmp_type 'echo-reply'
	list icmp_type 'destination-unreachable'
	list icmp_type 'packet-too-big'
	list icmp_type 'time-exceeded'
	list icmp_type 'bad-header'
	list icmp_type 'unknown-header-type'
	list icmp_type 'router-solicitation'
	list icmp_type 'neighbour-solicitation'
	list icmp_type 'router-advertisement'
	list icmp_type 'neighbour-advertisement'
	option limit '1000/sec'
	option family 'ipv6'
	option target 'ACCEPT'

config rule
	option name 'Allow-ICMPv6-Forward'
	option src 'wan'
	option dest '*'
	option proto 'icmp'
	list icmp_type 'echo-request'
	list icmp_type 'echo-reply'
	list icmp_type 'destination-unreachable'
	list icmp_type 'packet-too-big'
	list icmp_type 'time-exceeded'
	list icmp_type 'bad-header'
	list icmp_type 'unknown-header-type'
	option limit '1000/sec'
	option family 'ipv6'
	option target 'ACCEPT'

config rule
	option name 'Allow-IPSec-ESP'
	option src 'wan'
	option dest 'lan'
	option proto 'esp'
	option target 'ACCEPT'

config rule
	option name 'Allow-ISAKMP'
	option src 'wan'
	option dest 'lan'
	option dest_port '500'
	option proto 'udp'
	option target 'ACCEPT'

config rule
	option name 'Block Google DNS'
	option src '*'
	list dest_ip '8.8.8.8'
	list dest_ip '8.8.4.4'
	list dest_ip '2001:4860:4860::8888'
	list dest_ip '2001:4860:4860::8844'
	option target 'REJECT'
	option dest 'wan'
	list proto 'all'
	list src_ip REDACTED

So you have double nat?

ping -c 127 -q -l 3 ping.online.net
$ ping -c 120 -q -l 3 ping.online.net
PING ping.online.net (51.158.1.21) 56(84) bytes of data.

--- ping.online.net ping statistics ---
120 packets transmitted, 119 received, 0.833333% packet loss, time 117014ms
rtt min/avg/max/mdev = 41.585/188.988/651.502/123.036 ms, pipe 3

Any particular reason we are testing against a target through the WAN? The problem is definitely in the (Bridged) LAN. Wouldn't introducing a target over the internet add the ISP as a factor too?

For completeness:

ping -c 120 -q -l 3 192.168.0.100  
PING 192.168.0.100 (192.168.0.100) 56(84) bytes of data.

--- 192.168.0.100 ping statistics ---
120 packets transmitted, 118 received, 1.66667% packet loss, time 117025ms
rtt min/avg/max/mdev = 2.502/129.028/622.713/131.315 ms, pipe 3

(192.168.0.100 is another, idle, laptop. Should be more than capable of handling 1 ICMP per second).


Also, a little bit off-topic. Can an image prepared via the luci-attended-sysupgrade be flashed directly into the router? I would think it can, but I read some phrase in the Wiki, which I cannot find now, which seemed to advise against it. I ask because I will try reverting to stock (vendor) firmware to get baseline numbers to which I can compare AP performance. Said image would help me get the router back to OpenWRT before the family notices the downtime :rofl:.

What is the client? 600ms is a lot. I get like <5ms wifi ax54

Yes, you can download attended sysupgrade file and upload it as any other sysupgrade file.

Run this test and post result link
https://www.waveform.com/tools/bufferbloat

  • in place of ax53u
  • wired in lan
  • wireless 5ghz

As clients I've used two different laptops (one 4 years old, another 7 years old, both get stable wireless connection using other APs) and a Pixel 7. All three of them with the same result.

LAN:
https://www.waveform.com/tools/bufferbloat?test-id=30405fd8-2976-4a40-bacb-45e1df6400cc

WLAN (5GHz):
https://www.waveform.com/tools/bufferbloat?test-id=9283424e-f712-4846-9771-e50f09ac9b53

I didn't catch your first bullet point, sorry. Can you expand on it?

First bullet was - if possible connect a laptop where your router's wan port goes.

300Mbps is +/- typical without offload.

Not very verified solutions to try:

Set bridge txqueuelen to zero, it has transmit queues in member interfaces, should do no harm.

Disable ethernet pause/pacing via ethtool -a / -A /-r (verify result wth ethtool ) - some network drivers can push back 4M of data from single pause signal.

Can you test if spikes also occur with all wireless devices down, except one?
(to find out if issue is related to Wifi channel scanning from certain device(s) - see https://blog.cerowrt.org/post/disabling_channel_scans/)

Thank you all very much for your help and ideas. I was away on a quite long Christmas holiday to visit family.

The last couple of days before traveling, and the few days since I've been back, ping from client to router has behaved acceptably (I get a spike of 14ms with a 5ms median for a client 6 meters away).

I guess there must had been some kind of interference from a neighbor at the time¹ or something as I didn't change anything regarding set up, clients, positioning, power outlets, nothing. I had just resorted to using cable when low latency was needed until I'd found more time to debug this.

¹: Although, in all the channels? Seems unlikely.

TLDR: Good thing, it solved on its own. Bad thing, I don't like not knowing what was wrong. This can be marked as solved.

Best regards,

1 Like