cfg80211: add he_capabilities (ext) IE to AP settings
authorShaul Triebitz <shaul.triebitz@intel.com>
Fri, 31 Aug 2018 08:31:14 +0000 (11:31 +0300)
committerJohannes Berg <johannes.berg@intel.com>
Wed, 5 Sep 2018 08:03:13 +0000 (10:03 +0200)
Same as for HT and VHT.
This helps the lower level to know whether the AP supports HE.

Signed-off-by: Shaul Triebitz <shaul.triebitz@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
include/net/cfg80211.h
net/wireless/nl80211.c

index 33c2a1d2a8d2ede1fb8637c2b6911ddf79c93701..9f3ed79c39d76bbe64c0ee21ca9ebb16ad783477 100644 (file)
@@ -849,6 +849,7 @@ struct cfg80211_bitrate_mask {
  * @beacon_rate: bitrate to be used for beacons
  * @ht_cap: HT capabilities (or %NULL if HT isn't enabled)
  * @vht_cap: VHT capabilities (or %NULL if VHT isn't enabled)
+ * @he_cap: HE capabilities (or %NULL if HE isn't enabled)
  * @ht_required: stations must support HT
  * @vht_required: stations must support VHT
  */
@@ -874,6 +875,7 @@ struct cfg80211_ap_settings {
 
        const struct ieee80211_ht_cap *ht_cap;
        const struct ieee80211_vht_cap *vht_cap;
+       const struct ieee80211_he_cap_elem *he_cap;
        bool ht_required, vht_required;
 };
 
index fbd0747a5a9da870c77a3c8813abfc72c7af3bad..d5f9b5235cdd26329486f7749ec95b7c40ad6dca 100644 (file)
@@ -4095,6 +4095,9 @@ static void nl80211_calculate_ap_params(struct cfg80211_ap_settings *params)
        cap = cfg80211_find_ie(WLAN_EID_VHT_CAPABILITY, ies, ies_len);
        if (cap && cap[1] >= sizeof(*params->vht_cap))
                params->vht_cap = (void *)(cap + 2);
+       cap = cfg80211_find_ext_ie(WLAN_EID_EXT_HE_CAPABILITY, ies, ies_len);
+       if (cap && cap[1] >= sizeof(*params->he_cap) + 1)
+               params->he_cap = (void *)(cap + 3);
 }
 
 static bool nl80211_get_ap_channel(struct cfg80211_registered_device *rdev,