Hello everyone, this is my first post in this forum. I enjoyed a lot reading amazing technical posts but I would like some help to optimize my personal use case.
I have a Netgear R7800 with OpenWRT 23.05.2 running great. Recently I wanted to upgrade to WiFi 6E but I couldn't find a available device well supported with OpenWRT so I decided to pivot to WiFi 6 and I bought an Asus TUF-AX6000 that is in snapshot support. It's working okay so far as an AP (need more testing).
My idea is to repurpose my R7800 as a WDS client (5 ghz) to get my main desktop PC (wired to the R7800) better WiFi throughput. I don't know if this is a bad idea given that the Asus is WiFi AX and the R7800 is WiFi AC, also that the Asus is Atheros based and the R7800 is MediaTek but I gave it a try anyway.
The WDS link is pretty strong, both devices are not far away, the R7800 is in the next room with a brick wall in between. The signal is good and the PHY speed is pretty high as you can see in this LuCI screenshot:
The problem comes when I do iperf3 tests between hosts... if I do a test from the Asus to the R7800 I get ~1gbps throughput which is amazing, that's the speed I'm looking for. But when I do the same test from the R7800 to the Asus I get ~600mbps and cannot get pass that. I thought it could be the R7800 CPU not able to send so much data so I tried with two computers on each side of the link and I get even less throughput, around 400 to 500 mbps either way.
I tried to improve this but I didn't get any good results, I tried switching from wpad-basic-mbedtls to wpad-mbedtls in both devices. I tried switching the ath10k-ct driver to ath10k in the R7800 and I think that improved speeds and stability a bit but not as expected. I'm starting to get out of options so I decided to get your opinions here
Open questions:
Is what I'm trying to do not achievable? Maybe I'm trying to get some throughput that is not achievable in the real world with my devices.
Why do you think I'm getting much worse transfers from the R7800 to the Asus? Is it a Client vs AP issue or a device/driver issue?
As commented before, is it a bad idea to mix WiFi versions and vendors for a WDS link or it's not a big deal?
What other info can I share to debug this? I'm not very familiar with Wireless cli utils.
Thanks for your reply @linuxuser. I didn't think about beamforming but It could make a difference.
Here is Asus output:
root@OpenWrt:~# grep -r beamform /tmp/run/
/tmp/run/hostapd-phy1.conf:he_su_beamformer=1
/tmp/run/hostapd-phy1.conf:he_su_beamformee=1
/tmp/run/hostapd-phy1.conf:he_mu_beamformer=1
/tmp/run/hostapd-phy1.conf.prev:he_su_beamformer=1
/tmp/run/hostapd-phy1.conf.prev:he_su_beamformee=1
/tmp/run/hostapd-phy1.conf.prev:he_mu_beamformer=1
/tmp/run/hostapd-phy0.conf:he_su_beamformer=1
/tmp/run/hostapd-phy0.conf:he_su_beamformee=1
/tmp/run/hostapd-phy0.conf:he_mu_beamformer=1
grep: /tmp/run/wpa_supplicant/global: No such device or address
grep: /tmp/run/hostapd/phy1-ap0: No such device or address
grep: /tmp/run/hostapd/phy0-ap1: No such device or address
grep: /tmp/run/hostapd/phy0-ap0: No such device or address
grep: /tmp/run/hostapd/global: No such device or address
grep: /tmp/run/ubus/ubus.sock: No such device or address
And this is the R7800, it looks like it doesn't support beamforming:
root@OpenWrt-Netgear:~# grep -r beamform /tmp/run/
grep: /tmp/run/wpa_supplicant/phy0-sta0: No such device or address
grep: /tmp/run/wpa_supplicant/global: No such device or address
grep: /tmp/run/hostapd/global: No such device or address
grep: /tmp/run/ubus/ubus.sock: No such device or address
I'll investigate further to see if this is the case. Another thing that I thought of trying is to switch to a 802.11s mesh instead of a WDS bridge to see if that has better/worse/same performance. I didn't have time to test yet, I'll report back when I do.
Edit: I just noticed that even though the Asus router is faster sending data, it has many retries on each run. The R7800 sending data has consistently 0 retries I need to investigate more.
Beamforming improves data rates and extends range by directing signals toward specific clients instead of in every direction at once. By carefully controlling transmissions from several antennas, we can cause their signals to interfere on purpose and redirect the resulting signal in a new direction.
Basic Service Set (BSS) Coloring marks shared frequencies to allow 802.11ax access points to determine whether simultaneous use of spectrum is permissible. This technology reduces interference due to congestion and ensures consistent service to multiple connected devices in high-density environments.
Edit /etc/config/wireless and insert the following option under the radio section corresponding to the device which should be using beam forming:
I am waiting with my TUF 6000 and openwrt until it is supported by https://firmware-selector.openwrt.org/ To change to wpad-openssl for mesh can be a challlenge.
I have read threads, where WDS was faster than mesh. In my case, it is probably better to use WDS. I have never configured Mesh, but 802.11r did not work as expected. The phones did not change the AP and I prefer to have the option to change it manually, if it doesn't work.
I didn't add anything to my /etc/config/wireless, I saw that instructions in the wiki but I wanted to try if it worked out of the box. I saw in some hostapd files that beamforming is supposed to be enabled by default and it looks like it is.
It might be worth trying but I don't know if it's going to help. I could try later and see if anything changes. I bet more on trying 802.11s instead of WDS to see how it works
I actually changed to wpad-openssl in both the R7800 and the TUF-AX6000 just to try, I didn't see any issues or big improvements. I just uninstalled the wpad-mbedtls and I installed wpad-openssl, then restarted and everything worked as normal.
That's good to know, I haven't tried mesh at all. I wasn't sure if it's faster or slower, that's why I wanted to give it a try. Maybe it ends up being much worse... I'll let you know in a few days when I have time to properly test.
I had problems with some routers and the only way to install libustream-openssl mesh11sd wpad-openssl was with the firmware selector. Soft-bricked 2 devices during exchanging the packages.
Yes, a big maybe. I think my theoretical meshpoints here would be not placed optimal.
If you got Mesh work, please post your config files. If I try it the whole house doesn't have internet.
That's so scary! It haven't happen anything like that to me yet, but with Linux one never knows A bad change could lead to a non bootable device...
I don't know if this is helpful but in the system logs I saw these entries on the Asus, those are not present in the R7800 (I don't know if it's a software difference or driver difference on the logging):
Fri Jan 5 18:49:53 2024 daemon.notice hostapd: Set new config for phy phy1: /var/run/hostapd-phy1.conf
Fri Jan 5 18:49:53 2024 daemon.notice hostapd: Restart interface for phy phy1
Fri Jan 5 18:49:53 2024 daemon.notice hostapd: Configuration file: data: driver=nl80211 logger_syslog=127 logger_syslog_level=4 logger_stdout=127 logger_stdout_level=4 country_code=ES ieee80211d=1 ieee80211h=1 hw_mode=a beacon_int=100 chanlist=52 tx_queue_data2_burst=2.0 #num_global_macaddr=1 ieee80211n=1 ht_coex=0 ht_capab=[HT40+][LDPC][SHORT-GI-20][SHORT-GI-40][TX-STBC][RX-STBC1][MAX-AMSDU-7935] ieee80211ac=1 vht_oper_chwidth=1 vht_oper_centr_freq_seg0_idx=58 vht_capab=[RXLDPC][SHORT-GI-80][SHORT-GI-160][TX-STBC-2BY1][SU-BEAMFORMER][SU-BEAMFORMEE][MU-BEAMFORMER][MU-BEAMFORMEE][RX-ANTENNA-PATTERN][TX-ANTENNA-PATTERN][RX-STBC-1][SOUNDING-DIMENSION-4][BF-ANTENNA-4][VHT160][MAX-MPDU-11454][MAX-A-MPDU-LEN-EXP7] ieee80211ax=1 he_oper_chwidth=1 he_oper_centr_freq_seg0_idx=58 he_su_beamformer=1 he_su_beamformee=1 he_mu_beamformer=1 he_bss_color=128 he_spr_sr_control=3 he_default_pe_duration=4 he_rts_threshold=1023 he_mu_edca_qos_info_param_count=0 he_mu_edca_qos_info_q_ack=0 he_mu_edca_qos_info_queue_request=0 he_mu_edca_qos_info_t
There you can see that beamforming is enabled automatically by hostapd (I don't add any special configs to my /etc/config/wireless)
For the record this is my /etc/config/wireless file in the Asus:
I flashed about 20 times different images and different devices. The biggest challenge was the soft brick with a Zyxel NBG6817, which is very similar to the R7800, but not with debricking! 1st flash with the Zyxel was without problems, then I added packages for mesh and the device was bricked.
What I have learned, that it got a lot better with beamforming from Openwrt 22 to 23 with Wifi 6(!) devices. Maybe the R7800 with Wifi 5 needs the next Openwrt 24? See what changed here from 22 to 23:
Thanks, I would be interested in the changes from WDS to Mesh. Your WDS looks similar to mine.
Just another idea. There are very cheap Wifi-6 extenders. I got 2 Zyxel Multy M1 WSM20 for 50€ before Christmas, and a D-Link DAP-X1860 for below 30€. I think for speed testing they do their job. Both are very easy to flash with openwrt and querying them, they show beamforming-entries.
I ended up buying a GL.Inet Flint 2 (GL-MT6000) and return the Asus TUF-AX6000 because the price is pretty similar (same SoC), the Flint 2 has much more ram and storage, and I like the aesthetics better. I still have the Asus but I'll return it to Amazon soon. I did a quick WDS bridge test between the Flint 2 and the Asus I got slightly better iperf3 performance around 700-800 Mbps at the distance. I think the issue with the R7800 upload speed might be a driver/hardware issue that does not allow to go faster. Probably I'll start testing the Flint 2 with the R7800 in a WDS link soon.
Flint 2 was 179€ and the Asus TUF-AX6000 was 159.90€. I bought both on Amazon, the Flint 2 was cheaper in their website but I wanted to have a safe way of returning it and getting my money back quickly in case the device didn't work as expected. So far I like the Flint 2 and I'm 99% positive I'm going to return the Asus.
For the record, I just created a WDS bridge with the Asus in the same spot as the R7800 was, connected to the Flint 2 where the Asus originally was placed. I got these iperf3 speeds with excellent signal and high modulation:
Thanks, I would pay about 180€ too for the Flint, but I paid about 140€ for the 6000 at Black Friday.
I fear you will notice problems in detail only after months, as I did with other routers. I did tons of testing with iperf2 and iperf3 since I had connections below 1 Mbs, most time 500kbs. Now I am about 100Mbs and I am happy with this speed. I have to cross thick walls with 2.4GHz from the Upstream-Router, at the moment a R7800 and then I connect to the WDS-access points with 5GHz, where every AP has a different channel. That is the secret for my better speed to switch from 2.4 to 5GHz after the thick walls, although it doesn't make sense at first sight, since 100Mbs is in the range of 2.4G. I hope I get better performance with the AX6000.
Note, WDS-routers are not designed for iperf. But IMHO it is an indicator to compare configurations. The iperf values are better in real life, because the cpu of the router is too weak.