linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Christian Lamparter <chunkeey@googlemail.com>
To: Felix Fietkau <nbd@openwrt.org>
Cc: Helmut Schaa <helmut.schaa@googlemail.com>,
	Sean Patrick Santos <quantheory@gmail.com>,
	linux-wireless@vger.kernel.org
Subject: Re: BA session issue due to old BARs?
Date: Sat, 9 Jun 2012 19:40:03 +0200	[thread overview]
Message-ID: <201206091940.04037.chunkeey@googlemail.com> (raw)
In-Reply-To: <4FD363E8.9090508@openwrt.org>

On Saturday 09 June 2012 16:55:36 Felix Fietkau wrote:
> On 2012-06-09 4:23 PM, Christian Lamparter wrote:
>> On Saturday 09 June 2012 14:20:48 Helmut Schaa wrote:
>>> On Sat, Jun 9, 2012 at 2:18 AM, Christian Lamparter wrote:
>>>> On Friday 08 June 2012 09:57:26 Sean Patrick Santos wrote:
>>>>> commit f0425beda4d404a6e751439b562100b902ba9c98
>>>>> Author: Felix Fietkau <nbd@openwrt.org>
>>>>> Date:   Sun Aug 28 21:11:01 2011 +0200
>>>>>
>>>>>     mac80211: retry sending failed BAR frames later instead of tearing down aggr
>>>>>
>>>> Or am I misinterpreting the commit and
>>>> this patch was just a temporary fix since back then mac80211
>>>> had problems with setting up BA session (and they might
>>>> have been fixed in the meantime?!).
>>> As far as I understood tearing down the BA session and then
>>> starting it again has a much higher impact onto throughput
>>> then just resending the BAR after the next successfully sent
>>> AMPDU.
>> Well, at least in case of carl9170 it looks like the resending
>> BARs are confusing the receiver reorder buffer on the other 
>> HT peer. Since it looks like the HT peer dump hardware is still
>> ACKs incoming frames from a carl9170 station, but the software
>> reorder buffer on the HT peer is silently dropping the data frames.
>> [Of course, data frames from other TIDs, MGMT (probes) or null-
>> frames are not reordered... so the connection polling with
>> null-frames does not detect the bad state and won't try to
>> recover).
> I think we need to figure out what exactly confuses the receiver reorder
> buffer of a HT peer. It sounds to me like something is causing a gap in
> sequence number allocation, but I don't know what would do that. Where
> exactly is the connection between BAR retransmission and those reorder
> issues?
The connection is that before the patch the BA session
was torn down when a BAR was not delivered successfully.
Now the code tries to revive the stalled BA sessions by
sending BARs (which at least according to the spec
should work fine as long as the BA session is still active?!).

I guess part of the problem is the implementation of
"11.5.3 Error recovery upon a peer failure" in both peers.
In order to debug this, it would be great to know how the
peers handle a injected frame that has the ACK policy
set to Block ACK but without an active session.
802.11-2007 11.5.3 says (under figure 11-14) that the
frame should be discarded and the receiver has to send
a DELBA. However in mac80211 case (if I didn't miss any
code), the frame is not discarded (in fact it will go
though the rx path unreordered - code is in mac80211/rx.c,
func: ieee80211_rx_reorder_ampdu) and no delba is sent
either... so there's some potential from similar 
"undefinied" behavior in other stacks as well.

Regards,
	Christian

      reply	other threads:[~2012-06-09 17:40 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-06-07  6:53 Sean Patrick Santos
2012-06-07 13:18 ` carl9170 issue Christian Lamparter
2012-06-07 19:31   ` Sean Patrick Santos
2012-06-08  7:57     ` Sean Patrick Santos
2012-06-09  0:18       ` BA session issue due to old BARs? Christian Lamparter
2012-06-09  1:11         ` [RFC] mac80211: follow 802.11-2007 11.5.3 Error recovery upon HT BA failure Christian Lamparter
2012-06-09  7:59           ` Johannes Berg
2012-06-09 12:14             ` [RFC v2] " Christian Lamparter
2012-06-09 12:28               ` Johannes Berg
2012-06-09 14:01                 ` [RFC v3] " Christian Lamparter
2012-06-10  5:13                   ` Emmanuel Grumbach
2012-06-10 12:20                     ` Christian Lamparter
2012-06-10 18:55                       ` Emmanuel Grumbach
2012-06-09 12:20         ` BA session issue due to old BARs? Helmut Schaa
2012-06-09 14:23           ` Christian Lamparter
2012-06-09 14:55             ` Felix Fietkau
2012-06-09 17:40               ` Christian Lamparter [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=201206091940.04037.chunkeey@googlemail.com \
    --to=chunkeey@googlemail.com \
    --cc=helmut.schaa@googlemail.com \
    --cc=linux-wireless@vger.kernel.org \
    --cc=nbd@openwrt.org \
    --cc=quantheory@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).