aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDmitry Shmidt <dimitrysh@google.com>2016-04-06 13:28:42 -0700
committerDmitry Shmidt <dimitrysh@google.com>2016-04-06 13:28:42 -0700
commit1702232ce2a725e2303e9a27fefe4d14fed69c2d (patch)
tree533142f98291fe8ef96891d69d37bc6acdb303a3
parente4663044d3a689fb5458247e9bc0f8b58cf72fca (diff)
downloadandroid_external_wpa_supplicant_8-1702232ce2a725e2303e9a27fefe4d14fed69c2d.tar.gz
android_external_wpa_supplicant_8-1702232ce2a725e2303e9a27fefe4d14fed69c2d.tar.bz2
android_external_wpa_supplicant_8-1702232ce2a725e2303e9a27fefe4d14fed69c2d.zip
Cumulative patch from commit 3560b32ca34f0ac20e4883cd2a0ad21a20502dfc
3560b32 Fix race condition with PNO stop followed immediately by PNO start 85c0f01 Add QCA nl80211 vendor commands for TSF and WISA Feature 00e2eb3 RSN: Set EAPOL-Key Request Secure bit to 1 if PTK is set Change-Id: I8398c45958d43798b8ab5f2ec7ea71c49b773ea0 Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
-rw-r--r--src/common/qca-vendor.h44
-rw-r--r--src/rsn_supp/wpa.c2
-rw-r--r--wpa_supplicant/events.c1
3 files changed, 45 insertions, 2 deletions
diff --git a/src/common/qca-vendor.h b/src/common/qca-vendor.h
index f3d185ea..87bbc053 100644
--- a/src/common/qca-vendor.h
+++ b/src/common/qca-vendor.h
@@ -163,6 +163,8 @@ enum qca_nl80211_vendor_subcmds {
/* 110..114 - reserved for QCA */
QCA_NL80211_VENDOR_SUBCMD_SET_TXPOWER_DECR_DB = 115,
/* 116..118 - reserved for QCA */
+ QCA_NL80211_VENDOR_SUBCMD_TSF = 119,
+ QCA_NL80211_VENDOR_SUBCMD_WISA = 120,
};
@@ -335,6 +337,48 @@ enum qca_set_band {
QCA_SETBAND_2G,
};
+/**
+ * enum qca_vendor_attr_get_tsf: Vendor attributes for TSF capture
+ * @QCA_WLAN_VENDOR_ATTR_TSF_CMD: enum qca_tsf_operation (u32)
+ * @QCA_WLAN_VENDOR_ATTR_TSF_TIMER_VALUE: Unsigned 64 bit TSF timer value
+ * @QCA_WLAN_VENDOR_ATTR_TSF_SOC_TIMER_VALUE: Unsigned 64 bit Synchronized
+ * SOC timer value at TSF capture
+ */
+enum qca_vendor_attr_tsf_cmd {
+ QCA_WLAN_VENDOR_ATTR_TSF_INVALID = 0,
+ QCA_WLAN_VENDOR_ATTR_TSF_CMD,
+ QCA_WLAN_VENDOR_ATTR_TSF_TIMER_VALUE,
+ QCA_WLAN_VENDOR_ATTR_TSF_SOC_TIMER_VALUE,
+ QCA_WLAN_VENDOR_ATTR_TSF_AFTER_LAST,
+ QCA_WLAN_VENDOR_ATTR_TSF_MAX =
+ QCA_WLAN_VENDOR_ATTR_TSF_AFTER_LAST - 1
+};
+
+/**
+ * enum qca_tsf_operation: TSF driver commands
+ * @QCA_TSF_CAPTURE: Initiate TSF Capture
+ * @QCA_TSF_GET: Get TSF capture value
+ * @QCA_TSF_SYNC_GET: Initiate TSF capture and return with captured value
+ */
+enum qca_tsf_cmd {
+ QCA_TSF_CAPTURE,
+ QCA_TSF_GET,
+ QCA_TSF_SYNC_GET,
+};
+
+/**
+ * enum qca_vendor_attr_wisa_cmd
+ * @QCA_WLAN_VENDOR_ATTR_WISA_MODE: WISA mode value (u32)
+ * WISA setup vendor commands
+ */
+enum qca_vendor_attr_wisa_cmd {
+ QCA_WLAN_VENDOR_ATTR_WISA_INVALID = 0,
+ QCA_WLAN_VENDOR_ATTR_WISA_MODE,
+ QCA_WLAN_VENDOR_ATTR_WISA_AFTER_LAST,
+ QCA_WLAN_VENDOR_ATTR_WISA_MAX =
+ QCA_WLAN_VENDOR_ATTR_WISA_AFTER_LAST - 1
+};
+
/* IEEE 802.11 Vendor Specific elements */
/**
diff --git a/src/rsn_supp/wpa.c b/src/rsn_supp/wpa.c
index e8501197..3c478792 100644
--- a/src/rsn_supp/wpa.c
+++ b/src/rsn_supp/wpa.c
@@ -131,7 +131,7 @@ void wpa_sm_key_request(struct wpa_sm *sm, int error, int pairwise)
EAPOL_KEY_TYPE_RSN : EAPOL_KEY_TYPE_WPA;
key_info = WPA_KEY_INFO_REQUEST | ver;
if (sm->ptk_set)
- key_info |= WPA_KEY_INFO_MIC;
+ key_info |= WPA_KEY_INFO_MIC | WPA_KEY_INFO_SECURE;
if (error)
key_info |= WPA_KEY_INFO_ERROR;
if (pairwise)
diff --git a/wpa_supplicant/events.c b/wpa_supplicant/events.c
index 6b3a2c06..1b3d8a91 100644
--- a/wpa_supplicant/events.c
+++ b/wpa_supplicant/events.c
@@ -3963,7 +3963,6 @@ void wpa_supplicant_event(void *ctx, enum wpa_event_type event,
data->driver_gtk_rekey.replay_ctr);
break;
case EVENT_SCHED_SCAN_STOPPED:
- wpa_s->pno = 0;
wpa_s->sched_scanning = 0;
resched = wpa_s->scanning && wpas_scan_scheduled(wpa_s);
wpa_supplicant_notify_scanning(wpa_s, 0);