]>
Commit | Line | Data |
---|---|---|
cb7b04c8 JM |
1 | /* |
2 | * IEEE 802.11 Common routines | |
ba091c06 | 3 | * Copyright (c) 2002-2009, Jouni Malinen <j@w1.fi> |
cb7b04c8 | 4 | * |
0f3d578e JM |
5 | * This software may be distributed under the terms of the BSD license. |
6 | * See README for more details. | |
cb7b04c8 JM |
7 | */ |
8 | ||
9 | #ifndef IEEE802_11_COMMON_H | |
10 | #define IEEE802_11_COMMON_H | |
11 | ||
12 | /* Parsed Information Elements */ | |
13 | struct ieee802_11_elems { | |
ba091c06 JM |
14 | const u8 *ssid; |
15 | const u8 *supp_rates; | |
16 | const u8 *fh_params; | |
17 | const u8 *ds_params; | |
18 | const u8 *cf_params; | |
19 | const u8 *tim; | |
20 | const u8 *ibss_params; | |
21 | const u8 *challenge; | |
22 | const u8 *erp_info; | |
23 | const u8 *ext_supp_rates; | |
24 | const u8 *wpa_ie; | |
25 | const u8 *rsn_ie; | |
26 | const u8 *wmm; /* WMM Information or Parameter Element */ | |
27 | const u8 *wmm_tspec; | |
28 | const u8 *wps_ie; | |
29 | const u8 *power_cap; | |
30 | const u8 *supp_channels; | |
31 | const u8 *mdie; | |
32 | const u8 *ftie; | |
33 | const u8 *timeout_int; | |
34 | const u8 *ht_capabilities; | |
35 | const u8 *ht_operation; | |
36 | const u8 *vendor_ht_cap; | |
91a94645 | 37 | const u8 *p2p; |
b39f5834 | 38 | const u8 *link_id; |
538958ae | 39 | const u8 *interworking; |
ba091c06 | 40 | |
cb7b04c8 | 41 | u8 ssid_len; |
cb7b04c8 | 42 | u8 supp_rates_len; |
cb7b04c8 | 43 | u8 fh_params_len; |
cb7b04c8 | 44 | u8 ds_params_len; |
cb7b04c8 | 45 | u8 cf_params_len; |
cb7b04c8 | 46 | u8 tim_len; |
cb7b04c8 | 47 | u8 ibss_params_len; |
cb7b04c8 | 48 | u8 challenge_len; |
cb7b04c8 | 49 | u8 erp_info_len; |
cb7b04c8 | 50 | u8 ext_supp_rates_len; |
cb7b04c8 | 51 | u8 wpa_ie_len; |
cb7b04c8 | 52 | u8 rsn_ie_len; |
3ae0800c | 53 | u8 wmm_len; /* 7 = WMM Information; 24 = WMM Parameter */ |
3ae0800c | 54 | u8 wmm_tspec_len; |
ad08c363 | 55 | u8 wps_ie_len; |
cb7b04c8 | 56 | u8 power_cap_len; |
cb7b04c8 | 57 | u8 supp_channels_len; |
cb7b04c8 | 58 | u8 mdie_len; |
cb7b04c8 | 59 | u8 ftie_len; |
adddffd1 | 60 | u8 timeout_int_len; |
cb7b04c8 | 61 | u8 ht_capabilities_len; |
cb7b04c8 | 62 | u8 ht_operation_len; |
15828ba8 | 63 | u8 vendor_ht_cap_len; |
91a94645 | 64 | u8 p2p_len; |
538958ae | 65 | u8 interworking_len; |
cb7b04c8 JM |
66 | }; |
67 | ||
68 | typedef enum { ParseOK = 0, ParseUnknown = 1, ParseFailed = -1 } ParseRes; | |
69 | ||
ba091c06 | 70 | ParseRes ieee802_11_parse_elems(const u8 *start, size_t len, |
cb7b04c8 JM |
71 | struct ieee802_11_elems *elems, |
72 | int show_errors); | |
babfbf15 | 73 | int ieee802_11_ie_count(const u8 *ies, size_t ies_len); |
abad3ccb JM |
74 | struct wpabuf * ieee802_11_vendor_ie_concat(const u8 *ies, size_t ies_len, |
75 | u32 oui_type); | |
9236ba4c JB |
76 | struct ieee80211_hdr; |
77 | const u8 * get_hdr_bssid(const struct ieee80211_hdr *hdr, size_t len); | |
cb7b04c8 JM |
78 | |
79 | #endif /* IEEE802_11_COMMON_H */ |