qcacmn: Send pmk keys over psk_msk_ext during in 11r offload tlv

Host driver sends pmk key over psk_msk buffer on the
wmi_roam_11r_offload_tlv_param fixed param.
For SHA 384 based FT AKMs, the xx_key length will be higher than
32 bytes. So new psk_msk_ext array is introduced at interface
to sent the remaining 16 bytes.

Fill the last 16 bytes of xx_key to psk_msk_ext for FT
sha384 based AKMs.
Also add support for FT-SAE, FT-SuiteB and FT-FILS firmware
service capability also. If the firmware doesn't advertise
support for FT-SAE or FT-SuiteB or FT-FILS, firmware roaming to
that AP will not be enabled.

Change-Id: Ibe64fb346a24962e59ca461c3099270d8766adc5
CRs-Fixed: 2400773
This commit is contained in:
Pragaspathi Thilagaraj
2019-03-16 18:06:22 +05:30
committed by nshrivas
parent 46f39b6f40
commit 69e39d9aa8
3 changed files with 134 additions and 77 deletions

View File

@@ -69,7 +69,7 @@
#ifdef WLAN_FEATURE_ROAM_OFFLOAD
#define WMI_BTK_KEY_LEN 32
#define WMI_ROAM_R0KH_ID_MAX_LEN 48
#define WMI_ROAM_SCAN_PSK_SIZE 32
#define WMI_ROAM_SCAN_PSK_SIZE 48
#endif
#define WMI_NOISE_FLOOR_DBM_DEFAULT (-96)
#define WMI_EXTSCAN_MAX_HOTLIST_SSIDS 8
@@ -1899,6 +1899,7 @@ typedef struct {
#define WMI_FILS_MAX_RIK_LENGTH WMI_FILS_MAX_RRK_LENGTH
#define WMI_FILS_MAX_REALM_LENGTH 256
#define WMI_FILS_MAX_USERNAME_LENGTH 16
#define WMI_FILS_FT_MAX_LEN 48
/**
* struct roam_fils_params - Roam FILS params
@@ -1911,6 +1912,8 @@ typedef struct {
* @rik_length: length of @rik
* @realm: realm
* @realm_len: length of @realm
* @fils_ft: xx_key for FT-FILS connection
* @fils_ft_len: length of FT-FILS
*/
struct roam_fils_params {
uint8_t username[WMI_FILS_MAX_USERNAME_LENGTH];
@@ -1922,6 +1925,8 @@ struct roam_fils_params {
uint32_t rik_length;
uint8_t realm[WMI_FILS_MAX_REALM_LENGTH];
uint32_t realm_len;
uint8_t fils_ft[WMI_FILS_FT_MAX_LEN];
uint8_t fils_ft_len;
};
/* struct roam_offload_scan_params - structure
@@ -5307,6 +5312,9 @@ typedef enum {
wmi_service_ul_ru26_allowed,
wmi_service_cfr_capture_support,
wmi_service_bcast_twt_support,
wmi_service_wpa3_ft_sae_support,
wmi_service_wpa3_ft_suite_b_support,
wmi_service_ft_fils,
wmi_services_max,
} wmi_conv_service_ids;
#define WMI_SERVICE_UNAVAILABLE 0xFFFF