162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only
262306a36Sopenharmony_ciconfig WIRELESS_EXT
362306a36Sopenharmony_ci	bool
462306a36Sopenharmony_ci
562306a36Sopenharmony_ciconfig WEXT_CORE
662306a36Sopenharmony_ci	def_bool y
762306a36Sopenharmony_ci	depends on CFG80211_WEXT || WIRELESS_EXT
862306a36Sopenharmony_ci
962306a36Sopenharmony_ciconfig WEXT_PROC
1062306a36Sopenharmony_ci	def_bool y
1162306a36Sopenharmony_ci	depends on PROC_FS
1262306a36Sopenharmony_ci	depends on WEXT_CORE
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_ciconfig WEXT_SPY
1562306a36Sopenharmony_ci	bool
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_ciconfig WEXT_PRIV
1862306a36Sopenharmony_ci	bool
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_ciconfig CFG80211
2162306a36Sopenharmony_ci	tristate "cfg80211 - wireless configuration API"
2262306a36Sopenharmony_ci	depends on RFKILL || !RFKILL
2362306a36Sopenharmony_ci	select FW_LOADER
2462306a36Sopenharmony_ci	select CRC32
2562306a36Sopenharmony_ci	# may need to update this when certificates are changed and are
2662306a36Sopenharmony_ci	# using a different algorithm, though right now they shouldn't
2762306a36Sopenharmony_ci	# (this is here rather than below to allow it to be a module)
2862306a36Sopenharmony_ci	select CRYPTO_SHA256 if CFG80211_USE_KERNEL_REGDB_KEYS
2962306a36Sopenharmony_ci	help
3062306a36Sopenharmony_ci	  cfg80211 is the Linux wireless LAN (802.11) configuration API.
3162306a36Sopenharmony_ci	  Enable this if you have a wireless device.
3262306a36Sopenharmony_ci
3362306a36Sopenharmony_ci	  For more information refer to documentation on the wireless wiki:
3462306a36Sopenharmony_ci
3562306a36Sopenharmony_ci	  https://wireless.wiki.kernel.org/en/developers/Documentation/cfg80211
3662306a36Sopenharmony_ci
3762306a36Sopenharmony_ci	  When built as a module it will be called cfg80211.
3862306a36Sopenharmony_ci
3962306a36Sopenharmony_ciif CFG80211
4062306a36Sopenharmony_ci
4162306a36Sopenharmony_ciconfig NL80211_TESTMODE
4262306a36Sopenharmony_ci	bool "nl80211 testmode command"
4362306a36Sopenharmony_ci	help
4462306a36Sopenharmony_ci	  The nl80211 testmode command helps implementing things like
4562306a36Sopenharmony_ci	  factory calibration or validation tools for wireless chips.
4662306a36Sopenharmony_ci
4762306a36Sopenharmony_ci	  Select this option ONLY for kernels that are specifically
4862306a36Sopenharmony_ci	  built for such purposes.
4962306a36Sopenharmony_ci
5062306a36Sopenharmony_ci	  Debugging tools that are supposed to end up in the hands of
5162306a36Sopenharmony_ci	  users should better be implemented with debugfs.
5262306a36Sopenharmony_ci
5362306a36Sopenharmony_ci	  Say N.
5462306a36Sopenharmony_ci
5562306a36Sopenharmony_ciconfig CFG80211_DEVELOPER_WARNINGS
5662306a36Sopenharmony_ci	bool "enable developer warnings"
5762306a36Sopenharmony_ci	default n
5862306a36Sopenharmony_ci	help
5962306a36Sopenharmony_ci	  This option enables some additional warnings that help
6062306a36Sopenharmony_ci	  cfg80211 developers and driver developers, but beware that
6162306a36Sopenharmony_ci	  they can also trigger due to races with userspace.
6262306a36Sopenharmony_ci
6362306a36Sopenharmony_ci	  For example, when a driver reports that it was disconnected
6462306a36Sopenharmony_ci	  from the AP, but the user disconnects manually at the same
6562306a36Sopenharmony_ci	  time, the warning might trigger spuriously due to races.
6662306a36Sopenharmony_ci
6762306a36Sopenharmony_ci	  Say Y only if you are developing cfg80211 or a driver based
6862306a36Sopenharmony_ci	  on it (or mac80211).
6962306a36Sopenharmony_ci
7062306a36Sopenharmony_ci
7162306a36Sopenharmony_ciconfig CFG80211_CERTIFICATION_ONUS
7262306a36Sopenharmony_ci	bool "cfg80211 certification onus"
7362306a36Sopenharmony_ci	depends on EXPERT
7462306a36Sopenharmony_ci	default n
7562306a36Sopenharmony_ci	help
7662306a36Sopenharmony_ci	  You should disable this option unless you are both capable
7762306a36Sopenharmony_ci	  and willing to ensure your system will remain regulatory
7862306a36Sopenharmony_ci	  compliant with the features available under this option.
7962306a36Sopenharmony_ci	  Some options may still be under heavy development and
8062306a36Sopenharmony_ci	  for whatever reason regulatory compliance has not or
8162306a36Sopenharmony_ci	  cannot yet be verified. Regulatory verification may at
8262306a36Sopenharmony_ci	  times only be possible until you have the final system
8362306a36Sopenharmony_ci	  in place.
8462306a36Sopenharmony_ci
8562306a36Sopenharmony_ci	  This option should only be enabled by system integrators
8662306a36Sopenharmony_ci	  or distributions that have done work necessary to ensure
8762306a36Sopenharmony_ci	  regulatory certification on the system with the enabled
8862306a36Sopenharmony_ci	  features. Alternatively you can enable this option if
8962306a36Sopenharmony_ci	  you are a wireless researcher and are working in a controlled
9062306a36Sopenharmony_ci	  and approved environment by your local regulatory agency.
9162306a36Sopenharmony_ci
9262306a36Sopenharmony_ciconfig CFG80211_REQUIRE_SIGNED_REGDB
9362306a36Sopenharmony_ci	bool "require regdb signature" if CFG80211_CERTIFICATION_ONUS
9462306a36Sopenharmony_ci	default y
9562306a36Sopenharmony_ci	select SYSTEM_DATA_VERIFICATION
9662306a36Sopenharmony_ci	help
9762306a36Sopenharmony_ci	  Require that in addition to the "regulatory.db" file a
9862306a36Sopenharmony_ci	  "regulatory.db.p7s" can be loaded with a valid PKCS#7
9962306a36Sopenharmony_ci	  signature for the regulatory.db file made by one of the
10062306a36Sopenharmony_ci	  keys in the certs/ directory.
10162306a36Sopenharmony_ci
10262306a36Sopenharmony_ciconfig CFG80211_USE_KERNEL_REGDB_KEYS
10362306a36Sopenharmony_ci	bool "allow regdb keys shipped with the kernel" if CFG80211_CERTIFICATION_ONUS
10462306a36Sopenharmony_ci	default y
10562306a36Sopenharmony_ci	depends on CFG80211_REQUIRE_SIGNED_REGDB
10662306a36Sopenharmony_ci	help
10762306a36Sopenharmony_ci	  Allow the regulatory database to be signed by one of the keys for
10862306a36Sopenharmony_ci	  which certificates are part of the kernel sources
10962306a36Sopenharmony_ci	  (in net/wireless/certs/).
11062306a36Sopenharmony_ci
11162306a36Sopenharmony_ci	  This is currently only Seth Forshee's key, who is the regulatory
11262306a36Sopenharmony_ci	  database maintainer.
11362306a36Sopenharmony_ci
11462306a36Sopenharmony_ciconfig CFG80211_EXTRA_REGDB_KEYDIR
11562306a36Sopenharmony_ci	string "additional regdb key directory" if CFG80211_CERTIFICATION_ONUS
11662306a36Sopenharmony_ci	depends on CFG80211_REQUIRE_SIGNED_REGDB
11762306a36Sopenharmony_ci	help
11862306a36Sopenharmony_ci	  If selected, point to a directory with DER-encoded X.509
11962306a36Sopenharmony_ci	  certificates like in the kernel sources (net/wireless/certs/)
12062306a36Sopenharmony_ci	  that shall be accepted for a signed regulatory database.
12162306a36Sopenharmony_ci
12262306a36Sopenharmony_ci	  Note that you need to also select the correct CRYPTO_<hash> modules
12362306a36Sopenharmony_ci	  for your certificates, and if cfg80211 is built-in they also must be.
12462306a36Sopenharmony_ci
12562306a36Sopenharmony_ciconfig CFG80211_REG_CELLULAR_HINTS
12662306a36Sopenharmony_ci	bool "cfg80211 regulatory support for cellular base station hints"
12762306a36Sopenharmony_ci	depends on CFG80211_CERTIFICATION_ONUS
12862306a36Sopenharmony_ci	help
12962306a36Sopenharmony_ci	  This option enables support for parsing regulatory hints
13062306a36Sopenharmony_ci	  from cellular base stations. If enabled and at least one driver
13162306a36Sopenharmony_ci	  claims support for parsing cellular base station hints the
13262306a36Sopenharmony_ci	  regulatory core will allow and parse these regulatory hints.
13362306a36Sopenharmony_ci	  The regulatory core will only apply these regulatory hints on
13462306a36Sopenharmony_ci	  drivers that support this feature. You should only enable this
13562306a36Sopenharmony_ci	  feature if you have tested and validated this feature on your
13662306a36Sopenharmony_ci	  systems.
13762306a36Sopenharmony_ci
13862306a36Sopenharmony_ciconfig CFG80211_REG_RELAX_NO_IR
13962306a36Sopenharmony_ci	bool "cfg80211 support for NO_IR relaxation"
14062306a36Sopenharmony_ci	depends on CFG80211_CERTIFICATION_ONUS
14162306a36Sopenharmony_ci	help
14262306a36Sopenharmony_ci	 This option enables support for relaxation of the NO_IR flag for
14362306a36Sopenharmony_ci	 situations that certain regulatory bodies have provided clarifications
14462306a36Sopenharmony_ci	 on how relaxation can occur. This feature has an inherent dependency on
14562306a36Sopenharmony_ci	 userspace features which must have been properly tested and as such is
14662306a36Sopenharmony_ci	 not enabled by default.
14762306a36Sopenharmony_ci
14862306a36Sopenharmony_ci	 A relaxation feature example is allowing the operation of a P2P group
14962306a36Sopenharmony_ci	 owner (GO) on channels marked with NO_IR if there is an additional BSS
15062306a36Sopenharmony_ci	 interface which associated to an AP which userspace assumes or confirms
15162306a36Sopenharmony_ci	 to be an authorized master, i.e., with radar detection support and DFS
15262306a36Sopenharmony_ci	 capabilities. However, note that in order to not create daisy chain
15362306a36Sopenharmony_ci	 scenarios, this relaxation is not allowed in cases where the BSS client
15462306a36Sopenharmony_ci	 is associated to P2P GO and in addition the P2P GO instantiated on
15562306a36Sopenharmony_ci	 a channel due to this relaxation should not allow connection from
15662306a36Sopenharmony_ci	 non P2P clients.
15762306a36Sopenharmony_ci
15862306a36Sopenharmony_ci	 The regulatory core will apply these relaxations only for drivers that
15962306a36Sopenharmony_ci	 support this feature by declaring the appropriate channel flags and
16062306a36Sopenharmony_ci	 capabilities in their registration flow.
16162306a36Sopenharmony_ci
16262306a36Sopenharmony_ciconfig CFG80211_DEFAULT_PS
16362306a36Sopenharmony_ci	bool "enable powersave by default"
16462306a36Sopenharmony_ci	default y
16562306a36Sopenharmony_ci	help
16662306a36Sopenharmony_ci	  This option enables powersave mode by default.
16762306a36Sopenharmony_ci
16862306a36Sopenharmony_ci	  If this causes your applications to misbehave you should fix your
16962306a36Sopenharmony_ci	  applications instead -- they need to register their network
17062306a36Sopenharmony_ci	  latency requirement, see Documentation/power/pm_qos_interface.rst.
17162306a36Sopenharmony_ci
17262306a36Sopenharmony_ciconfig CFG80211_DEBUGFS
17362306a36Sopenharmony_ci	bool "cfg80211 DebugFS entries"
17462306a36Sopenharmony_ci	depends on DEBUG_FS
17562306a36Sopenharmony_ci	help
17662306a36Sopenharmony_ci	  You can enable this if you want debugfs entries for cfg80211.
17762306a36Sopenharmony_ci
17862306a36Sopenharmony_ci	  If unsure, say N.
17962306a36Sopenharmony_ci
18062306a36Sopenharmony_ciconfig CFG80211_CRDA_SUPPORT
18162306a36Sopenharmony_ci	bool "support CRDA" if EXPERT
18262306a36Sopenharmony_ci	default y
18362306a36Sopenharmony_ci	help
18462306a36Sopenharmony_ci	  You should enable this option unless you know for sure you have no
18562306a36Sopenharmony_ci	  need for it, for example when using the regulatory database loaded as
18662306a36Sopenharmony_ci	  a firmware file.
18762306a36Sopenharmony_ci
18862306a36Sopenharmony_ci	  If unsure, say Y.
18962306a36Sopenharmony_ci
19062306a36Sopenharmony_ciconfig CFG80211_WEXT
19162306a36Sopenharmony_ci	bool "cfg80211 wireless extensions compatibility" if !CFG80211_WEXT_EXPORT
19262306a36Sopenharmony_ci	select WEXT_CORE
19362306a36Sopenharmony_ci	default y if CFG80211_WEXT_EXPORT
19462306a36Sopenharmony_ci	help
19562306a36Sopenharmony_ci	  Enable this option if you need old userspace for wireless
19662306a36Sopenharmony_ci	  extensions with cfg80211-based drivers.
19762306a36Sopenharmony_ci
19862306a36Sopenharmony_ciconfig CFG80211_WEXT_EXPORT
19962306a36Sopenharmony_ci	bool
20062306a36Sopenharmony_ci	help
20162306a36Sopenharmony_ci	  Drivers should select this option if they require cfg80211's
20262306a36Sopenharmony_ci	  wext compatibility symbols to be exported.
20362306a36Sopenharmony_ci
20462306a36Sopenharmony_ciendif # CFG80211
20562306a36Sopenharmony_ci
20662306a36Sopenharmony_ciconfig LIB80211
20762306a36Sopenharmony_ci	tristate
20862306a36Sopenharmony_ci	default n
20962306a36Sopenharmony_ci	help
21062306a36Sopenharmony_ci	  This options enables a library of common routines used
21162306a36Sopenharmony_ci	  by IEEE802.11 wireless LAN drivers.
21262306a36Sopenharmony_ci
21362306a36Sopenharmony_ci	  Drivers should select this themselves if needed.
21462306a36Sopenharmony_ci
21562306a36Sopenharmony_ciconfig LIB80211_CRYPT_WEP
21662306a36Sopenharmony_ci	tristate
21762306a36Sopenharmony_ci	select CRYPTO_LIB_ARC4
21862306a36Sopenharmony_ci
21962306a36Sopenharmony_ciconfig LIB80211_CRYPT_CCMP
22062306a36Sopenharmony_ci	tristate
22162306a36Sopenharmony_ci	select CRYPTO
22262306a36Sopenharmony_ci	select CRYPTO_AES
22362306a36Sopenharmony_ci	select CRYPTO_CCM
22462306a36Sopenharmony_ci
22562306a36Sopenharmony_ciconfig LIB80211_CRYPT_TKIP
22662306a36Sopenharmony_ci	tristate
22762306a36Sopenharmony_ci	select CRYPTO_LIB_ARC4
22862306a36Sopenharmony_ci
22962306a36Sopenharmony_ciconfig LIB80211_DEBUG
23062306a36Sopenharmony_ci	bool "lib80211 debugging messages"
23162306a36Sopenharmony_ci	depends on LIB80211
23262306a36Sopenharmony_ci	default n
23362306a36Sopenharmony_ci	help
23462306a36Sopenharmony_ci	  You can enable this if you want verbose debugging messages
23562306a36Sopenharmony_ci	  from lib80211.
23662306a36Sopenharmony_ci
23762306a36Sopenharmony_ci	  If unsure, say N.
238