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
66 Enable this option to test mac80211 internals with kunit.
71 bool "Enable mac80211 mesh networking support"
74 Select this option to enable 802.11 mesh operation in mac80211
75 drivers that support it. 802.11 mesh connects multiple stations
76 over (possibly multi-hop) wireless links to form a single logical
80 bool "Enable LED triggers"
82 depends on LEDS_CLASS=y || LEDS_CLASS=MAC80211
85 This option enables a few LED triggers for different
86 packet receive/transmit events.
88 config MAC80211_DEBUGFS
89 bool "Export mac80211 internals in DebugFS"
90 depends on MAC80211 && CFG80211_DEBUGFS
92 Select this to see extensive information about
93 the internal state of mac80211 in debugfs.
95 Say N unless you know you need this.
97 config MAC80211_MESSAGE_TRACING
98 bool "Trace all mac80211 debug messages"
101 Select this option to have mac80211 register the
102 mac80211_msg trace subsystem with tracepoints to
103 collect all debugging messages, independent of
104 printing them into the kernel log.
106 The overhead in this option is that all the messages
107 need to be present in the binary and formatted at
110 menuconfig MAC80211_DEBUG_MENU
111 bool "Select mac80211 debugging features"
114 This option collects various mac80211 debug settings.
116 config MAC80211_NOINLINE
117 bool "Do not inline TX/RX handlers"
118 depends on MAC80211_DEBUG_MENU
120 This option affects code generation in mac80211, when
121 selected some functions are marked "noinline" to allow
122 easier debugging of problems in the transmit and receive
125 This option increases code size a bit and inserts a lot
126 of function calls in the code, but is otherwise safe to
129 If unsure, say N unless you expect to be finding problems
132 config MAC80211_VERBOSE_DEBUG
133 bool "Verbose debugging output"
134 depends on MAC80211_DEBUG_MENU
136 Selecting this option causes mac80211 to print out
137 many debugging messages. It should not be selected
138 on production systems as some of the messages are
139 remotely triggerable.
141 Do not select this option.
143 config MAC80211_MLME_DEBUG
144 bool "Verbose managed MLME output"
145 depends on MAC80211_DEBUG_MENU
147 Selecting this option causes mac80211 to print out
148 debugging messages for the managed-mode MLME. It
149 should not be selected on production systems as some
150 of the messages are remotely triggerable.
152 Do not select this option.
154 config MAC80211_STA_DEBUG
155 bool "Verbose station debugging"
156 depends on MAC80211_DEBUG_MENU
158 Selecting this option causes mac80211 to print out
159 debugging messages for station addition/removal.
161 Do not select this option.
163 config MAC80211_HT_DEBUG
164 bool "Verbose HT debugging"
165 depends on MAC80211_DEBUG_MENU
167 This option enables 802.11n High Throughput features
168 debug tracing output.
170 It should not be selected on production systems as some
171 of the messages are remotely triggerable.
173 Do not select this option.
175 config MAC80211_OCB_DEBUG
176 bool "Verbose OCB debugging"
177 depends on MAC80211_DEBUG_MENU
179 Selecting this option causes mac80211 to print out
180 very verbose OCB debugging messages. It should not
181 be selected on production systems as those messages
182 are remotely triggerable.
184 Do not select this option.
186 config MAC80211_IBSS_DEBUG
187 bool "Verbose IBSS debugging"
188 depends on MAC80211_DEBUG_MENU
190 Selecting this option causes mac80211 to print out
191 very verbose IBSS debugging messages. It should not
192 be selected on production systems as those messages
193 are remotely triggerable.
195 Do not select this option.
197 config MAC80211_PS_DEBUG
198 bool "Verbose powersave mode debugging"
199 depends on MAC80211_DEBUG_MENU
201 Selecting this option causes mac80211 to print out very
202 verbose power save mode debugging messages (when mac80211
203 is an AP and has power saving stations.)
204 It should not be selected on production systems as those
205 messages are remotely triggerable.
207 Do not select this option.
209 config MAC80211_MPL_DEBUG
210 bool "Verbose mesh peer link debugging"
211 depends on MAC80211_DEBUG_MENU
212 depends on MAC80211_MESH
214 Selecting this option causes mac80211 to print out very
215 verbose mesh peer link debugging messages (when mac80211
216 is taking part in a mesh network).
217 It should not be selected on production systems as those
218 messages are remotely triggerable.
220 Do not select this option.
222 config MAC80211_MPATH_DEBUG
223 bool "Verbose mesh path debugging"
224 depends on MAC80211_DEBUG_MENU
225 depends on MAC80211_MESH
227 Selecting this option causes mac80211 to print out very
228 verbose mesh path selection debugging messages (when mac80211
229 is taking part in a mesh network).
230 It should not be selected on production systems as those
231 messages are remotely triggerable.
233 Do not select this option.
235 config MAC80211_MHWMP_DEBUG
236 bool "Verbose mesh HWMP routing debugging"
237 depends on MAC80211_DEBUG_MENU
238 depends on MAC80211_MESH
240 Selecting this option causes mac80211 to print out very
241 verbose mesh routing (HWMP) debugging messages (when mac80211
242 is taking part in a mesh network).
243 It should not be selected on production systems as those
244 messages are remotely triggerable.
246 Do not select this option.
248 config MAC80211_MESH_SYNC_DEBUG
249 bool "Verbose mesh synchronization debugging"
250 depends on MAC80211_DEBUG_MENU
251 depends on MAC80211_MESH
253 Selecting this option causes mac80211 to print out very verbose mesh
254 synchronization debugging messages (when mac80211 is taking part in a
257 Do not select this option.
259 config MAC80211_MESH_CSA_DEBUG
260 bool "Verbose mesh channel switch debugging"
261 depends on MAC80211_DEBUG_MENU
262 depends on MAC80211_MESH
264 Selecting this option causes mac80211 to print out very verbose mesh
265 channel switch debugging messages (when mac80211 is taking part in a
268 Do not select this option.
270 config MAC80211_MESH_PS_DEBUG
271 bool "Verbose mesh powersave debugging"
272 depends on MAC80211_DEBUG_MENU
273 depends on MAC80211_MESH
275 Selecting this option causes mac80211 to print out very verbose mesh
276 powersave debugging messages (when mac80211 is taking part in a
279 Do not select this option.
281 config MAC80211_TDLS_DEBUG
282 bool "Verbose TDLS debugging"
283 depends on MAC80211_DEBUG_MENU
285 Selecting this option causes mac80211 to print out very
286 verbose TDLS selection debugging messages (when mac80211
288 It should not be selected on production systems as those
289 messages are remotely triggerable.
291 Do not select this option.
293 config MAC80211_DEBUG_COUNTERS
294 bool "Extra statistics for TX/RX debugging"
295 depends on MAC80211_DEBUG_MENU
296 depends on MAC80211_DEBUGFS
298 Selecting this option causes mac80211 to keep additional
299 and very verbose statistics about TX and RX handler use
300 as well as a few selected dot11 counters. These will be
303 Note that some of the counters are not concurrency safe
304 and may thus not always be accurate.
308 config MAC80211_STA_HASH_MAX_SIZE
309 int "Station hash table maximum size" if MAC80211_DEBUG_MENU
312 Setting this option to a low value (e.g. 4) allows testing the
313 hash table with collisions relatively deterministically (just
314 connect more stations than the number selected here.)
316 If unsure, leave the default of 0.