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