1ec8f24b7SThomas Gleixner# SPDX-License-Identifier: GPL-2.0-only 2f0706e82SJiri Bencconfig MAC80211 3f0706e82SJiri Benc tristate "Generic IEEE 802.11 Networking Stack (mac80211)" 40aa8204bSJohannes Berg depends on CFG80211 5f0706e82SJiri Benc select CRYPTO 65fdb3735SArd Biesheuvel select CRYPTO_LIB_ARC4 7f0706e82SJiri Benc select CRYPTO_AES 87ec7c4a9SArd Biesheuvel select CRYPTO_CCM 900b9cfa3SJouni Malinen select CRYPTO_GCM 10fe8de3daSArd Biesheuvel select CRYPTO_CMAC 11f0706e82SJiri Benc select CRC32 12a7f7f624SMasahiro Yamada help 13f0706e82SJiri Benc This option enables the hardware independent IEEE 802.11 14f0706e82SJiri Benc networking stack. 15f0706e82SJiri Benc 160aa8204bSJohannes Bergcomment "CFG80211 needs to be enabled for MAC80211" 170aa8204bSJohannes Berg depends on CFG80211=n 180aa8204bSJohannes Berg 19abd8ea22SLuis R. Rodriguezif MAC80211 != n 20ac71c691SJohannes Berg 21c2ef355bSAndres Salomonconfig MAC80211_HAS_RC 22540005c7SJan Beulich bool 23c2ef355bSAndres Salomon 24cccf129fSFelix Fietkauconfig MAC80211_RC_MINSTREL 256a108a14SDavid Rientjes bool "Minstrel" if EXPERT 26c2ef355bSAndres Salomon select MAC80211_HAS_RC 278eb41c93SLuis R. Rodriguez default y 28a7f7f624SMasahiro Yamada help 29cccf129fSFelix Fietkau This option enables the 'minstrel' TX rate control algorithm 30cccf129fSFelix Fietkau 31c21b39acSStefano Briviochoice 32c21b39acSStefano Brivio prompt "Default rate control algorithm" 33c2ef355bSAndres Salomon depends on MAC80211_HAS_RC 348eb41c93SLuis R. Rodriguez default MAC80211_RC_DEFAULT_MINSTREL 35a7f7f624SMasahiro Yamada help 36c21b39acSStefano Brivio This option selects the default rate control algorithm 37c21b39acSStefano Brivio mac80211 will use. Note that this default can still be 38692105b8SMatt LaPlante overridden through the ieee80211_default_rc_algo module 394b475898SJohannes Berg parameter if different algorithms are available. 40ac71c691SJohannes Berg 41cccf129fSFelix Fietkauconfig MAC80211_RC_DEFAULT_MINSTREL 42cccf129fSFelix Fietkau bool "Minstrel" 43cccf129fSFelix Fietkau depends on MAC80211_RC_MINSTREL 44a7f7f624SMasahiro Yamada help 45cccf129fSFelix Fietkau Select Minstrel as the default rate control algorithm. 46cccf129fSFelix Fietkau 47cccf129fSFelix Fietkau 48c21b39acSStefano Brivioendchoice 49c21b39acSStefano Brivio 50c21b39acSStefano Brivioconfig MAC80211_RC_DEFAULT 51c21b39acSStefano Brivio string 52b1c4f683SFelix Fietkau default "minstrel_ht" if MAC80211_RC_DEFAULT_MINSTREL 53c21b39acSStefano Brivio default "" 54c21b39acSStefano Brivio 55abd8ea22SLuis R. Rodriguezendif 56ad018375SMattias Nissler 57c2ef355bSAndres Salomoncomment "Some wireless drivers require a rate control algorithm" 58e46395a4SJohannes Berg depends on MAC80211 && MAC80211_HAS_RC=n 59c2ef355bSAndres Salomon 60ffbd0c8cSJohannes Bergconfig MAC80211_KUNIT_TEST 61ffbd0c8cSJohannes Berg tristate "KUnit tests for mac80211" if !KUNIT_ALL_TESTS 62ffbd0c8cSJohannes Berg depends on KUNIT 63ffbd0c8cSJohannes Berg depends on MAC80211 64ffbd0c8cSJohannes Berg default KUNIT_ALL_TESTS 65ffbd0c8cSJohannes Berg help 66ffbd0c8cSJohannes Berg Enable this option to test mac80211 internals with kunit. 67ffbd0c8cSJohannes Berg 68ffbd0c8cSJohannes Berg If unsure, say N. 69ffbd0c8cSJohannes Berg 702f5ce793SJohannes Bergconfig MAC80211_MESH 71c8d10cbdSBob Copeland bool "Enable mac80211 mesh networking support" 7248f6edceSKees Cook depends on MAC80211 73a7f7f624SMasahiro Yamada help 74c8d10cbdSBob Copeland Select this option to enable 802.11 mesh operation in mac80211 75c8d10cbdSBob Copeland drivers that support it. 802.11 mesh connects multiple stations 76c8d10cbdSBob Copeland over (possibly multi-hop) wireless links to form a single logical 77c8d10cbdSBob Copeland LAN. 782f5ce793SJohannes Berg 79f0706e82SJiri Bencconfig MAC80211_LEDS 80f0706e82SJiri Benc bool "Enable LED triggers" 81bd8fd21dSLuca Tettamanti depends on MAC80211 82b64acb28SArnd Bergmann depends on LEDS_CLASS=y || LEDS_CLASS=MAC80211 83bd8fd21dSLuca Tettamanti select LEDS_TRIGGERS 84a7f7f624SMasahiro Yamada help 85f0706e82SJiri Benc This option enables a few LED triggers for different 86f0706e82SJiri Benc packet receive/transmit events. 87f0706e82SJiri Benc 88e9f207f0SJiri Bencconfig MAC80211_DEBUGFS 89e9f207f0SJiri Benc bool "Export mac80211 internals in DebugFS" 903d529cd1SJohannes Berg depends on MAC80211 && CFG80211_DEBUGFS 91a7f7f624SMasahiro Yamada help 92e9f207f0SJiri Benc Select this to see extensive information about 93e9f207f0SJiri Benc the internal state of mac80211 in debugfs. 94e9f207f0SJiri Benc 95e9f207f0SJiri Benc Say N unless you know you need this. 96e9f207f0SJiri Benc 973fae0273SJohannes Bergconfig MAC80211_MESSAGE_TRACING 983fae0273SJohannes Berg bool "Trace all mac80211 debug messages" 99*b3e046c3SGeert Uytterhoeven depends on MAC80211 && TRACING 100a7f7f624SMasahiro Yamada help 1013fae0273SJohannes Berg Select this option to have mac80211 register the 1023fae0273SJohannes Berg mac80211_msg trace subsystem with tracepoints to 1033fae0273SJohannes Berg collect all debugging messages, independent of 1043fae0273SJohannes Berg printing them into the kernel log. 1053fae0273SJohannes Berg 1063fae0273SJohannes Berg The overhead in this option is that all the messages 1073fae0273SJohannes Berg need to be present in the binary and formatted at 1083fae0273SJohannes Berg runtime for tracing. 1093fae0273SJohannes Berg 110f4ea83ddSJohannes Bergmenuconfig MAC80211_DEBUG_MENU 111f4ea83ddSJohannes Berg bool "Select mac80211 debugging features" 112f4ea83ddSJohannes Berg depends on MAC80211 113a7f7f624SMasahiro Yamada help 114f4ea83ddSJohannes Berg This option collects various mac80211 debug settings. 115f4ea83ddSJohannes Berg 116f4ea83ddSJohannes Bergconfig MAC80211_NOINLINE 117f4ea83ddSJohannes Berg bool "Do not inline TX/RX handlers" 118f4ea83ddSJohannes Berg depends on MAC80211_DEBUG_MENU 119a7f7f624SMasahiro Yamada help 120f4ea83ddSJohannes Berg This option affects code generation in mac80211, when 121f4ea83ddSJohannes Berg selected some functions are marked "noinline" to allow 122f4ea83ddSJohannes Berg easier debugging of problems in the transmit and receive 123f4ea83ddSJohannes Berg paths. 124f0706e82SJiri Benc 125f4ea83ddSJohannes Berg This option increases code size a bit and inserts a lot 126f4ea83ddSJohannes Berg of function calls in the code, but is otherwise safe to 127f4ea83ddSJohannes Berg enable. 128f4ea83ddSJohannes Berg 129f4ea83ddSJohannes Berg If unsure, say N unless you expect to be finding problems 130f4ea83ddSJohannes Berg in mac80211. 131f4ea83ddSJohannes Berg 132f4ea83ddSJohannes Bergconfig MAC80211_VERBOSE_DEBUG 133f4ea83ddSJohannes Berg bool "Verbose debugging output" 134f4ea83ddSJohannes Berg depends on MAC80211_DEBUG_MENU 135a7f7f624SMasahiro Yamada help 136f4ea83ddSJohannes Berg Selecting this option causes mac80211 to print out 137f4ea83ddSJohannes Berg many debugging messages. It should not be selected 138f4ea83ddSJohannes Berg on production systems as some of the messages are 139f4ea83ddSJohannes Berg remotely triggerable. 140f4ea83ddSJohannes Berg 141f4ea83ddSJohannes Berg Do not select this option. 142f0706e82SJiri Benc 143bdcbd8e0SJohannes Bergconfig MAC80211_MLME_DEBUG 144bdcbd8e0SJohannes Berg bool "Verbose managed MLME output" 145bdcbd8e0SJohannes Berg depends on MAC80211_DEBUG_MENU 146a7f7f624SMasahiro Yamada help 147bdcbd8e0SJohannes Berg Selecting this option causes mac80211 to print out 148bdcbd8e0SJohannes Berg debugging messages for the managed-mode MLME. It 149bdcbd8e0SJohannes Berg should not be selected on production systems as some 150bdcbd8e0SJohannes Berg of the messages are remotely triggerable. 151bdcbd8e0SJohannes Berg 152bdcbd8e0SJohannes Berg Do not select this option. 153bdcbd8e0SJohannes Berg 154bdcbd8e0SJohannes Bergconfig MAC80211_STA_DEBUG 155bdcbd8e0SJohannes Berg bool "Verbose station debugging" 156bdcbd8e0SJohannes Berg depends on MAC80211_DEBUG_MENU 157a7f7f624SMasahiro Yamada help 158bdcbd8e0SJohannes Berg Selecting this option causes mac80211 to print out 159bdcbd8e0SJohannes Berg debugging messages for station addition/removal. 160bdcbd8e0SJohannes Berg 161bdcbd8e0SJohannes Berg Do not select this option. 162bdcbd8e0SJohannes Berg 16382b3cad9SRon Rindjunskyconfig MAC80211_HT_DEBUG 164f4ea83ddSJohannes Berg bool "Verbose HT debugging" 165f4ea83ddSJohannes Berg depends on MAC80211_DEBUG_MENU 166a7f7f624SMasahiro Yamada help 16782b3cad9SRon Rindjunsky This option enables 802.11n High Throughput features 16882b3cad9SRon Rindjunsky debug tracing output. 16982b3cad9SRon Rindjunsky 170f4ea83ddSJohannes Berg It should not be selected on production systems as some 171f4ea83ddSJohannes Berg of the messages are remotely triggerable. 17282b3cad9SRon Rindjunsky 173f4ea83ddSJohannes Berg Do not select this option. 174f4ea83ddSJohannes Berg 175239281f8SRostislav Lisovyconfig MAC80211_OCB_DEBUG 176239281f8SRostislav Lisovy bool "Verbose OCB debugging" 177239281f8SRostislav Lisovy depends on MAC80211_DEBUG_MENU 178a7f7f624SMasahiro Yamada help 179239281f8SRostislav Lisovy Selecting this option causes mac80211 to print out 180239281f8SRostislav Lisovy very verbose OCB debugging messages. It should not 181239281f8SRostislav Lisovy be selected on production systems as those messages 182239281f8SRostislav Lisovy are remotely triggerable. 183239281f8SRostislav Lisovy 184239281f8SRostislav Lisovy Do not select this option. 185239281f8SRostislav Lisovy 186f4ea83ddSJohannes Bergconfig MAC80211_IBSS_DEBUG 187f4ea83ddSJohannes Berg bool "Verbose IBSS debugging" 188f4ea83ddSJohannes Berg depends on MAC80211_DEBUG_MENU 189a7f7f624SMasahiro Yamada help 190f4ea83ddSJohannes Berg Selecting this option causes mac80211 to print out 191f4ea83ddSJohannes Berg very verbose IBSS debugging messages. It should not 192f4ea83ddSJohannes Berg be selected on production systems as those messages 193f4ea83ddSJohannes Berg are remotely triggerable. 194f4ea83ddSJohannes Berg 195f4ea83ddSJohannes Berg Do not select this option. 196f4ea83ddSJohannes Berg 197bdcbd8e0SJohannes Bergconfig MAC80211_PS_DEBUG 198f4ea83ddSJohannes Berg bool "Verbose powersave mode debugging" 199f4ea83ddSJohannes Berg depends on MAC80211_DEBUG_MENU 200a7f7f624SMasahiro Yamada help 201f4ea83ddSJohannes Berg Selecting this option causes mac80211 to print out very 202f4ea83ddSJohannes Berg verbose power save mode debugging messages (when mac80211 203f4ea83ddSJohannes Berg is an AP and has power saving stations.) 204f4ea83ddSJohannes Berg It should not be selected on production systems as those 205f4ea83ddSJohannes Berg messages are remotely triggerable. 206f4ea83ddSJohannes Berg 207f4ea83ddSJohannes Berg Do not select this option. 208f4ea83ddSJohannes Berg 209bdcbd8e0SJohannes Bergconfig MAC80211_MPL_DEBUG 210f4ea83ddSJohannes Berg bool "Verbose mesh peer link debugging" 211f4ea83ddSJohannes Berg depends on MAC80211_DEBUG_MENU 212f4ea83ddSJohannes Berg depends on MAC80211_MESH 213a7f7f624SMasahiro Yamada help 214f4ea83ddSJohannes Berg Selecting this option causes mac80211 to print out very 215f4ea83ddSJohannes Berg verbose mesh peer link debugging messages (when mac80211 216f4ea83ddSJohannes Berg is taking part in a mesh network). 217f4ea83ddSJohannes Berg It should not be selected on production systems as those 218f4ea83ddSJohannes Berg messages are remotely triggerable. 219f4ea83ddSJohannes Berg 220f4ea83ddSJohannes Berg Do not select this option. 221f0706e82SJiri Benc 222bdcbd8e0SJohannes Bergconfig MAC80211_MPATH_DEBUG 2237646887aSJavier Cardona bool "Verbose mesh path debugging" 2247646887aSJavier Cardona depends on MAC80211_DEBUG_MENU 2257646887aSJavier Cardona depends on MAC80211_MESH 226a7f7f624SMasahiro Yamada help 2277646887aSJavier Cardona Selecting this option causes mac80211 to print out very 2287646887aSJavier Cardona verbose mesh path selection debugging messages (when mac80211 2297646887aSJavier Cardona is taking part in a mesh network). 2307646887aSJavier Cardona It should not be selected on production systems as those 2317646887aSJavier Cardona messages are remotely triggerable. 2327646887aSJavier Cardona 2337646887aSJavier Cardona Do not select this option. 2347646887aSJavier Cardona 235bdcbd8e0SJohannes Bergconfig MAC80211_MHWMP_DEBUG 23627db2e42SRui Paulo bool "Verbose mesh HWMP routing debugging" 23727db2e42SRui Paulo depends on MAC80211_DEBUG_MENU 23827db2e42SRui Paulo depends on MAC80211_MESH 239a7f7f624SMasahiro Yamada help 24027db2e42SRui Paulo Selecting this option causes mac80211 to print out very 24127db2e42SRui Paulo verbose mesh routing (HWMP) debugging messages (when mac80211 24227db2e42SRui Paulo is taking part in a mesh network). 24327db2e42SRui Paulo It should not be selected on production systems as those 24427db2e42SRui Paulo messages are remotely triggerable. 24527db2e42SRui Paulo 24627db2e42SRui Paulo Do not select this option. 24727db2e42SRui Paulo 248bdcbd8e0SJohannes Bergconfig MAC80211_MESH_SYNC_DEBUG 249f53c6a0dSMarco Porsch bool "Verbose mesh synchronization debugging" 250dbf498fbSJavier Cardona depends on MAC80211_DEBUG_MENU 251dbf498fbSJavier Cardona depends on MAC80211_MESH 252a7f7f624SMasahiro Yamada help 253dbf498fbSJavier Cardona Selecting this option causes mac80211 to print out very verbose mesh 254dbf498fbSJavier Cardona synchronization debugging messages (when mac80211 is taking part in a 255dbf498fbSJavier Cardona mesh network). 256dbf498fbSJavier Cardona 257dbf498fbSJavier Cardona Do not select this option. 258dbf498fbSJavier Cardona 2598f2535b9SChun-Yeow Yeohconfig MAC80211_MESH_CSA_DEBUG 2608f2535b9SChun-Yeow Yeoh bool "Verbose mesh channel switch debugging" 2618f2535b9SChun-Yeow Yeoh depends on MAC80211_DEBUG_MENU 2628f2535b9SChun-Yeow Yeoh depends on MAC80211_MESH 263a7f7f624SMasahiro Yamada help 2648f2535b9SChun-Yeow Yeoh Selecting this option causes mac80211 to print out very verbose mesh 2658f2535b9SChun-Yeow Yeoh channel switch debugging messages (when mac80211 is taking part in a 2668f2535b9SChun-Yeow Yeoh mesh network). 2678f2535b9SChun-Yeow Yeoh 2688f2535b9SChun-Yeow Yeoh Do not select this option. 2698f2535b9SChun-Yeow Yeoh 2703f52b7e3SMarco Porschconfig MAC80211_MESH_PS_DEBUG 2713f52b7e3SMarco Porsch bool "Verbose mesh powersave debugging" 2723f52b7e3SMarco Porsch depends on MAC80211_DEBUG_MENU 2733f52b7e3SMarco Porsch depends on MAC80211_MESH 274a7f7f624SMasahiro Yamada help 2753f52b7e3SMarco Porsch Selecting this option causes mac80211 to print out very verbose mesh 2763f52b7e3SMarco Porsch powersave debugging messages (when mac80211 is taking part in a 2773f52b7e3SMarco Porsch mesh network). 2783f52b7e3SMarco Porsch 2793f52b7e3SMarco Porsch Do not select this option. 2803f52b7e3SMarco Porsch 281bdcbd8e0SJohannes Bergconfig MAC80211_TDLS_DEBUG 282dfe018bfSArik Nemtsov bool "Verbose TDLS debugging" 283dfe018bfSArik Nemtsov depends on MAC80211_DEBUG_MENU 284a7f7f624SMasahiro Yamada help 285dfe018bfSArik Nemtsov Selecting this option causes mac80211 to print out very 286dfe018bfSArik Nemtsov verbose TDLS selection debugging messages (when mac80211 287dfe018bfSArik Nemtsov is a TDLS STA). 288dfe018bfSArik Nemtsov It should not be selected on production systems as those 289dfe018bfSArik Nemtsov messages are remotely triggerable. 290dfe018bfSArik Nemtsov 291dfe018bfSArik Nemtsov Do not select this option. 292dfe018bfSArik Nemtsov 293f0706e82SJiri Bencconfig MAC80211_DEBUG_COUNTERS 294f0706e82SJiri Benc bool "Extra statistics for TX/RX debugging" 295f4ea83ddSJohannes Berg depends on MAC80211_DEBUG_MENU 296f4ea83ddSJohannes Berg depends on MAC80211_DEBUGFS 297a7f7f624SMasahiro Yamada help 298f4ea83ddSJohannes Berg Selecting this option causes mac80211 to keep additional 299f4ea83ddSJohannes Berg and very verbose statistics about TX and RX handler use 300c206ca67SJohannes Berg as well as a few selected dot11 counters. These will be 301c206ca67SJohannes Berg exposed in debugfs. 302c206ca67SJohannes Berg 303c206ca67SJohannes Berg Note that some of the counters are not concurrency safe 304c206ca67SJohannes Berg and may thus not always be accurate. 305f0706e82SJiri Benc 306f4ea83ddSJohannes Berg If unsure, say N. 307ebd82b39SJohannes Berg 308ebd82b39SJohannes Bergconfig MAC80211_STA_HASH_MAX_SIZE 309ebd82b39SJohannes Berg int "Station hash table maximum size" if MAC80211_DEBUG_MENU 310ebd82b39SJohannes Berg default 0 311a7f7f624SMasahiro Yamada help 312ebd82b39SJohannes Berg Setting this option to a low value (e.g. 4) allows testing the 313ebd82b39SJohannes Berg hash table with collisions relatively deterministically (just 314ebd82b39SJohannes Berg connect more stations than the number selected here.) 315ebd82b39SJohannes Berg 316ebd82b39SJohannes Berg If unsure, leave the default of 0. 317