1 # SPDX-License-Identifier: GPL-2.0-only
7 depends on CFG80211_WEXT || WIRELESS_EXT
18 tristate "cfg80211 - wireless configuration API"
19 depends on RFKILL || !RFKILL
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
27 cfg80211 is the Linux wireless LAN (802.11) configuration API.
28 Enable this if you have a wireless device.
30 For more information refer to documentation on the wireless wiki:
32 https://wireless.wiki.kernel.org/en/developers/Documentation/cfg80211
34 When built as a module it will be called cfg80211.
38 config NL80211_TESTMODE
39 bool "nl80211 testmode command"
41 The nl80211 testmode command helps implementing things like
42 factory calibration or validation tools for wireless chips.
44 Select this option ONLY for kernels that are specifically
45 built for such purposes.
47 Debugging tools that are supposed to end up in the hands of
48 users should better be implemented with debugfs.
52 config CFG80211_DEVELOPER_WARNINGS
53 bool "enable developer warnings"
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.
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.
64 Say Y only if you are developing cfg80211 or a driver based
68 config CFG80211_CERTIFICATION_ONUS
69 bool "cfg80211 certification onus"
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
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.
89 config CFG80211_REQUIRE_SIGNED_REGDB
90 bool "require regdb signature" if CFG80211_CERTIFICATION_ONUS
92 select SYSTEM_DATA_VERIFICATION
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.
99 config CFG80211_USE_KERNEL_REGDB_KEYS
100 bool "allow regdb keys shipped with the kernel" if CFG80211_CERTIFICATION_ONUS
102 depends on CFG80211_REQUIRE_SIGNED_REGDB
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/).
108 This is currently only Seth Forshee's key, who is the regulatory
111 config CFG80211_EXTRA_REGDB_KEYDIR
112 string "additional regdb key directory" if CFG80211_CERTIFICATION_ONUS
113 depends on CFG80211_REQUIRE_SIGNED_REGDB
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.
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.
122 config CFG80211_REG_CELLULAR_HINTS
123 bool "cfg80211 regulatory support for cellular base station hints"
124 depends on CFG80211_CERTIFICATION_ONUS
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
135 config CFG80211_REG_RELAX_NO_IR
136 bool "cfg80211 support for NO_IR relaxation"
137 depends on CFG80211_CERTIFICATION_ONUS
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.
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
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.
159 config CFG80211_DEFAULT_PS
160 bool "enable powersave by default"
163 This option enables powersave mode by default.
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.
169 config CFG80211_DEBUGFS
170 bool "cfg80211 DebugFS entries"
173 You can enable this if you want debugfs entries for cfg80211.
177 config CFG80211_CRDA_SUPPORT
178 bool "support CRDA" if EXPERT
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
188 bool "cfg80211 wireless extensions compatibility"
191 Enable this option if you need old userspace for wireless
192 extensions with cfg80211-based drivers.
194 config CFG80211_KUNIT_TEST
195 tristate "KUnit tests for cfg80211" if !KUNIT_ALL_TESTS
198 default KUNIT_ALL_TESTS
200 Enable this option to test cfg80211 functions with kunit.