aboutsummaryrefslogtreecommitdiffstats
path: root/src/drivers
diff options
context:
space:
mode:
authorEyal Shapira <eyal@wizery.com>2012-01-17 02:16:06 +0200
committerArik Nemtsov <arik@wizery.com>2012-08-02 13:01:42 +0300
commita51473212b0849d5e62ff2e95cdabb8b0b585694 (patch)
treebff105c884e8e186a33a005b4ce46a91e6dba462 /src/drivers
parent01380f16b7a8e0ee27cd8e5e298044a8727a3673 (diff)
downloadexternal_wpa_supplicant_8_ti-a51473212b0849d5e62ff2e95cdabb8b0b585694.zip
external_wpa_supplicant_8_ti-a51473212b0849d5e62ff2e95cdabb8b0b585694.tar.gz
external_wpa_supplicant_8_ti-a51473212b0849d5e62ff2e95cdabb8b0b585694.tar.bz2
sched scan: read driver support for sched scan intervals
Use the feature flag reported by NL80211 to know if the driver supports short and long intervals in the sched scan API. This is a prep patch for the actual handling of this flag.
Diffstat (limited to 'src/drivers')
-rw-r--r--src/drivers/driver.h1
-rw-r--r--src/drivers/driver_nl80211.c6
2 files changed, 7 insertions, 0 deletions
diff --git a/src/drivers/driver.h b/src/drivers/driver.h
index 99da31c..cd90913 100644
--- a/src/drivers/driver.h
+++ b/src/drivers/driver.h
@@ -831,6 +831,7 @@ struct wpa_driver_capa {
int max_scan_ssids;
int max_sched_scan_ssids;
int sched_scan_supported;
+ int sched_scan_intervals_supported;
int max_match_sets;
/**
diff --git a/src/drivers/driver_nl80211.c b/src/drivers/driver_nl80211.c
index 6fe2150..ab8b635 100644
--- a/src/drivers/driver_nl80211.c
+++ b/src/drivers/driver_nl80211.c
@@ -2520,6 +2520,12 @@ broken_combination:
if (tb[NL80211_ATTR_SUPPORT_AP_UAPSD])
capa->flags |= WPA_DRIVER_FLAGS_AP_UAPSD;
+ if (tb[NL80211_ATTR_FEATURE_FLAGS]) {
+ int features = nla_get_u32(tb[NL80211_ATTR_FEATURE_FLAGS]);
+ if (features & NL80211_FEATURE_SCHED_SCAN_INTERVALS)
+ capa->sched_scan_intervals_supported = 1;
+ }
+
if (tb[NL80211_ATTR_MAX_REMAIN_ON_CHANNEL_DURATION])
capa->max_remain_on_chan =
nla_get_u32(tb[NL80211_ATTR_MAX_REMAIN_ON_CHANNEL_DURATION]);