xref: /linux/net/wireless/Kconfig (revision 24bce201d79807b668bf9d9e0aca801c5c0d5f78)
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	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
39if CFG80211
40
41config 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
55config 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
71config 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
92config 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
102config 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
114config 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
125config 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
138config 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
162config 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
172config 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
180config 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
190config 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
198config 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
204endif # CFG80211
205
206config 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
215config LIB80211_CRYPT_WEP
216	tristate
217	select CRYPTO_LIB_ARC4
218
219config LIB80211_CRYPT_CCMP
220	tristate
221	select CRYPTO
222	select CRYPTO_AES
223	select CRYPTO_CCM
224
225config LIB80211_CRYPT_TKIP
226	tristate
227	select CRYPTO_LIB_ARC4
228
229config 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