hc
2025-02-14 bbb9540dc49f70f6b703d1c8d1b85fa5f602d86e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
# 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.