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