All of lore.kernel.org
 help / color / mirror / Atom feed
From: Christian Lamparter <chunkeey@googlemail.com>
To: Johan Danielsson <joda@kth.se>
Cc: linux-wireless@vger.kernel.org
Subject: Re: mac80211 and RX of A-MPDU with missing back agreement
Date: Mon, 7 Jan 2013 20:53:34 +0100	[thread overview]
Message-ID: <201301072053.35072.chunkeey@googlemail.com> (raw)
In-Reply-To: <CAESKgcgVQYwT770OfOXZnB-06SnidfxV7DnUrAMquJZtLNsYHg@mail.gmail.com>

On Monday, January 07, 2013 11:32:53 AM Johan Danielsson wrote:
> What does mac80211 expect driver/hw to do when an A-MPDU is received
> without an existing block ack agreement?

according to ieee80211_rx_reorder_ampdu in /net/mac80211/rx.c:
it goes to "goto dont_reorder;"
 
> This may occur when an existing RX BACK agreement times out, and the
> peer STA fails to hear the DELBA frame.
> 
> The best option I can think of would be to drop the subframes and
> re-transmit the DELBA, but this (at least the second part) should be
> handled by mac80211 and not the driver.
> 
> The standard doesn't seem to be clear on this point (not that it's
> clear on many points).
802.11-2012 in 10.5.4 should cover your approach:

"When a recipient does not have an active Block ack for a TID, but
receives data MPDUs with the Ack Policy subfield equal to Block Ack,
it shall discard them and shall send a DELBA frame within its own
TXOP. [... keep on reading...]"

Note: The Ack Policy subfield equal to Block Ack is according to
Table 8-6 (802.11-2012 8.2.4.5.4) either
	- 11
 	Block Ack according to 9.21

	- 00
	Which is used for Implicit Block Ack Requests... However it's
	also used for Normal ACKs.

However, some drivers [not all] set the RX_FLAG_AMPDU_DETAILS flag when
they receive a AMPDU. So you should be able to extend the checks in 
ieee80211_rx_reorder_ampdu and generate a delba from there [in a similar
way of how delba is sent when the stack receives a illegal, fragmented
frame when a BA session is in place.

Regards,
	Chr

  reply	other threads:[~2013-01-07 19:57 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-01-07 10:32 mac80211 and RX of A-MPDU with missing back agreement Johan Danielsson
2013-01-07 19:53 ` Christian Lamparter [this message]
2013-01-08 10:39   ` Johan Danielsson
2013-01-08 16:15     ` Christian Lamparter
2013-01-08 21:47       ` Johan Danielsson
2013-01-08 23:38         ` Christian Lamparter
2013-01-09 10:05           ` Johan Danielsson
2013-01-09 17:43             ` Christian Lamparter
2013-01-09 18:32               ` Christian Lamparter
2013-01-09 10:54           ` Stanislaw Gruszka
2013-01-09 12:02           ` Johannes Berg
2013-01-09 13:46             ` Christian Lamparter
2013-01-09 13:54               ` Johannes Berg
2013-01-09 18:05                 ` 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=201301072053.35072.chunkeey@googlemail.com \
    --to=chunkeey@googlemail.com \
    --cc=joda@kth.se \
    --cc=linux-wireless@vger.kernel.org \
    /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.