2010-10-10 20:05:24

by Björn Smedman

[permalink] [raw]
Subject: [PATCH 0/3] Fix rate control for A-MPDU

Hi all,

Rate control for A-MPDU is somewhat complicated, mainly because each
subframe has its own tx status but rate control is only relevant on a per
aggregate level. This patch series fixes some more obscure bugs in the
rate control feedback for A-MPDU frames, mainly for the case when rate
control feedback is carried on a frame that has failed transmission.

There are two underlying assumptions: (1) the ampdu_len and ampdu_ack_len
fields of the tx status structure must be set correctly by the driver if
the IEEE80211_TX_STAT_AMPDU flag is set, and (2) the value of these fields
must not be relied upon by rate control if the flag is not set.

I've only been able to test these patches with the ath9k driver using
the minstrel ht rate control algorithm. I have also looked at the other
driver references to ampdu_len and they seem safe under the above
assumptions, except ath9k's built in rate control, for which I've
attempted a fix.

Bj?rn Smedman (3):
mac80211: minstrel_ht A-MPDU fix
ath9k: A-MPDU rate control info fix
ath9k: built-in rate control A-MPDU fix

drivers/net/wireless/ath/ath9k/rc.c | 6 ++++++
drivers/net/wireless/ath/ath9k/xmit.c | 19 +++++++++++++------
net/mac80211/rc80211_minstrel_ht.c | 7 ++++---
3 files changed, 23 insertions(+), 9 deletions(-)

/Bj?rn