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