blob: cd9a9bd242babbc1bb8e3fdbbe88fc0c9b5b5c85 [file] [log] [blame]
Thomas Gleixnerec8f24b2019-05-19 13:07:45 +01001# SPDX-License-Identifier: GPL-2.0-only
Jiri Bencf0706e82007-05-05 11:45:53 -07002config MAC80211
3 tristate "Generic IEEE 802.11 Networking Stack (mac80211)"
Johannes Berg0aa82042009-06-03 18:30:31 +02004 depends on CFG80211
Jiri Bencf0706e82007-05-05 11:45:53 -07005 select CRYPTO
Ard Biesheuvel5fdb3732019-06-12 18:19:54 +02006 select CRYPTO_LIB_ARC4
Jiri Bencf0706e82007-05-05 11:45:53 -07007 select CRYPTO_AES
Ard Biesheuvel7ec7c4a2013-10-10 09:55:20 +02008 select CRYPTO_CCM
Jouni Malinen00b9cfa2015-01-24 19:52:06 +02009 select CRYPTO_GCM
Ard Biesheuvelfe8de3d2017-02-06 10:49:27 +000010 select CRYPTO_CMAC
Jiri Bencf0706e82007-05-05 11:45:53 -070011 select CRC32
Masahiro Yamadaa7f7f622020-06-14 01:50:22 +090012 help
John W. Linvillec40896d2007-12-21 00:44:59 -050013 This option enables the hardware independent IEEE 802.11
14 networking stack.
Jiri Bencf0706e82007-05-05 11:45:53 -070015
Johannes Berg0aa82042009-06-03 18:30:31 +020016comment "CFG80211 needs to be enabled for MAC80211"
17 depends on CFG80211=n
18
Luis R. Rodriguezabd8ea22009-09-01 08:22:46 -070019if MAC80211 != n
Johannes Bergac71c692007-10-28 14:17:44 +010020
Andres Salomonc2ef3552010-02-25 19:18:47 -050021config MAC80211_HAS_RC
Jan Beulich540005c2011-02-17 13:36:19 +000022 bool
Andres Salomonc2ef3552010-02-25 19:18:47 -050023
Felix Fietkaucccf1292008-10-05 18:07:45 +020024config MAC80211_RC_MINSTREL
David Rientjes6a108a12011-01-20 14:44:16 -080025 bool "Minstrel" if EXPERT
Andres Salomonc2ef3552010-02-25 19:18:47 -050026 select MAC80211_HAS_RC
Luis R. Rodriguez8eb41c92008-11-14 17:44:53 -080027 default y
Masahiro Yamadaa7f7f622020-06-14 01:50:22 +090028 help
Felix Fietkaucccf1292008-10-05 18:07:45 +020029 This option enables the 'minstrel' TX rate control algorithm
30
Stefano Brivioc21b39a2007-12-19 01:26:16 +010031choice
32 prompt "Default rate control algorithm"
Andres Salomonc2ef3552010-02-25 19:18:47 -050033 depends on MAC80211_HAS_RC
Luis R. Rodriguez8eb41c92008-11-14 17:44:53 -080034 default MAC80211_RC_DEFAULT_MINSTREL
Masahiro Yamadaa7f7f622020-06-14 01:50:22 +090035 help
Stefano Brivioc21b39a2007-12-19 01:26:16 +010036 This option selects the default rate control algorithm
37 mac80211 will use. Note that this default can still be
Matt LaPlante692105b2009-01-26 11:12:25 +010038 overridden through the ieee80211_default_rc_algo module
Johannes Berg4b475892008-01-02 15:17:03 +010039 parameter if different algorithms are available.
Johannes Bergac71c692007-10-28 14:17:44 +010040
Felix Fietkaucccf1292008-10-05 18:07:45 +020041config MAC80211_RC_DEFAULT_MINSTREL
42 bool "Minstrel"
43 depends on MAC80211_RC_MINSTREL
Masahiro Yamadaa7f7f622020-06-14 01:50:22 +090044 help
Felix Fietkaucccf1292008-10-05 18:07:45 +020045 Select Minstrel as the default rate control algorithm.
46
47
Stefano Brivioc21b39a2007-12-19 01:26:16 +010048endchoice
49
50config MAC80211_RC_DEFAULT
51 string
Felix Fietkaub1c4f682018-10-06 19:35:01 +020052 default "minstrel_ht" if MAC80211_RC_DEFAULT_MINSTREL
Stefano Brivioc21b39a2007-12-19 01:26:16 +010053 default ""
54
Luis R. Rodriguezabd8ea22009-09-01 08:22:46 -070055endif
Mattias Nisslerad018372007-12-19 01:25:57 +010056
Andres Salomonc2ef3552010-02-25 19:18:47 -050057comment "Some wireless drivers require a rate control algorithm"
Johannes Berge46395a2011-03-01 17:18:26 +010058 depends on MAC80211 && MAC80211_HAS_RC=n
Andres Salomonc2ef3552010-02-25 19:18:47 -050059
Johannes Berg2f5ce792008-02-23 15:17:21 +010060config MAC80211_MESH
Bob Copelandc8d10cb2018-12-04 10:22:00 -050061 bool "Enable mac80211 mesh networking support"
Kees Cook48f6edc2012-10-02 11:19:53 -070062 depends on MAC80211
Masahiro Yamadaa7f7f622020-06-14 01:50:22 +090063 help
Bob Copelandc8d10cb2018-12-04 10:22:00 -050064 Select this option to enable 802.11 mesh operation in mac80211
65 drivers that support it. 802.11 mesh connects multiple stations
66 over (possibly multi-hop) wireless links to form a single logical
67 LAN.
Johannes Berg2f5ce792008-02-23 15:17:21 +010068
Jiri Bencf0706e82007-05-05 11:45:53 -070069config MAC80211_LEDS
70 bool "Enable LED triggers"
Luca Tettamantibd8fd212008-04-27 15:34:55 -070071 depends on MAC80211
Johannes Berg0bae35e2010-12-02 14:31:14 -080072 depends on LEDS_CLASS
Luca Tettamantibd8fd212008-04-27 15:34:55 -070073 select LEDS_TRIGGERS
Masahiro Yamadaa7f7f622020-06-14 01:50:22 +090074 help
John W. Linvillec40896d2007-12-21 00:44:59 -050075 This option enables a few LED triggers for different
76 packet receive/transmit events.
Jiri Bencf0706e82007-05-05 11:45:53 -070077
Jiri Bence9f207f2007-05-05 11:46:38 -070078config MAC80211_DEBUGFS
79 bool "Export mac80211 internals in DebugFS"
80 depends on MAC80211 && DEBUG_FS
Masahiro Yamadaa7f7f622020-06-14 01:50:22 +090081 help
Jiri Bence9f207f2007-05-05 11:46:38 -070082 Select this to see extensive information about
83 the internal state of mac80211 in debugfs.
84
85 Say N unless you know you need this.
86
Johannes Berg3fae0272012-06-22 13:36:25 +020087config MAC80211_MESSAGE_TRACING
88 bool "Trace all mac80211 debug messages"
89 depends on MAC80211
Masahiro Yamadaa7f7f622020-06-14 01:50:22 +090090 help
Johannes Berg3fae0272012-06-22 13:36:25 +020091 Select this option to have mac80211 register the
92 mac80211_msg trace subsystem with tracepoints to
93 collect all debugging messages, independent of
94 printing them into the kernel log.
95
96 The overhead in this option is that all the messages
97 need to be present in the binary and formatted at
98 runtime for tracing.
99
Johannes Bergf4ea83d2008-06-30 15:10:46 +0200100menuconfig MAC80211_DEBUG_MENU
101 bool "Select mac80211 debugging features"
102 depends on MAC80211
Masahiro Yamadaa7f7f622020-06-14 01:50:22 +0900103 help
Johannes Bergf4ea83d2008-06-30 15:10:46 +0200104 This option collects various mac80211 debug settings.
105
Johannes Bergf4ea83d2008-06-30 15:10:46 +0200106config MAC80211_NOINLINE
107 bool "Do not inline TX/RX handlers"
108 depends on MAC80211_DEBUG_MENU
Masahiro Yamadaa7f7f622020-06-14 01:50:22 +0900109 help
Johannes Bergf4ea83d2008-06-30 15:10:46 +0200110 This option affects code generation in mac80211, when
111 selected some functions are marked "noinline" to allow
112 easier debugging of problems in the transmit and receive
113 paths.
Jiri Bencf0706e82007-05-05 11:45:53 -0700114
Johannes Bergf4ea83d2008-06-30 15:10:46 +0200115 This option increases code size a bit and inserts a lot
116 of function calls in the code, but is otherwise safe to
117 enable.
118
119 If unsure, say N unless you expect to be finding problems
120 in mac80211.
121
122config MAC80211_VERBOSE_DEBUG
123 bool "Verbose debugging output"
124 depends on MAC80211_DEBUG_MENU
Masahiro Yamadaa7f7f622020-06-14 01:50:22 +0900125 help
Johannes Bergf4ea83d2008-06-30 15:10:46 +0200126 Selecting this option causes mac80211 to print out
127 many debugging messages. It should not be selected
128 on production systems as some of the messages are
129 remotely triggerable.
130
131 Do not select this option.
Jiri Bencf0706e82007-05-05 11:45:53 -0700132
Johannes Bergbdcbd8e2012-06-22 11:29:50 +0200133config MAC80211_MLME_DEBUG
134 bool "Verbose managed MLME output"
135 depends on MAC80211_DEBUG_MENU
Masahiro Yamadaa7f7f622020-06-14 01:50:22 +0900136 help
Johannes Bergbdcbd8e2012-06-22 11:29:50 +0200137 Selecting this option causes mac80211 to print out
138 debugging messages for the managed-mode MLME. It
139 should not be selected on production systems as some
140 of the messages are remotely triggerable.
141
142 Do not select this option.
143
144config MAC80211_STA_DEBUG
145 bool "Verbose station debugging"
146 depends on MAC80211_DEBUG_MENU
Masahiro Yamadaa7f7f622020-06-14 01:50:22 +0900147 help
Johannes Bergbdcbd8e2012-06-22 11:29:50 +0200148 Selecting this option causes mac80211 to print out
149 debugging messages for station addition/removal.
150
151 Do not select this option.
152
Ron Rindjunsky82b3cad2007-12-16 16:09:26 -0800153config MAC80211_HT_DEBUG
Johannes Bergf4ea83d2008-06-30 15:10:46 +0200154 bool "Verbose HT debugging"
155 depends on MAC80211_DEBUG_MENU
Masahiro Yamadaa7f7f622020-06-14 01:50:22 +0900156 help
John W. Linvillec40896d2007-12-21 00:44:59 -0500157 This option enables 802.11n High Throughput features
158 debug tracing output.
Ron Rindjunsky82b3cad2007-12-16 16:09:26 -0800159
Johannes Bergf4ea83d2008-06-30 15:10:46 +0200160 It should not be selected on production systems as some
161 of the messages are remotely triggerable.
Ron Rindjunsky82b3cad2007-12-16 16:09:26 -0800162
Johannes Bergf4ea83d2008-06-30 15:10:46 +0200163 Do not select this option.
164
Rostislav Lisovy239281f2014-11-03 10:33:19 +0100165config MAC80211_OCB_DEBUG
166 bool "Verbose OCB debugging"
167 depends on MAC80211_DEBUG_MENU
Masahiro Yamadaa7f7f622020-06-14 01:50:22 +0900168 help
Rostislav Lisovy239281f2014-11-03 10:33:19 +0100169 Selecting this option causes mac80211 to print out
170 very verbose OCB debugging messages. It should not
171 be selected on production systems as those messages
172 are remotely triggerable.
173
174 Do not select this option.
175
Johannes Bergf4ea83d2008-06-30 15:10:46 +0200176config MAC80211_IBSS_DEBUG
177 bool "Verbose IBSS debugging"
178 depends on MAC80211_DEBUG_MENU
Masahiro Yamadaa7f7f622020-06-14 01:50:22 +0900179 help
Johannes Bergf4ea83d2008-06-30 15:10:46 +0200180 Selecting this option causes mac80211 to print out
181 very verbose IBSS 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
Johannes Bergbdcbd8e2012-06-22 11:29:50 +0200187config MAC80211_PS_DEBUG
Johannes Bergf4ea83d2008-06-30 15:10:46 +0200188 bool "Verbose powersave mode debugging"
189 depends on MAC80211_DEBUG_MENU
Masahiro Yamadaa7f7f622020-06-14 01:50:22 +0900190 help
Johannes Bergf4ea83d2008-06-30 15:10:46 +0200191 Selecting this option causes mac80211 to print out very
192 verbose power save mode debugging messages (when mac80211
193 is an AP and has power saving stations.)
194 It should not be selected on production systems as those
195 messages are remotely triggerable.
196
197 Do not select this option.
198
Johannes Bergbdcbd8e2012-06-22 11:29:50 +0200199config MAC80211_MPL_DEBUG
Johannes Bergf4ea83d2008-06-30 15:10:46 +0200200 bool "Verbose mesh peer link debugging"
201 depends on MAC80211_DEBUG_MENU
202 depends on MAC80211_MESH
Masahiro Yamadaa7f7f622020-06-14 01:50:22 +0900203 help
Johannes Bergf4ea83d2008-06-30 15:10:46 +0200204 Selecting this option causes mac80211 to print out very
205 verbose mesh peer link debugging messages (when mac80211
206 is taking part in a mesh network).
207 It should not be selected on production systems as those
208 messages are remotely triggerable.
209
210 Do not select this option.
Jiri Bencf0706e82007-05-05 11:45:53 -0700211
Johannes Bergbdcbd8e2012-06-22 11:29:50 +0200212config MAC80211_MPATH_DEBUG
Javier Cardona76468872011-08-09 16:45:04 -0700213 bool "Verbose mesh path debugging"
214 depends on MAC80211_DEBUG_MENU
215 depends on MAC80211_MESH
Masahiro Yamadaa7f7f622020-06-14 01:50:22 +0900216 help
Javier Cardona76468872011-08-09 16:45:04 -0700217 Selecting this option causes mac80211 to print out very
218 verbose mesh path selection 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
Johannes Bergbdcbd8e2012-06-22 11:29:50 +0200225config MAC80211_MHWMP_DEBUG
Rui Paulo27db2e42009-11-09 23:46:45 +0000226 bool "Verbose mesh HWMP routing debugging"
227 depends on MAC80211_DEBUG_MENU
228 depends on MAC80211_MESH
Masahiro Yamadaa7f7f622020-06-14 01:50:22 +0900229 help
Rui Paulo27db2e42009-11-09 23:46:45 +0000230 Selecting this option causes mac80211 to print out very
231 verbose mesh routing (HWMP) 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
Johannes Bergbdcbd8e2012-06-22 11:29:50 +0200238config MAC80211_MESH_SYNC_DEBUG
Marco Porschf53c6a02012-10-17 20:21:30 -0700239 bool "Verbose mesh synchronization debugging"
Javier Cardonadbf498f2012-03-31 11:31:32 -0700240 depends on MAC80211_DEBUG_MENU
241 depends on MAC80211_MESH
Masahiro Yamadaa7f7f622020-06-14 01:50:22 +0900242 help
Javier Cardonadbf498f2012-03-31 11:31:32 -0700243 Selecting this option causes mac80211 to print out very verbose mesh
244 synchronization debugging messages (when mac80211 is taking part in a
245 mesh network).
246
247 Do not select this option.
248
Chun-Yeow Yeoh8f2535b2013-10-14 19:08:27 -0700249config MAC80211_MESH_CSA_DEBUG
250 bool "Verbose mesh channel switch debugging"
251 depends on MAC80211_DEBUG_MENU
252 depends on MAC80211_MESH
Masahiro Yamadaa7f7f622020-06-14 01:50:22 +0900253 help
Chun-Yeow Yeoh8f2535b2013-10-14 19:08:27 -0700254 Selecting this option causes mac80211 to print out very verbose mesh
255 channel switch debugging messages (when mac80211 is taking part in a
256 mesh network).
257
258 Do not select this option.
259
Marco Porsch3f52b7e2013-01-30 18:14:08 +0100260config MAC80211_MESH_PS_DEBUG
261 bool "Verbose mesh powersave debugging"
262 depends on MAC80211_DEBUG_MENU
263 depends on MAC80211_MESH
Masahiro Yamadaa7f7f622020-06-14 01:50:22 +0900264 help
Marco Porsch3f52b7e2013-01-30 18:14:08 +0100265 Selecting this option causes mac80211 to print out very verbose mesh
266 powersave debugging messages (when mac80211 is taking part in a
267 mesh network).
268
269 Do not select this option.
270
Johannes Bergbdcbd8e2012-06-22 11:29:50 +0200271config MAC80211_TDLS_DEBUG
Arik Nemtsovdfe018b2011-09-28 14:12:52 +0300272 bool "Verbose TDLS debugging"
273 depends on MAC80211_DEBUG_MENU
Masahiro Yamadaa7f7f622020-06-14 01:50:22 +0900274 help
Arik Nemtsovdfe018b2011-09-28 14:12:52 +0300275 Selecting this option causes mac80211 to print out very
276 verbose TDLS selection debugging messages (when mac80211
277 is a TDLS STA).
278 It should not be selected on production systems as those
279 messages are remotely triggerable.
280
281 Do not select this option.
282
Jiri Bencf0706e82007-05-05 11:45:53 -0700283config MAC80211_DEBUG_COUNTERS
284 bool "Extra statistics for TX/RX debugging"
Johannes Bergf4ea83d2008-06-30 15:10:46 +0200285 depends on MAC80211_DEBUG_MENU
286 depends on MAC80211_DEBUGFS
Masahiro Yamadaa7f7f622020-06-14 01:50:22 +0900287 help
Johannes Bergf4ea83d2008-06-30 15:10:46 +0200288 Selecting this option causes mac80211 to keep additional
289 and very verbose statistics about TX and RX handler use
Johannes Bergc206ca62015-04-22 20:47:28 +0200290 as well as a few selected dot11 counters. These will be
291 exposed in debugfs.
292
293 Note that some of the counters are not concurrency safe
294 and may thus not always be accurate.
Jiri Bencf0706e82007-05-05 11:45:53 -0700295
Johannes Bergf4ea83d2008-06-30 15:10:46 +0200296 If unsure, say N.
Johannes Bergebd82b32015-04-23 17:26:06 +0200297
298config MAC80211_STA_HASH_MAX_SIZE
299 int "Station hash table maximum size" if MAC80211_DEBUG_MENU
300 default 0
Masahiro Yamadaa7f7f622020-06-14 01:50:22 +0900301 help
Johannes Bergebd82b32015-04-23 17:26:06 +0200302 Setting this option to a low value (e.g. 4) allows testing the
303 hash table with collisions relatively deterministically (just
304 connect more stations than the number selected here.)
305
306 If unsure, leave the default of 0.