| # SPDX-License-Identifier: GPL-2.0-only | 
 | config MAC80211 | 
 | 	tristate "Generic IEEE 802.11 Networking Stack (mac80211)" | 
 | 	depends on CFG80211 | 
 | 	select CRYPTO | 
 | 	select CRYPTO_LIB_ARC4 | 
 | 	select CRYPTO_AES | 
 | 	select CRYPTO_CCM | 
 | 	select CRYPTO_GCM | 
 | 	select CRYPTO_CMAC | 
 | 	select CRC32 | 
 | 	help | 
 | 	  This option enables the hardware independent IEEE 802.11 | 
 | 	  networking stack. | 
 |  | 
 | comment "CFG80211 needs to be enabled for MAC80211" | 
 | 	depends on CFG80211=n | 
 |  | 
 | if MAC80211 != n | 
 |  | 
 | config MAC80211_HAS_RC | 
 | 	bool | 
 |  | 
 | config MAC80211_RC_MINSTREL | 
 | 	bool "Minstrel" if EXPERT | 
 | 	select MAC80211_HAS_RC | 
 | 	default y | 
 | 	help | 
 | 	  This option enables the 'minstrel' TX rate control algorithm | 
 |  | 
 | choice | 
 | 	prompt "Default rate control algorithm" | 
 | 	depends on MAC80211_HAS_RC | 
 | 	default MAC80211_RC_DEFAULT_MINSTREL | 
 | 	help | 
 | 	  This option selects the default rate control algorithm | 
 | 	  mac80211 will use. Note that this default can still be | 
 | 	  overridden through the ieee80211_default_rc_algo module | 
 | 	  parameter if different algorithms are available. | 
 |  | 
 | config MAC80211_RC_DEFAULT_MINSTREL | 
 | 	bool "Minstrel" | 
 | 	depends on MAC80211_RC_MINSTREL | 
 | 	help | 
 | 	  Select Minstrel as the default rate control algorithm. | 
 |  | 
 |  | 
 | endchoice | 
 |  | 
 | config MAC80211_RC_DEFAULT | 
 | 	string | 
 | 	default "minstrel_ht" if MAC80211_RC_DEFAULT_MINSTREL | 
 | 	default "" | 
 |  | 
 | endif | 
 |  | 
 | comment "Some wireless drivers require a rate control algorithm" | 
 | 	depends on MAC80211 && MAC80211_HAS_RC=n | 
 |  | 
 | config MAC80211_KUNIT_TEST | 
 | 	tristate "KUnit tests for mac80211" if !KUNIT_ALL_TESTS | 
 | 	depends on KUNIT | 
 | 	depends on MAC80211 | 
 | 	default KUNIT_ALL_TESTS | 
 | 	help | 
 | 	  Enable this option to test mac80211 internals with kunit. | 
 |  | 
 | 	  If unsure, say N. | 
 |  | 
 | config MAC80211_MESH | 
 | 	bool "Enable mac80211 mesh networking support" | 
 | 	depends on MAC80211 | 
 | 	help | 
 | 	  Select this option to enable 802.11 mesh operation in mac80211 | 
 | 	  drivers that support it.  802.11 mesh connects multiple stations | 
 | 	  over (possibly multi-hop) wireless links to form a single logical | 
 | 	  LAN. | 
 |  | 
 | config MAC80211_LEDS | 
 | 	bool "Enable LED triggers" | 
 | 	depends on MAC80211 | 
 | 	depends on LEDS_CLASS=y || LEDS_CLASS=MAC80211 | 
 | 	select LEDS_TRIGGERS | 
 | 	help | 
 | 	  This option enables a few LED triggers for different | 
 | 	  packet receive/transmit events. | 
 |  | 
 | config MAC80211_DEBUGFS | 
 | 	bool "Export mac80211 internals in DebugFS" | 
 | 	depends on MAC80211 && CFG80211_DEBUGFS | 
 | 	help | 
 | 	  Select this to see extensive information about | 
 | 	  the internal state of mac80211 in debugfs. | 
 |  | 
 | 	  Say N unless you know you need this. | 
 |  | 
 | config MAC80211_MESSAGE_TRACING | 
 | 	bool "Trace all mac80211 debug messages" | 
 | 	depends on MAC80211 && TRACING | 
 | 	help | 
 | 	  Select this option to have mac80211 register the | 
 | 	  mac80211_msg trace subsystem with tracepoints to | 
 | 	  collect all debugging messages, independent of | 
 | 	  printing them into the kernel log. | 
 |  | 
 | 	  The overhead in this option is that all the messages | 
 | 	  need to be present in the binary and formatted at | 
 | 	  runtime for tracing. | 
 |  | 
 | menuconfig MAC80211_DEBUG_MENU | 
 | 	bool "Select mac80211 debugging features" | 
 | 	depends on MAC80211 | 
 | 	help | 
 | 	  This option collects various mac80211 debug settings. | 
 |  | 
 | config MAC80211_NOINLINE | 
 | 	bool "Do not inline TX/RX handlers" | 
 | 	depends on MAC80211_DEBUG_MENU | 
 | 	help | 
 | 	  This option affects code generation in mac80211, when | 
 | 	  selected some functions are marked "noinline" to allow | 
 | 	  easier debugging of problems in the transmit and receive | 
 | 	  paths. | 
 |  | 
 | 	  This option increases code size a bit and inserts a lot | 
 | 	  of function calls in the code, but is otherwise safe to | 
 | 	  enable. | 
 |  | 
 | 	  If unsure, say N unless you expect to be finding problems | 
 | 	  in mac80211. | 
 |  | 
 | config MAC80211_VERBOSE_DEBUG | 
 | 	bool "Verbose debugging output" | 
 | 	depends on MAC80211_DEBUG_MENU | 
 | 	help | 
 | 	  Selecting this option causes mac80211 to print out | 
 | 	  many debugging messages. It should not be selected | 
 | 	  on production systems as some of the messages are | 
 | 	  remotely triggerable. | 
 |  | 
 | 	  Do not select this option. | 
 |  | 
 | config MAC80211_MLME_DEBUG | 
 | 	bool "Verbose managed MLME output" | 
 | 	depends on MAC80211_DEBUG_MENU | 
 | 	help | 
 | 	  Selecting this option causes mac80211 to print out | 
 | 	  debugging messages for the managed-mode MLME. It | 
 | 	  should not be selected on production systems as some | 
 | 	  of the messages are remotely triggerable. | 
 |  | 
 | 	  Do not select this option. | 
 |  | 
 | config MAC80211_STA_DEBUG | 
 | 	bool "Verbose station debugging" | 
 | 	depends on MAC80211_DEBUG_MENU | 
 | 	help | 
 | 	  Selecting this option causes mac80211 to print out | 
 | 	  debugging messages for station addition/removal. | 
 |  | 
 | 	  Do not select this option. | 
 |  | 
 | config MAC80211_HT_DEBUG | 
 | 	bool "Verbose HT debugging" | 
 | 	depends on MAC80211_DEBUG_MENU | 
 | 	help | 
 | 	  This option enables 802.11n High Throughput features | 
 | 	  debug tracing output. | 
 |  | 
 | 	  It should not be selected on production systems as some | 
 | 	  of the messages are remotely triggerable. | 
 |  | 
 | 	  Do not select this option. | 
 |  | 
 | config MAC80211_OCB_DEBUG | 
 | 	bool "Verbose OCB debugging" | 
 | 	depends on MAC80211_DEBUG_MENU | 
 | 	help | 
 | 	  Selecting this option causes mac80211 to print out | 
 | 	  very verbose OCB debugging messages. It should not | 
 | 	  be selected on production systems as those messages | 
 | 	  are remotely triggerable. | 
 |  | 
 | 	  Do not select this option. | 
 |  | 
 | config MAC80211_IBSS_DEBUG | 
 | 	bool "Verbose IBSS debugging" | 
 | 	depends on MAC80211_DEBUG_MENU | 
 | 	help | 
 | 	  Selecting this option causes mac80211 to print out | 
 | 	  very verbose IBSS debugging messages. It should not | 
 | 	  be selected on production systems as those messages | 
 | 	  are remotely triggerable. | 
 |  | 
 | 	  Do not select this option. | 
 |  | 
 | config MAC80211_PS_DEBUG | 
 | 	bool "Verbose powersave mode debugging" | 
 | 	depends on MAC80211_DEBUG_MENU | 
 | 	help | 
 | 	  Selecting this option causes mac80211 to print out very | 
 | 	  verbose power save mode debugging messages (when mac80211 | 
 | 	  is an AP and has power saving stations.) | 
 | 	  It should not be selected on production systems as those | 
 | 	  messages are remotely triggerable. | 
 |  | 
 | 	  Do not select this option. | 
 |  | 
 | config MAC80211_MPL_DEBUG | 
 | 	bool "Verbose mesh peer link debugging" | 
 | 	depends on MAC80211_DEBUG_MENU | 
 | 	depends on MAC80211_MESH | 
 | 	help | 
 | 	  Selecting this option causes mac80211 to print out very | 
 | 	  verbose mesh peer link debugging messages (when mac80211 | 
 | 	  is taking part in a mesh network). | 
 | 	  It should not be selected on production systems as those | 
 | 	  messages are remotely triggerable. | 
 |  | 
 | 	  Do not select this option. | 
 |  | 
 | config MAC80211_MPATH_DEBUG | 
 | 	bool "Verbose mesh path debugging" | 
 | 	depends on MAC80211_DEBUG_MENU | 
 | 	depends on MAC80211_MESH | 
 | 	help | 
 | 	  Selecting this option causes mac80211 to print out very | 
 | 	  verbose mesh path selection debugging messages (when mac80211 | 
 | 	  is taking part in a mesh network). | 
 | 	  It should not be selected on production systems as those | 
 | 	  messages are remotely triggerable. | 
 |  | 
 | 	  Do not select this option. | 
 |  | 
 | config MAC80211_MHWMP_DEBUG | 
 | 	bool "Verbose mesh HWMP routing debugging" | 
 | 	depends on MAC80211_DEBUG_MENU | 
 | 	depends on MAC80211_MESH | 
 | 	help | 
 | 	  Selecting this option causes mac80211 to print out very | 
 | 	  verbose mesh routing (HWMP) debugging messages (when mac80211 | 
 | 	  is taking part in a mesh network). | 
 | 	  It should not be selected on production systems as those | 
 | 	  messages are remotely triggerable. | 
 |  | 
 | 	  Do not select this option. | 
 |  | 
 | config MAC80211_MESH_SYNC_DEBUG | 
 | 	bool "Verbose mesh synchronization debugging" | 
 | 	depends on MAC80211_DEBUG_MENU | 
 | 	depends on MAC80211_MESH | 
 | 	help | 
 | 	  Selecting this option causes mac80211 to print out very verbose mesh | 
 | 	  synchronization debugging messages (when mac80211 is taking part in a | 
 | 	  mesh network). | 
 |  | 
 | 	  Do not select this option. | 
 |  | 
 | config MAC80211_MESH_CSA_DEBUG | 
 | 	bool "Verbose mesh channel switch debugging" | 
 | 	depends on MAC80211_DEBUG_MENU | 
 | 	depends on MAC80211_MESH | 
 | 	help | 
 | 	  Selecting this option causes mac80211 to print out very verbose mesh | 
 | 	  channel switch debugging messages (when mac80211 is taking part in a | 
 | 	  mesh network). | 
 |  | 
 | 	  Do not select this option. | 
 |  | 
 | config MAC80211_MESH_PS_DEBUG | 
 | 	bool "Verbose mesh powersave debugging" | 
 | 	depends on MAC80211_DEBUG_MENU | 
 | 	depends on MAC80211_MESH | 
 | 	help | 
 | 	  Selecting this option causes mac80211 to print out very verbose mesh | 
 | 	  powersave debugging messages (when mac80211 is taking part in a | 
 | 	  mesh network). | 
 |  | 
 | 	  Do not select this option. | 
 |  | 
 | config MAC80211_TDLS_DEBUG | 
 | 	bool "Verbose TDLS debugging" | 
 | 	depends on MAC80211_DEBUG_MENU | 
 | 	help | 
 | 	  Selecting this option causes mac80211 to print out very | 
 | 	  verbose TDLS selection debugging messages (when mac80211 | 
 | 	  is a TDLS STA). | 
 | 	  It should not be selected on production systems as those | 
 | 	  messages are remotely triggerable. | 
 |  | 
 | 	  Do not select this option. | 
 |  | 
 | config MAC80211_DEBUG_COUNTERS | 
 | 	bool "Extra statistics for TX/RX debugging" | 
 | 	depends on MAC80211_DEBUG_MENU | 
 | 	depends on MAC80211_DEBUGFS | 
 | 	help | 
 | 	  Selecting this option causes mac80211 to keep additional | 
 | 	  and very verbose statistics about TX and RX handler use | 
 | 	  as well as a few selected dot11 counters. These will be | 
 | 	  exposed in debugfs. | 
 |  | 
 | 	  Note that some of the counters are not concurrency safe | 
 | 	  and may thus not always be accurate. | 
 |  | 
 | 	  If unsure, say N. | 
 |  | 
 | config MAC80211_STA_HASH_MAX_SIZE | 
 | 	int "Station hash table maximum size" if MAC80211_DEBUG_MENU | 
 | 	default 0 | 
 | 	help | 
 | 	  Setting this option to a low value (e.g. 4) allows testing the | 
 | 	  hash table with collisions relatively deterministically (just | 
 | 	  connect more stations than the number selected here.) | 
 |  | 
 | 	  If unsure, leave the default of 0. |