linux/net/mac80211
Johannes Berg 761748f001 wifi: mac80211: support wider bandwidth OFDMA config
EHT requires that stations are able to participate in
wider bandwidth OFDMA, i.e. parse downlink OFDMA and
uplink OFDMA triggers when they're not capable of (or
not connected at) the (wider) bandwidth that the AP
is using. This requires hardware configuration, since
the entity responsible for parsing (possibly hardware)
needs to know the AP bandwidth.

To support this, change the channel request to have
the AP's bandwidth for clients, and track that in the
channel context in mac80211. This means that the same
chandef might need to be split up into two different
contexts, if the APs are different. Interfaces other
than client are not participating in OFDMA the same
way, so they don't request any AP setting.

Note that this doesn't introduce any API to split a
channel context, so that there are cases where this
might lead to a disconnect, e.g. if there are two
client interfaces using the same channel context, e.g.
both 160 MHz connected to different 320 MHz APs, and
one of the APs switches to 160 MHz.

Note also there are possible cases where this can be
optimised, e.g. when using the upper or lower 160 Mhz,
but I haven't been able to really fully understand the
spec and/or hardware limitations.

If, for some reason, there are no hardware limits on
this because the OFDMA (downlink/trigger) parsing is
done in firmware and can take the transmitter into
account, then drivers can set the new flag
IEEE80211_VIF_IGNORE_OFDMA_WIDER_BW on interfaces to
not have them request any AP bandwidth in the channel
context and ignore this issue entirely. The bss_conf
still contains the AP configuration (if any, i.e. EHT)
in the chanreq.

