[Solved] 802.11ax worse than 802.11ac with mt76 driver?

Sorry, I might have expressed myself not clearly enough (English is not my native language).

What I was trying to say is this:

  1. OpenWrt build gets the mt76 files directly from https://github.com/openwrt/mt76 (it is on a separate repository from main OpenWrt repository)

  2. File package/kernel/mt76/Makefile points to the exact commit in the mt76 respository to be included in the build

  3. Using branch 22.03, if I point mt76 drivers to the same one used by master (see below), 22.03 build fails due to the fact that current mt76 drivers now depends on kernel 5.15.

Anyway, this is what I used to do and it worked up to the point that snapshot changed kernel to 5.15, when the above process stopped working.

Of course you can clone mt76 repository to the same commit used by 22.03, change your OpenWrt build to point to your custom mt76 respository and cherry pick only the change you want. But this is a different route than what I was doing.


Master/Snapshot current package/kernel/mt76/Makefile

PKG_SOURCE_URL:=https://github.com/openwrt/mt76
PKG_SOURCE_PROTO:=git
PKG_SOURCE_DATE:=2023-02-02
PKG_SOURCE_VERSION:=b2360d59747c6fed2b65bc1c3563c10593c83f3e
PKG_MIRROR_HASH:=f85f00fa8f549de348a115f92c4f0235e413ed924669aece390c7570882526dd
3 Likes

since the latest mt76 drives did improve 802.11ax on mt7622 devices

Smallest of nitpicks here... doesn't 802.11ax run off the mt7915 chip, and the mt7622 runs 802.11b/g/n?

3 Likes

You're absolutely right, I just updated my post above to make this clearer.

Thanks, it's been super confusing trying to understand everything as a newcomer.

