[rt2x00-users] [RFC 2/2] rt2x00: Fix tx status reporting for reordered frames in rt2800pci
Johannes Stezenbach
js at sig21.net
Thu Mar 31 09:08:24 EST 2011
Hi,
On Wed, Mar 30, 2011 at 03:16:10PM +0200, Helmut Schaa wrote:
> Am Mittwoch, 30. März 2011 schrieb Johannes Stezenbach:
> > On Tue, Mar 29, 2011 at 10:48:03PM +0200, Helmut Schaa wrote:
> > > Am Dienstag, 29. März 2011 schrieb Gertjan van Wingerde:
> > > > On 03/29/11 14:02, Helmut Schaa wrote:
> > > > >
> > > > > Maybe it would make sense to turn TX aggregation off in rt2800usb as long as
> > > > > we know that there are still issues left?
If I got your earlier analysis corrrectly then there is a possiblity
that transmission gets stuck when talking to an Intel 5100 STA
(and possibly others) due to unreliable TX status during BA session?
And this situation could also happen when Ralink STA is talking
to some random AP, right?
If this is the case then I vote for disabling TX aggregation by default
for rt2800usb.
> > How many frames can be acked in a Block Ack packet? 802.11 says up to 64,
> > so I wonder what happens to the TX_STA_FIFO if such a Block Ack is received.
> > Doesn't this mean TX status entries can be lost even on PCI?
Correction: One BlockAck can ack up to 1024 MPDU belonging to at max 64 MSDU.
> I don't know since we will only send AMPDUs with a maximum of 8
> MPDUs at the moment, see rt2x00ht.c. However, I've used 31 already
> for some performance tests and didn't notice any issues in regard
> to tx status reporting.
Currently I'm confused because Block Ack mechanism is in 802.11-2007
but AMPDU aggregation is new in 802.11n. If I understand correctly
then Block Ack can be used without AMPDU aggregation.
Also, does the TXWI_W1_BW_WIN_SIZE correspond to a number
of frames or buffer size for Block Ack, or does it
deal with AMPDU lenght? The comment "BA windows size of the recipient"
suggests to me that the hw would generate a BlockAckReq after this
number of frames?
(BTW, why is it TXWI_W1_BW_WIN_SIZE and not TXWI_W1_BA_WIN_SIZE?)
TXWI_W1_BW_WIN_SIZE should be related to the Buffer Size subfield
from ADDBA response Block Ack Parameter Set field, right?
What if peer's Buffer Size is smaller than our hard-coded 7 frames?
Maybe there are some other registers which limit the size of AMPDU,
but I've not found anything in rt2800.h. Maybe it's just limited
by available buffer memory on chip.
Thanks
Johannes
More information about the users
mailing list