mirror of
https://github.com/Telecominfraproject/wlan-ap.git
synced 2025-12-21 11:22:50 +00:00
61 lines
2.2 KiB
Diff
61 lines
2.2 KiB
Diff
From d63efc91afc854dbb5747d3e6afcfa56826c9ae2 Mon Sep 17 00:00:00 2001
|
|
From: Johannes Berg <johannes.berg@intel.com>
|
|
Date: Fri, 30 Sep 2022 13:24:11 +0200
|
|
Subject: [PATCH] wifi: mac80211: remove support for AddBA with fragmentation
|
|
|
|
HE added support for dynamic fragmentation inside aggregation
|
|
sessions, but no existing driver ever advertises it. Thus,
|
|
remove the code for now, it cannot work as-is in MLO. For it
|
|
to properly work in MLO, we'd need to validate that the frag
|
|
level is identical across all the link bands/iftypes, which
|
|
is a good amount of complex code that's just not worth it as
|
|
long as no driver has support for it.
|
|
|
|
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
|
---
|
|
net/mac80211/agg-rx.c | 19 -------------------
|
|
1 file changed, 19 deletions(-)
|
|
|
|
diff --git a/net/mac80211/agg-rx.c b/net/mac80211/agg-rx.c
|
|
index c36df80..3054db6 100644
|
|
--- a/net/mac80211/agg-rx.c
|
|
+++ b/net/mac80211/agg-rx.c
|
|
@@ -183,34 +183,15 @@ static void ieee80211_add_addbaext(struct ieee80211_sub_if_data *sdata,
|
|
const struct ieee80211_addba_ext_ie *req,
|
|
u16 buf_size)
|
|
{
|
|
- struct ieee80211_supported_band *sband;
|
|
struct ieee80211_addba_ext_ie *resp;
|
|
- const struct ieee80211_sta_he_cap *he_cap;
|
|
- u8 frag_level, cap_frag_level;
|
|
u8 *pos;
|
|
|
|
- sband = ieee80211_get_sband(sdata);
|
|
- if (!sband)
|
|
- return;
|
|
- he_cap = ieee80211_get_he_iftype_cap(sband,
|
|
- ieee80211_vif_type_p2p(&sdata->vif));
|
|
- if (!he_cap)
|
|
- return;
|
|
-
|
|
pos = skb_put_zero(skb, 2 + sizeof(struct ieee80211_addba_ext_ie));
|
|
*pos++ = WLAN_EID_ADDBA_EXT;
|
|
*pos++ = sizeof(struct ieee80211_addba_ext_ie);
|
|
resp = (struct ieee80211_addba_ext_ie *)pos;
|
|
resp->data = req->data & IEEE80211_ADDBA_EXT_NO_FRAG;
|
|
|
|
- frag_level = u32_get_bits(req->data,
|
|
- IEEE80211_ADDBA_EXT_FRAG_LEVEL_MASK);
|
|
- cap_frag_level = u32_get_bits(he_cap->he_cap_elem.mac_cap_info[0],
|
|
- IEEE80211_HE_MAC_CAP0_DYNAMIC_FRAG_MASK);
|
|
- if (frag_level > cap_frag_level)
|
|
- 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);
|
|
}
|
|
--
|
|
2.17.1
|
|
|