linux/net/mac80211
Johannes Berg bd718fc11d mac80211: use STA info in rate_control_send_low()
Even if we have a station, we currently call rate_control_send_low()
with the NULL station unless further rate control (driver, minstrel)
has been initialized.

Change this so we can use more information about the station to use
a better rate. For example, when we associate with an AP, we will
now use the lowest rate it advertised as supported (that we can)
rather than the lowest mandatory rate. This aligns our behaviour
with most other 802.11 implementations.

To make this possible, we need to also ensure that we have non-zero
rates at all times, so in case we really have *nothing* pre-fill
the supp_rates bitmap with the very lowest mandatory bitmap (11b
and 11a on 2.4 and 5 GHz respectively).

Additionally, hostapd appears to be giving us an empty supported
rates bitmap (it can and should do better, since the STA must have
supported for at least the basic rates in the BSS), so ignore any
such bitmaps that would actually zero out the supp_rates, and in
that case just keep the pre-filled mandatory rates.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2019-06-14 14:17:37 +02: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 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2019-02-15 12:38:38 -08:00
cfg.c mac80211: use STA info in rate_control_send_low() 2019-06-14 14:17:37 +02:00
chan.c treewide: Add SPDX license identifier for missed files 2019-05-21 10:50:45 +02: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.c mac80211: AMPDU handling for Extended Key ID 2019-06-14 14:05:35 +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
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 mac80211: don't attempt to rename ERR_PTR() debugfs dirs 2019-04-23 13:47:05 +02: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: update HE IEs to D3.3 2019-02-22 13:46:55 +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
driver-ops.c mac80211: store tx power value from user to station 2019-04-26 13:02:11 +02:00
driver-ops.h Various updates, notably: 2019-04-26 16:05:52 -04: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 mac80211: fix RX STBC override byte order 2019-04-10 14:13:54 +02:00
ibss.c mac80211: pass bssids to elements parsing function 2019-02-08 13:51:50 +01:00
ieee80211_i.h mac80211: probe unexercised mesh links 2019-04-26 13:02:11 +02:00
iface.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2019-05-02 22:14:21 -04:00
Kconfig treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
key.c mac80211: AMPDU handling for Extended Key ID 2019-06-14 14:05:35 +02:00
key.h mac80211: IEEE 802.11 Extended Key ID support 2019-04-26 13:02:11 +02: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: Set CAN_REPLACE_PTK0 for SW crypto only drivers 2019-04-26 13:02:11 +02:00
Makefile mac80211: minstrel: merge with minstrel_ht, always enable VHT support 2018-10-11 16:01:01 +02:00
mesh.c mac80211: pass bssids to elements parsing function 2019-02-08 13:51:50 +01:00
mesh.h mac80211: Add support for NL80211_STA_INFO_AIRTIME_LINK_METRIC 2019-04-08 13:58:10 +02:00
mesh_hwmp.c mac80211: probe unexercised mesh links 2019-04-26 13:02:11 +02:00
mesh_pathtbl.c Various updates, notably: 2019-04-26 16:05:52 -04:00
mesh_plink.c mac80211: pass bssids to elements parsing function 2019-02-08 13:51:50 +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
michael.c mac80211: add get TID helper 2018-02-22 21:13:03 +01:00
michael.h
mlme.c mac80211: use STA info in rate_control_send_low() 2019-06-14 14:17:37 +02: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: use STA info in rate_control_send_low() 2019-06-14 14:17:37 +02:00
rate.h mac80211: minstrel: merge with minstrel_ht, always enable VHT support 2018-10-11 16:01:01 +02:00
rc80211_minstrel.c mac80211: call rate_control_send_low() internally 2019-06-14 14:17:37 +02:00
rc80211_minstrel.h mac80211: rc80211_minstrel: remove variance / stddev calculation 2018-10-11 16:01:05 +02:00
rc80211_minstrel_debugfs.c mac80211: rc80211_minstrel: remove variance / stddev calculation 2018-10-11 16:01:05 +02:00
rc80211_minstrel_ht.c mac80211: call rate_control_send_low() internally 2019-06-14 14:17:37 +02:00
rc80211_minstrel_ht.h mac80211: minstrel_ht: add support for rates with 4 spatial streams 2019-04-26 13:02:11 +02:00
rc80211_minstrel_ht_debugfs.c mac80211: minstrel_ht: add flag to indicate missing/inaccurate tx A-MPDU length 2019-01-19 09:56:56 +01:00
rx.c Various updates, notably: 2019-04-26 16:05:52 -04:00
scan.c mac80211: support multi-bssid 2019-02-08 13:56:37 +01:00
spectmgmt.c mac80211: support max channel switch time element 2019-02-22 13:42:54 +01:00
sta_info.c mac80211: use STA info in rate_control_send_low() 2019-06-14 14:17:37 +02:00
sta_info.h mac80211: fix missing/malformed documentation 2019-02-01 12:11:13 +01:00
status.c mac80211: Add airtime accounting and scheduling to TXQs 2019-01-19 09:31:43 +01:00
tdls.c mac80211: add option for setting control flags 2019-04-26 13:02:11 +02:00
tkip.c
tkip.h
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: store tx power value from user to station 2019-04-26 13:02:11 +02:00
trace_msg.h mac80211: Increase MAX_MSG_LEN 2019-03-29 11:20:36 +01:00
tx.c Various updates, notably: 2019-04-26 16:05:52 -04:00
util.c cfg80211: don't pass pointer to pointer unnecessarily 2019-04-26 13:02:11 +02: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: when using iTXQ, select the queue in ieee80211_subif_start_xmit 2019-04-26 13:02:11 +02:00
wme.h mac80211: when using iTXQ, select the queue in ieee80211_subif_start_xmit 2019-04-26 13:02:11 +02:00
wpa.c mac80211: add get TID helper 2018-02-22 21:13:03 +01:00
wpa.h