WRT1900ACS - WiFi stopped working for Android phones after upgrade to OpenWrt 22.03.0

My WiFi setup was just working fine in OpenWrt 21.02.2. When I upgraded to OpenWrt 22.03.0 it seems that the Android phones (both on Android 13) stopped connecting to WiFi.

On the phone I don't get any error messages. It just tries to connect every few seconds.

# wifi status
{
        "radio0": {
                "up": true,
                "pending": false,
                "autostart": true,
                "disabled": false,
                "retry_setup_failed": false,
                "config": {
                        "hwmode": "11a",
                        "path": "soc/soc:pcie/pci0000:00/0000:00:01.0/0000:01:00.0",
                        "htmode": "VHT80",
                        "channel": "48",
                        "cell_density": 0,
                        "country": "DE",
                        "distance": "20",
                        "txpower": 20
                },
                "interfaces": [
                        {
                                "section": "wifinet2",
                                "ifname": "wlan0",
                                "config": {
                                        "mode": "ap",
                                        "ssid": "WiFi",
                                        "key": "xxxxxxxxxxxxxxx",
                                        "macaddr": "xxxxxxxxxxxxxxx",
                                        "encryption": "sae",
                                        "disassoc_low_ack": false,
                                        "mode": "ap",
                                        "network": [
                                                "lan"
                                        ]
                                },
                                "vlans": [

                                ],
                                "stations": [

                                ]
                        }
                ]
        },
        "radio1": {
                "up": false,
                "pending": false,
                "autostart": true,
                "disabled": true,
                "retry_setup_failed": false,
                "config": {
                        "hwmode": "11g",
                        "path": "soc/soc:pcie/pci0000:00/0000:00:02.0/0000:02:00.0",
                        "htmode": "HT20",
                        "country": "FR",
                        "channel": "auto",
                        "cell_density": 0,
                        "disabled": true
                },
                "interfaces": [

                ]
        }
}
# cat /etc/config/wireless

config wifi-device 'radio0'
        option type 'mac80211'
        option hwmode '11a'
        option path 'soc/soc:pcie/pci0000:00/0000:00:01.0/0000:01:00.0'
        option htmode 'VHT80'
        option channel '48'
        option cell_density '0'
        option country 'DE'
        option distance '20'
        option txpower '20'

config wifi-device 'radio1'
        option type 'mac80211'
        option hwmode '11g'
        option path 'soc/soc:pcie/pci0000:00/0000:00:02.0/0000:02:00.0'
        option htmode 'HT20'
        option country 'FR'
        option channel 'auto'
        option cell_density '0'
        option disabled '1'

config wifi-iface 'wifinet2'
        option device 'radio0'
        option mode 'ap'
        option ssid 'WiFi'
        option key 'xxxxxxxxxxxxxxx'
        option network 'lan'
        option macaddr 'xxxxxxxxxxxxxxx'
        option encryption 'sae'
        option disassoc_low_ack '0'

config wifi-iface 'wifinet1'
        option device 'radio1'
        option mode 'ap'
        option ssid 'WiFi-4'
        option encryption 'psk2'
        option key 'xxxxxxxxxxxxxxx'
        option network 'lan'
        option macaddr 'xxxxxxxxxxxxxxx'
        option disabled '1'

What is see in the logs what was not there before the upgrade:

