OpenWrt One - Performance and experience

Hi moeller0,
Thanks for helping me.
The results of the speedtest are https://www.waveform.com/tools/bufferbloat?test-id=5984b453-45f4-441b-b34f-9cbef4cb1148

I use for now only the 2.4 wifi. The channel is radio0 MediaTek MT7981 802.11ax/b/g/n Channel: 5 (2.432 GHz) Bitrate: 53.9 Mbit/s

Regards, Lucas

This is only a single speedtest and I am unsure whether this is over the OpenWrt ONE or the ISP router?

Could you also please remind me, what internet access capacity you have booked?

Why, if I might ask, typically the 5 GHz band is more performant.

That said, to compared things fairly you should likely set both radios to the same channel (and deactivate the WiFi on the device you are not currently testing, so they do not interfere with each other).
Finally channel 5 is unusual, have a look at this graph from wikipedia:

the goal is to distribute all radios onto non overlapping channels, and while in Europe the second scheme (1, 5, 9, 13) would be preferable, many devices default to the scheme 3 (1, 6, 11), use a WiFi stumbler (e.g. for android WiFi Analyzer (open-source) by VREM) and look at the channel graph to see which channels are used in your neighbourhood. The rule of thumb is, APs that partially overlap in the used channels interfere with each other by introducing noise, while APs on the same center channel fully overlap, but that means they can decode their frames (up to the encrypted parts) and hence can coordinate better resulting in better performance for all.

1 Like

Hello , thanks for the info.
The speedtest is over radio0 of the openwrt ONE.
Only 2.4 because my laptop doesn't have a 5G driver. (I was too lazy I think, has now been adjusted.) Of course my android phone has both frequencies. Also adjusted the openwrt ONE: Radio0 on ch 4 and radio1 on ch 36, overlapping with the neighbors. Both the same SID. Reboot and still the openwrt ONE is much slower than the wifi ISP router.
Regards, Lucas

Great, now please post the same over the provider router's WiFi. I am not trying to be annoying, but it helps to fully understand the issues...

If you installed WiFI Analyser could you post screen shot of the channel graph for both the 2.4 and the 5 GHz bands, please?

Could you please post the output of:

cat /etc/config/wireless

from the OpenWrt One? So we can see what you configured there...
ATTENTION: make sure to redact your WiFi password before posting :wink:

1 Like

Hi, yes, good idea, maybe wrong or bad settings.
There we go:

root@OpenWrt-ONE:/etc/config# cat wireless

config wifi-device 'radio0'
	option type 'mac80211'
	option path 'platform/soc/18000000.wifi'
	option band '2g'
	option channel '4'
	option htmode 'HE20'
	option num_global_macaddr '7'
	option country 'US'
	option cell_density '0'

config wifi-iface 'default_radio0'
	option device 'radio0'
	option network 'lan'
	option mode 'ap'
	option ssid 'RUMBONENenRODEWIJN'
	option encryption 'psk2'
	option key '.............'

config wifi-device 'radio1'
	option type 'mac80211'
	option path 'platform/soc/18000000.wifi+1'
	option band '5g'
	option channel '36'
	option htmode 'HE80'
	option num_global_macaddr '7'
	option cell_density '0'

config wifi-iface 'default_radio1'
	option device 'radio1'
	option network 'lan'
	option mode 'ap'
	option ssid 'RUMBONENenRODEWIJN'
	option encryption 'psk2'
	option key '..............'
