diff options
author | Dan Williams <dcbw@redhat.com> | 2007-05-25 17:09:41 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2007-06-11 14:28:42 -0400 |
commit | e76850d620a0a26fa807b4fa189c64a94789461e (patch) | |
tree | ca251090429ebfb75da58af966254d547ba703f6 /drivers/net/wireless/libertas/dev.h | |
parent | ef9a264b7a288a07c43ddb244c4f9ab0e8df90e4 (diff) |
[PATCH] libertas: make association paths consistent
The BSS to associate with (in either Infrastructure or IBSS join
operations) is now stored in _one_ place in the association request (the
bss member), not two places as before (pattemptedbss and
curbssparams->bssdescriptor).
Association requests are passed to the necessary association functions
to (a) give them access to the bss member and (b) ensure that
association/join/start setup uses settings from the request, not the
current adapter settings (which may not be valid for the requested
settings).
Because the 'bss' member of the association request is used now, the
command return functions from associate and adhoc join/start need access
to the in-progress association request to update curbssparams when
everything is done. The association worker moves the request from
pending to in-progress for the duration of the association attempt.
Signed-off-by: Dan Williams <dcbw@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/libertas/dev.h')
-rw-r--r-- | drivers/net/wireless/libertas/dev.h | 27 |
1 files changed, 15 insertions, 12 deletions
diff --git a/drivers/net/wireless/libertas/dev.h b/drivers/net/wireless/libertas/dev.h index 4ca60d9323b4..797a1249bcaf 100644 --- a/drivers/net/wireless/libertas/dev.h +++ b/drivers/net/wireless/libertas/dev.h | |||
@@ -63,7 +63,6 @@ struct wlan_802_11_security { | |||
63 | 63 | ||
64 | /** Current Basic Service Set State Structure */ | 64 | /** Current Basic Service Set State Structure */ |
65 | struct current_bss_params { | 65 | struct current_bss_params { |
66 | struct bss_descriptor bssdescriptor; | ||
67 | /** bssid */ | 66 | /** bssid */ |
68 | u8 bssid[ETH_ALEN]; | 67 | u8 bssid[ETH_ALEN]; |
69 | /** ssid */ | 68 | /** ssid */ |
@@ -168,18 +167,20 @@ struct _wlan_private { | |||
168 | struct assoc_request { | 167 | struct assoc_request { |
169 | #define ASSOC_FLAG_SSID 1 | 168 | #define ASSOC_FLAG_SSID 1 |
170 | #define ASSOC_FLAG_CHANNEL 2 | 169 | #define ASSOC_FLAG_CHANNEL 2 |
171 | #define ASSOC_FLAG_MODE 3 | 170 | #define ASSOC_FLAG_BAND 3 |
172 | #define ASSOC_FLAG_BSSID 4 | 171 | #define ASSOC_FLAG_MODE 4 |
173 | #define ASSOC_FLAG_WEP_KEYS 5 | 172 | #define ASSOC_FLAG_BSSID 5 |
174 | #define ASSOC_FLAG_WEP_TX_KEYIDX 6 | 173 | #define ASSOC_FLAG_WEP_KEYS 6 |
175 | #define ASSOC_FLAG_WPA_MCAST_KEY 7 | 174 | #define ASSOC_FLAG_WEP_TX_KEYIDX 7 |
176 | #define ASSOC_FLAG_WPA_UCAST_KEY 8 | 175 | #define ASSOC_FLAG_WPA_MCAST_KEY 8 |
177 | #define ASSOC_FLAG_SECINFO 9 | 176 | #define ASSOC_FLAG_WPA_UCAST_KEY 9 |
178 | #define ASSOC_FLAG_WPA_IE 10 | 177 | #define ASSOC_FLAG_SECINFO 10 |
178 | #define ASSOC_FLAG_WPA_IE 11 | ||
179 | unsigned long flags; | 179 | unsigned long flags; |
180 | 180 | ||
181 | struct WLAN_802_11_SSID ssid; | 181 | struct WLAN_802_11_SSID ssid; |
182 | u8 channel; | 182 | u8 channel; |
183 | u8 band; | ||
183 | u8 mode; | 184 | u8 mode; |
184 | u8 bssid[ETH_ALEN]; | 185 | u8 bssid[ETH_ALEN]; |
185 | 186 | ||
@@ -196,6 +197,9 @@ struct assoc_request { | |||
196 | /** WPA Information Elements*/ | 197 | /** WPA Information Elements*/ |
197 | u8 wpa_ie[MAX_WPA_IE_LEN]; | 198 | u8 wpa_ie[MAX_WPA_IE_LEN]; |
198 | u8 wpa_ie_len; | 199 | u8 wpa_ie_len; |
200 | |||
201 | /* BSS to associate with for infrastructure of Ad-Hoc join */ | ||
202 | struct bss_descriptor bss; | ||
199 | }; | 203 | }; |
200 | 204 | ||
201 | /** Wlan adapter data structure*/ | 205 | /** Wlan adapter data structure*/ |
@@ -252,8 +256,6 @@ struct _wlan_adapter { | |||
252 | /* IW_MODE_* */ | 256 | /* IW_MODE_* */ |
253 | u8 mode; | 257 | u8 mode; |
254 | 258 | ||
255 | struct bss_descriptor *pattemptedbssdesc; | ||
256 | |||
257 | struct WLAN_802_11_SSID previousssid; | 259 | struct WLAN_802_11_SSID previousssid; |
258 | u8 previousbssid[ETH_ALEN]; | 260 | u8 previousbssid[ETH_ALEN]; |
259 | 261 | ||
@@ -322,7 +324,8 @@ struct _wlan_adapter { | |||
322 | u16 locallisteninterval; | 324 | u16 locallisteninterval; |
323 | u16 nullpktinterval; | 325 | u16 nullpktinterval; |
324 | 326 | ||
325 | struct assoc_request * assoc_req; | 327 | struct assoc_request * pending_assoc_req; |
328 | struct assoc_request * in_progress_assoc_req; | ||
326 | 329 | ||
327 | /** Encryption parameter */ | 330 | /** Encryption parameter */ |
328 | struct wlan_802_11_security secinfo; | 331 | struct wlan_802_11_security secinfo; |