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