Hi, I've been using latest Openwrt 24.10.3 on my Cudy wr3000h (previously 24.10.2). I was easily able to reach 500-600mbps on 5ghz wifi but recently I noticed that wifi performance is worse - somehow it's getting capped to 300mbps only. I didn't do any changes in the config for the past weeks. Do you have any idea what could cause it? I'm not getting more that 300mbps standing next to the router where previously I was able to reach max speed. I'm also not sure if it's not related to upgrade to 24.10.3
Is the megabits indicated link speed or actual transfer speed? No, sudden breakage out of nowhere is not typical or expected.
Please show actual network characteristics using https://www.waveform.com/tools/bufferbloat (post result link)
Please connect to your OpenWrt device using ssh and copy the output of the following commands and post it here using the "Preformatted text </> " button:
![]()
Remember to redact passwords, VPN keys, MAC addresses and any public IP addresses you may have:
ubus call system board
cat /etc/config/network
cat /etc/config/wireless
cat /etc/config/dhcp
cat /etc/config/firewall
Hi.
I'm using this device as an AP and confirm that its wifi performance are much higher. LAN to wifi can reach 170 MB/s. Can you describe your LAN (@brada4 's message) and the way you are testing the bandwith?
This is the actual transfer speed.
Here’s network characteristics (via LAN) - https://www.waveform.com/tools/bufferbloat?test-id=a34eb3bb-fe09-427d-aff7-d1a12229ec8b
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 'fd4d:a068:ba07::/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'
option ipv6 '0'
config interface 'lan'
option device 'br-lan'
option proto 'static'
option ipaddr '192.168.1.1'
option netmask '255.255.255.0'
option ip6assign '0'
config interface 'wan'
option device 'wan'
option proto 'pppoe'
option username 'XXX'
option password 'XXX'
option ipv6 'auto'
option mtu '1492'
config interface 'wan6'
option device 'wan'
option proto 'dhcpv6'
config interface 'WG'
option proto 'wireguard'
option private_key 'XXX'
option listen_port '51820'
list addresses '10.0.0.1/24'
config wireguard_WG
option public_key 'XXX'
option private_key 'XXX'
list allowed_ips '10.0.0.10/24'
option route_allowed_ips '1'
option endpoint_port '51820'
option persistent_keepalive '25'
option description 'Mat-iPhone'
root@OpenWrt:~#
root@OpenWrt:~# cat /etc/config/wireless
config wifi-device 'radio0'
option type 'mac80211'
option path 'platform/soc/18000000.wifi'
option band '2g'
option channel '6'
option htmode 'HE20'
option country 'PL'
option cell_density '0'
config wifi-iface 'default_radio0'
option device 'radio0'
option network 'lan'
option mode 'ap'
option ssid 'XXX'
option encryption 'sae-mixed'
option key 'XXX
option ieee80211r '1'
option nasid '333'
option mobility_domain '4f44'
option ft_over_ds '0'
option ft_psk_generate_local '1'
option bss_transition '1'
option ieee80211k '1'
option time_advertisement '2'
option time_zone 'CET-1CEST,M3.5.0,M10.5.0/3'
option wnm_sleep_mode '1'
option wnm_sleep_mode_no_keys '1'
option ocv '0'
config wifi-device 'radio1'
option type 'mac80211'
option path 'platform/soc/18000000.wifi+1'
option band '5g'
option channel '48'
option htmode 'HE160'
option country 'PL'
option cell_density '0'
option he_su_beamformee '1'
option he_bss_color '8'
config wifi-iface 'default_radio1'
option device 'radio1'
option network 'lan'
option mode 'ap'
option ssid 'XXX
option encryption 'sae-mixed'
option key 'XXX'
option ieee80211r '1'
option nasid '999'
option mobility_domain '4f44'
option ft_over_ds '0'
option bss_transition '1'
option ieee80211k '1'
option wnm_sleep_mode '1'
option wnm_sleep_mode_no_keys '1'
option time_advertisement '2'
option time_zone 'CET-1CEST,M3.5.0,M10.5.0/3'
option ocv '0'
root@OpenWrt:~#
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'
list server '/mask.icloud.com/'
list server '/mask-h2.icloud.com/'
list server '/use-application-dns.net/'
list server '127.0.0.1#5053'
option doh_backup_noresolv '-1'
option noresolv '1'
list doh_backup_server '/mask.icloud.com/'
list doh_backup_server '/mask-h2.icloud.com/'
list doh_backup_server '/use-application-dns.net/'
list doh_backup_server '127.0.0.1#5053'
list doh_server '127.0.0.1#5053'
config dhcp 'lan'
option interface 'lan'
option start '100'
option limit '150'
option leasetime '12h'
option dhcpv4 'server'
option dhcpv6 'disabled'
option ra 'disabled'
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:~#
root@OpenWrt:~# cat /etc/config/firewall
config defaults
option input 'DROP'
option output 'ACCEPT'
option forward 'DROP'
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'
option input 'DROP'
option output 'ACCEPT'
option forward 'DROP'
option masq '1'
option mtu_fix '1'
list network 'wan6'
list network 'wan'
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'
option enabled '0'
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 '50/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 'WireguardVPN'
option input 'ACCEPT'
option output 'ACCEPT'
option forward 'ACCEPT'
option masq '1'
option mtu_fix '1'
list network 'WG'
config forwarding
option src 'WireguardVPN'
option dest 'lan'
config forwarding
option src 'WireguardVPN'
option dest 'wan'
config forwarding
option src 'lan'
option dest 'WireguardVPN'
config rule
option src 'wan'
option name 'WireGuard-incoming'
list proto 'udp'
option dest_port '51820'
option target 'ACCEPT'
config include 'bcp38'
option type 'script'
option path '/usr/lib/bcp38/run.sh'
root@OpenWrt:~#
I’m testing via 5ghz WiFi connection on my iPhone, via the LAN cable I’m getting full speed
Get rid of sae-mixed, and the "was easily able to reach 500-600mbps" was it on OpenWRT, or when running stock fw ?
In order to debug, perform a test from LAN to wifi. Do not involve WAN and so ISP and internet.
There a way too much wifi settings that are not necessary. Start with default settings, channel 36, HE160, wpa2.
@frollic It was on Openwrt, around 1-2 weeks ago, no changes in config were made since that time. What’s wrong with sae-mixed? I wanted to use WPA3 for most of the devices at home but I also have few obsolete devices which simply don’t support WPA3
@badulesia I’m not sure if I understand you correctly - do you want me to run same test via WiFi from the phone? Or? I don’t know what do you mean that there’s too much settings that are not necessary - I have two same devices with same software (Cudy WR3000H + Openwrt 24.10.3) - one is WAN/AP, second one is set as Dumb AP (connected by ethernet cable) and I’m using 802.11r/k/v - both devices are running same config and on both I was able to reach 500-600mbs in speedtests
Please provide output of
ubus call system board
This from example.
A smartphone will not give you full speed from wifi, use a laptop with an AX wifi card. If you have two devices setup with the same settings and close each others, their wifi will interfere. You don't have bad performance, you have bad settings. Start from simple default settings with one device. Than extend settings one step at the time.
@brada4 - sorry missed that one:
root@OpenWrt:~# ubus call system board
{
"kernel": "6.6.104",
"hostname": "OpenWrt",
"system": "ARMv8 Processor rev 4",
"model": "Cudy WR3000H v1",
"board_name": "cudy,wr3000h-v1",
"rootfs_type": "squashfs",
"release": {
"distribution": "OpenWrt",
"version": "24.10.3",
"revision": "r28872-daca7c049b",
"target": "mediatek/filogic",
"description": "OpenWrt 24.10.3 r28872-daca7c049b",
"builddate": "1758316778"
}
}
root@OpenWrt:~#
@badulesia I have two devices but they don’t interfere with each other as one is located on ground floor while another one is on 2nd floor - even if I scan wireless networks from each AP they don’t see each other. Also, have you read that I was able to reach 500-600mbs with exact same settings one - two weeks ago, on same device, standing close to the router? Also, I don’t understand what 802.11r/k/v have in common with WiFi speeds? This is only responsible for WiFi roaming (Fast Transition, Radio Resource Management and Network Assisted Roaming).
Start with disabling massive KVR parameter block. (sleep mode is legacy, likely TWT for wifi6 is enabled by default)
You can have this on every wifi6 radio to get unique colour for each AP on same channel.
-option he_bss_color '8'
+option he_bss_color '64'
SoC should be able to forward gigabit bidirectional not reaching 100% all cpus.
Disable all offloads completely and measure again.
You know, parametritis, the thing computer catches when you change every checkbox in sight.
This is the latest test I did from my iPhone standing 5m away from the router https://www.waveform.com/tools/bufferbloat?test-id=38cfdc9b-6ff8-4884-9948-eb13e9c51967
I also noticed that other speedtests are giving different results, eg speedtest.net shows 250-300mbps, why?
That is in what configuration?
First effort would be to try to compare three firewall offload levels.
This is with offloading set to none, but when I set it back to HW offloading I'm having similar results, no idea why. Is it good result, right?
I'm also wondering why speedtest.net is showing different result
OK, get rid of ton of extra wifi parameters.
Is WED available for the AX3000 devices...?
@brada4 OK, will do, but could you advice on which results I should rely on? Speedtest.net or waveform?
@frollic it is available but heard that it might cause problems
BTW - with iperf3 I’m getting 550Mbps
so the conclusion's there's no problem ?
Please provide exact numbers, talking around does not help.
So you confirm you easily reached 500-600Mbps and the initial problem just went away. You installed some garbage on your PC that slows down the browser.
... or you got capped by ISP's overbooking.