diff options
author | Dan Williams <dcbw@redhat.com> | 2007-05-25 16:25:21 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2007-06-11 14:28:41 -0400 |
commit | eb8f7330e7edf655176c51a62cd2e34de91a1eba (patch) | |
tree | 383f19fd3741a2f240c976ee7dc89368581ac1f0 /drivers/net/wireless/libertas/scan.h | |
parent | fcdb53dbc743f288bf72e485fefb3a967b733686 (diff) |
[PATCH] libertas: fix 'keep previous scan' behavior
Do not clear the scan list except under specific conditions, such as
when (a) user-requested, or (b) joining/starting an adhoc network.
Furthermore, only clear entries which match the SSID or BSSID of the
request, not the whole scan list.
Signed-off-by: Dan Williams <dcbw@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/libertas/scan.h')
-rw-r--r-- | drivers/net/wireless/libertas/scan.h | 38 |
1 files changed, 18 insertions, 20 deletions
diff --git a/drivers/net/wireless/libertas/scan.h b/drivers/net/wireless/libertas/scan.h index 74270785063b..4ad130ff6e7e 100644 --- a/drivers/net/wireless/libertas/scan.h +++ b/drivers/net/wireless/libertas/scan.h | |||
@@ -51,7 +51,7 @@ struct wlan_scan_cmd_config { | |||
51 | /** | 51 | /** |
52 | * @brief Specific BSSID used to filter scan results in the firmware | 52 | * @brief Specific BSSID used to filter scan results in the firmware |
53 | */ | 53 | */ |
54 | u8 specificBSSID[ETH_ALEN]; | 54 | u8 bssid[ETH_ALEN]; |
55 | 55 | ||
56 | /** | 56 | /** |
57 | * @brief length of TLVs sent in command starting at tlvBuffer | 57 | * @brief length of TLVs sent in command starting at tlvBuffer |
@@ -91,15 +91,6 @@ struct wlan_ioctl_user_scan_chan { | |||
91 | * @sa libertas_set_user_scan_ioctl | 91 | * @sa libertas_set_user_scan_ioctl |
92 | */ | 92 | */ |
93 | struct wlan_ioctl_user_scan_cfg { | 93 | struct wlan_ioctl_user_scan_cfg { |
94 | |||
95 | /** | ||
96 | * @brief Flag set to keep the previous scan table intact | ||
97 | * | ||
98 | * If set, the scan results will accumulate, replacing any previous | ||
99 | * matched entries for a BSS with the new scan data | ||
100 | */ | ||
101 | u8 keeppreviousscan; //!< Do not erase the existing scan results | ||
102 | |||
103 | /** | 94 | /** |
104 | * @brief BSS type to be sent in the firmware command | 95 | * @brief BSS type to be sent in the firmware command |
105 | * | 96 | * |
@@ -117,15 +108,22 @@ struct wlan_ioctl_user_scan_cfg { | |||
117 | */ | 108 | */ |
118 | u8 numprobes; | 109 | u8 numprobes; |
119 | 110 | ||
120 | /** | 111 | /** |
121 | * @brief BSSID filter sent in the firmware command to limit the results | 112 | * @brief BSSID filter sent in the firmware command to limit the results |
122 | */ | 113 | */ |
123 | u8 specificBSSID[ETH_ALEN]; | 114 | u8 bssid[ETH_ALEN]; |
124 | 115 | ||
125 | /** | 116 | /* Clear existing scan results matching this BSSID */ |
126 | * @brief SSID filter sent in the firmware command to limit the results | 117 | u8 clear_bssid; |
127 | */ | 118 | |
128 | char specificSSID[IW_ESSID_MAX_SIZE + 1]; | 119 | /** |
120 | * @brief SSID filter sent in the firmware command to limit the results | ||
121 | */ | ||
122 | char ssid[IW_ESSID_MAX_SIZE]; | ||
123 | u8 ssid_len; | ||
124 | |||
125 | /* Clear existing scan results matching this SSID */ | ||
126 | u8 clear_ssid; | ||
129 | 127 | ||
130 | /** | 128 | /** |
131 | * @brief Variable number (fixed maximum) of channels to scan up | 129 | * @brief Variable number (fixed maximum) of channels to scan up |
@@ -194,9 +192,9 @@ int libertas_find_best_network_SSID(wlan_private * priv, | |||
194 | 192 | ||
195 | extern int libertas_send_specific_SSID_scan(wlan_private * priv, | 193 | extern int libertas_send_specific_SSID_scan(wlan_private * priv, |
196 | struct WLAN_802_11_SSID *prequestedssid, | 194 | struct WLAN_802_11_SSID *prequestedssid, |
197 | u8 keeppreviousscan); | 195 | u8 clear_ssid); |
198 | extern int libertas_send_specific_BSSID_scan(wlan_private * priv, | 196 | extern int libertas_send_specific_BSSID_scan(wlan_private * priv, |
199 | u8 * bssid, u8 keeppreviousscan); | 197 | u8 * bssid, u8 clear_bssid); |
200 | 198 | ||
201 | extern int libertas_cmd_80211_scan(wlan_private * priv, | 199 | extern int libertas_cmd_80211_scan(wlan_private * priv, |
202 | struct cmd_ds_command *cmd, | 200 | struct cmd_ds_command *cmd, |