# SPDX-License-Identifier: GPL-2.0-only 
 | 
config WIRELESS_EXT 
 | 
    bool 
 | 
  
 | 
config WEXT_CORE 
 | 
    def_bool y 
 | 
    depends on CFG80211_WEXT || WIRELESS_EXT 
 | 
  
 | 
config WEXT_PROC 
 | 
    def_bool y 
 | 
    depends on PROC_FS 
 | 
    depends on WEXT_CORE 
 | 
  
 | 
config WEXT_SPY 
 | 
    bool 
 | 
  
 | 
config WEXT_PRIV 
 | 
    bool 
 | 
  
 | 
config CFG80211 
 | 
    tristate "cfg80211 - wireless configuration API" 
 | 
    depends on RFKILL || !RFKILL 
 | 
    select FW_LOADER 
 | 
    select CRC32 
 | 
    # may need to update this when certificates are changed and are 
 | 
    # using a different algorithm, though right now they shouldn't 
 | 
    # (this is here rather than below to allow it to be a module) 
 | 
    select CRYPTO_SHA256 if CFG80211_USE_KERNEL_REGDB_KEYS 
 | 
    help 
 | 
      cfg80211 is the Linux wireless LAN (802.11) configuration API. 
 | 
      Enable this if you have a wireless device. 
 | 
  
 | 
      For more information refer to documentation on the wireless wiki: 
 | 
  
 | 
      https://wireless.wiki.kernel.org/en/developers/Documentation/cfg80211 
 | 
  
 | 
      When built as a module it will be called cfg80211. 
 | 
  
 | 
if CFG80211 
 | 
  
 | 
config NL80211_TESTMODE 
 | 
    bool "nl80211 testmode command" 
 | 
    help 
 | 
      The nl80211 testmode command helps implementing things like 
 | 
      factory calibration or validation tools for wireless chips. 
 | 
  
 | 
      Select this option ONLY for kernels that are specifically 
 | 
      built for such purposes. 
 | 
  
 | 
      Debugging tools that are supposed to end up in the hands of 
 | 
      users should better be implemented with debugfs. 
 | 
  
 | 
      Say N. 
 | 
  
 | 
config CFG80211_DEVELOPER_WARNINGS 
 | 
    bool "enable developer warnings" 
 | 
    default n 
 | 
    help 
 | 
      This option enables some additional warnings that help 
 | 
      cfg80211 developers and driver developers, but beware that 
 | 
      they can also trigger due to races with userspace. 
 | 
  
 | 
      For example, when a driver reports that it was disconnected 
 | 
      from the AP, but the user disconnects manually at the same 
 | 
      time, the warning might trigger spuriously due to races. 
 | 
  
 | 
      Say Y only if you are developing cfg80211 or a driver based 
 | 
      on it (or mac80211). 
 | 
  
 | 
  
 | 
config CFG80211_CERTIFICATION_ONUS 
 | 
    bool "cfg80211 certification onus" 
 | 
    depends on EXPERT 
 | 
    default n 
 | 
    help 
 | 
      You should disable this option unless you are both capable 
 | 
      and willing to ensure your system will remain regulatory 
 | 
      compliant with the features available under this option. 
 | 
      Some options may still be under heavy development and 
 | 
      for whatever reason regulatory compliance has not or 
 | 
      cannot yet be verified. Regulatory verification may at 
 | 
      times only be possible until you have the final system 
 | 
      in place. 
 | 
  
 | 
      This option should only be enabled by system integrators 
 | 
      or distributions that have done work necessary to ensure 
 | 
      regulatory certification on the system with the enabled 
 | 
      features. Alternatively you can enable this option if 
 | 
      you are a wireless researcher and are working in a controlled 
 | 
      and approved environment by your local regulatory agency. 
 | 
  
 | 
config CFG80211_REQUIRE_SIGNED_REGDB 
 | 
    bool "require regdb signature" if CFG80211_CERTIFICATION_ONUS 
 | 
    default y if !ROCKCHIP_THUNDER_BOOT 
 | 
    select SYSTEM_DATA_VERIFICATION 
 | 
    help 
 | 
      Require that in addition to the "regulatory.db" file a 
 | 
      "regulatory.db.p7s" can be loaded with a valid PKCS#7 
 | 
      signature for the regulatory.db file made by one of the 
 | 
      keys in the certs/ directory. 
 | 
  
 | 
config CFG80211_USE_KERNEL_REGDB_KEYS 
 | 
    bool "allow regdb keys shipped with the kernel" if CFG80211_CERTIFICATION_ONUS 
 | 
    default y if !ROCKCHIP_THUNDER_BOOT 
 | 
    depends on CFG80211_REQUIRE_SIGNED_REGDB 
 | 
    help 
 | 
      Allow the regulatory database to be signed by one of the keys for 
 | 
      which certificates are part of the kernel sources 
 | 
      (in net/wireless/certs/). 
 | 
  
 | 
      This is currently only Seth Forshee's key, who is the regulatory 
 | 
      database maintainer. 
 | 
  
 | 