The "mt76" driver package (is that what it's called overall?) has code for all sorts of chips, including the mt7622 and mt7915. Is that much correct, at least?

It does indeed contain code for multiple MediaTek wireless radios.

2 Likes

Chiming in to +1 that latest snapshots have fixed the issue. Speeds now equivalent to 802.11ac on the troublesome 2021 MacBook Pro, and other devices are hitting 802.11ax-only speeds.

I'm on snapshot build r22000-6bc675c0be

FYI, I always need to SSH in and run opkg update && opkg install luci with snapshot builds.

I left this same comment at: https://github.com/openwrt/mt76/issues/709#issuecomment-1421666854

1 Like

You don't need SSH: firmware-selector.openwrt.org

2 Likes

Final Edit : after disabling WIDI on win11 I have finally got proper results and they look good on
MT7621+mt7915 DBDC
OpenWrt SNAPSHOT, r22036-1a145ccb0a (09 feb.)
AX201 Windows 11

root@mr1800x:~# iwinfo phy1-ap0 assoclist
XX  -65 dBm / unknown (SNR -65)  10 ms ago
iperf3 -i 0 -V -t 60 -P 3 -c 192.168.1.64

AX DL 346 Mbits/sec
AX UL 343 Mbits/sec
AC DL 354 Mbits/sec
AC UL 317 Mbits/sec
1 Like

Adding in my experience here. I was going crazy with an RT3200 and E8450 running 22.03.3 and seeing the same upload performance issues on AX with floors/walls in-between the AP and an iPhone 13 Pro Max. Once I found this thread last night I changed them to AC and the problem is gone. I'm going to try the snapshot later today and confirm.

1 Like

Would it affect roaming given that Apple devices have weird issues with that?

What are the weird issues to which you’re referring?

About 802.11r issues:

Personally I've faced these issues when trying to enable 802.11r with Archer C6 v3 (Mediatek MT7621). I've never managed to make it work with Apple devices after a lot of efforts trying to make it work. So i gave up. After I've upgraed to AX6S (Mediatek MT7622) I've never tried to re-enable 802.11r. Basically both Android/Samsung and Apple devices are roaming pretty well across 4 different APs without 802.11r.

Only certain Apple devices (note the glaring omission of MacBooks pre-Apple Silicon) support 802.11r per https://support.apple.com/en-us/HT202628.

Further, Apple has pretty interesting roaming thresholds based on the band: https://support.apple.com/en-us/HT206207

And even more reading for roaming candidate selection: https://support.apple.com/en-us/HT203068

1 Like

Nice links. My wife has an iPhone 11 with iOS 16 and iPad Pro 12 and in our network with 3x RT3200s using WPA2-PSK and 802.11r she experiences things like when she unlocks her phone the WiFi symbol shows connected but she actually doesn't get internet connectivity until she disables and re-enables WiFi. I don't know how to fix this but would love to try out any suggestions.

For example, might trying WPA3-SAE with roaming help?

You could try, but it will likely also not work fully due to the bug I explained in the other thread: 802.11r Fast Transition how to understand that FT works? - #178 by huaracheguarache

Getting 802.11r to work properly is apparently too challenging for Apple's engineers...

2 Likes

FWIW, I have ~20 Apple devices (Intel MacBooks, M1 MacBook, iPhones, iPads, Apple Watches, etc) that happily migrate between my 3x RT3200s without any loss of connectivity requiring manual intervention. I chose the word "migrate" specifically to avoid labeling it "roaming" for fear that confounds the syntax with mixed 802.11r support on the client level.

My 3x RT3200s (dumb APs) are ethernet connected back to a core switch where I have multiple VLANs supplied to the APs for multiple SSIDs.

I'm not saying my configuration is perfect, but I can say without a doubt I am not having the issue you described. Here is a snippet of my wireless config. I omitted all of the SSIDs I have configured because they effectively duplicate what I show here.

Config Snippet
config wifi-device 'radio0'
	option type 'mac80211'
	option path 'platform/18000000.wmac'
	option band '2g'
	option htmode 'HT20'
	option country 'US'
	option cell_density '0'
	option log_level '1'
	option channel '11'
	option txpower '6'

config wifi-device 'radio1'
	option type 'mac80211'
	option path '1a143000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0'
	option band '5g'
	option country 'US'
	option cell_density '0'
	option he_bss_color '30'
	option htmode 'HE80'
	option log_level '1'
	option channel '157'
	option he_su_beamformer '1'
	option he_su_beamformee '1'
	option he_mu_beamformer '1'
	option he_mu_beamformee '1'
	option txpower '19'

config wifi-iface 'default_radio0'
	option device 'radio0'
	option network 'lan'
	option mode 'ap'
	option key '<redacted>'
	option dtim_period '3'
	option ssid '<redacted>'
	option ieee80211r '1'
	option ft_over_ds '0'
	option ft_psk_generate_local '1'
	option reassociation_deadline '20000'
	option ieee80211k '1'
	option time_advertisement '2'
	option time_zone 'GMT0'
	option wnm_sleep_mode '1'
	option bss_transition '1'
	option rrm_neighbor_report '1'
	option rrm_beacon_report '1'
	option encryption 'psk2+ccmp'
	option ieee80211w '1'
	option max_inactivity '15'
	option mbo '1'

config wifi-iface 'default_radio1'
	option device 'radio1'
	option network 'lan'
	option mode 'ap'
	option key '<redacted>'
	option dtim_period '3'
	option ssid '<redacted>'
	option ieee80211r '1'
	option ft_over_ds '0'
	option ft_psk_generate_local '1'
	option reassociation_deadline '20000'
	option ieee80211k '1'
	option time_advertisement '2'
	option time_zone 'GMT0'
	option wnm_sleep_mode '1'
	option bss_transition '1'
	option rrm_neighbor_report '1'
	option rrm_beacon_report '1'
	option encryption 'psk2+ccmp'
	option ieee80211w '1'
	option max_inactivity '15'
	option mbo '1'
...
1 Like

Many thanks indeed @_FailSafe for posting your config. Here is mine:

root@OpenWrt:~/cake-autorate# cat /etc/config/wireless

config wifi-device 'radio0'
        option type 'mac80211'
        option path 'platform/18000000.wmac'
        option channel '1'
        option band '2g'
        option htmode 'HT40'
        option country 'GB'
        option noscan '1'
        option cell_density '2'

config wifi-iface 'default_radio0'
        option device 'radio0'
        option mode 'ap'
        option wds '1'
        option ssid 'XXX'
        option encryption 'psk2'
        option key 'XXX'
        option ieee80211r '1'
        option reassociation_deadline '20000'
        option ft_over_ds '0'
        option ft_psk_generate_local '1'
        option network 'guest'
        option dtim_period '3'

config wifi-device 'radio1'
        option type 'mac80211'
        option path '1a143000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0'
        option channel '36'
        option band '5g'
        option htmode 'HE80'
        option country 'GB'
        option he_bss_color '8'
        option he_su_beamformee '1'
        option cell_density '2'

config wifi-iface 'default_radio1'
        option device 'radio1'
        option network 'lan'
        option mode 'ap'
        option wds '1'
        option ssid 'XXX'
        option encryption 'psk2'
        option key 'XXX'
        option ieee80211r '1'
        option reassociation_deadline '20000'
        option ft_over_ds '0'
        option ft_psk_generate_local '1'
        option dtim_period '3'

config wifi-iface 'wifinet2'
        option device 'radio0'
        option mode 'ap'
        option ssid 'XXX'
        option encryption 'psk2'
        option key 'XXX'
        option ieee80211r '1'
        option reassociation_deadline '20000'
        option ft_over_ds '0'
        option ft_psk_generate_local '1'
        option network 'lan'
        option dtim_period '3'

As you can see my config is super simple. Any idea what setting I should try from your config as you have a lot of extra settings set? It may be significant that my RT3200's are connected to each other via WDS.

I am trying to think what out of your settings might be the most significant. For example what about 'ieee80211w'? Or ' 'wnm_sleep_mode'?

Not that any of these are certain fixes, but a few things that stand out to me are:

2 Likes

Interesting! One thing I've noticed is that not all Apple devices are affected by that bug. An iPad 5th gen I have roams without issues, and an iPhone 8 that used to be in the household roamed just fine too. The bug got introduced at a later point it seems.

Just out of curiosity, none of your system logs contain long roam attempts like mine here?

Roam log
Sun Feb 26 17:02:04 2023 daemon.err hostapd: nl80211: kernel reports: key addition failed
Sun Feb 26 17:02:04 2023 daemon.debug hostapd: phy0-ap0: STA 66:d8:12:d5:a0:02 IEEE 802.11: binding station to interface 'phy0-ap0'
Sun Feb 26 17:02:04 2023 daemon.debug hostapd: phy0-ap0: STA 66:d8:12:d5:a0:02 IEEE 802.11: authentication OK (FT)
Sun Feb 26 17:02:04 2023 daemon.debug hostapd: phy0-ap0: STA 66:d8:12:d5:a0:02 MLME: MLME-AUTHENTICATE.indication(66:d8:12:d5:a0:02, FT)
Sun Feb 26 17:02:19 2023 daemon.err hostapd: nl80211: kernel reports: key addition failed
Sun Feb 26 17:02:19 2023 daemon.debug hostapd: phy0-ap0: STA 66:d8:12:d5:a0:02 IEEE 802.11: binding station to interface 'phy0-ap0'
Sun Feb 26 17:02:19 2023 daemon.debug hostapd: phy0-ap0: STA 66:d8:12:d5:a0:02 IEEE 802.11: authentication OK (FT)
Sun Feb 26 17:02:19 2023 daemon.debug hostapd: phy0-ap0: STA 66:d8:12:d5:a0:02 MLME: MLME-AUTHENTICATE.indication(66:d8:12:d5:a0:02, FT)
Sun Feb 26 17:02:33 2023 daemon.err hostapd: nl80211: kernel reports: key addition failed
Sun Feb 26 17:02:33 2023 daemon.debug hostapd: phy0-ap0: STA 0e:84:ea:0b:b3:37 IEEE 802.11: binding station to interface 'phy0-ap0'
Sun Feb 26 17:02:33 2023 daemon.debug hostapd: phy0-ap0: STA 0e:84:ea:0b:b3:37 IEEE 802.11: authentication OK (FT)
Sun Feb 26 17:02:33 2023 daemon.debug hostapd: phy0-ap0: STA 0e:84:ea:0b:b3:37 MLME: MLME-AUTHENTICATE.indication(0e:84:ea:0b:b3:37, FT)
Sun Feb 26 17:02:45 2023 daemon.err hostapd: nl80211: kernel reports: key addition failed
Sun Feb 26 17:02:45 2023 daemon.debug hostapd: phy0-ap0: STA 0e:84:ea:0b:b3:37 IEEE 802.11: binding station to interface 'phy0-ap0'
Sun Feb 26 17:02:45 2023 daemon.debug hostapd: phy0-ap0: STA 0e:84:ea:0b:b3:37 IEEE 802.11: authentication OK (FT)
Sun Feb 26 17:02:45 2023 daemon.debug hostapd: phy0-ap0: STA 0e:84:ea:0b:b3:37 MLME: MLME-AUTHENTICATE.indication(0e:84:ea:0b:b3:37, FT)
Sun Feb 26 17:02:56 2023 daemon.err hostapd: nl80211: kernel reports: key addition failed
Sun Feb 26 17:02:56 2023 daemon.debug hostapd: phy0-ap0: STA 66:d8:12:d5:a0:02 IEEE 802.11: binding station to interface 'phy0-ap0'
Sun Feb 26 17:02:56 2023 daemon.debug hostapd: phy0-ap0: STA 66:d8:12:d5:a0:02 IEEE 802.11: authentication OK (FT)
Sun Feb 26 17:02:56 2023 daemon.debug hostapd: phy0-ap0: STA 66:d8:12:d5:a0:02 MLME: MLME-AUTHENTICATE.indication(66:d8:12:d5:a0:02, FT)
Sun Feb 26 17:02:59 2023 daemon.err hostapd: nl80211: kernel reports: key addition failed
Sun Feb 26 17:02:59 2023 daemon.debug hostapd: phy0-ap0: STA 0e:84:ea:0b:b3:37 IEEE 802.11: binding station to interface 'phy0-ap0'
Sun Feb 26 17:02:59 2023 daemon.debug hostapd: phy0-ap0: STA 0e:84:ea:0b:b3:37 IEEE 802.11: authentication OK (FT)
Sun Feb 26 17:02:59 2023 daemon.debug hostapd: phy0-ap0: STA 0e:84:ea:0b:b3:37 MLME: MLME-AUTHENTICATE.indication(0e:84:ea:0b:b3:37, FT)
Sun Feb 26 17:03:55 2023 daemon.err hostapd: nl80211: kernel reports: key addition failed
Sun Feb 26 17:03:55 2023 daemon.debug hostapd: phy0-ap0: STA 0e:84:ea:0b:b3:37 IEEE 802.11: binding station to interface 'phy0-ap0'
Sun Feb 26 17:03:55 2023 daemon.debug hostapd: phy0-ap0: STA 0e:84:ea:0b:b3:37 IEEE 802.11: authentication OK (FT)
Sun Feb 26 17:03:55 2023 daemon.debug hostapd: phy0-ap0: STA 0e:84:ea:0b:b3:37 MLME: MLME-AUTHENTICATE.indication(0e:84:ea:0b:b3:37, FT)
Sun Feb 26 17:04:28 2023 daemon.err hostapd: nl80211: kernel reports: key addition failed
Sun Feb 26 17:04:28 2023 daemon.debug hostapd: phy0-ap0: STA 0e:84:ea:0b:b3:37 IEEE 802.11: binding station to interface 'phy0-ap0'
Sun Feb 26 17:04:28 2023 daemon.debug hostapd: phy0-ap0: STA 0e:84:ea:0b:b3:37 IEEE 802.11: authentication OK (FT)
Sun Feb 26 17:04:28 2023 daemon.debug hostapd: phy0-ap0: STA 0e:84:ea:0b:b3:37 MLME: MLME-AUTHENTICATE.indication(0e:84:ea:0b:b3:37, FT)
Sun Feb 26 17:04:30 2023 daemon.err hostapd: nl80211: kernel reports: key addition failed
Sun Feb 26 17:04:30 2023 daemon.debug hostapd: phy0-ap0: STA 0e:84:ea:0b:b3:37 IEEE 802.11: binding station to interface 'phy0-ap0'
Sun Feb 26 17:04:30 2023 daemon.debug hostapd: phy0-ap0: STA 0e:84:ea:0b:b3:37 IEEE 802.11: authentication OK (FT)
Sun Feb 26 17:04:30 2023 daemon.debug hostapd: phy0-ap0: STA 0e:84:ea:0b:b3:37 MLME: MLME-AUTHENTICATE.indication(0e:84:ea:0b:b3:37, FT)
Sun Feb 26 17:04:46 2023 daemon.err hostapd: nl80211: kernel reports: key addition failed
Sun Feb 26 17:04:46 2023 daemon.debug hostapd: phy0-ap0: STA 66:d8:12:d5:a0:02 IEEE 802.11: binding station to interface 'phy0-ap0'
Sun Feb 26 17:04:46 2023 daemon.debug hostapd: phy0-ap0: STA 66:d8:12:d5:a0:02 IEEE 802.11: authentication OK (FT)
Sun Feb 26 17:04:46 2023 daemon.debug hostapd: phy0-ap0: STA 66:d8:12:d5:a0:02 MLME: MLME-AUTHENTICATE.indication(66:d8:12:d5:a0:02, FT)
Sun Feb 26 17:04:48 2023 daemon.err hostapd: nl80211: kernel reports: key addition failed
Sun Feb 26 17:04:48 2023 daemon.debug hostapd: phy0-ap0: STA 66:d8:12:d5:a0:02 IEEE 802.11: binding station to interface 'phy0-ap0'
Sun Feb 26 17:04:48 2023 daemon.debug hostapd: phy0-ap0: STA 66:d8:12:d5:a0:02 IEEE 802.11: authentication OK (FT)
Sun Feb 26 17:04:48 2023 daemon.debug hostapd: phy0-ap0: STA 66:d8:12:d5:a0:02 MLME: MLME-AUTHENTICATE.indication(66:d8:12:d5:a0:02, FT)
Sun Feb 26 17:04:51 2023 daemon.err hostapd: nl80211: kernel reports: key addition failed
Sun Feb 26 17:04:51 2023 daemon.debug hostapd: phy0-ap0: STA 66:d8:12:d5:a0:02 IEEE 802.11: binding station to interface 'phy0-ap0'
Sun Feb 26 17:04:51 2023 daemon.debug hostapd: phy0-ap0: STA 66:d8:12:d5:a0:02 IEEE 802.11: authentication OK (FT)
Sun Feb 26 17:04:51 2023 daemon.debug hostapd: phy0-ap0: STA 66:d8:12:d5:a0:02 MLME: MLME-AUTHENTICATE.indication(66:d8:12:d5:a0:02, FT)