1*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0-only 2*4882a593Smuzhiyunconfig MAC80211 3*4882a593Smuzhiyun tristate "Generic IEEE 802.11 Networking Stack (mac80211)" 4*4882a593Smuzhiyun depends on CFG80211 5*4882a593Smuzhiyun select CRYPTO 6*4882a593Smuzhiyun select CRYPTO_LIB_ARC4 7*4882a593Smuzhiyun select CRYPTO_AES 8*4882a593Smuzhiyun select CRYPTO_CCM 9*4882a593Smuzhiyun select CRYPTO_GCM 10*4882a593Smuzhiyun select CRYPTO_CMAC 11*4882a593Smuzhiyun select CRC32 12*4882a593Smuzhiyun help 13*4882a593Smuzhiyun This option enables the hardware independent IEEE 802.11 14*4882a593Smuzhiyun networking stack. 15*4882a593Smuzhiyun 16*4882a593Smuzhiyuncomment "CFG80211 needs to be enabled for MAC80211" 17*4882a593Smuzhiyun depends on CFG80211=n 18*4882a593Smuzhiyun 19*4882a593Smuzhiyunif MAC80211 != n 20*4882a593Smuzhiyun 21*4882a593Smuzhiyunconfig MAC80211_HAS_RC 22*4882a593Smuzhiyun bool 23*4882a593Smuzhiyun 24*4882a593Smuzhiyunconfig MAC80211_RC_MINSTREL 25*4882a593Smuzhiyun bool "Minstrel" if EXPERT 26*4882a593Smuzhiyun select MAC80211_HAS_RC 27*4882a593Smuzhiyun default y 28*4882a593Smuzhiyun help 29*4882a593Smuzhiyun This option enables the 'minstrel' TX rate control algorithm 30*4882a593Smuzhiyun 31*4882a593Smuzhiyunchoice 32*4882a593Smuzhiyun prompt "Default rate control algorithm" 33*4882a593Smuzhiyun depends on MAC80211_HAS_RC 34*4882a593Smuzhiyun default MAC80211_RC_DEFAULT_MINSTREL 35*4882a593Smuzhiyun help 36*4882a593Smuzhiyun This option selects the default rate control algorithm 37*4882a593Smuzhiyun mac80211 will use. Note that this default can still be 38*4882a593Smuzhiyun overridden through the ieee80211_default_rc_algo module 39*4882a593Smuzhiyun parameter if different algorithms are available. 40*4882a593Smuzhiyun 41*4882a593Smuzhiyunconfig MAC80211_RC_DEFAULT_MINSTREL 42*4882a593Smuzhiyun bool "Minstrel" 43*4882a593Smuzhiyun depends on MAC80211_RC_MINSTREL 44*4882a593Smuzhiyun help 45*4882a593Smuzhiyun Select Minstrel as the default rate control algorithm. 46*4882a593Smuzhiyun 47*4882a593Smuzhiyun 48*4882a593Smuzhiyunendchoice 49*4882a593Smuzhiyun 50*4882a593Smuzhiyunconfig MAC80211_RC_DEFAULT 51*4882a593Smuzhiyun string 52*4882a593Smuzhiyun default "minstrel_ht" if MAC80211_RC_DEFAULT_MINSTREL 53*4882a593Smuzhiyun default "" 54*4882a593Smuzhiyun 55*4882a593Smuzhiyunendif 56*4882a593Smuzhiyun 57*4882a593Smuzhiyuncomment "Some wireless drivers require a rate control algorithm" 58*4882a593Smuzhiyun depends on MAC80211 && MAC80211_HAS_RC=n 59*4882a593Smuzhiyun 60*4882a593Smuzhiyunconfig MAC80211_MESH 61*4882a593Smuzhiyun bool "Enable mac80211 mesh networking support" 62*4882a593Smuzhiyun depends on MAC80211 63*4882a593Smuzhiyun help 64*4882a593Smuzhiyun Select this option to enable 802.11 mesh operation in mac80211 65*4882a593Smuzhiyun drivers that support it. 802.11 mesh connects multiple stations 66*4882a593Smuzhiyun over (possibly multi-hop) wireless links to form a single logical 67*4882a593Smuzhiyun LAN. 68*4882a593Smuzhiyun 69*4882a593Smuzhiyunconfig MAC80211_LEDS 70*4882a593Smuzhiyun bool "Enable LED triggers" 71*4882a593Smuzhiyun depends on MAC80211 72*4882a593Smuzhiyun depends on LEDS_CLASS=y || LEDS_CLASS=MAC80211 73*4882a593Smuzhiyun select LEDS_TRIGGERS 74*4882a593Smuzhiyun help 75*4882a593Smuzhiyun This option enables a few LED triggers for different 76*4882a593Smuzhiyun packet receive/transmit events. 77*4882a593Smuzhiyun 78*4882a593Smuzhiyunconfig MAC80211_DEBUGFS 79*4882a593Smuzhiyun bool "Export mac80211 internals in DebugFS" 80*4882a593Smuzhiyun depends on MAC80211 && DEBUG_FS 81*4882a593Smuzhiyun help 82*4882a593Smuzhiyun Select this to see extensive information about 83*4882a593Smuzhiyun the internal state of mac80211 in debugfs. 84*4882a593Smuzhiyun 85*4882a593Smuzhiyun Say N unless you know you need this. 86*4882a593Smuzhiyun 87*4882a593Smuzhiyunconfig MAC80211_MESSAGE_TRACING 88*4882a593Smuzhiyun bool "Trace all mac80211 debug messages" 89*4882a593Smuzhiyun depends on MAC80211 90*4882a593Smuzhiyun help 91*4882a593Smuzhiyun Select this option to have mac80211 register the 92*4882a593Smuzhiyun mac80211_msg trace subsystem with tracepoints to 93*4882a593Smuzhiyun collect all debugging messages, independent of 94*4882a593Smuzhiyun printing them into the kernel log. 95*4882a593Smuzhiyun 96*4882a593Smuzhiyun The overhead in this option is that all the messages 97*4882a593Smuzhiyun need to be present in the binary and formatted at 98*4882a593Smuzhiyun runtime for tracing. 99*4882a593Smuzhiyun 100*4882a593Smuzhiyunmenuconfig MAC80211_DEBUG_MENU 101*4882a593Smuzhiyun bool "Select mac80211 debugging features" 102*4882a593Smuzhiyun depends on MAC80211 103*4882a593Smuzhiyun help 104*4882a593Smuzhiyun This option collects various mac80211 debug settings. 105*4882a593Smuzhiyun 106*4882a593Smuzhiyunconfig MAC80211_NOINLINE 107*4882a593Smuzhiyun bool "Do not inline TX/RX handlers" 108*4882a593Smuzhiyun depends on MAC80211_DEBUG_MENU 109*4882a593Smuzhiyun help 110*4882a593Smuzhiyun This option affects code generation in mac80211, when 111*4882a593Smuzhiyun selected some functions are marked "noinline" to allow 112*4882a593Smuzhiyun easier debugging of problems in the transmit and receive 113*4882a593Smuzhiyun paths. 114*4882a593Smuzhiyun 115*4882a593Smuzhiyun This option increases code size a bit and inserts a lot 116*4882a593Smuzhiyun of function calls in the code, but is otherwise safe to 117*4882a593Smuzhiyun enable. 118*4882a593Smuzhiyun 119*4882a593Smuzhiyun If unsure, say N unless you expect to be finding problems 120*4882a593Smuzhiyun in mac80211. 121*4882a593Smuzhiyun 122*4882a593Smuzhiyunconfig MAC80211_VERBOSE_DEBUG 123*4882a593Smuzhiyun bool "Verbose debugging output" 124*4882a593Smuzhiyun depends on MAC80211_DEBUG_MENU 125*4882a593Smuzhiyun help 126*4882a593Smuzhiyun Selecting this option causes mac80211 to print out 127*4882a593Smuzhiyun many debugging messages. It should not be selected 128*4882a593Smuzhiyun on production systems as some of the messages are 129*4882a593Smuzhiyun remotely triggerable. 130*4882a593Smuzhiyun 131*4882a593Smuzhiyun Do not select this option. 132*4882a593Smuzhiyun 133*4882a593Smuzhiyunconfig MAC80211_MLME_DEBUG 134*4882a593Smuzhiyun bool "Verbose managed MLME output" 135*4882a593Smuzhiyun depends on MAC80211_DEBUG_MENU 136*4882a593Smuzhiyun help 137*4882a593Smuzhiyun Selecting this option causes mac80211 to print out 138*4882a593Smuzhiyun debugging messages for the managed-mode MLME. It 139*4882a593Smuzhiyun should not be selected on production systems as some 140*4882a593Smuzhiyun of the messages are remotely triggerable. 141*4882a593Smuzhiyun 142*4882a593Smuzhiyun Do not select this option. 143*4882a593Smuzhiyun 144*4882a593Smuzhiyunconfig MAC80211_STA_DEBUG 145*4882a593Smuzhiyun bool "Verbose station debugging" 146*4882a593Smuzhiyun depends on MAC80211_DEBUG_MENU 147*4882a593Smuzhiyun help 148*4882a593Smuzhiyun Selecting this option causes mac80211 to print out 149*4882a593Smuzhiyun debugging messages for station addition/removal. 150*4882a593Smuzhiyun 151*4882a593Smuzhiyun Do not select this option. 152*4882a593Smuzhiyun 153*4882a593Smuzhiyunconfig MAC80211_HT_DEBUG 154*4882a593Smuzhiyun bool "Verbose HT debugging" 155*4882a593Smuzhiyun depends on MAC80211_DEBUG_MENU 156*4882a593Smuzhiyun help 157*4882a593Smuzhiyun This option enables 802.11n High Throughput features 158*4882a593Smuzhiyun debug tracing output. 159*4882a593Smuzhiyun 160*4882a593Smuzhiyun It should not be selected on production systems as some 161*4882a593Smuzhiyun of the messages are remotely triggerable. 162*4882a593Smuzhiyun 163*4882a593Smuzhiyun Do not select this option. 164*4882a593Smuzhiyun 165*4882a593Smuzhiyunconfig MAC80211_OCB_DEBUG 166*4882a593Smuzhiyun bool "Verbose OCB debugging" 167*4882a593Smuzhiyun depends on MAC80211_DEBUG_MENU 168*4882a593Smuzhiyun help 169*4882a593Smuzhiyun Selecting this option causes mac80211 to print out 170*4882a593Smuzhiyun very verbose OCB debugging messages. It should not 171*4882a593Smuzhiyun be selected on production systems as those messages 172*4882a593Smuzhiyun are remotely triggerable. 173*4882a593Smuzhiyun 174*4882a593Smuzhiyun Do not select this option. 175*4882a593Smuzhiyun 176*4882a593Smuzhiyunconfig MAC80211_IBSS_DEBUG 177*4882a593Smuzhiyun bool "Verbose IBSS debugging" 178*4882a593Smuzhiyun depends on MAC80211_DEBUG_MENU 179*4882a593Smuzhiyun help 180*4882a593Smuzhiyun Selecting this option causes mac80211 to print out 181*4882a593Smuzhiyun very verbose IBSS debugging messages. It should not 182*4882a593Smuzhiyun be selected on production systems as those messages 183*4882a593Smuzhiyun are remotely triggerable. 184*4882a593Smuzhiyun 185*4882a593Smuzhiyun Do not select this option. 186*4882a593Smuzhiyun 187*4882a593Smuzhiyunconfig MAC80211_PS_DEBUG 188*4882a593Smuzhiyun bool "Verbose powersave mode debugging" 189*4882a593Smuzhiyun depends on MAC80211_DEBUG_MENU 190*4882a593Smuzhiyun help 191*4882a593Smuzhiyun Selecting this option causes mac80211 to print out very 192*4882a593Smuzhiyun verbose power save mode debugging messages (when mac80211 193*4882a593Smuzhiyun is an AP and has power saving stations.) 194*4882a593Smuzhiyun It should not be selected on production systems as those 195*4882a593Smuzhiyun messages are remotely triggerable. 196*4882a593Smuzhiyun 197*4882a593Smuzhiyun Do not select this option. 198*4882a593Smuzhiyun 199*4882a593Smuzhiyunconfig MAC80211_MPL_DEBUG 200*4882a593Smuzhiyun bool "Verbose mesh peer link debugging" 201*4882a593Smuzhiyun depends on MAC80211_DEBUG_MENU 202*4882a593Smuzhiyun depends on MAC80211_MESH 203*4882a593Smuzhiyun help 204*4882a593Smuzhiyun Selecting this option causes mac80211 to print out very 205*4882a593Smuzhiyun verbose mesh peer link debugging messages (when mac80211 206*4882a593Smuzhiyun is taking part in a mesh network). 207*4882a593Smuzhiyun It should not be selected on production systems as those 208*4882a593Smuzhiyun messages are remotely triggerable. 209*4882a593Smuzhiyun 210*4882a593Smuzhiyun Do not select this option. 211*4882a593Smuzhiyun 212*4882a593Smuzhiyunconfig MAC80211_MPATH_DEBUG 213*4882a593Smuzhiyun bool "Verbose mesh path debugging" 214*4882a593Smuzhiyun depends on MAC80211_DEBUG_MENU 215*4882a593Smuzhiyun depends on MAC80211_MESH 216*4882a593Smuzhiyun help 217*4882a593Smuzhiyun Selecting this option causes mac80211 to print out very 218*4882a593Smuzhiyun verbose mesh path selection debugging messages (when mac80211 219*4882a593Smuzhiyun is taking part in a mesh network). 220*4882a593Smuzhiyun It should not be selected on production systems as those 221*4882a593Smuzhiyun messages are remotely triggerable. 222*4882a593Smuzhiyun 223*4882a593Smuzhiyun Do not select this option. 224*4882a593Smuzhiyun 225*4882a593Smuzhiyunconfig MAC80211_MHWMP_DEBUG 226*4882a593Smuzhiyun bool "Verbose mesh HWMP routing debugging" 227*4882a593Smuzhiyun depends on MAC80211_DEBUG_MENU 228*4882a593Smuzhiyun depends on MAC80211_MESH 229*4882a593Smuzhiyun help 230*4882a593Smuzhiyun Selecting this option causes mac80211 to print out very 231*4882a593Smuzhiyun verbose mesh routing (HWMP) debugging messages (when mac80211 232*4882a593Smuzhiyun is taking part in a mesh network). 233*4882a593Smuzhiyun It should not be selected on production systems as those 234*4882a593Smuzhiyun messages are remotely triggerable. 235*4882a593Smuzhiyun 236*4882a593Smuzhiyun Do not select this option. 237*4882a593Smuzhiyun 238*4882a593Smuzhiyunconfig MAC80211_MESH_SYNC_DEBUG 239*4882a593Smuzhiyun bool "Verbose mesh synchronization debugging" 240*4882a593Smuzhiyun depends on MAC80211_DEBUG_MENU 241*4882a593Smuzhiyun depends on MAC80211_MESH 242*4882a593Smuzhiyun help 243*4882a593Smuzhiyun Selecting this option causes mac80211 to print out very verbose mesh 244*4882a593Smuzhiyun synchronization debugging messages (when mac80211 is taking part in a 245*4882a593Smuzhiyun mesh network). 246*4882a593Smuzhiyun 247*4882a593Smuzhiyun Do not select this option. 248*4882a593Smuzhiyun 249*4882a593Smuzhiyunconfig MAC80211_MESH_CSA_DEBUG 250*4882a593Smuzhiyun bool "Verbose mesh channel switch debugging" 251*4882a593Smuzhiyun depends on MAC80211_DEBUG_MENU 252*4882a593Smuzhiyun depends on MAC80211_MESH 253*4882a593Smuzhiyun help 254*4882a593Smuzhiyun Selecting this option causes mac80211 to print out very verbose mesh 255*4882a593Smuzhiyun channel switch debugging messages (when mac80211 is taking part in a 256*4882a593Smuzhiyun mesh network). 257*4882a593Smuzhiyun 258*4882a593Smuzhiyun Do not select this option. 259*4882a593Smuzhiyun 260*4882a593Smuzhiyunconfig MAC80211_MESH_PS_DEBUG 261*4882a593Smuzhiyun bool "Verbose mesh powersave debugging" 262*4882a593Smuzhiyun depends on MAC80211_DEBUG_MENU 263*4882a593Smuzhiyun depends on MAC80211_MESH 264*4882a593Smuzhiyun help 265*4882a593Smuzhiyun Selecting this option causes mac80211 to print out very verbose mesh 266*4882a593Smuzhiyun powersave debugging messages (when mac80211 is taking part in a 267*4882a593Smuzhiyun mesh network). 268*4882a593Smuzhiyun 269*4882a593Smuzhiyun Do not select this option. 270*4882a593Smuzhiyun 271*4882a593Smuzhiyunconfig MAC80211_TDLS_DEBUG 272*4882a593Smuzhiyun bool "Verbose TDLS debugging" 273*4882a593Smuzhiyun depends on MAC80211_DEBUG_MENU 274*4882a593Smuzhiyun help 275*4882a593Smuzhiyun Selecting this option causes mac80211 to print out very 276*4882a593Smuzhiyun verbose TDLS selection debugging messages (when mac80211 277*4882a593Smuzhiyun is a TDLS STA). 278*4882a593Smuzhiyun It should not be selected on production systems as those 279*4882a593Smuzhiyun messages are remotely triggerable. 280*4882a593Smuzhiyun 281*4882a593Smuzhiyun Do not select this option. 282*4882a593Smuzhiyun 283*4882a593Smuzhiyunconfig MAC80211_DEBUG_COUNTERS 284*4882a593Smuzhiyun bool "Extra statistics for TX/RX debugging" 285*4882a593Smuzhiyun depends on MAC80211_DEBUG_MENU 286*4882a593Smuzhiyun depends on MAC80211_DEBUGFS 287*4882a593Smuzhiyun help 288*4882a593Smuzhiyun Selecting this option causes mac80211 to keep additional 289*4882a593Smuzhiyun and very verbose statistics about TX and RX handler use 290*4882a593Smuzhiyun as well as a few selected dot11 counters. These will be 291*4882a593Smuzhiyun exposed in debugfs. 292*4882a593Smuzhiyun 293*4882a593Smuzhiyun Note that some of the counters are not concurrency safe 294*4882a593Smuzhiyun and may thus not always be accurate. 295*4882a593Smuzhiyun 296*4882a593Smuzhiyun If unsure, say N. 297*4882a593Smuzhiyun 298*4882a593Smuzhiyunconfig MAC80211_STA_HASH_MAX_SIZE 299*4882a593Smuzhiyun int "Station hash table maximum size" if MAC80211_DEBUG_MENU 300*4882a593Smuzhiyun default 0 301*4882a593Smuzhiyun help 302*4882a593Smuzhiyun Setting this option to a low value (e.g. 4) allows testing the 303*4882a593Smuzhiyun hash table with collisions relatively deterministically (just 304*4882a593Smuzhiyun connect more stations than the number selected here.) 305*4882a593Smuzhiyun 306*4882a593Smuzhiyun If unsure, leave the default of 0. 307