````Preformatted text`

root@OpenWrt-ONE:/etc/config# 
So far

Regards, Lucas

Unless you are in the US please adjust that. That is not the cause of your problem, but let's fix this while we are at it :wink:

Here is my config for comparison:

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

config wifi-device 'radio0'
	option type 'mac80211'
	option path 'platform/soc/18000000.wifi'
	option band '2g'
	option channel '1'
	option htmode 'HE20'
	option num_global_macaddr '7'
	option country 'DE'
	option cell_density '0'

config wifi-iface 'default_radio0'
	option device 'radio0'
	option network 'lan'
	option mode 'ap'
	option ssid 'OpenWrt_One_2.4GHz'
	option encryption 'sae-mixed'
	option key 'REDACTEDSECRETPASSWORD'
	option ocv '0'
	option multicast_to_unicast_all '1'
	option iw_qos_map_set '1,1,18,3,20,3,22,3,24,4,26,4,28,4,30,4,32,4,34,4,36,4,38,4,40,5,44,5,46,6,48,7,56,7,0,63,255,255,255,255,255,255,255,255,255,255,255,255,255,255'
	option disassoc_low_ack '0'

config wifi-device 'radio1'
	option type 'mac80211'
	option path 'platform/soc/18000000.wifi+1'
	option band '5g'
	option channel '52'
	option htmode 'HE80'
	option num_global_macaddr '7'
	option country 'DE'
	option cell_density '0'

config wifi-iface 'default_radio1'
	option device 'radio1'
	option network 'lan'
	option mode 'ap'
	option ssid 'OpenWrt_One_5GHz'
	option encryption 'sae-mixed'
	option key 'REDACTEDSECRETPASSWORD'
	option ocv '0'
	option multicast_to_unicast_all '1'
	option iw_qos_map_set '1,1,18,3,20,3,22,3,24,4,26,4,28,4,30,4,32,4,34,4,36,4,38,4,40,5,44,5,46,6,48,7,56,7,0,63,255,255,255,255,255,255,255,255,255,255,255,255,255,255'
	option disassoc_low_ack '0'

Other than that I added a few options (that should be orthogonal) this looks pretty similar.

Could you, please, check that you have all three antennas of the One screwed in snuggly? (Do not use so much force you would damage the threads, but make sure the antenas are not wobbling in the socket either) :wink:

Hi, thanks.

First of all; I used US because the transmit power is 26 dBm instead of 20 dBm when using NL. I took largely over your wireless config with the change DE = NL 2x.

Unfortunately, the Openwrt ONE did not become faster, rather slower, too bad.

Regards, Lucas

PS the antennas are manually fixed.

I would not recommend that... national limits are binding...

Ah. That brings me back to my question, what internet capacity does your ISP promise and what can you measure with wired ethernet?

I had something weird with my OpenWrt One which I use as a bridged AP.

I noticed that one of the clients had lost connection to the AP. I had set he AP on 5Ghz channel 52, but somehow it changed to 56 by itself. After that the client did not connected any more.

When I restarted the interface and went back to channel 52 the client was connecting again.

I'm not sure what happened and how I can prevent it from happening in the future. Does anyone have an easy explanation for this?

Likely DFS (Dynamic Frequency Selection), that is your router caught a signal on channel 52 it could not rule out to come from a radar and hence was forced to evacuate that channel and select another channel.

Unsure, but it could be from trying to use too wide a channel on 56... I always tend to look at wikipedia for channel related information here:

Thanks for your reply, I forgot that DFS is already active for those channels. Somehow I always think DFS is only related to higher channels....

Hi, M,
I got the openwrt ONE from the attic and connected it directly to the modem ISP. The shortest way out. That works a lot better, Now two switches are missing.
In the weekend I will try it out and compare it with the ISP wifi 6.
My download is 400 Mbit/s and upload is 40 Mbit/s.
Thanks you for helping me. I will be back :wink:

Regards, Lucas

1 Like

Did you test both the One and the Provider router at the same position on the attic?

@moeller0,

I tested the Openwrt One with the wireless of your German variant. It works fine now, thank you.
I am still curious about some options like the
option multicast_to_unicast_all '1'
option ocv '0' and
option iw_qos_map_set
are unknown to me and I did not see them in the wireless guide.
But fortunately it works reasonably now.
Regards Lucas

On WiFi if a packet is send as multicast (that is to all stations at the same time) typically the WiFi adapter uses the most robust modulation scheme so that all stations have a chance of receiving that packet (but that robust MCS/modulation scheme is also slow and consumes quite some airtime). So one way around this issue is to convert multicasts into a series of unicasts for all stations connected to an AP. Whether that helps or not, or whether it introduces issues depends on the details in your network.

I did not set this consciously, but according to:

it is the default anyways.

This allows to steer specific DSCPs into specific access classes (which have different priorities for getting access to airtime). My main goal is to make sure all non mapped DSCPs end up in AC_BE (especially DSCP decimal 45/NQB).

So what was the issue? Location, location, location of the AP in relation to the stations, or any of the slight configuration tweaks?

1 Like

I am only getting 500-600 mbps out of my Openwrt One as an iperf3 client when running a wired test to my iperf3 server.

I have a Linksys E8450 (aka. Belkin RT3200) set up nearly identically to my Openwrt One and I routinely see 800mbps+ on iperf3 tests from my Belkin. The main reason I mention this is even thought it is not an identical SOC it is very similar.

My setup:

  1. Both routers are running OpenWrt 24.10.1
  2. Both are set up as dumb APs with all wired ports including wan assigned to br.lan (test is completely on my private network, no natting or traversing networks)
  3. The one difference is I am using the m.2 slot on the Openwrt One to add 2 Nic slots. I am using: https://www.amazon.com/dp/B0BCXMGLYK and a 3d printed sidecar case. The drivers used is: r8168. This works beautifully and the ports seem to work as expected. That being said, the iperf3 test was run using the onboard 2.5gb port as the uplink to the switch that hosts the iperf3 server. Nothing is plugged into the r8168 ports during the test but the driver is loaded.

The nic speed or lack thereof is very disappointing. I was expecting at a minimum getting the same throughput as my Belkin 3200.

Please post your iperf output (ideally for tests in both directions).
Do you have receive packet steering enabled?
Also look at htop on the router while you run the test (enable the detailed CPU time in htop's setup, so you see SIRQ cycles as well) does one CPU max out?

Here is the Belkin iperf3:
iperf3 -c 10.2.1.1 -p 5901
Connecting to host 10.2.1.1, port 5901
[ 5] local 10.2.1.13 port 51606 connected to 10.2.1.1 port 5901
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 101 MBytes 842 Mbits/sec 0 1.68 MBytes
[ 5] 1.00-2.00 sec 96.1 MBytes 807 Mbits/sec 0 1.68 MBytes
[ 5] 2.00-3.00 sec 98.4 MBytes 825 Mbits/sec 0 1.68 MBytes
[ 5] 3.00-4.00 sec 97.5 MBytes 817 Mbits/sec 0 1.68 MBytes
[ 5] 4.00-5.00 sec 95.9 MBytes 805 Mbits/sec 0 1.68 MBytes
[ 5] 5.00-6.00 sec 98.0 MBytes 822 Mbits/sec 0 1.68 MBytes
[ 5] 6.00-7.00 sec 97.2 MBytes 816 Mbits/sec 0 1.68 MBytes
[ 5] 7.00-8.00 sec 97.5 MBytes 818 Mbits/sec 0 1.68 MBytes
[ 5] 8.00-9.00 sec 96.6 MBytes 811 Mbits/sec 0 1.68 MBytes
[ 5] 9.00-10.00 sec 97.9 MBytes 821 Mbits/sec 0 1.68 MBytes


[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 976 MBytes 818 Mbits/sec 0 sender
[ 5] 0.00-10.00 sec 974 MBytes 817 Mbits/sec receiver

Belkin iperf3 bidir:
iperf3 -c 10.2.1.1 -p 5901 --bidir
Connecting to host 10.2.1.1, port 5901
[ 5] local 10.2.1.13 port 44834 connected to 10.2.1.1 port 5901
[ 7] local 10.2.1.13 port 44838 connected to 10.2.1.1 port 5901
[ ID][Role] Interval Transfer Bitrate Retr Cwnd
[ 5][TX-C] 0.00-1.00 sec 85.9 MBytes 720 Mbits/sec 0 1.12 MBytes
[ 7][RX-C] 0.00-1.00 sec 20.9 MBytes 175 Mbits/sec
[ 5][TX-C] 1.00-2.00 sec 80.8 MBytes 677 Mbits/sec 0 1.12 MBytes
[ 7][RX-C] 1.00-2.00 sec 25.5 MBytes 214 Mbits/sec
[ 5][TX-C] 2.00-3.00 sec 87.5 MBytes 734 Mbits/sec 0 1.12 MBytes
[ 7][RX-C] 2.00-3.00 sec 14.1 MBytes 118 Mbits/sec
[ 5][TX-C] 3.00-4.00 sec 85.9 MBytes 720 Mbits/sec 0 1.12 MBytes
[ 7][RX-C] 3.00-4.00 sec 16.0 MBytes 134 Mbits/sec
[ 5][TX-C] 4.00-5.00 sec 85.8 MBytes 719 Mbits/sec 0 1.12 MBytes
[ 7][RX-C] 4.00-5.00 sec 18.6 MBytes 156 Mbits/sec
[ 5][TX-C] 5.00-6.00 sec 89.0 MBytes 745 Mbits/sec 0 1.12 MBytes
[ 7][RX-C] 5.00-6.00 sec 10.2 MBytes 85.8 Mbits/sec
[ 5][TX-C] 6.00-7.00 sec 84.2 MBytes 708 Mbits/sec 0 1.12 MBytes
[ 7][RX-C] 6.00-7.00 sec 18.1 MBytes 152 Mbits/sec
[ 5][TX-C] 7.00-8.00 sec 83.5 MBytes 701 Mbits/sec 0 1.12 MBytes
[ 7][RX-C] 7.00-8.00 sec 19.1 MBytes 160 Mbits/sec
[ 5][TX-C] 8.00-9.00 sec 86.2 MBytes 724 Mbits/sec 0 1.12 MBytes
[ 7][RX-C] 8.00-9.00 sec 16.4 MBytes 137 Mbits/sec
[ 5][TX-C] 9.00-10.00 sec 82.6 MBytes 693 Mbits/sec 0 1.12 MBytes
[ 7][RX-C] 9.00-10.00 sec 23.6 MBytes 198 Mbits/sec


[ ID][Role] Interval Transfer Bitrate Retr
[ 5][TX-C] 0.00-10.00 sec 851 MBytes 714 Mbits/sec 0 sender
[ 5][TX-C] 0.00-10.00 sec 849 MBytes 712 Mbits/sec receiver
[ 7][RX-C] 0.00-10.00 sec 184 MBytes 154 Mbits/sec 22 sender
[ 7][RX-C] 0.00-10.00 sec 183 MBytes 153 Mbits/sec receiver

Openwrt One Iperf3:
iperf3 -c 10.2.1.1 -p 5901
Connecting to host 10.2.1.1, port 5901
[ 5] local 10.2.1.7 port 41740 connected to 10.2.1.1 port 5901
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 82.6 MBytes 692 Mbits/sec 0 765 KBytes
[ 5] 1.00-2.00 sec 79.5 MBytes 667 Mbits/sec 0 765 KBytes
[ 5] 2.00-3.00 sec 79.4 MBytes 666 Mbits/sec 0 765 KBytes
[ 5] 3.00-4.00 sec 79.4 MBytes 666 Mbits/sec 0 765 KBytes
[ 5] 4.00-5.00 sec 80.0 MBytes 671 Mbits/sec 0 765 KBytes
[ 5] 5.00-6.00 sec 80.5 MBytes 674 Mbits/sec 0 765 KBytes
[ 5] 6.00-7.00 sec 77.0 MBytes 647 Mbits/sec 0 765 KBytes
[ 5] 7.00-8.00 sec 79.9 MBytes 670 Mbits/sec 0 765 KBytes
[ 5] 8.00-9.00 sec 79.9 MBytes 670 Mbits/sec 0 765 KBytes
[ 5] 9.00-10.00 sec 79.6 MBytes 666 Mbits/sec 0 765 KBytes


[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 798 MBytes 669 Mbits/sec 0 sender
[ 5] 0.00-10.01 sec 795 MBytes 667 Mbits/sec receiver

Openwrt One Iperf3 bidir:
iperf3 -c 10.2.1.1 -p 5901 --bidir
Connecting to host 10.2.1.1, port 5901
[ 5] local 10.2.1.7 port 59646 connected to 10.2.1.1 port 5901
[ 7] local 10.2.1.7 port 59662 connected to 10.2.1.1 port 5901
[ ID][Role] Interval Transfer Bitrate Retr Cwnd
[ 5][TX-C] 0.00-1.06 sec 84.6 MBytes 667 Mbits/sec 0 764 KBytes
[ 7][RX-C] 0.00-1.06 sec 43.2 MBytes 341 Mbits/sec
[ 5][TX-C] 1.06-2.00 sec 75.4 MBytes 674 Mbits/sec 0 764 KBytes
[ 7][RX-C] 1.06-2.00 sec 34.4 MBytes 307 Mbits/sec
[ 5][TX-C] 2.00-3.00 sec 77.6 MBytes 651 Mbits/sec 0 764 KBytes
[ 7][RX-C] 2.00-3.00 sec 30.2 MBytes 254 Mbits/sec
[ 5][TX-C] 3.00-4.00 sec 79.5 MBytes 666 Mbits/sec 0 764 KBytes
[ 7][RX-C] 3.00-4.01 sec 35.6 MBytes 297 Mbits/sec
[ 5][TX-C] 4.00-5.00 sec 79.6 MBytes 667 Mbits/sec 0 764 KBytes
[ 7][RX-C] 4.01-5.00 sec 35.9 MBytes 302 Mbits/sec
[ 5][TX-C] 5.00-6.01 sec 79.9 MBytes 664 Mbits/sec 0 764 KBytes
[ 7][RX-C] 5.00-6.01 sec 38.1 MBytes 317 Mbits/sec
[ 5][TX-C] 6.01-7.01 sec 77.6 MBytes 656 Mbits/sec 0 764 KBytes
[ 7][RX-C] 6.01-7.01 sec 35.5 MBytes 300 Mbits/sec
[ 5][TX-C] 7.01-8.00 sec 77.9 MBytes 655 Mbits/sec 0 764 KBytes
[ 7][RX-C] 7.01-8.00 sec 35.1 MBytes 296 Mbits/sec
[ 5][TX-C] 8.00-9.00 sec 79.2 MBytes 666 Mbits/sec 0 764 KBytes
[ 7][RX-C] 8.00-9.00 sec 37.0 MBytes 311 Mbits/sec
[ 5][TX-C] 9.00-10.00 sec 77.9 MBytes 651 Mbits/sec 0 764 KBytes
[ 7][RX-C] 9.00-10.00 sec 35.6 MBytes 298 Mbits/sec


[ ID][Role] Interval Transfer Bitrate Retr
[ 5][TX-C] 0.00-10.00 sec 789 MBytes 662 Mbits/sec 0 sender
[ 5][TX-C] 0.00-10.01 sec 787 MBytes 660 Mbits/sec receiver
[ 7][RX-C] 0.00-10.00 sec 361 MBytes 303 Mbits/sec 536 sender
[ 7][RX-C] 0.00-10.01 sec 361 MBytes 303 Mbits/sec receiver

Both boxes are set to:

Htop showing one core maxxed: (In top sirq gets to 58% max)

@moeller0 Any thoughts on the data I posted greatly appreciated....

Well, on the one, you appear CPU limited, so maybe install and activate irqbalance, or try to manually distribute the interruppts across the two CPUs...