aboutsummaryrefslogtreecommitdiffstats
path: root/include/net/mac80211.h
diff options
context:
space:
mode:
authorJohannes Berg <johannes@sipsolutions.net>2009-03-23 12:28:41 -0400
committerJohn W. Linville <linville@tuxdriver.com>2009-03-27 20:13:22 -0400
commitcd8ffc800ce18e558335c4946b2217864fc16045 (patch)
treee9bb8c3d6011e89374f9df353ff1f15d45a63590 /include/net/mac80211.h
parenta220858d30604902f650074bfac5a7598bc97ea4 (diff)
mac80211: fix aggregation to not require queue stop
Instead of stopping the entire AC queue when enabling aggregation (which was only done for hardware with aggregation queues) buffer the packets for each station, and release them to the pending skb queue once aggregation is turned on successfully. We get a little more code, but it becomes conceptually simpler and we can remove the entire virtual queue mechanism from mac80211 in a follow-up patch. This changes how mac80211 behaves towards drivers that support aggregation but have no hardware queues -- those drivers will now not be handed packets while the aggregation session is being established, but only after it has been fully established. 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 07fe9875506e..841f7f804bb6 100644
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -248,6 +248,9 @@ struct ieee80211_bss_conf {
248 * @IEEE80211_TX_INTFL_RCALGO: mac80211 internal flag, do not test or 248 * @IEEE80211_TX_INTFL_RCALGO: mac80211 internal flag, do not test or
249 * set this flag in the driver; indicates that the rate control 249 * set this flag in the driver; indicates that the rate control
250 * algorithm was used and should be notified of TX status 250 * algorithm was used and should be notified of TX status
251 * @IEEE80211_TX_INTFL_NEED_TXPROCESSING: completely internal to mac80211,
252 * used to indicate that a pending frame requires TX processing before
253 * it can be sent out.
251 */ 254 */
252enum mac80211_tx_control_flags { 255enum mac80211_tx_control_flags {
253 IEEE80211_TX_CTL_REQ_TX_STATUS = BIT(0), 256 IEEE80211_TX_CTL_REQ_TX_STATUS = BIT(0),
@@ -264,6 +267,7 @@ enum mac80211_tx_control_flags {
264 IEEE80211_TX_STAT_AMPDU_NO_BACK = BIT(11), 267 IEEE80211_TX_STAT_AMPDU_NO_BACK = BIT(11),
265 IEEE80211_TX_CTL_RATE_CTRL_PROBE = BIT(12), 268 IEEE80211_TX_CTL_RATE_CTRL_PROBE = BIT(12),
266 IEEE80211_TX_INTFL_RCALGO = BIT(13), 269 IEEE80211_TX_INTFL_RCALGO = BIT(13),
270 IEEE80211_TX_INTFL_NEED_TXPROCESSING = BIT(14),
267}; 271};
268 272
269/** 273/**