0001 # SPDX-License-Identifier: GPL-2.0-only
0002 config WIRELESS_EXT
0003 bool
0004
0005 config WEXT_CORE
0006 def_bool y
0007 depends on CFG80211_WEXT || WIRELESS_EXT
0008
0009 config WEXT_PROC
0010 def_bool y
0011 depends on PROC_FS
0012 depends on WEXT_CORE
0013
0014 config WEXT_SPY
0015 bool
0016
0017 config WEXT_PRIV
0018 bool
0019
0020 config CFG80211
0021 tristate "cfg80211 - wireless configuration API"
0022 depends on RFKILL || !RFKILL
0023 select FW_LOADER
0024 select CRC32
0025 # may need to update this when certificates are changed and are
0026 # using a different algorithm, though right now they shouldn't
0027 # (this is here rather than below to allow it to be a module)
0028 select CRYPTO_SHA256 if CFG80211_USE_KERNEL_REGDB_KEYS
0029 help
0030 cfg80211 is the Linux wireless LAN (802.11) configuration API.
0031 Enable this if you have a wireless device.
0032
0033 For more information refer to documentation on the wireless wiki:
0034
0035 https://wireless.wiki.kernel.org/en/developers/Documentation/cfg80211
0036
0037 When built as a module it will be called cfg80211.
0038
0039 if CFG80211
0040
0041 config NL80211_TESTMODE
0042 bool "nl80211 testmode command"
0043 help
0044 The nl80211 testmode command helps implementing things like
0045 factory calibration or validation tools for wireless chips.
0046
0047 Select this option ONLY for kernels that are specifically
0048 built for such purposes.
0049
0050 Debugging tools that are supposed to end up in the hands of
0051 users should better be implemented with debugfs.
0052
0053 Say N.
0054
0055 config CFG80211_DEVELOPER_WARNINGS
0056 bool "enable developer warnings"
0057 default n
0058 help
0059 This option enables some additional warnings that help
0060 cfg80211 developers and driver developers, but beware that
0061 they can also trigger due to races with userspace.
0062
0063 For example, when a driver reports that it was disconnected
0064 from the AP, but the user disconnects manually at the same
0065 time, the warning might trigger spuriously due to races.
0066
0067 Say Y only if you are developing cfg80211 or a driver based
0068 on it (or mac80211).
0069
0070
0071 config CFG80211_CERTIFICATION_ONUS
0072 bool "cfg80211 certification onus"
0073 depends on EXPERT
0074 default n
0075 help
0076 You should disable this option unless you are both capable
0077 and willing to ensure your system will remain regulatory
0078 compliant with the features available under this option.
0079 Some options may still be under heavy development and
0080 for whatever reason regulatory compliance has not or
0081 cannot yet be verified. Regulatory verification may at
0082 times only be possible until you have the final system
0083 in place.
0084
0085 This option should only be enabled by system integrators
0086 or distributions that have done work necessary to ensure
0087 regulatory certification on the system with the enabled
0088 features. Alternatively you can enable this option if
0089 you are a wireless researcher and are working in a controlled
0090 and approved environment by your local regulatory agency.
0091
0092 config CFG80211_REQUIRE_SIGNED_REGDB
0093 bool "require regdb signature" if CFG80211_CERTIFICATION_ONUS
0094 default y
0095 select SYSTEM_DATA_VERIFICATION
0096 help
0097 Require that in addition to the "regulatory.db" file a
0098 "regulatory.db.p7s" can be loaded with a valid PKCS#7
0099 signature for the regulatory.db file made by one of the
0100 keys in the certs/ directory.
0101
0102 config CFG80211_USE_KERNEL_REGDB_KEYS
0103 bool "allow regdb keys shipped with the kernel" if CFG80211_CERTIFICATION_ONUS
0104 default y
0105 depends on CFG80211_REQUIRE_SIGNED_REGDB
0106 help
0107 Allow the regulatory database to be signed by one of the keys for
0108 which certificates are part of the kernel sources
0109 (in net/wireless/certs/).
0110
0111 This is currently only Seth Forshee's key, who is the regulatory
0112 database maintainer.
0113
0114 config CFG80211_EXTRA_REGDB_KEYDIR
0115 string "additional regdb key directory" if CFG80211_CERTIFICATION_ONUS
0116 depends on CFG80211_REQUIRE_SIGNED_REGDB
0117 help
0118 If selected, point to a directory with DER-encoded X.509
0119 certificates like in the kernel sources (net/wireless/certs/)
0120 that shall be accepted for a signed regulatory database.
0121
0122 Note that you need to also select the correct CRYPTO_<hash> modules
0123 for your certificates, and if cfg80211 is built-in they also must be.
0124
0125 config CFG80211_REG_CELLULAR_HINTS
0126 bool "cfg80211 regulatory support for cellular base station hints"
0127 depends on CFG80211_CERTIFICATION_ONUS
0128 help
0129 This option enables support for parsing regulatory hints
0130 from cellular base stations. If enabled and at least one driver
0131 claims support for parsing cellular base station hints the
0132 regulatory core will allow and parse these regulatory hints.
0133 The regulatory core will only apply these regulatory hints on
0134 drivers that support this feature. You should only enable this
0135 feature if you have tested and validated this feature on your
0136 systems.
0137
0138 config CFG80211_REG_RELAX_NO_IR
0139 bool "cfg80211 support for NO_IR relaxation"
0140 depends on CFG80211_CERTIFICATION_ONUS
0141 help
0142 This option enables support for relaxation of the NO_IR flag for
0143 situations that certain regulatory bodies have provided clarifications
0144 on how relaxation can occur. This feature has an inherent dependency on
0145 userspace features which must have been properly tested and as such is
0146 not enabled by default.
0147
0148 A relaxation feature example is allowing the operation of a P2P group
0149 owner (GO) on channels marked with NO_IR if there is an additional BSS
0150 interface which associated to an AP which userspace assumes or confirms
0151 to be an authorized master, i.e., with radar detection support and DFS
0152 capabilities. However, note that in order to not create daisy chain
0153 scenarios, this relaxation is not allowed in cases where the BSS client
0154 is associated to P2P GO and in addition the P2P GO instantiated on
0155 a channel due to this relaxation should not allow connection from
0156 non P2P clients.
0157
0158 The regulatory core will apply these relaxations only for drivers that
0159 support this feature by declaring the appropriate channel flags and
0160 capabilities in their registration flow.
0161
0162 config CFG80211_DEFAULT_PS
0163 bool "enable powersave by default"
0164 default y
0165 help
0166 This option enables powersave mode by default.
0167
0168 If this causes your applications to misbehave you should fix your
0169 applications instead -- they need to register their network
0170 latency requirement, see Documentation/power/pm_qos_interface.rst.
0171
0172 config CFG80211_DEBUGFS
0173 bool "cfg80211 DebugFS entries"
0174 depends on DEBUG_FS
0175 help
0176 You can enable this if you want debugfs entries for cfg80211.
0177
0178 If unsure, say N.
0179
0180 config CFG80211_CRDA_SUPPORT
0181 bool "support CRDA" if EXPERT
0182 default y
0183 help
0184 You should enable this option unless you know for sure you have no
0185 need for it, for example when using the regulatory database loaded as
0186 a firmware file.
0187
0188 If unsure, say Y.
0189
0190 config CFG80211_WEXT
0191 bool "cfg80211 wireless extensions compatibility" if !CFG80211_WEXT_EXPORT
0192 select WEXT_CORE
0193 default y if CFG80211_WEXT_EXPORT
0194 help
0195 Enable this option if you need old userspace for wireless
0196 extensions with cfg80211-based drivers.
0197
0198 config CFG80211_WEXT_EXPORT
0199 bool
0200 help
0201 Drivers should select this option if they require cfg80211's
0202 wext compatibility symbols to be exported.
0203
0204 endif # CFG80211
0205
0206 config LIB80211
0207 tristate
0208 default n
0209 help
0210 This options enables a library of common routines used
0211 by IEEE802.11 wireless LAN drivers.
0212
0213 Drivers should select this themselves if needed.
0214
0215 config LIB80211_CRYPT_WEP
0216 tristate
0217 select CRYPTO_LIB_ARC4
0218
0219 config LIB80211_CRYPT_CCMP
0220 tristate
0221 select CRYPTO
0222 select CRYPTO_AES
0223 select CRYPTO_CCM
0224
0225 config LIB80211_CRYPT_TKIP
0226 tristate
0227 select CRYPTO_LIB_ARC4
0228
0229 config LIB80211_DEBUG
0230 bool "lib80211 debugging messages"
0231 depends on LIB80211
0232 default n
0233 help
0234 You can enable this if you want verbose debugging messages
0235 from lib80211.
0236
0237 If unsure, say N.