xref: /linux/net/mac80211/Kconfig (revision 90602c251cda8a1e526efb250f28c1ea3f87cd78)
1ec8f24b7SThomas Gleixner# SPDX-License-Identifier: GPL-2.0-only
2f0706e82SJiri Bencconfig MAC80211
3f0706e82SJiri Benc	tristate "Generic IEEE 802.11 Networking Stack (mac80211)"
40aa8204bSJohannes Berg	depends on CFG80211
5f0706e82SJiri Benc	select CRYPTO
65fdb3735SArd Biesheuvel	select CRYPTO_LIB_ARC4
7f0706e82SJiri Benc	select CRYPTO_AES
87ec7c4a9SArd Biesheuvel	select CRYPTO_CCM
900b9cfa3SJouni Malinen	select CRYPTO_GCM
10fe8de3daSArd Biesheuvel	select CRYPTO_CMAC
11f0706e82SJiri Benc	select CRC32
12a7f7f624SMasahiro Yamada	help
13f0706e82SJiri Benc	  This option enables the hardware independent IEEE 802.11
14f0706e82SJiri Benc	  networking stack.
15f0706e82SJiri Benc
160aa8204bSJohannes Bergcomment "CFG80211 needs to be enabled for MAC80211"
170aa8204bSJohannes Berg	depends on CFG80211=n
180aa8204bSJohannes Berg
19abd8ea22SLuis R. Rodriguezif MAC80211 != n
20ac71c691SJohannes Berg
21c2ef355bSAndres Salomonconfig MAC80211_HAS_RC
22540005c7SJan Beulich	bool
23c2ef355bSAndres Salomon
24cccf129fSFelix Fietkauconfig MAC80211_RC_MINSTREL
256a108a14SDavid Rientjes	bool "Minstrel" if EXPERT
26c2ef355bSAndres Salomon	select MAC80211_HAS_RC
278eb41c93SLuis R. Rodriguez	default y
28a7f7f624SMasahiro Yamada	help
29cccf129fSFelix Fietkau	  This option enables the 'minstrel' TX rate control algorithm
30cccf129fSFelix Fietkau
31c21b39acSStefano Briviochoice
32c21b39acSStefano Brivio	prompt "Default rate control algorithm"
33c2ef355bSAndres Salomon	depends on MAC80211_HAS_RC
348eb41c93SLuis R. Rodriguez	default MAC80211_RC_DEFAULT_MINSTREL
35a7f7f624SMasahiro Yamada	help
36c21b39acSStefano Brivio	  This option selects the default rate control algorithm
37c21b39acSStefano Brivio	  mac80211 will use. Note that this default can still be
38692105b8SMatt LaPlante	  overridden through the ieee80211_default_rc_algo module
394b475898SJohannes Berg	  parameter if different algorithms are available.
40ac71c691SJohannes Berg
41cccf129fSFelix Fietkauconfig MAC80211_RC_DEFAULT_MINSTREL
42cccf129fSFelix Fietkau	bool "Minstrel"
43cccf129fSFelix Fietkau	depends on MAC80211_RC_MINSTREL
44a7f7f624SMasahiro Yamada	help
45cccf129fSFelix Fietkau	  Select Minstrel as the default rate control algorithm.
46cccf129fSFelix Fietkau
47cccf129fSFelix Fietkau
48c21b39acSStefano Brivioendchoice
49c21b39acSStefano Brivio
50c21b39acSStefano Brivioconfig MAC80211_RC_DEFAULT
51c21b39acSStefano Brivio	string
52b1c4f683SFelix Fietkau	default "minstrel_ht" if MAC80211_RC_DEFAULT_MINSTREL
53c21b39acSStefano Brivio	default ""
54c21b39acSStefano Brivio
55abd8ea22SLuis R. Rodriguezendif
56ad018375SMattias Nissler
57c2ef355bSAndres Salomoncomment "Some wireless drivers require a rate control algorithm"
58e46395a4SJohannes Berg	depends on MAC80211 && MAC80211_HAS_RC=n
59c2ef355bSAndres Salomon
60ffbd0c8cSJohannes Bergconfig MAC80211_KUNIT_TEST
61ffbd0c8cSJohannes Berg	tristate "KUnit tests for mac80211" if !KUNIT_ALL_TESTS
62ffbd0c8cSJohannes Berg	depends on KUNIT
63ffbd0c8cSJohannes Berg	depends on MAC80211
64ffbd0c8cSJohannes Berg	default KUNIT_ALL_TESTS
65ffbd0c8cSJohannes Berg	help
66ffbd0c8cSJohannes Berg	  Enable this option to test mac80211 internals with kunit.
67ffbd0c8cSJohannes Berg
68ffbd0c8cSJohannes Berg	  If unsure, say N.
69ffbd0c8cSJohannes Berg
702f5ce793SJohannes Bergconfig MAC80211_MESH
71c8d10cbdSBob Copeland	bool "Enable mac80211 mesh networking support"
7248f6edceSKees Cook	depends on MAC80211
73a7f7f624SMasahiro Yamada	help
74c8d10cbdSBob Copeland	  Select this option to enable 802.11 mesh operation in mac80211
75c8d10cbdSBob Copeland	  drivers that support it.  802.11 mesh connects multiple stations
76c8d10cbdSBob Copeland	  over (possibly multi-hop) wireless links to form a single logical
77c8d10cbdSBob Copeland	  LAN.
782f5ce793SJohannes Berg
79f0706e82SJiri Bencconfig MAC80211_LEDS
80f0706e82SJiri Benc	bool "Enable LED triggers"
81bd8fd21dSLuca Tettamanti	depends on MAC80211
82b64acb28SArnd Bergmann	depends on LEDS_CLASS=y || LEDS_CLASS=MAC80211
83bd8fd21dSLuca Tettamanti	select LEDS_TRIGGERS
84a7f7f624SMasahiro Yamada	help
85f0706e82SJiri Benc	  This option enables a few LED triggers for different
86f0706e82SJiri Benc	  packet receive/transmit events.
87f0706e82SJiri Benc
88e9f207f0SJiri Bencconfig MAC80211_DEBUGFS
89e9f207f0SJiri Benc	bool "Export mac80211 internals in DebugFS"
903d529cd1SJohannes Berg	depends on MAC80211 && CFG80211_DEBUGFS
91a7f7f624SMasahiro Yamada	help
92e9f207f0SJiri Benc	  Select this to see extensive information about
93e9f207f0SJiri Benc	  the internal state of mac80211 in debugfs.
94e9f207f0SJiri Benc
95e9f207f0SJiri Benc	  Say N unless you know you need this.
96e9f207f0SJiri Benc
973fae0273SJohannes Bergconfig MAC80211_MESSAGE_TRACING
983fae0273SJohannes Berg	bool "Trace all mac80211 debug messages"
99*b3e046c3SGeert Uytterhoeven	depends on MAC80211 && TRACING
100a7f7f624SMasahiro Yamada	help
1013fae0273SJohannes Berg	  Select this option to have mac80211 register the
1023fae0273SJohannes Berg	  mac80211_msg trace subsystem with tracepoints to
1033fae0273SJohannes Berg	  collect all debugging messages, independent of
1043fae0273SJohannes Berg	  printing them into the kernel log.
1053fae0273SJohannes Berg
1063fae0273SJohannes Berg	  The overhead in this option is that all the messages
1073fae0273SJohannes Berg	  need to be present in the binary and formatted at
1083fae0273SJohannes Berg	  runtime for tracing.
1093fae0273SJohannes Berg
110f4ea83ddSJohannes Bergmenuconfig MAC80211_DEBUG_MENU
111f4ea83ddSJohannes Berg	bool "Select mac80211 debugging features"
112f4ea83ddSJohannes Berg	depends on MAC80211
113a7f7f624SMasahiro Yamada	help
114f4ea83ddSJohannes Berg	  This option collects various mac80211 debug settings.
115f4ea83ddSJohannes Berg
116f4ea83ddSJohannes Bergconfig MAC80211_NOINLINE
117f4ea83ddSJohannes Berg	bool "Do not inline TX/RX handlers"
118f4ea83ddSJohannes Berg	depends on MAC80211_DEBUG_MENU
119a7f7f624SMasahiro Yamada	help
120f4ea83ddSJohannes Berg	  This option affects code generation in mac80211, when
121f4ea83ddSJohannes Berg	  selected some functions are marked "noinline" to allow
122f4ea83ddSJohannes Berg	  easier debugging of problems in the transmit and receive
123f4ea83ddSJohannes Berg	  paths.
124f0706e82SJiri Benc
125f4ea83ddSJohannes Berg	  This option increases code size a bit and inserts a lot
126f4ea83ddSJohannes Berg	  of function calls in the code, but is otherwise safe to
127f4ea83ddSJohannes Berg	  enable.
128f4ea83ddSJohannes Berg
129f4ea83ddSJohannes Berg	  If unsure, say N unless you expect to be finding problems
130f4ea83ddSJohannes Berg	  in mac80211.
131f4ea83ddSJohannes Berg
132f4ea83ddSJohannes Bergconfig MAC80211_VERBOSE_DEBUG
133f4ea83ddSJohannes Berg	bool "Verbose debugging output"
134f4ea83ddSJohannes Berg	depends on MAC80211_DEBUG_MENU
135a7f7f624SMasahiro Yamada	help
136f4ea83ddSJohannes Berg	  Selecting this option causes mac80211 to print out
137f4ea83ddSJohannes Berg	  many debugging messages. It should not be selected
138f4ea83ddSJohannes Berg	  on production systems as some of the messages are
139f4ea83ddSJohannes Berg	  remotely triggerable.
140f4ea83ddSJohannes Berg
141f4ea83ddSJohannes Berg	  Do not select this option.
142f0706e82SJiri Benc
143bdcbd8e0SJohannes Bergconfig MAC80211_MLME_DEBUG
144bdcbd8e0SJohannes Berg	bool "Verbose managed MLME output"
145bdcbd8e0SJohannes Berg	depends on MAC80211_DEBUG_MENU
146a7f7f624SMasahiro Yamada	help
147bdcbd8e0SJohannes Berg	  Selecting this option causes mac80211 to print out
148bdcbd8e0SJohannes Berg	  debugging messages for the managed-mode MLME. It
149bdcbd8e0SJohannes Berg	  should not be selected on production systems as some
150bdcbd8e0SJohannes Berg	  of the messages are remotely triggerable.
151bdcbd8e0SJohannes Berg
152bdcbd8e0SJohannes Berg	  Do not select this option.
153bdcbd8e0SJohannes Berg
154bdcbd8e0SJohannes Bergconfig MAC80211_STA_DEBUG
155bdcbd8e0SJohannes Berg	bool "Verbose station debugging"
156bdcbd8e0SJohannes Berg	depends on MAC80211_DEBUG_MENU
157a7f7f624SMasahiro Yamada	help
158bdcbd8e0SJohannes Berg	  Selecting this option causes mac80211 to print out
159bdcbd8e0SJohannes Berg	  debugging messages for station addition/removal.
160bdcbd8e0SJohannes Berg
161bdcbd8e0SJohannes Berg	  Do not select this option.
162bdcbd8e0SJohannes Berg
16382b3cad9SRon Rindjunskyconfig MAC80211_HT_DEBUG
164f4ea83ddSJohannes Berg	bool "Verbose HT debugging"
165f4ea83ddSJohannes Berg	depends on MAC80211_DEBUG_MENU
166a7f7f624SMasahiro Yamada	help
16782b3cad9SRon Rindjunsky	  This option enables 802.11n High Throughput features
16882b3cad9SRon Rindjunsky	  debug tracing output.
16982b3cad9SRon Rindjunsky
170f4ea83ddSJohannes Berg	  It should not be selected on production systems as some
171f4ea83ddSJohannes Berg	  of the messages are remotely triggerable.
17282b3cad9SRon Rindjunsky
173f4ea83ddSJohannes Berg	  Do not select this option.
174f4ea83ddSJohannes Berg
175239281f8SRostislav Lisovyconfig MAC80211_OCB_DEBUG
176239281f8SRostislav Lisovy	bool "Verbose OCB debugging"
177239281f8SRostislav Lisovy	depends on MAC80211_DEBUG_MENU
178a7f7f624SMasahiro Yamada	help
179239281f8SRostislav Lisovy	  Selecting this option causes mac80211 to print out
180239281f8SRostislav Lisovy	  very verbose OCB debugging messages. It should not
181239281f8SRostislav Lisovy	  be selected on production systems as those messages
182239281f8SRostislav Lisovy	  are remotely triggerable.
183239281f8SRostislav Lisovy
184239281f8SRostislav Lisovy	  Do not select this option.
185239281f8SRostislav Lisovy
186f4ea83ddSJohannes Bergconfig MAC80211_IBSS_DEBUG
187f4ea83ddSJohannes Berg	bool "Verbose IBSS debugging"
188f4ea83ddSJohannes Berg	depends on MAC80211_DEBUG_MENU
189a7f7f624SMasahiro Yamada	help
190f4ea83ddSJohannes Berg	  Selecting this option causes mac80211 to print out
191f4ea83ddSJohannes Berg	  very verbose IBSS debugging messages. It should not
192f4ea83ddSJohannes Berg	  be selected on production systems as those messages
193f4ea83ddSJohannes Berg	  are remotely triggerable.
194f4ea83ddSJohannes Berg
195f4ea83ddSJohannes Berg	  Do not select this option.
196f4ea83ddSJohannes Berg
197bdcbd8e0SJohannes Bergconfig MAC80211_PS_DEBUG
198f4ea83ddSJohannes Berg	bool "Verbose powersave mode debugging"
199f4ea83ddSJohannes Berg	depends on MAC80211_DEBUG_MENU
200a7f7f624SMasahiro Yamada	help
201f4ea83ddSJohannes Berg	  Selecting this option causes mac80211 to print out very
202f4ea83ddSJohannes Berg	  verbose power save mode debugging messages (when mac80211
203f4ea83ddSJohannes Berg	  is an AP and has power saving stations.)
204f4ea83ddSJohannes Berg	  It should not be selected on production systems as those
205f4ea83ddSJohannes Berg	  messages are remotely triggerable.
206f4ea83ddSJohannes Berg
207f4ea83ddSJohannes Berg	  Do not select this option.
208f4ea83ddSJohannes Berg
209bdcbd8e0SJohannes Bergconfig MAC80211_MPL_DEBUG
210f4ea83ddSJohannes Berg	bool "Verbose mesh peer link debugging"
211f4ea83ddSJohannes Berg	depends on MAC80211_DEBUG_MENU
212f4ea83ddSJohannes Berg	depends on MAC80211_MESH
213a7f7f624SMasahiro Yamada	help
214f4ea83ddSJohannes Berg	  Selecting this option causes mac80211 to print out very
215f4ea83ddSJohannes Berg	  verbose mesh peer link debugging messages (when mac80211
216f4ea83ddSJohannes Berg	  is taking part in a mesh network).
217f4ea83ddSJohannes Berg	  It should not be selected on production systems as those
218f4ea83ddSJohannes Berg	  messages are remotely triggerable.
219f4ea83ddSJohannes Berg
220f4ea83ddSJohannes Berg	  Do not select this option.
221f0706e82SJiri Benc
222bdcbd8e0SJohannes Bergconfig MAC80211_MPATH_DEBUG
2237646887aSJavier Cardona	bool "Verbose mesh path debugging"
2247646887aSJavier Cardona	depends on MAC80211_DEBUG_MENU
2257646887aSJavier Cardona	depends on MAC80211_MESH
226a7f7f624SMasahiro Yamada	help
2277646887aSJavier Cardona	  Selecting this option causes mac80211 to print out very
2287646887aSJavier Cardona	  verbose mesh path selection debugging messages (when mac80211
2297646887aSJavier Cardona	  is taking part in a mesh network).
2307646887aSJavier Cardona	  It should not be selected on production systems as those
2317646887aSJavier Cardona	  messages are remotely triggerable.
2327646887aSJavier Cardona
2337646887aSJavier Cardona	  Do not select this option.
2347646887aSJavier Cardona
235bdcbd8e0SJohannes Bergconfig MAC80211_MHWMP_DEBUG
23627db2e42SRui Paulo	bool "Verbose mesh HWMP routing debugging"
23727db2e42SRui Paulo	depends on MAC80211_DEBUG_MENU
23827db2e42SRui Paulo	depends on MAC80211_MESH
239a7f7f624SMasahiro Yamada	help
24027db2e42SRui Paulo	  Selecting this option causes mac80211 to print out very
24127db2e42SRui Paulo	  verbose mesh routing (HWMP) debugging messages (when mac80211
24227db2e42SRui Paulo	  is taking part in a mesh network).
24327db2e42SRui Paulo	  It should not be selected on production systems as those
24427db2e42SRui Paulo	  messages are remotely triggerable.
24527db2e42SRui Paulo
24627db2e42SRui Paulo	  Do not select this option.
24727db2e42SRui Paulo
248bdcbd8e0SJohannes Bergconfig MAC80211_MESH_SYNC_DEBUG
249f53c6a0dSMarco Porsch	bool "Verbose mesh synchronization debugging"
250dbf498fbSJavier Cardona	depends on MAC80211_DEBUG_MENU
251dbf498fbSJavier Cardona	depends on MAC80211_MESH
252a7f7f624SMasahiro Yamada	help
253dbf498fbSJavier Cardona	  Selecting this option causes mac80211 to print out very verbose mesh
254dbf498fbSJavier Cardona	  synchronization debugging messages (when mac80211 is taking part in a
255dbf498fbSJavier Cardona	  mesh network).
256dbf498fbSJavier Cardona
257dbf498fbSJavier Cardona	  Do not select this option.
258dbf498fbSJavier Cardona
2598f2535b9SChun-Yeow Yeohconfig MAC80211_MESH_CSA_DEBUG
2608f2535b9SChun-Yeow Yeoh	bool "Verbose mesh channel switch debugging"
2618f2535b9SChun-Yeow Yeoh	depends on MAC80211_DEBUG_MENU
2628f2535b9SChun-Yeow Yeoh	depends on MAC80211_MESH
263a7f7f624SMasahiro Yamada	help
2648f2535b9SChun-Yeow Yeoh	  Selecting this option causes mac80211 to print out very verbose mesh
2658f2535b9SChun-Yeow Yeoh	  channel switch debugging messages (when mac80211 is taking part in a
2668f2535b9SChun-Yeow Yeoh	  mesh network).
2678f2535b9SChun-Yeow Yeoh
2688f2535b9SChun-Yeow Yeoh	  Do not select this option.
2698f2535b9SChun-Yeow Yeoh
2703f52b7e3SMarco Porschconfig MAC80211_MESH_PS_DEBUG
2713f52b7e3SMarco Porsch	bool "Verbose mesh powersave debugging"
2723f52b7e3SMarco Porsch	depends on MAC80211_DEBUG_MENU
2733f52b7e3SMarco Porsch	depends on MAC80211_MESH
274a7f7f624SMasahiro Yamada	help
2753f52b7e3SMarco Porsch	  Selecting this option causes mac80211 to print out very verbose mesh
2763f52b7e3SMarco Porsch	  powersave debugging messages (when mac80211 is taking part in a
2773f52b7e3SMarco Porsch	  mesh network).
2783f52b7e3SMarco Porsch
2793f52b7e3SMarco Porsch	  Do not select this option.
2803f52b7e3SMarco Porsch
281bdcbd8e0SJohannes Bergconfig MAC80211_TDLS_DEBUG
282dfe018bfSArik Nemtsov	bool "Verbose TDLS debugging"
283dfe018bfSArik Nemtsov	depends on MAC80211_DEBUG_MENU
284a7f7f624SMasahiro Yamada	help
285dfe018bfSArik Nemtsov	  Selecting this option causes mac80211 to print out very
286dfe018bfSArik Nemtsov	  verbose TDLS selection debugging messages (when mac80211
287dfe018bfSArik Nemtsov	  is a TDLS STA).
288dfe018bfSArik Nemtsov	  It should not be selected on production systems as those
289dfe018bfSArik Nemtsov	  messages are remotely triggerable.
290dfe018bfSArik Nemtsov
291dfe018bfSArik Nemtsov	  Do not select this option.
292dfe018bfSArik Nemtsov
293f0706e82SJiri Bencconfig MAC80211_DEBUG_COUNTERS
294f0706e82SJiri Benc	bool "Extra statistics for TX/RX debugging"
295f4ea83ddSJohannes Berg	depends on MAC80211_DEBUG_MENU
296f4ea83ddSJohannes Berg	depends on MAC80211_DEBUGFS
297a7f7f624SMasahiro Yamada	help
298f4ea83ddSJohannes Berg	  Selecting this option causes mac80211 to keep additional
299f4ea83ddSJohannes Berg	  and very verbose statistics about TX and RX handler use
300c206ca67SJohannes Berg	  as well as a few selected dot11 counters. These will be
301c206ca67SJohannes Berg	  exposed in debugfs.
302c206ca67SJohannes Berg
303c206ca67SJohannes Berg	  Note that some of the counters are not concurrency safe
304c206ca67SJohannes Berg	  and may thus not always be accurate.
305f0706e82SJiri Benc
306f4ea83ddSJohannes Berg	  If unsure, say N.
307ebd82b39SJohannes Berg
308ebd82b39SJohannes Bergconfig MAC80211_STA_HASH_MAX_SIZE
309ebd82b39SJohannes Berg	int "Station hash table maximum size" if MAC80211_DEBUG_MENU
310ebd82b39SJohannes Berg	default 0
311a7f7f624SMasahiro Yamada	help
312ebd82b39SJohannes Berg	  Setting this option to a low value (e.g. 4) allows testing the
313ebd82b39SJohannes Berg	  hash table with collisions relatively deterministically (just
314ebd82b39SJohannes Berg	  connect more stations than the number selected here.)
315ebd82b39SJohannes Berg
316ebd82b39SJohannes Berg	  If unsure, leave the default of 0.
317