All of lore.kernel.org
 help / color / mirror / Atom feed
From: Johannes Berg <johannes@sipsolutions.net>
To: linux-wireless@vger.kernel.org
Cc: Rajkumar Manoharan <rmanohar@codeaurora.org>,
	Pradeep Kumar Chitrapu <pradeepc@codeaurora.org>,
	Shaul Triebitz <shaul.triebitz@intel.com>
Subject: [PATCH 14/24] mac80211: check the correct bit for EMA AP
Date: Thu, 28 May 2020 16:50:10 +0200	[thread overview]
Message-ID: <20200528165011.d41fcb4a40ea.I9745582f8d41ad8e689dac0fefcd70b276d7c1ea@changeid> (raw)
In-Reply-To: <20200528165011.993f108e96ca.I0086ae42d672379380d04ac5effb2f3d5135731b@changeid>

From: Shaul Triebitz <shaul.triebitz@intel.com>

An AP supporting EMA (Enhanced Multi-BSSID advertisement) should set
bit 83 in the extended capabilities IE (9.4.2.26 in the 802.11ax D5 spec).
So the *3rd* bit of the 10th byte should be checked.
Also, in one place, the wrong byte was checked.
(cfg80211_find_ie returns a pointer to the beginning of the IE,
 so the data really starts at ie[2], so the 10th byte
 should be ie[12]. To avoid this confusion, use cfg80211_find_elem
 instead).

Signed-off-by: Shaul Triebitz <shaul.triebitz@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
---
 include/linux/ieee80211.h |  2 +-
 net/mac80211/mlme.c       | 18 +++++++++---------
 2 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/include/linux/ieee80211.h b/include/linux/ieee80211.h
