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>
This commit is contained in:
parent
2e82be13c6
commit
e8d0b807b4
|
@ -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);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue