nl80211: Support setting sched scan RSSI threshold
Allow the user to configure an RSSI threshold in dBm below which the nl80211 driver won't report scan results. Currently only supported during scheduled (PNO) scans. Signed-off-by: Thomas Pedersen <c_tpeder@qca.qualcomm.com> Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>
This commit is contained in:
parent
cae2119c86
commit
bf8d6d2430
5 changed files with 37 additions and 2 deletions
|
@ -3612,6 +3612,7 @@ static int wpa_driver_nl80211_sched_scan(void *priv,
|
|||
struct wpa_driver_nl80211_data *drv = bss->drv;
|
||||
int ret = 0;
|
||||
struct nl_msg *msg, *ssids, *freqs, *match_set_ssid, *match_sets;
|
||||
struct nl_msg *match_set_rssi;
|
||||
size_t i;
|
||||
|
||||
#ifdef ANDROID
|
||||
|
@ -3640,8 +3641,9 @@ static int wpa_driver_nl80211_sched_scan(void *priv,
|
|||
|
||||
NLA_PUT_U32(msg, NL80211_ATTR_SCHED_SCAN_INTERVAL, interval);
|
||||
|
||||
if (drv->num_filter_ssids &&
|
||||
(int) drv->num_filter_ssids <= drv->capa.max_match_sets) {
|
||||
if ((drv->num_filter_ssids &&
|
||||
(int) drv->num_filter_ssids <= drv->capa.max_match_sets) ||
|
||||
params->filter_rssi) {
|
||||
match_sets = nlmsg_alloc();
|
||||
|
||||
for (i = 0; i < drv->num_filter_ssids; i++) {
|
||||
|
@ -3661,6 +3663,18 @@ static int wpa_driver_nl80211_sched_scan(void *priv,
|
|||
nlmsg_free(match_set_ssid);
|
||||
}
|
||||
|
||||
if (params->filter_rssi) {
|
||||
match_set_rssi = nlmsg_alloc();
|
||||
NLA_PUT_U32(match_set_rssi,
|
||||
NL80211_SCHED_SCAN_MATCH_ATTR_RSSI,
|
||||
params->filter_rssi);
|
||||
wpa_printf(MSG_MSGDUMP,
|
||||
"nl80211: Sched scan RSSI filter %d dBm",
|
||||
params->filter_rssi);
|
||||
nla_put_nested(match_sets, 0, match_set_rssi);
|
||||
nlmsg_free(match_set_rssi);
|
||||
}
|
||||
|
||||
nla_put_nested(msg, NL80211_ATTR_SCHED_SCAN_MATCH,
|
||||
match_sets);
|
||||
nlmsg_free(match_sets);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue