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