xref: /kernel/linux/linux-5.10/net/wireless/Kconfig (revision 8c2ecf20)
18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only
28c2ecf20Sopenharmony_ciconfig WIRELESS_EXT
38c2ecf20Sopenharmony_ci	bool
48c2ecf20Sopenharmony_ci
58c2ecf20Sopenharmony_ciconfig WEXT_CORE
68c2ecf20Sopenharmony_ci	def_bool y
78c2ecf20Sopenharmony_ci	depends on CFG80211_WEXT || WIRELESS_EXT
88c2ecf20Sopenharmony_ci
98c2ecf20Sopenharmony_ciconfig WEXT_PROC
108c2ecf20Sopenharmony_ci	def_bool y
118c2ecf20Sopenharmony_ci	depends on PROC_FS
128c2ecf20Sopenharmony_ci	depends on WEXT_CORE
138c2ecf20Sopenharmony_ci
148c2ecf20Sopenharmony_ciconfig WEXT_SPY
158c2ecf20Sopenharmony_ci	bool
168c2ecf20Sopenharmony_ci
178c2ecf20Sopenharmony_ciconfig WEXT_PRIV
188c2ecf20Sopenharmony_ci	bool
198c2ecf20Sopenharmony_ci
208c2ecf20Sopenharmony_ciconfig CFG80211
218c2ecf20Sopenharmony_ci	tristate "cfg80211 - wireless configuration API"
228c2ecf20Sopenharmony_ci	depends on RFKILL || !RFKILL
238c2ecf20Sopenharmony_ci	select FW_LOADER
248c2ecf20Sopenharmony_ci	select CRC32
258c2ecf20Sopenharmony_ci	# may need to update this when certificates are changed and are
268c2ecf20Sopenharmony_ci	# using a different algorithm, though right now they shouldn't
278c2ecf20Sopenharmony_ci	# (this is here rather than below to allow it to be a module)
288c2ecf20Sopenharmony_ci	select CRYPTO_SHA256 if CFG80211_USE_KERNEL_REGDB_KEYS
298c2ecf20Sopenharmony_ci	help
308c2ecf20Sopenharmony_ci	  cfg80211 is the Linux wireless LAN (802.11) configuration API.
318c2ecf20Sopenharmony_ci	  Enable this if you have a wireless device.
328c2ecf20Sopenharmony_ci
338c2ecf20Sopenharmony_ci	  For more information refer to documentation on the wireless wiki:
348c2ecf20Sopenharmony_ci
358c2ecf20Sopenharmony_ci	  https://wireless.wiki.kernel.org/en/developers/Documentation/cfg80211
368c2ecf20Sopenharmony_ci
378c2ecf20Sopenharmony_ci	  When built as a module it will be called cfg80211.
388c2ecf20Sopenharmony_ci
398c2ecf20Sopenharmony_ciif CFG80211
408c2ecf20Sopenharmony_ci
418c2ecf20Sopenharmony_ciconfig NL80211_TESTMODE
428c2ecf20Sopenharmony_ci	bool "nl80211 testmode command"
438c2ecf20Sopenharmony_ci	help
448c2ecf20Sopenharmony_ci	  The nl80211 testmode command helps implementing things like
458c2ecf20Sopenharmony_ci	  factory calibration or validation tools for wireless chips.
468c2ecf20Sopenharmony_ci
478c2ecf20Sopenharmony_ci	  Select this option ONLY for kernels that are specifically
488c2ecf20Sopenharmony_ci	  built for such purposes.
498c2ecf20Sopenharmony_ci
508c2ecf20Sopenharmony_ci	  Debugging tools that are supposed to end up in the hands of
518c2ecf20Sopenharmony_ci	  users should better be implemented with debugfs.
528c2ecf20Sopenharmony_ci
538c2ecf20Sopenharmony_ci	  Say N.
548c2ecf20Sopenharmony_ci
558c2ecf20Sopenharmony_ciconfig CFG80211_DEVELOPER_WARNINGS
568c2ecf20Sopenharmony_ci	bool "enable developer warnings"
578c2ecf20Sopenharmony_ci	default n
588c2ecf20Sopenharmony_ci	help
598c2ecf20Sopenharmony_ci	  This option enables some additional warnings that help
608c2ecf20Sopenharmony_ci	  cfg80211 developers and driver developers, but beware that
618c2ecf20Sopenharmony_ci	  they can also trigger due to races with userspace.
628c2ecf20Sopenharmony_ci
638c2ecf20Sopenharmony_ci	  For example, when a driver reports that it was disconnected
648c2ecf20Sopenharmony_ci	  from the AP, but the user disconnects manually at the same
658c2ecf20Sopenharmony_ci	  time, the warning might trigger spuriously due to races.
668c2ecf20Sopenharmony_ci
678c2ecf20Sopenharmony_ci	  Say Y only if you are developing cfg80211 or a driver based
688c2ecf20Sopenharmony_ci	  on it (or mac80211).
698c2ecf20Sopenharmony_ci
708c2ecf20Sopenharmony_ci
718c2ecf20Sopenharmony_ciconfig CFG80211_CERTIFICATION_ONUS
728c2ecf20Sopenharmony_ci	bool "cfg80211 certification onus"
738c2ecf20Sopenharmony_ci	depends on EXPERT
748c2ecf20Sopenharmony_ci	default n
758c2ecf20Sopenharmony_ci	help
768c2ecf20Sopenharmony_ci	  You should disable this option unless you are both capable
778c2ecf20Sopenharmony_ci	  and willing to ensure your system will remain regulatory
788c2ecf20Sopenharmony_ci	  compliant with the features available under this option.
798c2ecf20Sopenharmony_ci	  Some options may still be under heavy development and
808c2ecf20Sopenharmony_ci	  for whatever reason regulatory compliance has not or
818c2ecf20Sopenharmony_ci	  cannot yet be verified. Regulatory verification may at
828c2ecf20Sopenharmony_ci	  times only be possible until you have the final system
838c2ecf20Sopenharmony_ci	  in place.
848c2ecf20Sopenharmony_ci
858c2ecf20Sopenharmony_ci	  This option should only be enabled by system integrators
868c2ecf20Sopenharmony_ci	  or distributions that have done work necessary to ensure
878c2ecf20Sopenharmony_ci	  regulatory certification on the system with the enabled
888c2ecf20Sopenharmony_ci	  features. Alternatively you can enable this option if
898c2ecf20Sopenharmony_ci	  you are a wireless researcher and are working in a controlled
908c2ecf20Sopenharmony_ci	  and approved environment by your local regulatory agency.
918c2ecf20Sopenharmony_ci
928c2ecf20Sopenharmony_ciconfig CFG80211_REQUIRE_SIGNED_REGDB
938c2ecf20Sopenharmony_ci	bool "require regdb signature" if CFG80211_CERTIFICATION_ONUS
948c2ecf20Sopenharmony_ci	default y
958c2ecf20Sopenharmony_ci	select SYSTEM_DATA_VERIFICATION
968c2ecf20Sopenharmony_ci	help
978c2ecf20Sopenharmony_ci	  Require that in addition to the "regulatory.db" file a
988c2ecf20Sopenharmony_ci	  "regulatory.db.p7s" can be loaded with a valid PKCS#7
998c2ecf20Sopenharmony_ci	  signature for the regulatory.db file made by one of the
1008c2ecf20Sopenharmony_ci	  keys in the certs/ directory.
1018c2ecf20Sopenharmony_ci
1028c2ecf20Sopenharmony_ciconfig CFG80211_USE_KERNEL_REGDB_KEYS
1038c2ecf20Sopenharmony_ci	bool "allow regdb keys shipped with the kernel" if CFG80211_CERTIFICATION_ONUS
1048c2ecf20Sopenharmony_ci	default y
1058c2ecf20Sopenharmony_ci	depends on CFG80211_REQUIRE_SIGNED_REGDB
1068c2ecf20Sopenharmony_ci	help
1078c2ecf20Sopenharmony_ci	  Allow the regulatory database to be signed by one of the keys for
1088c2ecf20Sopenharmony_ci	  which certificates are part of the kernel sources
1098c2ecf20Sopenharmony_ci	  (in net/wireless/certs/).
1108c2ecf20Sopenharmony_ci
1118c2ecf20Sopenharmony_ci	  This is currently only Seth Forshee's key, who is the regulatory
1128c2ecf20Sopenharmony_ci	  database maintainer.
1138c2ecf20Sopenharmony_ci
1148c2ecf20Sopenharmony_ciconfig CFG80211_EXTRA_REGDB_KEYDIR
1158c2ecf20Sopenharmony_ci	string "additional regdb key directory" if CFG80211_CERTIFICATION_ONUS
1168c2ecf20Sopenharmony_ci	depends on CFG80211_REQUIRE_SIGNED_REGDB
1178c2ecf20Sopenharmony_ci	help
1188c2ecf20Sopenharmony_ci	  If selected, point to a directory with DER-encoded X.509
1198c2ecf20Sopenharmony_ci	  certificates like in the kernel sources (net/wireless/certs/)
1208c2ecf20Sopenharmony_ci	  that shall be accepted for a signed regulatory database.
1218c2ecf20Sopenharmony_ci
1228c2ecf20Sopenharmony_ci	  Note that you need to also select the correct CRYPTO_<hash> modules
1238c2ecf20Sopenharmony_ci	  for your certificates, and if cfg80211 is built-in they also must be.
1248c2ecf20Sopenharmony_ci
1258c2ecf20Sopenharmony_ciconfig CFG80211_REG_CELLULAR_HINTS
1268c2ecf20Sopenharmony_ci	bool "cfg80211 regulatory support for cellular base station hints"
1278c2ecf20Sopenharmony_ci	depends on CFG80211_CERTIFICATION_ONUS
1288c2ecf20Sopenharmony_ci	help
1298c2ecf20Sopenharmony_ci	  This option enables support for parsing regulatory hints
1308c2ecf20Sopenharmony_ci	  from cellular base stations. If enabled and at least one driver
1318c2ecf20Sopenharmony_ci	  claims support for parsing cellular base station hints the
1328c2ecf20Sopenharmony_ci	  regulatory core will allow and parse these regulatory hints.
1338c2ecf20Sopenharmony_ci	  The regulatory core will only apply these regulatory hints on
1348c2ecf20Sopenharmony_ci	  drivers that support this feature. You should only enable this
1358c2ecf20Sopenharmony_ci	  feature if you have tested and validated this feature on your
1368c2ecf20Sopenharmony_ci	  systems.
1378c2ecf20Sopenharmony_ci
1388c2ecf20Sopenharmony_ciconfig CFG80211_REG_RELAX_NO_IR
1398c2ecf20Sopenharmony_ci	bool "cfg80211 support for NO_IR relaxation"
1408c2ecf20Sopenharmony_ci	depends on CFG80211_CERTIFICATION_ONUS
1418c2ecf20Sopenharmony_ci	help
1428c2ecf20Sopenharmony_ci	 This option enables support for relaxation of the NO_IR flag for
1438c2ecf20Sopenharmony_ci	 situations that certain regulatory bodies have provided clarifications
1448c2ecf20Sopenharmony_ci	 on how relaxation can occur. This feature has an inherent dependency on
1458c2ecf20Sopenharmony_ci	 userspace features which must have been properly tested and as such is
1468c2ecf20Sopenharmony_ci	 not enabled by default.
1478c2ecf20Sopenharmony_ci
1488c2ecf20Sopenharmony_ci	 A relaxation feature example is allowing the operation of a P2P group
1498c2ecf20Sopenharmony_ci	 owner (GO) on channels marked with NO_IR if there is an additional BSS
1508c2ecf20Sopenharmony_ci	 interface which associated to an AP which userspace assumes or confirms
1518c2ecf20Sopenharmony_ci	 to be an authorized master, i.e., with radar detection support and DFS
1528c2ecf20Sopenharmony_ci	 capabilities. However, note that in order to not create daisy chain
1538c2ecf20Sopenharmony_ci	 scenarios, this relaxation is not allowed in cases where the BSS client
1548c2ecf20Sopenharmony_ci	 is associated to P2P GO and in addition the P2P GO instantiated on
1558c2ecf20Sopenharmony_ci	 a channel due to this relaxation should not allow connection from
1568c2ecf20Sopenharmony_ci	 non P2P clients.
1578c2ecf20Sopenharmony_ci
1588c2ecf20Sopenharmony_ci	 The regulatory core will apply these relaxations only for drivers that
1598c2ecf20Sopenharmony_ci	 support this feature by declaring the appropriate channel flags and
1608c2ecf20Sopenharmony_ci	 capabilities in their registration flow.
1618c2ecf20Sopenharmony_ci
1628c2ecf20Sopenharmony_ciconfig CFG80211_DEFAULT_PS
1638c2ecf20Sopenharmony_ci	bool "enable powersave by default"
1648c2ecf20Sopenharmony_ci	default y
1658c2ecf20Sopenharmony_ci	help
1668c2ecf20Sopenharmony_ci	  This option enables powersave mode by default.
1678c2ecf20Sopenharmony_ci
1688c2ecf20Sopenharmony_ci	  If this causes your applications to misbehave you should fix your
1698c2ecf20Sopenharmony_ci	  applications instead -- they need to register their network
1708c2ecf20Sopenharmony_ci	  latency requirement, see Documentation/power/pm_qos_interface.rst.
1718c2ecf20Sopenharmony_ci
1728c2ecf20Sopenharmony_ciconfig CFG80211_DEBUGFS
1738c2ecf20Sopenharmony_ci	bool "cfg80211 DebugFS entries"
1748c2ecf20Sopenharmony_ci	depends on DEBUG_FS
1758c2ecf20Sopenharmony_ci	help
1768c2ecf20Sopenharmony_ci	  You can enable this if you want debugfs entries for cfg80211.
1778c2ecf20Sopenharmony_ci
1788c2ecf20Sopenharmony_ci	  If unsure, say N.
1798c2ecf20Sopenharmony_ci
1808c2ecf20Sopenharmony_ciconfig CFG80211_CRDA_SUPPORT
1818c2ecf20Sopenharmony_ci	bool "support CRDA" if EXPERT
1828c2ecf20Sopenharmony_ci	default y
1838c2ecf20Sopenharmony_ci	help
1848c2ecf20Sopenharmony_ci	  You should enable this option unless you know for sure you have no
1858c2ecf20Sopenharmony_ci	  need for it, for example when using the regulatory database loaded as
1868c2ecf20Sopenharmony_ci	  a firmware file.
1878c2ecf20Sopenharmony_ci
1888c2ecf20Sopenharmony_ci	  If unsure, say Y.
1898c2ecf20Sopenharmony_ci
1908c2ecf20Sopenharmony_ciconfig CFG80211_WEXT
1918c2ecf20Sopenharmony_ci	bool "cfg80211 wireless extensions compatibility" if !CFG80211_WEXT_EXPORT
1928c2ecf20Sopenharmony_ci	select WEXT_CORE
1938c2ecf20Sopenharmony_ci	default y if CFG80211_WEXT_EXPORT
1948c2ecf20Sopenharmony_ci	help
1958c2ecf20Sopenharmony_ci	  Enable this option if you need old userspace for wireless
1968c2ecf20Sopenharmony_ci	  extensions with cfg80211-based drivers.
1978c2ecf20Sopenharmony_ci
1988c2ecf20Sopenharmony_ciconfig CFG80211_WEXT_EXPORT
1998c2ecf20Sopenharmony_ci	bool
2008c2ecf20Sopenharmony_ci	help
2018c2ecf20Sopenharmony_ci	  Drivers should select this option if they require cfg80211's
2028c2ecf20Sopenharmony_ci	  wext compatibility symbols to be exported.
2038c2ecf20Sopenharmony_ci
2048c2ecf20Sopenharmony_ciendif # CFG80211
2058c2ecf20Sopenharmony_ci
2068c2ecf20Sopenharmony_ciconfig LIB80211
2078c2ecf20Sopenharmony_ci	tristate
2088c2ecf20Sopenharmony_ci	default n
2098c2ecf20Sopenharmony_ci	help
2108c2ecf20Sopenharmony_ci	  This options enables a library of common routines used
2118c2ecf20Sopenharmony_ci	  by IEEE802.11 wireless LAN drivers.
2128c2ecf20Sopenharmony_ci
2138c2ecf20Sopenharmony_ci	  Drivers should select this themselves if needed.
2148c2ecf20Sopenharmony_ci
2158c2ecf20Sopenharmony_ciconfig LIB80211_CRYPT_WEP
2168c2ecf20Sopenharmony_ci	tristate
2178c2ecf20Sopenharmony_ci	select CRYPTO_LIB_ARC4
2188c2ecf20Sopenharmony_ci
2198c2ecf20Sopenharmony_ciconfig LIB80211_CRYPT_CCMP
2208c2ecf20Sopenharmony_ci	tristate
2218c2ecf20Sopenharmony_ci	select CRYPTO
2228c2ecf20Sopenharmony_ci	select CRYPTO_AES
2238c2ecf20Sopenharmony_ci	select CRYPTO_CCM
2248c2ecf20Sopenharmony_ci
2258c2ecf20Sopenharmony_ciconfig LIB80211_CRYPT_TKIP
2268c2ecf20Sopenharmony_ci	tristate
2278c2ecf20Sopenharmony_ci	select CRYPTO_LIB_ARC4
2288c2ecf20Sopenharmony_ci
2298c2ecf20Sopenharmony_ciconfig LIB80211_DEBUG
2308c2ecf20Sopenharmony_ci	bool "lib80211 debugging messages"
2318c2ecf20Sopenharmony_ci	depends on LIB80211
2328c2ecf20Sopenharmony_ci	default n
2338c2ecf20Sopenharmony_ci	help
2348c2ecf20Sopenharmony_ci	  You can enable this if you want verbose debugging messages
2358c2ecf20Sopenharmony_ci	  from lib80211.
2368c2ecf20Sopenharmony_ci
2378c2ecf20Sopenharmony_ci	  If unsure, say N.
238