diff options
author | Felix Fietkau <nbd@openwrt.org> | 2010-12-02 15:01:08 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2010-12-06 15:58:44 -0500 |
commit | 04ac3c0ee2c773c321ec472d892635a20556f34d (patch) | |
tree | e9a3bf81d8feec787fa5b4c5c156652de5313c83 /net/mac80211/ieee80211_i.h | |
parent | 75706d0e9d19601534446982b70102bb9327169b (diff) |
mac80211: speed up AP probing using nullfunc frames
If the nullfunc frame used to probe the AP was not acked, there is no point
in waiting for the probe timeout, so advance to the next try (or disconnect)
immediately.
If we do reach the probe timeout without having received a tx status, the
connection is probably really bad and worth disconnecting.
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
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 | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h index 66b0b52b828d..e7c880725639 100644 --- a/net/mac80211/ieee80211_i.h +++ b/net/mac80211/ieee80211_i.h | |||
@@ -357,6 +357,7 @@ struct ieee80211_if_managed { | |||
357 | unsigned long beacon_timeout; | 357 | unsigned long beacon_timeout; |
358 | unsigned long probe_timeout; | 358 | unsigned long probe_timeout; |
359 | int probe_send_count; | 359 | int probe_send_count; |
360 | bool nullfunc_failed; | ||
360 | 361 | ||
361 | struct mutex mtx; | 362 | struct mutex mtx; |
362 | struct cfg80211_bss *associated; | 363 | struct cfg80211_bss *associated; |
@@ -1271,7 +1272,7 @@ void ieee80211_send_nullfunc(struct ieee80211_local *local, | |||
1271 | void ieee80211_sta_rx_notify(struct ieee80211_sub_if_data *sdata, | 1272 | void ieee80211_sta_rx_notify(struct ieee80211_sub_if_data *sdata, |
1272 | struct ieee80211_hdr *hdr); | 1273 | struct ieee80211_hdr *hdr); |
1273 | void ieee80211_sta_tx_notify(struct ieee80211_sub_if_data *sdata, | 1274 | void ieee80211_sta_tx_notify(struct ieee80211_sub_if_data *sdata, |
1274 | struct ieee80211_hdr *hdr); | 1275 | struct ieee80211_hdr *hdr, bool ack); |
1275 | void ieee80211_beacon_connection_loss_work(struct work_struct *work); | 1276 | void ieee80211_beacon_connection_loss_work(struct work_struct *work); |
1276 | 1277 | ||
1277 | void ieee80211_wake_queues_by_reason(struct ieee80211_hw *hw, | 1278 | void ieee80211_wake_queues_by_reason(struct ieee80211_hw *hw, |