mac80211: simplify and clarify IE splitting
authorJohannes Berg <johannes.berg@intel.com>
Sat, 5 Aug 2017 08:44:32 +0000 (11:44 +0300)
committerJohannes Berg <johannes.berg@intel.com>
Thu, 21 Sep 2017 09:41:58 +0000 (11:41 +0200)
There's no need to split off IEs from the ones obtained
from userspace, if they were already split off, so for
example IEs that went before HT don't have to be listed
again to go before VHT. Simplify the code here so it's
clearer.

While at it, also clarify the comments regarding the DMG
(60 GHz) elements.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/mac80211/mlme.c
net/mac80211/util.c

index 3b8e2709d8dea14ba4711de7d7d5c6ed5b48473a..ee5ca1bc5a20f55ee215b4d7433d6192736c74cd 100644 (file)
@@ -780,11 +780,12 @@ static void ieee80211_send_assoc(struct ieee80211_sub_if_data *sdata)
                        WLAN_EID_SUPPORTED_REGULATORY_CLASSES,
                        WLAN_EID_HT_CAPABILITY,
                        WLAN_EID_BSS_COEX_2040,
+                       /* luckily this is almost always there */
                        WLAN_EID_EXT_CAPABILITY,
                        WLAN_EID_QOS_TRAFFIC_CAPA,
                        WLAN_EID_TIM_BCAST_REQ,
                        WLAN_EID_INTERWORKING,
-                       /* 60GHz doesn't happen right now */
+                       /* 60 GHz (Multi-band, DMG, MMS) can't happen */
                        WLAN_EID_VHT_CAPABILITY,
                        WLAN_EID_OPMODE_NOTIF,
                };
@@ -811,22 +812,16 @@ static void ieee80211_send_assoc(struct ieee80211_sub_if_data *sdata)
        /* if present, add any custom IEs that go before VHT */
        if (assoc_data->ie_len) {
                static const u8 before_vht[] = {
-                       WLAN_EID_SSID,
-                       WLAN_EID_SUPP_RATES,
-                       WLAN_EID_EXT_SUPP_RATES,
-                       WLAN_EID_PWR_CAPABILITY,
-                       WLAN_EID_SUPPORTED_CHANNELS,
-                       WLAN_EID_RSN,
-                       WLAN_EID_QOS_CAPA,
-                       WLAN_EID_RRM_ENABLED_CAPABILITIES,
-                       WLAN_EID_MOBILITY_DOMAIN,
-                       WLAN_EID_SUPPORTED_REGULATORY_CLASSES,
-                       WLAN_EID_HT_CAPABILITY,
+                       /*
+                        * no need to list the ones split off before HT
+                        * or generated here
+                        */
                        WLAN_EID_BSS_COEX_2040,
                        WLAN_EID_EXT_CAPABILITY,
                        WLAN_EID_QOS_TRAFFIC_CAPA,
                        WLAN_EID_TIM_BCAST_REQ,
                        WLAN_EID_INTERWORKING,
+                       /* 60 GHz (Multi-band, DMG, MMS) can't happen */
                };
 
                /* RIC already taken above, so no need to handle here anymore */
index 6aef6793d05236c19afe00a51f4ddc91bc060a39..bfecc3e863189d599274d913a03b0451f6daaf55 100644 (file)
@@ -1392,10 +1392,10 @@ static int ieee80211_build_preq_ies_band(struct ieee80211_local *local,
        /* insert custom IEs that go before HT */
        if (ie && ie_len) {
                static const u8 before_ht[] = {
-                       WLAN_EID_SSID,
-                       WLAN_EID_SUPP_RATES,
-                       WLAN_EID_REQUEST,
-                       WLAN_EID_EXT_SUPP_RATES,
+                       /*
+                        * no need to list the ones split off already
+                        * (or generated here)
+                        */
                        WLAN_EID_DS_PARAMS,
                        WLAN_EID_SUPPORTED_REGULATORY_CLASSES,
                };
@@ -1424,20 +1424,17 @@ static int ieee80211_build_preq_ies_band(struct ieee80211_local *local,
        /* insert custom IEs that go before VHT */
        if (ie && ie_len) {
                static const u8 before_vht[] = {
-                       WLAN_EID_SSID,
-                       WLAN_EID_SUPP_RATES,
-                       WLAN_EID_REQUEST,
-                       WLAN_EID_EXT_SUPP_RATES,
-                       WLAN_EID_DS_PARAMS,
-                       WLAN_EID_SUPPORTED_REGULATORY_CLASSES,
-                       WLAN_EID_HT_CAPABILITY,
+                       /*
+                        * no need to list the ones split off already
+                        * (or generated here)
+                        */
                        WLAN_EID_BSS_COEX_2040,
                        WLAN_EID_EXT_CAPABILITY,
                        WLAN_EID_SSID_LIST,
                        WLAN_EID_CHANNEL_USAGE,
                        WLAN_EID_INTERWORKING,
                        WLAN_EID_MESH_ID,
-                       /* 60 GHz can't happen here right now */
+                       /* 60 GHz (Multi-band, DMG, MMS) can't happen */
                };
                noffset = ieee80211_ie_split(ie, ie_len,
                                             before_vht, ARRAY_SIZE(before_vht),