xref: /OK3568_Linux_fs/kernel/net/wireless/Kconfig (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0-only
2*4882a593Smuzhiyunconfig WIRELESS_EXT
3*4882a593Smuzhiyun	bool
4*4882a593Smuzhiyun
5*4882a593Smuzhiyunconfig WEXT_CORE
6*4882a593Smuzhiyun	def_bool y
7*4882a593Smuzhiyun	depends on CFG80211_WEXT || WIRELESS_EXT
8*4882a593Smuzhiyun
9*4882a593Smuzhiyunconfig WEXT_PROC
10*4882a593Smuzhiyun	def_bool y
11*4882a593Smuzhiyun	depends on PROC_FS
12*4882a593Smuzhiyun	depends on WEXT_CORE
13*4882a593Smuzhiyun
14*4882a593Smuzhiyunconfig WEXT_SPY
15*4882a593Smuzhiyun	bool
16*4882a593Smuzhiyun
17*4882a593Smuzhiyunconfig WEXT_PRIV
18*4882a593Smuzhiyun	bool
19*4882a593Smuzhiyun
20*4882a593Smuzhiyunconfig CFG80211
21*4882a593Smuzhiyun	tristate "cfg80211 - wireless configuration API"
22*4882a593Smuzhiyun	depends on RFKILL || !RFKILL
23*4882a593Smuzhiyun	select FW_LOADER
24*4882a593Smuzhiyun	select CRC32
25*4882a593Smuzhiyun	# may need to update this when certificates are changed and are
26*4882a593Smuzhiyun	# using a different algorithm, though right now they shouldn't
27*4882a593Smuzhiyun	# (this is here rather than below to allow it to be a module)
28*4882a593Smuzhiyun	select CRYPTO_SHA256 if CFG80211_USE_KERNEL_REGDB_KEYS
29*4882a593Smuzhiyun	help
30*4882a593Smuzhiyun	  cfg80211 is the Linux wireless LAN (802.11) configuration API.
31*4882a593Smuzhiyun	  Enable this if you have a wireless device.
32*4882a593Smuzhiyun
33*4882a593Smuzhiyun	  For more information refer to documentation on the wireless wiki:
34*4882a593Smuzhiyun
35*4882a593Smuzhiyun	  https://wireless.wiki.kernel.org/en/developers/Documentation/cfg80211
36*4882a593Smuzhiyun
37*4882a593Smuzhiyun	  When built as a module it will be called cfg80211.
38*4882a593Smuzhiyun
39*4882a593Smuzhiyunif CFG80211
40*4882a593Smuzhiyun
41*4882a593Smuzhiyunconfig NL80211_TESTMODE
42*4882a593Smuzhiyun	bool "nl80211 testmode command"
43*4882a593Smuzhiyun	help
44*4882a593Smuzhiyun	  The nl80211 testmode command helps implementing things like
45*4882a593Smuzhiyun	  factory calibration or validation tools for wireless chips.
46*4882a593Smuzhiyun
47*4882a593Smuzhiyun	  Select this option ONLY for kernels that are specifically
48*4882a593Smuzhiyun	  built for such purposes.
49*4882a593Smuzhiyun
50*4882a593Smuzhiyun	  Debugging tools that are supposed to end up in the hands of
51*4882a593Smuzhiyun	  users should better be implemented with debugfs.
52*4882a593Smuzhiyun
53*4882a593Smuzhiyun	  Say N.
54*4882a593Smuzhiyun
55*4882a593Smuzhiyunconfig CFG80211_DEVELOPER_WARNINGS
56*4882a593Smuzhiyun	bool "enable developer warnings"
57*4882a593Smuzhiyun	default n
58*4882a593Smuzhiyun	help
59*4882a593Smuzhiyun	  This option enables some additional warnings that help
60*4882a593Smuzhiyun	  cfg80211 developers and driver developers, but beware that
61*4882a593Smuzhiyun	  they can also trigger due to races with userspace.
62*4882a593Smuzhiyun
63*4882a593Smuzhiyun	  For example, when a driver reports that it was disconnected
64*4882a593Smuzhiyun	  from the AP, but the user disconnects manually at the same
65*4882a593Smuzhiyun	  time, the warning might trigger spuriously due to races.
66*4882a593Smuzhiyun
67*4882a593Smuzhiyun	  Say Y only if you are developing cfg80211 or a driver based
68*4882a593Smuzhiyun	  on it (or mac80211).
69*4882a593Smuzhiyun
70*4882a593Smuzhiyun
71*4882a593Smuzhiyunconfig CFG80211_CERTIFICATION_ONUS
72*4882a593Smuzhiyun	bool "cfg80211 certification onus"
73*4882a593Smuzhiyun	depends on EXPERT
74*4882a593Smuzhiyun	default n
75*4882a593Smuzhiyun	help
76*4882a593Smuzhiyun	  You should disable this option unless you are both capable
77*4882a593Smuzhiyun	  and willing to ensure your system will remain regulatory
78*4882a593Smuzhiyun	  compliant with the features available under this option.
79*4882a593Smuzhiyun	  Some options may still be under heavy development and
80*4882a593Smuzhiyun	  for whatever reason regulatory compliance has not or
81*4882a593Smuzhiyun	  cannot yet be verified. Regulatory verification may at
82*4882a593Smuzhiyun	  times only be possible until you have the final system
83*4882a593Smuzhiyun	  in place.
84*4882a593Smuzhiyun
85*4882a593Smuzhiyun	  This option should only be enabled by system integrators
86*4882a593Smuzhiyun	  or distributions that have done work necessary to ensure
87*4882a593Smuzhiyun	  regulatory certification on the system with the enabled
88*4882a593Smuzhiyun	  features. Alternatively you can enable this option if
89*4882a593Smuzhiyun	  you are a wireless researcher and are working in a controlled
90*4882a593Smuzhiyun	  and approved environment by your local regulatory agency.
91*4882a593Smuzhiyun
92*4882a593Smuzhiyunconfig CFG80211_REQUIRE_SIGNED_REGDB
93*4882a593Smuzhiyun	bool "require regdb signature" if CFG80211_CERTIFICATION_ONUS
94*4882a593Smuzhiyun	default y if !ROCKCHIP_THUNDER_BOOT
95*4882a593Smuzhiyun	select SYSTEM_DATA_VERIFICATION
96*4882a593Smuzhiyun	help
97*4882a593Smuzhiyun	  Require that in addition to the "regulatory.db" file a
98*4882a593Smuzhiyun	  "regulatory.db.p7s" can be loaded with a valid PKCS#7
99*4882a593Smuzhiyun	  signature for the regulatory.db file made by one of the
100*4882a593Smuzhiyun	  keys in the certs/ directory.
101*4882a593Smuzhiyun
102*4882a593Smuzhiyunconfig CFG80211_USE_KERNEL_REGDB_KEYS
103*4882a593Smuzhiyun	bool "allow regdb keys shipped with the kernel" if CFG80211_CERTIFICATION_ONUS
104*4882a593Smuzhiyun	default y if !ROCKCHIP_THUNDER_BOOT
105*4882a593Smuzhiyun	depends on CFG80211_REQUIRE_SIGNED_REGDB
106*4882a593Smuzhiyun	help
107*4882a593Smuzhiyun	  Allow the regulatory database to be signed by one of the keys for
108*4882a593Smuzhiyun	  which certificates are part of the kernel sources
109*4882a593Smuzhiyun	  (in net/wireless/certs/).
110*4882a593Smuzhiyun
111*4882a593Smuzhiyun	  This is currently only Seth Forshee's key, who is the regulatory
112*4882a593Smuzhiyun	  database maintainer.
113*4882a593Smuzhiyun
114*4882a593Smuzhiyunconfig CFG80211_EXTRA_REGDB_KEYDIR
115*4882a593Smuzhiyun	string "additional regdb key directory" if CFG80211_CERTIFICATION_ONUS
116*4882a593Smuzhiyun	depends on CFG80211_REQUIRE_SIGNED_REGDB
117*4882a593Smuzhiyun	help
118*4882a593Smuzhiyun	  If selected, point to a directory with DER-encoded X.509
119*4882a593Smuzhiyun	  certificates like in the kernel sources (net/wireless/certs/)
120*4882a593Smuzhiyun	  that shall be accepted for a signed regulatory database.
121*4882a593Smuzhiyun
122*4882a593Smuzhiyun	  Note that you need to also select the correct CRYPTO_<hash> modules
123*4882a593Smuzhiyun	  for your certificates, and if cfg80211 is built-in they also must be.
124*4882a593Smuzhiyun
125*4882a593Smuzhiyunconfig CFG80211_REG_CELLULAR_HINTS
126*4882a593Smuzhiyun	bool "cfg80211 regulatory support for cellular base station hints"
127*4882a593Smuzhiyun	depends on CFG80211_CERTIFICATION_ONUS
128*4882a593Smuzhiyun	help
129*4882a593Smuzhiyun	  This option enables support for parsing regulatory hints
130*4882a593Smuzhiyun	  from cellular base stations. If enabled and at least one driver
131*4882a593Smuzhiyun	  claims support for parsing cellular base station hints the
132*4882a593Smuzhiyun	  regulatory core will allow and parse these regulatory hints.
133*4882a593Smuzhiyun	  The regulatory core will only apply these regulatory hints on
134*4882a593Smuzhiyun	  drivers that support this feature. You should only enable this
135*4882a593Smuzhiyun	  feature if you have tested and validated this feature on your
136*4882a593Smuzhiyun	  systems.
137*4882a593Smuzhiyun
138*4882a593Smuzhiyunconfig CFG80211_REG_RELAX_NO_IR
139*4882a593Smuzhiyun	bool "cfg80211 support for NO_IR relaxation"
140*4882a593Smuzhiyun	depends on CFG80211_CERTIFICATION_ONUS
141*4882a593Smuzhiyun	help
142*4882a593Smuzhiyun	 This option enables support for relaxation of the NO_IR flag for
143*4882a593Smuzhiyun	 situations that certain regulatory bodies have provided clarifications
144*4882a593Smuzhiyun	 on how relaxation can occur. This feature has an inherent dependency on
145*4882a593Smuzhiyun	 userspace features which must have been properly tested and as such is
146*4882a593Smuzhiyun	 not enabled by default.
147*4882a593Smuzhiyun
148*4882a593Smuzhiyun	 A relaxation feature example is allowing the operation of a P2P group
149*4882a593Smuzhiyun	 owner (GO) on channels marked with NO_IR if there is an additional BSS
150*4882a593Smuzhiyun	 interface which associated to an AP which userspace assumes or confirms
151*4882a593Smuzhiyun	 to be an authorized master, i.e., with radar detection support and DFS
152*4882a593Smuzhiyun	 capabilities. However, note that in order to not create daisy chain
153*4882a593Smuzhiyun	 scenarios, this relaxation is not allowed in cases where the BSS client
154*4882a593Smuzhiyun	 is associated to P2P GO and in addition the P2P GO instantiated on
155*4882a593Smuzhiyun	 a channel due to this relaxation should not allow connection from
156*4882a593Smuzhiyun	 non P2P clients.
157*4882a593Smuzhiyun
158*4882a593Smuzhiyun	 The regulatory core will apply these relaxations only for drivers that
159*4882a593Smuzhiyun	 support this feature by declaring the appropriate channel flags and
160*4882a593Smuzhiyun	 capabilities in their registration flow.
161*4882a593Smuzhiyun
162*4882a593Smuzhiyunconfig CFG80211_DEFAULT_PS
163*4882a593Smuzhiyun	bool "enable powersave by default"
164*4882a593Smuzhiyun	default y
165*4882a593Smuzhiyun	help
166*4882a593Smuzhiyun	  This option enables powersave mode by default.
167*4882a593Smuzhiyun
168*4882a593Smuzhiyun	  If this causes your applications to misbehave you should fix your
169*4882a593Smuzhiyun	  applications instead -- they need to register their network
170*4882a593Smuzhiyun	  latency requirement, see Documentation/power/pm_qos_interface.rst.
171*4882a593Smuzhiyun
172*4882a593Smuzhiyunconfig CFG80211_DEBUGFS
173*4882a593Smuzhiyun	bool "cfg80211 DebugFS entries"
174*4882a593Smuzhiyun	depends on DEBUG_FS
175*4882a593Smuzhiyun	help
176*4882a593Smuzhiyun	  You can enable this if you want debugfs entries for cfg80211.
177*4882a593Smuzhiyun
178*4882a593Smuzhiyun	  If unsure, say N.
179*4882a593Smuzhiyun
180*4882a593Smuzhiyunconfig CFG80211_CRDA_SUPPORT
181*4882a593Smuzhiyun	bool "support CRDA" if EXPERT
182*4882a593Smuzhiyun	default y
183*4882a593Smuzhiyun	help
184*4882a593Smuzhiyun	  You should enable this option unless you know for sure you have no
185*4882a593Smuzhiyun	  need for it, for example when using the regulatory database loaded as
186*4882a593Smuzhiyun	  a firmware file.
187*4882a593Smuzhiyun
188*4882a593Smuzhiyun	  If unsure, say Y.
189*4882a593Smuzhiyun
190*4882a593Smuzhiyunconfig CFG80211_WEXT
191*4882a593Smuzhiyun	bool "cfg80211 wireless extensions compatibility" if !CFG80211_WEXT_EXPORT
192*4882a593Smuzhiyun	select WEXT_CORE
193*4882a593Smuzhiyun	default y if CFG80211_WEXT_EXPORT
194*4882a593Smuzhiyun	help
195*4882a593Smuzhiyun	  Enable this option if you need old userspace for wireless
196*4882a593Smuzhiyun	  extensions with cfg80211-based drivers.
197*4882a593Smuzhiyun
198*4882a593Smuzhiyunconfig CFG80211_WEXT_EXPORT
199*4882a593Smuzhiyun	bool
200*4882a593Smuzhiyun	help
201*4882a593Smuzhiyun	  Drivers should select this option if they require cfg80211's
202*4882a593Smuzhiyun	  wext compatibility symbols to be exported.
203*4882a593Smuzhiyun
204*4882a593Smuzhiyunendif # CFG80211
205*4882a593Smuzhiyun
206*4882a593Smuzhiyunconfig LIB80211
207*4882a593Smuzhiyun	tristate
208*4882a593Smuzhiyun	default n
209*4882a593Smuzhiyun	help
210*4882a593Smuzhiyun	  This options enables a library of common routines used
211*4882a593Smuzhiyun	  by IEEE802.11 wireless LAN drivers.
212*4882a593Smuzhiyun
213*4882a593Smuzhiyun	  Drivers should select this themselves if needed.
214*4882a593Smuzhiyun
215*4882a593Smuzhiyunconfig LIB80211_CRYPT_WEP
216*4882a593Smuzhiyun	tristate
217*4882a593Smuzhiyun	select CRYPTO_LIB_ARC4
218*4882a593Smuzhiyun
219*4882a593Smuzhiyunconfig LIB80211_CRYPT_CCMP
220*4882a593Smuzhiyun	tristate
221*4882a593Smuzhiyun	select CRYPTO
222*4882a593Smuzhiyun	select CRYPTO_AES
223*4882a593Smuzhiyun	select CRYPTO_CCM
224*4882a593Smuzhiyun
225*4882a593Smuzhiyunconfig LIB80211_CRYPT_TKIP
226*4882a593Smuzhiyun	tristate
227*4882a593Smuzhiyun	select CRYPTO_LIB_ARC4
228*4882a593Smuzhiyun
229*4882a593Smuzhiyunconfig LIB80211_DEBUG
230*4882a593Smuzhiyun	bool "lib80211 debugging messages"
231*4882a593Smuzhiyun	depends on LIB80211
232*4882a593Smuzhiyun	default n
233*4882a593Smuzhiyun	help
234*4882a593Smuzhiyun	  You can enable this if you want verbose debugging messages
235*4882a593Smuzhiyun	  from lib80211.
236*4882a593Smuzhiyun
237*4882a593Smuzhiyun	  If unsure, say N.
238