Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(74)

Side by Side Diff: chromeos/compat-wireless/net/mac80211/mlme.c

Issue 3434005: CHROMIUMOS: mac80211: send last 3/5 probe requests as unicast (Closed) Base URL: ssh://gitrw.chromium.org/kernel.git
Patch Set: Created 10 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * BSS client mode implementation 2 * BSS client mode implementation
3 * Copyright 2003-2008, Jouni Malinen <j@w1.fi> 3 * Copyright 2003-2008, Jouni Malinen <j@w1.fi>
4 * Copyright 2004, Instant802 Networks, Inc. 4 * Copyright 2004, Instant802 Networks, Inc.
5 * Copyright 2005, Devicescape Software, Inc. 5 * Copyright 2005, Devicescape Software, Inc.
6 * Copyright 2006-2007 Jiri Benc <jbenc@suse.cz> 6 * Copyright 2006-2007 Jiri Benc <jbenc@suse.cz>
7 * Copyright 2007, Michael Wu <flamingice@sourmilk.net> 7 * Copyright 2007, Michael Wu <flamingice@sourmilk.net>
8 * 8 *
9 * This program is free software; you can redistribute it and/or modify 9 * This program is free software; you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License version 2 as 10 * it under the terms of the GNU General Public License version 2 as
(...skipping 1009 matching lines...) Expand 10 before | Expand all | Expand 10 after
1020 return; 1020 return;
1021 1021
1022 mod_timer(&sdata->u.mgd.conn_mon_timer, 1022 mod_timer(&sdata->u.mgd.conn_mon_timer,
1023 round_jiffies_up(jiffies + IEEE80211_CONNECTION_IDLE_TIME)); 1023 round_jiffies_up(jiffies + IEEE80211_CONNECTION_IDLE_TIME));
1024 } 1024 }
1025 1025
1026 static void ieee80211_mgd_probe_ap_send(struct ieee80211_sub_if_data *sdata) 1026 static void ieee80211_mgd_probe_ap_send(struct ieee80211_sub_if_data *sdata)
1027 { 1027 {
1028 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; 1028 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd;
1029 const u8 *ssid; 1029 const u8 *ssid;
1030 u8 *dst = ifmgd->associated->bssid;
1031 u8 unicast_limit = max(1, IEEE80211_MAX_PROBE_TRIES - 3);
1032
1033 /*
1034 * Try sending broadcast probe requests for the last three
1035 * probe requests after the first ones failed since some
1036 * buggy APs only support broadcast probe requests.
1037 */
1038 if (ifmgd->probe_send_count >= unicast_limit)
1039 dst = NULL;
1030 1040
1031 ssid = ieee80211_bss_get_ie(ifmgd->associated, WLAN_EID_SSID); 1041 ssid = ieee80211_bss_get_ie(ifmgd->associated, WLAN_EID_SSID);
1032 » ieee80211_send_probe_req(sdata, ifmgd->associated->bssid, 1042 » ieee80211_send_probe_req(sdata, dst, ssid + 2, ssid[1], NULL, 0);
1033 » » » » ssid + 2, ssid[1], NULL, 0);
1034 1043
1035 ifmgd->probe_send_count++; 1044 ifmgd->probe_send_count++;
1036 ifmgd->probe_timeout = jiffies + IEEE80211_PROBE_WAIT; 1045 ifmgd->probe_timeout = jiffies + IEEE80211_PROBE_WAIT;
1037 run_again(ifmgd, ifmgd->probe_timeout); 1046 run_again(ifmgd, ifmgd->probe_timeout);
1038 } 1047 }
1039 1048
1040 static void ieee80211_mgd_probe_ap(struct ieee80211_sub_if_data *sdata, 1049 static void ieee80211_mgd_probe_ap(struct ieee80211_sub_if_data *sdata,
1041 bool beacon) 1050 bool beacon)
1042 { 1051 {
1043 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; 1052 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd;
(...skipping 1335 matching lines...) Expand 10 before | Expand all | Expand 10 after
2379 enum nl80211_cqm_rssi_threshold_event rssi_event, 2388 enum nl80211_cqm_rssi_threshold_event rssi_event,
2380 gfp_t gfp) 2389 gfp_t gfp)
2381 { 2390 {
2382 struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif); 2391 struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif);
2383 2392
2384 trace_api_cqm_rssi_notify(sdata, rssi_event); 2393 trace_api_cqm_rssi_notify(sdata, rssi_event);
2385 2394
2386 cfg80211_cqm_rssi_notify(sdata->dev, rssi_event, gfp); 2395 cfg80211_cqm_rssi_notify(sdata->dev, rssi_event, gfp);
2387 } 2396 }
2388 EXPORT_SYMBOL(ieee80211_cqm_rssi_notify); 2397 EXPORT_SYMBOL(ieee80211_cqm_rssi_notify);
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698