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