wifi: cfg80211: support configuring an S1G short beaconing BSS
authorLachlan Hodges <lachlan.hodges@morsemicro.com>
Thu, 17 Jul 2025 07:42:02 +0000 (17:42 +1000)
committerJohannes Berg <johannes.berg@intel.com>
Fri, 18 Jul 2025 12:14:43 +0000 (14:14 +0200)
commit6624a0af82a6e3a4d3609264ef591a8fa3467139
tree225d6109426a3a11e3f00b7c02a83d618354d316
parent78e50d88998a4a634eeda3e0d136cb8b9c9bc9d8
wifi: cfg80211: support configuring an S1G short beaconing BSS

S1G short beacons are an optional frame type used in an S1G BSS
that contain a limited set of elements. While they are optional,
they are a fundamental part of S1G that enables significant
power saving.

Expose 2 additional netlink attributes,
NL80211_ATTR_S1G_LONG_BEACON_PERIOD which denotes the number of beacon
intervals between each long beacon and NL80211_ATTR_S1G_SHORT_BEACON
which is a nested attribute containing the short beacon tail and
head. We split them as the long beacon period cannot be updated,
and is only used when initialisng the interface, whereas the short
beacon data can be used to both initialise and update the templates.
This follows how things such as the beacon interval and DTIM period
currently operate.

During the initialisation path, we ensure we have the long beacon
period if the short beacon data is being passed down, whereas
the update path will simply update the template if its sent down.

The short beacon data is validated using the same routines for regular
beacons as they support correctly parsing the short beacon format
while ensuring the frame is well-formed.

Signed-off-by: Lachlan Hodges <lachlan.hodges@morsemicro.com>
Link: https://patch.msgid.link/20250717074205.312577-2-lachlan.hodges@morsemicro.com
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
include/net/cfg80211.h
include/uapi/linux/nl80211.h
net/wireless/nl80211.c