mac80211: Add airtime account and scheduling to TXQs
authorToke Høiland-Jørgensen <toke@toke.dk>
Tue, 31 Oct 2017 11:27:46 +0000 (12:27 +0100)
committerJohannes Berg <johannes.berg@intel.com>
Mon, 11 Dec 2017 11:40:24 +0000 (12:40 +0100)
commitb0d52ad821843a6c5badebd80feef9f871904fa6
tree6962b03bd69935102294e2038ae615309091f3d4
parente937b8da5a591f141fe41aa48a2e898df9888c95
mac80211: Add airtime account and scheduling to TXQs

This adds airtime accounting and scheduling to the mac80211 TXQ
scheduler. A new hardware flag, AIRTIME_ACCOUNTING, is added that
drivers can set if they support reporting airtime usage of
transmissions. When this flag is set, mac80211 will expect the actual
airtime usage to be reported in the tx_time and rx_time fields of the
respective status structs.

When airtime information is present, mac80211 will schedule TXQs
(through ieee80211_next_txq()) in a way that enforces airtime fairness
between active stations. This scheduling works the same way as the ath9k
in-driver airtime fairness scheduling.

Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
include/net/mac80211.h
net/mac80211/debugfs.c
net/mac80211/debugfs_sta.c
net/mac80211/ieee80211_i.h
net/mac80211/main.c
net/mac80211/rx.c
net/mac80211/sta_info.c
net/mac80211/sta_info.h
net/mac80211/status.c
net/mac80211/tx.c