xref: /openbmc/linux/net/wireless/Kconfig (revision f8bade6c9a6213c2c5ba6e5bf32415ecab6e41e5)
1ec8f24b7SThomas Gleixner# SPDX-License-Identifier: GPL-2.0-only
23d23e349SJohannes Bergconfig WIRELESS_EXT
33d23e349SJohannes Berg	bool
43d23e349SJohannes Berg
53d23e349SJohannes Bergconfig WEXT_CORE
63d23e349SJohannes Berg	def_bool y
73d23e349SJohannes Berg	depends on CFG80211_WEXT || WIRELESS_EXT
83d23e349SJohannes Berg
93d23e349SJohannes Bergconfig WEXT_PROC
103d23e349SJohannes Berg	def_bool y
113d23e349SJohannes Berg	depends on PROC_FS
123d23e349SJohannes Berg	depends on WEXT_CORE
133d23e349SJohannes Berg
143d23e349SJohannes Bergconfig WEXT_SPY
153d23e349SJohannes Berg	bool
163d23e349SJohannes Berg
173d23e349SJohannes Bergconfig WEXT_PRIV
183d23e349SJohannes Berg	bool
193d23e349SJohannes Berg
20704232c2SJohannes Bergconfig CFG80211
21b275f285SLuis R. Rodriguez	tristate "cfg80211 - wireless configuration API"
221f87f7d3SJohannes Berg	depends on RFKILL || !RFKILL
23007f6c5eSJohannes Berg	select FW_LOADER
24*152a8a6cSArnd Bergmann	select CRC32
2501a95b21SJohannes Berg	# may need to update this when certificates are changed and are
2601a95b21SJohannes Berg	# using a different algorithm, though right now they shouldn't
2701a95b21SJohannes Berg	# (this is here rather than below to allow it to be a module)
2801a95b21SJohannes Berg	select CRYPTO_SHA256 if CFG80211_USE_KERNEL_REGDB_KEYS
29a7f7f624SMasahiro Yamada	help
30b275f285SLuis R. Rodriguez	  cfg80211 is the Linux wireless LAN (802.11) configuration API.
31b275f285SLuis R. Rodriguez	  Enable this if you have a wireless device.
32b275f285SLuis R. Rodriguez
33b275f285SLuis R. Rodriguez	  For more information refer to documentation on the wireless wiki:
34b275f285SLuis R. Rodriguez
3559d4bfc1SFlavio Suligoi	  https://wireless.wiki.kernel.org/en/developers/Documentation/cfg80211
36b275f285SLuis R. Rodriguez
37b275f285SLuis R. Rodriguez	  When built as a module it will be called cfg80211.
38704232c2SJohannes Berg
39a7887236SRomain Naourif CFG80211
40a7887236SRomain Naour
41aff89a9bSJohannes Bergconfig NL80211_TESTMODE
42aff89a9bSJohannes Berg	bool "nl80211 testmode command"
43aff89a9bSJohannes Berg	help
44aff89a9bSJohannes Berg	  The nl80211 testmode command helps implementing things like
45aff89a9bSJohannes Berg	  factory calibration or validation tools for wireless chips.
46aff89a9bSJohannes Berg
47aff89a9bSJohannes Berg	  Select this option ONLY for kernels that are specifically
48aff89a9bSJohannes Berg	  built for such purposes.
49aff89a9bSJohannes Berg
50aff89a9bSJohannes Berg	  Debugging tools that are supposed to end up in the hands of
51aff89a9bSJohannes Berg	  users should better be implemented with debugfs.
52aff89a9bSJohannes Berg
53aff89a9bSJohannes Berg	  Say N.
54aff89a9bSJohannes Berg
55f7969969SJohannes Bergconfig CFG80211_DEVELOPER_WARNINGS
56f7969969SJohannes Berg	bool "enable developer warnings"
57f7969969SJohannes Berg	default n
58f7969969SJohannes Berg	help
59f7969969SJohannes Berg	  This option enables some additional warnings that help
60573a2b51SOla Olsson	  cfg80211 developers and driver developers, but beware that
61573a2b51SOla Olsson	  they can also trigger due to races with userspace.
62f7969969SJohannes Berg
63f7969969SJohannes Berg	  For example, when a driver reports that it was disconnected
64f7969969SJohannes Berg	  from the AP, but the user disconnects manually at the same
65f7969969SJohannes Berg	  time, the warning might trigger spuriously due to races.
66f7969969SJohannes Berg
67f7969969SJohannes Berg	  Say Y only if you are developing cfg80211 or a driver based
68f7969969SJohannes Berg	  on it (or mac80211).
69f7969969SJohannes Berg
70f7969969SJohannes Berg
71b594bab9SLuis R. Rodriguezconfig CFG80211_CERTIFICATION_ONUS
72b594bab9SLuis R. Rodriguez	bool "cfg80211 certification onus"
73a7887236SRomain Naour	depends on EXPERT
74b594bab9SLuis R. Rodriguez	default n
75a7f7f624SMasahiro Yamada	help
76b594bab9SLuis R. Rodriguez	  You should disable this option unless you are both capable
77b594bab9SLuis R. Rodriguez	  and willing to ensure your system will remain regulatory
78b594bab9SLuis R. Rodriguez	  compliant with the features available under this option.
79b594bab9SLuis R. Rodriguez	  Some options may still be under heavy development and
80b594bab9SLuis R. Rodriguez	  for whatever reason regulatory compliance has not or
81b594bab9SLuis R. Rodriguez	  cannot yet be verified. Regulatory verification may at
82b594bab9SLuis R. Rodriguez	  times only be possible until you have the final system
83b594bab9SLuis R. Rodriguez	  in place.
84b594bab9SLuis R. Rodriguez
85b594bab9SLuis R. Rodriguez	  This option should only be enabled by system integrators
86b594bab9SLuis R. Rodriguez	  or distributions that have done work necessary to ensure
87b594bab9SLuis R. Rodriguez	  regulatory certification on the system with the enabled
88b594bab9SLuis R. Rodriguez	  features. Alternatively you can enable this option if
89b594bab9SLuis R. Rodriguez	  you are a wireless researcher and are working in a controlled
90b594bab9SLuis R. Rodriguez	  and approved environment by your local regulatory agency.
91b594bab9SLuis R. Rodriguez
9290a53e44SJohannes Bergconfig CFG80211_REQUIRE_SIGNED_REGDB
9390a53e44SJohannes Berg	bool "require regdb signature" if CFG80211_CERTIFICATION_ONUS
9490a53e44SJohannes Berg	default y
9590a53e44SJohannes Berg	select SYSTEM_DATA_VERIFICATION
9690a53e44SJohannes Berg	help
9790a53e44SJohannes Berg	  Require that in addition to the "regulatory.db" file a
9890a53e44SJohannes Berg	  "regulatory.db.p7s" can be loaded with a valid PKCS#7
9990a53e44SJohannes Berg	  signature for the regulatory.db file made by one of the
10090a53e44SJohannes Berg	  keys in the certs/ directory.
10190a53e44SJohannes Berg
10290a53e44SJohannes Bergconfig CFG80211_USE_KERNEL_REGDB_KEYS
10390a53e44SJohannes Berg	bool "allow regdb keys shipped with the kernel" if CFG80211_CERTIFICATION_ONUS
10490a53e44SJohannes Berg	default y
10590a53e44SJohannes Berg	depends on CFG80211_REQUIRE_SIGNED_REGDB
10690a53e44SJohannes Berg	help
10790a53e44SJohannes Berg	  Allow the regulatory database to be signed by one of the keys for
10890a53e44SJohannes Berg	  which certificates are part of the kernel sources
10990a53e44SJohannes Berg	  (in net/wireless/certs/).
11090a53e44SJohannes Berg
11190a53e44SJohannes Berg	  This is currently only Seth Forshee's key, who is the regulatory
11290a53e44SJohannes Berg	  database maintainer.
11390a53e44SJohannes Berg
11490a53e44SJohannes Bergconfig CFG80211_EXTRA_REGDB_KEYDIR
11590a53e44SJohannes Berg	string "additional regdb key directory" if CFG80211_CERTIFICATION_ONUS
11690a53e44SJohannes Berg	depends on CFG80211_REQUIRE_SIGNED_REGDB
11790a53e44SJohannes Berg	help
11890a53e44SJohannes Berg	  If selected, point to a directory with DER-encoded X.509
11990a53e44SJohannes Berg	  certificates like in the kernel sources (net/wireless/certs/)
12090a53e44SJohannes Berg	  that shall be accepted for a signed regulatory database.
12190a53e44SJohannes Berg
12201a95b21SJohannes Berg	  Note that you need to also select the correct CRYPTO_<hash> modules
12301a95b21SJohannes Berg	  for your certificates, and if cfg80211 is built-in they also must be.
12401a95b21SJohannes Berg
12594fc661fSIlan Peerconfig CFG80211_REG_CELLULAR_HINTS
12694fc661fSIlan Peer	bool "cfg80211 regulatory support for cellular base station hints"
12794fc661fSIlan Peer	depends on CFG80211_CERTIFICATION_ONUS
128a7f7f624SMasahiro Yamada	help
12994fc661fSIlan Peer	  This option enables support for parsing regulatory hints
13094fc661fSIlan Peer	  from cellular base stations. If enabled and at least one driver
13194fc661fSIlan Peer	  claims support for parsing cellular base station hints the
13294fc661fSIlan Peer	  regulatory core will allow and parse these regulatory hints.
13394fc661fSIlan Peer	  The regulatory core will only apply these regulatory hints on
13494fc661fSIlan Peer	  drivers that support this feature. You should only enable this
13594fc661fSIlan Peer	  feature if you have tested and validated this feature on your
13694fc661fSIlan Peer	  systems.
13794fc661fSIlan Peer
138174e0cd2SIlan Peerconfig CFG80211_REG_RELAX_NO_IR
139174e0cd2SIlan Peer	bool "cfg80211 support for NO_IR relaxation"
140174e0cd2SIlan Peer	depends on CFG80211_CERTIFICATION_ONUS
141a7f7f624SMasahiro Yamada	help
142174e0cd2SIlan Peer	 This option enables support for relaxation of the NO_IR flag for
143174e0cd2SIlan Peer	 situations that certain regulatory bodies have provided clarifications
144174e0cd2SIlan Peer	 on how relaxation can occur. This feature has an inherent dependency on
145174e0cd2SIlan Peer	 userspace features which must have been properly tested and as such is
146174e0cd2SIlan Peer	 not enabled by default.
147174e0cd2SIlan Peer
148174e0cd2SIlan Peer	 A relaxation feature example is allowing the operation of a P2P group
149174e0cd2SIlan Peer	 owner (GO) on channels marked with NO_IR if there is an additional BSS
150174e0cd2SIlan Peer	 interface which associated to an AP which userspace assumes or confirms
151174e0cd2SIlan Peer	 to be an authorized master, i.e., with radar detection support and DFS
152174e0cd2SIlan Peer	 capabilities. However, note that in order to not create daisy chain
153573a2b51SOla Olsson	 scenarios, this relaxation is not allowed in cases where the BSS client
154174e0cd2SIlan Peer	 is associated to P2P GO and in addition the P2P GO instantiated on
155174e0cd2SIlan Peer	 a channel due to this relaxation should not allow connection from
156174e0cd2SIlan Peer	 non P2P clients.
157174e0cd2SIlan Peer
158174e0cd2SIlan Peer	 The regulatory core will apply these relaxations only for drivers that
159174e0cd2SIlan Peer	 support this feature by declaring the appropriate channel flags and
160174e0cd2SIlan Peer	 capabilities in their registration flow.
161174e0cd2SIlan Peer
162bc92afd9SJohannes Bergconfig CFG80211_DEFAULT_PS
163bc92afd9SJohannes Berg	bool "enable powersave by default"
164bc92afd9SJohannes Berg	default y
165bc92afd9SJohannes Berg	help
166bc92afd9SJohannes Berg	  This option enables powersave mode by default.
167bc92afd9SJohannes Berg
168bc92afd9SJohannes Berg	  If this causes your applications to misbehave you should fix your
169bc92afd9SJohannes Berg	  applications instead -- they need to register their network
170151f4e2bSMauro Carvalho Chehab	  latency requirement, see Documentation/power/pm_qos_interface.rst.
171bc92afd9SJohannes Berg
1721ac61302SLuis R. Rodriguezconfig CFG80211_DEBUGFS
1731ac61302SLuis R. Rodriguez	bool "cfg80211 DebugFS entries"
1743d23e349SJohannes Berg	depends on DEBUG_FS
175a7f7f624SMasahiro Yamada	help
176573a2b51SOla Olsson	  You can enable this if you want debugfs entries for cfg80211.
1771ac61302SLuis R. Rodriguez
1781ac61302SLuis R. Rodriguez	  If unsure, say N.
1791ac61302SLuis R. Rodriguez
180b6863036SJohannes Bergconfig CFG80211_CRDA_SUPPORT
181c8c240e2SJohannes Berg	bool "support CRDA" if EXPERT
182b6863036SJohannes Berg	default y
183b6863036SJohannes Berg	help
184b6863036SJohannes Berg	  You should enable this option unless you know for sure you have no
185a3b018feSPatrick Steinhardt	  need for it, for example when using the regulatory database loaded as
186a3b018feSPatrick Steinhardt	  a firmware file.
187b6863036SJohannes Berg
188b6863036SJohannes Berg	  If unsure, say Y.
189b6863036SJohannes Berg
1903d23e349SJohannes Bergconfig CFG80211_WEXT
1916d00ec05SJohannes Berg	bool "cfg80211 wireless extensions compatibility" if !CFG80211_WEXT_EXPORT
1923d23e349SJohannes Berg	select WEXT_CORE
1932afe38d1SJohannes Berg	default y if CFG80211_WEXT_EXPORT
1943d23e349SJohannes Berg	help
1953d23e349SJohannes Berg	  Enable this option if you need old userspace for wireless
1963d23e349SJohannes Berg	  extensions with cfg80211-based drivers.
19722bb1be4SJohannes Berg
1982afe38d1SJohannes Bergconfig CFG80211_WEXT_EXPORT
1992afe38d1SJohannes Berg	bool
2002afe38d1SJohannes Berg	help
2012afe38d1SJohannes Berg	  Drivers should select this option if they require cfg80211's
2022afe38d1SJohannes Berg	  wext compatibility symbols to be exported.
2032afe38d1SJohannes Berg
204a7887236SRomain Naourendif # CFG80211
205a7887236SRomain Naour
2067e272fcfSJohn W. Linvilleconfig LIB80211
207f3684343SJohannes Berg	tristate
2087e272fcfSJohn W. Linville	default n
2097e272fcfSJohn W. Linville	help
2107e272fcfSJohn W. Linville	  This options enables a library of common routines used
2117e272fcfSJohn W. Linville	  by IEEE802.11 wireless LAN drivers.
2127e272fcfSJohn W. Linville
213f3684343SJohannes Berg	  Drivers should select this themselves if needed.
214274bfb8dSJohn W. Linville
215274bfb8dSJohn W. Linvilleconfig LIB80211_CRYPT_WEP
216274bfb8dSJohn W. Linville	tristate
217af1f3d32SArd Biesheuvel	select CRYPTO_LIB_ARC4
218274bfb8dSJohn W. Linville
219274bfb8dSJohn W. Linvilleconfig LIB80211_CRYPT_CCMP
220274bfb8dSJohn W. Linville	tristate
221b959ba9fSNecip Fazil Yildiran	select CRYPTO
222a11e2f85SArd Biesheuvel	select CRYPTO_AES
223a11e2f85SArd Biesheuvel	select CRYPTO_CCM
224274bfb8dSJohn W. Linville
225274bfb8dSJohn W. Linvilleconfig LIB80211_CRYPT_TKIP
226274bfb8dSJohn W. Linville	tristate
2274be29701SArd Biesheuvel	select CRYPTO_LIB_ARC4
2286f16bf3bSJohn W. Linville
2296f16bf3bSJohn W. Linvilleconfig LIB80211_DEBUG
2306f16bf3bSJohn W. Linville	bool "lib80211 debugging messages"
2316f16bf3bSJohn W. Linville	depends on LIB80211
2326f16bf3bSJohn W. Linville	default n
233a7f7f624SMasahiro Yamada	help
2346f16bf3bSJohn W. Linville	  You can enable this if you want verbose debugging messages
2356f16bf3bSJohn W. Linville	  from lib80211.
2366f16bf3bSJohn W. Linville
2376f16bf3bSJohn W. Linville	  If unsure, say N.
238