[PATCH v2 mac80211-next 0/7] introduce individual TWT support in AP mode

Lorenzo Bianconi
2021-08-09T17:28:53Z

Introduce TWT action frames parsing support to mac80211.
Currently just individual TWT agreement are support in AP mode.
Whenever the AP receives a TWT action frame from an associated client,
after performing sanity checks, it will notify the underlay driver with
requested parameters in order to check if they are supported and if there
is enough room for a new agreement. The hw is expected to set agreement
result and report it to mac80211.
The two following drv callbacks have been added to mac80211:
- add_twt_setup (mandatory)
- twt_teardown_request (optional)

mac80211 will send an action frame reply according to the result
reported by the driver/fw.
Add individual TWT support to mt7915 in AP mode.

Changes since v1:
- fix rcu unbalance in mt7915/debugfs.c

Changes since rfc:
- run ieee80211_s1g_status_h_twt only for failed twt action frames
- change add_twt_setup return value from int to void

Lorenzo Bianconi (7):
mac80211: add twt ie in ieee80211_mgmt structure
mac80211: introduce individual TWT support in AP mode.
mt76: mt7915: introduce __mt7915_get_tsf routine
mt76: mt7915: introduce mt7915_mcu_twt_agrt_update mcu command
mt76: mt7915: introduce mt7915_mac_add_twt_setup routine
mt76: mt7915: enable twt responder capability
mt76: mt7915: add twt_stats knob in debugfs

.../wireless/mediatek/mt76/mt7915/debugfs.c | 28 +++
.../net/wireless/mediatek/mt76/mt7915/init.c | 3 +
.../net/wireless/mediatek/mt76/mt7915/mac.c | 185 ++++++++++++++++
.../net/wireless/mediatek/mt76/mt7915/main.c | 39 +++-
.../net/wireless/mediatek/mt76/mt7915/mcu.c | 50 +++++
.../net/wireless/mediatek/mt76/mt7915/mcu.h | 9 +
.../wireless/mediatek/mt76/mt7915/mt7915.h | 39 +++-
include/linux/ieee80211.h | 67 ++++++
include/net/mac80211.h | 13 ++
net/mac80211/driver-ops.h | 24 +++
net/mac80211/ieee80211_i.h | 5 +
net/mac80211/iface.c | 13 ++
net/mac80211/rx.c | 54 +++++
net/mac80211/s1g.c | 198 ++++++++++++++++++
net/mac80211/status.c | 34 ++-
15 files changed, 754 insertions(+), 7 deletions(-)

--
2.31.1