aboutsummaryrefslogtreecommitdiffstats
path: root/include/net/mac80211.h
diff options
context:
space:
mode:
authorJohannes Berg <johannes@sipsolutions.net>2010-01-16 19:47:59 -0500
committerJohn W. Linville <linville@tuxdriver.com>2010-01-19 16:25:21 -0500
commitc6fcf6bcfc3cfc1c00cc7fd9610cfa2b1a18041f (patch)
tree301713d3f65f3cc9cb99e374c655d6f8bf99c741 /include/net/mac80211.h
parent813d76694043d00b59475baa1fbfaf54a2eb7fad (diff)
mac80211: re-enable re-transmission of filtered frames
In an earlier commit, mac80211: disable software retry for now Pavel Roskin reported a problem that seems to be due to software retry of already transmitted frames. It turns out that we've never done that correctly, but due to some recent changes it now crashes in the TX code. I've added a comment in the patch that explains the problem better and also points to possible solutions -- which I can't implement right now. I disabled software retry of failed/filtered frames because it was broken. With the work of the previous patches, it now becomes fairly easy to re-enable it by adding a flag indicating that the frame shouldn't be modified, but still running it through the transmit handlers to populate the control information. Signed-off-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'include/net/mac80211.h')
-rw-r--r--include/net/mac80211.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/include/net/mac80211.h b/include/net/mac80211.h
index c90047de4428..f03f97b627fe 100644
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -271,6 +271,9 @@ struct ieee80211_bss_conf {
271 * transmit function after the current frame, this can be used 271 * transmit function after the current frame, this can be used
272 * by drivers to kick the DMA queue only if unset or when the 272 * by drivers to kick the DMA queue only if unset or when the
273 * queue gets full. 273 * queue gets full.
274 * @IEEE80211_TX_INTFL_RETRANSMISSION: This frame is being retransmitted
275 * after TX status because the destination was asleep, it must not
276 * be modified again (no seqno assignment, crypto, etc.)
274 */ 277 */
275enum mac80211_tx_control_flags { 278enum mac80211_tx_control_flags {
276 IEEE80211_TX_CTL_REQ_TX_STATUS = BIT(0), 279 IEEE80211_TX_CTL_REQ_TX_STATUS = BIT(0),
@@ -291,6 +294,7 @@ enum mac80211_tx_control_flags {
291 IEEE80211_TX_INTFL_DONT_ENCRYPT = BIT(16), 294 IEEE80211_TX_INTFL_DONT_ENCRYPT = BIT(16),
292 IEEE80211_TX_CTL_PSPOLL_RESPONSE = BIT(17), 295 IEEE80211_TX_CTL_PSPOLL_RESPONSE = BIT(17),
293 IEEE80211_TX_CTL_MORE_FRAMES = BIT(18), 296 IEEE80211_TX_CTL_MORE_FRAMES = BIT(18),
297 IEEE80211_TX_INTFL_RETRANSMISSION = BIT(19),
294}; 298};
295 299
296/** 300/**