Hi, Continuing the work I already began in [1] (but hadn't so far posted a v2 of), this shows what really was the purpose of me looking at it, which I had alluded to earlier: supporting wider-bandwidth OFDMA in mac80211. While starting to work on it more after the channel request, I saw that the code that determines the channels etc. in the MLME is not really very amenable to the kinds of things I needed to have here, so I've done some major refactoring of that code, that's in patch 7. Note that patch 5 breaks two hwsim tests, but the reason is that the code in wpa_supplicant doesn't take the HE/EHT operation into account when calculating the expected throughput, only the capabilities, so I believe that's just a bug there. Note also that I think that patch 8 shouldn't be there, an AP that drops any of HT/VHT/HE/EHT operation while doing a channel switch doesn't really seem quite reasonable to me. As noted there, that's affecting 8 more tests, and I've split out the workaround into this patch to show more obviously what's going on. Also, the refactor patch (patch 7) introduces a FIXME for puncturing, as it doesn't configure it properly from the start, but will then only reconfigure it when the first beacon is parsed. There were some additional patches about puncturing [2], and I need to take a look at those. I believe patch 3 there is already covered by what I've done in my patch 7 (partially it's the same), but I probably still need patch 1/2 in some way, and of course the driver patch isn't related at all. However, the right fix for the puncturing is to put it into the chandef as Aloka had originally suggested, but I questioned and somehow managed to convince her that it shouldn't be - I was quite clearly wrong about that. I already said I'd need to move it into the chandef, and at that point the FIXME in this code basically is addressed automatically. I didn't want to introduce any workarounds to this code instead. So ... yes I realize that these are some big changes, but I tend to think that they make the code better to understand/maintain, in particular the 'connection mode' struct that's easier to track. The hwsim tests seem to run cleanly apart from what I mentioned above, although I have 9 tests that always fail for me, and for some reason I cannot run the wmediumd tests right now. johannes [1] https://lore.kernel.org/r/20231109003040.4b25d42b8b14.I60d093b2fc81ca1853925a4d0ac3a2337d5baa5b@changeid [2] https://lore.kernel.org/linux-wireless/20230928055022.9670-1-quic_kangyang@xxxxxxxxxxx/ [3] https://lore.kernel.org/linux-wireless/20230928055022.9670-4-quic_kangyang@xxxxxxxxxxx/