Newbie [mt76]: trying to understand NxN MIMO and aggregation

Hi,

thank you all for OpenWRT!

I tried to understand my issue(s) in another (old) thread linked to my used router hardware, but got stuck. For reference: Wavlink Quantum T8 Hacking. The reason why I got stuck (= no solution/fix) maybe related to misinterpreting the technology or lack of knowledge and I kindly ask for help to clarify. Excuse the length of the post.

Router (+antenna config): mt7621 + mt7615DN (2+2) + mt7615N (4)
OpenWRT: 23.05.5 r24106-10cc5fcd00 (official build)
Client: MacBook Pro M2 Max, 1-2m away from router, no walls
AC configs (NxN support clearly shows in iw list for the appropriate PHYs):

  • mt7615DN (2x2): ch36, 80mhz, other wifis at 52, no collision
  • mt7615N (4x4): ch100, 80mhz, no other wifi in graphs, channel doesn't seem to matter

The mt7615DN also handles a bg/n wifi via a dedicated PHY config as it is DBDC, but that is out of scope here.

My issue is that I expected to be able to saturate advertised AC wifi speeds (866 or 1733) using a single or multiple clients, but instead the picture is disappointingly different:

  • Despite splendid signal (>-35dBm) / noise (<-85dBm) figures on both AC PHYs, single clients show speeds of barely more than 400mbit/s, i.e. some 5-10% slower than what iwinfo phy* assoclist shows: expected throughput: 439.9 MBit/s. My expectation(s): both should get closer to the expected throughput.
  • There seems to be no automatic aggregation happening (my understanding is that speeds of 866 and 1733 can only be reached via aggregation). I can reach higher speeds up to 680mbit/s by using parallel streams via iperf3 -P when on the 2x2 AC, i.e. 22% below the maximum of 866. On the 4x4 AC, 'iperf3 -P' gives same throughput as the 2x2 AC. My expectation(s): clients/drivers automatically aggregate to reach maximum throughput (I saw reference to that in a thread on mt7915 performance) also fully utilizing the NxN capabilities. Dedicated parallel client streams should not be the only way to increase throughput beyond single link speed. The 4x4 AC should show an aggregated limit twice that of the 2x2 AC and should show speeds beyond 866mbit/s.
  • The MacBook Pro prefers to connect to the mt7615DN AC which is only 2x2 and randomly, but rarely connects to the 4x4 mt7615N AC. During tests I force the client to connect to the 4x4 AC by disabling the other 2 PHYs. There's no competition with other clients connecting as I'm testing the setup. My expectation: clients should automatically connect to the fastest available 5G network based on capabilities.

Reading many other posts, disappointing AC performance seems to be a common issue, but I want to understand what exactly is wrong in my case. I do understand that wifi speeds are easily affected by the environment, but as mentioned above I do have a pretty clean test setup for at least the 4x4 AC with higher channels and generally great SNRs on both.

Please note that I also read a guide on how to measure bandwidth and throughput correctly and tried to follow it (I don't remember anymore the link, but it was a forum post cited multiple times and I think I linked it in the thread I mentioned above).

I appreciate any help or clarification if my expectations are not appropriate or simply wrong.

Best,
Stephan

Latest edit: I restarted the box and now the 4x4 AC showed at least same behaviour as the 2x2 AC. Not better, but also not a lot worse as before. This doesn't feel very stable, but the 4x4 AC also has other issues, e.g. VHT160 can be configured and advertises SSID, but no clients can connect.

I should add a note about multiple clients as I mentioned MIMO in the title:

The situation is even worse with multiple clients. I tried with an iPhone 13 Mini in addition to MacBook Pro. The sum of multiple clients never reaches even the mentioned expected throughput, so in total worse than single stream on a single client. My expectation: it should behave similar to multiple streams on a single client.

Maybe someone can also shed some light on the following output from iwinfo * assoclist:

6E:XX:XX:XX:XX:XX  -34 dBm / -91 dBm (SNR 57)  0 ms ago
	RX: 866.7 MBit/s, VHT-MCS 9, 80MHz, VHT-NSS 2  16714714 Pkts.
	TX: 866.7 MBit/s, VHT-MCS 9, 80MHz, VHT-NSS 2    424600 Pkts.
	expected throughput: 467.3 MBit/s

Why are RX and TX 866.7mbps (obviously acknowledging 2 streams with the client) and the expected throughput is still 467.3mbps? The client is indeed the MacBook Pro (2/MIMO) according to Apple Support pages.

Edit: added MacBook Pro info.

Okay. Some more update. I upgraded to latest 24.10.0 r28427-6df0e3d02a.

2x2 AC improved to 472mbps single-stream, but dropped to 622mbps (from 680) with 4 streams.

4x4 AC improved to 498mbps single-stream and 674mbps with 4 streams (max. speed seems to be unstable as disable+enable PHY changes max. connection speed and takes long to get back to reasonable). VHT160 still shows same behaviour as before (= no connect).

Running speedtest on 4x4 AC still shows "only" 320/51mbps whereas gigabit ethernet via usb-c shows the full 512/51mbps of the fiber modem connection. Latency improves to 14ms (from 40), but is 5ms with gigabit ethernet.