]> git.ipfire.org Git - thirdparty/linux.git/commit
wifi: mac80211: support block bitmap S1G TIM encoding
authorLachlan Hodges <lachlan.hodges@morsemicro.com>
Fri, 25 Jul 2025 13:22:19 +0000 (23:22 +1000)
committerJohannes Berg <johannes.berg@intel.com>
Thu, 4 Sep 2025 09:19:01 +0000 (11:19 +0200)
commitee63609454838ea2b108f96f74a287be72d281ee
tree400ddf9365ecea9a0cd7f1b9e97ff38dbce727f8
parent7c7de0b9d8dcc839b2b77e1913bb10e312fd8163
wifi: mac80211: support block bitmap S1G TIM encoding

An S1G TIM PVB is encoded differently compared to a non-s1g TIM PVB.
As the AP dictates which encoding mode it uses, here we only implement
block bitmap encoding. This is the default encoding mode used by
all current vendor implementations.

Additionally, S1G has a maximum AID count of 8192, however we are
limiting the current implementation to 1600. This has no resemblence
to the standard and is purely an implementation detail. The reason for
this is due to the TIM elements maximum length of 255. This allows for,
at most, 25 encoded blocks for a PVB encoded with block bitmap. Support
for the maximum of 8192 AIDs will require an implementation of page slicing
to be added to mac80211.

As a result, we perform extra validation on both the STA and AP side
when receiving an AID as an S1G interface.

Add support for block bitmap encoding for an S1G AP and limit the
maximum AID count to 1600 for the current mac80211 implementations.

Signed-off-by: Lachlan Hodges <lachlan.hodges@morsemicro.com>
Link: https://patch.msgid.link/20250725132221.258217-2-lachlan.hodges@morsemicro.com
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
include/uapi/linux/nl80211.h
net/mac80211/cfg.c
net/mac80211/ieee80211_i.h
net/mac80211/mlme.c
net/mac80211/tx.c