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_KUNIT_TEST 61 tristate "KUnit tests for mac80211" if !KUNIT_ALL_TESTS 62 depends on KUNIT 63 depends on MAC80211 64 default KUNIT_ALL_TESTS 65 depends on !KERNEL_6_2 66 help 67 Enable this option to test mac80211 internals with kunit. 68 69 If unsure, say N. 70 71config MAC80211_MESH 72 bool "Enable mac80211 mesh networking support" 73 depends on MAC80211 74 help 75 Select this option to enable 802.11 mesh operation in mac80211 76 drivers that support it. 802.11 mesh connects multiple stations 77 over (possibly multi-hop) wireless links to form a single logical 78 LAN. 79 80config MAC80211_LEDS 81 bool "Enable LED triggers" 82 depends on MAC80211 83 depends on LEDS_CLASS=y || LEDS_CLASS=MAC80211 84 select LEDS_TRIGGERS 85 help 86 This option enables a few LED triggers for different 87 packet receive/transmit events. 88 89config MAC80211_DEBUGFS 90 bool "Export mac80211 internals in DebugFS" 91 depends on MAC80211 && DEBUG_FS 92 help 93 Select this to see extensive information about 94 the internal state of mac80211 in debugfs. 95 96 Say N unless you know you need this. 97 98config MAC80211_MESSAGE_TRACING 99 bool "Trace all mac80211 debug messages" 100 depends on MAC80211 101 help 102 Select this option to have mac80211 register the 103 mac80211_msg trace subsystem with tracepoints to 104 collect all debugging messages, independent of 105 printing them into the kernel log. 106 107 The overhead in this option is that all the messages 108 need to be present in the binary and formatted at 109 runtime for tracing. 110 111menuconfig MAC80211_DEBUG_MENU 112 bool "Select mac80211 debugging features" 113 depends on MAC80211 114 help 115 This option collects various mac80211 debug settings. 116 117config MAC80211_NOINLINE 118 bool "Do not inline TX/RX handlers" 119 depends on MAC80211_DEBUG_MENU 120 help 121 This option affects code generation in mac80211, when 122 selected some functions are marked "noinline" to allow 123 easier debugging of problems in the transmit and receive 124 paths. 125 126 This option increases code size a bit and inserts a lot 127 of function calls in the code, but is otherwise safe to 128 enable. 129 130 If unsure, say N unless you expect to be finding problems 131 in mac80211. 132 133config MAC80211_VERBOSE_DEBUG 134 bool "Verbose debugging output" 135 depends on MAC80211_DEBUG_MENU 136 help 137 Selecting this option causes mac80211 to print out 138 many debugging messages. It should not be selected 139 on production systems as some of the messages are 140 remotely triggerable. 141 142 Do not select this option. 143 144config MAC80211_MLME_DEBUG 145 bool "Verbose managed MLME output" 146 depends on MAC80211_DEBUG_MENU 147 help 148 Selecting this option causes mac80211 to print out 149 debugging messages for the managed-mode MLME. It 150 should not be selected on production systems as some 151 of the messages are remotely triggerable. 152 153 Do not select this option. 154 155config MAC80211_STA_DEBUG 156 bool "Verbose station debugging" 157 depends on MAC80211_DEBUG_MENU 158 help 159 Selecting this option causes mac80211 to print out 160 debugging messages for station addition/removal. 161 162 Do not select this option. 163 164config MAC80211_HT_DEBUG 165 bool "Verbose HT debugging" 166 depends on MAC80211_DEBUG_MENU 167 help 168 This option enables 802.11n High Throughput features 169 debug tracing output. 170 171 It should not be selected on production systems as some 172 of the messages are remotely triggerable. 173 174 Do not select this option. 175 176config MAC80211_OCB_DEBUG 177 bool "Verbose OCB debugging" 178 depends on MAC80211_DEBUG_MENU 179 help 180 Selecting this option causes mac80211 to print out 181 very verbose OCB 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_IBSS_DEBUG 188 bool "Verbose IBSS debugging" 189 depends on MAC80211_DEBUG_MENU 190 help 191 Selecting this option causes mac80211 to print out 192 very verbose IBSS debugging messages. It should not 193 be selected on production systems as those messages 194 are remotely triggerable. 195 196 Do not select this option. 197 198config MAC80211_PS_DEBUG 199 bool "Verbose powersave mode debugging" 200 depends on MAC80211_DEBUG_MENU 201 help 202 Selecting this option causes mac80211 to print out very 203 verbose power save mode debugging messages (when mac80211 204 is an AP and has power saving stations.) 205 It should not be selected on production systems as those 206 messages are remotely triggerable. 207 208 Do not select this option. 209 210config MAC80211_MPL_DEBUG 211 bool "Verbose mesh peer link debugging" 212 depends on MAC80211_DEBUG_MENU 213 depends on MAC80211_MESH 214 help 215 Selecting this option causes mac80211 to print out very 216 verbose mesh peer link debugging messages (when mac80211 217 is taking part in a mesh network). 218 It should not be selected on production systems as those 219 messages are remotely triggerable. 220 221 Do not select this option. 222 223config MAC80211_MPATH_DEBUG 224 bool "Verbose mesh path debugging" 225 depends on MAC80211_DEBUG_MENU 226 depends on MAC80211_MESH 227 help 228 Selecting this option causes mac80211 to print out very 229 verbose mesh path selection debugging messages (when mac80211 230 is taking part in a mesh network). 231 It should not be selected on production systems as those 232 messages are remotely triggerable. 233 234 Do not select this option. 235 236config MAC80211_MHWMP_DEBUG 237 bool "Verbose mesh HWMP routing debugging" 238 depends on MAC80211_DEBUG_MENU 239 depends on MAC80211_MESH 240 help 241 Selecting this option causes mac80211 to print out very 242 verbose mesh routing (HWMP) debugging messages (when mac80211 243 is taking part in a mesh network). 244 It should not be selected on production systems as those 245 messages are remotely triggerable. 246 247 Do not select this option. 248 249config MAC80211_MESH_SYNC_DEBUG 250 bool "Verbose mesh synchronization 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 synchronization debugging messages (when mac80211 is taking part in a 256 mesh network). 257 258 Do not select this option. 259 260config MAC80211_MESH_CSA_DEBUG 261 bool "Verbose mesh channel switch 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 channel switch debugging messages (when mac80211 is taking part in a 267 mesh network). 268 269 Do not select this option. 270 271config MAC80211_MESH_PS_DEBUG 272 bool "Verbose mesh powersave debugging" 273 depends on MAC80211_DEBUG_MENU 274 depends on MAC80211_MESH 275 help 276 Selecting this option causes mac80211 to print out very verbose mesh 277 powersave debugging messages (when mac80211 is taking part in a 278 mesh network). 279 280 Do not select this option. 281 282config MAC80211_TDLS_DEBUG 283 bool "Verbose TDLS debugging" 284 depends on MAC80211_DEBUG_MENU 285 help 286 Selecting this option causes mac80211 to print out very 287 verbose TDLS selection debugging messages (when mac80211 288 is a TDLS STA). 289 It should not be selected on production systems as those 290 messages are remotely triggerable. 291 292 Do not select this option. 293 294config MAC80211_DEBUG_COUNTERS 295 bool "Extra statistics for TX/RX debugging" 296 depends on MAC80211_DEBUG_MENU 297 depends on MAC80211_DEBUGFS 298 help 299 Selecting this option causes mac80211 to keep additional 300 and very verbose statistics about TX and RX handler use 301 as well as a few selected dot11 counters. These will be 302 exposed in debugfs. 303 304 Note that some of the counters are not concurrency safe 305 and may thus not always be accurate. 306 307 If unsure, say N. 308 309config MAC80211_STA_HASH_MAX_SIZE 310 int "Station hash table maximum size" if MAC80211_DEBUG_MENU 311 default 0 312 help 313 Setting this option to a low value (e.g. 4) allows testing the 314 hash table with collisions relatively deterministically (just 315 connect more stations than the number selected here.) 316 317 If unsure, leave the default of 0. 318