xref: /linux/net/mac80211/Kconfig (revision d642ef71)
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 && CFG80211_DEBUGFS
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