Commit e345f44f authored by Jouni Malinen's avatar Jouni Malinen Committed by Johannes Berg

mac80211: Support a scan request for a specific BSSID

If the cfg80211 scan trigger operation specifies a single BSSID, use
that value instead of the wildcard BSSID in the Probe Request frames.
Signed-off-by: default avatarJouni Malinen <jouni@qca.qualcomm.com>
Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
parent 818965d3
...@@ -305,6 +305,7 @@ static bool ieee80211_prep_hw_scan(struct ieee80211_local *local) ...@@ -305,6 +305,7 @@ static bool ieee80211_prep_hw_scan(struct ieee80211_local *local)
ether_addr_copy(local->hw_scan_req->req.mac_addr, req->mac_addr); ether_addr_copy(local->hw_scan_req->req.mac_addr, req->mac_addr);
ether_addr_copy(local->hw_scan_req->req.mac_addr_mask, ether_addr_copy(local->hw_scan_req->req.mac_addr_mask,
req->mac_addr_mask); req->mac_addr_mask);
ether_addr_copy(local->hw_scan_req->req.bssid, req->bssid);
return true; return true;
} }
...@@ -499,7 +500,7 @@ static void ieee80211_scan_state_send_probe(struct ieee80211_local *local, ...@@ -499,7 +500,7 @@ static void ieee80211_scan_state_send_probe(struct ieee80211_local *local,
for (i = 0; i < scan_req->n_ssids; i++) for (i = 0; i < scan_req->n_ssids; i++)
ieee80211_send_probe_req( ieee80211_send_probe_req(
sdata, local->scan_addr, NULL, sdata, local->scan_addr, scan_req->bssid,
scan_req->ssids[i].ssid, scan_req->ssids[i].ssid_len, scan_req->ssids[i].ssid, scan_req->ssids[i].ssid_len,
scan_req->ie, scan_req->ie_len, scan_req->ie, scan_req->ie_len,
scan_req->rates[band], false, scan_req->rates[band], false,
...@@ -564,6 +565,7 @@ static int __ieee80211_start_scan(struct ieee80211_sub_if_data *sdata, ...@@ -564,6 +565,7 @@ static int __ieee80211_start_scan(struct ieee80211_sub_if_data *sdata,
req->n_channels * sizeof(req->channels[0]); req->n_channels * sizeof(req->channels[0]);
local->hw_scan_req->req.ie = ies; local->hw_scan_req->req.ie = ies;
local->hw_scan_req->req.flags = req->flags; local->hw_scan_req->req.flags = req->flags;
eth_broadcast_addr(local->hw_scan_req->req.bssid);
local->hw_scan_band = 0; local->hw_scan_band = 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment