Netgear AC2400 slow wifi

Hello
This is my first attempt to use OpenWrt, and am seeing slow wifi speeds. I have two Netgear AC2400 routers, one is now flashed with 24.10. I used firmware selector and searched 'netgear ac2400'.
Both routers are in same location in the house. My office is about three rooms over from router location. I am using speedtest.net. Both Hardware flow control and wmm are enabled.

Netgear FW (V1.2.0.88_1.0.1):
wired: 248mbps down / 248 up
2.4: 137 / 133
5g: 240 / 131

OpenWrt FW (24.10.2 (r28739-d9340319c6)):
wired: 197 / 244
2.4: 79 / 89
5g: 8 / 37

Yes the OpenWrt wired speed is slower but I can live with that, the 5g is just abysmal.
Thanks in advance for any advise.
-Chris

Looking at other threads, this information is commonly requested:

root@OpenWrt:~# ubus call system board
{
	"kernel": "6.6.93",
	"hostname": "OpenWrt",
	"system": "MediaTek MT7621 ver:1 eco:3",
	"model": "Netgear R6700 v2",
	"board_name": "netgear,r6700-v2",
	"rootfs_type": "squashfs",
	"release": {
		"distribution": "OpenWrt",
		"version": "24.10.2",
		"revision": "r28739-d9340319c6",
		"target": "ramips/mt7621",
		"description": "OpenWrt 24.10.2 r28739-d9340319c6",
		"builddate": "1750711236"
	}
}
root@OpenWrt:~# 
root@OpenWrt:~# cat /etc/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 ula_prefix 'fd07:6ad2:a908::/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.1.1'
	option netmask '255.255.255.0'
	option ip6assign '60'

config interface 'wan'
	option device 'wan'
	option proto 'dhcp'

config interface 'wan6'
	option device 'wan'
	option proto 'dhcpv6'

root@OpenWrt:~# cat /etc/config/wireless

config wifi-device 'radio0'
	option type 'mac80211'
	option path '1e140000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0'
	option band '2g'
	option channel '1'
	option htmode 'HT20'
	option cell_density '0'

config wifi-device 'radio1'
	option type 'mac80211'
	option path '1e140000.pcie/pci0000:00/0000:00:01.0/0000:02:00.0'
	option band '5g'
	option channel '36'
	option htmode 'VHT160'
	option cell_density '0'
	option country 'US'
	option txpower '23'

config wifi-iface 'default_radio1'
	option device 'radio1'
	option network 'lan'
	option mode 'ap'
	option ssid [network-ssid-5g]
	option encryption 'psk2'
	option key [REDACTED]

config wifi-iface 'wifinet3'
	option device 'radio0'
	option mode 'ap'
	option ssid [network-ssid]
	option encryption 'psk2'
	option key [REDACTED]
	option network 'lan'
root@OpenWrt:~# cat /etc/config/dhcp

config dnsmasq
	option domainneeded '1'
	option boguspriv '1'
	option filterwin2k '0'
	option localise_queries '1'
	option rebind_protection '1'
	option rebind_localhost '1'
	option local '/lan/'
	option domain 'lan'
	option expandhosts '1'
	option nonegcache '0'
	option cachesize '1000'
	option authoritative '1'
	option readethers '1'
	option leasefile '/tmp/dhcp.leases'
	option resolvfile '/tmp/resolv.conf.d/resolv.conf.auto'
	option nonwildcard '1'
	option localservice '1'
	option ednspacket_max '1232'
	option filter_aaaa '0'
	option filter_a '0'

config dhcp 'lan'
	option interface 'lan'
	option start '100'
	option limit '150'
	option leasetime '12h'
	option dhcpv4 'server'
	option dhcpv6 'server'
	option ra 'server'
	option ra_slaac '1'
	list ra_flags 'managed-config'
	list ra_flags 'other-config'

config dhcp 'wan'
	option interface 'wan'
	option ignore '1'

config odhcpd 'odhcpd'
	option maindhcp '0'
	option leasefile '/tmp/hosts/odhcpd'
	option leasetrigger '/usr/sbin/odhcpd-update'
	option loglevel '4'

root@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'
	list network 'lan'
	option input 'ACCEPT'
	option output 'ACCEPT'
	option forward 'ACCEPT'

config zone
	option name 'wan'
	list network 'wan'
	list network 'wan6'
	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'

1/ Change that to VHT80
2/ remove both power limits
3/ name both APs identically

WTH is that?

Excuse me, 'Flow offloading type' = 'Hardware flow offloading'

First is to disable all offloads (besides fixing wifi config issues pointed out)

Please do tests at 3 offload levels wired using
https://www.waveform.com/tools/bufferbloat
And post the link to the best achieved }
should be 300-500 / 700-900 /950 at offload levels, adding 1ms fresh 5-10ms loded latency. Wifi will have it worse, but not 100x worse. Choose least offload level saturating your connection.

  1. I changed htmode to 'VHT80'.
  2. I only set power limit on 5g radio, set it back to default. I also set location to 'US' and changed that back.
  3. I do not want both channels named identical.

And post the link to the best achieved }
should be 300-500 / 700-900 /950 at offload levels, adding 1ms fresh 5-10ms loded latency. Wifi will have it worse, but not 100x worse. Choose least offload level saturating your connection.

To be honest, I dont know what you are wanting ^^. I don't know what should be '300-500 / 700-900 /950 at offload levels'? Here are the results with 'Hardware flow offloading'. I included results from the router still running Netgear firmware.

Netgear AC2400 running NG firmware via wired: Speed: 240mbps down / 246 up
https://www.waveform.com/tools/bufferbloat?test-id=79a83d6e-a122-449c-85ac-852fd3e01dd9

Netgear AC2400 running NG firmware via 5g wifi: Speed 251 / 92
https://www.waveform.com/tools/bufferbloat?test-id=3875f4c8-16d3-4043-ac28-b56db2503b9a

Netgear AC2400 running OpenWrt firmware via wired: Speed 239 / 248
https://www.waveform.com/tools/bufferbloat?test-id=6c239d42-2fdf-4943-8d21-48b59a155c77

Netgear AC2400 running OpenWrt firmware via 5g wifi: Speed 13 / 27 :frowning:
https://www.waveform.com/tools/bufferbloat?test-id=d8af0a2e-ef0b-43ec-a2f7-ea79ca19bf1e
It even took several tries to complete the test from OpenWrt via 5g channel.

Current contents of /etc/config/wireless:

config wifi-device 'radio0'
	option type 'mac80211'
	option path '1e140000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0'
	option band '2g'
	option channel '1'
	option htmode 'HT20'
	option cell_density '0'

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

config wifi-iface 'default_radio1'
	option device 'radio1'
	option network 'lan'
	option mode 'ap'
	option ssid [network-ssid-5g]
	option encryption 'psk2'
	option key [REDACTED]

config wifi-iface 'wifinet3'
	option device 'radio0'
	option mode 'ap'
	option ssid [network-ssid]
	option encryption 'psk2'
	option key [REDACTED]
	option network 'lan'

Sorry cannot help you, I told you not throw a brick on your feet, you just turned around and threw sledge.

This is a nothingburger, not a brick or a sledge. I had previously set the 'Country Code' to 'US' and thought it would be best to set back to the default of 'driver default'.
It had no bearing on the slow wifi speeds.

Try to survey coverage
: https://play.google.com/store/apps/details?id=com.ubnt.usurvey

Usually moving ap 1ft apart improves coverage,