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