All of lore.kernel.org
 help / color / mirror / Atom feed
From: Johannes Berg <johannes@sipsolutions.net>
To: linux-wireless@vger.kernel.org
Cc: quic_vikram@quicinc.com, quic_alokad@quicinc.com,
	quic_jiad@quicinc.com, quic_periyasa@quicinc.com,
	quic_msinada@quicinc.com, quic_srirrama@quicinc.com,
	ilan.peer@intel.com,
	Mordechay Goodstein <mordechay.goodstein@intel.com>
Subject: [PATCH v2 18/19] mac80211: parse AddBA request with extended AddBA element
Date: Thu, 10 Feb 2022 20:20:07 +0100	[thread overview]
Message-ID: <20220210201853.707e7185e452.I434f5588602f83b4e658c660120040913b3a2e3d@changeid> (raw)
In-Reply-To: <20220210192008.188166-1-johannes@sipsolutions.net>

From: Mordechay Goodstein <mordechay.goodstein@intel.com>

In EHT requesting aggregation with 1K needs the use of extended
the AddBA element for the buffer size, so add the logic to parse
it and make sure it's in limits of the EHT aggregation size.

Signed-off-by: Mordechay Goodstein <mordechay.goodstein@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
---
 net/mac80211/agg-rx.c | 18 +++++++++++++++---
 1 file changed, 15 insertions(+), 3 deletions(-)

