• Felix Fietkau's avatar
    mac80211: add an intermediate software queue implementation · ba8c3d6f
    Felix Fietkau authored
    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 mac80211. Drivers can only dequeue packets by
    calling ieee80211_tx_dequeue. This makes it possible to add active queue
    management later without changing drivers using this code.
    This can also be used as a starting point to implement A-MSDU
    aggregation in a way that does not add artificially induced latency.
    Signed-off-by: default avatarFelix Fietkau <nbd@openwrt.org>
    [resolved minor context conflict, minor changes, endian annotations]
    Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>