mac80211: allow bigger A-MSDU sizes in VHT, even if HT is limited
authorFelix Fietkau <nbd@nbd.name>
Wed, 16 Sep 2020 16:46:11 +0000 (18:46 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Fri, 18 Sep 2020 11:06:38 +0000 (13:06 +0200)
Some APs (e.g. Asus RT-AC88U) have been observed to report an HT MSDU size
limit of 3839 and a VHT limit of 7991. These APs can handle bigger frames
than 3839 bytes just fine, so we should remove the VHT limit based on the
HT capabilities. This improves tx throughput.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
Link: https://lore.kernel.org/r/20200916164611.8022-1-nbd@nbd.name
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/mac80211/vht.c

index 9c6045f9c24daf051125248e49660f2eb46e5f49..7e601d067d53c684996423e62484c9408f6a2498 100644 (file)
@@ -315,10 +315,6 @@ ieee80211_vht_cap_ie_to_sta_vht_cap(struct ieee80211_sub_if_data *sdata,
 
        sta->sta.bandwidth = ieee80211_sta_cur_vht_bw(sta);
 
-       /* If HT IE reported 3839 bytes only, stay with that size. */
-       if (sta->sta.max_amsdu_len == IEEE80211_MAX_MPDU_LEN_HT_3839)
-               return;
-
        switch (vht_cap->cap & IEEE80211_VHT_CAP_MAX_MPDU_MASK) {
        case IEEE80211_VHT_CAP_MAX_MPDU_LENGTH_11454:
                sta->sta.max_amsdu_len = IEEE80211_MAX_MPDU_LEN_VHT_11454;