Linux 6.10-rc4
[sfrench/cifs-2.6.git] / net / mac80211 / Kconfig
1 # SPDX-License-Identifier: GPL-2.0-only
2 config MAC80211
3         tristate "Generic IEEE 802.11 Networking Stack (mac80211)"
4         depends on CFG80211
5         select CRYPTO
6         select CRYPTO_LIB_ARC4
7         select CRYPTO_AES
8         select CRYPTO_CCM
9         select CRYPTO_GCM
10         select CRYPTO_CMAC
11         select CRC32
12         help
13           This option enables the hardware independent IEEE 802.11
14           networking stack.
15
16 comment "CFG80211 needs to be enabled for MAC80211"
17         depends on CFG80211=n
18
19 if MAC80211 != n
20
21 config MAC80211_HAS_RC
22         bool
23
24 config MAC80211_RC_MINSTREL
25         bool "Minstrel" if EXPERT
26         select MAC80211_HAS_RC
27         default y
28         help
29           This option enables the 'minstrel' TX rate control algorithm
30
31 choice
32         prompt "Default rate control algorithm"
33         depends on MAC80211_HAS_RC
34         default MAC80211_RC_DEFAULT_MINSTREL
35         help
36           This option selects the default rate control algorithm
37           mac80211 will use. Note that this default can still be
38           overridden through the ieee80211_default_rc_algo module
39           parameter if different algorithms are available.
40
41 config MAC80211_RC_DEFAULT_MINSTREL
42         bool "Minstrel"
43         depends on MAC80211_RC_MINSTREL
44         help
45           Select Minstrel as the default rate control algorithm.
46
47
48 endchoice
49
50 config MAC80211_RC_DEFAULT
51         string
52         default "minstrel_ht" if MAC80211_RC_DEFAULT_MINSTREL
53         default ""
54
55 endif
56
57 comment "Some wireless drivers require a rate control algorithm"
58         depends on MAC80211 && MAC80211_HAS_RC=n
59
60 config MAC80211_KUNIT_TEST
61         tristate "KUnit tests for mac80211" if !KUNIT_ALL_TESTS
62         depends on KUNIT
63         depends on MAC80211
64         default KUNIT_ALL_TESTS
65         help
66           Enable this option to test mac80211 internals with kunit.
67
68           If unsure, say N.
69
70 config MAC80211_MESH
71         bool "Enable mac80211 mesh networking support"
72         depends on MAC80211
73         help
74           Select this option to enable 802.11 mesh operation in mac80211
75           drivers that support it.  802.11 mesh connects multiple stations
76           over (possibly multi-hop) wireless links to form a single logical
77           LAN.
78
79 config MAC80211_LEDS
80         bool "Enable LED triggers"
81         depends on MAC80211
82         depends on LEDS_CLASS=y || LEDS_CLASS=MAC80211
83         select LEDS_TRIGGERS
84         help
85           This option enables a few LED triggers for different
86           packet receive/transmit events.
87
88 config MAC80211_DEBUGFS
89         bool "Export mac80211 internals in DebugFS"
90         depends on MAC80211 && CFG80211_DEBUGFS
91         help
92           Select this to see extensive information about
93           the internal state of mac80211 in debugfs.
94
95           Say N unless you know you need this.
96
97 config MAC80211_MESSAGE_TRACING
98         bool "Trace all mac80211 debug messages"
99         depends on MAC80211
100         help
101           Select this option to have mac80211 register the
102           mac80211_msg trace subsystem with tracepoints to
103           collect all debugging messages, independent of
104           printing them into the kernel log.
105
106           The overhead in this option is that all the messages
107           need to be present in the binary and formatted at
108           runtime for tracing.
109
110 menuconfig MAC80211_DEBUG_MENU
111         bool "Select mac80211 debugging features"
112         depends on MAC80211
113         help
114           This option collects various mac80211 debug settings.
115
116 config 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
132 config 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
143 config MAC80211_MLME_DEBUG
144         bool "Verbose managed MLME output"
145         depends on MAC80211_DEBUG_MENU
146         help
147           Selecting this option causes mac80211 to print out
148           debugging messages for the managed-mode MLME. It
149           should not be selected on production systems as some
150           of the messages are remotely triggerable.
151
152           Do not select this option.
153
154 config MAC80211_STA_DEBUG
155         bool "Verbose station debugging"
156         depends on MAC80211_DEBUG_MENU
157         help
158           Selecting this option causes mac80211 to print out
159           debugging messages for station addition/removal.
160
161           Do not select this option.
162
163 config MAC80211_HT_DEBUG
164         bool "Verbose HT debugging"
165         depends on MAC80211_DEBUG_MENU
166         help
167           This option enables 802.11n High Throughput features
168           debug tracing output.
169
170           It should not be selected on production systems as some
171           of the messages are remotely triggerable.
172
173           Do not select this option.
174
175 config MAC80211_OCB_DEBUG
176         bool "Verbose OCB debugging"
177         depends on MAC80211_DEBUG_MENU
178         help
179           Selecting this option causes mac80211 to print out
180           very verbose OCB debugging messages. It should not
181           be selected on production systems as those messages
182           are remotely triggerable.
183
184           Do not select this option.
185
186 config MAC80211_IBSS_DEBUG
187         bool "Verbose IBSS debugging"
188         depends on MAC80211_DEBUG_MENU
189         help
190           Selecting this option causes mac80211 to print out
191           very verbose IBSS debugging messages. It should not
192           be selected on production systems as those messages
193           are remotely triggerable.
194
195           Do not select this option.
196
197 config MAC80211_PS_DEBUG
198         bool "Verbose powersave mode debugging"
199         depends on MAC80211_DEBUG_MENU
200         help
201           Selecting this option causes mac80211 to print out very
202           verbose power save mode debugging messages (when mac80211
203           is an AP and has power saving stations.)
204           It should not be selected on production systems as those
205           messages are remotely triggerable.
206
207           Do not select this option.
208
209 config MAC80211_MPL_DEBUG
210         bool "Verbose mesh peer link debugging"
211         depends on MAC80211_DEBUG_MENU
212         depends on MAC80211_MESH
213         help
214           Selecting this option causes mac80211 to print out very
215           verbose mesh peer link debugging messages (when mac80211
216           is taking part in a mesh network).
217           It should not be selected on production systems as those
218           messages are remotely triggerable.
219
220           Do not select this option.
221
222 config MAC80211_MPATH_DEBUG
223         bool "Verbose mesh path debugging"
224         depends on MAC80211_DEBUG_MENU
225         depends on MAC80211_MESH
226         help
227           Selecting this option causes mac80211 to print out very
228           verbose mesh path selection debugging messages (when mac80211
229           is taking part in a mesh network).
230           It should not be selected on production systems as those
231           messages are remotely triggerable.
232
233           Do not select this option.
234
235 config MAC80211_MHWMP_DEBUG
236         bool "Verbose mesh HWMP routing debugging"
237         depends on MAC80211_DEBUG_MENU
238         depends on MAC80211_MESH
239         help
240           Selecting this option causes mac80211 to print out very
241           verbose mesh routing (HWMP) debugging messages (when mac80211
242           is taking part in a mesh network).
243           It should not be selected on production systems as those
244           messages are remotely triggerable.
245
246           Do not select this option.
247
248 config MAC80211_MESH_SYNC_DEBUG
249         bool "Verbose mesh synchronization debugging"
250         depends on MAC80211_DEBUG_MENU
251         depends on MAC80211_MESH
252         help
253           Selecting this option causes mac80211 to print out very verbose mesh
254           synchronization debugging messages (when mac80211 is taking part in a
255           mesh network).
256
257           Do not select this option.
258
259 config MAC80211_MESH_CSA_DEBUG
260         bool "Verbose mesh channel switch debugging"
261         depends on MAC80211_DEBUG_MENU
262         depends on MAC80211_MESH
263         help
264           Selecting this option causes mac80211 to print out very verbose mesh
265           channel switch debugging messages (when mac80211 is taking part in a
266           mesh network).
267
268           Do not select this option.
269
270 config MAC80211_MESH_PS_DEBUG
271         bool "Verbose mesh powersave debugging"
272         depends on MAC80211_DEBUG_MENU
273         depends on MAC80211_MESH
274         help
275           Selecting this option causes mac80211 to print out very verbose mesh
276           powersave debugging messages (when mac80211 is taking part in a
277           mesh network).
278
279           Do not select this option.
280
281 config MAC80211_TDLS_DEBUG
282         bool "Verbose TDLS debugging"
283         depends on MAC80211_DEBUG_MENU
284         help
285           Selecting this option causes mac80211 to print out very
286           verbose TDLS selection debugging messages (when mac80211
287           is a TDLS STA).
288           It should not be selected on production systems as those
289           messages are remotely triggerable.
290
291           Do not select this option.
292
293 config MAC80211_DEBUG_COUNTERS
294         bool "Extra statistics for TX/RX debugging"
295         depends on MAC80211_DEBUG_MENU
296         depends on MAC80211_DEBUGFS
297         help
298           Selecting this option causes mac80211 to keep additional
299           and very verbose statistics about TX and RX handler use
300           as well as a few selected dot11 counters. These will be
301           exposed in debugfs.
302
303           Note that some of the counters are not concurrency safe
304           and may thus not always be accurate.
305
306           If unsure, say N.
307
308 config MAC80211_STA_HASH_MAX_SIZE
309         int "Station hash table maximum size" if MAC80211_DEBUG_MENU
310         default 0
311         help
312           Setting this option to a low value (e.g. 4) allows testing the
313           hash table with collisions relatively deterministically (just
314           connect more stations than the number selected here.)
315
316           If unsure, leave the default of 0.