diff options
author | Johannes Berg <johannes@sipsolutions.net> | 2009-03-23 12:28:41 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2009-03-27 20:13:22 -0400 |
commit | cd8ffc800ce18e558335c4946b2217864fc16045 (patch) | |
tree | e9bb8c3d6011e89374f9df353ff1f15d45a63590 /include/net/mac80211.h | |
parent | a220858d30604902f650074bfac5a7598bc97ea4 (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.h | 4 |
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 | */ |
252 | enum mac80211_tx_control_flags { | 255 | enum 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 | /** |