From: Johannes Berg <johannes@sipsolutions.net>
To: Helmut Schaa <helmut.schaa@googlemail.com>
Cc: John Linville <linville@tuxdriver.com>, linux-wireless@vger.kernel.org
Subject: Re: [PATCH] mac80211: Tear down BA session on BAR tx failure
Date: Thu, 11 Aug 2011 14:58:39 +0200 [thread overview]
Message-ID: <1313067519.3992.4.camel@jlt3.sipsolutions.net> (raw)
In-Reply-To: <1313053697-19544-1-git-send-email-helmut.schaa@googlemail.com> (sfid-20110811_110858_764910_1F18A73A)
On Thu, 2011-08-11 at 11:08 +0200, Helmut Schaa wrote:
> As described at [1] some STAs (i.e. Intel 5100 on Windows) can end up
> correctly BlockAcking incoming frames without delivering them to user
> space if a AMPDU subframe got lost and its reorder buffer isn't flushed
> by a BlockAckReq. This in turn results in up to 64 frames being stuck
> in the reorder buffer.
>
> Accroding
typo
> to 802.11n-2009 it is not necessary to send a BAR to flush
> the receipients RX reorder buffer but we still do that to be polite.
typo
> IMHO the Windows driver is just buggy and should be fixed to use a
> reasonable timeout for flushing its reorder buffer but the described
> behavior doesn't appear with the Ralink Legacy drivers for example since
> they trigger a tear down of the BA session in several other situations
> as well (a single failed AMPDU :) for example) and thus don't end up in
> this situation.
>
> Johannes, feel free to NACK this patch as it really is just a
> workaround for buggy clients but I'd say it still makes sense to fall
> back to non-aggregated frames in such a situation. Furthermore, this
> situation is unlikely to happen very often but as written before I was
> able to reproduce it a couple of times.
Seems ok to me, hopefully won't happen often :)
> + if (!acked && ieee80211_is_back_req(fc)) {
> + /*
> + * BAR failed, let's tear down the BA session as a
> + * last resort as some STAs (Intel 5100 on Windows)
> + * can get stuck when the BA window isn't flushed
> + * correctly.
> + */
> + bar = (struct ieee80211_bar *) skb->data;
> + ieee80211_stop_tx_ba_session(&sta->sta,
> + bar->control >> 12 & 0xf);
> + }
Hmm, that shift & mask makes me think twice, are there constants, and
maybe there should be some parentheses?
johannes
next prev parent reply other threads:[~2011-08-11 12:58 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-08-11 9:08 [PATCH] mac80211: Tear down BA session on BAR tx failure Helmut Schaa
2011-08-11 10:05 ` Adrian Chadd
2011-08-11 12:58 ` Johannes Berg [this message]
2011-08-11 13:25 ` Helmut Schaa
2011-08-11 14:17 ` [PATCH 1/2] wireless: Introduce defines for BAR TID_INFO & MULTI_TID fields Helmut Schaa
2011-08-11 14:17 ` [PATCHv2 2/2] mac80211: Tear down BA session on BAR tx failure Helmut Schaa
2011-09-06 19:39 ` Johannes Berg
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=1313067519.3992.4.camel@jlt3.sipsolutions.net \
--to=johannes@sipsolutions.net \
--cc=helmut.schaa@googlemail.com \
--cc=linux-wireless@vger.kernel.org \
--cc=linville@tuxdriver.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