aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/ieee80211_i.h
diff options
context:
space:
mode:
authorJouni Malinen <jouni.malinen@atheros.com>2008-08-15 15:21:27 -0400
committerJohn W. Linville <linville@tuxdriver.com>2008-08-29 16:24:05 -0400
commit43ac2ca3840f64f699a239535c590fa7ebaaac27 (patch)
tree4d60ba05ba1ba39635533f1dbf1a1babd75f52b5 /net/mac80211/ieee80211_i.h
parent19b73c7f68fb2eeb180eafa70f9859409ec9aa08 (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.h18
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 */
775struct ieee802_11_elems { 770struct 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;