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 602f5ce793SJohannes Bergconfig MAC80211_MESH 61c8d10cbdSBob Copeland bool "Enable mac80211 mesh networking support" 6248f6edceSKees Cook depends on MAC80211 63a7f7f624SMasahiro Yamada help 64c8d10cbdSBob Copeland Select this option to enable 802.11 mesh operation in mac80211 65c8d10cbdSBob Copeland drivers that support it. 802.11 mesh connects multiple stations 66c8d10cbdSBob Copeland over (possibly multi-hop) wireless links to form a single logical 67c8d10cbdSBob Copeland LAN. 682f5ce793SJohannes Berg 69f0706e82SJiri Bencconfig MAC80211_LEDS 70f0706e82SJiri Benc bool "Enable LED triggers" 71bd8fd21dSLuca Tettamanti depends on MAC80211 72b64acb28SArnd Bergmann depends on LEDS_CLASS=y || LEDS_CLASS=MAC80211 73bd8fd21dSLuca Tettamanti select LEDS_TRIGGERS 74a7f7f624SMasahiro Yamada help 75f0706e82SJiri Benc This option enables a few LED triggers for different 76f0706e82SJiri Benc packet receive/transmit events. 77f0706e82SJiri Benc 78e9f207f0SJiri Bencconfig MAC80211_DEBUGFS 79e9f207f0SJiri Benc bool "Export mac80211 internals in DebugFS" 80e9f207f0SJiri Benc depends on MAC80211 && DEBUG_FS 81a7f7f624SMasahiro Yamada help 82e9f207f0SJiri Benc Select this to see extensive information about 83e9f207f0SJiri Benc the internal state of mac80211 in debugfs. 84e9f207f0SJiri Benc 85e9f207f0SJiri Benc Say N unless you know you need this. 86e9f207f0SJiri Benc 873fae0273SJohannes Bergconfig MAC80211_MESSAGE_TRACING 883fae0273SJohannes Berg bool "Trace all mac80211 debug messages" 89*021693daSGeert Uytterhoeven depends on MAC80211 && TRACING 90a7f7f624SMasahiro Yamada help 913fae0273SJohannes Berg Select this option to have mac80211 register the 923fae0273SJohannes Berg mac80211_msg trace subsystem with tracepoints to 933fae0273SJohannes Berg collect all debugging messages, independent of 943fae0273SJohannes Berg printing them into the kernel log. 953fae0273SJohannes Berg 963fae0273SJohannes Berg The overhead in this option is that all the messages 973fae0273SJohannes Berg need to be present in the binary and formatted at 983fae0273SJohannes Berg runtime for tracing. 993fae0273SJohannes Berg 100f4ea83ddSJohannes Bergmenuconfig MAC80211_DEBUG_MENU 101f4ea83ddSJohannes Berg bool "Select mac80211 debugging features" 102f4ea83ddSJohannes Berg depends on MAC80211 103a7f7f624SMasahiro Yamada help 104f4ea83ddSJohannes Berg This option collects various mac80211 debug settings. 105f4ea83ddSJohannes Berg 106f4ea83ddSJohannes Bergconfig MAC80211_NOINLINE 107f4ea83ddSJohannes Berg bool "Do not inline TX/RX handlers" 108f4ea83ddSJohannes Berg depends on MAC80211_DEBUG_MENU 109a7f7f624SMasahiro Yamada help 110f4ea83ddSJohannes Berg This option affects code generation in mac80211, when 111f4ea83ddSJohannes Berg selected some functions are marked "noinline" to allow 112f4ea83ddSJohannes Berg easier debugging of problems in the transmit and receive 113f4ea83ddSJohannes Berg paths. 114f0706e82SJiri Benc 115f4ea83ddSJohannes Berg This option increases code size a bit and inserts a lot 116f4ea83ddSJohannes Berg of function calls in the code, but is otherwise safe to 117f4ea83ddSJohannes Berg enable. 118f4ea83ddSJohannes Berg 119f4ea83ddSJohannes Berg If unsure, say N unless you expect to be finding problems 120f4ea83ddSJohannes Berg in mac80211. 121f4ea83ddSJohannes Berg 122f4ea83ddSJohannes Bergconfig MAC80211_VERBOSE_DEBUG 123f4ea83ddSJohannes Berg bool "Verbose debugging output" 124f4ea83ddSJohannes Berg depends on MAC80211_DEBUG_MENU 125a7f7f624SMasahiro Yamada help 126f4ea83ddSJohannes Berg Selecting this option causes mac80211 to print out 127f4ea83ddSJohannes Berg many debugging messages. It should not be selected 128f4ea83ddSJohannes Berg on production systems as some of the messages are 129f4ea83ddSJohannes Berg remotely triggerable. 130f4ea83ddSJohannes Berg 131f4ea83ddSJohannes Berg Do not select this option. 132f0706e82SJiri Benc 133bdcbd8e0SJohannes Bergconfig MAC80211_MLME_DEBUG 134bdcbd8e0SJohannes Berg bool "Verbose managed MLME output" 135bdcbd8e0SJohannes Berg depends on MAC80211_DEBUG_MENU 136a7f7f624SMasahiro Yamada help 137bdcbd8e0SJohannes Berg Selecting this option causes mac80211 to print out 138bdcbd8e0SJohannes Berg debugging messages for the managed-mode MLME. It 139bdcbd8e0SJohannes Berg should not be selected on production systems as some 140bdcbd8e0SJohannes Berg of the messages are remotely triggerable. 141bdcbd8e0SJohannes Berg 142bdcbd8e0SJohannes Berg Do not select this option. 143bdcbd8e0SJohannes Berg 144bdcbd8e0SJohannes Bergconfig MAC80211_STA_DEBUG 145bdcbd8e0SJohannes Berg bool "Verbose station debugging" 146bdcbd8e0SJohannes Berg depends on MAC80211_DEBUG_MENU 147a7f7f624SMasahiro Yamada help 148bdcbd8e0SJohannes Berg Selecting this option causes mac80211 to print out 149bdcbd8e0SJohannes Berg debugging messages for station addition/removal. 150bdcbd8e0SJohannes Berg 151bdcbd8e0SJohannes Berg Do not select this option. 152bdcbd8e0SJohannes Berg 15382b3cad9SRon Rindjunskyconfig MAC80211_HT_DEBUG 154f4ea83ddSJohannes Berg bool "Verbose HT debugging" 155f4ea83ddSJohannes Berg depends on MAC80211_DEBUG_MENU 156a7f7f624SMasahiro Yamada help 15782b3cad9SRon Rindjunsky This option enables 802.11n High Throughput features 15882b3cad9SRon Rindjunsky debug tracing output. 15982b3cad9SRon Rindjunsky 160f4ea83ddSJohannes Berg It should not be selected on production systems as some 161f4ea83ddSJohannes Berg of the messages are remotely triggerable. 16282b3cad9SRon Rindjunsky 163f4ea83ddSJohannes Berg Do not select this option. 164f4ea83ddSJohannes Berg 165239281f8SRostislav Lisovyconfig MAC80211_OCB_DEBUG 166239281f8SRostislav Lisovy bool "Verbose OCB debugging" 167239281f8SRostislav Lisovy depends on MAC80211_DEBUG_MENU 168a7f7f624SMasahiro Yamada help 169239281f8SRostislav Lisovy Selecting this option causes mac80211 to print out 170239281f8SRostislav Lisovy very verbose OCB debugging messages. It should not 171239281f8SRostislav Lisovy be selected on production systems as those messages 172239281f8SRostislav Lisovy are remotely triggerable. 173239281f8SRostislav Lisovy 174239281f8SRostislav Lisovy Do not select this option. 175239281f8SRostislav Lisovy 176f4ea83ddSJohannes Bergconfig MAC80211_IBSS_DEBUG 177f4ea83ddSJohannes Berg bool "Verbose IBSS debugging" 178f4ea83ddSJohannes Berg depends on MAC80211_DEBUG_MENU 179a7f7f624SMasahiro Yamada help 180f4ea83ddSJohannes Berg Selecting this option causes mac80211 to print out 181f4ea83ddSJohannes Berg very verbose IBSS debugging messages. It should not 182f4ea83ddSJohannes Berg be selected on production systems as those messages 183f4ea83ddSJohannes Berg are remotely triggerable. 184f4ea83ddSJohannes Berg 185f4ea83ddSJohannes Berg Do not select this option. 186f4ea83ddSJohannes Berg 187bdcbd8e0SJohannes Bergconfig MAC80211_PS_DEBUG 188f4ea83ddSJohannes Berg bool "Verbose powersave mode debugging" 189f4ea83ddSJohannes Berg depends on MAC80211_DEBUG_MENU 190a7f7f624SMasahiro Yamada help 191f4ea83ddSJohannes Berg Selecting this option causes mac80211 to print out very 192f4ea83ddSJohannes Berg verbose power save mode debugging messages (when mac80211 193f4ea83ddSJohannes Berg is an AP and has power saving stations.) 194f4ea83ddSJohannes Berg It should not be selected on production systems as those 195f4ea83ddSJohannes Berg messages are remotely triggerable. 196f4ea83ddSJohannes Berg 197f4ea83ddSJohannes Berg Do not select this option. 198f4ea83ddSJohannes Berg 199bdcbd8e0SJohannes Bergconfig MAC80211_MPL_DEBUG 200f4ea83ddSJohannes Berg bool "Verbose mesh peer link debugging" 201f4ea83ddSJohannes Berg depends on MAC80211_DEBUG_MENU 202f4ea83ddSJohannes Berg depends on MAC80211_MESH 203a7f7f624SMasahiro Yamada help 204f4ea83ddSJohannes Berg Selecting this option causes mac80211 to print out very 205f4ea83ddSJohannes Berg verbose mesh peer link debugging messages (when mac80211 206f4ea83ddSJohannes Berg is taking part in a mesh network). 207f4ea83ddSJohannes Berg It should not be selected on production systems as those 208f4ea83ddSJohannes Berg messages are remotely triggerable. 209f4ea83ddSJohannes Berg 210f4ea83ddSJohannes Berg Do not select this option. 211f0706e82SJiri Benc 212bdcbd8e0SJohannes Bergconfig MAC80211_MPATH_DEBUG 2137646887aSJavier Cardona bool "Verbose mesh path debugging" 2147646887aSJavier Cardona depends on MAC80211_DEBUG_MENU 2157646887aSJavier Cardona depends on MAC80211_MESH 216a7f7f624SMasahiro Yamada help 2177646887aSJavier Cardona Selecting this option causes mac80211 to print out very 2187646887aSJavier Cardona verbose mesh path selection debugging messages (when mac80211 2197646887aSJavier Cardona is taking part in a mesh network). 2207646887aSJavier Cardona It should not be selected on production systems as those 2217646887aSJavier Cardona messages are remotely triggerable. 2227646887aSJavier Cardona 2237646887aSJavier Cardona Do not select this option. 2247646887aSJavier Cardona 225bdcbd8e0SJohannes Bergconfig MAC80211_MHWMP_DEBUG 22627db2e42SRui Paulo bool "Verbose mesh HWMP routing debugging" 22727db2e42SRui Paulo depends on MAC80211_DEBUG_MENU 22827db2e42SRui Paulo depends on MAC80211_MESH 229a7f7f624SMasahiro Yamada help 23027db2e42SRui Paulo Selecting this option causes mac80211 to print out very 23127db2e42SRui Paulo verbose mesh routing (HWMP) debugging messages (when mac80211 23227db2e42SRui Paulo is taking part in a mesh network). 23327db2e42SRui Paulo It should not be selected on production systems as those 23427db2e42SRui Paulo messages are remotely triggerable. 23527db2e42SRui Paulo 23627db2e42SRui Paulo Do not select this option. 23727db2e42SRui Paulo 238bdcbd8e0SJohannes Bergconfig MAC80211_MESH_SYNC_DEBUG 239f53c6a0dSMarco Porsch bool "Verbose mesh synchronization debugging" 240dbf498fbSJavier Cardona depends on MAC80211_DEBUG_MENU 241dbf498fbSJavier Cardona depends on MAC80211_MESH 242a7f7f624SMasahiro Yamada help 243dbf498fbSJavier Cardona Selecting this option causes mac80211 to print out very verbose mesh 244dbf498fbSJavier Cardona synchronization debugging messages (when mac80211 is taking part in a 245dbf498fbSJavier Cardona mesh network). 246dbf498fbSJavier Cardona 247dbf498fbSJavier Cardona Do not select this option. 248dbf498fbSJavier Cardona 2498f2535b9SChun-Yeow Yeohconfig MAC80211_MESH_CSA_DEBUG 2508f2535b9SChun-Yeow Yeoh bool "Verbose mesh channel switch debugging" 2518f2535b9SChun-Yeow Yeoh depends on MAC80211_DEBUG_MENU 2528f2535b9SChun-Yeow Yeoh depends on MAC80211_MESH 253a7f7f624SMasahiro Yamada help 2548f2535b9SChun-Yeow Yeoh Selecting this option causes mac80211 to print out very verbose mesh 2558f2535b9SChun-Yeow Yeoh channel switch debugging messages (when mac80211 is taking part in a 2568f2535b9SChun-Yeow Yeoh mesh network). 2578f2535b9SChun-Yeow Yeoh 2588f2535b9SChun-Yeow Yeoh Do not select this option. 2598f2535b9SChun-Yeow Yeoh 2603f52b7e3SMarco Porschconfig MAC80211_MESH_PS_DEBUG 2613f52b7e3SMarco Porsch bool "Verbose mesh powersave debugging" 2623f52b7e3SMarco Porsch depends on MAC80211_DEBUG_MENU 2633f52b7e3SMarco Porsch depends on MAC80211_MESH 264a7f7f624SMasahiro Yamada help 2653f52b7e3SMarco Porsch Selecting this option causes mac80211 to print out very verbose mesh 2663f52b7e3SMarco Porsch powersave debugging messages (when mac80211 is taking part in a 2673f52b7e3SMarco Porsch mesh network). 2683f52b7e3SMarco Porsch 2693f52b7e3SMarco Porsch Do not select this option. 2703f52b7e3SMarco Porsch 271bdcbd8e0SJohannes Bergconfig MAC80211_TDLS_DEBUG 272dfe018bfSArik Nemtsov bool "Verbose TDLS debugging" 273dfe018bfSArik Nemtsov depends on MAC80211_DEBUG_MENU 274a7f7f624SMasahiro Yamada help 275dfe018bfSArik Nemtsov Selecting this option causes mac80211 to print out very 276dfe018bfSArik Nemtsov verbose TDLS selection debugging messages (when mac80211 277dfe018bfSArik Nemtsov is a TDLS STA). 278dfe018bfSArik Nemtsov It should not be selected on production systems as those 279dfe018bfSArik Nemtsov messages are remotely triggerable. 280dfe018bfSArik Nemtsov 281dfe018bfSArik Nemtsov Do not select this option. 282dfe018bfSArik Nemtsov 283f0706e82SJiri Bencconfig MAC80211_DEBUG_COUNTERS 284f0706e82SJiri Benc bool "Extra statistics for TX/RX debugging" 285f4ea83ddSJohannes Berg depends on MAC80211_DEBUG_MENU 286f4ea83ddSJohannes Berg depends on MAC80211_DEBUGFS 287a7f7f624SMasahiro Yamada help 288f4ea83ddSJohannes Berg Selecting this option causes mac80211 to keep additional 289f4ea83ddSJohannes Berg and very verbose statistics about TX and RX handler use 290c206ca67SJohannes Berg as well as a few selected dot11 counters. These will be 291c206ca67SJohannes Berg exposed in debugfs. 292c206ca67SJohannes Berg 293c206ca67SJohannes Berg Note that some of the counters are not concurrency safe 294c206ca67SJohannes Berg and may thus not always be accurate. 295f0706e82SJiri Benc 296f4ea83ddSJohannes Berg If unsure, say N. 297ebd82b39SJohannes Berg 298ebd82b39SJohannes Bergconfig MAC80211_STA_HASH_MAX_SIZE 299ebd82b39SJohannes Berg int "Station hash table maximum size" if MAC80211_DEBUG_MENU 300ebd82b39SJohannes Berg default 0 301a7f7f624SMasahiro Yamada help 302ebd82b39SJohannes Berg Setting this option to a low value (e.g. 4) allows testing the 303ebd82b39SJohannes Berg hash table with collisions relatively deterministically (just 304ebd82b39SJohannes Berg connect more stations than the number selected here.) 305ebd82b39SJohannes Berg 306ebd82b39SJohannes Berg If unsure, leave the default of 0. 307