From: Felix Fietkau <nbd@openwrt.org>
To: Christian Lamparter <chunkeey@googlemail.com>
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, 09 Jun 2012 16:55:36 +0200 [thread overview]
Message-ID: <4FD363E8.9090508@openwrt.org> (raw)
In-Reply-To: <201206091623.25232.chunkeey@googlemail.com>
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
>> <chunkeey@googlemail.com> wrote:
>> > On Friday 08 June 2012 09:57:26 Sean Patrick Santos wrote:
>> >> I believe that I have found the commit that introduced this problem,
>> >> which was a change in mac80211. However, I'm out of my depth in
>> >> figuring out what a really "correct" solution is; all I've done is a
>> >> trial-and-error bisection. The commit in question:
>> >>
>> >> 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
>> >>
>> >> Unfortunately failed BAR tx attempts happen more frequently than I
>> >> expected, and the resulting aggregation teardowns cause performance
>> >> issues, as the aggregation session does not always get re-established
>> >> properly.
>> >> Instead of tearing down the entire aggr session, we can simply store the
>> >> SSN of the last failed BAR tx attempt, wait for the first successful
>> >> tx status event, and then send another BAR with the same SSN.
>> >>
>> >> Signed-off-by: Felix Fietkau <nbd@openwrt.org>
>> >> Cc: Helmut Schaa <helmut.schaa@googlemail.com>
>> >> Signed-off-by: John W. Linville <linville@tuxdriver.com>
>> >>
>> >> This looks relevant. As a matter of personal convenience, I might try
>> >> backing out the change tomorrow if it seems that it'll help.
>> > Felix,
>> >
>> > is there any way we can restore the old behavior of tearing
>> > down BAs due to BAR transmission failures without breaking
>> > ath9k (or rt2x00)?
>>
>> No problem with rt2x00 since it has problems reporting the
>> tx status of BARs :(
> hm, does the hardware pass BA to the driver? Because, the
> BA which results from a BAR usually contains the ssn from
> the BAR (just the ra / ta is switched). Come to think of it
> the ssn and the bitmap might also be useful to map tx_status
> to a specific skb.
>
>> > 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?!).
>> >
>> > Quote from the first paragraph of the commit:
>> >> ... the resulting aggregation teardowns cause performance
>> >> issues, as the aggregation session does not always get
>> >> re-established properly.
>>
>> 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?
- Felix
next prev parent reply other threads:[~2012-06-09 14:55 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 [this message]
2012-06-09 17:40 ` Christian Lamparter
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=4FD363E8.9090508@openwrt.org \
--to=nbd@openwrt.org \
--cc=chunkeey@googlemail.com \
--cc=helmut.schaa@googlemail.com \
--cc=linux-wireless@vger.kernel.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).