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
这个提交包含在:
@@ -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
|
||||
|
在新工单中引用
屏蔽一个用户