All of lore.kernel.org
 help / color / mirror / Atom feed
From: Christian Lamparter <chunkeey@googlemail.com>
To: Helmut Schaa <helmut.schaa@googlemail.com>
Cc: Sean Patrick Santos <quantheory@gmail.com>,
	linux-wireless@vger.kernel.org, nbd@openwrt.org
Subject: Re: BA session issue due to old BARs?
Date: Sat, 9 Jun 2012 16:23:24 +0200	[thread overview]
Message-ID: <201206091623.25232.chunkeey@googlemail.com> (raw)
In-Reply-To: <CAGXE3d-qQNoXkGhPHFX0vxq0VMto36S5zuZP4gKGkGJ4JA=NXw@mail.gmail.com>

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).

Regards,
	Christian

  reply	other threads:[~2012-06-09 14:23 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 [this message]
2012-06-09 14:55             ` Felix Fietkau
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=201206091623.25232.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.