| @@ -1,14 +1,14 @@ | | | @@ -1,14 +1,14 @@ |
1 | /* $NetBSD: ieee80211.h,v 1.20 2008/11/06 03:28:59 dyoung Exp $ */ | | 1 | /* $NetBSD: ieee80211.h,v 1.21 2010/11/03 20:05:21 christos Exp $ */ |
2 | /*- | | 2 | /*- |
3 | * Copyright (c) 2001 Atsushi Onoe | | 3 | * Copyright (c) 2001 Atsushi Onoe |
4 | * Copyright (c) 2002-2005 Sam Leffler, Errno Consulting | | 4 | * Copyright (c) 2002-2005 Sam Leffler, Errno Consulting |
5 | * All rights reserved. | | 5 | * All rights reserved. |
6 | * | | 6 | * |
7 | * Redistribution and use in source and binary forms, with or without | | 7 | * Redistribution and use in source and binary forms, with or without |
8 | * modification, are permitted provided that the following conditions | | 8 | * modification, are permitted provided that the following conditions |
9 | * are met: | | 9 | * are met: |
10 | * 1. Redistributions of source code must retain the above copyright | | 10 | * 1. Redistributions of source code must retain the above copyright |
11 | * notice, this list of conditions and the following disclaimer. | | 11 | * notice, this list of conditions and the following disclaimer. |
12 | * 2. Redistributions in binary form must reproduce the above copyright | | 12 | * 2. Redistributions in binary form must reproduce the above copyright |
13 | * notice, this list of conditions and the following disclaimer in the | | 13 | * notice, this list of conditions and the following disclaimer in the |
14 | * documentation and/or other materials provided with the distribution. | | 14 | * documentation and/or other materials provided with the distribution. |
| @@ -149,27 +149,28 @@ struct ieee80211_qosframe_addr4 { | | | @@ -149,27 +149,28 @@ struct ieee80211_qosframe_addr4 { |
149 | #define IEEE80211_FC0_SUBTYPE_QOS 0x80 | | 149 | #define IEEE80211_FC0_SUBTYPE_QOS 0x80 |
150 | #define IEEE80211_FC0_SUBTYPE_QOS_NULL 0xc0 | | 150 | #define IEEE80211_FC0_SUBTYPE_QOS_NULL 0xc0 |
151 | | | 151 | |
152 | #define IEEE80211_FC1_DIR_MASK 0x03 | | 152 | #define IEEE80211_FC1_DIR_MASK 0x03 |
153 | #define IEEE80211_FC1_DIR_NODS 0x00 /* STA->STA */ | | 153 | #define IEEE80211_FC1_DIR_NODS 0x00 /* STA->STA */ |
154 | #define IEEE80211_FC1_DIR_TODS 0x01 /* STA->AP */ | | 154 | #define IEEE80211_FC1_DIR_TODS 0x01 /* STA->AP */ |
155 | #define IEEE80211_FC1_DIR_FROMDS 0x02 /* AP ->STA */ | | 155 | #define IEEE80211_FC1_DIR_FROMDS 0x02 /* AP ->STA */ |
156 | #define IEEE80211_FC1_DIR_DSTODS 0x03 /* AP ->AP */ | | 156 | #define IEEE80211_FC1_DIR_DSTODS 0x03 /* AP ->AP */ |
157 | | | 157 | |
158 | #define IEEE80211_FC1_MORE_FRAG 0x04 | | 158 | #define IEEE80211_FC1_MORE_FRAG 0x04 |
159 | #define IEEE80211_FC1_RETRY 0x08 | | 159 | #define IEEE80211_FC1_RETRY 0x08 |
160 | #define IEEE80211_FC1_PWR_MGT 0x10 | | 160 | #define IEEE80211_FC1_PWR_MGT 0x10 |
161 | #define IEEE80211_FC1_MORE_DATA 0x20 | | 161 | #define IEEE80211_FC1_MORE_DATA 0x20 |
162 | #define IEEE80211_FC1_WEP 0x40 | | 162 | #define IEEE80211_FC1_PROTECTED 0x40 |
| | | 163 | #define IEEE80211_FC1_WEP 0x40 /* pre-RSNA compat */ |
163 | #define IEEE80211_FC1_ORDER 0x80 | | 164 | #define IEEE80211_FC1_ORDER 0x80 |
164 | | | 165 | |
165 | #define IEEE80211_SEQ_FRAG_MASK 0x000f | | 166 | #define IEEE80211_SEQ_FRAG_MASK 0x000f |
166 | #define IEEE80211_SEQ_FRAG_SHIFT 0 | | 167 | #define IEEE80211_SEQ_FRAG_SHIFT 0 |
167 | #define IEEE80211_SEQ_SEQ_MASK 0xfff0 | | 168 | #define IEEE80211_SEQ_SEQ_MASK 0xfff0 |
168 | #define IEEE80211_SEQ_SEQ_SHIFT 4 | | 169 | #define IEEE80211_SEQ_SEQ_SHIFT 4 |
169 | | | 170 | |
170 | #define IEEE80211_NWID_LEN 32 | | 171 | #define IEEE80211_NWID_LEN 32 |
171 | | | 172 | |
172 | #define IEEE80211_QOS_TXOP 0x00ff | | 173 | #define IEEE80211_QOS_TXOP 0x00ff |
173 | /* bit 8 is reserved */ | | 174 | /* bit 8 is reserved */ |
174 | #define IEEE80211_QOS_ACKPOLICY 0x60 | | 175 | #define IEEE80211_QOS_ACKPOLICY 0x60 |
175 | #define IEEE80211_QOS_ACKPOLICY_S 5 | | 176 | #define IEEE80211_QOS_ACKPOLICY_S 5 |
| @@ -392,43 +393,47 @@ struct ieee80211_ie_wpa { | | | @@ -392,43 +393,47 @@ struct ieee80211_ie_wpa { |
392 | /* | | 393 | /* |
393 | * Management information element payloads. | | 394 | * Management information element payloads. |
394 | */ | | 395 | */ |
395 | | | 396 | |
396 | enum { | | 397 | enum { |
397 | IEEE80211_ELEMID_SSID = 0, | | 398 | IEEE80211_ELEMID_SSID = 0, |
398 | IEEE80211_ELEMID_RATES = 1, | | 399 | IEEE80211_ELEMID_RATES = 1, |
399 | IEEE80211_ELEMID_FHPARMS = 2, | | 400 | IEEE80211_ELEMID_FHPARMS = 2, |
400 | IEEE80211_ELEMID_DSPARMS = 3, | | 401 | IEEE80211_ELEMID_DSPARMS = 3, |
401 | IEEE80211_ELEMID_CFPARMS = 4, | | 402 | IEEE80211_ELEMID_CFPARMS = 4, |
402 | IEEE80211_ELEMID_TIM = 5, | | 403 | IEEE80211_ELEMID_TIM = 5, |
403 | IEEE80211_ELEMID_IBSSPARMS = 6, | | 404 | IEEE80211_ELEMID_IBSSPARMS = 6, |
404 | IEEE80211_ELEMID_COUNTRY = 7, | | 405 | IEEE80211_ELEMID_COUNTRY = 7, |
| | | 406 | IEEE80211_ELEMID_EDCAPARMS = 12, |
405 | IEEE80211_ELEMID_CHALLENGE = 16, | | 407 | IEEE80211_ELEMID_CHALLENGE = 16, |
406 | /* 17-31 reserved for challenge text extension */ | | 408 | /* 17-31 reserved for challenge text extension */ |
407 | IEEE80211_ELEMID_PWRCNSTR = 32, | | 409 | IEEE80211_ELEMID_PWRCNSTR = 32, |
408 | IEEE80211_ELEMID_PWRCAP = 33, | | 410 | IEEE80211_ELEMID_PWRCAP = 33, |
409 | IEEE80211_ELEMID_TPCREQ = 34, | | 411 | IEEE80211_ELEMID_TPCREQ = 34, |
410 | IEEE80211_ELEMID_TPCREP = 35, | | 412 | IEEE80211_ELEMID_TPCREP = 35, |
411 | IEEE80211_ELEMID_SUPPCHAN = 36, | | 413 | IEEE80211_ELEMID_SUPPCHAN = 36, |
412 | IEEE80211_ELEMID_CHANSWITCHANN = 37, | | 414 | IEEE80211_ELEMID_CHANSWITCHANN = 37, |
413 | IEEE80211_ELEMID_MEASREQ = 38, | | 415 | IEEE80211_ELEMID_MEASREQ = 38, |
414 | IEEE80211_ELEMID_MEASREP = 39, | | 416 | IEEE80211_ELEMID_MEASREP = 39, |
415 | IEEE80211_ELEMID_QUIET = 40, | | 417 | IEEE80211_ELEMID_QUIET = 40, |
416 | IEEE80211_ELEMID_IBSSDFS = 41, | | 418 | IEEE80211_ELEMID_IBSSDFS = 41, |
417 | IEEE80211_ELEMID_ERP = 42, | | 419 | IEEE80211_ELEMID_ERP = 42, |
418 | IEEE80211_ELEMID_HTCAP = 45, | | 420 | IEEE80211_ELEMID_HTCAP = 45, /* 11n */ |
| | | 421 | IEEE80211_ELEMID_QOS_CAP = 46, |
419 | IEEE80211_ELEMID_RSN = 48, | | 422 | IEEE80211_ELEMID_RSN = 48, |
420 | IEEE80211_ELEMID_XRATES = 50, | | 423 | IEEE80211_ELEMID_XRATES = 50, |
421 | IEEE80211_ELEMID_HTINFO = 61, | | 424 | IEEE80211_ELEMID_TIE = 56, /* 11r */ |
| | | 425 | IEEE80211_ELEMID_HTINFO = 61, /* 11n */ |
| | | 426 | IEEE80211_ELEMID_MMIE = 76, /* 11w */ |
422 | IEEE80211_ELEMID_TPC = 150, | | 427 | IEEE80211_ELEMID_TPC = 150, |
423 | IEEE80211_ELEMID_CCKM = 156, | | 428 | IEEE80211_ELEMID_CCKM = 156, |
424 | IEEE80211_ELEMID_VENDOR = 221 /* vendor private */ | | 429 | IEEE80211_ELEMID_VENDOR = 221 /* vendor private */ |
425 | }; | | 430 | }; |
426 | | | 431 | |
427 | struct ieee80211_tim_ie { | | 432 | struct ieee80211_tim_ie { |
428 | u_int8_t tim_ie; /* IEEE80211_ELEMID_TIM */ | | 433 | u_int8_t tim_ie; /* IEEE80211_ELEMID_TIM */ |
429 | u_int8_t tim_len; | | 434 | u_int8_t tim_len; |
430 | u_int8_t tim_count; /* DTIM count */ | | 435 | u_int8_t tim_count; /* DTIM count */ |
431 | u_int8_t tim_period; /* DTIM period */ | | 436 | u_int8_t tim_period; /* DTIM period */ |
432 | u_int8_t tim_bitctl; /* bitmap control */ | | 437 | u_int8_t tim_bitctl; /* bitmap control */ |
433 | u_int8_t tim_bitmap[1]; /* variable-length bitmap */ | | 438 | u_int8_t tim_bitmap[1]; /* variable-length bitmap */ |
434 | } __packed; | | 439 | } __packed; |