Funny thing about WPA3: it works with all my devices (including a 12 year old think pad x201s), but only on Linux. On windows they all can’t do WPA3, because the cards are „unsupported for WPA3“.
The difference is probably in the way WPA is handled; WPA Supplicant can be made to work with any radio module that supports passing through the authentication and encryption. But Windows doesn't use WPA Supplicant and instead relies on each manufacturer to make sure their driver either has its own WPA Supplicant or uses on-chip authentication and encryption in the WiFi module itself.
The big difference between them is that on Linux it will work, but heavy traffic will eat CPU cycles. On Windows it simply might not work at all, but when it does, and if the driver is not written by 1000 monkeys on typewriters, it can offload a lot of heavy lifting to the WiFi ASIC.
I'd say that in all cases, the WiFi chip manufacturers are to blame, but the software fallback that WPA supplicant provides should really be the lowest bar any device or OS should be able to pass.
Only authentication will not be offloaded, actual data encryption still is.
The only exception is if your driver doesn't support management frame protection (802.11w). Then, if your AP has 11w enabled or you are using WPA3, it will use software encryption.
ath9k, ath10k, ath11k, ath9k_htc, ath6kl, brcmfmac, brcmsmac, iwlwifi, iwlegacy, mt76, mwifiex, mwl8k, rtl8xxxu, all rtl8xxxe drivers support 11w, while some others: rt2xxxpci rt2xxxusb, ipw2200, carl9170 don't.
In the old days we needed a lot of tricks because firmware loading either didn't work or we didn't have the firmware binaries yet, so even (IIRC) ath9k didn't utilise on-ASIC for everything. But that was in the B (and maybe G) days.
Are you using wpa_supplicant 2.9? Do not update to 2.10!
I had the same experience with 2.9, but with 2.10, I cannot connect at all, not even with WPA2 (with WPA2+3 Transitional on the AP). Downgraded back to 2.9 and it works again.
I bypassed WPA supplicant on Tumbleweed, and manually setup the connection.
I did think it was rather odd that my WiFi AP stopped allowing my linux laptop to connect, even though it worked right before I moved from Fedora -> Tumbleweed. But even a new Fedora live ISO (I guess all Fedora ISOs are live by default) was unable to connect.
Eventually figured it was the current version of WPA Supplicant at fault, not the WiFi AP, and not the HW in my laptop. But it is somewhat annoying when something that worked just an hour ago, flatly doesn't.
Interesting. I had the hardest time getting wpa_supplicant working on a new Debian install last weekend, and eventually gave up and switched to iwd, which was new to me, but worked immediately
Checking now, I have wpa_supplicant 2.10, so I wonder how much of my problem was due to that.
iwd's been great so far - I'm no expert so maybe there are technical advantages, but I don't see any reason to go back to wpa_supplicant.