iw: sync nl80211.h
[openwrt/staging/yousong.git] / package / network / utils / iw / patches / 001-nl80211_h_sync.patch
1 --- a/nl80211.h
2 +++ b/nl80211.h
3 @@ -503,6 +503,9 @@
4 * TX status event pertaining to the TX request.
5 * %NL80211_ATTR_TX_NO_CCK_RATE is used to decide whether to send the
6 * management frames at CCK rate or not in 2GHz band.
7 + * %NL80211_ATTR_CSA_C_OFFSETS_TX is an array of offsets to CSA
8 + * counters which will be updated to the current value. This attribute
9 + * is used during CSA period.
10 * @NL80211_CMD_FRAME_WAIT_CANCEL: When an off-channel TX was requested, this
11 * command may be used with the corresponding cookie to cancel the wait
12 * time if it is known that it is no longer necessary.
13 @@ -719,6 +722,22 @@
14 * QoS mapping is relevant for IP packets, it is only valid during an
15 * association. This is cleared on disassociation and AP restart.
16 *
17 + * @NL80211_CMD_ADD_TX_TS: Ask the kernel to add a traffic stream for the given
18 + * %NL80211_ATTR_TSID and %NL80211_ATTR_MAC with %NL80211_ATTR_USER_PRIO
19 + * and %NL80211_ATTR_ADMITTED_TIME parameters.
20 + * Note that the action frame handshake with the AP shall be handled by
21 + * userspace via the normal management RX/TX framework, this only sets
22 + * up the TX TS in the driver/device.
23 + * If the admitted time attribute is not added then the request just checks
24 + * if a subsequent setup could be successful, the intent is to use this to
25 + * avoid setting up a session with the AP when local restrictions would
26 + * make that impossible. However, the subsequent "real" setup may still
27 + * fail even if the check was successful.
28 + * @NL80211_CMD_DEL_TX_TS: Remove an existing TS with the %NL80211_ATTR_TSID
29 + * and %NL80211_ATTR_MAC parameters. It isn't necessary to call this
30 + * before removing a station entry entirely, or before disassociating
31 + * or similar, cleanup will happen in the driver/device in this case.
32 + *
33 * @NL80211_CMD_MAX: highest used command number
34 * @__NL80211_CMD_AFTER_LAST: internal use
35 */
36 @@ -890,6 +909,9 @@ enum nl80211_commands {
37
38 NL80211_CMD_SET_QOS_MAP,
39
40 + NL80211_CMD_ADD_TX_TS,
41 + NL80211_CMD_DEL_TX_TS,
42 +
43 /* add new commands above here */
44
45 /* used to define NL80211_CMD_MAX below */
46 @@ -1525,10 +1547,10 @@ enum nl80211_commands {
47 * operation).
48 * @NL80211_ATTR_CSA_IES: Nested set of attributes containing the IE information
49 * for the time while performing a channel switch.
50 - * @NL80211_ATTR_CSA_C_OFF_BEACON: Offset of the channel switch counter
51 - * field in the beacons tail (%NL80211_ATTR_BEACON_TAIL).
52 - * @NL80211_ATTR_CSA_C_OFF_PRESP: Offset of the channel switch counter
53 - * field in the probe response (%NL80211_ATTR_PROBE_RESP).
54 + * @NL80211_ATTR_CSA_C_OFF_BEACON: An array of offsets (u16) to the channel
55 + * switch counters in the beacons tail (%NL80211_ATTR_BEACON_TAIL).
56 + * @NL80211_ATTR_CSA_C_OFF_PRESP: An array of offsets (u16) to the channel
57 + * switch counters in the probe response (%NL80211_ATTR_PROBE_RESP).
58 *
59 * @NL80211_ATTR_RXMGMT_FLAGS: flags for nl80211_send_mgmt(), u32.
60 * As specified in the &enum nl80211_rxmgmt_flags.
61 @@ -1576,9 +1598,49 @@ enum nl80211_commands {
62 * advertise values that cannot always be met. In such cases, an attempt
63 * to add a new station entry with @NL80211_CMD_NEW_STATION may fail.
64 *
65 + * @NL80211_ATTR_CSA_C_OFFSETS_TX: An array of csa counter offsets (u16) which
66 + * should be updated when the frame is transmitted.
67 + * @NL80211_ATTR_MAX_CSA_COUNTERS: U8 attribute used to advertise the maximum
68 + * supported number of csa counters.
69 + *
70 * @NL80211_ATTR_TDLS_PEER_CAPABILITY: flags for TDLS peer capabilities, u32.
71 * As specified in the &enum nl80211_tdls_peer_capability.
72 *
73 + * @NL80211_ATTR_IFACE_SOCKET_OWNER: flag attribute, if set during interface
74 + * creation then the new interface will be owned by the netlink socket
75 + * that created it and will be destroyed when the socket is closed
76 + *
77 + * @NL80211_ATTR_TDLS_INITIATOR: flag attribute indicating the current end is
78 + * the TDLS link initiator.
79 + *
80 + * @NL80211_ATTR_USE_RRM: flag for indicating whether the current connection
81 + * shall support Radio Resource Measurements (11k). This attribute can be
82 + * used with %NL80211_CMD_ASSOCIATE and %NL80211_CMD_CONNECT requests.
83 + * User space applications are expected to use this flag only if the
84 + * underlying device supports these minimal RRM features:
85 + * %NL80211_FEATURE_DS_PARAM_SET_IE_IN_PROBES,
86 + * %NL80211_FEATURE_QUIET,
87 + * If this flag is used, driver must add the Power Capabilities IE to the
88 + * association request. In addition, it must also set the RRM capability
89 + * flag in the association request's Capability Info field.
90 + *
91 + * @NL80211_ATTR_WIPHY_DYN_ACK: flag attribute used to enable ACK timeout
92 + * estimation algorithm (dynack). In order to activate dynack
93 + * %NL80211_FEATURE_ACKTO_ESTIMATION feature flag must be set by lower
94 + * drivers to indicate dynack capability. Dynack is automatically disabled
95 + * setting valid value for coverage class.
96 + *
97 + * @NL80211_ATTR_TSID: a TSID value (u8 attribute)
98 + * @NL80211_ATTR_USER_PRIO: user priority value (u8 attribute)
99 + * @NL80211_ATTR_ADMITTED_TIME: admitted time in units of 32 microseconds
100 + * (per second) (u16 attribute)
101 + *
102 + * @NL80211_ATTR_SMPS_MODE: SMPS mode to use (ap mode). see
103 + * &enum nl80211_smps_mode.
104 + *
105 + * @NL80211_ATTR_WIPHY_ANTENNA_GAIN: Configured antenna gain. Used to reduce
106 + * transmit power to stay within regulatory limits. u32, dBi.
107 + *
108 * @NL80211_ATTR_MAX: highest attribute number currently defined
109 * @__NL80211_ATTR_AFTER_LAST: internal use
110 */
111 @@ -1914,6 +1976,25 @@ enum nl80211_attrs {
112
113 NL80211_ATTR_TDLS_PEER_CAPABILITY,
114
115 + NL80211_ATTR_IFACE_SOCKET_OWNER,
116 +
117 + NL80211_ATTR_CSA_C_OFFSETS_TX,
118 + NL80211_ATTR_MAX_CSA_COUNTERS,
119 +
120 + NL80211_ATTR_TDLS_INITIATOR,
121 +
122 + NL80211_ATTR_USE_RRM,
123 +
124 + NL80211_ATTR_WIPHY_DYN_ACK,
125 +
126 + NL80211_ATTR_TSID,
127 + NL80211_ATTR_USER_PRIO,
128 + NL80211_ATTR_ADMITTED_TIME,
129 +
130 + NL80211_ATTR_SMPS_MODE,
131 +
132 + NL80211_ATTR_WIPHY_ANTENNA_GAIN,
133 +
134 /* add attributes here, update the policy in nl80211.c */
135
136 __NL80211_ATTR_AFTER_LAST,
137 @@ -2182,6 +2263,8 @@ enum nl80211_sta_bss_param {
138 * Contains a nested array of signal strength attributes (u8, dBm)
139 * @NL80211_STA_INFO_CHAIN_SIGNAL_AVG: per-chain signal strength average
140 * Same format as NL80211_STA_INFO_CHAIN_SIGNAL.
141 + * @NL80211_STA_EXPECTED_THROUGHPUT: expected throughput considering also the
142 + * 802.11 header (u32, kbps)
143 * @__NL80211_STA_INFO_AFTER_LAST: internal
144 * @NL80211_STA_INFO_MAX: highest possible station info attribute
145 */
146 @@ -2213,6 +2296,7 @@ enum nl80211_sta_info {
147 NL80211_STA_INFO_TX_BYTES64,
148 NL80211_STA_INFO_CHAIN_SIGNAL,
149 NL80211_STA_INFO_CHAIN_SIGNAL_AVG,
150 + NL80211_STA_INFO_EXPECTED_THROUGHPUT,
151
152 /* keep last */
153 __NL80211_STA_INFO_AFTER_LAST,
154 @@ -2336,9 +2420,34 @@ enum nl80211_band_attr {
155 * using this channel as the primary or any of the secondary channels
156 * isn't possible
157 * @NL80211_FREQUENCY_ATTR_DFS_CAC_TIME: DFS CAC time in milliseconds.
158 + * @NL80211_FREQUENCY_ATTR_INDOOR_ONLY: Only indoor use is permitted on this
159 + * channel. A channel that has the INDOOR_ONLY attribute can only be
160 + * used when there is a clear assessment that the device is operating in
161 + * an indoor surroundings, i.e., it is connected to AC power (and not
162 + * through portable DC inverters) or is under the control of a master
163 + * that is acting as an AP and is connected to AC power.
164 + * @NL80211_FREQUENCY_ATTR_GO_CONCURRENT: GO operation is allowed on this
165 + * channel if it's connected concurrently to a BSS on the same channel on
166 + * the 2 GHz band or to a channel in the same UNII band (on the 5 GHz
167 + * band), and IEEE80211_CHAN_RADAR is not set. Instantiating a GO on a
168 + * channel that has the GO_CONCURRENT attribute set can be done when there
169 + * is a clear assessment that the device is operating under the guidance of
170 + * an authorized master, i.e., setting up a GO while the device is also
171 + * connected to an AP with DFS and radar detection on the UNII band (it is
172 + * up to user-space, i.e., wpa_supplicant to perform the required
173 + * verifications)
174 + * @NL80211_FREQUENCY_ATTR_NO_20MHZ: 20 MHz operation is not allowed
175 + * on this channel in current regulatory domain.
176 + * @NL80211_FREQUENCY_ATTR_NO_10MHZ: 10 MHz operation is not allowed
177 + * on this channel in current regulatory domain.
178 * @NL80211_FREQUENCY_ATTR_MAX: highest frequency attribute number
179 * currently defined
180 * @__NL80211_FREQUENCY_ATTR_AFTER_LAST: internal use
181 + *
182 + * See https://apps.fcc.gov/eas/comments/GetPublishedDocument.html?id=327&tn=528122
183 + * for more information on the FCC description of the relaxations allowed
184 + * by NL80211_FREQUENCY_ATTR_INDOOR_ONLY and
185 + * NL80211_FREQUENCY_ATTR_GO_CONCURRENT.
186 */
187 enum nl80211_frequency_attr {
188 __NL80211_FREQUENCY_ATTR_INVALID,
189 @@ -2355,6 +2464,10 @@ enum nl80211_frequency_attr {
190 NL80211_FREQUENCY_ATTR_NO_80MHZ,
191 NL80211_FREQUENCY_ATTR_NO_160MHZ,
192 NL80211_FREQUENCY_ATTR_DFS_CAC_TIME,
193 + NL80211_FREQUENCY_ATTR_INDOOR_ONLY,
194 + NL80211_FREQUENCY_ATTR_GO_CONCURRENT,
195 + NL80211_FREQUENCY_ATTR_NO_20MHZ,
196 + NL80211_FREQUENCY_ATTR_NO_10MHZ,
197
198 /* keep last */
199 __NL80211_FREQUENCY_ATTR_AFTER_LAST,
200 @@ -2573,10 +2686,13 @@ enum nl80211_dfs_regions {
201 * present has been registered with the wireless core that
202 * has listed NL80211_FEATURE_CELL_BASE_REG_HINTS as a
203 * supported feature.
204 + * @NL80211_USER_REG_HINT_INDOOR: a user sent an hint indicating that the
205 + * platform is operating in an indoor environment.
206 */
207 enum nl80211_user_reg_hint_type {
208 NL80211_USER_REG_HINT_USER = 0,
209 NL80211_USER_REG_HINT_CELL_BASE = 1,
210 + NL80211_USER_REG_HINT_INDOOR = 2,
211 };
212
213 /**
214 @@ -2998,14 +3114,20 @@ enum nl80211_bss_scan_width {
215 * @NL80211_BSS_BSSID: BSSID of the BSS (6 octets)
216 * @NL80211_BSS_FREQUENCY: frequency in MHz (u32)
217 * @NL80211_BSS_TSF: TSF of the received probe response/beacon (u64)
218 + * (if @NL80211_BSS_PRESP_DATA is present then this is known to be
219 + * from a probe response, otherwise it may be from the same beacon
220 + * that the NL80211_BSS_BEACON_TSF will be from)
221 * @NL80211_BSS_BEACON_INTERVAL: beacon interval of the (I)BSS (u16)
222 * @NL80211_BSS_CAPABILITY: capability field (CPU order, u16)
223 * @NL80211_BSS_INFORMATION_ELEMENTS: binary attribute containing the
224 * raw information elements from the probe response/beacon (bin);
225 - * if the %NL80211_BSS_BEACON_IES attribute is present, the IEs here are
226 - * from a Probe Response frame; otherwise they are from a Beacon frame.
227 + * if the %NL80211_BSS_BEACON_IES attribute is present and the data is
228 + * different then the IEs here are from a Probe Response frame; otherwise
229 + * they are from a Beacon frame.
230 * However, if the driver does not indicate the source of the IEs, these
231 * IEs may be from either frame subtype.
232 + * If present, the @NL80211_BSS_PRESP_DATA attribute indicates that the
233 + * data here is known to be from a probe response, without any heuristics.
234 * @NL80211_BSS_SIGNAL_MBM: signal strength of probe response/beacon
235 * in mBm (100 * dBm) (s32)
236 * @NL80211_BSS_SIGNAL_UNSPEC: signal strength of the probe response/beacon
237 @@ -3017,6 +3139,10 @@ enum nl80211_bss_scan_width {
238 * yet been received
239 * @NL80211_BSS_CHAN_WIDTH: channel width of the control channel
240 * (u32, enum nl80211_bss_scan_width)
241 + * @NL80211_BSS_BEACON_TSF: TSF of the last received beacon (u64)
242 + * (not present if no beacon frame has been received yet)
243 + * @NL80211_BSS_PRESP_DATA: the data in @NL80211_BSS_INFORMATION_ELEMENTS and
244 + * @NL80211_BSS_TSF is known to be from a probe response (flag attribute)
245 * @__NL80211_BSS_AFTER_LAST: internal
246 * @NL80211_BSS_MAX: highest BSS attribute
247 */
248 @@ -3034,6 +3160,8 @@ enum nl80211_bss {
249 NL80211_BSS_SEEN_MS_AGO,
250 NL80211_BSS_BEACON_IES,
251 NL80211_BSS_CHAN_WIDTH,
252 + NL80211_BSS_BEACON_TSF,
253 + NL80211_BSS_PRESP_DATA,
254
255 /* keep last */
256 __NL80211_BSS_AFTER_LAST,
257 @@ -3650,6 +3778,8 @@ enum nl80211_iface_limit_attrs {
258 * different channels may be used within this group.
259 * @NL80211_IFACE_COMB_RADAR_DETECT_WIDTHS: u32 attribute containing the bitmap
260 * of supported channel widths for radar detection.
261 + * @NL80211_IFACE_COMB_RADAR_DETECT_REGIONS: u32 attribute containing the bitmap
262 + * of supported regulatory regions for radar detection.
263 * @NUM_NL80211_IFACE_COMB: number of attributes
264 * @MAX_NL80211_IFACE_COMB: highest attribute number
265 *
266 @@ -3683,6 +3813,7 @@ enum nl80211_if_combination_attrs {
267 NL80211_IFACE_COMB_STA_AP_BI_MATCH,
268 NL80211_IFACE_COMB_NUM_CHANNELS,
269 NL80211_IFACE_COMB_RADAR_DETECT_WIDTHS,
270 + NL80211_IFACE_COMB_RADAR_DETECT_REGIONS,
271
272 /* keep last */
273 NUM_NL80211_IFACE_COMB,
274 @@ -3893,6 +4024,29 @@ enum nl80211_ap_sme_features {
275 * interface. An active monitor interface behaves like a normal monitor
276 * interface, but gets added to the driver. It ensures that incoming
277 * unicast packets directed at the configured interface address get ACKed.
278 + * @NL80211_FEATURE_AP_MODE_CHAN_WIDTH_CHANGE: This driver supports dynamic
279 + * channel bandwidth change (e.g., HT 20 <-> 40 MHz channel) during the
280 + * lifetime of a BSS.
281 + * @NL80211_FEATURE_DS_PARAM_SET_IE_IN_PROBES: This device adds a DS Parameter
282 + * Set IE to probe requests.
283 + * @NL80211_FEATURE_WFA_TPC_IE_IN_PROBES: This device adds a WFA TPC Report IE
284 + * to probe requests.
285 + * @NL80211_FEATURE_QUIET: This device, in client mode, supports Quiet Period
286 + * requests sent to it by an AP.
287 + * @NL80211_FEATURE_TX_POWER_INSERTION: This device is capable of inserting the
288 + * current tx power value into the TPC Report IE in the spectrum
289 + * management TPC Report action frame, and in the Radio Measurement Link
290 + * Measurement Report action frame.
291 + * @NL80211_FEATURE_ACKTO_ESTIMATION: This driver supports dynamic ACK timeout
292 + * estimation (dynack). %NL80211_ATTR_WIPHY_DYN_ACK flag attribute is used
293 + * to enable dynack.
294 + * @NL80211_FEATURE_STATIC_SMPS: Device supports static spatial
295 + * multiplexing powersave, ie. can turn off all but one chain
296 + * even on HT connections that should be using more chains.
297 + * @NL80211_FEATURE_DYNAMIC_SMPS: Device supports dynamic spatial
298 + * multiplexing powersave, ie. can turn off all but one chain
299 + * and then wake the rest up as required after, for example,
300 + * rts/cts handshake.
301 */
302 enum nl80211_feature_flags {
303 NL80211_FEATURE_SK_TX_STATUS = 1 << 0,
304 @@ -3913,6 +4067,14 @@ enum nl80211_feature_flags {
305 NL80211_FEATURE_FULL_AP_CLIENT_STATE = 1 << 15,
306 NL80211_FEATURE_USERSPACE_MPM = 1 << 16,
307 NL80211_FEATURE_ACTIVE_MONITOR = 1 << 17,
308 + NL80211_FEATURE_AP_MODE_CHAN_WIDTH_CHANGE = 1 << 18,
309 + NL80211_FEATURE_DS_PARAM_SET_IE_IN_PROBES = 1 << 19,
310 + NL80211_FEATURE_WFA_TPC_IE_IN_PROBES = 1 << 20,
311 + NL80211_FEATURE_QUIET = 1 << 21,
312 + NL80211_FEATURE_TX_POWER_INSERTION = 1 << 22,
313 + NL80211_FEATURE_ACKTO_ESTIMATION = 1 << 23,
314 + NL80211_FEATURE_STATIC_SMPS = 1 << 24,
315 + NL80211_FEATURE_DYNAMIC_SMPS = 1 << 25,
316 };
317
318 /**
319 @@ -3987,6 +4149,25 @@ enum nl80211_acl_policy {
320 };
321
322 /**
323 + * enum nl80211_smps_mode - SMPS mode
324 + *
325 + * Requested SMPS mode (for AP mode)
326 + *
327 + * @NL80211_SMPS_OFF: SMPS off (use all antennas).
328 + * @NL80211_SMPS_STATIC: static SMPS (use a single antenna)
329 + * @NL80211_SMPS_DYNAMIC: dynamic smps (start with a single antenna and
330 + * turn on other antennas after CTS/RTS).
331 + */
332 +enum nl80211_smps_mode {
333 + NL80211_SMPS_OFF,
334 + NL80211_SMPS_STATIC,
335 + NL80211_SMPS_DYNAMIC,
336 +
337 + __NL80211_SMPS_AFTER_LAST,
338 + NL80211_SMPS_MAX = __NL80211_SMPS_AFTER_LAST - 1
339 +};
340 +
341 +/**
342 * enum nl80211_radar_event - type of radar event for DFS operation
343 *
344 * Type of event to be used with NL80211_ATTR_RADAR_EVENT to inform userspace