diff mbox series

[2/3] nl80211: retrieve EHT operation element in AP mode

Message ID 20220216053145.20898-3-quic_alokad@quicinc.com (mailing list archive)
State Superseded
Delegated to: Johannes Berg
Headers show
Series Support for EHT elements in AP mode | expand

Commit Message

Aloka Dixit Feb. 16, 2022, 5:31 a.m. UTC
Add support to retrieve the EHT operation element passed by
the userspace in the beacon template and store the pointer in
struct cfg80211_ap_settings to be used by MAC80211.

Signed-off-by: Aloka Dixit <quic_alokad@quicinc.com>
---
 include/net/cfg80211.h | 2 ++
 net/wireless/nl80211.c | 3 +++
 2 files changed, 5 insertions(+)
diff mbox series

Patch

diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h
index aaf25645aef3..a4c31b480a2e 100644
--- a/include/net/cfg80211.h
+++ b/include/net/cfg80211.h
@@ -1295,6 +1295,7 @@  struct cfg80211_unsol_bcast_probe_resp {
  * @he_obss_pd: OBSS Packet Detection settings
  * @he_bss_color: BSS Color settings
  * @he_oper: HE operation IE (or %NULL if HE isn't enabled)
+ * @eht_oper: EHT operation IE (or %NULL if EHT isn't enabled)
  * @fils_discovery: FILS discovery transmission parameters
  * @unsol_bcast_probe_resp: Unsolicited broadcast probe response parameters
  * @mbssid_config: AP settings for multiple bssid
@@ -1324,6 +1325,7 @@  struct cfg80211_ap_settings {
 	const struct ieee80211_he_cap_elem *he_cap;
 	const struct ieee80211_he_operation *he_oper;
 	const struct ieee80211_eht_cap_elem *eht_cap;
+	const struct ieee80211_eht_operation *eht_oper;
 	bool ht_required, vht_required, he_required, sae_h2e_required;
 	bool twt_responder;
 	u32 flags;
diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c
index 03eb6870e60f..a5f049fe8de7 100644
--- a/net/wireless/nl80211.c
+++ b/net/wireless/nl80211.c
@@ -5437,6 +5437,9 @@  static void nl80211_calculate_ap_params(struct cfg80211_ap_settings *params)
 	cap = cfg80211_find_ext_elem(WLAN_EID_EXT_EHT_CAPABILITY, ies, ies_len);
 	if (cap && cap->datalen >= sizeof(*params->eht_cap) + 1)
 		params->eht_cap = (void *)(cap->data + 1);
+	cap = cfg80211_find_ext_elem(WLAN_EID_EXT_EHT_OPERATION, ies, ies_len);
+	if (cap && cap->datalen >= sizeof(*params->eht_oper) + 1)
+		params->eht_oper = (void *)(cap->data + 1);
 }
 
 static bool nl80211_get_ap_channel(struct cfg80211_registered_device *rdev,