index 9580dfd9e2d1..1ecfd19f836d 100644
--- a/include/linux/ieee80211.h
+++ b/include/linux/ieee80211.h
@@ -3082,7 +3082,7 @@ enum ieee80211_tdls_actioncode {
 #define WLAN_EXT_CAPA10_OBSS_NARROW_BW_RU_TOLERANCE_SUPPORT BIT(7)
 
 /* Defines support for enhanced multi-bssid advertisement*/
-#define WLAN_EXT_CAPA11_EMA_SUPPORT	BIT(1)
+#define WLAN_EXT_CAPA11_EMA_SUPPORT	BIT(3)
 
 /* TDLS specific payload type in the LLC/SNAP header */
 #define WLAN_TDLS_SNAP_RFTYPE	0x2
diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
index 8e74ead73d97..abb507908982 100644
--- a/net/mac80211/mlme.c
+++ b/net/mac80211/mlme.c
@@ -5591,7 +5591,7 @@ int ieee80211_mgd_assoc(struct ieee80211_sub_if_data *sdata,
 		assoc_data->timeout_started = true;
 		assoc_data->need_beacon = true;
 	} else if (beacon_ies) {
-		const u8 *ie;
+		const struct element *elem;
 		u8 dtim_count = 0;
 
 		ieee80211_get_dtim(beacon_ies, &dtim_count,
@@ -5608,15 +5608,15 @@ int ieee80211_mgd_assoc(struct ieee80211_sub_if_data *sdata,
 			sdata->vif.bss_conf.sync_dtim_count = dtim_count;
 		}
 
-		ie = cfg80211_find_ext_ie(WLAN_EID_EXT_MULTIPLE_BSSID_CONFIGURATION,
-					  beacon_ies->data, beacon_ies->len);
-		if (ie && ie[1] >= 3)
-			sdata->vif.bss_conf.profile_periodicity = ie[4];
+		elem = cfg80211_find_ext_elem(WLAN_EID_EXT_MULTIPLE_BSSID_CONFIGURATION,
+					      beacon_ies->data, beacon_ies->len);
+		if (elem && elem->datalen >= 3)
+			sdata->vif.bss_conf.profile_periodicity = elem->data[2];
 
-		ie = cfg80211_find_ie(WLAN_EID_EXT_CAPABILITY,
-				      beacon_ies->data, beacon_ies->len);
-		if (ie && ie[1] >= 11 &&
-		    (ie[10] & WLAN_EXT_CAPA11_EMA_SUPPORT))
+		elem = cfg80211_find_elem(WLAN_EID_EXT_CAPABILITY,
+					  beacon_ies->data, beacon_ies->len);
+		if (elem && elem->datalen >= 11 &&
+		    (elem->data[10] & WLAN_EXT_CAPA11_EMA_SUPPORT))
 			sdata->vif.bss_conf.ema_ap = true;
 	} else {
 		assoc_data->timeout = jiffies;
-- 
2.26.2


  parent reply	other threads:[~2020-05-28 14:54 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-28 14:49 [PATCH 01/24] nl80211: really allow client-only BIGTK support Johannes Berg
2020-05-28 14:49 ` [PATCH 02/24] cfg80211: add a helper to identify 6 GHz PSCs Johannes Berg
2020-05-28 14:49 ` [PATCH 03/24] ieee80211: definitions for reduced neighbor reports Johannes Berg
2020-05-28 14:50 ` [PATCH 04/24] ieee80211: add code to obtain and parse 6 GHz operation field Johannes Berg
2020-05-28 14:50 ` [PATCH 05/24] ieee80211: add HE ext EIDs and 6 GHz capability defines Johannes Berg
2020-05-28 14:50 ` [PATCH 06/24] cfg80211: handle 6 GHz capability of new station Johannes Berg
2020-05-28 14:50 ` [PATCH 07/24] mac80211: add HE 6 GHz Band Capabilities into parse extension Johannes Berg
2020-05-28 14:50 ` [PATCH 08/24] cfg80211: add and expose HE 6 GHz band capabilities Johannes Berg
2020-05-28 14:50 ` [PATCH 09/24] mac80211: add HE 6 GHz Band Capability element Johannes Berg
2020-05-28 14:50 ` [PATCH 10/24] mac80211: build HE operation with 6 GHz oper information Johannes Berg
2020-05-28 14:50 ` [PATCH 11/24] mac80211: do not allow HT/VHT IEs in 6 GHz mesh mode Johannes Berg
2020-05-28 14:50 ` [PATCH 12/24] mac80211: avoid using ext NSS high BW if not supported Johannes Berg
2020-05-28 17:50   ` Johannes Berg
2020-05-28 17:53     ` Johannes Berg
2020-05-28 14:50 ` [PATCH 13/24] mac80211: determine chandef from HE 6 GHz operation Johannes Berg
2020-05-28 14:50 ` Johannes Berg [this message]
2020-05-28 14:50 ` [PATCH 15/24] mac80211: use HE 6 GHz band capability and pass it to the driver Johannes Berg
2020-05-28 14:50 ` [PATCH 16/24] mac80211: Add HE 6GHz capabilities element to probe request Johannes Berg
2020-05-28 14:50 ` [PATCH 17/24] cfg80211: treat 6 GHz channels as valid regardless of capability Johannes Berg
2020-05-28 14:50 ` [PATCH 18/24] cfg80211: reject HT/VHT capabilities on 6 GHz band Johannes Berg
2020-05-28 14:50 ` [PATCH 19/24] cfg80211: require HE capabilities for " Johannes Berg
2020-05-28 14:50 ` [PATCH 20/24] cfg80211: Update 6GHz starting frequency Johannes Berg
2020-05-28 14:50 ` [PATCH 21/24] mac80211: accept aggregation sessions on 6 GHz Johannes Berg
2020-05-28 14:50 ` [PATCH 22/24] mac80211: Consider 6 GHz band when handling power constraint Johannes Berg
2020-05-28 14:50 ` [PATCH 23/24] mac80211: set short_slot for 6 GHz band Johannes Berg
2020-05-28 14:50 ` [PATCH 24/24] nl80211/cfg80211: support 6 GHz scanning Johannes Berg
2020-05-29 19:56   ` kbuild test robot
2020-05-28 16:39 ` [PATCH 01/24] nl80211: really allow client-only BIGTK support Johannes Berg

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200528165011.d41fcb4a40ea.I9745582f8d41ad8e689dac0fefcd70b276d7c1ea@changeid \
    --to=johannes@sipsolutions.net \
    --cc=linux-wireless@vger.kernel.org \
    --cc=pradeepc@codeaurora.org \
    --cc=rmanohar@codeaurora.org \
    --cc=shaul.triebitz@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.