Extremely low wifi speeds for wifi 5 devices on archer AX23

Here is the asked for data

Please ignore the lan2lan rule, I have removed that since I was still figuring out things while I made that.

root@OpenWrt:~# ubus call system board
cat /etc/config/networ{
        "kernel": "5.15.150",
        "hostname": "OpenWrt",
        "system": "MediaTek MT7621 ver:1 eco:4",
        "model": "TP-Link Archer AX23 v1",
        "board_name": "tplink,archer-ax23-v1",
        "rootfs_type": "squashfs",
        "release": {
                "distribution": "OpenWrt",
                "version": "23.05.3",
                "revision": "r23809-234f1a2efa",
                "target": "ramips/mt7621",
                "description": "OpenWrt 23.05.3 r23809-234f1a2efa"
        }
k}
root@OpenWrt:~# cat /etc/config/network
cat /etc/config/wire
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 ula_prefix 'fdc2:b207:2428::/48'
        option packet_steering '1'
config device
        option name 'br-lan'
        option type 'bridge'
        list ports 'lan1'
        list ports 'lan2'
        list ports 'lan3'
        list ports 'lan4'
config interface 'lan'
        option device 'br-lan'
        option proto 'static'
        option ipaddr '192.168.0.2'
        option netmask '255.255.255.0'
        option ip6assign '60'
        option gateway '192.168.0.1'
        option delegate '0'
        list dns '192.168.0.1'
        list dns '8.8.8.8'
leroot@OpenWrt:~# cat /etc/config/wireless
at /etc/conf
config wifi-device 'radio0'
        option type 'mac80211'
        option path '1e140000.pcie/pci0000:00/0000:00:01.0/0000:02:00.0'
        option band '2g'
        option htmode 'HE20'
        option cell_density '0'
        option channel 'auto'
        option country 'IN'
config wifi-iface 'default_radio0'
        option device 'radio0'
        option network 'lan'
        option mode 'ap'
        option ssid 'TP-Link_F5B2'
        option encryption 'sae-mixed'
        option key 'Ar'
config wifi-device 'radio1'
        option type 'mac80211'
        option path '1e140000.pcie/pci0000:00/0000:00:01.0/0000:02:00.0+1'
        option channel '153'
        option band '5g'
        option htmode 'HE80'
        option cell_density '0'
        option country 'IN'
config wifi-iface 'default_radio1'
        option device 'radio1'
        option network 'lan'
        option mode 'ap'
        option ssid 'TP-Link_F5B2_5Ghz'
        option encryption 'sae-mixed'
        option key 'r'
iroot@OpenWrt:~# cat /etc/config/dhcp
cat /etc/co
config dnsmasq
        option domainneeded '1'
        option localise_queries '1'
        option rebind_protection '1'
        option rebind_localhost '1'
        option local '/lan/'
        option domain 'lan'
        option expandhosts '1'
        option cachesize '1000'
        option readethers '1'
        option leasefile '/tmp/dhcp.leases'
        option resolvfile '/tmp/resolv.conf.d/resolv.conf.auto'
        option localservice '1'
        option ednspacket_max '1232'
config dhcp 'lan'
        option interface 'lan'
        option start '100'
        option limit '150'
        option leasetime '12h'
        option dhcpv4 'server'
        option ignore '1'
config odhcpd 'odhcpd'
        option maindhcp '0'
        option leasefile '/tmp/hosts/odhcpd'
        option leasetrigger '/usr/sbin/odhcpd-update'
        option loglevel '4'
nroot@OpenWrt:~# cat /etc/config/firewall
config defaults
        option input 'REJECT'
        option output 'ACCEPT'
        option forward 'REJECT'
        option synflood_protect '1'
        option flow_offloading '1'
        option flow_offloading_hw '1'
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'
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 zone
        option name 'lan2lan'
        option input 'ACCEPT'
        option output 'ACCEPT'
        option forward 'ACCEPT'
        list network 'lan'
config forwarding
        option src 'lan2lan'
        option dest 'lan'
