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