]> git.karo-electronics.de Git - karo-tx-linux.git/commit
rt2x00: Don't let mac80211 send a BAR when an AMPDU subframe fails
authorAndreas Hartmann <andihartmann@01019freenet.de>
Mon, 16 Apr 2012 22:25:28 +0000 (00:25 +0200)
committerBen Hutchings <ben@decadent.org.uk>
Wed, 16 Jan 2013 01:13:22 +0000 (01:13 +0000)
commit226d487976cff4f4328c664a58e4dc027c4e0209
tree9abaf058a810b18ffa1ea67d801c256fa3fa2ba0
parent416db02bea8fa54c5946bfce2df5001d6a07f560
rt2x00: Don't let mac80211 send a BAR when an AMPDU subframe fails

commit be03d4a45c09ee5100d3aaaedd087f19bc20d01f upstream.

There are connection stalls or very poor throughputs with rt2800
hardware using 802.11n in AP mode since patch "mac80211: retry sending
failed BAR frames later instead of tearing down aggr"[1][2].

Since rt2800 hardware is not able to correctly report the tx status of
BAR frames, this patch removes as workaround the existing error handling
on AP side, which lets mac80211 send a BAR when an AMPDU subframe fails.

As a result, most wifi clients (aside from Intel STAs on Windows)
instead will timeout now the reorder buffer and request the lost frame
again.

The correct solution would be, to tear down BA session on AP side.

This patch was born on the basis of "[RFT] rt2x00: Tear down BA
session on QoS frame failure"[3].

Thanks to Helmut Schaa for his support!

[1] http://thread.gmane.org/gmane.linux.kernel.wireless.general/83297/focus=83304
[2] http://git.kernel.org/?p=linux/kernel/git/linville/wireless-testing.git;a=commit;h=f0425beda4d404a6e751439b562100b902ba9c98
[3] http://thread.gmane.org/gmane.linux.drivers.rt2x00.user/569

Signed-off-by: Andreas Hartmann <andihartmann@01019freenet.de>
Acked-by: Helmut Schaa <helmut.schaa@googlemail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
drivers/net/wireless/rt2x00/rt2x00dev.c