linux/net/mac80211
Toke Høiland-Jørgensen 1866760096 mac80211: Add TXQ scheduling API
This adds an API to mac80211 to handle scheduling of TXQs. The interface
between driver and mac80211 for TXQ handling is changed by adding two new
functions: ieee80211_next_txq(), which will return the next TXQ to schedule
in the current round-robin rotation, and ieee80211_return_txq(), which the
driver uses to indicate that it has finished scheduling a TXQ (which will
then be put back in the scheduling rotation if it isn't empty).

The driver must call ieee80211_txq_schedule_start() at the start of each
scheduling session, and ieee80211_txq_schedule_end() at the end. The API
then guarantees that the same TXQ is not returned twice in the same
session (so a driver can loop on ieee80211_next_txq() without worrying
about breaking the loop.

Usage of the new API is optional, so drivers can be ported one at a time.
In this patch, the actual scheduling performed by mac80211 is simple
round-robin, but a subsequent commit adds airtime fairness awareness to the
scheduler.

Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk>
[minor kernel-doc fix, propagate sparse locking checks out]
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2019-01-19 09:24:12 +01:00
..
aead_api.c mac80211: use crypto_aead_authsize() 2017-10-11 15:46:45 +02:00
aead_api.h mac80211: aead api to reduce redundancy 2017-10-11 09:37:35 +02:00
aes_ccm.h mac80211: aead api to reduce redundancy 2017-10-11 09:37:35 +02:00
aes_cmac.c mac80211: aes-cmac: switch to shash CMAC driver 2017-02-08 09:19:33 +01:00
aes_cmac.h mac80211: aes-cmac: switch to shash CMAC driver 2017-02-08 09:19:33 +01:00
aes_gcm.h mac80211: aead api to reduce redundancy 2017-10-11 09:37:35 +02:00
aes_gmac.c mac80211: move struct aead_req off the stack 2016-10-17 16:14:04 +02:00
aes_gmac.h mac80211: move struct aead_req off the stack 2016-10-17 16:14:04 +02:00
agg-rx.c mac80211: add support for HE 2018-06-18 22:40:32 +02:00
agg-tx.c mac80211: Add TXQ scheduling API 2019-01-19 09:24:12 +01:00
cfg.c This time we have too many changes to list, highlights: 2018-12-19 08:36:18 -08:00
chan.c treewide: kzalloc() -> kcalloc() 2018-06-12 16:19:22 -07:00
debug.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
debugfs_key.c
debugfs_key.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
debugfs_netdev.c {nl,mac}80211: add dot11MeshConnectedToMeshGate to meshconf 2018-11-09 11:39:44 +01:00
debugfs_netdev.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
debugfs_sta.c mac80211: debugfs: avoid variable shadowing 2018-11-09 11:14:51 +01:00
debugfs_sta.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
debugfs.c mac80211: add an option for station management TXQ 2018-09-05 10:10:11 +02:00
debugfs.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
driver-ops.c mac80211: add offset_tsf driver op and use it for mesh 2016-09-30 13:45:44 +02:00
driver-ops.h mac80211: Add TXQ scheduling API 2019-01-19 09:24:12 +01:00
ethtool.c mac80211: use BIT_ULL for NL80211_STA_INFO_* attribute types 2018-06-29 09:53:09 +02:00
fils_aead.c Some more updates: 2017-02-10 14:31:51 -05:00
fils_aead.h mac80211: FILS AEAD protection for station mode association frames 2016-10-27 16:03:25 +02:00
he.c mac80211: add support for HE 2018-06-18 22:40:32 +02:00
ht.c ieee80211: bump IEEE80211_MAX_AMPDU_BUF to support HE 2018-06-18 22:39:39 +02:00
ibss.c mac80211: add ability to parse CCFS2 2018-09-05 10:03:14 +02:00
ieee80211_i.h mac80211: Add TXQ scheduling API 2019-01-19 09:24:12 +01:00
iface.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2018-12-20 11:53:36 -08:00
Kconfig mac80211: rewrite Kconfig text for mesh 2018-12-05 15:32:28 +01:00
key.c mac80211: remove unnecessary NULL check 2018-09-05 10:15:48 +02:00
key.h mac80211: aes-cmac: switch to shash CMAC driver 2017-02-08 09:19:33 +01:00
led.c leds: triggers: let struct led_trigger::activate() return an error code 2018-07-05 23:21:10 +02:00
led.h
main.c mac80211: Add TXQ scheduling API 2019-01-19 09:24:12 +01:00
Makefile mac80211: minstrel: merge with minstrel_ht, always enable VHT support 2018-10-11 16:01:01 +02:00
mesh_hwmp.c mac80211: fix TX status reporting for ieee80211s 2018-09-10 09:14:28 +02:00
mesh_pathtbl.c rhashtable: Change rhashtable_walk_start to return void 2017-12-11 09:58:38 -05:00
mesh_plink.c {nl,mac}80211: add rssi to mesh candidates 2018-11-09 11:41:20 +01:00
mesh_ps.c networking: make skb_put & friends return void pointers 2017-06-16 11:48:39 -04:00
mesh_sync.c mac80211: Use appropriate name for functions and messages 2016-12-13 16:22:27 +01:00
mesh.c {nl,mac}80211: add rssi to mesh candidates 2018-11-09 11:41:20 +01:00
mesh.h {nl,mac}80211: add rssi to mesh candidates 2018-11-09 11:41:20 +01:00
michael.c mac80211: add get TID helper 2018-02-22 21:13:03 +01:00
michael.h
mlme.c This time we have too many changes to list, highlights: 2018-12-19 08:36:18 -08:00
ocb.c mac80211: Convert timers to use timer_setup() 2017-11-20 16:55:11 +01:00
offchannel.c mac80211: support scan features for improved scan privacy 2018-06-15 13:34:40 +02:00
pm.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
rate.c mac80211: Dynamically set CoDel parameters per station 2017-05-17 16:03:40 +02:00
rate.h mac80211: minstrel: merge with minstrel_ht, always enable VHT support 2018-10-11 16:01:01 +02:00
rc80211_minstrel_debugfs.c mac80211: rc80211_minstrel: remove variance / stddev calculation 2018-10-11 16:01:05 +02:00
rc80211_minstrel_ht_debugfs.c mac80211: rc80211_minstrel: remove variance / stddev calculation 2018-10-11 16:01:05 +02:00
rc80211_minstrel_ht.c mac80211: minstrel: do not sample rates 3 times slower than max_prob_rate 2018-10-11 16:01:04 +02:00
rc80211_minstrel_ht.h mac80211: minstrel: reduce minstrel_mcs_groups size 2018-10-11 16:01:02 +02:00
rc80211_minstrel.c mac80211: rc80211_minstrel: remove variance / stddev calculation 2018-10-11 16:01:05 +02:00
rc80211_minstrel.h mac80211: rc80211_minstrel: remove variance / stddev calculation 2018-10-11 16:01:05 +02:00
rx.c This time we have too many changes to list, highlights: 2018-12-19 08:36:18 -08:00
scan.c mac80211: allow hardware scan to fall back to software 2018-11-09 11:37:04 +01:00
spectmgmt.c mac80211: add ability to parse CCFS2 2018-09-05 10:03:14 +02:00
sta_info.c mac80211: Add TXQ scheduling API 2019-01-19 09:24:12 +01:00
sta_info.h {nl,mac}80211: report gate connectivity in station info 2018-11-09 11:38:29 +01:00
status.c mac80211: free skb fraglist before freeing the skb 2018-12-19 09:40:17 +01:00
tdls.c mac80211: TDLS: fix skb queue/priority assignment 2018-09-10 09:13:32 +02:00
tkip.c
tkip.h
trace_msg.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
trace.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
trace.h mac80211: allow drivers to use peer measurement API 2018-11-09 11:20:34 +01:00
tx.c mac80211: Add TXQ scheduling API 2019-01-19 09:24:12 +01:00
util.c mac80211: update driver when MU EDCA params change 2018-12-18 14:19:10 +01:00
vht.c mac80211: copy VHT EXT NSS BW Support/Capable data to station 2018-09-05 10:03:14 +02:00
wep.c crypto: drop mask=CRYPTO_ALG_ASYNC from 'cipher' tfm allocations 2018-11-20 14:26:55 +08:00
wep.h
wme.c mac80211: mark expected switch fall-throughs 2017-12-11 12:16:04 +01:00
wme.h
wpa.c mac80211: add get TID helper 2018-02-22 21:13:03 +01:00
wpa.h