mac80211: Update to version 5.10-rc6-1
[openwrt/openwrt.git] / package / network / utils / iw / patches / 001-nl80211_h_sync.patch
1 --- a/nl80211.h
2 +++ b/nl80211.h
3 @@ -252,9 +252,13 @@
4 * DOC: SAE authentication offload
5 *
6 * By setting @NL80211_EXT_FEATURE_SAE_OFFLOAD flag drivers can indicate they
7 - * support offloading SAE authentication for WPA3-Personal networks. In
8 - * %NL80211_CMD_CONNECT the password for SAE should be specified using
9 - * %NL80211_ATTR_SAE_PASSWORD.
10 + * support offloading SAE authentication for WPA3-Personal networks in station
11 + * mode. Similarly @NL80211_EXT_FEATURE_SAE_OFFLOAD_AP flag can be set by
12 + * drivers indicating the offload support in AP mode.
13 + *
14 + * The password for SAE should be specified using %NL80211_ATTR_SAE_PASSWORD in
15 + * %NL80211_CMD_CONNECT and %NL80211_CMD_START_AP for station and AP mode
16 + * respectively.
17 */
18
19 /**
20 @@ -647,13 +651,9 @@
21 * authentication/association or not receiving a response from the AP.
22 * Non-zero %NL80211_ATTR_STATUS_CODE value is indicated in that case as
23 * well to remain backwards compatible.
24 - * When establishing a security association, drivers that support 4 way
25 - * handshake offload should send %NL80211_CMD_PORT_AUTHORIZED event when
26 - * the 4 way handshake is completed successfully.
27 * @NL80211_CMD_ROAM: Notification indicating the card/driver roamed by itself.
28 - * When a security association was established with the new AP (e.g. if
29 - * the FT protocol was used for roaming or the driver completed the 4 way
30 - * handshake), this event should be followed by an
31 + * When a security association was established on an 802.1X network using
32 + * fast transition, this event should be followed by an
33 * %NL80211_CMD_PORT_AUTHORIZED event.
34 * @NL80211_CMD_DISCONNECT: drop a given connection; also used to notify
35 * userspace that a connection was dropped by the AP or due to other
36 @@ -1067,13 +1067,11 @@
37 * @NL80211_CMD_DEL_PMK: For offloaded 4-Way handshake, delete the previously
38 * configured PMK for the authenticator address identified by
39 * %NL80211_ATTR_MAC.
40 - * @NL80211_CMD_PORT_AUTHORIZED: An event that indicates that the 4 way
41 - * handshake was completed successfully by the driver. The BSSID is
42 - * specified with %NL80211_ATTR_MAC. Drivers that support 4 way handshake
43 - * offload should send this event after indicating 802.11 association with
44 - * %NL80211_CMD_CONNECT or %NL80211_CMD_ROAM. If the 4 way handshake failed
45 - * %NL80211_CMD_DISCONNECT should be indicated instead.
46 - *
47 + * @NL80211_CMD_PORT_AUTHORIZED: An event that indicates an 802.1X FT roam was
48 + * completed successfully. Drivers that support 4 way handshake offload
49 + * should send this event after indicating 802.1X FT assocation with
50 + * %NL80211_CMD_ROAM. If the 4 way handshake failed %NL80211_CMD_DISCONNECT
51 + * should be indicated instead.
52 * @NL80211_CMD_CONTROL_PORT_FRAME: Control Port (e.g. PAE) frame TX request
53 * and RX notification. This command is used both as a request to transmit
54 * a control port frame and as a notification that a control port frame
55 @@ -2082,10 +2080,10 @@ enum nl80211_commands {
56 * operation).
57 * @NL80211_ATTR_CSA_IES: Nested set of attributes containing the IE information
58 * for the time while performing a channel switch.
59 - * @NL80211_ATTR_CSA_C_OFF_BEACON: An array of offsets (u16) to the channel
60 - * switch counters in the beacons tail (%NL80211_ATTR_BEACON_TAIL).
61 - * @NL80211_ATTR_CSA_C_OFF_PRESP: An array of offsets (u16) to the channel
62 - * switch counters in the probe response (%NL80211_ATTR_PROBE_RESP).
63 + * @NL80211_ATTR_CNTDWN_OFFS_BEACON: An array of offsets (u16) to the channel
64 + * switch or color change counters in the beacons tail (%NL80211_ATTR_BEACON_TAIL).
65 + * @NL80211_ATTR_CNTDWN_OFFS_PRESP: An array of offsets (u16) to the channel
66 + * switch or color change counters in the probe response (%NL80211_ATTR_PROBE_RESP).
67 *
68 * @NL80211_ATTR_RXMGMT_FLAGS: flags for nl80211_send_mgmt(), u32.
69 * As specified in the &enum nl80211_rxmgmt_flags.
70 @@ -2515,6 +2513,23 @@ enum nl80211_commands {
71 * @NL80211_ATTR_HE_6GHZ_CAPABILITY: HE 6 GHz Band Capability element (from
72 * association request when used with NL80211_CMD_NEW_STATION).
73 *
74 + * @NL80211_ATTR_FILS_DISCOVERY: Optional parameter to configure FILS
75 + * discovery. It is a nested attribute, see
76 + * &enum nl80211_fils_discovery_attributes.
77 + *
78 + * @NL80211_ATTR_UNSOL_BCAST_PROBE_RESP: Optional parameter to configure
79 + * unsolicited broadcast probe response. It is a nested attribute, see
80 + * &enum nl80211_unsol_bcast_probe_resp_attributes.
81 + *
82 + * @NL80211_ATTR_S1G_CAPABILITY: S1G Capability information element (from
83 + * association request when used with NL80211_CMD_NEW_STATION)
84 + * @NL80211_ATTR_S1G_CAPABILITY_MASK: S1G Capability Information element
85 + * override mask. Used with NL80211_ATTR_S1G_CAPABILITY in
86 + * NL80211_CMD_ASSOCIATE or NL80211_CMD_CONNECT.
87 + *
88 + * @NL80211_ATTR_WIPHY_ANTENNA_GAIN: Configured antenna gain. Used to reduce
89 + * transmit power to stay within regulatory limits. u32, dBi.
90 + *
91 * @NUM_NL80211_ATTR: total number of nl80211_attrs available
92 * @NL80211_ATTR_MAX: highest attribute number currently defined
93 * @__NL80211_ATTR_AFTER_LAST: internal use
94 @@ -2821,8 +2836,8 @@ enum nl80211_attrs {
95 NL80211_ATTR_CH_SWITCH_COUNT,
96 NL80211_ATTR_CH_SWITCH_BLOCK_TX,
97 NL80211_ATTR_CSA_IES,
98 - NL80211_ATTR_CSA_C_OFF_BEACON,
99 - NL80211_ATTR_CSA_C_OFF_PRESP,
100 + NL80211_ATTR_CNTDWN_OFFS_BEACON,
101 + NL80211_ATTR_CNTDWN_OFFS_PRESP,
102
103 NL80211_ATTR_RXMGMT_FLAGS,
104
105 @@ -2997,6 +3012,15 @@ enum nl80211_attrs {
106
107 NL80211_ATTR_HE_6GHZ_CAPABILITY,
108
109 + NL80211_ATTR_FILS_DISCOVERY,
110 +
111 + NL80211_ATTR_UNSOL_BCAST_PROBE_RESP,
112 +
113 + NL80211_ATTR_S1G_CAPABILITY,
114 + NL80211_ATTR_S1G_CAPABILITY_MASK,
115 +
116 + NL80211_ATTR_WIPHY_ANTENNA_GAIN,
117 +
118 /* add attributes here, update the policy in nl80211.c */
119
120 __NL80211_ATTR_AFTER_LAST,
121 @@ -3009,6 +3033,8 @@ enum nl80211_attrs {
122 #define NL80211_ATTR_MESH_PARAMS NL80211_ATTR_MESH_CONFIG
123 #define NL80211_ATTR_IFACE_SOCKET_OWNER NL80211_ATTR_SOCKET_OWNER
124 #define NL80211_ATTR_SAE_DATA NL80211_ATTR_AUTH_DATA
125 +#define NL80211_ATTR_CSA_C_OFF_BEACON NL80211_ATTR_CNTDWN_OFFS_BEACON
126 +#define NL80211_ATTR_CSA_C_OFF_PRESP NL80211_ATTR_CNTDWN_OFFS_PRESP
127
128 /*
129 * Allow user space programs to use #ifdef on new attributes by defining them
130 @@ -3186,6 +3212,18 @@ enum nl80211_he_gi {
131 NL80211_RATE_INFO_HE_GI_3_2,
132 };
133
134 +/**
135 + * enum nl80211_he_ltf - HE long training field
136 + * @NL80211_RATE_INFO_HE_1xLTF: 3.2 usec
137 + * @NL80211_RATE_INFO_HE_2xLTF: 6.4 usec
138 + * @NL80211_RATE_INFO_HE_4xLTF: 12.8 usec
139 + */
140 +enum nl80211_he_ltf {
141 + NL80211_RATE_INFO_HE_1XLTF,
142 + NL80211_RATE_INFO_HE_2XLTF,
143 + NL80211_RATE_INFO_HE_4XLTF,
144 +};
145 +
146 /**
147 * enum nl80211_he_ru_alloc - HE RU allocation values
148 * @NL80211_RATE_INFO_HE_RU_ALLOC_26: 26-tone RU allocation
149 @@ -3725,6 +3763,16 @@ enum nl80211_wmm_rule {
150 * @NL80211_FREQUENCY_ATTR_NO_HE: HE operation is not allowed on this channel
151 * in current regulatory domain.
152 * @NL80211_FREQUENCY_ATTR_OFFSET: frequency offset in KHz
153 + * @NL80211_FREQUENCY_ATTR_1MHZ: 1 MHz operation is allowed
154 + * on this channel in current regulatory domain.
155 + * @NL80211_FREQUENCY_ATTR_2MHZ: 2 MHz operation is allowed
156 + * on this channel in current regulatory domain.
157 + * @NL80211_FREQUENCY_ATTR_4MHZ: 4 MHz operation is allowed
158 + * on this channel in current regulatory domain.
159 + * @NL80211_FREQUENCY_ATTR_8MHZ: 8 MHz operation is allowed
160 + * on this channel in current regulatory domain.
161 + * @NL80211_FREQUENCY_ATTR_16MHZ: 16 MHz operation is allowed
162 + * on this channel in current regulatory domain.
163 * @NL80211_FREQUENCY_ATTR_MAX: highest frequency attribute number
164 * currently defined
165 * @__NL80211_FREQUENCY_ATTR_AFTER_LAST: internal use
166 @@ -3756,6 +3804,11 @@ enum nl80211_frequency_attr {
167 NL80211_FREQUENCY_ATTR_WMM,
168 NL80211_FREQUENCY_ATTR_NO_HE,
169 NL80211_FREQUENCY_ATTR_OFFSET,
170 + NL80211_FREQUENCY_ATTR_1MHZ,
171 + NL80211_FREQUENCY_ATTR_2MHZ,
172 + NL80211_FREQUENCY_ATTR_4MHZ,
173 + NL80211_FREQUENCY_ATTR_8MHZ,
174 + NL80211_FREQUENCY_ATTR_16MHZ,
175
176 /* keep last */
177 __NL80211_FREQUENCY_ATTR_AFTER_LAST,
178 @@ -4049,6 +4102,7 @@ enum nl80211_user_reg_hint_type {
179 * receiving frames destined to the local BSS
180 * @NL80211_SURVEY_INFO_MAX: highest survey info attribute number
181 * currently defined
182 + * @NL80211_SURVEY_INFO_FREQUENCY_OFFSET: center frequency offset in KHz
183 * @__NL80211_SURVEY_INFO_AFTER_LAST: internal use
184 */
185 enum nl80211_survey_info {
186 @@ -4064,6 +4118,7 @@ enum nl80211_survey_info {
187 NL80211_SURVEY_INFO_TIME_SCAN,
188 NL80211_SURVEY_INFO_PAD,
189 NL80211_SURVEY_INFO_TIME_BSS_RX,
190 + NL80211_SURVEY_INFO_FREQUENCY_OFFSET,
191
192 /* keep last */
193 __NL80211_SURVEY_INFO_AFTER_LAST,
194 @@ -4741,6 +4796,10 @@ enum nl80211_key_attributes {
195 * @NL80211_TXRATE_VHT: VHT rates allowed for TX rate selection,
196 * see &struct nl80211_txrate_vht
197 * @NL80211_TXRATE_GI: configure GI, see &enum nl80211_txrate_gi
198 + * @NL80211_TXRATE_HE: HE rates allowed for TX rate selection,
199 + * see &struct nl80211_txrate_he
200 + * @NL80211_TXRATE_HE_GI: configure HE GI, 0.8us, 1.6us and 3.2us.
201 + * @NL80211_TXRATE_HE_LTF: configure HE LTF, 1XLTF, 2XLTF and 4XLTF.
202 * @__NL80211_TXRATE_AFTER_LAST: internal
203 * @NL80211_TXRATE_MAX: highest TX rate attribute
204 */
205 @@ -4750,6 +4809,9 @@ enum nl80211_tx_rate_attributes {
206 NL80211_TXRATE_HT,
207 NL80211_TXRATE_VHT,
208 NL80211_TXRATE_GI,
209 + NL80211_TXRATE_HE,
210 + NL80211_TXRATE_HE_GI,
211 + NL80211_TXRATE_HE_LTF,
212
213 /* keep last */
214 __NL80211_TXRATE_AFTER_LAST,
215 @@ -4767,6 +4829,15 @@ struct nl80211_txrate_vht {
216 __u16 mcs[NL80211_VHT_NSS_MAX];
217 };
218
219 +#define NL80211_HE_NSS_MAX 8
220 +/**
221 + * struct nl80211_txrate_he - HE MCS/NSS txrate bitmap
222 + * @mcs: MCS bitmap table for each NSS (array index 0 for 1 stream, etc.)
223 + */
224 +struct nl80211_txrate_he {
225 + __u16 mcs[NL80211_HE_NSS_MAX];
226 +};
227 +
228 enum nl80211_txrate_gi {
229 NL80211_TXRATE_DEFAULT_GI,
230 NL80211_TXRATE_FORCE_SGI,
231 @@ -5821,6 +5892,15 @@ enum nl80211_feature_flags {
232 * handshake with PSK in AP mode (PSK is passed as part of the start AP
233 * command).
234 *
235 + * @NL80211_EXT_FEATURE_SAE_OFFLOAD_AP: Device wants to do SAE authentication
236 + * in AP mode (SAE password is passed as part of the start AP command).
237 + *
238 + * @NL80211_EXT_FEATURE_FILS_DISCOVERY: Driver/device supports FILS discovery
239 + * frames transmission
240 + *
241 + * @NL80211_EXT_FEATURE_UNSOL_BCAST_PROBE_RESP: Driver/device supports
242 + * unsolicited broadcast probe response transmission
243 + *
244 * @NUM_NL80211_EXT_FEATURES: number of extended features.
245 * @MAX_NL80211_EXT_FEATURES: highest extended feature index.
246 */
247 @@ -5878,6 +5958,9 @@ enum nl80211_ext_feature_index {
248 NL80211_EXT_FEATURE_CONTROL_PORT_OVER_NL80211_TX_STATUS,
249 NL80211_EXT_FEATURE_OPERATING_CHANNEL_VALIDATION,
250 NL80211_EXT_FEATURE_4WAY_HANDSHAKE_AP_PSK,
251 + NL80211_EXT_FEATURE_SAE_OFFLOAD_AP,
252 + NL80211_EXT_FEATURE_FILS_DISCOVERY,
253 + NL80211_EXT_FEATURE_UNSOL_BCAST_PROBE_RESP,
254
255 /* add new features before the definition below */
256 NUM_NL80211_EXT_FEATURES,
257 @@ -5992,6 +6075,8 @@ enum nl80211_timeout_reason {
258 * @NL80211_SCAN_FLAG_FREQ_KHZ: report scan results with
259 * %NL80211_ATTR_SCAN_FREQ_KHZ. This also means
260 * %NL80211_ATTR_SCAN_FREQUENCIES will not be included.
261 + * @NL80211_SCAN_FLAG_COLOCATED_6GHZ: scan for colocated APs reported by
262 + * 2.4/5 GHz APs
263 */
264 enum nl80211_scan_flags {
265 NL80211_SCAN_FLAG_LOW_PRIORITY = 1<<0,
266 @@ -6008,6 +6093,7 @@ enum nl80211_scan_flags {
267 NL80211_SCAN_FLAG_RANDOM_SN = 1<<11,
268 NL80211_SCAN_FLAG_MIN_PREQ_CONTENT = 1<<12,
269 NL80211_SCAN_FLAG_FREQ_KHZ = 1<<13,
270 + NL80211_SCAN_FLAG_COLOCATED_6GHZ = 1<<14,
271 };
272
273 /**
274 @@ -6910,6 +6996,13 @@ enum nl80211_peer_measurement_ftm_resp {
275 *
276 * @NL80211_HE_OBSS_PD_ATTR_MIN_OFFSET: the OBSS PD minimum tx power offset.
277 * @NL80211_HE_OBSS_PD_ATTR_MAX_OFFSET: the OBSS PD maximum tx power offset.
278 + * @NL80211_HE_OBSS_PD_ATTR_NON_SRG_MAX_OFFSET: the non-SRG OBSS PD maximum
279 + * tx power offset.
280 + * @NL80211_HE_OBSS_PD_ATTR_BSS_COLOR_BITMAP: bitmap that indicates the BSS color
281 + * values used by members of the SRG.
282 + * @NL80211_HE_OBSS_PD_ATTR_PARTIAL_BSSID_BITMAP: bitmap that indicates the partial
283 + * BSSID values used by members of the SRG.
284 + * @NL80211_HE_OBSS_PD_ATTR_SR_CTRL: The SR Control field of SRP element.
285 *
286 * @__NL80211_HE_OBSS_PD_ATTR_LAST: Internal
287 * @NL80211_HE_OBSS_PD_ATTR_MAX: highest OBSS PD attribute.
288 @@ -6919,6 +7012,10 @@ enum nl80211_obss_pd_attributes {
289
290 NL80211_HE_OBSS_PD_ATTR_MIN_OFFSET,
291 NL80211_HE_OBSS_PD_ATTR_MAX_OFFSET,
292 + NL80211_HE_OBSS_PD_ATTR_NON_SRG_MAX_OFFSET,
293 + NL80211_HE_OBSS_PD_ATTR_BSS_COLOR_BITMAP,
294 + NL80211_HE_OBSS_PD_ATTR_PARTIAL_BSSID_BITMAP,
295 + NL80211_HE_OBSS_PD_ATTR_SR_CTRL,
296
297 /* keep last */
298 __NL80211_HE_OBSS_PD_ATTR_LAST,
299 @@ -6972,4 +7069,64 @@ enum nl80211_iftype_akm_attributes {
300 NL80211_IFTYPE_AKM_ATTR_MAX = __NL80211_IFTYPE_AKM_ATTR_LAST - 1,
301 };
302
303 +/**
304 + * enum nl80211_fils_discovery_attributes - FILS discovery configuration
305 + * from IEEE Std 802.11ai-2016, Annex C.3 MIB detail.
306 + *
307 + * @__NL80211_FILS_DISCOVERY_ATTR_INVALID: Invalid
308 + *
309 + * @NL80211_FILS_DISCOVERY_ATTR_INT_MIN: Minimum packet interval (u32, TU).
310 + * Allowed range: 0..10000 (TU = Time Unit)
311 + * @NL80211_FILS_DISCOVERY_ATTR_INT_MAX: Maximum packet interval (u32, TU).
312 + * Allowed range: 0..10000 (TU = Time Unit)
313 + * @NL80211_FILS_DISCOVERY_ATTR_TMPL: Template data for FILS discovery action
314 + * frame including the headers.
315 + *
316 + * @__NL80211_FILS_DISCOVERY_ATTR_LAST: Internal
317 + * @NL80211_FILS_DISCOVERY_ATTR_MAX: highest attribute
318 + */
319 +enum nl80211_fils_discovery_attributes {
320 + __NL80211_FILS_DISCOVERY_ATTR_INVALID,
321 +
322 + NL80211_FILS_DISCOVERY_ATTR_INT_MIN,
323 + NL80211_FILS_DISCOVERY_ATTR_INT_MAX,
324 + NL80211_FILS_DISCOVERY_ATTR_TMPL,
325 +
326 + /* keep last */
327 + __NL80211_FILS_DISCOVERY_ATTR_LAST,
328 + NL80211_FILS_DISCOVERY_ATTR_MAX = __NL80211_FILS_DISCOVERY_ATTR_LAST - 1
329 +};
330 +
331 +/*
332 + * FILS discovery template minimum length with action frame headers and
333 + * mandatory fields.
334 + */
335 +#define NL80211_FILS_DISCOVERY_TMPL_MIN_LEN 42
336 +
337 +/**
338 + * enum nl80211_unsol_bcast_probe_resp_attributes - Unsolicited broadcast probe
339 + * response configuration. Applicable only in 6GHz.
340 + *
341 + * @__NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_INVALID: Invalid
342 + *
343 + * @NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_INT: Maximum packet interval (u32, TU).
344 + * Allowed range: 0..20 (TU = Time Unit). IEEE P802.11ax/D6.0
345 + * 26.17.2.3.2 (AP behavior for fast passive scanning).
346 + * @NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_TMPL: Unsolicited broadcast probe response
347 + * frame template (binary).
348 + *
349 + * @__NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_LAST: Internal
350 + * @NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_MAX: highest attribute
351 + */
352 +enum nl80211_unsol_bcast_probe_resp_attributes {
353 + __NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_INVALID,
354 +
355 + NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_INT,
356 + NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_TMPL,
357 +
358 + /* keep last */
359 + __NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_LAST,
360 + NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_MAX =
361 + __NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_LAST - 1
362 +};
363 #endif /* __LINUX_NL80211_H */