18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only 28c2ecf20Sopenharmony_ciconfig MAC80211 38c2ecf20Sopenharmony_ci tristate "Generic IEEE 802.11 Networking Stack (mac80211)" 48c2ecf20Sopenharmony_ci depends on CFG80211 58c2ecf20Sopenharmony_ci select CRYPTO 68c2ecf20Sopenharmony_ci select CRYPTO_LIB_ARC4 78c2ecf20Sopenharmony_ci select CRYPTO_AES 88c2ecf20Sopenharmony_ci select CRYPTO_CCM 98c2ecf20Sopenharmony_ci select CRYPTO_GCM 108c2ecf20Sopenharmony_ci select CRYPTO_CMAC 118c2ecf20Sopenharmony_ci select CRC32 128c2ecf20Sopenharmony_ci help 138c2ecf20Sopenharmony_ci This option enables the hardware independent IEEE 802.11 148c2ecf20Sopenharmony_ci networking stack. 158c2ecf20Sopenharmony_ci 168c2ecf20Sopenharmony_cicomment "CFG80211 needs to be enabled for MAC80211" 178c2ecf20Sopenharmony_ci depends on CFG80211=n 188c2ecf20Sopenharmony_ci 198c2ecf20Sopenharmony_ciif MAC80211 != n 208c2ecf20Sopenharmony_ci 218c2ecf20Sopenharmony_ciconfig MAC80211_HAS_RC 228c2ecf20Sopenharmony_ci bool 238c2ecf20Sopenharmony_ci 248c2ecf20Sopenharmony_ciconfig MAC80211_RC_MINSTREL 258c2ecf20Sopenharmony_ci bool "Minstrel" if EXPERT 268c2ecf20Sopenharmony_ci select MAC80211_HAS_RC 278c2ecf20Sopenharmony_ci default y 288c2ecf20Sopenharmony_ci help 298c2ecf20Sopenharmony_ci This option enables the 'minstrel' TX rate control algorithm 308c2ecf20Sopenharmony_ci 318c2ecf20Sopenharmony_cichoice 328c2ecf20Sopenharmony_ci prompt "Default rate control algorithm" 338c2ecf20Sopenharmony_ci depends on MAC80211_HAS_RC 348c2ecf20Sopenharmony_ci default MAC80211_RC_DEFAULT_MINSTREL 358c2ecf20Sopenharmony_ci help 368c2ecf20Sopenharmony_ci This option selects the default rate control algorithm 378c2ecf20Sopenharmony_ci mac80211 will use. Note that this default can still be 388c2ecf20Sopenharmony_ci overridden through the ieee80211_default_rc_algo module 398c2ecf20Sopenharmony_ci parameter if different algorithms are available. 408c2ecf20Sopenharmony_ci 418c2ecf20Sopenharmony_ciconfig MAC80211_RC_DEFAULT_MINSTREL 428c2ecf20Sopenharmony_ci bool "Minstrel" 438c2ecf20Sopenharmony_ci depends on MAC80211_RC_MINSTREL 448c2ecf20Sopenharmony_ci help 458c2ecf20Sopenharmony_ci Select Minstrel as the default rate control algorithm. 468c2ecf20Sopenharmony_ci 478c2ecf20Sopenharmony_ci 488c2ecf20Sopenharmony_ciendchoice 498c2ecf20Sopenharmony_ci 508c2ecf20Sopenharmony_ciconfig MAC80211_RC_DEFAULT 518c2ecf20Sopenharmony_ci string 528c2ecf20Sopenharmony_ci default "minstrel_ht" if MAC80211_RC_DEFAULT_MINSTREL 538c2ecf20Sopenharmony_ci default "" 548c2ecf20Sopenharmony_ci 558c2ecf20Sopenharmony_ciendif 568c2ecf20Sopenharmony_ci 578c2ecf20Sopenharmony_cicomment "Some wireless drivers require a rate control algorithm" 588c2ecf20Sopenharmony_ci depends on MAC80211 && MAC80211_HAS_RC=n 598c2ecf20Sopenharmony_ci 608c2ecf20Sopenharmony_ciconfig MAC80211_MESH 618c2ecf20Sopenharmony_ci bool "Enable mac80211 mesh networking support" 628c2ecf20Sopenharmony_ci depends on MAC80211 638c2ecf20Sopenharmony_ci help 648c2ecf20Sopenharmony_ci Select this option to enable 802.11 mesh operation in mac80211 658c2ecf20Sopenharmony_ci drivers that support it. 802.11 mesh connects multiple stations 668c2ecf20Sopenharmony_ci over (possibly multi-hop) wireless links to form a single logical 678c2ecf20Sopenharmony_ci LAN. 688c2ecf20Sopenharmony_ci 698c2ecf20Sopenharmony_ciconfig MAC80211_LEDS 708c2ecf20Sopenharmony_ci bool "Enable LED triggers" 718c2ecf20Sopenharmony_ci depends on MAC80211 728c2ecf20Sopenharmony_ci depends on LEDS_CLASS=y || LEDS_CLASS=MAC80211 738c2ecf20Sopenharmony_ci select LEDS_TRIGGERS 748c2ecf20Sopenharmony_ci help 758c2ecf20Sopenharmony_ci This option enables a few LED triggers for different 768c2ecf20Sopenharmony_ci packet receive/transmit events. 778c2ecf20Sopenharmony_ci 788c2ecf20Sopenharmony_ciconfig MAC80211_DEBUGFS 798c2ecf20Sopenharmony_ci bool "Export mac80211 internals in DebugFS" 808c2ecf20Sopenharmony_ci depends on MAC80211 && DEBUG_FS 818c2ecf20Sopenharmony_ci help 828c2ecf20Sopenharmony_ci Select this to see extensive information about 838c2ecf20Sopenharmony_ci the internal state of mac80211 in debugfs. 848c2ecf20Sopenharmony_ci 858c2ecf20Sopenharmony_ci Say N unless you know you need this. 868c2ecf20Sopenharmony_ci 878c2ecf20Sopenharmony_ciconfig MAC80211_MESSAGE_TRACING 888c2ecf20Sopenharmony_ci bool "Trace all mac80211 debug messages" 898c2ecf20Sopenharmony_ci depends on MAC80211 908c2ecf20Sopenharmony_ci help 918c2ecf20Sopenharmony_ci Select this option to have mac80211 register the 928c2ecf20Sopenharmony_ci mac80211_msg trace subsystem with tracepoints to 938c2ecf20Sopenharmony_ci collect all debugging messages, independent of 948c2ecf20Sopenharmony_ci printing them into the kernel log. 958c2ecf20Sopenharmony_ci 968c2ecf20Sopenharmony_ci The overhead in this option is that all the messages 978c2ecf20Sopenharmony_ci need to be present in the binary and formatted at 988c2ecf20Sopenharmony_ci runtime for tracing. 998c2ecf20Sopenharmony_ci 1008c2ecf20Sopenharmony_cimenuconfig MAC80211_DEBUG_MENU 1018c2ecf20Sopenharmony_ci bool "Select mac80211 debugging features" 1028c2ecf20Sopenharmony_ci depends on MAC80211 1038c2ecf20Sopenharmony_ci help 1048c2ecf20Sopenharmony_ci This option collects various mac80211 debug settings. 1058c2ecf20Sopenharmony_ci 1068c2ecf20Sopenharmony_ciconfig MAC80211_NOINLINE 1078c2ecf20Sopenharmony_ci bool "Do not inline TX/RX handlers" 1088c2ecf20Sopenharmony_ci depends on MAC80211_DEBUG_MENU 1098c2ecf20Sopenharmony_ci help 1108c2ecf20Sopenharmony_ci This option affects code generation in mac80211, when 1118c2ecf20Sopenharmony_ci selected some functions are marked "noinline" to allow 1128c2ecf20Sopenharmony_ci easier debugging of problems in the transmit and receive 1138c2ecf20Sopenharmony_ci paths. 1148c2ecf20Sopenharmony_ci 1158c2ecf20Sopenharmony_ci This option increases code size a bit and inserts a lot 1168c2ecf20Sopenharmony_ci of function calls in the code, but is otherwise safe to 1178c2ecf20Sopenharmony_ci enable. 1188c2ecf20Sopenharmony_ci 1198c2ecf20Sopenharmony_ci If unsure, say N unless you expect to be finding problems 1208c2ecf20Sopenharmony_ci in mac80211. 1218c2ecf20Sopenharmony_ci 1228c2ecf20Sopenharmony_ciconfig MAC80211_VERBOSE_DEBUG 1238c2ecf20Sopenharmony_ci bool "Verbose debugging output" 1248c2ecf20Sopenharmony_ci depends on MAC80211_DEBUG_MENU 1258c2ecf20Sopenharmony_ci help 1268c2ecf20Sopenharmony_ci Selecting this option causes mac80211 to print out 1278c2ecf20Sopenharmony_ci many debugging messages. It should not be selected 1288c2ecf20Sopenharmony_ci on production systems as some of the messages are 1298c2ecf20Sopenharmony_ci remotely triggerable. 1308c2ecf20Sopenharmony_ci 1318c2ecf20Sopenharmony_ci Do not select this option. 1328c2ecf20Sopenharmony_ci 1338c2ecf20Sopenharmony_ciconfig MAC80211_MLME_DEBUG 1348c2ecf20Sopenharmony_ci bool "Verbose managed MLME output" 1358c2ecf20Sopenharmony_ci depends on MAC80211_DEBUG_MENU 1368c2ecf20Sopenharmony_ci help 1378c2ecf20Sopenharmony_ci Selecting this option causes mac80211 to print out 1388c2ecf20Sopenharmony_ci debugging messages for the managed-mode MLME. It 1398c2ecf20Sopenharmony_ci should not be selected on production systems as some 1408c2ecf20Sopenharmony_ci of the messages are remotely triggerable. 1418c2ecf20Sopenharmony_ci 1428c2ecf20Sopenharmony_ci Do not select this option. 1438c2ecf20Sopenharmony_ci 1448c2ecf20Sopenharmony_ciconfig MAC80211_STA_DEBUG 1458c2ecf20Sopenharmony_ci bool "Verbose station debugging" 1468c2ecf20Sopenharmony_ci depends on MAC80211_DEBUG_MENU 1478c2ecf20Sopenharmony_ci help 1488c2ecf20Sopenharmony_ci Selecting this option causes mac80211 to print out 1498c2ecf20Sopenharmony_ci debugging messages for station addition/removal. 1508c2ecf20Sopenharmony_ci 1518c2ecf20Sopenharmony_ci Do not select this option. 1528c2ecf20Sopenharmony_ci 1538c2ecf20Sopenharmony_ciconfig MAC80211_HT_DEBUG 1548c2ecf20Sopenharmony_ci bool "Verbose HT debugging" 1558c2ecf20Sopenharmony_ci depends on MAC80211_DEBUG_MENU 1568c2ecf20Sopenharmony_ci help 1578c2ecf20Sopenharmony_ci This option enables 802.11n High Throughput features 1588c2ecf20Sopenharmony_ci debug tracing output. 1598c2ecf20Sopenharmony_ci 1608c2ecf20Sopenharmony_ci It should not be selected on production systems as some 1618c2ecf20Sopenharmony_ci of the messages are remotely triggerable. 1628c2ecf20Sopenharmony_ci 1638c2ecf20Sopenharmony_ci Do not select this option. 1648c2ecf20Sopenharmony_ci 1658c2ecf20Sopenharmony_ciconfig MAC80211_OCB_DEBUG 1668c2ecf20Sopenharmony_ci bool "Verbose OCB debugging" 1678c2ecf20Sopenharmony_ci depends on MAC80211_DEBUG_MENU 1688c2ecf20Sopenharmony_ci help 1698c2ecf20Sopenharmony_ci Selecting this option causes mac80211 to print out 1708c2ecf20Sopenharmony_ci very verbose OCB debugging messages. It should not 1718c2ecf20Sopenharmony_ci be selected on production systems as those messages 1728c2ecf20Sopenharmony_ci are remotely triggerable. 1738c2ecf20Sopenharmony_ci 1748c2ecf20Sopenharmony_ci Do not select this option. 1758c2ecf20Sopenharmony_ci 1768c2ecf20Sopenharmony_ciconfig MAC80211_IBSS_DEBUG 1778c2ecf20Sopenharmony_ci bool "Verbose IBSS debugging" 1788c2ecf20Sopenharmony_ci depends on MAC80211_DEBUG_MENU 1798c2ecf20Sopenharmony_ci help 1808c2ecf20Sopenharmony_ci Selecting this option causes mac80211 to print out 1818c2ecf20Sopenharmony_ci very verbose IBSS debugging messages. It should not 1828c2ecf20Sopenharmony_ci be selected on production systems as those messages 1838c2ecf20Sopenharmony_ci are remotely triggerable. 1848c2ecf20Sopenharmony_ci 1858c2ecf20Sopenharmony_ci Do not select this option. 1868c2ecf20Sopenharmony_ci 1878c2ecf20Sopenharmony_ciconfig MAC80211_PS_DEBUG 1888c2ecf20Sopenharmony_ci bool "Verbose powersave mode debugging" 1898c2ecf20Sopenharmony_ci depends on MAC80211_DEBUG_MENU 1908c2ecf20Sopenharmony_ci help 1918c2ecf20Sopenharmony_ci Selecting this option causes mac80211 to print out very 1928c2ecf20Sopenharmony_ci verbose power save mode debugging messages (when mac80211 1938c2ecf20Sopenharmony_ci is an AP and has power saving stations.) 1948c2ecf20Sopenharmony_ci It should not be selected on production systems as those 1958c2ecf20Sopenharmony_ci messages are remotely triggerable. 1968c2ecf20Sopenharmony_ci 1978c2ecf20Sopenharmony_ci Do not select this option. 1988c2ecf20Sopenharmony_ci 1998c2ecf20Sopenharmony_ciconfig MAC80211_MPL_DEBUG 2008c2ecf20Sopenharmony_ci bool "Verbose mesh peer link debugging" 2018c2ecf20Sopenharmony_ci depends on MAC80211_DEBUG_MENU 2028c2ecf20Sopenharmony_ci depends on MAC80211_MESH 2038c2ecf20Sopenharmony_ci help 2048c2ecf20Sopenharmony_ci Selecting this option causes mac80211 to print out very 2058c2ecf20Sopenharmony_ci verbose mesh peer link debugging messages (when mac80211 2068c2ecf20Sopenharmony_ci is taking part in a mesh network). 2078c2ecf20Sopenharmony_ci It should not be selected on production systems as those 2088c2ecf20Sopenharmony_ci messages are remotely triggerable. 2098c2ecf20Sopenharmony_ci 2108c2ecf20Sopenharmony_ci Do not select this option. 2118c2ecf20Sopenharmony_ci 2128c2ecf20Sopenharmony_ciconfig MAC80211_MPATH_DEBUG 2138c2ecf20Sopenharmony_ci bool "Verbose mesh path debugging" 2148c2ecf20Sopenharmony_ci depends on MAC80211_DEBUG_MENU 2158c2ecf20Sopenharmony_ci depends on MAC80211_MESH 2168c2ecf20Sopenharmony_ci help 2178c2ecf20Sopenharmony_ci Selecting this option causes mac80211 to print out very 2188c2ecf20Sopenharmony_ci verbose mesh path selection debugging messages (when mac80211 2198c2ecf20Sopenharmony_ci is taking part in a mesh network). 2208c2ecf20Sopenharmony_ci It should not be selected on production systems as those 2218c2ecf20Sopenharmony_ci messages are remotely triggerable. 2228c2ecf20Sopenharmony_ci 2238c2ecf20Sopenharmony_ci Do not select this option. 2248c2ecf20Sopenharmony_ci 2258c2ecf20Sopenharmony_ciconfig MAC80211_MHWMP_DEBUG 2268c2ecf20Sopenharmony_ci bool "Verbose mesh HWMP routing debugging" 2278c2ecf20Sopenharmony_ci depends on MAC80211_DEBUG_MENU 2288c2ecf20Sopenharmony_ci depends on MAC80211_MESH 2298c2ecf20Sopenharmony_ci help 2308c2ecf20Sopenharmony_ci Selecting this option causes mac80211 to print out very 2318c2ecf20Sopenharmony_ci verbose mesh routing (HWMP) debugging messages (when mac80211 2328c2ecf20Sopenharmony_ci is taking part in a mesh network). 2338c2ecf20Sopenharmony_ci It should not be selected on production systems as those 2348c2ecf20Sopenharmony_ci messages are remotely triggerable. 2358c2ecf20Sopenharmony_ci 2368c2ecf20Sopenharmony_ci Do not select this option. 2378c2ecf20Sopenharmony_ci 2388c2ecf20Sopenharmony_ciconfig MAC80211_MESH_SYNC_DEBUG 2398c2ecf20Sopenharmony_ci bool "Verbose mesh synchronization debugging" 2408c2ecf20Sopenharmony_ci depends on MAC80211_DEBUG_MENU 2418c2ecf20Sopenharmony_ci depends on MAC80211_MESH 2428c2ecf20Sopenharmony_ci help 2438c2ecf20Sopenharmony_ci Selecting this option causes mac80211 to print out very verbose mesh 2448c2ecf20Sopenharmony_ci synchronization debugging messages (when mac80211 is taking part in a 2458c2ecf20Sopenharmony_ci mesh network). 2468c2ecf20Sopenharmony_ci 2478c2ecf20Sopenharmony_ci Do not select this option. 2488c2ecf20Sopenharmony_ci 2498c2ecf20Sopenharmony_ciconfig MAC80211_MESH_CSA_DEBUG 2508c2ecf20Sopenharmony_ci bool "Verbose mesh channel switch debugging" 2518c2ecf20Sopenharmony_ci depends on MAC80211_DEBUG_MENU 2528c2ecf20Sopenharmony_ci depends on MAC80211_MESH 2538c2ecf20Sopenharmony_ci help 2548c2ecf20Sopenharmony_ci Selecting this option causes mac80211 to print out very verbose mesh 2558c2ecf20Sopenharmony_ci channel switch debugging messages (when mac80211 is taking part in a 2568c2ecf20Sopenharmony_ci mesh network). 2578c2ecf20Sopenharmony_ci 2588c2ecf20Sopenharmony_ci Do not select this option. 2598c2ecf20Sopenharmony_ci 2608c2ecf20Sopenharmony_ciconfig MAC80211_MESH_PS_DEBUG 2618c2ecf20Sopenharmony_ci bool "Verbose mesh powersave debugging" 2628c2ecf20Sopenharmony_ci depends on MAC80211_DEBUG_MENU 2638c2ecf20Sopenharmony_ci depends on MAC80211_MESH 2648c2ecf20Sopenharmony_ci help 2658c2ecf20Sopenharmony_ci Selecting this option causes mac80211 to print out very verbose mesh 2668c2ecf20Sopenharmony_ci powersave debugging messages (when mac80211 is taking part in a 2678c2ecf20Sopenharmony_ci mesh network). 2688c2ecf20Sopenharmony_ci 2698c2ecf20Sopenharmony_ci Do not select this option. 2708c2ecf20Sopenharmony_ci 2718c2ecf20Sopenharmony_ciconfig MAC80211_TDLS_DEBUG 2728c2ecf20Sopenharmony_ci bool "Verbose TDLS debugging" 2738c2ecf20Sopenharmony_ci depends on MAC80211_DEBUG_MENU 2748c2ecf20Sopenharmony_ci help 2758c2ecf20Sopenharmony_ci Selecting this option causes mac80211 to print out very 2768c2ecf20Sopenharmony_ci verbose TDLS selection debugging messages (when mac80211 2778c2ecf20Sopenharmony_ci is a TDLS STA). 2788c2ecf20Sopenharmony_ci It should not be selected on production systems as those 2798c2ecf20Sopenharmony_ci messages are remotely triggerable. 2808c2ecf20Sopenharmony_ci 2818c2ecf20Sopenharmony_ci Do not select this option. 2828c2ecf20Sopenharmony_ci 2838c2ecf20Sopenharmony_ciconfig MAC80211_DEBUG_COUNTERS 2848c2ecf20Sopenharmony_ci bool "Extra statistics for TX/RX debugging" 2858c2ecf20Sopenharmony_ci depends on MAC80211_DEBUG_MENU 2868c2ecf20Sopenharmony_ci depends on MAC80211_DEBUGFS 2878c2ecf20Sopenharmony_ci help 2888c2ecf20Sopenharmony_ci Selecting this option causes mac80211 to keep additional 2898c2ecf20Sopenharmony_ci and very verbose statistics about TX and RX handler use 2908c2ecf20Sopenharmony_ci as well as a few selected dot11 counters. These will be 2918c2ecf20Sopenharmony_ci exposed in debugfs. 2928c2ecf20Sopenharmony_ci 2938c2ecf20Sopenharmony_ci Note that some of the counters are not concurrency safe 2948c2ecf20Sopenharmony_ci and may thus not always be accurate. 2958c2ecf20Sopenharmony_ci 2968c2ecf20Sopenharmony_ci If unsure, say N. 2978c2ecf20Sopenharmony_ci 2988c2ecf20Sopenharmony_ciconfig MAC80211_STA_HASH_MAX_SIZE 2998c2ecf20Sopenharmony_ci int "Station hash table maximum size" if MAC80211_DEBUG_MENU 3008c2ecf20Sopenharmony_ci default 0 3018c2ecf20Sopenharmony_ci help 3028c2ecf20Sopenharmony_ci Setting this option to a low value (e.g. 4) allows testing the 3038c2ecf20Sopenharmony_ci hash table with collisions relatively deterministically (just 3048c2ecf20Sopenharmony_ci connect more stations than the number selected here.) 3058c2ecf20Sopenharmony_ci 3068c2ecf20Sopenharmony_ci If unsure, leave the default of 0. 307