Tue Sep  6 17:37:12 2022 daemon.notice hostapd: wlan0: STA-OPMODE-N_SS-CHANGED xxxxxxxxxxxxxxx 2
Tue Sep  6 17:37:12 2022 daemon.info hostapd: wlan0: STA xxxxxxxxxxxxxxx IEEE 802.11: associated (aid 1)
Tue Sep  6 17:37:14 2022 daemon.info dnsmasq-dhcp[1]: DHCPDISCOVER(br-lan) 192.168.1.200 xxxxxxxxxxxxxxx
Tue Sep  6 17:37:14 2022 daemon.info dnsmasq-dhcp[1]: DHCPOFFER(br-lan) 192.168.1.200 xxxxxxxxxxxxxxx
Tue Sep  6 17:37:14 2022 daemon.info dnsmasq-dhcp[1]: DHCPREQUEST(br-lan) 192.168.1.200 xxxxxxxxxxxxxxx
Tue Sep  6 17:37:14 2022 daemon.info dnsmasq-dhcp[1]: DHCPACK(br-lan) 192.168.1.200 xxxxxxxxxxxxxxx MrSpell
Tue Sep  6 17:37:15 2022 daemon.notice hostapd: wlan0: STA-OPMODE-N_SS-CHANGED xxxxxxxxxxxxxxx 1
Tue Sep  6 17:37:15 2022 daemon.notice hostapd: wlan0: STA-OPMODE-N_SS-CHANGED xxxxxxxxxxxxxxx 2
Tue Sep  6 17:37:15 2022 daemon.info hostapd: wlan0: STA xxxxxxxxxxxxxxx IEEE 802.11: associated (aid 1)
Tue Sep  6 17:37:19 2022 daemon.notice hostapd: wlan0: STA-OPMODE-N_SS-CHANGED xxxxxxxxxxxxxxx 1
Tue Sep  6 17:37:19 2022 daemon.notice hostapd: wlan0: STA-OPMODE-N_SS-CHANGED xxxxxxxxxxxxxxx 2
Tue Sep  6 17:37:19 2022 daemon.info hostapd: wlan0: STA xxxxxxxxxxxxxxx IEEE 802.11: associated (aid 1)
Tue Sep  6 17:37:22 2022 daemon.notice hostapd: wlan0: STA-OPMODE-N_SS-CHANGED xxxxxxxxxxxxxxx 1
Tue Sep  6 17:37:22 2022 daemon.notice hostapd: wlan0: STA-OPMODE-N_SS-CHANGED xxxxxxxxxxxxxxx 2
Tue Sep  6 17:37:22 2022 daemon.info hostapd: wlan0: STA xxxxxxxxxxxxxxx IEEE 802.11: associated (aid 1)
Tue Sep  6 17:37:25 2022 daemon.notice hostapd: wlan0: STA-OPMODE-N_SS-CHANGED xxxxxxxxxxxxxxx 1
Tue Sep  6 17:37:25 2022 daemon.notice hostapd: wlan0: STA-OPMODE-N_SS-CHANGED xxxxxxxxxxxxxxx 2
Tue Sep  6 17:37:25 2022 daemon.info hostapd: wlan0: STA xxxxxxxxxxxxxxx IEEE 802.11: associated (aid 1)
Tue Sep  6 17:37:29 2022 daemon.notice hostapd: wlan0: STA-OPMODE-N_SS-CHANGED xxxxxxxxxxxxxxx 1
Tue Sep  6 17:37:29 2022 daemon.notice hostapd: wlan0: STA-OPMODE-N_SS-CHANGED xxxxxxxxxxxxxxx 2
Tue Sep  6 17:37:29 2022 daemon.info hostapd: wlan0: STA xxxxxxxxxxxxxxx IEEE 802.11: associated (aid 1)
Tue Sep  6 17:37:32 2022 daemon.notice hostapd: wlan0: STA-OPMODE-N_SS-CHANGED xxxxxxxxxxxxxxx 1
Tue Sep  6 17:37:32 2022 daemon.notice hostapd: wlan0: STA-OPMODE-N_SS-CHANGED xxxxxxxxxxxxxxx 2
Tue Sep  6 17:37:32 2022 daemon.info hostapd: wlan0: STA xxxxxxxxxxxxxxx IEEE 802.11: associated (aid 1)
Tue Sep  6 17:37:36 2022 daemon.notice hostapd: wlan0: STA-OPMODE-N_SS-CHANGED xxxxxxxxxxxxxxx 1
Tue Sep  6 17:37:36 2022 daemon.notice hostapd: wlan0: STA-OPMODE-N_SS-CHANGED xxxxxxxxxxxxxxx 2
Tue Sep  6 17:37:36 2022 daemon.info hostapd: wlan0: STA xxxxxxxxxxxxxxx IEEE 802.11: associated (aid 1)

MAC addresses removed in all outputs.

I have a Windows 11 laptop and an iPhone on the WiFi too - both without issues.

Any idea what is the problem here?

Some additional information:

Model Linksys WRT1900ACS


What I also noticed is that my wireguard connection is not working either (but only tested on one of the affected phones).

Mvebu routers with mwlwifi do not like wpa3 or wpa2/wpa3 mixed.
(Or especially 802.11w and 802.11r)

And you have wpa3 "sae" as encryption.

3 Likes

With the previous version this worked perfectly. So I don't think that's the problem.

Most likely is, wpa3 is borked on mwlwifi, more so on 88W8964 than 88W8864, but still non-functioning.

With the previous version it didn't work even though it was enabled (devices didn't ever connect with WPA3). With this version it absolutely will not work. I have the same router and it works with my Pixel 6 without issue, as long as WPA3 is not used. The problems with WPA3 (specifically 802.11w) and mwlwifi are well documented and will not be fixed as the vendor has dropped support. If you require WPA3 you will need to replace the router.

2 Likes

... or at least use something else for the wifi, the wired routing works just fine.

1 Like

Initially I had issues too to get it running with WPA3 but after fiddling a little it works just fine. I downgraded to the previous version tested it again (same behaviour), upgraded (same error), downgraded again that I have a working setup.

So it is reproducible.

Also the upgrade somehow messed-up my ddns and wireguard setup. Not sure if that's related.

So you have an idea what changed with the new version which messes-up the WiFi config?

Unfortunately I only tested WPA3/2 mixed mode and WPA3 so O cannot say if the new version works with WPA2.

Sorry, but no version will work with WPA3 due to mwlwifi driver's busted 802.11w. 802.11w is required by WPA3.

1 Like

FWIW I've been using WPA3 with OpenWrt 21.02 and 22.03 on WRT1900AC. What doesn't work is mixed-mode WPA2+WPA3. But there's a work-around for that involving multiple SSIDs: https://github.com/kaloz/mwlwifi/issues/362#issuecomment-1169816769

WPA3 does work. Currently typing this on a Windows 11 Pro pc, connected via 5 Ghz to a WRT1900ACS v1 running OpenWrt 22.03.0. Encryption is set to WPA2/WPA3 mixed mode. Windows is connecting via WPA3:

image

This works with MFP set to Optional (default value) and Required. When set to Disabled, Windows 11 connects via WPA2, in the above screenshot it will then say WPA2-Personal.

With OpenWrt 21, my pc also connected via WPA3.

Now, back to my Android phone and tablet, they will not connect with OpenWrt 22, unless I change Encryption to WPA2. In OpenWrt 21, phone and tablet did connect with Encryption set to WPA2/WPA3. How they connected (WPA2 or 3), I have no idea. Never paid any attention to it. I do believe MFP had to be set to Optional. I don't think it worked with it set to Required.

Anyway, something has definitely changed in 22 that has impact on this. Busted driver or not.

Note: I've always used separate SSID's.

Thanks for verifying!
Would be very interesting to know what happend in 22 and if this is known as a bug/regression (and of course if this will be fixed).