diff options
author | Felix Fietkau <nbd@openwrt.org> | 2010-11-23 03:10:31 +0100 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2010-11-24 16:19:35 -0500 |
commit | 4e5ff37692df35c8826f1291204841b174d3c3ce (patch) | |
tree | 2a4cd6250de19b1e7b895e94136c537c78bcd928 /net/mac80211/status.c | |
parent | dd5b4cc71cd09c33e1579cc6d5720656e94e52de (diff) | |
download | linux-3.10-4e5ff37692df35c8826f1291204841b174d3c3ce.tar.gz linux-3.10-4e5ff37692df35c8826f1291204841b174d3c3ce.tar.bz2 linux-3.10-4e5ff37692df35c8826f1291204841b174d3c3ce.zip |
mac80211: use nullfunc instead of probe request for connection monitoring
nullfunc frames are better for connection monitoring, because probe requests
are answered even if the AP has already dropped the connection, whereas
nullfunc frames from an unassociated station will trigger a disassoc/deauth
frame from the AP (WLAN_REASON_CLASS3_FRAME_FROM_NONASSOC_STA), which allows
the station to reconnect immediately instead of waiting until it attempts to
transmit the next unicast frame.
This only works on hardware with reliable tx ACK reporting, any other hardware
needs to fall back to the probe request method.
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211/status.c')
-rw-r--r-- | net/mac80211/status.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/net/mac80211/status.c b/net/mac80211/status.c index 3153c19893b..8695cd11dfd 100644 --- a/net/mac80211/status.c +++ b/net/mac80211/status.c @@ -155,6 +155,10 @@ static void ieee80211_frame_acked(struct sta_info *sta, struct sk_buff *skb) ieee80211_queue_work(&local->hw, &local->recalc_smps); } + + if ((sdata->vif.type == NL80211_IFTYPE_STATION) && + (local->hw.flags & IEEE80211_HW_REPORTS_TX_ACK_STATUS)) + ieee80211_sta_tx_notify(sdata, (void *) skb->data); } void ieee80211_tx_status(struct ieee80211_hw *hw, struct sk_buff *skb) |