config forwarding
        option src 'lan'
        option dest 'lan2lan'

Just installed the latest release. The issue is wifi only as I get my ISP provided speed of 300/350, packet steering is on.offloading has no effect. All cores reach about 20% while speedtesting.

On wifi

On ethernet.

The AX23 is a dumbap connected to a raspberry Pi.

Are you sure you are connected in 5GHz band? 72Mbps looks more like 2.4GHz. Please show /etc/config/network wireless dhcop firewall with passwords / mac addresses edited out.

Yep it's 5ghz.

I posted all the configs in the first msg, do you require something else?

sae-mixed is never a good idea.

1 Like

I unfortunately need it due to having old devices on my network.

then create two separate SSIDs, sae-mixed isn't more secure than WPA2 anyway.

1 Like

lan2lan forwarding rule has no effect on a single br-lan, just like both offloads.
Please remove them

extending on @frollic you can have separate WPA2 and WPA3 SSIDs with identical names and passwords on both radios, then verify you connect as intended, but that is the most interoperable option.
like with

or https://apps.apple.com/us/app/ubiquiti-wifiman/id1385561119

EDIT: sorry for distrust in you, but 72mbps is telling on its own unless you prove otherwise.

Well it isn't exactly limited to 72, it goes upto 80-90 on ookla..

Edit tried wpa2 only, no encryption.

Same result...

Edit 2, I notice that sometimes during the end of the test the speeds climbs and reaches upto 130..

ssh to AX23, install htop

opkg update
opkg install htop

then run htop - press F2, right arrow, unselect "hide kernel threads" and select "detailed cpu time (...." then press F10 to return to the main screen.
Press Ctrl-S at the heat of test and make screenshot, press Ctrl-Q to resume updates.
Post the screenshot.

Seems to be Wifi 5 enabled devices only....

My wifi 6 laptop can hit 250..

I don't think this is client side issue though, because this phone used to hit 290, but it's struggling for 100 now...

You can disable AX in wifi radio options (the upper part of access point configurations) and return to AC/N to verify claims.

1 Like

The wifi survey tools should show link speed like 433 or 866 with AC client or 600/1200 with AX
Also client list in network/wireless should display that and 1,bps or 6mbps if client is in sleep mode.

Did some testing.

Issue persists on wifi 5 devices with the AC band. Using the ISP provided ONU as the gateway router and AP the issue doesn't exist. Also using stock firmware wifi 5 devices could reach 180-190

Please set auto channel, so that 5GHz can get away from channel 36 where everybody with unset country code lands.
And please produce htop picture, i.e that there is no load disbalance between CPU-s.

@brada4 @moeller0

Here are the waveform tests with openwrt on my wifi 6 laptop

Here is htop

https://i.imgur.com/8h8P4n5.png

https://i.imgur.com/tK3Ji4r.png

EDIT - I have set it, but i am the only 5ghz network around so i don't think it will have much effect...

It appears I have the same issue with the same router. I get ~600mbps download speed on stock firmware, but with OpenWRT, no matter the settings(ax, ac, and many other changes to the radio driver options), I can't get past the 290 Mbps mark over wifi. Over cable, I get the full 700mbps, so it's clear that openwrt is more than capable of handling my connection speed... I've been using openwrt for over a decade now and I've never seen such a drop in performance.

I've seen some posts way back that mediatek opensource linux drivers are pretty bad. is that realy the case? I would settle for 90% the stock firmware speed... even 80%... but half(some times less)... that's pretty hard to accept.

Assuming you got offloading enabled? people cant go above 300 without it on this router.

if you refer to the settings over the firewall page, then no... I even tried enabling it and it didn't change a thing in my case.

Offloading is not engaged if you bridge wifi to a bridge and do not do IP forwarding.
You say your other device serve gigabit but you get only 200 over wired bridge. Are your settings over there limiting to 200-something megabits?

Sorry, but i did not say that, my plan is 300//350, with SQM my PI serves 280-290 but wifi 5 devices only reach upto 80-90