Skip to content

6 GHz downlink stuck at MCS 2-5 while 5 GHz reaches MCS 11 at same width and signal — not EHT, MLO, width or firmware (TBE550E + Archer BE800) #106

Description

@tybautf

Client: TP-Link Archer TBE550E PCIe (BE9300) — MT7927, WiFi PCI 14c3:7927, BT USB 0489:e116
AP: TP-Link Archer BE800 (BE19000), tri-band, ~2 m line of sight, MLO disabled
OS: CachyOS, kernel 7.2.0-1-cachyos
Package: mediatek-mt7927-dkms 2.14 (pkgrel 6)
Firmware: WM Firmware Build Time: 20260414134255 (linux-firmware blob), not the build the package shipped before v2.14-6. The shadowing issue is fixed as of 2.14-6 (#104) — verified here: only the BT .bin remains, WiFi blobs come from linux-firmware. All measurements in this report are on 20260414134255; per #102 newer firmware isn't universally better, so worth stating explicitly.

Summary

Downlink rate control is badly degraded on 6 GHz: RX MCS is pinned at 2 with EHT and only reaches 5 without it, at -50 dBm with NSS 2. The same client on 5 GHz at the same width reaches MCS 11. Uplink is unaffected (MCS 8-11 throughout). Disabling EHT helps on both bands but does not fix 6 GHz. Both client and AP are TP-Link, so this is not a cross-vendor interop issue.

Full matrix

All measurements on the same firmware, MLO disabled on the AP, ~2 m from the AP, NSS 2 throughout.

Band EHT Width RX MCS RX rate Download Upload
6 GHz yes 320 MHz 2 864.6 Mbit/s 617 Mbps 2363 Mbps
6 GHz no (disable_eht=1) 160 MHz 5 1152.8 Mbit/s 836 Mbps 1431 Mbps
5 GHz yes 160 MHz 7 1441.3 Mbit/s 871 Mbps 1713 Mbps
5 GHz no (disable_eht=1) 160 MHz 11 2401.9 Mbit/s 1646 Mbps 2028 Mbps

The decisive comparison is rows 2 and 4: same 160 MHz width, same HE path, comparable signal — MCS 5 on 6 GHz vs MCS 11 on 5 GHz.

On the MCS/PHY figures: iw reads msta->deflink.wcid.rate, which is only written when a firmware TX status report matches a still-pending skb, and status is requested at most once per 250 ms per station. These readings were taken at idle immediately after each test and should be treated as indicative, not authoritative — RX was observed at 1729.6 Mbit/s during a transfer where the post-test idle reading showed 1441.3. The throughput columns are the reliable part of this table.

Already ruled out

Additional observations

Rate control drift on 6 GHz. Downlink alternates between equivalent-but-poor combinations — MCS 3/NSS 2 and MCS 5/NSS 1 both landing at 576.4 Mbit/s — suggesting the AP is acting on unreliable feedback rather than hitting a hard capability limit.

Asymmetric channel width on 6 GHz. Repeatedly observed TX negotiated at 40 MHz while RX was at 160 MHz, under sustained traffic (2M+ packets), on both EHT and HE paths:

rx bitrate: 1152.8 MBit/s 160MHz HE-MCS 5 HE-NSS 2
tx bitrate:  573.5 MBit/s  40MHz HE-MCS 11 HE-NSS 2

Never observed on 5 GHz, where both directions consistently negotiate 160 MHz.

disable_eht=1 under NetworkManager. NM runs its own supplicant over D-Bus and never reads /etc/wpa_supplicant/*.conf (same wall hit in #92). Unmanaging the interface and running wpa_supplicant standalone does work — that is how the disable_eht rows above were produced. Note modprobe mt7925e disable_eht=1 silently fails with unknown parameter 'disable_eht' ignored.

Reproduction

  1. Associate to a 6 GHz BSS (WPA3-Personal, ch 53 PSC, 802.11ax/be mixed, width auto up to 320 MHz), MLO disabled on the AP.
  2. Run a sustained download.
  3. iw dev wlan0 link shows RX pinned at EHT-MCS 2 / 864.6 Mbit/s at -50 dBm while TX negotiates MCS 8-9.
  4. Repeat on 5 GHz: RX reaches MCS 7 (EHT) or 11 (disable_eht=1) at comparable signal.

Diagnostic commands used throughout:

iw dev wlan0 link
iw dev wlan0 station dump | grep -E "tx retries|tx packets|bitrate"
sudo dmesg | grep "WM Firmware" | tail -1

Pending

LAN-side iperf3 (to remove the WAN from the picture) and in-flight station dump during transfer rather than at idle — will follow up. Happy to test 6 GHz forced to ax instead of ax/be mixed, or with the 5 GHz radio disabled, if that would help narrow it down.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions