This allows drivers to request per-vif and per-sta-tid queues from which
they can pull frames. This makes it easier to keep the hardware queues
short, and to improve fairness between clients and vifs.
The task of scheduling packet transmission is left up to the driver -
queueing is controlled by
On Tue, 2015-03-17 at 11:21 +0100, Felix Fietkau wrote:
+/**
+ * DOC: mac80211 software tx queueing
+ *
+ * mac80211 provides an optional intermediate queueing implementation
designed
+ * to allow the driver to keep hardware queues short and provide some
fairness
+ * between different
On 2015-03-17 12:24, Johannes Berg wrote:
On Tue, 2015-03-17 at 11:21 +0100, Felix Fietkau wrote:
@@ -1257,6 +1284,8 @@ struct ieee80211_vif {
u8 cab_queue;
u8 hw_queue[IEEE80211_NUM_ACS];
+struct ieee80211_txq *txq;
This is just one txq, the mcast one? Perhaps that should
On Tue, 2015-03-17 at 13:04 +0100, Felix Fietkau wrote:
@@ -1090,10 +1119,25 @@ void ieee80211_sta_ps_deliver_wakeup(struct
sta_info *sta)
[...]
+ drv_wake_tx_queue(local, txqi);
+ }
+ }
This could be an interesting race. If you wake the queue, and then