diff options
author | Jouni Malinen <jouni.malinen@atheros.com> | 2008-08-15 15:21:27 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2008-08-29 16:24:05 -0400 |
commit | 43ac2ca3840f64f699a239535c590fa7ebaaac27 (patch) | |
tree | 4d60ba05ba1ba39635533f1dbf1a1babd75f52b5 /net/mac80211/ieee80211_i.h | |
parent | 19b73c7f68fb2eeb180eafa70f9859409ec9aa08 (diff) |
mac80211: Handle scan result IEs in one block
Clean up and extend scan result processing by storing all the IEs from
Beacon/Probe Response frames in a single block instead of allocating
memory for each specific IE separately. This removes lot of unnecessary
code and automatically supports reporting of new IEs (e.g., IEEE
802.11r) into user space without need to manually extend mac80211
scanning code whenever a new protocol adds IE(s).
Signed-off-by: Jouni Malinen <jouni.malinen@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211/ieee80211_i.h')
-rw-r--r-- | net/mac80211/ieee80211_i.h | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h index 8361054fb7cf..2bb546744b94 100644 --- a/net/mac80211/ieee80211_i.h +++ b/net/mac80211/ieee80211_i.h | |||
@@ -79,16 +79,11 @@ struct ieee80211_sta_bss { | |||
79 | enum ieee80211_band band; | 79 | enum ieee80211_band band; |
80 | int freq; | 80 | int freq; |
81 | int signal, noise, qual; | 81 | int signal, noise, qual; |
82 | u8 *wpa_ie; | 82 | u8 *ies; /* all information elements from the last Beacon or Probe |
83 | size_t wpa_ie_len; | 83 | * Response frames; note Beacon frame is not allowed to |
84 | u8 *rsn_ie; | 84 | * override values from Probe Response */ |
85 | size_t rsn_ie_len; | 85 | size_t ies_len; |
86 | u8 *wmm_ie; | 86 | bool wmm_used; |
87 | size_t wmm_ie_len; | ||
88 | u8 *ht_ie; | ||
89 | size_t ht_ie_len; | ||
90 | u8 *ht_add_ie; | ||
91 | size_t ht_add_ie_len; | ||
92 | #ifdef CONFIG_MAC80211_MESH | 87 | #ifdef CONFIG_MAC80211_MESH |
93 | u8 *mesh_id; | 88 | u8 *mesh_id; |
94 | size_t mesh_id_len; | 89 | size_t mesh_id_len; |
@@ -773,6 +768,9 @@ struct ieee80211_ra_tid { | |||
773 | 768 | ||
774 | /* Parsed Information Elements */ | 769 | /* Parsed Information Elements */ |
775 | struct ieee802_11_elems { | 770 | struct ieee802_11_elems { |
771 | u8 *ie_start; | ||
772 | size_t total_len; | ||
773 | |||
776 | /* pointers to IEs */ | 774 | /* pointers to IEs */ |
777 | u8 *ssid; | 775 | u8 *ssid; |
778 | u8 *supp_rates; | 776 | u8 *supp_rates; |