diff options
-rw-r--r-- | include/linux/ieee80211.h | 134 |
1 files changed, 134 insertions, 0 deletions
diff --git a/include/linux/ieee80211.h b/include/linux/ieee80211.h index 214821af3d5b..3e641590d0c8 100644 --- a/include/linux/ieee80211.h +++ b/include/linux/ieee80211.h | |||
@@ -54,6 +54,8 @@ | |||
54 | #define IEEE80211_STYPE_ACTION 0x00D0 | 54 | #define IEEE80211_STYPE_ACTION 0x00D0 |
55 | 55 | ||
56 | /* control */ | 56 | /* control */ |
57 | #define IEEE80211_STYPE_BACK_REQ 0x0080 | ||
58 | #define IEEE80211_STYPE_BACK 0x0090 | ||
57 | #define IEEE80211_STYPE_PSPOLL 0x00A0 | 59 | #define IEEE80211_STYPE_PSPOLL 0x00A0 |
58 | #define IEEE80211_STYPE_RTS 0x00B0 | 60 | #define IEEE80211_STYPE_RTS 0x00B0 |
59 | #define IEEE80211_STYPE_CTS 0x00C0 | 61 | #define IEEE80211_STYPE_CTS 0x00C0 |
@@ -185,6 +187,25 @@ struct ieee80211_mgmt { | |||
185 | u8 new_chan; | 187 | u8 new_chan; |
186 | u8 switch_count; | 188 | u8 switch_count; |
187 | } __attribute__((packed)) chan_switch; | 189 | } __attribute__((packed)) chan_switch; |
190 | struct{ | ||
191 | u8 action_code; | ||
192 | u8 dialog_token; | ||
193 | __le16 capab; | ||
194 | __le16 timeout; | ||
195 | __le16 start_seq_num; | ||
196 | } __attribute__((packed)) addba_req; | ||
197 | struct{ | ||
198 | u8 action_code; | ||
199 | u8 dialog_token; | ||
200 | __le16 status; | ||
201 | __le16 capab; | ||
202 | __le16 timeout; | ||
203 | } __attribute__((packed)) addba_resp; | ||
204 | struct{ | ||
205 | u8 action_code; | ||
206 | __le16 params; | ||
207 | __le16 reason_code; | ||
208 | } __attribute__((packed)) delba; | ||
188 | } u; | 209 | } u; |
189 | } __attribute__ ((packed)) action; | 210 | } __attribute__ ((packed)) action; |
190 | } u; | 211 | } u; |
@@ -205,6 +226,66 @@ struct ieee80211_cts { | |||
205 | u8 ra[6]; | 226 | u8 ra[6]; |
206 | } __attribute__ ((packed)); | 227 | } __attribute__ ((packed)); |
207 | 228 | ||
229 | /** | ||
230 | * struct ieee80211_bar - HT Block Ack Request | ||
231 | * | ||
232 | * This structure refers to "HT BlockAckReq" as | ||
233 | * described in 802.11n draft section 7.2.1.7.1 | ||
234 | */ | ||
235 | struct ieee80211_bar { | ||
236 | __le16 frame_control; | ||
237 | __le16 duration; | ||
238 | __u8 ra[6]; | ||
239 | __u8 ta[6]; | ||
240 | __u16 control; | ||
241 | __u16 start_seq_num; | ||
242 | } __attribute__((packed)); | ||
243 | |||
244 | /** | ||
245 | * struct ieee80211_ht_cap - HT capabilities | ||
246 | * | ||
247 | * This structure refers to "HT capabilities element" as | ||
248 | * described in 802.11n draft section 7.3.2.52 | ||
249 | */ | ||
250 | struct ieee80211_ht_cap { | ||
251 | __le16 cap_info; | ||
252 | u8 ampdu_params_info; | ||
253 | u8 supp_mcs_set[16]; | ||
254 | __le16 extended_ht_cap_info; | ||
255 | __le32 tx_BF_cap_info; | ||
256 | u8 antenna_selection_info; | ||
257 | } __attribute__ ((packed)); | ||
258 | |||
259 | /** | ||
260 | * struct ieee80211_ht_cap - HT additional information | ||
261 | * | ||
262 | * This structure refers to "HT information element" as | ||
263 | * described in 802.11n draft section 7.3.2.53 | ||
264 | */ | ||
265 | struct ieee80211_ht_addt_info { | ||
266 | u8 control_chan; | ||
267 | u8 ht_param; | ||
268 | __le16 operation_mode; | ||
269 | __le16 stbc_param; | ||
270 | u8 basic_set[16]; | ||
271 | } __attribute__ ((packed)); | ||
272 | |||
273 | /* 802.11n HT capabilities masks */ | ||
274 | #define IEEE80211_HT_CAP_SUP_WIDTH 0x0002 | ||
275 | #define IEEE80211_HT_CAP_MIMO_PS 0x000C | ||
276 | #define IEEE80211_HT_CAP_GRN_FLD 0x0010 | ||
277 | #define IEEE80211_HT_CAP_SGI_20 0x0020 | ||
278 | #define IEEE80211_HT_CAP_SGI_40 0x0040 | ||
279 | #define IEEE80211_HT_CAP_DELAY_BA 0x0400 | ||
280 | #define IEEE80211_HT_CAP_MAX_AMSDU 0x0800 | ||
281 | #define IEEE80211_HT_CAP_AMPDU_FACTOR 0x03 | ||
282 | #define IEEE80211_HT_CAP_AMPDU_DENSITY 0x1C | ||
283 | /* 802.11n HT IE masks */ | ||
284 | #define IEEE80211_HT_IE_CHA_SEC_OFFSET 0x03 | ||
285 | #define IEEE80211_HT_IE_CHA_WIDTH 0x04 | ||
286 | #define IEEE80211_HT_IE_HT_PROTECTION 0x0003 | ||
287 | #define IEEE80211_HT_IE_NON_GF_STA_PRSNT 0x0004 | ||
288 | #define IEEE80211_HT_IE_NON_HT_STA_PRSNT 0x0010 | ||
208 | 289 | ||
209 | /* Authentication algorithms */ | 290 | /* Authentication algorithms */ |
210 | #define WLAN_AUTH_OPEN 0 | 291 | #define WLAN_AUTH_OPEN 0 |
@@ -271,6 +352,18 @@ enum ieee80211_statuscode { | |||
271 | WLAN_STATUS_UNSUPP_RSN_VERSION = 44, | 352 | WLAN_STATUS_UNSUPP_RSN_VERSION = 44, |
272 | WLAN_STATUS_INVALID_RSN_IE_CAP = 45, | 353 | WLAN_STATUS_INVALID_RSN_IE_CAP = 45, |
273 | WLAN_STATUS_CIPHER_SUITE_REJECTED = 46, | 354 | WLAN_STATUS_CIPHER_SUITE_REJECTED = 46, |
355 | /* 802.11e */ | ||
356 | WLAN_STATUS_UNSPECIFIED_QOS = 32, | ||
357 | WLAN_STATUS_ASSOC_DENIED_NOBANDWIDTH = 33, | ||
358 | WLAN_STATUS_ASSOC_DENIED_LOWACK = 34, | ||
359 | WLAN_STATUS_ASSOC_DENIED_UNSUPP_QOS = 35, | ||
360 | WLAN_STATUS_REQUEST_DECLINED = 37, | ||
361 | WLAN_STATUS_INVALID_QOS_PARAM = 38, | ||
362 | WLAN_STATUS_CHANGE_TSPEC = 39, | ||
363 | WLAN_STATUS_WAIT_TS_DELAY = 47, | ||
364 | WLAN_STATUS_NO_DIRECT_LINK = 48, | ||
365 | WLAN_STATUS_STA_NOT_PRESENT = 49, | ||
366 | WLAN_STATUS_STA_NOT_QSTA = 50, | ||
274 | }; | 367 | }; |
275 | 368 | ||
276 | 369 | ||
@@ -301,6 +394,16 @@ enum ieee80211_reasoncode { | |||
301 | WLAN_REASON_INVALID_RSN_IE_CAP = 22, | 394 | WLAN_REASON_INVALID_RSN_IE_CAP = 22, |
302 | WLAN_REASON_IEEE8021X_FAILED = 23, | 395 | WLAN_REASON_IEEE8021X_FAILED = 23, |
303 | WLAN_REASON_CIPHER_SUITE_REJECTED = 24, | 396 | WLAN_REASON_CIPHER_SUITE_REJECTED = 24, |
397 | /* 802.11e */ | ||
398 | WLAN_REASON_DISASSOC_UNSPECIFIED_QOS = 32, | ||
399 | WLAN_REASON_DISASSOC_QAP_NO_BANDWIDTH = 33, | ||
400 | WLAN_REASON_DISASSOC_LOW_ACK = 34, | ||
401 | WLAN_REASON_DISASSOC_QAP_EXCEED_TXOP = 35, | ||
402 | WLAN_REASON_QSTA_LEAVE_QBSS = 36, | ||
403 | WLAN_REASON_QSTA_NOT_USE = 37, | ||
404 | WLAN_REASON_QSTA_REQUIRE_SETUP = 38, | ||
405 | WLAN_REASON_QSTA_TIMEOUT = 39, | ||
406 | WLAN_REASON_QSTA_CIPHER_NOT_SUPP = 45, | ||
304 | }; | 407 | }; |
305 | 408 | ||
306 | 409 | ||
@@ -319,6 +422,15 @@ enum ieee80211_eid { | |||
319 | WLAN_EID_HP_PARAMS = 8, | 422 | WLAN_EID_HP_PARAMS = 8, |
320 | WLAN_EID_HP_TABLE = 9, | 423 | WLAN_EID_HP_TABLE = 9, |
321 | WLAN_EID_REQUEST = 10, | 424 | WLAN_EID_REQUEST = 10, |
425 | /* 802.11e */ | ||
426 | WLAN_EID_QBSS_LOAD = 11, | ||
427 | WLAN_EID_EDCA_PARAM_SET = 12, | ||
428 | WLAN_EID_TSPEC = 13, | ||
429 | WLAN_EID_TCLAS = 14, | ||
430 | WLAN_EID_SCHEDULE = 15, | ||
431 | WLAN_EID_TS_DELAY = 43, | ||
432 | WLAN_EID_TCLAS_PROCESSING = 44, | ||
433 | WLAN_EID_QOS_CAPA = 46, | ||
322 | /* 802.11h */ | 434 | /* 802.11h */ |
323 | WLAN_EID_PWR_CONSTRAINT = 32, | 435 | WLAN_EID_PWR_CONSTRAINT = 32, |
324 | WLAN_EID_PWR_CAPABILITY = 33, | 436 | WLAN_EID_PWR_CAPABILITY = 33, |
@@ -333,6 +445,9 @@ enum ieee80211_eid { | |||
333 | /* 802.11g */ | 445 | /* 802.11g */ |
334 | WLAN_EID_ERP_INFO = 42, | 446 | WLAN_EID_ERP_INFO = 42, |
335 | WLAN_EID_EXT_SUPP_RATES = 50, | 447 | WLAN_EID_EXT_SUPP_RATES = 50, |
448 | /* 802.11n */ | ||
449 | WLAN_EID_HT_CAPABILITY = 45, | ||
450 | WLAN_EID_HT_EXTRA_INFO = 61, | ||
336 | /* 802.11i */ | 451 | /* 802.11i */ |
337 | WLAN_EID_RSN = 48, | 452 | WLAN_EID_RSN = 48, |
338 | WLAN_EID_WPA = 221, | 453 | WLAN_EID_WPA = 221, |
@@ -341,6 +456,25 @@ enum ieee80211_eid { | |||
341 | WLAN_EID_QOS_PARAMETER = 222 | 456 | WLAN_EID_QOS_PARAMETER = 222 |
342 | }; | 457 | }; |
343 | 458 | ||
459 | /* Action category code */ | ||
460 | enum ieee80211_category { | ||
461 | WLAN_CATEGORY_SPECTRUM_MGMT = 0, | ||
462 | WLAN_CATEGORY_QOS = 1, | ||
463 | WLAN_CATEGORY_DLS = 2, | ||
464 | WLAN_CATEGORY_BACK = 3, | ||
465 | WLAN_CATEGORY_WMM = 17, | ||
466 | }; | ||
467 | |||
468 | /* BACK action code */ | ||
469 | enum ieee80211_back_actioncode { | ||
470 | WLAN_ACTION_ADDBA_REQ = 0, | ||
471 | WLAN_ACTION_ADDBA_RESP = 1, | ||
472 | WLAN_ACTION_DELBA = 2, | ||
473 | }; | ||
474 | |||
475 | /* A-MSDU 802.11n */ | ||
476 | #define IEEE80211_QOS_CONTROL_A_MSDU_PRESENT 0x0080 | ||
477 | |||
344 | /* cipher suite selectors */ | 478 | /* cipher suite selectors */ |
345 | #define WLAN_CIPHER_SUITE_USE_GROUP 0x000FAC00 | 479 | #define WLAN_CIPHER_SUITE_USE_GROUP 0x000FAC00 |
346 | #define WLAN_CIPHER_SUITE_WEP40 0x000FAC01 | 480 | #define WLAN_CIPHER_SUITE_WEP40 0x000FAC01 |