qcacld-3.0: Add support to handle WMI_ROAM_SYNCH_KEY_EVENTID

Register event handler for WMI_ROAM_SYNCH_KEY_EVENTID.

Store the roamed AP keys for all links in crypto module
Add CM function pointers to iterate and store the parsed
keys for each link.

Change-Id: Icee5eeea23724a7d69cf895023e75e856d88a685
CRs-Fixed: 3577927
此提交包含在:
Pragaspathi Thilagaraj
2023-08-02 05:51:25 +05:30
提交者 Rahul Choudhary
父節點 6051d5be28
當前提交 46a19eb3f7
共有 4 個檔案被更改,包括 221 行新增2 行删除

查看文件

@@ -468,6 +468,25 @@ err:
return status;
}
#if defined(WLAN_FEATURE_11BE_MLO) && defined(WLAN_FEATURE_ROAM_OFFLOAD)
QDF_STATUS cm_roam_sync_key_event_handler(struct wlan_objmgr_psoc *psoc,
struct wlan_crypto_key_entry *keys,
uint8_t num_keys)
{
QDF_STATUS status = QDF_STATUS_SUCCESS;
uint8_t i;
for (i = 0; i < num_keys; i++) {
status = wlan_crypto_add_key_entry(psoc, &keys[i]);
if (QDF_IS_STATUS_ERROR(status))
mlme_err("Failed to add key entry for link:%d",
keys[i].link_id);
}
return status;
}
#endif
QDF_STATUS cm_roam_sync_event_handler_cb(struct wlan_objmgr_vdev *vdev,
uint8_t *event,
uint32_t len)

查看文件

@@ -317,7 +317,7 @@ wlan_cm_get_rso_user_config_fl(struct wlan_objmgr_vdev *vdev,
wlan_cm_get_rso_config_fl(vdev, __func__, __LINE__)
/**
* wlan_cm_get_rso_config - get per vdev RSO userspace config
* wlan_cm_get_rso_user_config - get per vdev RSO userspace config
* @vdev: vdev pointer
*
* Return: rso user space config pointer
@@ -1608,6 +1608,29 @@ wlan_cm_add_frame_to_scan_db(struct wlan_objmgr_psoc *psoc,
}
#endif /* WLAN_FEATURE_ROAM_OFFLOAD */
#if defined(WLAN_FEATURE_11BE_MLO) && defined(WLAN_FEATURE_ROAM_OFFLOAD)
/**
* cm_roam_sync_key_event_handler() - Handle roam sync key event and
* store the keys in crypto module
* @psoc: Pointer to psoc object
* @keys: Pointer to the keys
* @num_keys: Number of links for which keys entries are available
*
* Return: QDF_STATUS
*/
QDF_STATUS cm_roam_sync_key_event_handler(struct wlan_objmgr_psoc *psoc,
struct wlan_crypto_key_entry *keys,
uint8_t num_keys);
#else
static inline
QDF_STATUS cm_roam_sync_key_event_handler(struct wlan_objmgr_psoc *psoc,
struct wlan_crypto_key_entry *keys,
uint8_t num_keys)
{
return QDF_STATUS_E_NOSUPPORT;
}
#endif
#ifdef WLAN_FEATURE_FIPS
/**
* cm_roam_pmkid_req_ind() - Function to handle

查看文件

@@ -2878,6 +2878,7 @@ struct roam_scan_candidate_frame {
* roaming related commands
* @roam_sync_event: RX ops function pointer for roam sync event
* @roam_sync_frame_event: Rx ops function pointer for roam sync frame event
* @roam_sync_key_event: Rx ops function pointer for roam sych key event
* @roam_event_rx: Rx ops function pointer for roam info event
* @btm_denylist_event: Rx ops function pointer for btm denylist event
* @vdev_disconnect_event: Rx ops function pointer for vdev disconnect event
@@ -2895,6 +2896,9 @@ struct wlan_cm_roam_rx_ops {
struct roam_offload_synch_ind *sync_ind);
QDF_STATUS (*roam_sync_frame_event)(struct wlan_objmgr_psoc *psoc,
struct roam_synch_frame_ind *frm);
QDF_STATUS (*roam_sync_key_event)(struct wlan_objmgr_psoc *psoc,
struct wlan_crypto_key_entry *keys,
uint8_t num_keys);
QDF_STATUS (*roam_event_rx)(struct roam_offload_roam_event *roam_event);
QDF_STATUS (*btm_denylist_event)(struct wlan_objmgr_psoc *psoc,
struct roam_denylist_event *list);