qcacmn: Support FILS roaming
Add cmn support for the following: - Update ERP info in RSO Start - Update HLP info in a new command WMI_PDEV_UPDATE_FILS_HLP_PKT_CMDID - Set/Delete PMK cache info with WMI_PDEV_UPDATE_PMK_CACHE_CMDID - Process FILS TLV in Roam Synch Indication and update the FILS info [seq number,PMK, KEK, realm] to Supplicant. Change-Id: I239bf5d6c4455d39181e335dbf73bcade16aee8e CRs-Fixed: 2089128
This commit is contained in:

committed by
snandini

parent
0a0e727b9b
commit
90cd774a32
@@ -1529,6 +1529,27 @@ QDF_STATUS wmi_unified_dfs_phyerr_offload_dis_cmd(void *wmi_hdl,
|
|||||||
|
|
||||||
QDF_STATUS wmi_unified_set_country_cmd_send(void *wmi_hdl,
|
QDF_STATUS wmi_unified_set_country_cmd_send(void *wmi_hdl,
|
||||||
struct set_country *param);
|
struct set_country *param);
|
||||||
|
/*
|
||||||
|
* wmi_unified_set_del_pmkid_cache() - set delete PMKID
|
||||||
|
* @wmi_hdl: wma handle
|
||||||
|
* @pmksa: pointer to pmk cache entry
|
||||||
|
*
|
||||||
|
* Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
|
||||||
|
*/
|
||||||
|
QDF_STATUS wmi_unified_set_del_pmkid_cache(void *wmi_hdl,
|
||||||
|
struct wmi_unified_pmk_cache *pmksa);
|
||||||
|
|
||||||
|
#if defined(WLAN_FEATURE_FILS_SK)
|
||||||
|
/*
|
||||||
|
* wmi_unified_roam_send_hlp_cmd() -send HLP command info
|
||||||
|
* @wmi_hdl: wma handle
|
||||||
|
* @req_buf: Pointer to HLP params
|
||||||
|
*
|
||||||
|
* Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
|
||||||
|
*/
|
||||||
|
QDF_STATUS wmi_unified_roam_send_hlp_cmd(void *wmi_hdl,
|
||||||
|
struct hlp_params *req_buf);
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef WMI_INTERFACE_EVENT_LOGGING
|
#ifdef WMI_INTERFACE_EVENT_LOGGING
|
||||||
void wmi_print_cmd_log(wmi_unified_t wmi, uint32_t count,
|
void wmi_print_cmd_log(wmi_unified_t wmi, uint32_t count,
|
||||||
|
@@ -1913,6 +1913,35 @@ typedef struct {
|
|||||||
uint32_t mcsset[WMI_HOST_ROAM_OFFLOAD_NUM_MCS_SET >> 2];
|
uint32_t mcsset[WMI_HOST_ROAM_OFFLOAD_NUM_MCS_SET >> 2];
|
||||||
} roam_offload_param;
|
} roam_offload_param;
|
||||||
|
|
||||||
|
#define WMI_FILS_MAX_RRK_LENGTH 64
|
||||||
|
#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
|
||||||
|
|
||||||
|
/**
|
||||||
|
* struct roam_fils_params - Roam FILS params
|
||||||
|
* @username: username
|
||||||
|
* @username_length: username length
|
||||||
|
* @next_erp_seq_num: next ERP sequence number
|
||||||
|
* @rrk: RRK
|
||||||
|
* @rrk_length: length of @rrk
|
||||||
|
* @rik: RIK
|
||||||
|
* @rik_length: length of @rik
|
||||||
|
* @realm: realm
|
||||||
|
* @realm_len: length of @realm
|
||||||
|
*/
|
||||||
|
struct roam_fils_params {
|
||||||
|
uint8_t username[WMI_FILS_MAX_USERNAME_LENGTH];
|
||||||
|
uint32_t username_length;
|
||||||
|
uint32_t next_erp_seq_num;
|
||||||
|
uint8_t rrk[WMI_FILS_MAX_RRK_LENGTH];
|
||||||
|
uint32_t rrk_length;
|
||||||
|
uint8_t rik[WMI_FILS_MAX_RIK_LENGTH];
|
||||||
|
uint32_t rik_length;
|
||||||
|
uint8_t realm[WMI_FILS_MAX_REALM_LENGTH];
|
||||||
|
uint32_t realm_len;
|
||||||
|
};
|
||||||
|
|
||||||
/* struct roam_offload_scan_params - structure
|
/* struct roam_offload_scan_params - structure
|
||||||
* containing roaming offload scan parameters
|
* containing roaming offload scan parameters
|
||||||
* @is_roam_req_valid: flag to tell whether roam req
|
* @is_roam_req_valid: flag to tell whether roam req
|
||||||
@@ -1937,6 +1966,10 @@ typedef struct {
|
|||||||
* @is_ese_assoc: flag to determine ese assoc
|
* @is_ese_assoc: flag to determine ese assoc
|
||||||
* @mdid: mobility domain info
|
* @mdid: mobility domain info
|
||||||
* @roam_offload_params: roam offload tlv params
|
* @roam_offload_params: roam offload tlv params
|
||||||
|
* @assoc_ie_length: Assoc IE length
|
||||||
|
* @assoc_ie: Assoc IE buffer
|
||||||
|
* @add_fils_tlv: add FILS TLV boolean
|
||||||
|
* @roam_fils_params: roam fils params
|
||||||
*/
|
*/
|
||||||
struct roam_offload_scan_params {
|
struct roam_offload_scan_params {
|
||||||
uint8_t is_roam_req_valid;
|
uint8_t is_roam_req_valid;
|
||||||
@@ -1969,6 +2002,10 @@ struct roam_offload_scan_params {
|
|||||||
#endif
|
#endif
|
||||||
uint32_t assoc_ie_length;
|
uint32_t assoc_ie_length;
|
||||||
uint8_t assoc_ie[MAX_ASSOC_IE_LENGTH];
|
uint8_t assoc_ie[MAX_ASSOC_IE_LENGTH];
|
||||||
|
bool add_fils_tlv;
|
||||||
|
#ifdef WLAN_FEATURE_FILS_SK
|
||||||
|
struct roam_fils_params roam_fils_params;
|
||||||
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
/* struct roam_offload_scan_rssi_params - structure containing
|
/* struct roam_offload_scan_rssi_params - structure containing
|
||||||
@@ -3219,6 +3256,11 @@ struct periodic_tx_pattern {
|
|||||||
uint8_t ucPattern[WMI_PERIODIC_TX_PTRN_MAX_SIZE];
|
uint8_t ucPattern[WMI_PERIODIC_TX_PTRN_MAX_SIZE];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#define WMI_GTK_OFFLOAD_KEK_BYTES 64
|
||||||
|
#define WMI_GTK_OFFLOAD_KCK_BYTES 16
|
||||||
|
#define WMI_GTK_OFFLOAD_ENABLE 0
|
||||||
|
#define WMI_GTK_OFFLOAD_DISABLE 1
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* struct flashing_req_params - led flashing parameter
|
* struct flashing_req_params - led flashing parameter
|
||||||
* @reqId: request id
|
* @reqId: request id
|
||||||
@@ -3459,6 +3501,53 @@ struct roam_scan_filter_params {
|
|||||||
struct rssi_disallow_bssid rssi_rejection_ap[MAX_RSSI_AVOID_BSSID_LIST];
|
struct rssi_disallow_bssid rssi_rejection_ap[MAX_RSSI_AVOID_BSSID_LIST];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#define WMI_MAX_HLP_IE_LEN 2048
|
||||||
|
/**
|
||||||
|
* struct hlp_params - HLP info params
|
||||||
|
* @vdev_id: vdev id
|
||||||
|
* @hlp_ie_len: HLP IE length
|
||||||
|
* @hlp_ie: HLP IE
|
||||||
|
*/
|
||||||
|
struct hlp_params {
|
||||||
|
uint8_t vdev_id;
|
||||||
|
uint32_t hlp_ie_len;
|
||||||
|
uint8_t hlp_ie[WMI_MAX_HLP_IE_LEN];
|
||||||
|
};
|
||||||
|
|
||||||
|
#define WMI_UNIFIED_MAX_PMKID_LEN 16
|
||||||
|
#define WMI_UNIFIED_MAX_PMK_LEN 64
|
||||||
|
|
||||||
|
/**
|
||||||
|
* struct wmi_unified_pmk_cache - used to set del pmkid cache
|
||||||
|
* @tlv_header: TLV header, TLV tag and len; tag equals WMITLV_TAG_ARRAY_UINT32
|
||||||
|
* @pmk_len: PMK len
|
||||||
|
* for big-endian hosts, manual endian conversion will be needed to keep
|
||||||
|
* the array values in their original order in spite of the automatic
|
||||||
|
* byte-swap applied to WMI messages during download
|
||||||
|
* @pmk: PMK array
|
||||||
|
* @pmkid_len: PMK ID Len
|
||||||
|
* @pmkid: PMK ID Array
|
||||||
|
* @bssid: BSSID
|
||||||
|
* @ssid: SSID
|
||||||
|
* @cache_id: PMK Cache ID
|
||||||
|
* @cat_flag: whether (bssid) or (ssid,cache_id) is valid
|
||||||
|
* @action_flag: add/delete the entry
|
||||||
|
*/
|
||||||
|
struct wmi_unified_pmk_cache {
|
||||||
|
A_UINT32 tlv_header;
|
||||||
|
A_UINT32 pmk_len;
|
||||||
|
A_UINT8 session_id;
|
||||||
|
A_UINT8 pmk[WMI_UNIFIED_MAX_PMK_LEN];
|
||||||
|
A_UINT32 pmkid_len;
|
||||||
|
A_UINT8 pmkid[WMI_UNIFIED_MAX_PMKID_LEN];
|
||||||
|
wmi_host_mac_addr bssid;
|
||||||
|
struct mac_ssid ssid;
|
||||||
|
A_UINT32 cache_id;
|
||||||
|
A_UINT32 cat_flag;
|
||||||
|
A_UINT32 action_flag;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* struct ssid_hotlist_request_params - set SSID hotlist request struct
|
* struct ssid_hotlist_request_params - set SSID hotlist request struct
|
||||||
* @request_id: ID of the request
|
* @request_id: ID of the request
|
||||||
|
@@ -416,6 +416,11 @@ QDF_STATUS (*send_roam_mawc_params_cmd)(wmi_unified_t wmi_handle,
|
|||||||
QDF_STATUS (*send_roam_scan_filter_cmd)(wmi_unified_t wmi_handle,
|
QDF_STATUS (*send_roam_scan_filter_cmd)(wmi_unified_t wmi_handle,
|
||||||
struct roam_scan_filter_params *roam_req);
|
struct roam_scan_filter_params *roam_req);
|
||||||
|
|
||||||
|
#if defined(WLAN_FEATURE_FILS_SK)
|
||||||
|
QDF_STATUS (*send_roam_scan_hlp_cmd) (wmi_unified_t wmi_handle,
|
||||||
|
struct hlp_params *params);
|
||||||
|
#endif
|
||||||
|
|
||||||
QDF_STATUS (*send_set_passpoint_network_list_cmd)(wmi_unified_t wmi_handle,
|
QDF_STATUS (*send_set_passpoint_network_list_cmd)(wmi_unified_t wmi_handle,
|
||||||
struct wifi_passpoint_req_param *req);
|
struct wifi_passpoint_req_param *req);
|
||||||
|
|
||||||
@@ -880,6 +885,8 @@ QDF_STATUS (*send_vdev_spectral_configure_cmd)(wmi_unified_t wmi_handle,
|
|||||||
|
|
||||||
QDF_STATUS (*send_vdev_spectral_enable_cmd)(wmi_unified_t wmi_handle,
|
QDF_STATUS (*send_vdev_spectral_enable_cmd)(wmi_unified_t wmi_handle,
|
||||||
struct vdev_spectral_enable_params *param);
|
struct vdev_spectral_enable_params *param);
|
||||||
|
QDF_STATUS (*send_set_del_pmkid_cache_cmd) (wmi_unified_t wmi_handle,
|
||||||
|
struct wmi_unified_pmk_cache *req_buf);
|
||||||
|
|
||||||
QDF_STATUS (*send_bss_chan_info_request_cmd)(wmi_unified_t wmi_handle,
|
QDF_STATUS (*send_bss_chan_info_request_cmd)(wmi_unified_t wmi_handle,
|
||||||
struct bss_chan_info_request_params *param);
|
struct bss_chan_info_request_params *param);
|
||||||
|
Reference in New Issue
Block a user