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 && EXPERIMENTAL
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
110menuconfig MAC80211_DEBUG_MENU
111	bool "Select mac80211 debugging features"
112	depends on MAC80211
113	---help---
114	  This option collects various mac80211 debug settings.
115
116config MAC80211_NOINLINE
117	bool "Do not inline TX/RX handlers"
118	depends on MAC80211_DEBUG_MENU
119	---help---
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
123	  paths.
124
125	  This option increases code size a bit and inserts a lot
126	  of function calls in the code, but is otherwise safe to
127	  enable.
128
129	  If unsure, say N unless you expect to be finding problems
130	  in mac80211.
131
132config MAC80211_VERBOSE_DEBUG
133	bool "Verbose debugging output"
134	depends on MAC80211_DEBUG_MENU
135	---help---
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.
140
141	  Do not select this option.
142
143config MAC80211_HT_DEBUG
144	bool "Verbose HT debugging"
145	depends on MAC80211_DEBUG_MENU
146	---help---
147	  This option enables 802.11n High Throughput features
148	  debug tracing output.
149
150	  It 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_TKIP_DEBUG
156	bool "Verbose TKIP debugging"
157	depends on MAC80211_DEBUG_MENU
158	---help---
159	  Selecting this option causes mac80211 to print out
160	  very verbose TKIP debugging messages. It should not
161	  be selected on production systems as those messages
162	  are remotely triggerable.
163
164	  Do not select this option.
165
166config MAC80211_IBSS_DEBUG
167	bool "Verbose IBSS debugging"
168	depends on MAC80211_DEBUG_MENU
169	---help---
170	  Selecting this option causes mac80211 to print out
171	  very verbose IBSS debugging messages. It should not
172	  be selected on production systems as those messages
173	  are remotely triggerable.
174
175	  Do not select this option.
176
177config MAC80211_VERBOSE_PS_DEBUG
178	bool "Verbose powersave mode debugging"
179	depends on MAC80211_DEBUG_MENU
180	---help---
181	  Selecting this option causes mac80211 to print out very
182	  verbose power save mode debugging messages (when mac80211
183	  is an AP and has power saving stations.)
184	  It should not be selected on production systems as those
185	  messages are remotely triggerable.
186
187	  Do not select this option.
188
189config MAC80211_VERBOSE_MPL_DEBUG
190	bool "Verbose mesh peer link debugging"
191	depends on MAC80211_DEBUG_MENU
192	depends on MAC80211_MESH
193	---help---
194	  Selecting this option causes mac80211 to print out very
195	  verbose mesh peer link debugging messages (when mac80211
196	  is taking part in a mesh network).
197	  It should not be selected on production systems as those
198	  messages are remotely triggerable.
199
200	  Do not select this option.
201
202config MAC80211_VERBOSE_MPATH_DEBUG
203	bool "Verbose mesh path debugging"
204	depends on MAC80211_DEBUG_MENU
205	depends on MAC80211_MESH
206	---help---
207	  Selecting this option causes mac80211 to print out very
208	  verbose mesh path selection debugging messages (when mac80211
209	  is taking part in a mesh network).
210	  It should not be selected on production systems as those
211	  messages are remotely triggerable.
212
213	  Do not select this option.
214
215config MAC80211_VERBOSE_MHWMP_DEBUG
216	bool "Verbose mesh HWMP routing debugging"
217	depends on MAC80211_DEBUG_MENU
218	depends on MAC80211_MESH
219	---help---
220	  Selecting this option causes mac80211 to print out very
221	  verbose mesh routing (HWMP) debugging messages (when mac80211
222	  is taking part in a mesh network).
223	  It should not be selected on production systems as those
224	  messages are remotely triggerable.
225
226	  Do not select this option.
227
228config MAC80211_VERBOSE_TDLS_DEBUG
229	bool "Verbose TDLS debugging"
230	depends on MAC80211_DEBUG_MENU
231	---help---
232	  Selecting this option causes mac80211 to print out very
233	  verbose TDLS selection debugging messages (when mac80211
234	  is a TDLS STA).
235	  It should not be selected on production systems as those
236	  messages are remotely triggerable.
237
238	  Do not select this option.
239
240config MAC80211_DEBUG_COUNTERS
241	bool "Extra statistics for TX/RX debugging"
242	depends on MAC80211_DEBUG_MENU
243	depends on MAC80211_DEBUGFS
244	---help---
245	  Selecting this option causes mac80211 to keep additional
246	  and very verbose statistics about TX and RX handler use
247	  and show them in debugfs.
248
249	  If unsure, say N.
250