qcacld-3.0: Add support to parse ROAM_SYNCH_KEY event

ROAM_SYNCH_KEY event will be sent after roaming to a ML AP
with STA advertising standby-links.

WMI_ROAM_SYNCH_KEY_EVENTID TLV format:
-- wmi_roam_ml_key_material_param: PTK (link_id = 0xf)
-- wmi_roam_ml_key_material_param: GTK (link_id = 0)
-- wmi_roam_ml_key_material_param: IGTK (link_id = 0)
-- wmi_roam_ml_key_material_param: BIGTK (link_id = 0)
-- wmi_roam_ml_key_material_param: LTF KEYSEED (link_id = 0xf)
-- wmi_roam_ml_key_material_param: GTK (link_id = 1)
-- wmi_roam_ml_key_material_param: IGTK (link_id = 1)
-- wmi_roam_ml_key_material_param: BIGTK (link_id = 1)
-- wmi_roam_ml_key_material_param: GTK (link_id = 2)
-- wmi_roam_ml_key_material_param: IGTK (link_id = 2)
-- wmi_roam_ml_key_material_param: BIGTK (link_id = 2)

If length of any key exceeds WMI_MAX_KEY_LEN, then multiple
TLVs will be included for that key.

Change-Id: I64238acfbd29bc40df5971f098ad5802360d8777
CRs-Fixed: 3577923
This commit is contained in:
Pragaspathi Thilagaraj
2023-08-02 05:39:37 +05:30
committed by Rahul Choudhary
parent 89c1955cd1
commit 0f7d749e5f
5 changed files with 456 additions and 3 deletions

View File

@@ -24,6 +24,7 @@
#include <wmi_unified_roam_param.h>
#include "wlan_cm_roam_public_struct.h"
#include "wlan_crypto_def_i.h"
#ifdef FEATURE_LFR_SUBNET_DETECTION
/**
@@ -119,6 +120,36 @@ wmi_extract_roam_vendor_control_param_event(wmi_unified_t wmi_handle,
#endif
#if defined(WLAN_FEATURE_ROAM_OFFLOAD) && defined(WLAN_FEATURE_11BE_MLO)
/**
* wmi_extract_roam_synch_key_event() - extract roam synch key event
* @wmi_handle: wmi handle
* @event: roam synch key event buffer pointer
* @len: event len
* @keys: destination buffer to copy keys
* @num_keys: Number of keys
* @mld_addr: MLD address pointer
*
* Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
*/
QDF_STATUS
wmi_extract_roam_synch_key_event(wmi_unified_t wmi_handle, uint8_t *event,
uint32_t len,
struct wlan_crypto_key_entry **keys,
uint8_t *num_keys,
struct qdf_mac_addr *mld_addr);
#else
static inline QDF_STATUS
wmi_extract_roam_synch_key_event(wmi_unified_t wmi_handle, uint8_t *event,
uint32_t len,
struct wlan_crypto_key_entry **keys,
uint8_t *num_keys,
struct qdf_mac_addr *mld_addr)
{
return QDF_STATUS_E_NOSUPPORT;
}
#endif
/**
* wmi_unified_roam_scan_filter_cmd() - send roam scan allowlist,
* denylist and preferred list