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