| # SPDX-License-Identifier: GPL-2.0-only | 
 | config WIRELESS_EXT | 
 | 	bool | 
 |  | 
 | config WEXT_CORE | 
 | 	def_bool y | 
 | 	depends on CFG80211_WEXT || WIRELESS_EXT | 
 |  | 
 | config WEXT_PROC | 
 | 	def_bool y | 
 | 	depends on PROC_FS | 
 | 	depends on WEXT_CORE | 
 |  | 
 | config WEXT_SPY | 
 | 	bool | 
 |  | 
 | config WEXT_PRIV | 
 | 	bool | 
 |  | 
 | config CFG80211 | 
 | 	tristate "cfg80211 - wireless configuration API" | 
 | 	depends on RFKILL || !RFKILL | 
 | 	select FW_LOADER | 
 | 	# may need to update this when certificates are changed and are | 
 | 	# using a different algorithm, though right now they shouldn't | 
 | 	# (this is here rather than below to allow it to be a module) | 
 | 	select CRYPTO_SHA256 if CFG80211_USE_KERNEL_REGDB_KEYS | 
 | 	---help--- | 
 | 	  cfg80211 is the Linux wireless LAN (802.11) configuration API. | 
 | 	  Enable this if you have a wireless device. | 
 |  | 
 | 	  For more information refer to documentation on the wireless wiki: | 
 |  | 
 | 	  http://wireless.kernel.org/en/developers/Documentation/cfg80211 | 
 |  | 
 | 	  When built as a module it will be called cfg80211. | 
 |  | 
 | if CFG80211 | 
 |  | 
 | config NL80211_TESTMODE | 
 | 	bool "nl80211 testmode command" | 
 | 	help | 
 | 	  The nl80211 testmode command helps implementing things like | 
 | 	  factory calibration or validation tools for wireless chips. | 
 |  | 
 | 	  Select this option ONLY for kernels that are specifically | 
 | 	  built for such purposes. | 
 |  | 
 | 	  Debugging tools that are supposed to end up in the hands of | 
 | 	  users should better be implemented with debugfs. | 
 |  | 
 | 	  Say N. | 
 |  | 
 | config CFG80211_DEVELOPER_WARNINGS | 
 | 	bool "enable developer warnings" | 
 | 	default n | 
 | 	help | 
 | 	  This option enables some additional warnings that help | 
 | 	  cfg80211 developers and driver developers, but beware that | 
 | 	  they can also trigger due to races with userspace. | 
 |  | 
 | 	  For example, when a driver reports that it was disconnected | 
 | 	  from the AP, but the user disconnects manually at the same | 
 | 	  time, the warning might trigger spuriously due to races. | 
 |  | 
 | 	  Say Y only if you are developing cfg80211 or a driver based | 
 | 	  on it (or mac80211). | 
 |  | 
 |  | 
 | config CFG80211_CERTIFICATION_ONUS | 
 | 	bool "cfg80211 certification onus" | 
 | 	depends on EXPERT | 
 | 	default n | 
 | 	---help--- | 
 | 	  You should disable this option unless you are both capable | 
 | 	  and willing to ensure your system will remain regulatory | 
 | 	  compliant with the features available under this option. | 
 | 	  Some options may still be under heavy development and | 
 | 	  for whatever reason regulatory compliance has not or | 
 | 	  cannot yet be verified. Regulatory verification may at | 
 | 	  times only be possible until you have the final system | 
 | 	  in place. | 
 |  | 
 | 	  This option should only be enabled by system integrators | 
 | 	  or distributions that have done work necessary to ensure | 
 | 	  regulatory certification on the system with the enabled | 
 | 	  features. Alternatively you can enable this option if | 
 | 	  you are a wireless researcher and are working in a controlled | 
 | 	  and approved environment by your local regulatory agency. | 
 |  | 
 | config CFG80211_REQUIRE_SIGNED_REGDB | 
 | 	bool "require regdb signature" if CFG80211_CERTIFICATION_ONUS | 
 | 	default y | 
 | 	select SYSTEM_DATA_VERIFICATION | 
 | 	help | 
 | 	  Require that in addition to the "regulatory.db" file a | 
 | 	  "regulatory.db.p7s" can be loaded with a valid PKCS#7 | 
 | 	  signature for the regulatory.db file made by one of the | 
 | 	  keys in the certs/ directory. | 
 |  | 
 | config CFG80211_USE_KERNEL_REGDB_KEYS | 
 | 	bool "allow regdb keys shipped with the kernel" if CFG80211_CERTIFICATION_ONUS | 
 | 	default y | 
 | 	depends on CFG80211_REQUIRE_SIGNED_REGDB | 
 | 	help | 
 | 	  Allow the regulatory database to be signed by one of the keys for | 
 | 	  which certificates are part of the kernel sources | 
 | 	  (in net/wireless/certs/). | 
 |  | 
 | 	  This is currently only Seth Forshee's key, who is the regulatory | 
 | 	  database maintainer. | 
 |  | 
 | config CFG80211_EXTRA_REGDB_KEYDIR | 
 | 	string "additional regdb key directory" if CFG80211_CERTIFICATION_ONUS | 
 | 	depends on CFG80211_REQUIRE_SIGNED_REGDB | 
 | 	help | 
 | 	  If selected, point to a directory with DER-encoded X.509 | 
 | 	  certificates like in the kernel sources (net/wireless/certs/) | 
 | 	  that shall be accepted for a signed regulatory database. | 
 |  | 
 | 	  Note that you need to also select the correct CRYPTO_<hash> modules | 
 | 	  for your certificates, and if cfg80211 is built-in they also must be. | 
 |  | 
 | config CFG80211_REG_CELLULAR_HINTS | 
 | 	bool "cfg80211 regulatory support for cellular base station hints" | 
 | 	depends on CFG80211_CERTIFICATION_ONUS | 
 | 	---help--- | 
 | 	  This option enables support for parsing regulatory hints | 
 | 	  from cellular base stations. If enabled and at least one driver | 
 | 	  claims support for parsing cellular base station hints the | 
 | 	  regulatory core will allow and parse these regulatory hints. | 
 | 	  The regulatory core will only apply these regulatory hints on | 
 | 	  drivers that support this feature. You should only enable this | 
 | 	  feature if you have tested and validated this feature on your | 
 | 	  systems. | 
 |  | 
 | config CFG80211_REG_RELAX_NO_IR | 
 | 	bool "cfg80211 support for NO_IR relaxation" | 
 | 	depends on CFG80211_CERTIFICATION_ONUS | 
 | 	---help--- | 
 | 	 This option enables support for relaxation of the NO_IR flag for | 
 | 	 situations that certain regulatory bodies have provided clarifications | 
 | 	 on how relaxation can occur. This feature has an inherent dependency on | 
 | 	 userspace features which must have been properly tested and as such is | 
 | 	 not enabled by default. | 
 |  | 
 | 	 A relaxation feature example is allowing the operation of a P2P group | 
 | 	 owner (GO) on channels marked with NO_IR if there is an additional BSS | 
 | 	 interface which associated to an AP which userspace assumes or confirms | 
 | 	 to be an authorized master, i.e., with radar detection support and DFS | 
 | 	 capabilities. However, note that in order to not create daisy chain | 
 | 	 scenarios, this relaxation is not allowed in cases where the BSS client | 
 | 	 is associated to P2P GO and in addition the P2P GO instantiated on | 
 | 	 a channel due to this relaxation should not allow connection from | 
 | 	 non P2P clients. | 
 |  | 
 | 	 The regulatory core will apply these relaxations only for drivers that | 
 | 	 support this feature by declaring the appropriate channel flags and | 
 | 	 capabilities in their registration flow. | 
 |  | 
 | config CFG80211_DEFAULT_PS | 
 | 	bool "enable powersave by default" | 
 | 	default y | 
 | 	help | 
 | 	  This option enables powersave mode by default. | 
 |  | 
 | 	  If this causes your applications to misbehave you should fix your | 
 | 	  applications instead -- they need to register their network | 
 | 	  latency requirement, see Documentation/power/pm_qos_interface.rst. | 
 |  | 
 | config CFG80211_DEBUGFS | 
 | 	bool "cfg80211 DebugFS entries" | 
 | 	depends on DEBUG_FS | 
 | 	---help--- | 
 | 	  You can enable this if you want debugfs entries for cfg80211. | 
 |  | 
 | 	  If unsure, say N. | 
 |  | 
 | config CFG80211_CRDA_SUPPORT | 
 | 	bool "support CRDA" if EXPERT | 
 | 	default y | 
 | 	help | 
 | 	  You should enable this option unless you know for sure you have no | 
 | 	  need for it, for example when using internal regdb (above) or the | 
 | 	  database loaded as a firmware file. | 
 |  | 
 | 	  If unsure, say Y. | 
 |  | 
 | config CFG80211_WEXT | 
 | 	bool "cfg80211 wireless extensions compatibility" if !CFG80211_WEXT_EXPORT | 
 | 	select WEXT_CORE | 
 | 	default y if CFG80211_WEXT_EXPORT | 
 | 	help | 
 | 	  Enable this option if you need old userspace for wireless | 
 | 	  extensions with cfg80211-based drivers. | 
 |  | 
 | config CFG80211_WEXT_EXPORT | 
 | 	bool | 
 | 	help | 
 | 	  Drivers should select this option if they require cfg80211's | 
 | 	  wext compatibility symbols to be exported. | 
 |  | 
 | endif # CFG80211 | 
 |  | 
 | config LIB80211 | 
 | 	tristate | 
 | 	default n | 
 | 	help | 
 | 	  This options enables a library of common routines used | 
 | 	  by IEEE802.11 wireless LAN drivers. | 
 |  | 
 | 	  Drivers should select this themselves if needed. | 
 |  | 
 | config LIB80211_CRYPT_WEP | 
 | 	tristate | 
 | 	select CRYPTO_LIB_ARC4 | 
 |  | 
 | config LIB80211_CRYPT_CCMP | 
 | 	tristate | 
 |  | 
 | config LIB80211_CRYPT_TKIP | 
 | 	tristate | 
 | 	select CRYPTO_LIB_ARC4 | 
 |  | 
 | config LIB80211_DEBUG | 
 | 	bool "lib80211 debugging messages" | 
 | 	depends on LIB80211 | 
 | 	default n | 
 | 	---help--- | 
 | 	  You can enable this if you want verbose debugging messages | 
 | 	  from lib80211. | 
 |  | 
 | 	  If unsure, say N. |