BPI R3/R4: Need some iperf3 tests regarding the MT7975N chipset (2.4GHz module)

Greetings, I have been observing strange behavior with the MT7975N chipset on my BPI R3 routers for a few weeks now. This behavior occurs with OpenWRT 23.05.02, 23.05.03 as well as with the latest SNAPSHOT image.

There is already a bug report in the OpenWRT repo: MT7975N - High retries during an iperf3 test between router and client via 2.4 GHz · Issue #15174 · openwrt/openwrt · GitHub

I would need some iperf3 tests from you. Whether from a BPI R3 or R4 as both use the MT7975N chipset. It is important to run the test only on the 2.4GHz module.

The problem briefly explained:

I have some client devices here (HTC U12 Plus, OnePlus 10 Pro, Samsung Galaxy A32 etc.) which, if they are logged into the 2.4GHz module of the BPI R3, show very high retries in iperf3 tests in the TX direction. The RX direction, on the other hand, is largely OK. In addition, this problem disappears if the clients are put into standby while the iperf3 test is running. This also stabilizes the bandwidth. With a current self-built image with current main branch and mt76 driver source, the behavior also improves when bluetooth is deactivated on the client. With OpenWRT 23.05.2/23.05.3 this variant only works partially. However, the clients do not show this behavior with other 2.4 GHz chipsets on the AP side.

To further isolate the problem, it would be great if some of you could test this behavior with your BPIs. All you need is a configured 2.4 GHz only SSID and an installed iperf3 package on your BPI. On the client side, I currently use the “Ping Master” app from “AppPlanex” in the Android Play Store. Of course, any other iperf3-capable app will also work.

The following steps are sufficient:

Start Iperf3 on the BPI via “iperf3 -s”. Connect the client with the 2.4GHz only SSID. (If possible, do not connect any other clients to the BPI) Check whether the Bluetooth on the client is active and is NOT connected to any Bluetooth device. If it is deactivated, please wait at least 1 minute until the test is executed. Run iperf3 on the client in client mode. Please use the reverse mode to test the TX direction. 30 seconds is enough. Longer is also possible. If high retries occur per second (more than 10 are definitely too much), a second test would be helpful. For the second test, please put the client into standby and/or deactivate the bluetooth after starting the iperf3 test. Normally the retries should then stop. As soon as the client is brought out of standby again, the retries increase significantly.

Please post both test results here in the thread or in the OpenWRT bugreport linked above. Only the result shown on the BPI is relevant.

A minimal wireless configuration like the following is sufficient:

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

config wifi-device 'radio1'
        option type 'mac80211'
        option path 'platform/soc/18000000.wifi+1'
        option band '5g'
        option htmode 'HE20'
        option cell_density '0'
        option country 'DE'
        option channel '120'
        option txpower '20'
        option disabled '1'

config wifi-iface 'wifinet0'
        option device 'radio0'
        option mode 'ap'
        option ssid 'test'
        option encryption 'psk2+ccmp'
        option key 'testmt76driver'
        option network 'lan'
        option disassoc_low_ack '0'

Thank you for your help!