summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDeepak Dhamdhere <ddhamdhe@codeaurora.org>2017-02-09 19:40:26 -0800
committerGerrit - the friendly Code Review server <code-review@localhost>2017-02-20 20:44:28 -0800
commit7b97cdc92e142c42664a91dcebeeb6b9e2ee9838 (patch)
tree54587f1929378eb9d9bf5dbadfd03f572f551c64
parent16bad8b9a12810d470d16ad99d91214a2c4e0d87 (diff)
qcacmn: Enable PMK cache and OKC with RSO command
Firmware now supports PMK caching in addition to OKC (Opportunistic Key Caching). Use additional bit flags to enable PMK caching in PMK configuration in roam offload scan request. CRs-Fixed: 2004963 Change-Id: I536a4d45d5d915ab02dc13db6124a1ce8949fe48
-rw-r--r--wmi/inc/wmi_unified_param.h8
-rw-r--r--wmi/src/wmi_unified_tlv.c17
2 files changed, 19 insertions, 6 deletions
diff --git a/wmi/inc/wmi_unified_param.h b/wmi/inc/wmi_unified_param.h
index 6c71cdfb9cbb..f393b0c572b1 100644
--- a/wmi/inc/wmi_unified_param.h
+++ b/wmi/inc/wmi_unified_param.h
@@ -1707,7 +1707,7 @@ struct mobility_domain_info {
#define WMI_HOST_ROAM_OFFLOAD_NUM_MCS_SET (16)
/* This TLV will be filled only in case roam offload
- * for wpa2-psk/okc/ese/11r is enabled */
+ * for wpa2-psk/pmkid/ese/11r is enabled */
typedef struct {
/*
* TLV tag and len; tag equals
@@ -1750,7 +1750,8 @@ typedef struct {
* @rokh_id: r0kh id
* @roam_key_mgmt_offload_enabled: roam offload flag
* @auth_mode: authentication mode
- * @okc_enabled: enable opportunistic key caching
+ * @fw_okc: use OKC in firmware
+ * @fw_pmksa_cache: use PMKSA cache in firmware
* @is_ese_assoc: flag to determine ese assoc
* @mdid: mobility domain info
* @roam_offload_params: roam offload tlv params
@@ -1773,7 +1774,8 @@ struct roam_offload_scan_params {
uint8_t rokh_id[WMI_ROAM_R0KH_ID_MAX_LEN];
uint8_t roam_key_mgmt_offload_enabled;
int auth_mode;
- bool okc_enabled;
+ bool fw_okc;
+ bool fw_pmksa_cache;
#endif
bool is_ese_assoc;
struct mobility_domain_info mdid;
diff --git a/wmi/src/wmi_unified_tlv.c b/wmi/src/wmi_unified_tlv.c
index c764fa4cf13d..704fbba0b63a 100644
--- a/wmi/src/wmi_unified_tlv.c
+++ b/wmi/src/wmi_unified_tlv.c
@@ -4564,15 +4564,26 @@ QDF_STATUS send_roam_scan_offload_mode_cmd_tlv(wmi_unified_t wmi_handle,
buf_ptr += WMI_TLV_HDR_SIZE;
roam_offload_11i =
(wmi_roam_11i_offload_tlv_param *) buf_ptr;
+
if (roam_req->roam_key_mgmt_offload_enabled &&
- roam_req->okc_enabled) {
+ roam_req->fw_okc) {
WMI_SET_ROAM_OFFLOAD_OKC_ENABLED
(roam_offload_11i->flags);
- WMI_LOGE("LFR3:OKC Enabled");
+ WMI_LOGE("LFR3:OKC enabled");
} else {
WMI_SET_ROAM_OFFLOAD_OKC_DISABLED
(roam_offload_11i->flags);
- WMI_LOGE("LFR3:OKC Disabled");
+ WMI_LOGE("LFR3:OKC disabled");
+ }
+ if (roam_req->roam_key_mgmt_offload_enabled &&
+ roam_req->fw_pmksa_cache) {
+ WMI_SET_ROAM_OFFLOAD_PMK_CACHE_ENABLED
+ (roam_offload_11i->flags);
+ WMI_LOGE("LFR3:PMKSA caching enabled");
+ } else {
+ WMI_SET_ROAM_OFFLOAD_PMK_CACHE_DISABLED
+ (roam_offload_11i->flags);
+ WMI_LOGE("LFR3:PMKSA caching disabled");
}
qdf_mem_copy(roam_offload_11i->pmk,