1 # SPDX-License-Identifier: GPL-2.0-only
3 tristate "Generic IEEE 802.11 Networking Stack (mac80211)"
13 This option enables the hardware independent IEEE 802.11
16 comment "CFG80211 needs to be enabled for MAC80211"
21 config MAC80211_HAS_RC
24 config MAC80211_RC_MINSTREL
25 bool "Minstrel" if EXPERT
26 select MAC80211_HAS_RC
29 This option enables the 'minstrel' TX rate control algorithm
32 prompt "Default rate control algorithm"
33 depends on MAC80211_HAS_RC
34 default MAC80211_RC_DEFAULT_MINSTREL
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.
41 config MAC80211_RC_DEFAULT_MINSTREL
43 depends on MAC80211_RC_MINSTREL
45 Select Minstrel as the default rate control algorithm.
50 config MAC80211_RC_DEFAULT
52 default "minstrel_ht" if MAC80211_RC_DEFAULT_MINSTREL
57 comment "Some wireless drivers require a rate control algorithm"
58 depends on MAC80211 && MAC80211_HAS_RC=n
60 config MAC80211_KUNIT_TEST
61 tristate "KUnit tests for mac80211" if !KUNIT_ALL_TESTS
64 default KUNIT_ALL_TESTS
65 depends on !KERNEL_6_2
67 Enable this option to test mac80211 internals with kunit.
72 bool "Enable mac80211 mesh networking support"
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
81 bool "Enable LED triggers"
83 depends on LEDS_CLASS=y || LEDS_CLASS=MAC80211
86 This option enables a few LED triggers for different
87 packet receive/transmit events.
89 config MAC80211_DEBUGFS
90 bool "Export mac80211 internals in DebugFS"
91 depends on MAC80211 && CFG80211_DEBUGFS
93 Select this to see extensive information about
94 the internal state of mac80211 in debugfs.
96 Say N unless you know you need this.
98 config MAC80211_MESSAGE_TRACING
99 bool "Trace all mac80211 debug messages"
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.
107 The overhead in this option is that all the messages
108 need to be present in the binary and formatted at
111 menuconfig MAC80211_DEBUG_MENU
112 bool "Select mac80211 debugging features"
115 This option collects various mac80211 debug settings.
117 config MAC80211_NOINLINE
118 bool "Do not inline TX/RX handlers"
119 depends on MAC80211_DEBUG_MENU
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
126 This option increases code size a bit and inserts a lot
127 of function calls in the code, but is otherwise safe to
130 If unsure, say N unless you expect to be finding problems
133 config MAC80211_VERBOSE_DEBUG
134 bool "Verbose debugging output"
135 depends on MAC80211_DEBUG_MENU
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.
142 Do not select this option.
144 config MAC80211_MLME_DEBUG
145 bool "Verbose managed MLME output"
146 depends on MAC80211_DEBUG_MENU
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.
153 Do not select this option.
155 config MAC80211_STA_DEBUG
156 bool "Verbose station debugging"
157 depends on MAC80211_DEBUG_MENU
159 Selecting this option causes mac80211 to print out
160 debugging messages for station addition/removal.
162 Do not select this option.
164 config MAC80211_HT_DEBUG
165 bool "Verbose HT debugging"
166 depends on MAC80211_DEBUG_MENU
168 This option enables 802.11n High Throughput features
169 debug tracing output.
171 It should not be selected on production systems as some
172 of the messages are remotely triggerable.
174 Do not select this option.
176 config MAC80211_OCB_DEBUG
177 bool "Verbose OCB debugging"
178 depends on MAC80211_DEBUG_MENU
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.
185 Do not select this option.
187 config MAC80211_IBSS_DEBUG
188 bool "Verbose IBSS debugging"
189 depends on MAC80211_DEBUG_MENU
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.
196 Do not select this option.
198 config MAC80211_PS_DEBUG
199 bool "Verbose powersave mode debugging"
200 depends on MAC80211_DEBUG_MENU
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.
208 Do not select this option.
210 config MAC80211_MPL_DEBUG
211 bool "Verbose mesh peer link debugging"
212 depends on MAC80211_DEBUG_MENU
213 depends on MAC80211_MESH
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.
221 Do not select this option.
223 config MAC80211_MPATH_DEBUG
224 bool "Verbose mesh path debugging"
225 depends on MAC80211_DEBUG_MENU
226 depends on MAC80211_MESH
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.
234 Do not select this option.
236 config MAC80211_MHWMP_DEBUG
237 bool "Verbose mesh HWMP routing debugging"
238 depends on MAC80211_DEBUG_MENU
239 depends on MAC80211_MESH
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.
247 Do not select this option.
249 config MAC80211_MESH_SYNC_DEBUG
250 bool "Verbose mesh synchronization debugging"
251 depends on MAC80211_DEBUG_MENU
252 depends on MAC80211_MESH
254 Selecting this option causes mac80211 to print out very verbose mesh
255 synchronization debugging messages (when mac80211 is taking part in a
258 Do not select this option.
260 config MAC80211_MESH_CSA_DEBUG
261 bool "Verbose mesh channel switch debugging"
262 depends on MAC80211_DEBUG_MENU
263 depends on MAC80211_MESH
265 Selecting this option causes mac80211 to print out very verbose mesh
266 channel switch debugging messages (when mac80211 is taking part in a
269 Do not select this option.
271 config MAC80211_MESH_PS_DEBUG
272 bool "Verbose mesh powersave debugging"
273 depends on MAC80211_DEBUG_MENU
274 depends on MAC80211_MESH
276 Selecting this option causes mac80211 to print out very verbose mesh
277 powersave debugging messages (when mac80211 is taking part in a
280 Do not select this option.
282 config MAC80211_TDLS_DEBUG
283 bool "Verbose TDLS debugging"
284 depends on MAC80211_DEBUG_MENU
286 Selecting this option causes mac80211 to print out very
287 verbose TDLS selection debugging messages (when mac80211
289 It should not be selected on production systems as those
290 messages are remotely triggerable.
292 Do not select this option.
294 config MAC80211_DEBUG_COUNTERS
295 bool "Extra statistics for TX/RX debugging"
296 depends on MAC80211_DEBUG_MENU
297 depends on MAC80211_DEBUGFS
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
304 Note that some of the counters are not concurrency safe
305 and may thus not always be accurate.
309 config MAC80211_STA_HASH_MAX_SIZE
310 int "Station hash table maximum size" if MAC80211_DEBUG_MENU
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.)
317 If unsure, leave the default of 0.