Johannes Berg wrote: > Hardware with AMPDU queues currently has broken aggregation. > > This patch fixes it by making all A-MPDUs go over the regular AC queues, > but keeping track of the hardware queues in mac80211. As a first rough > version, it actually stops the AC queue for extended periods of time, > which can be removed by adding buffering internal to mac80211, but is > currently not a huge problem because people rarely use multiple TIDs > that are in the same AC (and iwlwifi currently doesn't operate as AP). > > This is a short-term fix, my current medium-term plan, which I hope to > execute soon as well, but am not sure can finish before .30, looks like > this: > 1) rework the internal queuing layer in mac80211 that we use for > fragments if the driver stopped queue in the middle of a fragmented > frame to be able to queue more frames at once (rather than just a > single frame with its fragments) > 2) instead of stopping the entire AC queue, queue up the frames in a > per-station/per-TID queue during aggregation session initiation, > when the session has come up take all those frames and put them > onto the queue from 1) > 3) push the ampdu queue layer abstraction this patch introduces in > mac80211 into the driver, and remove the virtual queue stuff from > mac80211 again > > This plan will probably also affect ath9k in that mac80211 queues the > frames instead of passing them down, even when there are no ampdu queues. > > Signed-off-by: Johannes Berg <johannes@xxxxxxxxxxxxxxxx> Tested with ath9k, works okay. Sujith -- 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