1# SPDX-License-Identifier: GPL-2.0-only 2config WIRELESS_EXT 3 bool 4 5config WEXT_CORE 6 def_bool y 7 depends on CFG80211_WEXT || WIRELESS_EXT 8 9config WEXT_PROC 10 def_bool y 11 depends on PROC_FS 12 depends on WEXT_CORE 13 14config WEXT_SPY 15 bool 16 17config WEXT_PRIV 18 bool 19 20config CFG80211 21 tristate "cfg80211 - wireless configuration API" 22 depends on RFKILL || !RFKILL 23 select FW_LOADER 24 select CRC32 25 # may need to update this when certificates are changed and are 26 # using a different algorithm, though right now they shouldn't 27 # (this is here rather than below to allow it to be a module) 28 select CRYPTO_SHA256 if CFG80211_USE_KERNEL_REGDB_KEYS 29 help 30 cfg80211 is the Linux wireless LAN (802.11) configuration API. 31 Enable this if you have a wireless device. 32 33 For more information refer to documentation on the wireless wiki: 34 35 https://wireless.wiki.kernel.org/en/developers/Documentation/cfg80211 36 37 When built as a module it will be called cfg80211. 38 39if CFG80211 40 41config NL80211_TESTMODE 42 bool "nl80211 testmode command" 43 help 44 The nl80211 testmode command helps implementing things like 45 factory calibration or validation tools for wireless chips. 46 47 Select this option ONLY for kernels that are specifically 48 built for such purposes. 49 50 Debugging tools that are supposed to end up in the hands of 51 users should better be implemented with debugfs. 52 53 Say N. 54 55config CFG80211_DEVELOPER_WARNINGS 56 bool "enable developer warnings" 57 default n 58 help 59 This option enables some additional warnings that help 60 cfg80211 developers and driver developers, but beware that 61 they can also trigger due to races with userspace. 62 63 For example, when a driver reports that it was disconnected 64 from the AP, but the user disconnects manually at the same 65 time, the warning might trigger spuriously due to races. 66 67 Say Y only if you are developing cfg80211 or a driver based 68 on it (or mac80211). 69 70 71config CFG80211_CERTIFICATION_ONUS 72 bool "cfg80211 certification onus" 73 depends on EXPERT 74 default n 75 help 76 You should disable this option unless you are both capable 77 and willing to ensure your system will remain regulatory 78 compliant with the features available under this option. 79 Some options may still be under heavy development and 80 for whatever reason regulatory compliance has not or 81 cannot yet be verified. Regulatory verification may at 82 times only be possible until you have the final system 83 in place. 84 85 This option should only be enabled by system integrators 86 or distributions that have done work necessary to ensure 87 regulatory certification on the system with the enabled 88 features. Alternatively you can enable this option if 89 you are a wireless researcher and are working in a controlled 90 and approved environment by your local regulatory agency. 91 92config CFG80211_REQUIRE_SIGNED_REGDB 93 bool "require regdb signature" if CFG80211_CERTIFICATION_ONUS 94 default y 95 select SYSTEM_DATA_VERIFICATION 96 help 97 Require that in addition to the "regulatory.db" file a 98 "regulatory.db.p7s" can be loaded with a valid PKCS#7 99 signature for the regulatory.db file made by one of the 100 keys in the certs/ directory. 101 102config CFG80211_USE_KERNEL_REGDB_KEYS 103 bool "allow regdb keys shipped with the kernel" if CFG80211_CERTIFICATION_ONUS 104 default y 105 depends on CFG80211_REQUIRE_SIGNED_REGDB 106 help 107 Allow the regulatory database to be signed by one of the keys for 108 which certificates are part of the kernel sources 109 (in net/wireless/certs/). 110 111 This is currently only Seth Forshee's key, who is the regulatory 112 database maintainer. 113 114config CFG80211_EXTRA_REGDB_KEYDIR 115 string "additional regdb key directory" if CFG80211_CERTIFICATION_ONUS 116 depends on CFG80211_REQUIRE_SIGNED_REGDB 117 help 118 If selected, point to a directory with DER-encoded X.509 119 certificates like in the kernel sources (net/wireless/certs/) 120 that shall be accepted for a signed regulatory database. 121 122 Note that you need to also select the correct CRYPTO_<hash> modules 123 for your certificates, and if cfg80211 is built-in they also must be. 124 125config CFG80211_REG_CELLULAR_HINTS 126 bool "cfg80211 regulatory support for cellular base station hints" 127 depends on CFG80211_CERTIFICATION_ONUS 128 help 129 This option enables support for parsing regulatory hints 130 from cellular base stations. If enabled and at least one driver 131 claims support for parsing cellular base station hints the 132 regulatory core will allow and parse these regulatory hints. 133 The regulatory core will only apply these regulatory hints on 134 drivers that support this feature. You should only enable this 135 feature if you have tested and validated this feature on your 136 systems. 137 138config CFG80211_REG_RELAX_NO_IR 139 bool "cfg80211 support for NO_IR relaxation" 140 depends on CFG80211_CERTIFICATION_ONUS 141 help 142 This option enables support for relaxation of the NO_IR flag for 143 situations that certain regulatory bodies have provided clarifications 144 on how relaxation can occur. This feature has an inherent dependency on 145 userspace features which must have been properly tested and as such is 146 not enabled by default. 147 148 A relaxation feature example is allowing the operation of a P2P group 149 owner (GO) on channels marked with NO_IR if there is an additional BSS 150 interface which associated to an AP which userspace assumes or confirms 151 to be an authorized master, i.e., with radar detection support and DFS 152 capabilities. However, note that in order to not create daisy chain 153 scenarios, this relaxation is not allowed in cases where the BSS client 154 is associated to P2P GO and in addition the P2P GO instantiated on 155 a channel due to this relaxation should not allow connection from 156 non P2P clients. 157 158 The regulatory core will apply these relaxations only for drivers that 159 support this feature by declaring the appropriate channel flags and 160 capabilities in their registration flow. 161 162config CFG80211_DEFAULT_PS 163 bool "enable powersave by default" 164 default y 165 help 166 This option enables powersave mode by default. 167 168 If this causes your applications to misbehave you should fix your 169 applications instead -- they need to register their network 170 latency requirement, see Documentation/power/pm_qos_interface.rst. 171 172config CFG80211_DEBUGFS 173 bool "cfg80211 DebugFS entries" 174 depends on DEBUG_FS 175 help 176 You can enable this if you want debugfs entries for cfg80211. 177 178 If unsure, say N. 179 180config CFG80211_CRDA_SUPPORT 181 bool "support CRDA" if EXPERT 182 default y 183 help 184 You should enable this option unless you know for sure you have no 185 need for it, for example when using the regulatory database loaded as 186 a firmware file. 187 188 If unsure, say Y. 189 190config CFG80211_WEXT 191 bool "cfg80211 wireless extensions compatibility" if !CFG80211_WEXT_EXPORT 192 select WEXT_CORE 193 default y if CFG80211_WEXT_EXPORT 194 help 195 Enable this option if you need old userspace for wireless 196 extensions with cfg80211-based drivers. 197 198config CFG80211_WEXT_EXPORT 199 bool 200 help 201 Drivers should select this option if they require cfg80211's 202 wext compatibility symbols to be exported. 203 204config CFG80211_KUNIT_TEST 205 tristate "KUnit tests for cfg80211" if !KUNIT_ALL_TESTS 206 depends on KUNIT 207 depends on CFG80211 208 default KUNIT_ALL_TESTS 209 help 210 Enable this option to test cfg80211 functions with kunit. 211 212 If unsure, say N. 213 214endif # CFG80211 215 216config LIB80211 217 tristate 218 default n 219 help 220 This options enables a library of common routines used 221 by IEEE802.11 wireless LAN drivers. 222 223 Drivers should select this themselves if needed. 224 225config LIB80211_CRYPT_WEP 226 tristate 227 select CRYPTO_LIB_ARC4 228 229config LIB80211_CRYPT_CCMP 230 tristate 231 select CRYPTO 232 select CRYPTO_AES 233 select CRYPTO_CCM 234 235config LIB80211_CRYPT_TKIP 236 tristate 237 select CRYPTO_LIB_ARC4 238 239config LIB80211_DEBUG 240 bool "lib80211 debugging messages" 241 depends on LIB80211 242 default n 243 help 244 You can enable this if you want verbose debugging messages 245 from lib80211. 246 247 If unsure, say N. 248