qcacld-3.0: Handle wmi_key_material_ext tlv of ROAM_SYNCH event

With current design, firmware sends the kck, kek and replay
counters as part of wmi_key_material tlv over the
WMI_ROAM_SYNCH_EVENTID event. But the maximum supported kck key
length in wmi_key_material was 16 bytes. But for FT Suite-B
(akm 00:0f:ac:13), the kck_bits is 24 bytes long and cannot be
sent over wmi_key_material. So firmware sends kck, kek and
replay counter values over the new tlv wmi_key_material_ext.

Host driver copies the kck key with fixed 16 byte length to the
upper layers. Introduce kck_length parameter in csr_roam_info
and roam_offload_synch_ind structures and copy kck based on this
length.

Also fix maximum number of AKM suites supported to 5, as some
certification test cases advertise 5 akms.

Change-Id: Iab050e3e3f7efead8070a02094998d15f7ffcbd0
CRs-Fixed: 2400770
这个提交包含在:
Pragaspathi Thilagaraj
2019-02-19 00:42:28 +05:30
提交者 nshrivas
父节点 e9b9132f7e
当前提交 957b7ecf57
修改 6 个文件,包含 45 行新增5 行删除

查看文件

@@ -1267,6 +1267,14 @@ struct bss_load_trigger {
int32_t rssi_threshold_24ghz;
};
/*
* AKM suites supported by firmware for
* roaming
*/
#define AKM_FT_SAE 0
#define AKM_FT_SUITEB_SHA384 1
#define AKM_FT_FILS 2
/*
* @mawc_roam_enabled: Enable/Disable MAWC during roaming
* @enable_fast_roam_in_concurrency:Enable LFR roaming on STA during concurrency
@@ -1362,6 +1370,7 @@ struct bss_load_trigger {
* during roam_scan_inactivity_time.
* @roam_scan_period_after_inactivity: Roam scan period after device was in
* inactive state
* @fw_akm_bitmap: Supported Akm suites of firmware
*/
struct wlan_mlme_lfr_cfg {
bool mawc_roam_enabled;
@@ -1459,6 +1468,7 @@ struct wlan_mlme_lfr_cfg {
uint32_t roam_scan_inactivity_time;
uint32_t roam_inactive_data_packet_count;
uint32_t roam_scan_period_after_inactivity;
uint32_t fw_akm_bitmap;
};
/**

查看文件

@@ -1079,6 +1079,7 @@ ucfg_mlme_set_roaming_offload(struct wlan_objmgr_psoc *psoc,
return QDF_STATUS_SUCCESS;
}
#endif
/**
* ucfg_mlme_get_first_scan_bucket_threshold() - Get first scan bucket thre
* @psoc: pointer to psoc object
@@ -1090,6 +1091,18 @@ QDF_STATUS
ucfg_mlme_get_first_scan_bucket_threshold(struct wlan_objmgr_psoc *psoc,
uint8_t *val);
/**
* ucfg_mlme_set_fw_supported_roaming_akm() - update the supported roaming
* akm suites advertised by the firmware via wmi service capability
* @psoc: pointer to psoc object
* @val: bitmap value based on firmware capabilities
*
* Return: QDF Status
*/
QDF_STATUS
ucfg_mlme_set_fw_supported_roaming_akm(struct wlan_objmgr_psoc *psoc,
uint32_t val);
/**
* ucfg_mlme_is_mawc_enabled() - MAWC enabled or not
* @psoc: pointer to psoc object