diff mbox

mac80211: send ibss probe responses with noack flag

Message ID 1390603709-8041-1-git-send-email-sw@simonwunderlich.de (mailing list archive)
State Not Applicable, archived
Headers show

Commit Message

Simon Wunderlich Jan. 24, 2014, 10:48 p.m. UTC
From: Simon Wunderlich <simon@open-mesh.com>

Responding to probe requests for scanning clients will often create
excessive rtries, as it happens quite often that the scanning client
already left the channel. Therefore do it like hostapd and send probe
responses for broadcast SSID only once by using the noack flag.

Signed-off-by: Simon Wunderlich <simon@open-mesh.com>
---
 net/mac80211/ibss.c |    5 +++++
 1 file changed, 5 insertions(+)

Comments

Johannes Berg Jan. 29, 2014, 12:45 p.m. UTC | #1
On Fri, 2014-01-24 at 23:48 +0100, Simon Wunderlich wrote:
> From: Simon Wunderlich <simon@open-mesh.com>
> 
> Responding to probe requests for scanning clients will often create
> excessive rtries, as it happens quite often that the scanning client
> already left the channel. Therefore do it like hostapd and send probe
> responses for broadcast SSID only once by using the noack flag.

Applied. Should have said "wildcard" though, technically :)

johannes

--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/net/mac80211/ibss.c b/net/mac80211/ibss.c
index ed7eec3..e22eb95 100644
--- a/net/mac80211/ibss.c
+++ b/net/mac80211/ibss.c
@@ -1465,6 +1465,11 @@  static void ieee80211_rx_mgmt_probe_req(struct ieee80211_sub_if_data *sdata,
 	memcpy(((struct ieee80211_mgmt *) skb->data)->da, mgmt->sa, ETH_ALEN);
 	ibss_dbg(sdata, "Sending ProbeResp to %pM\n", mgmt->sa);
 	IEEE80211_SKB_CB(skb)->flags |= IEEE80211_TX_INTFL_DONT_ENCRYPT;
+
+	/* avoid excessive retries for probe request to wildcard SSIDs */
+	if (pos[1] == 0)
+		IEEE80211_SKB_CB(skb)->flags |= IEEE80211_TX_CTL_NO_ACK;
+
 	ieee80211_tx_skb(sdata, skb);
 }