OSDN Git Service

mac80211: Support parsing EHT elements
authorIlan Peer <ilan.peer@intel.com>
Mon, 14 Feb 2022 16:29:59 +0000 (17:29 +0100)
committerJohannes Berg <johannes.berg@intel.com>
Wed, 16 Feb 2022 14:43:37 +0000 (15:43 +0100)
Parse the new EHT elements in the element parsing utilities.

Signed-off-by: Ilan Peer <ilan.peer@intel.com>
Link: https://lore.kernel.org/r/20220214173004.4d52ddaf1af4.Ib6beb1aa85e25b71ce40d3260b2e5b117cc42308@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/mac80211/ieee80211_i.h
net/mac80211/util.c

index da35791..538d047 100644 (file)
@@ -1587,6 +1587,8 @@ struct ieee802_11_elems {
        const struct ieee80211_s1g_oper_ie *s1g_oper;
        const struct ieee80211_s1g_bcn_compat_ie *s1g_bcn_compat;
        const struct ieee80211_aid_response_ie *aid_resp;
+       const struct ieee80211_eht_cap_elem *eht_cap;
+       const struct ieee80211_eht_operation *eht_operation;
 
        /* length of them, respectively */
        u8 ext_capab_len;
@@ -1608,6 +1610,7 @@ struct ieee802_11_elems {
        u8 bssid_index_len;
        u8 tx_pwr_env_len[IEEE80211_TPE_MAX_IE_COUNT];
        u8 tx_pwr_env_num;
+       u8 eht_cap_len;
 
        /* whether a parse error occurred while retrieving these elements */
        bool parse_error;
index 1a8e187..b3c3191 100644 (file)
@@ -1008,6 +1008,17 @@ static void ieee80211_parse_extension_element(u32 *crc,
                if (len >= sizeof(*elems->he_6ghz_capa))
                        elems->he_6ghz_capa = data;
                break;
+       case WLAN_EID_EXT_EHT_CAPABILITY:
+               if (ieee80211_eht_capa_size_ok(elems->he_cap,
+                                              data, len)) {
+                       elems->eht_cap = data;
+                       elems->eht_cap_len = len;
+               }
+               break;
+       case WLAN_EID_EXT_EHT_OPERATION:
+               if (ieee80211_eht_oper_size_ok(data, len))
+                       elems->eht_operation = data;
+               break;
        }
 }