History

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.

Lachlan Hodges committed 1 year ago

Commit ee636091 parent 7c7de0b5 files · +156 −50Browse files

Showing the changes to include/uapi (1 of 5 files). Show all

Unified · Split

include/uapi/linux/nl80211.h+2−1
@@ -2283,7 +2283,8 @@ enum nl80211_commands { · 2282 unmodified lines
22832283 * @NL80211_ATTR_PEER_AID: Association ID for the peer TDLS station (u16).
22842284 * This is similar to @NL80211_ATTR_STA_AID but with a difference of being
22852285 * allowed to be used with the first @NL80211_CMD_SET_STATION command to
2286− * update a TDLS peer STA entry.
2286+ * update a TDLS peer STA entry. For S1G interfaces, this is limited to
2287+ * 1600 for the current mac80211 implementation.
22872288 *
22882289 * @NL80211_ATTR_COALESCE_RULE: Coalesce rule information.
22892290 *