• Björn Smedman's avatar
    mac80211: minstrel_ht A-MPDU fix · 15d46f38
    Björn Smedman authored
    This patch fixes two problems with the minstrel_ht rate control
    algorithms handling of A-MPDU frames:
    1. The ampdu_len field of the tx status is not always initialized for
    non-HT frames (and it would probably be unreasonable to require all
    drivers to do so). This could cause rate control statistics to be
    corrupted. We now trust the ampdu_len and ampdu_ack_len fields only when
    the frame is marked with the IEEE80211_TX_STAT_AMPDU flag.
    2. Successful transmission attempts where only recognized when the A-MPDU
    subframe carrying the rate control status information was marked with the
    IEEE80211_TX_STAT_ACK flag. If this information happed to be carried on a
    frame that failed to be ACKed then the other subframes (which may have
    succeeded) where not correctly registered. We now update rate control
    statistics regardless of whether the subframe carrying the information was
    ACKed or not.
    Cc: <stable@kernel.org>
    Signed-off-by: default avatarBjörn Smedman <bjorn.smedman@venatech.se>
    Acked-by: default avatarFelix Fietkau <nbd@openwrt.org>
    Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
rc80211_minstrel_ht.c 21.3 KB