162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only 262306a36Sopenharmony_ciconfig MAC80211 362306a36Sopenharmony_ci tristate "Generic IEEE 802.11 Networking Stack (mac80211)" 462306a36Sopenharmony_ci depends on CFG80211 562306a36Sopenharmony_ci select CRYPTO 662306a36Sopenharmony_ci select CRYPTO_LIB_ARC4 762306a36Sopenharmony_ci select CRYPTO_AES 862306a36Sopenharmony_ci select CRYPTO_CCM 962306a36Sopenharmony_ci select CRYPTO_GCM 1062306a36Sopenharmony_ci select CRYPTO_CMAC 1162306a36Sopenharmony_ci select CRC32 1262306a36Sopenharmony_ci help 1362306a36Sopenharmony_ci This option enables the hardware independent IEEE 802.11 1462306a36Sopenharmony_ci networking stack. 1562306a36Sopenharmony_ci 1662306a36Sopenharmony_cicomment "CFG80211 needs to be enabled for MAC80211" 1762306a36Sopenharmony_ci depends on CFG80211=n 1862306a36Sopenharmony_ci 1962306a36Sopenharmony_ciif MAC80211 != n 2062306a36Sopenharmony_ci 2162306a36Sopenharmony_ciconfig MAC80211_HAS_RC 2262306a36Sopenharmony_ci bool 2362306a36Sopenharmony_ci 2462306a36Sopenharmony_ciconfig MAC80211_RC_MINSTREL 2562306a36Sopenharmony_ci bool "Minstrel" if EXPERT 2662306a36Sopenharmony_ci select MAC80211_HAS_RC 2762306a36Sopenharmony_ci default y 2862306a36Sopenharmony_ci help 2962306a36Sopenharmony_ci This option enables the 'minstrel' TX rate control algorithm 3062306a36Sopenharmony_ci 3162306a36Sopenharmony_cichoice 3262306a36Sopenharmony_ci prompt "Default rate control algorithm" 3362306a36Sopenharmony_ci depends on MAC80211_HAS_RC 3462306a36Sopenharmony_ci default MAC80211_RC_DEFAULT_MINSTREL 3562306a36Sopenharmony_ci help 3662306a36Sopenharmony_ci This option selects the default rate control algorithm 3762306a36Sopenharmony_ci mac80211 will use. Note that this default can still be 3862306a36Sopenharmony_ci overridden through the ieee80211_default_rc_algo module 3962306a36Sopenharmony_ci parameter if different algorithms are available. 4062306a36Sopenharmony_ci 4162306a36Sopenharmony_ciconfig MAC80211_RC_DEFAULT_MINSTREL 4262306a36Sopenharmony_ci bool "Minstrel" 4362306a36Sopenharmony_ci depends on MAC80211_RC_MINSTREL 4462306a36Sopenharmony_ci help 4562306a36Sopenharmony_ci Select Minstrel as the default rate control algorithm. 4662306a36Sopenharmony_ci 4762306a36Sopenharmony_ci 4862306a36Sopenharmony_ciendchoice 4962306a36Sopenharmony_ci 5062306a36Sopenharmony_ciconfig MAC80211_RC_DEFAULT 5162306a36Sopenharmony_ci string 5262306a36Sopenharmony_ci default "minstrel_ht" if MAC80211_RC_DEFAULT_MINSTREL 5362306a36Sopenharmony_ci default "" 5462306a36Sopenharmony_ci 5562306a36Sopenharmony_ciendif 5662306a36Sopenharmony_ci 5762306a36Sopenharmony_cicomment "Some wireless drivers require a rate control algorithm" 5862306a36Sopenharmony_ci depends on MAC80211 && MAC80211_HAS_RC=n 5962306a36Sopenharmony_ci 6062306a36Sopenharmony_ciconfig MAC80211_MESH 6162306a36Sopenharmony_ci bool "Enable mac80211 mesh networking support" 6262306a36Sopenharmony_ci depends on MAC80211 6362306a36Sopenharmony_ci help 6462306a36Sopenharmony_ci Select this option to enable 802.11 mesh operation in mac80211 6562306a36Sopenharmony_ci drivers that support it. 802.11 mesh connects multiple stations 6662306a36Sopenharmony_ci over (possibly multi-hop) wireless links to form a single logical 6762306a36Sopenharmony_ci LAN. 6862306a36Sopenharmony_ci 6962306a36Sopenharmony_ciconfig MAC80211_LEDS 7062306a36Sopenharmony_ci bool "Enable LED triggers" 7162306a36Sopenharmony_ci depends on MAC80211 7262306a36Sopenharmony_ci depends on LEDS_CLASS=y || LEDS_CLASS=MAC80211 7362306a36Sopenharmony_ci select LEDS_TRIGGERS 7462306a36Sopenharmony_ci help 7562306a36Sopenharmony_ci This option enables a few LED triggers for different 7662306a36Sopenharmony_ci packet receive/transmit events. 7762306a36Sopenharmony_ci 7862306a36Sopenharmony_ciconfig MAC80211_DEBUGFS 7962306a36Sopenharmony_ci bool "Export mac80211 internals in DebugFS" 8062306a36Sopenharmony_ci depends on MAC80211 && DEBUG_FS 8162306a36Sopenharmony_ci help 8262306a36Sopenharmony_ci Select this to see extensive information about 8362306a36Sopenharmony_ci the internal state of mac80211 in debugfs. 8462306a36Sopenharmony_ci 8562306a36Sopenharmony_ci Say N unless you know you need this. 8662306a36Sopenharmony_ci 8762306a36Sopenharmony_ciconfig MAC80211_MESSAGE_TRACING 8862306a36Sopenharmony_ci bool "Trace all mac80211 debug messages" 8962306a36Sopenharmony_ci depends on MAC80211 9062306a36Sopenharmony_ci help 9162306a36Sopenharmony_ci Select this option to have mac80211 register the 9262306a36Sopenharmony_ci mac80211_msg trace subsystem with tracepoints to 9362306a36Sopenharmony_ci collect all debugging messages, independent of 9462306a36Sopenharmony_ci printing them into the kernel log. 9562306a36Sopenharmony_ci 9662306a36Sopenharmony_ci The overhead in this option is that all the messages 9762306a36Sopenharmony_ci need to be present in the binary and formatted at 9862306a36Sopenharmony_ci runtime for tracing. 9962306a36Sopenharmony_ci 10062306a36Sopenharmony_cimenuconfig MAC80211_DEBUG_MENU 10162306a36Sopenharmony_ci bool "Select mac80211 debugging features" 10262306a36Sopenharmony_ci depends on MAC80211 10362306a36Sopenharmony_ci help 10462306a36Sopenharmony_ci This option collects various mac80211 debug settings. 10562306a36Sopenharmony_ci 10662306a36Sopenharmony_ciconfig MAC80211_NOINLINE 10762306a36Sopenharmony_ci bool "Do not inline TX/RX handlers" 10862306a36Sopenharmony_ci depends on MAC80211_DEBUG_MENU 10962306a36Sopenharmony_ci help 11062306a36Sopenharmony_ci This option affects code generation in mac80211, when 11162306a36Sopenharmony_ci selected some functions are marked "noinline" to allow 11262306a36Sopenharmony_ci easier debugging of problems in the transmit and receive 11362306a36Sopenharmony_ci paths. 11462306a36Sopenharmony_ci 11562306a36Sopenharmony_ci This option increases code size a bit and inserts a lot 11662306a36Sopenharmony_ci of function calls in the code, but is otherwise safe to 11762306a36Sopenharmony_ci enable. 11862306a36Sopenharmony_ci 11962306a36Sopenharmony_ci If unsure, say N unless you expect to be finding problems 12062306a36Sopenharmony_ci in mac80211. 12162306a36Sopenharmony_ci 12262306a36Sopenharmony_ciconfig MAC80211_VERBOSE_DEBUG 12362306a36Sopenharmony_ci bool "Verbose debugging output" 12462306a36Sopenharmony_ci depends on MAC80211_DEBUG_MENU 12562306a36Sopenharmony_ci help 12662306a36Sopenharmony_ci Selecting this option causes mac80211 to print out 12762306a36Sopenharmony_ci many debugging messages. It should not be selected 12862306a36Sopenharmony_ci on production systems as some of the messages are 12962306a36Sopenharmony_ci remotely triggerable. 13062306a36Sopenharmony_ci 13162306a36Sopenharmony_ci Do not select this option. 13262306a36Sopenharmony_ci 13362306a36Sopenharmony_ciconfig MAC80211_MLME_DEBUG 13462306a36Sopenharmony_ci bool "Verbose managed MLME output" 13562306a36Sopenharmony_ci depends on MAC80211_DEBUG_MENU 13662306a36Sopenharmony_ci help 13762306a36Sopenharmony_ci Selecting this option causes mac80211 to print out 13862306a36Sopenharmony_ci debugging messages for the managed-mode MLME. It 13962306a36Sopenharmony_ci should not be selected on production systems as some 14062306a36Sopenharmony_ci of the messages are remotely triggerable. 14162306a36Sopenharmony_ci 14262306a36Sopenharmony_ci Do not select this option. 14362306a36Sopenharmony_ci 14462306a36Sopenharmony_ciconfig MAC80211_STA_DEBUG 14562306a36Sopenharmony_ci bool "Verbose station debugging" 14662306a36Sopenharmony_ci depends on MAC80211_DEBUG_MENU 14762306a36Sopenharmony_ci help 14862306a36Sopenharmony_ci Selecting this option causes mac80211 to print out 14962306a36Sopenharmony_ci debugging messages for station addition/removal. 15062306a36Sopenharmony_ci 15162306a36Sopenharmony_ci Do not select this option. 15262306a36Sopenharmony_ci 15362306a36Sopenharmony_ciconfig MAC80211_HT_DEBUG 15462306a36Sopenharmony_ci bool "Verbose HT debugging" 15562306a36Sopenharmony_ci depends on MAC80211_DEBUG_MENU 15662306a36Sopenharmony_ci help 15762306a36Sopenharmony_ci This option enables 802.11n High Throughput features 15862306a36Sopenharmony_ci debug tracing output. 15962306a36Sopenharmony_ci 16062306a36Sopenharmony_ci It should not be selected on production systems as some 16162306a36Sopenharmony_ci of the messages are remotely triggerable. 16262306a36Sopenharmony_ci 16362306a36Sopenharmony_ci Do not select this option. 16462306a36Sopenharmony_ci 16562306a36Sopenharmony_ciconfig MAC80211_OCB_DEBUG 16662306a36Sopenharmony_ci bool "Verbose OCB debugging" 16762306a36Sopenharmony_ci depends on MAC80211_DEBUG_MENU 16862306a36Sopenharmony_ci help 16962306a36Sopenharmony_ci Selecting this option causes mac80211 to print out 17062306a36Sopenharmony_ci very verbose OCB debugging messages. It should not 17162306a36Sopenharmony_ci be selected on production systems as those messages 17262306a36Sopenharmony_ci are remotely triggerable. 17362306a36Sopenharmony_ci 17462306a36Sopenharmony_ci Do not select this option. 17562306a36Sopenharmony_ci 17662306a36Sopenharmony_ciconfig MAC80211_IBSS_DEBUG 17762306a36Sopenharmony_ci bool "Verbose IBSS debugging" 17862306a36Sopenharmony_ci depends on MAC80211_DEBUG_MENU 17962306a36Sopenharmony_ci help 18062306a36Sopenharmony_ci Selecting this option causes mac80211 to print out 18162306a36Sopenharmony_ci very verbose IBSS debugging messages. It should not 18262306a36Sopenharmony_ci be selected on production systems as those messages 18362306a36Sopenharmony_ci are remotely triggerable. 18462306a36Sopenharmony_ci 18562306a36Sopenharmony_ci Do not select this option. 18662306a36Sopenharmony_ci 18762306a36Sopenharmony_ciconfig MAC80211_PS_DEBUG 18862306a36Sopenharmony_ci bool "Verbose powersave mode debugging" 18962306a36Sopenharmony_ci depends on MAC80211_DEBUG_MENU 19062306a36Sopenharmony_ci help 19162306a36Sopenharmony_ci Selecting this option causes mac80211 to print out very 19262306a36Sopenharmony_ci verbose power save mode debugging messages (when mac80211 19362306a36Sopenharmony_ci is an AP and has power saving stations.) 19462306a36Sopenharmony_ci It should not be selected on production systems as those 19562306a36Sopenharmony_ci messages are remotely triggerable. 19662306a36Sopenharmony_ci 19762306a36Sopenharmony_ci Do not select this option. 19862306a36Sopenharmony_ci 19962306a36Sopenharmony_ciconfig MAC80211_MPL_DEBUG 20062306a36Sopenharmony_ci bool "Verbose mesh peer link debugging" 20162306a36Sopenharmony_ci depends on MAC80211_DEBUG_MENU 20262306a36Sopenharmony_ci depends on MAC80211_MESH 20362306a36Sopenharmony_ci help 20462306a36Sopenharmony_ci Selecting this option causes mac80211 to print out very 20562306a36Sopenharmony_ci verbose mesh peer link debugging messages (when mac80211 20662306a36Sopenharmony_ci is taking part in a mesh network). 20762306a36Sopenharmony_ci It should not be selected on production systems as those 20862306a36Sopenharmony_ci messages are remotely triggerable. 20962306a36Sopenharmony_ci 21062306a36Sopenharmony_ci Do not select this option. 21162306a36Sopenharmony_ci 21262306a36Sopenharmony_ciconfig MAC80211_MPATH_DEBUG 21362306a36Sopenharmony_ci bool "Verbose mesh path debugging" 21462306a36Sopenharmony_ci depends on MAC80211_DEBUG_MENU 21562306a36Sopenharmony_ci depends on MAC80211_MESH 21662306a36Sopenharmony_ci help 21762306a36Sopenharmony_ci Selecting this option causes mac80211 to print out very 21862306a36Sopenharmony_ci verbose mesh path selection debugging messages (when mac80211 21962306a36Sopenharmony_ci is taking part in a mesh network). 22062306a36Sopenharmony_ci It should not be selected on production systems as those 22162306a36Sopenharmony_ci messages are remotely triggerable. 22262306a36Sopenharmony_ci 22362306a36Sopenharmony_ci Do not select this option. 22462306a36Sopenharmony_ci 22562306a36Sopenharmony_ciconfig MAC80211_MHWMP_DEBUG 22662306a36Sopenharmony_ci bool "Verbose mesh HWMP routing debugging" 22762306a36Sopenharmony_ci depends on MAC80211_DEBUG_MENU 22862306a36Sopenharmony_ci depends on MAC80211_MESH 22962306a36Sopenharmony_ci help 23062306a36Sopenharmony_ci Selecting this option causes mac80211 to print out very 23162306a36Sopenharmony_ci verbose mesh routing (HWMP) debugging messages (when mac80211 23262306a36Sopenharmony_ci is taking part in a mesh network). 23362306a36Sopenharmony_ci It should not be selected on production systems as those 23462306a36Sopenharmony_ci messages are remotely triggerable. 23562306a36Sopenharmony_ci 23662306a36Sopenharmony_ci Do not select this option. 23762306a36Sopenharmony_ci 23862306a36Sopenharmony_ciconfig MAC80211_MESH_SYNC_DEBUG 23962306a36Sopenharmony_ci bool "Verbose mesh synchronization debugging" 24062306a36Sopenharmony_ci depends on MAC80211_DEBUG_MENU 24162306a36Sopenharmony_ci depends on MAC80211_MESH 24262306a36Sopenharmony_ci help 24362306a36Sopenharmony_ci Selecting this option causes mac80211 to print out very verbose mesh 24462306a36Sopenharmony_ci synchronization debugging messages (when mac80211 is taking part in a 24562306a36Sopenharmony_ci mesh network). 24662306a36Sopenharmony_ci 24762306a36Sopenharmony_ci Do not select this option. 24862306a36Sopenharmony_ci 24962306a36Sopenharmony_ciconfig MAC80211_MESH_CSA_DEBUG 25062306a36Sopenharmony_ci bool "Verbose mesh channel switch debugging" 25162306a36Sopenharmony_ci depends on MAC80211_DEBUG_MENU 25262306a36Sopenharmony_ci depends on MAC80211_MESH 25362306a36Sopenharmony_ci help 25462306a36Sopenharmony_ci Selecting this option causes mac80211 to print out very verbose mesh 25562306a36Sopenharmony_ci channel switch debugging messages (when mac80211 is taking part in a 25662306a36Sopenharmony_ci mesh network). 25762306a36Sopenharmony_ci 25862306a36Sopenharmony_ci Do not select this option. 25962306a36Sopenharmony_ci 26062306a36Sopenharmony_ciconfig MAC80211_MESH_PS_DEBUG 26162306a36Sopenharmony_ci bool "Verbose mesh powersave debugging" 26262306a36Sopenharmony_ci depends on MAC80211_DEBUG_MENU 26362306a36Sopenharmony_ci depends on MAC80211_MESH 26462306a36Sopenharmony_ci help 26562306a36Sopenharmony_ci Selecting this option causes mac80211 to print out very verbose mesh 26662306a36Sopenharmony_ci powersave debugging messages (when mac80211 is taking part in a 26762306a36Sopenharmony_ci mesh network). 26862306a36Sopenharmony_ci 26962306a36Sopenharmony_ci Do not select this option. 27062306a36Sopenharmony_ci 27162306a36Sopenharmony_ciconfig MAC80211_TDLS_DEBUG 27262306a36Sopenharmony_ci bool "Verbose TDLS debugging" 27362306a36Sopenharmony_ci depends on MAC80211_DEBUG_MENU 27462306a36Sopenharmony_ci help 27562306a36Sopenharmony_ci Selecting this option causes mac80211 to print out very 27662306a36Sopenharmony_ci verbose TDLS selection debugging messages (when mac80211 27762306a36Sopenharmony_ci is a TDLS STA). 27862306a36Sopenharmony_ci It should not be selected on production systems as those 27962306a36Sopenharmony_ci messages are remotely triggerable. 28062306a36Sopenharmony_ci 28162306a36Sopenharmony_ci Do not select this option. 28262306a36Sopenharmony_ci 28362306a36Sopenharmony_ciconfig MAC80211_DEBUG_COUNTERS 28462306a36Sopenharmony_ci bool "Extra statistics for TX/RX debugging" 28562306a36Sopenharmony_ci depends on MAC80211_DEBUG_MENU 28662306a36Sopenharmony_ci depends on MAC80211_DEBUGFS 28762306a36Sopenharmony_ci help 28862306a36Sopenharmony_ci Selecting this option causes mac80211 to keep additional 28962306a36Sopenharmony_ci and very verbose statistics about TX and RX handler use 29062306a36Sopenharmony_ci as well as a few selected dot11 counters. These will be 29162306a36Sopenharmony_ci exposed in debugfs. 29262306a36Sopenharmony_ci 29362306a36Sopenharmony_ci Note that some of the counters are not concurrency safe 29462306a36Sopenharmony_ci and may thus not always be accurate. 29562306a36Sopenharmony_ci 29662306a36Sopenharmony_ci If unsure, say N. 29762306a36Sopenharmony_ci 29862306a36Sopenharmony_ciconfig MAC80211_STA_HASH_MAX_SIZE 29962306a36Sopenharmony_ci int "Station hash table maximum size" if MAC80211_DEBUG_MENU 30062306a36Sopenharmony_ci default 0 30162306a36Sopenharmony_ci help 30262306a36Sopenharmony_ci Setting this option to a low value (e.g. 4) allows testing the 30362306a36Sopenharmony_ci hash table with collisions relatively deterministically (just 30462306a36Sopenharmony_ci connect more stations than the number selected here.) 30562306a36Sopenharmony_ci 30662306a36Sopenharmony_ci If unsure, leave the default of 0. 307