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 -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html