This patchset implements S1G short beaconing within mac80211 and cfg80211. I don't think its worth going into the technical detail again as that can be found in the commit messages or in v1: https://patchwork.kernel.org/project/linux-wireless/cover/20250714051403.597090-1-lachlan.hodges@xxxxxxxxxxxxxx/ The changes since v1 are as follows: (1) Rather than introduce new validation routines for the short beacons, we leverage the existing routines since they can handle all beacon formats and ensure both long and short beacons are well formed without validating the existence of particular elements. (2) The long beacon period (renamed from short beacon period to better describe what it actually is i.e the number of beacon intervals between each long beacon) is now an individual attribute. The reasoning behind this is that this attribute cannot be updated dynamically, unlike the beacon template. So we have taken inspiration for how the regular beacon interval, DTIM period etc. are handled. This allows us to use the same routine for both updating and setting the beacon data, but require this attribute when bringing up the interface if it is to be using short beacons. We think this is a much cleaner approach. NB: It was mentioned it would be good to find a better way (or introduce) a new method for determining if we are bringing up an S1G interface. This patch does not handle that, though it is something I briefly looked into and will probably be done in a future patchset. (3) We no longer introduce the short beacon variant for the beacon interval or DTIM period - and instead just reuse the existing parameters since - fundamentally - they don't change anything besides add more code complexity to various key code paths plus require changes within mac80211_hwsim. This patch now no longer requires hwsim changes. (4) Drop further validation from within mac80211, and just perform it within cfg80211. (5) Due to (3), we can drop all mac80211_hwsim changes. (6) Fix up a kernel-doc error and properly describe the max short beacon nested attributes. Overall this patch is much leaner, and has less of an affect on non S1G interfaces so that is obviously preferable for everyone. Even then it is more inline with what is currently done when setting vs updating an interface and handling optional attributes. I've sent this as a non-RFC as I think it's a "finished patchset" but obviously still open to any feedback to resend another version. Lachlan Hodges (4): wifi: cfg80211: support configuring an S1G short beaconing BSS wifi: mac80211: support initialising an S1G short beaconing BSS wifi: mac80211: support initialising current short beacon index wifi: mac80211: support returning the S1G short beacon skb include/net/cfg80211.h | 23 ++++++++ include/net/mac80211.h | 9 +++ include/uapi/linux/nl80211.h | 39 +++++++++++++ net/mac80211/cfg.c | 93 +++++++++++++++++++++++++++++- net/mac80211/debugfs_netdev.c | 2 +- net/mac80211/ieee80211_i.h | 15 ++++- net/mac80211/mesh.c | 2 +- net/mac80211/tx.c | 104 ++++++++++++++++++++++++++++++---- net/mac80211/util.c | 31 +++++++++- net/wireless/nl80211.c | 72 +++++++++++++++++++++++ 10 files changed, 370 insertions(+), 20 deletions(-) -- 2.43.0