mac80211: Dynamically set CoDel parameters per station
authorToke Høiland-Jørgensen <toke@toke.dk>
Thu, 6 Apr 2017 09:38:26 +0000 (11:38 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Wed, 17 May 2017 14:03:40 +0000 (16:03 +0200)
commit484a54c2e597dbc4ace79c1687022282905afba0
treecd1b98eb5968a6ad91165201d09b947232bf43f0
parentca8fe2506974ce090e2fd3b29ad7dd8c9532ca18
mac80211: Dynamically set CoDel parameters per station

CoDel can be too aggressive if a station sends at a very low rate,
leading reduced throughput. This gets worse the more stations are
present, as each station gets more bursty the longer the round-robin
scheduling between stations takes.

This adds dynamic adjustment of CoDel parameters per station. It uses
the rate selection information to estimate throughput and sets more
lenient CoDel parameters if the estimated throughput is below a
threshold (modified by the number of active stations).

A new callback is added that drivers can use to notify mac80211 about
changes in expected throughput, so the same adjustment can be made for
cards that implement rate control in firmware. Drivers that don't use
this will just get the default parameters.

Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk>
[remove currently unnecessary EXPORT_SYMBOL, fix kernel-doc, remove
inline annotation]
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
include/net/mac80211.h
net/mac80211/debugfs_sta.c
net/mac80211/rate.c
net/mac80211/sta_info.c
net/mac80211/sta_info.h
net/mac80211/tx.c