Linksys MR8300 wifi speed is limited on 23.05.5

Hi everyone,

I recently installed OpenWRT on my Linksys MR8300. My LAN internet connection provides speeds of 600/100 Mbps, but my Wi-Fi connection is limited to a maximum speed of 300/100 Mbps.

I have enabled Software Flow Offloading, Hardware Flow Offloading, and Packet Steering. Additionally, I installed the ath10k-firmware-qca4019-ct-full-htt and ath10k-firmware-qca9888-ct-full-htt, but the speed issue persists. I've followed several articles in this forum but haven't had any success so far.

If anyone has suggestions or troubleshooting tips, I would appreciate your input. Thank you!

What's the client used for testing?

1 Like

spec says 866Mbps maximum link rate (means 2 antenna clients), so 433+/-Mbps transfer rate if noone else is interfering.

I have this device and never had any issue related to wifi. Yours may come from the client (@frollic's reply), the way of testing, or from a bad setting. Please share your network and wifi settings. Redac private parts.

@frollic I tested several devices, such as the iPhone 15 Pro Max, Lenovo T470 and MacBook Pro M1. I used Speedtest and checked the connection to the same server to stabilize the tests across devices.
@badulesia The router is located one meter away from all my devices that were a part of this test.
Here are my network and wifi settings:

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 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 device
        option name 'lan1'
        option macaddr '[REDACTED]'

config device
        option name 'lan2'
        option macaddr '[REDACTED]'

config device
        option name 'lan3'
        option macaddr '[REDACTED]'

config device
        option name 'lan4'
        option macaddr '[REDACTED]'

config interface 'lan'
        option device 'br-lan'
        option proto 'static'
        option ipaddr '10.0.0.1'
        option netmask '255.255.255.0'
        option ip6assign '60'
        option ipv6 '0'
        option delegate '0'
        list dns '1.1.1.1'
        list dns '8.8.8.8'

config device
        option name 'wan'
        option macaddr '[REDACTED]'

config interface 'wan'
        option device 'wan'
        option proto 'pppoe'
        option username '[REDACTED]'
        option password '[REDACTED]'
        option ipv6 '0'
        option peerdns '0'
        list dns '1.1.1.1'
        list dns '8.8.8.8'
        list dns '9.9.9.9'

config interface 'wan6'
        option device 'wan'
        option proto 'dhcpv6'
        option reqaddress 'try'
        option reqprefix 'auto'
-----------------------------------------------------
cat /etc/config/wireless

config wifi-device 'radio0'
        option type 'mac80211'
        option path 'soc/40000000.pci/pci0000:00/0000:00:00.0/0000:01:00.0'
        option channel '153'
        option band '5g'
        option htmode 'VHT80'
        option cell_density '0'
        option country 'US'
        option txpower '30'
        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 disassoc_low_ack '0'
        option disabled '1'

config wifi-device 'radio1'
        option type 'mac80211'
        option path 'platform/soc/a000000.wifi'
        option channel '6'
        option band '2g'
        option htmode 'HT20'
        option cell_density '0'
        option country 'US'
        option txpower '30'

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

config wifi-device 'radio2'
        option type 'mac80211'
        option path 'platform/soc/a800000.wifi'
        option channel '36'
        option band '5g'
        option htmode 'VHT80'
        option txpower '23'
        option cell_density '0'
        option country 'US'
        option force_power '1'

config wifi-iface 'default_radio2'
        option device 'radio2'
        option network 'lan'
        option mode 'ap'
        option ssid '[REDACTED]'
        option encryption 'psk2+ccmp'
        option key '[REDACTED]'
        option airtime_policy '0'
        option disassoc_low_ack '0'
        option ieee80211w '0'
-----------------------------------------------------
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'

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'
-----------------------------------------------------
 cat /etc/config/firewall

config defaults
        option input 'REJECT'
        option output 'ACCEPT'
        option forward 'REJECT'
        option flow_offloading '1'
        option synflood_protect '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'

You need to check withing your network, not by using an external site. Use iperf3 for this. Also using ppoe require CPU power and may alter the bandwith.

Radio 0: I'm surprised by txpower = 30, is it a valid value?

@badulesia I made the same tests with the iperf3, and the results look the same...
I also checked the CPU load, and it is not even past 0.3.
Regarding the ppoe connection with what my ISP provided, it supports.
I also changed the country code to lower the tx power ,but the result is the same.

From iPhone 15 Pro Max (Wifi)

Server listening on 5201 (test #2)
-----------------------------------------------------------
Accepted connection from 10.0.0.169, port 52733
[  5] local 10.0.0.1 port 5201 connected to 10.0.0.169 port 52734
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  35.5 MBytes   297 Mbits/sec    2    365 KBytes
[  5]   1.00-2.00   sec  36.6 MBytes   307 Mbits/sec    0    436 KBytes
[  5]   2.00-3.00   sec  37.9 MBytes   318 Mbits/sec    7    349 KBytes
[  5]   3.00-4.00   sec  36.2 MBytes   304 Mbits/sec    0    423 KBytes
[  5]   4.00-5.00   sec  35.9 MBytes   301 Mbits/sec    8    369 KBytes
[  5]   5.00-6.00   sec  34.6 MBytes   290 Mbits/sec    8    331 KBytes
[  5]   6.00-7.00   sec  35.0 MBytes   294 Mbits/sec    3    291 KBytes
[  5]   7.00-8.00   sec  34.8 MBytes   292 Mbits/sec    9    260 KBytes
[  5]   8.00-9.00   sec  34.6 MBytes   290 Mbits/sec    0    349 KBytes
[  5]   9.00-10.00  sec  34.9 MBytes   293 Mbits/sec    9    327 KBytes
[  5]  10.00-10.01  sec   768 KBytes  1.11 Gbits/sec    0    327 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.01  sec   358 MBytes   300 Mbits/sec   46             sender


From MacBook Pro M1 (Wifi)

Server listening on 5201 (test #5)
-----------------------------------------------------------
Accepted connection from 10.0.0.147, port 53787
[  5] local 10.0.0.1 port 5201 connected to 10.0.0.147 port 53788
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec  45.9 MBytes   384 Mbits/sec
[  5]   1.00-2.00   sec  18.2 MBytes   153 Mbits/sec
[  5]   2.00-3.00   sec  20.8 MBytes   174 Mbits/sec
[  5]   3.00-4.00   sec  22.0 MBytes   185 Mbits/sec
[  5]   4.00-5.00   sec  20.9 MBytes   175 Mbits/sec
[  5]   5.00-6.00   sec  25.5 MBytes   214 Mbits/sec
[  5]   6.00-7.00   sec  20.8 MBytes   174 Mbits/sec
[  5]   7.00-8.00   sec  24.0 MBytes   201 Mbits/sec
[  5]   8.00-9.00   sec  68.2 MBytes   572 Mbits/sec
[  5]   9.00-10.00  sec  75.9 MBytes   637 Mbits/sec
[  5]  10.00-10.02  sec  1.25 MBytes   573 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-10.02  sec   344 MBytes   288 Mbits/sec                  receiver

From Windows 11 (Lan connection)

Server listening on 5201 (test #6)
-----------------------------------------------------------
Accepted connection from 10.0.0.152, port 53914
[  5] local 10.0.0.1 port 5201 connected to 10.0.0.152 port 53915
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec   112 MBytes   943 Mbits/sec
[  5]   1.00-2.00   sec   113 MBytes   946 Mbits/sec
[  5]   2.00-3.00   sec   113 MBytes   947 Mbits/sec
[  5]   3.00-4.00   sec   113 MBytes   947 Mbits/sec
[  5]   4.00-5.00   sec   112 MBytes   938 Mbits/sec
[  5]   5.00-6.00   sec   113 MBytes   948 Mbits/sec
[  5]   6.00-7.00   sec   113 MBytes   947 Mbits/sec
[  5]   7.00-8.00   sec   113 MBytes   947 Mbits/sec
[  5]   8.00-9.00   sec   113 MBytes   946 Mbits/sec
[  5]   9.00-10.00  sec   113 MBytes   947 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-10.00  sec  1.10 GBytes   946 Mbits/sec                  receiver

See the M1 log - pretty obvious there is other transmission in range.

1 Like

I connected only one device each time. There is some drop in the transmissions that I can't explain why.

Do you use radio0 (channel 153) or radio2 (channel 36)?

@badulesia Both.
The most interesting point was that when I used the stock ROM, the connectivity worked great and since I moved to the OpenWRT 23.05.5, I have been facing issues. I trully beleve that the root of the issue someware in the configuration but not sure where...

MR8300 is ipq40xx. Enable Software Flow Offloading and Irqbalance. Disable Packet Steering. I used to have such a router and I remember that I was not happy with the wi-fi speed even when it was working in dumb AP mode.
https://openwrt.org/docs/guide-user/services/irqbalance

1 Like