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