linux/net/mac80211
Julius Niedworok 276d9e82e0 mac80211: debugfs option to force TX status frames
At Technical University of Munich we use MAC 802.11 TX status frames to
perform several measurements in MAC 802.11 setups.

With ath based drivers this was possible until commit d94a461d7a
("ath9k: use ieee80211_tx_status_noskb where possible") as the driver
ignored the IEEE80211_TX_CTL_REQ_TX_STATUS flag and always delivered
tx_status frames. Since that commit, this behavior was changed and the
driver now adheres to IEEE80211_TX_CTL_REQ_TX_STATUS.

Due to performance reasons, IEEE80211_TX_CTL_REQ_TX_STATUS is not set for
data frames from interfaces in managed mode. Hence, frames that are sent
from a managed mode interface do never deliver tx_status frames. This
remains true even if a monitor mode interface (the measurement interface)
is added to the same ieee80211 physical device. Thus, there is no
possibility for receiving tx_status frames for frames sent on an interface
in managed mode, if the driver adheres to IEEE80211_TX_CTL_REQ_TX_STATUS.

In order to force delivery of tx_status frames for research and debugging
purposes, implement a debugfs option force_tx_status for ieee80211 physical
devices. When this option is set for a physical device,
IEEE80211_TX_CTL_REQ_TX_STATUS is enabled in all packets sent from that
device. This option can be set via
/sys/kernel/debug/ieee80211/<dev>/force_tx_status. The default is disabled.

Co-developed-by: Charlie Groh <ga58taw@mytum.de>
Signed-off-by: Charlie Groh <ga58taw@mytum.de>
Signed-off-by: Julius Niedworok <julius.n@gmx.net>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2019-04-26 13:02:11 +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: IEEE 802.11 Extended Key ID support 2019-04-26 13:02:11 +02: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 mac80211: move TKIP TX IVs to public part of key struct 2016-02-24 09:04:38 +01:00
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: 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
debugfs.c mac80211: debugfs option to force TX status frames 2019-04-26 13:02: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: notify driver on subsequent CSA beacons 2019-02-22 13:45:51 +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 mac80211: allow overriding HT STBC capabilities 2019-01-19 09:53:49 +01:00
ibss.c mac80211: pass bssids to elements parsing function 2019-02-08 13:51:50 +01:00
ieee80211_i.h mac80211: debugfs option to force TX status frames 2019-04-26 13:02:11 +02:00
iface.c mac80211: set NETIF_F_LLTX when using intermediate tx queues 2019-04-26 13:02:11 +02:00
Kconfig mac80211: rewrite Kconfig text for mesh 2018-12-05 15:32:28 +01:00
key.c mac80211: IEEE 802.11 Extended Key ID support 2019-04-26 13:02:11 +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: IEEE 802.11 Extended Key ID support 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_hwmp.c mac80211: mesh: drop redundant rcu_read_lock/unlock calls 2019-04-26 13:02:11 +02:00
mesh_pathtbl.c mac80211: mesh: drop redundant rcu_read_lock/unlock calls 2019-04-26 13:02:11 +02: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
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
michael.c mac80211: add get TID helper 2018-02-22 21:13:03 +01:00
michael.h
mlme.c mac80211/cfg80211: update bss channel on channel switch 2019-04-26 13:02:11 +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: 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: minstrel_ht: add flag to indicate missing/inaccurate tx A-MPDU length 2019-01-19 09:56:56 +01:00
rc80211_minstrel_ht.c mac80211: minstrel_ht: automatically calculate rate duration shift 2019-04-26 13:02:11 +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.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 mac80211: IEEE 802.11 Extended Key ID support 2019-04-26 13:02:11 +02: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: IEEE 802.11 Extended Key ID support 2019-04-26 13:02:11 +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: pass bssids to elements parsing function 2019-02-08 13:51:50 +01:00
tkip.c mac80211: move TKIP TX IVs to public part of key struct 2016-02-24 09:04:38 +01:00
tkip.h mac80211: move TKIP TX IVs to public part of key struct 2016-02-24 09:04:38 +01:00
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: notify driver on subsequent CSA beacons 2019-02-22 13:45:51 +01:00
tx.c mac80211: debugfs option to force TX status frames 2019-04-26 13:02:11 +02:00
util.c mac80211: support profile split between elements 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