linux/drivers/net/wireless
Helmut Schaa b34793ee27 rt2x00: Work around hw aggregation oddity in rt2800
If a frame is not meant to be sent as AMPDU or part of it the hw might
still decide to aggregate this frame if a previous frame started an
AMPDU. However, this will limit the usefulness of the reported tx rate
since the reported rate will be the one specified in the TXWI of the
first frame and thus it is not possible to reliably caculate the
number of retrys by substracting the reported tx rate from the tx rate
in the TXWI.

To fix this issue, only report the successful rate for frames that were
not meant to be aggregated but ended up in an aggregate.

Example:
Frame A (MCS7, AMPDU=1) B (MCS7, AMPDU=1) C (MCS12, AMDPU=0, PROBE_RATE)

Although frame C shoudn't be aggregated the hw might sill put it
into an AMPDU together with A and B. If the transmission succeeds the tx
status will contain MCS7 for all three frames. In that case we should
only report MCS7 as success rate and avoid reporting MCS12-MCS8 as
failed tx attempts as this will affect the future rate control
decisions.

This oddity might strike us in other scenarious as well but the most
common "wrong" report happened for frames used to probe a different tx
rate.

This improves the rate control decisions notable.

Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com>
Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2010-10-05 13:35:29 -04:00
..
ath ath9k: Report total tx/rx bytes and packets in debugfs. 2010-10-05 13:35:25 -04:00
b43 b43: N-PHY: add missing phyrxchain setting and fix warning in RX core function 2010-08-25 14:33:20 -04:00
b43legacy b43legacy: update hw/fw version info in wiphy struct 2010-08-16 14:39:45 -04:00
hostap Hostap: Fix "'ret' set but not used" warning message from GCC in hostap 2010-08-24 16:28:20 -04:00
ipw2x00 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6 2010-08-24 16:35:40 -04:00
iwlwifi iwlwifi: change WARN_ON to IWL_WARN in iwl_mac_add_interface 2010-10-05 13:35:22 -04:00
iwmc3200wifi iwm3200wifi: remove comparison to WIFI_IF_NTFY_MAX in iwm_ntf_wifi_if_wrapper 2010-08-16 14:39:48 -04:00
libertas Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6 2010-09-24 15:52:34 -04:00
libertas_tf libertas_tf: if_usb.c: Some more formatting fixes 2010-08-16 15:26:37 -04:00
orinoco orinoco: Fix walking past the end of the buffer 2010-08-25 14:33:17 -04:00
p54 p54usb: add five more USBIDs 2010-10-05 13:35:25 -04:00
prism54 drivers/net/wireless/prism54: Adjust confusing if indentation 2010-08-16 15:26:41 -04:00
rt2x00 rt2x00: Work around hw aggregation oddity in rt2800 2010-10-05 13:35:29 -04:00
rtl818x Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6 2010-08-24 16:35:40 -04:00
wl12xx wl12xx: fix separate-object-folder builds 2010-09-28 10:52:26 -04:00
zd1211rw zd1211rw: update fw version info in wiphy struct 2010-08-16 14:39:45 -04:00
adm8211.c drivers/net/wireless: Restore upper case words in wiphy_<level> messages 2010-08-18 16:37:44 -04:00
adm8211.h
airo_cs.c
airo.c airo: remove "basic_rate" module option 2010-09-24 15:54:29 -04:00
airo.h
at76c50x-usb.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6 2010-08-24 16:35:40 -04:00
at76c50x-usb.h Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 2010-07-01 17:34:14 -07:00
atmel_cs.c
atmel_pci.c
atmel.c
atmel.h
Kconfig
mac80211_hwsim.c mac80211: add p2p device type support 2010-09-16 15:46:07 -04:00
Makefile wl12xx: fix separate-object-folder builds 2010-09-28 10:52:26 -04:00
mwl8k.c drivers/net/wireless: Restore upper case words in wiphy_<level> messages 2010-08-18 16:37:44 -04:00
ray_cs.c ray_cs: make data const 2010-09-07 13:54:32 -04:00
ray_cs.h
rayctl.h
rndis_wlan.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 2010-07-01 17:34:14 -07:00
wl3501_cs.c
wl3501.h
zd1201.c
zd1201.h