config CFG80211_EXTRA_REGDB_KEYDIR 
 | 
    string "additional regdb key directory" if CFG80211_CERTIFICATION_ONUS 
 | 
    depends on CFG80211_REQUIRE_SIGNED_REGDB 
 | 
    help 
 | 
      If selected, point to a directory with DER-encoded X.509 
 | 
      certificates like in the kernel sources (net/wireless/certs/) 
 | 
      that shall be accepted for a signed regulatory database. 
 | 
  
 | 
      Note that you need to also select the correct CRYPTO_<hash> modules 
 | 
      for your certificates, and if cfg80211 is built-in they also must be. 
 | 
  
 | 
config CFG80211_REG_CELLULAR_HINTS 
 | 
    bool "cfg80211 regulatory support for cellular base station hints" 
 | 
    depends on CFG80211_CERTIFICATION_ONUS 
 | 
    help 
 | 
      This option enables support for parsing regulatory hints 
 | 
      from cellular base stations. If enabled and at least one driver 
 | 
      claims support for parsing cellular base station hints the 
 | 
      regulatory core will allow and parse these regulatory hints. 
 | 
      The regulatory core will only apply these regulatory hints on 
 | 
      drivers that support this feature. You should only enable this 
 | 
      feature if you have tested and validated this feature on your 
 | 
      systems. 
 | 
  
 | 
config CFG80211_REG_RELAX_NO_IR 
 | 
    bool "cfg80211 support for NO_IR relaxation" 
 | 
    depends on CFG80211_CERTIFICATION_ONUS 
 | 
    help 
 | 
     This option enables support for relaxation of the NO_IR flag for 
 | 
     situations that certain regulatory bodies have provided clarifications 
 | 
     on how relaxation can occur. This feature has an inherent dependency on 
 | 
     userspace features which must have been properly tested and as such is 
 | 
     not enabled by default. 
 | 
  
 | 
     A relaxation feature example is allowing the operation of a P2P group 
 | 
     owner (GO) on channels marked with NO_IR if there is an additional BSS 
 | 
     interface which associated to an AP which userspace assumes or confirms 
 | 
     to be an authorized master, i.e., with radar detection support and DFS 
 | 
     capabilities. However, note that in order to not create daisy chain 
 | 
     scenarios, this relaxation is not allowed in cases where the BSS client 
 | 
     is associated to P2P GO and in addition the P2P GO instantiated on 
 | 
     a channel due to this relaxation should not allow connection from 
 | 
     non P2P clients. 
 | 
  
 | 
     The regulatory core will apply these relaxations only for drivers that 
 | 
     support this feature by declaring the appropriate channel flags and 
 | 
     capabilities in their registration flow. 
 | 
  
 | 
config CFG80211_DEFAULT_PS 
 | 
    bool "enable powersave by default" 
 | 
    default y 
 | 
    help 
 | 
      This option enables powersave mode by default. 
 | 
  
 | 
      If this causes your applications to misbehave you should fix your 
 | 
      applications instead -- they need to register their network 
 | 
      latency requirement, see Documentation/power/pm_qos_interface.rst. 
 | 
  
 | 
config CFG80211_DEBUGFS 
 | 
    bool "cfg80211 DebugFS entries" 
 | 
    depends on DEBUG_FS 
 | 
    help 
 | 
      You can enable this if you want debugfs entries for cfg80211. 
 | 
  
 | 
      If unsure, say N. 
 | 
  
 | 
config CFG80211_CRDA_SUPPORT 
 | 
    bool "support CRDA" if EXPERT 
 | 
    default y 
 | 
    help 
 | 
      You should enable this option unless you know for sure you have no 
 | 
      need for it, for example when using the regulatory database loaded as 
 | 
      a firmware file. 
 | 
  
 | 
      If unsure, say Y. 
 | 
  
 | 
config CFG80211_WEXT 
 | 
    bool "cfg80211 wireless extensions compatibility" if !CFG80211_WEXT_EXPORT 
 | 
    select WEXT_CORE 
 | 
    default y if CFG80211_WEXT_EXPORT 
 | 
    help 
 | 
      Enable this option if you need old userspace for wireless 
 | 
      extensions with cfg80211-based drivers. 
 | 
  
 | 
config CFG80211_WEXT_EXPORT 
 | 
    bool 
 | 
    help 
 | 
      Drivers should select this option if they require cfg80211's 
 | 
      wext compatibility symbols to be exported. 
 | 
  
 | 
endif # CFG80211 
 | 
  
 | 
config LIB80211 
 | 
    tristate 
 | 
    default n 
 | 
    help 
 | 
      This options enables a library of common routines used 
 | 
      by IEEE802.11 wireless LAN drivers. 
 | 
  
 | 
      Drivers should select this themselves if needed. 
 | 
  
 | 
config LIB80211_CRYPT_WEP 
 | 
    tristate 
 | 
    select CRYPTO_LIB_ARC4 
 | 
  
 | 
config LIB80211_CRYPT_CCMP 
 | 
    tristate 
 | 
    select CRYPTO 
 | 
    select CRYPTO_AES 
 | 
    select CRYPTO_CCM 
 | 
  
 | 
config LIB80211_CRYPT_TKIP 
 | 
    tristate 
 | 
    select CRYPTO_LIB_ARC4 
 | 
  
 | 
config LIB80211_DEBUG 
 | 
    bool "lib80211 debugging messages" 
 | 
    depends on LIB80211 
 | 
    default n 
 | 
    help 
 | 
      You can enable this if you want verbose debugging messages 
 | 
      from lib80211. 
 | 
  
 | 
      If unsure, say N. 
 |