diff --git a/net/mac80211/agg-rx.c b/net/mac80211/agg-rx.c
index 0d2bab9d351c..218cdc554d71 100644
--- a/net/mac80211/agg-rx.c
+++ b/net/mac80211/agg-rx.c
@@ -180,7 +180,8 @@ static void sta_rx_agg_reorder_timer_expired(struct timer_list *t)
 
 static void ieee80211_add_addbaext(struct ieee80211_sub_if_data *sdata,
 				   struct sk_buff *skb,
-				   const struct ieee80211_addba_ext_ie *req)
+				   const struct ieee80211_addba_ext_ie *req,
+				   u16 buf_size)
 {
 	struct ieee80211_supported_band *sband;
 	struct ieee80211_addba_ext_ie *resp;
@@ -210,6 +211,8 @@ static void ieee80211_add_addbaext(struct ieee80211_sub_if_data *sdata,
 		frag_level = cap_frag_level;
 	resp->data |= u8_encode_bits(frag_level,
 				     IEEE80211_ADDBA_EXT_FRAG_LEVEL_MASK);
+	resp->data |= u8_encode_bits(buf_size >> IEEE80211_ADDBA_EXT_BUF_SIZE_SHIFT,
+				     IEEE80211_ADDBA_EXT_BUF_SIZE_MASK);
 }
 
 static void ieee80211_send_addba_resp(struct sta_info *sta, u8 *da, u16 tid,
@@ -261,7 +264,7 @@ static void ieee80211_send_addba_resp(struct sta_info *sta, u8 *da, u16 tid,
 	mgmt->u.action.u.addba_resp.status = cpu_to_le16(status);
 
 	if (sta->sta.he_cap.has_he && addbaext)
-		ieee80211_add_addbaext(sdata, skb, addbaext);
+		ieee80211_add_addbaext(sdata, skb, addbaext, buf_size);
 
 	ieee80211_tx_skb(sdata, skb);
 }
@@ -309,7 +312,9 @@ void ___ieee80211_start_rx_ba_session(struct sta_info *sta,
 		goto end;
 	}
 
-	if (sta->sta.he_cap.has_he)
+	if (sta->sta.eht_cap.has_eht)
+		max_buf_size = IEEE80211_MAX_AMPDU_BUF_EHT;
+	else if (sta->sta.he_cap.has_he)
 		max_buf_size = IEEE80211_MAX_AMPDU_BUF_HE;
 	else
 		max_buf_size = IEEE80211_MAX_AMPDU_BUF_HT;
@@ -502,6 +507,13 @@ void ieee80211_process_addba_request(struct ieee80211_local *local,
 			goto free;
 	}
 
+	if (sta->sta.eht_cap.has_eht && elems && elems->addba_ext_ie) {
+		u8 buf_size_1k = u8_get_bits(elems->addba_ext_ie->data,
+					     IEEE80211_ADDBA_EXT_BUF_SIZE_MASK);
+
+		buf_size |= buf_size_1k << IEEE80211_ADDBA_EXT_BUF_SIZE_SHIFT;
+	}
+
 	__ieee80211_start_rx_ba_session(sta, dialog_token, timeout,
 					start_seq_num, ba_policy, tid,
 					buf_size, true, false,
-- 
2.34.1


  parent reply	other threads:[~2022-02-10 19:20 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-02-10 19:19 [PATCH v2 00/19] initial EHT support Johannes Berg
2022-02-10 19:19 ` [PATCH v2 01/19] mac80211_hwsim: check TX and STA bandwidth Johannes Berg
2022-02-10 19:19 ` [PATCH v2 02/19] mac80211_hwsim: don't shadow a global variable Johannes Berg
2022-02-10 19:19 ` [PATCH v2 03/19] mac80211_hwsim: Add custom regulatory for 6GHz Johannes Berg
2022-02-10 19:19 ` [PATCH v2 04/19] ieee80211: Add EHT (802.11be) definitions Johannes Berg
2022-02-10 20:08   ` Johannes Berg
2022-02-10 19:19 ` [PATCH v2 05/19] ieee80211: add EHT 1K aggregation definitions Johannes Berg
2022-02-10 19:19 ` [PATCH v2 06/19] cfg80211: Add data structures to capture EHT capabilities Johannes Berg
2022-02-11 17:37   ` Aloka Dixit (QUIC)
2022-02-11 19:03     ` Johannes Berg
2022-02-14 15:55       ` Aloka Dixit (QUIC)
2022-02-15  7:28         ` Kalle Valo
2022-02-10 19:19 ` [PATCH v2 07/19] cfg80211: Add support for EHT 320 MHz channel width Johannes Berg
2022-02-10 19:19 ` [PATCH v2 08/19] nl80211: add EHT MCS support Johannes Berg
2022-02-10 19:19 ` [PATCH v2 09/19] nl80211: add support for 320MHz channel limitation Johannes Berg
2022-02-10 19:19 ` [PATCH v2 10/19] cfg80211: add NO-EHT flag to regulatory Johannes Berg
2022-02-10 19:20 ` [PATCH v2 11/19] cfg80211: Support configuration of station EHT capabilities Johannes Berg
2022-02-10 19:20 ` [PATCH v2 12/19] mac80211: Support parsing EHT elements Johannes Berg
2022-02-10 19:20 ` [PATCH v2 13/19] mac80211: Add initial support for EHT and 320 MHz channels Johannes Berg
2022-02-10 19:20 ` [PATCH v2 14/19] mac80211: Add EHT capabilities to association/probe request Johannes Berg
2022-02-10 19:20 ` [PATCH v2 15/19] mac80211: Handle station association response with EHT Johannes Berg
2022-02-10 19:20 ` [PATCH v2 16/19] mac80211: Add support for storing station EHT capabilities Johannes Berg
2022-02-10 19:20 ` [PATCH v2 17/19] mac80211: calculate max RX NSS for EHT mode Johannes Berg
2022-02-10 19:20 ` Johannes Berg [this message]
2022-02-10 19:20 ` [PATCH v2 19/19] mac80211_hwsim: Advertise support for EHT capabilities 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=20220210201853.707e7185e452.I434f5588602f83b4e658c660120040913b3a2e3d@changeid \
    --to=johannes@sipsolutions.net \
    --cc=ilan.peer@intel.com \
    --cc=linux-wireless@vger.kernel.org \
    --cc=mordechay.goodstein@intel.com \
    --cc=quic_alokad@quicinc.com \
    --cc=quic_jiad@quicinc.com \
    --cc=quic_msinada@quicinc.com \
    --cc=quic_periyasa@quicinc.com \
    --cc=quic_srirrama@quicinc.com \
    --cc=quic_vikram@quicinc.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.