mac80211: Import airtime calculation code from mt76
authorToke Høiland-Jørgensen <toke@redhat.com>
Tue, 19 Nov 2019 06:06:08 +0000 (22:06 -0800)
committerJohannes Berg <johannes.berg@intel.com>
Fri, 22 Nov 2019 12:36:25 +0000 (13:36 +0100)
commitdb3e1c40cf2f973fbdd52ae0b59a9472b1c04f4a
tree31588dcb7a472dee404037552487ea1cbe3f9017
parentbc71d8b580ba81b55b6e15b1c0320632515b4bac
mac80211: Import airtime calculation code from mt76

Felix recently added code to calculate airtime of packets to the mt76
driver. Import this into mac80211 so we can use it for airtime queue limit
calculations.

The airtime.c file is copied verbatim from the mt76 driver, and adjusted to
be usable in mac80211. This involves:

- Switching to mac80211 data structures.
- Adding support for 160 MHz channels and HE mode.
- Moving the symbol and duration calculations around a bit to avoid
  rounding with the higher rates and longer symbol times used for HE rates.

The per-rate TX rate calculation is also split out to its own function so
it can be used directly for the AQL calculations later.

Signed-off-by: Toke Høiland-Jørgensen <toke@redhat.com>
Link: https://lore.kernel.org/r/20191119060610.76681-3-kyan@google.com
[fix HE_GROUP_IDX() to use 3 * bw, since there are 3 _gi values]
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
include/net/mac80211.h
net/mac80211/Makefile
net/mac80211/airtime.c [new file with mode: 0644]
net/mac80211/ieee80211_i.h