mac80211: Update to version 5.7-rc3-1
[oweals/openwrt.git] / package / network / utils / iw / patches / 001-nl80211_h_sync.patch
1 --- a/nl80211.h
2 +++ b/nl80211.h
3 @@ -11,7 +11,7 @@
4   * Copyright 2008 Jouni Malinen <jouni.malinen@atheros.com>
5   * Copyright 2008 Colin McCabe <colin@cozybit.com>
6   * Copyright 2015-2017 Intel Deutschland GmbH
7 - * Copyright (C) 2018-2019 Intel Corporation
8 + * Copyright (C) 2018-2020 Intel Corporation
9   *
10   * Permission to use, copy, modify, and/or distribute this software for any
11   * purpose with or without fee is hereby granted, provided that the above
12 @@ -249,6 +249,45 @@
13   */
14  
15  /**
16 + * DOC: VLAN offload support for setting group keys and binding STAs to VLANs
17 + *
18 + * By setting @NL80211_EXT_FEATURE_VLAN_OFFLOAD flag drivers can indicate they
19 + * support offloading VLAN functionality in a manner where the driver exposes a
20 + * single netdev that uses VLAN tagged frames and separate VLAN-specific netdevs
21 + * can then be added using RTM_NEWLINK/IFLA_VLAN_ID similarly to the Ethernet
22 + * case. Frames received from stations that are not assigned to any VLAN are
23 + * delivered on the main netdev and frames to such stations can be sent through
24 + * that main netdev.
25 + *
26 + * %NL80211_CMD_NEW_KEY (for group keys), %NL80211_CMD_NEW_STATION, and
27 + * %NL80211_CMD_SET_STATION will optionally specify vlan_id using
28 + * %NL80211_ATTR_VLAN_ID.
29 + */
30 +
31 +/**
32 + * DOC: TID configuration
33 + *
34 + * TID config support can be checked in the %NL80211_ATTR_TID_CONFIG
35 + * attribute given in wiphy capabilities.
36 + *
37 + * The necessary configuration parameters are mentioned in
38 + * &enum nl80211_tid_config_attr and it will be passed to the
39 + * %NL80211_CMD_SET_TID_CONFIG command in %NL80211_ATTR_TID_CONFIG.
40 + *
41 + * If the configuration needs to be applied for specific peer then the MAC
42 + * address of the peer needs to be passed in %NL80211_ATTR_MAC, otherwise the
43 + * configuration will be applied for all the connected peers in the vif except
44 + * any peers that have peer specific configuration for the TID by default; if
45 + * the %NL80211_TID_CONFIG_ATTR_OVERRIDE flag is set, peer specific values
46 + * will be overwritten.
47 + *
48 + * All this configuration is valid only for STA's current connection
49 + * i.e. the configuration will be reset to default when the STA connects back
50 + * after disconnection/roaming, and this configuration will be cleared when
51 + * the interface goes down.
52 + */
53 +
54 +/**
55   * enum nl80211_commands - supported nl80211 commands
56   *
57   * @NL80211_CMD_UNSPEC: unspecified command to catch errors
58 @@ -571,6 +610,14 @@
59   *     set of BSSID,frequency parameters is used (i.e., either the enforcing
60   *     %NL80211_ATTR_MAC,%NL80211_ATTR_WIPHY_FREQ or the less strict
61   *     %NL80211_ATTR_MAC_HINT and %NL80211_ATTR_WIPHY_FREQ_HINT).
62 + *     Driver shall not modify the IEs specified through %NL80211_ATTR_IE if
63 + *     %NL80211_ATTR_MAC is included. However, if %NL80211_ATTR_MAC_HINT is
64 + *     included, these IEs through %NL80211_ATTR_IE are specified by the user
65 + *     space based on the best possible BSS selected. Thus, if the driver ends
66 + *     up selecting a different BSS, it can modify these IEs accordingly (e.g.
67 + *     userspace asks the driver to perform PMKSA caching with BSS1 and the
68 + *     driver ends up selecting BSS2 with different PMKSA cache entry; RSNIE
69 + *     has to get updated with the apt PMKID).
70   *     %NL80211_ATTR_PREV_BSSID can be used to request a reassociation within
71   *     the ESS in case the device is already associated and an association with
72   *     a different BSS is desired.
73 @@ -1101,6 +1148,9 @@
74   *     peer MAC address and %NL80211_ATTR_FRAME is used to specify the frame
75   *     content. The frame is ethernet data.
76   *
77 + * @NL80211_CMD_SET_TID_CONFIG: Data frame TID specific configuration
78 + *     is passed using %NL80211_ATTR_TID_CONFIG attribute.
79 + *
80   * @NL80211_CMD_MAX: highest used command number
81   * @__NL80211_CMD_AFTER_LAST: internal use
82   */
83 @@ -1325,6 +1375,8 @@ enum nl80211_commands {
84  
85         NL80211_CMD_PROBE_MESH_LINK,
86  
87 +       NL80211_CMD_SET_TID_CONFIG,
88 +
89         /* add new commands above here */
90  
91         /* used to define NL80211_CMD_MAX below */
92 @@ -1580,7 +1632,8 @@ enum nl80211_commands {
93   *     flag is included, then control port frames are sent over NL80211 instead
94   *     using %CMD_CONTROL_PORT_FRAME.  If control port routing over NL80211 is
95   *     to be used then userspace must also use the %NL80211_ATTR_SOCKET_OWNER
96 - *     flag.
97 + *     flag. When used with %NL80211_ATTR_CONTROL_PORT_NO_PREAUTH, pre-auth
98 + *     frames are not forwared over the control port.
99   *
100   * @NL80211_ATTR_TESTDATA: Testmode data blob, passed through to the driver.
101   *     We recommend using nested, driver-specific attributes within this.
102 @@ -2373,6 +2426,53 @@ enum nl80211_commands {
103   *     the allowed channel bandwidth configurations. (u8 attribute)
104   *     Defined by IEEE P802.11ay/D4.0 section 9.4.2.251, Table 13.
105   *
106 + * @NL80211_ATTR_VLAN_ID: VLAN ID (1..4094) for the station and VLAN group key
107 + *     (u16).
108 + *
109 + * @NL80211_ATTR_HE_BSS_COLOR: nested attribute for BSS Color Settings.
110 + *
111 + * @NL80211_ATTR_IFTYPE_AKM_SUITES: nested array attribute, with each entry
112 + *     using attributes from &enum nl80211_iftype_akm_attributes. This
113 + *     attribute is sent in a response to %NL80211_CMD_GET_WIPHY indicating
114 + *     supported AKM suites capability per interface. AKMs advertised in
115 + *     %NL80211_ATTR_AKM_SUITES are default capabilities if AKM suites not
116 + *     advertised for a specific interface type.
117 + *
118 + * @NL80211_ATTR_TID_CONFIG: TID specific configuration in a
119 + *     nested attribute with &enum nl80211_tid_config_attr sub-attributes;
120 + *     on output (in wiphy attributes) it contains only the feature sub-
121 + *     attributes.
122 + *
123 + * @NL80211_ATTR_CONTROL_PORT_NO_PREAUTH: disable preauth frame rx on control
124 + *     port in order to forward/receive them as ordinary data frames.
125 + *
126 + * @NL80211_ATTR_PMK_LIFETIME: Maximum lifetime for PMKSA in seconds (u32,
127 + *     dot11RSNAConfigPMKReauthThreshold; 0 is not a valid value).
128 + *     An optional parameter configured through %NL80211_CMD_SET_PMKSA.
129 + *     Drivers that trigger roaming need to know the lifetime of the
130 + *     configured PMKSA for triggering the full vs. PMKSA caching based
131 + *     authentication. This timeout helps authentication methods like SAE,
132 + *     where PMK gets updated only by going through a full (new SAE)
133 + *     authentication instead of getting updated during an association for EAP
134 + *     authentication. No new full authentication within the PMK expiry shall
135 + *     result in a disassociation at the end of the lifetime.
136 + *
137 + * @NL80211_ATTR_PMK_REAUTH_THRESHOLD: Reauthentication threshold time, in
138 + *     terms of percentage of %NL80211_ATTR_PMK_LIFETIME
139 + *     (u8, dot11RSNAConfigPMKReauthThreshold, 1..100). This is an optional
140 + *     parameter configured through %NL80211_CMD_SET_PMKSA. Requests the
141 + *     driver to trigger a full authentication roam (without PMKSA caching)
142 + *     after the reauthentication threshold time, but before the PMK lifetime
143 + *     has expired.
144 + *
145 + *     Authentication methods like SAE need to be able to generate a new PMKSA
146 + *     entry without having to force a disconnection after the PMK timeout. If
147 + *     no roaming occurs between the reauth threshold and PMK expiration,
148 + *     disassociation is still forced.
149 + *
150 + * @NL80211_ATTR_WIPHY_ANTENNA_GAIN: Configured antenna gain. Used to reduce
151 + *     transmit power to stay within regulatory limits. u32, dBi.
152 + *
153   * @NUM_NL80211_ATTR: total number of nl80211_attrs available
154   * @NL80211_ATTR_MAX: highest attribute number currently defined
155   * @__NL80211_ATTR_AFTER_LAST: internal use
156 @@ -2835,6 +2935,21 @@ enum nl80211_attrs {
157         NL80211_ATTR_WIPHY_EDMG_CHANNELS,
158         NL80211_ATTR_WIPHY_EDMG_BW_CONFIG,
159  
160 +       NL80211_ATTR_VLAN_ID,
161 +
162 +       NL80211_ATTR_HE_BSS_COLOR,
163 +
164 +       NL80211_ATTR_IFTYPE_AKM_SUITES,
165 +
166 +       NL80211_ATTR_TID_CONFIG,
167 +
168 +       NL80211_ATTR_CONTROL_PORT_NO_PREAUTH,
169 +
170 +       NL80211_ATTR_PMK_LIFETIME,
171 +       NL80211_ATTR_PMK_REAUTH_THRESHOLD,
172 +
173 +       NL80211_ATTR_WIPHY_ANTENNA_GAIN,
174 +
175         /* add attributes here, update the policy in nl80211.c */
176  
177         __NL80211_ATTR_AFTER_LAST,
178 @@ -3554,6 +3669,8 @@ enum nl80211_wmm_rule {
179   * @NL80211_FREQUENCY_ATTR_WMM: this channel has wmm limitations.
180   *     This is a nested attribute that contains the wmm limitation per AC.
181   *     (see &enum nl80211_wmm_rule)
182 + * @NL80211_FREQUENCY_ATTR_NO_HE: HE operation is not allowed on this channel
183 + *     in current regulatory domain.
184   * @NL80211_FREQUENCY_ATTR_MAX: highest frequency attribute number
185   *     currently defined
186   * @__NL80211_FREQUENCY_ATTR_AFTER_LAST: internal use
187 @@ -3583,6 +3700,7 @@ enum nl80211_frequency_attr {
188         NL80211_FREQUENCY_ATTR_NO_20MHZ,
189         NL80211_FREQUENCY_ATTR_NO_10MHZ,
190         NL80211_FREQUENCY_ATTR_WMM,
191 +       NL80211_FREQUENCY_ATTR_NO_HE,
192  
193         /* keep last */
194         __NL80211_FREQUENCY_ATTR_AFTER_LAST,
195 @@ -3780,6 +3898,7 @@ enum nl80211_sched_scan_match_attr {
196   * @NL80211_RRF_NO_HT40PLUS: channels can't be used in HT40+ operation
197   * @NL80211_RRF_NO_80MHZ: 80MHz operation not allowed
198   * @NL80211_RRF_NO_160MHZ: 160MHz operation not allowed
199 + * @NL80211_RRF_NO_HE: HE operation not allowed
200   */
201  enum nl80211_reg_rule_flags {
202         NL80211_RRF_NO_OFDM             = 1<<0,
203 @@ -3797,6 +3916,7 @@ enum nl80211_reg_rule_flags {
204         NL80211_RRF_NO_HT40PLUS         = 1<<14,
205         NL80211_RRF_NO_80MHZ            = 1<<15,
206         NL80211_RRF_NO_160MHZ           = 1<<16,
207 +       NL80211_RRF_NO_HE               = 1<<17,
208  };
209  
210  #define NL80211_RRF_PASSIVE_SCAN       NL80211_RRF_NO_IR
211 @@ -4503,6 +4623,7 @@ enum nl80211_key_default_types {
212   *     See &enum nl80211_key_default_types.
213   * @NL80211_KEY_MODE: the mode from enum nl80211_key_mode.
214   *     Defaults to @NL80211_KEY_RX_TX.
215 + * @NL80211_KEY_DEFAULT_BEACON: flag indicating default Beacon frame key
216   *
217   * @__NL80211_KEY_AFTER_LAST: internal
218   * @NL80211_KEY_MAX: highest key attribute
219 @@ -4518,6 +4639,7 @@ enum nl80211_key_attributes {
220         NL80211_KEY_TYPE,
221         NL80211_KEY_DEFAULT_TYPES,
222         NL80211_KEY_MODE,
223 +       NL80211_KEY_DEFAULT_BEACON,
224  
225         /* keep last */
226         __NL80211_KEY_AFTER_LAST,
227 @@ -4674,6 +4796,69 @@ enum nl80211_tx_power_setting {
228  };
229  
230  /**
231 + * enum nl80211_tid_config - TID config state
232 + * @NL80211_TID_CONFIG_ENABLE: Enable config for the TID
233 + * @NL80211_TID_CONFIG_DISABLE: Disable config for the TID
234 + */
235 +enum nl80211_tid_config {
236 +       NL80211_TID_CONFIG_ENABLE,
237 +       NL80211_TID_CONFIG_DISABLE,
238 +};
239 +
240 +/* enum nl80211_tid_config_attr - TID specific configuration.
241 + * @NL80211_TID_CONFIG_ATTR_PAD: pad attribute for 64-bit values
242 + * @NL80211_TID_CONFIG_ATTR_VIF_SUPP: a bitmap (u64) of attributes supported
243 + *     for per-vif configuration; doesn't list the ones that are generic
244 + *     (%NL80211_TID_CONFIG_ATTR_TIDS, %NL80211_TID_CONFIG_ATTR_OVERRIDE).
245 + * @NL80211_TID_CONFIG_ATTR_PEER_SUPP: same as the previous per-vif one, but
246 + *     per peer instead.
247 + * @NL80211_TID_CONFIG_ATTR_OVERRIDE: flag attribue, if no peer
248 + *     is selected, if set indicates that the new configuration overrides
249 + *     all previous peer configurations, otherwise previous peer specific
250 + *     configurations should be left untouched. If peer is selected then
251 + *     it will reset particular TID configuration of that peer and it will
252 + *     not accept other TID config attributes along with peer.
253 + * @NL80211_TID_CONFIG_ATTR_TIDS: a bitmask value of TIDs (bit 0 to 7)
254 + *     Its type is u16.
255 + * @NL80211_TID_CONFIG_ATTR_NOACK: Configure ack policy for the TID.
256 + *     specified in %NL80211_TID_CONFIG_ATTR_TID. see %enum nl80211_tid_config.
257 + *     Its type is u8.
258 + * @NL80211_TID_CONFIG_ATTR_RETRY_SHORT: Number of retries used with data frame
259 + *     transmission, user-space sets this configuration in
260 + *     &NL80211_CMD_SET_TID_CONFIG. It is u8 type, min value is 1 and
261 + *     the max value is advertised by the driver in this attribute on
262 + *     output in wiphy capabilities.
263 + * @NL80211_TID_CONFIG_ATTR_RETRY_LONG: Number of retries used with data frame
264 + *     transmission, user-space sets this configuration in
265 + *     &NL80211_CMD_SET_TID_CONFIG. Its type is u8, min value is 1 and
266 + *     the max value is advertised by the driver in this attribute on
267 + *     output in wiphy capabilities.
268 + * @NL80211_TID_CONFIG_ATTR_AMPDU_CTRL: Enable/Disable aggregation for the TIDs
269 + *     specified in %NL80211_TID_CONFIG_ATTR_TIDS. Its type is u8, using
270 + *     the values from &nl80211_tid_config.
271 + * @NL80211_TID_CONFIG_ATTR_RTSCTS_CTRL: Enable/Disable RTS_CTS for the TIDs
272 + *     specified in %NL80211_TID_CONFIG_ATTR_TIDS. It is u8 type, using
273 + *     the values from &nl80211_tid_config.
274 + */
275 +enum nl80211_tid_config_attr {
276 +       __NL80211_TID_CONFIG_ATTR_INVALID,
277 +       NL80211_TID_CONFIG_ATTR_PAD,
278 +       NL80211_TID_CONFIG_ATTR_VIF_SUPP,
279 +       NL80211_TID_CONFIG_ATTR_PEER_SUPP,
280 +       NL80211_TID_CONFIG_ATTR_OVERRIDE,
281 +       NL80211_TID_CONFIG_ATTR_TIDS,
282 +       NL80211_TID_CONFIG_ATTR_NOACK,
283 +       NL80211_TID_CONFIG_ATTR_RETRY_SHORT,
284 +       NL80211_TID_CONFIG_ATTR_RETRY_LONG,
285 +       NL80211_TID_CONFIG_ATTR_AMPDU_CTRL,
286 +       NL80211_TID_CONFIG_ATTR_RTSCTS_CTRL,
287 +
288 +       /* keep last */
289 +       __NL80211_TID_CONFIG_ATTR_AFTER_LAST,
290 +       NL80211_TID_CONFIG_ATTR_MAX = __NL80211_TID_CONFIG_ATTR_AFTER_LAST - 1
291 +};
292 +
293 +/**
294   * enum nl80211_packet_pattern_attr - packet pattern attribute
295   * @__NL80211_PKTPAT_INVALID: invalid number for nested attribute
296   * @NL80211_PKTPAT_PATTERN: the pattern, values where the mask has
297 @@ -5484,6 +5669,26 @@ enum nl80211_feature_flags {
298   * @NL80211_EXT_FEATURE_SAE_OFFLOAD: Device wants to do SAE authentication in
299   *     station mode (SAE password is passed as part of the connect command).
300   *
301 + * @NL80211_EXT_FEATURE_VLAN_OFFLOAD: The driver supports a single netdev
302 + *     with VLAN tagged frames and separate VLAN-specific netdevs added using
303 + *     vconfig similarly to the Ethernet case.
304 + *
305 + * @NL80211_EXT_FEATURE_AQL: The driver supports the Airtime Queue Limit (AQL)
306 + *     feature, which prevents bufferbloat by using the expected transmission
307 + *     time to limit the amount of data buffered in the hardware.
308 + *
309 + * @NL80211_EXT_FEATURE_BEACON_PROTECTION: The driver supports Beacon protection
310 + *     and can receive key configuration for BIGTK using key indexes 6 and 7.
311 + *
312 + * @NL80211_EXT_FEATURE_CONTROL_PORT_NO_PREAUTH: The driver can disable the
313 + *     forwarding of preauth frames over the control port. They are then
314 + *     handled as ordinary data frames.
315 + *
316 + * @NL80211_EXT_FEATURE_PROTECTED_TWT: Driver supports protected TWT frames
317 + *
318 + * @NL80211_EXT_FEATURE_DEL_IBSS_STA: The driver supports removing stations
319 + *      in IBSS mode, essentially by dropping their state.
320 + *
321   * @NUM_NL80211_EXT_FEATURES: number of extended features.
322   * @MAX_NL80211_EXT_FEATURES: highest extended feature index.
323   */
324 @@ -5529,6 +5734,12 @@ enum nl80211_ext_feature_index {
325         NL80211_EXT_FEATURE_EXT_KEY_ID,
326         NL80211_EXT_FEATURE_STA_TX_PWR,
327         NL80211_EXT_FEATURE_SAE_OFFLOAD,
328 +       NL80211_EXT_FEATURE_VLAN_OFFLOAD,
329 +       NL80211_EXT_FEATURE_AQL,
330 +       NL80211_EXT_FEATURE_BEACON_PROTECTION,
331 +       NL80211_EXT_FEATURE_CONTROL_PORT_NO_PREAUTH,
332 +       NL80211_EXT_FEATURE_PROTECTED_TWT,
333 +       NL80211_EXT_FEATURE_DEL_IBSS_STA,
334  
335         /* add new features before the definition below */
336         NUM_NL80211_EXT_FEATURES,
337 @@ -6151,12 +6362,14 @@ enum nl80211_ftm_responder_stats {
338   * @NL80211_PREAMBLE_HT: HT preamble
339   * @NL80211_PREAMBLE_VHT: VHT preamble
340   * @NL80211_PREAMBLE_DMG: DMG preamble
341 + * @NL80211_PREAMBLE_HE: HE preamble
342   */
343  enum nl80211_preamble {
344         NL80211_PREAMBLE_LEGACY,
345         NL80211_PREAMBLE_HT,
346         NL80211_PREAMBLE_VHT,
347         NL80211_PREAMBLE_DMG,
348 +       NL80211_PREAMBLE_HE,
349  };
350  
351  /**
352 @@ -6349,6 +6562,10 @@ enum nl80211_peer_measurement_attrs {
353   *     is valid)
354   * @NL80211_PMSR_FTM_CAPA_ATTR_MAX_FTMS_PER_BURST: u32 attribute indicating
355   *     the maximum FTMs per burst (if not present anything is valid)
356 + * @NL80211_PMSR_FTM_CAPA_ATTR_TRIGGER_BASED: flag attribute indicating if
357 + *     trigger based ranging measurement is supported
358 + * @NL80211_PMSR_FTM_CAPA_ATTR_NON_TRIGGER_BASED: flag attribute indicating
359 + *     if non trigger based ranging measurement is supported
360   *
361   * @NUM_NL80211_PMSR_FTM_CAPA_ATTR: internal
362   * @NL80211_PMSR_FTM_CAPA_ATTR_MAX: highest attribute number
363 @@ -6364,6 +6581,8 @@ enum nl80211_peer_measurement_ftm_capa {
364         NL80211_PMSR_FTM_CAPA_ATTR_BANDWIDTHS,
365         NL80211_PMSR_FTM_CAPA_ATTR_MAX_BURSTS_EXPONENT,
366         NL80211_PMSR_FTM_CAPA_ATTR_MAX_FTMS_PER_BURST,
367 +       NL80211_PMSR_FTM_CAPA_ATTR_TRIGGER_BASED,
368 +       NL80211_PMSR_FTM_CAPA_ATTR_NON_TRIGGER_BASED,
369  
370         /* keep last */
371         NUM_NL80211_PMSR_FTM_CAPA_ATTR,
372 @@ -6393,6 +6612,20 @@ enum nl80211_peer_measurement_ftm_capa {
373   * @NL80211_PMSR_FTM_REQ_ATTR_REQUEST_LCI: request LCI data (flag)
374   * @NL80211_PMSR_FTM_REQ_ATTR_REQUEST_CIVICLOC: request civic location data
375   *     (flag)
376 + * @NL80211_PMSR_FTM_REQ_ATTR_TRIGGER_BASED: request trigger based ranging
377 + *     measurement (flag).
378 + *     This attribute and %NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED are
379 + *     mutually exclusive.
380 + *      if neither %NL80211_PMSR_FTM_REQ_ATTR_TRIGGER_BASED nor
381 + *     %NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED is set, EDCA based
382 + *     ranging will be used.
383 + * @NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED: request non trigger based
384 + *     ranging measurement (flag)
385 + *     This attribute and %NL80211_PMSR_FTM_REQ_ATTR_TRIGGER_BASED are
386 + *     mutually exclusive.
387 + *      if neither %NL80211_PMSR_FTM_REQ_ATTR_TRIGGER_BASED nor
388 + *     %NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED is set, EDCA based
389 + *     ranging will be used.
390   *
391   * @NUM_NL80211_PMSR_FTM_REQ_ATTR: internal
392   * @NL80211_PMSR_FTM_REQ_ATTR_MAX: highest attribute number
393 @@ -6409,6 +6642,8 @@ enum nl80211_peer_measurement_ftm_req {
394         NL80211_PMSR_FTM_REQ_ATTR_NUM_FTMR_RETRIES,
395         NL80211_PMSR_FTM_REQ_ATTR_REQUEST_LCI,
396         NL80211_PMSR_FTM_REQ_ATTR_REQUEST_CIVICLOC,
397 +       NL80211_PMSR_FTM_REQ_ATTR_TRIGGER_BASED,
398 +       NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED,
399  
400         /* keep last */
401         NUM_NL80211_PMSR_FTM_REQ_ATTR,
402 @@ -6548,5 +6783,51 @@ enum nl80211_obss_pd_attributes {
403         NL80211_HE_OBSS_PD_ATTR_MAX = __NL80211_HE_OBSS_PD_ATTR_LAST - 1,
404  };
405  
406 +/**
407 + * enum nl80211_bss_color_attributes - BSS Color attributes
408 + * @__NL80211_HE_BSS_COLOR_ATTR_INVALID: Invalid
409 + *
410 + * @NL80211_HE_BSS_COLOR_ATTR_COLOR: the current BSS Color.
411 + * @NL80211_HE_BSS_COLOR_ATTR_DISABLED: is BSS coloring disabled.
412 + * @NL80211_HE_BSS_COLOR_ATTR_PARTIAL: the AID equation to be used..
413 + *
414 + * @__NL80211_HE_BSS_COLOR_ATTR_LAST: Internal
415 + * @NL80211_HE_BSS_COLOR_ATTR_MAX: highest BSS Color attribute.
416 + */
417 +enum nl80211_bss_color_attributes {
418 +       __NL80211_HE_BSS_COLOR_ATTR_INVALID,
419 +
420 +       NL80211_HE_BSS_COLOR_ATTR_COLOR,
421 +       NL80211_HE_BSS_COLOR_ATTR_DISABLED,
422 +       NL80211_HE_BSS_COLOR_ATTR_PARTIAL,
423 +
424 +       /* keep last */
425 +       __NL80211_HE_BSS_COLOR_ATTR_LAST,
426 +       NL80211_HE_BSS_COLOR_ATTR_MAX = __NL80211_HE_BSS_COLOR_ATTR_LAST - 1,
427 +};
428 +
429 +/**
430 + * enum nl80211_iftype_akm_attributes - interface type AKM attributes
431 + * @__NL80211_IFTYPE_AKM_ATTR_INVALID: Invalid
432 + *
433 + * @NL80211_IFTYPE_AKM_ATTR_IFTYPES: nested attribute containing a flag
434 + *     attribute for each interface type that supports AKM suites specified in
435 + *     %NL80211_IFTYPE_AKM_ATTR_SUITES
436 + * @NL80211_IFTYPE_AKM_ATTR_SUITES: an array of u32. Used to indicate supported
437 + *     AKM suites for the specified interface types.
438 + *
439 + * @__NL80211_IFTYPE_AKM_ATTR_LAST: Internal
440 + * @NL80211_IFTYPE_AKM_ATTR_MAX: highest interface type AKM attribute.
441 + */
442 +enum nl80211_iftype_akm_attributes {
443 +       __NL80211_IFTYPE_AKM_ATTR_INVALID,
444 +
445 +       NL80211_IFTYPE_AKM_ATTR_IFTYPES,
446 +       NL80211_IFTYPE_AKM_ATTR_SUITES,
447 +
448 +       /* keep last */
449 +       __NL80211_IFTYPE_AKM_ATTR_LAST,
450 +       NL80211_IFTYPE_AKM_ATTR_MAX = __NL80211_IFTYPE_AKM_ATTR_LAST - 1,
451 +};
452  
453  #endif /* __LINUX_NL80211_H */