Link: https://msgid.link/20240129194108.d3d5b35dd783.I939d04674f4ff06f39934b1591c8d36a30ce74c2@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2024-02-08 13:07:37 +01:00
..
tests wifi: mac80211: clean up connection process 2024-02-08 12:58:26 +01:00
aead_api.c mac80211: Check crypto_aead_encrypt for errors 2021-03-16 21:20:41 +01:00
aead_api.h
aes_ccm.h
aes_cmac.c mac80211: aes_cmac: check crypto_shash_setkey() return value 2021-04-19 12:01:40 +02:00
aes_cmac.h
aes_gcm.h
aes_gmac.c mac80211: Check crypto_aead_encrypt for errors 2021-03-16 21:20:41 +01:00
aes_gmac.h
agg-rx.c wifi: mac80211: remove ampdu_mlme.mtx 2023-09-11 11:27:22 +02:00
agg-tx.c wifi: mac80211: introduce 'channel request' 2024-02-08 13:07:34 +01:00
airtime.c wifi: mac80211: Sanity check tx bitrate if not provided by driver 2023-09-13 16:24:05 +02:00
cfg.c wifi: mac80211: introduce 'channel request' 2024-02-08 13:07:34 +01:00
chan.c wifi: mac80211: support wider bandwidth OFDMA config 2024-02-08 13:07:37 +01:00
debug.h wifi: mac80211: clean up connection process 2024-02-08 12:58:26 +01:00
debugfs.c wifi: mac80211: add a flag to disallow puncturing 2023-12-12 10:37:00 +01:00
debugfs.h
debugfs_key.c wifi: mac80211: remove key_mtx 2023-09-11 11:27:22 +02:00
debugfs_key.h
debugfs_netdev.c wifi: mac80211: fix driver debugfs for vif type change 2024-02-02 13:09:55 +01:00
debugfs_netdev.h wifi: mac80211: fix driver debugfs for vif type change 2024-02-02 13:09:55 +01:00
debugfs_sta.c wifi: mac80211: fix spelling typo in comment 2024-01-03 15:34:56 +01:00
debugfs_sta.h wifi: mac80211: add API to show the link STAs in debugfs 2022-10-07 15:23:41 +02:00
driver-ops.c wifi: mac80211: add/remove driver debugfs entries as appropriate 2023-12-19 13:08:00 +01:00
driver-ops.h wifi: mac80211: process and save negotiated TID to Link mapping request 2024-01-26 09:39:48 +01:00
drop.h wifi: mac80211: expand __ieee80211_data_to_8023() status 2023-09-26 09:16:47 +02:00
eht.c wifi: mac80211: add helpers to access sband iftype data 2023-06-14 11:57:29 +02:00
ethtool.c wifi: mac80211: ethtool: always hold wiphy mutex 2023-09-25 09:00:39 +02:00
fils_aead.c wifi: mac80211: Do not include crypto/algapi.h 2023-08-24 08:42:36 +02:00
fils_aead.h
he.c wifi: mac80211: add helpers to access sband iftype data 2023-06-14 11:57:29 +02:00
ht.c wifi: mac80211: introduce 'channel request' 2024-02-08 13:07:34 +01:00
ibss.c wifi: mac80211: introduce 'channel request' 2024-02-08 13:07:34 +01:00
ieee80211_i.h wifi: mac80211: support wider bandwidth OFDMA config 2024-02-08 13:07:37 +01:00
iface.c wifi: mac80211: introduce 'channel request' 2024-02-08 13:07:34 +01:00
Kconfig wifi: cfg80211/mac80211: remove dependency on non-existing option 2024-01-18 14:50:01 +01:00
key.c wifi: mac80211: add support for SPP A-MSDUs 2024-01-26 09:39:49 +01:00
key.h wifi: mac80211: remove key_mtx 2023-09-11 11:27:22 +02:00
led.c leds: Change led_trigger_blink[_oneshot]() delay parameters to pass-by-value 2023-05-25 12:16:27 +01:00
led.h leds: Change led_trigger_blink[_oneshot]() delay parameters to pass-by-value 2023-05-25 12:16:27 +01:00
link.c wifi: mac80211: introduce 'channel request' 2024-02-08 13:07:34 +01:00
main.c wifi: mac80211: introduce 'channel request' 2024-02-08 13:07:34 +01:00
Makefile wifi: mac80211: Add support for WBRF features 2023-12-12 10:36:59 +01:00
mesh.c wifi: mac80211: introduce 'channel request' 2024-02-08 13:07:34 +01:00
mesh.h wifi: mac80211: mesh: Remove unused function declaration mesh_ids_set_default() 2023-08-22 21:40:40 +02:00
mesh_hwmp.c wifi: mac80211: Replace ENOTSUPP with EOPNOTSUPP 2023-12-12 10:37:01 +01:00
mesh_pathtbl.c wifi: mac80211: Replace ENOTSUPP with EOPNOTSUPP 2023-12-12 10:37:01 +01:00
mesh_plink.c wifi: mac80211: introduce 'channel request' 2024-02-08 13:07:34 +01:00
mesh_ps.c wifi: mac80211: mesh: fix some kdoc warnings 2023-10-23 11:43:27 +02:00
mesh_sync.c wifi: mac80211: mesh: fix some kdoc warnings 2023-10-23 11:43:27 +02:00
michael.c
michael.h
mlme.c wifi: mac80211: support wider bandwidth OFDMA config 2024-02-08 13:07:37 +01:00
ocb.c wifi: mac80211: introduce 'channel request' 2024-02-08 13:07:34 +01:00
offchannel.c wifi: mac80211: simplify non-chanctx drivers 2024-02-08 12:58:32 +01:00
pm.c wifi: mac80211: remove sta_mtx 2023-09-11 11:27:22 +02:00
rate.c wifi: mac80211: introduce 'channel request' 2024-02-08 13:07:34 +01:00
rate.h wifi: mac80211: make ieee80211_check_rate_mask() link-aware 2022-07-15 11:43:21 +02:00
rc80211_minstrel_ht.c wifi: mac80211: remove shifted rate support 2023-09-13 11:22:16 +02:00
rc80211_minstrel_ht.h wifi: mac80211: minstrel_ht: remove unused has_mrr member from struct minstrel_priv 2022-10-07 15:25:05 +02:00
rc80211_minstrel_ht_debugfs.c mac80211: minstrel_ht: show sampling rates in debugfs 2021-02-12 08:58:11 +01:00
rx.c wifi: mac80211: remove extra shadowing variable 2024-02-08 12:50:12 +01:00
s1g.c wifi: mac80211: remove sta_mtx 2023-09-11 11:27:22 +02:00
scan.c wifi: mac80211: simplify non-chanctx drivers 2024-02-08 12:58:32 +01:00
spectmgmt.c wifi: mac80211: introduce 'channel request' 2024-02-08 13:07:34 +01:00
sta_info.c wireless fixes for v6.8-rc2 2024-01-23 08:38:13 -08:00
sta_info.h wifi: mac80211: cleanup airtime arithmetic with ieee80211_sta_keep_active() 2023-12-12 10:36:59 +01:00
status.c wifi: mac80211: rename ieee80211_tx_status() to ieee80211_tx_status_skb() 2023-10-23 12:26:51 +02:00
tdls.c wifi: mac80211: introduce 'channel request' 2024-02-08 13:07:34 +01:00
tkip.c
tkip.h
trace.c
trace.h wifi: mac80211: support wider bandwidth OFDMA config 2024-02-08 13:07:37 +01:00
trace_msg.h wifi: mac80211: remove unused MAX_MSG_LEN define 2024-02-08 12:50:09 +01:00
tx.c wifi: mac80211: simplify non-chanctx drivers 2024-02-08 12:58:32 +01:00
util.c wifi: mac80211: introduce 'channel request' 2024-02-08 13:07:34 +01:00
vht.c wifi: mac80211: introduce 'channel request' 2024-02-08 13:07:34 +01:00
wbrf.c wifi: mac80211: Drop WBRF debugging statements 2024-01-26 10:43:33 +01:00
wep.c wifi: mac80211: remove RX_DROP_UNUSABLE 2023-09-26 09:16:42 +02:00
wep.h
wme.c wifi: mac80211: fix qos on mesh interfaces 2023-03-22 13:46:38 +01:00
wme.h wifi: mac80211: Drop support for TX push path 2022-10-10 11:06:14 +02:00
wpa.c wifi: mac80211: add support for SPP A-MSDUs 2024-01-26 09:39:49 +01:00
wpa.h wifi: mac80211: remove cipher scheme support 2022-06-10 15:35:53 +02:00