qcacmn: Add callback api to send stored keys

For STA MLO connection, the AP can send M1 right after assoc
response on assoc link, which will trigger sending keys to FW
for mlo links, but it can happen that wmi_peer_assoc is not
sent for mlo link until this time.
Current code does not have handling for this case.

To solve this, store the link vdev keys and send them once
link vdev is connected.

Change-Id: I882da96280711ca9cfa4d6ba852fda4a8b6d7a77
CRs-Fixed: 3293692
This commit is contained in:
Amruta Kulkarni
2022-09-15 15:35:39 -07:00
zatwierdzone przez Madan Koyyalamudi
rodzic 3bdf954afc
commit 319456fee7
9 zmienionych plików z 196 dodań i 40 usunięć

Wyświetl plik

@@ -103,6 +103,9 @@ struct mlme_cm_ops {
struct wlan_objmgr_vdev *vdev,
struct qdf_mac_addr *bssid,
int index, bool preauth);
QDF_STATUS (*mlme_cm_send_keys_cb)(struct wlan_objmgr_vdev *vdev,
uint8_t key_index, bool pairwise,
enum wlan_crypto_cipher_type cipher_type);
#endif
#ifdef WLAN_FEATURE_ROAM_OFFLOAD
QDF_STATUS (*mlme_cm_roam_start_cb)(struct wlan_objmgr_vdev *vdev);
@@ -846,12 +849,32 @@ QDF_STATUS mlme_cm_osif_roam_sync_ind(struct wlan_objmgr_vdev *vdev);
QDF_STATUS mlme_cm_osif_pmksa_candidate_notify(struct wlan_objmgr_vdev *vdev,
struct qdf_mac_addr *bssid,
int index, bool preauth);
/**
* mlme_cm_osif_send_keys() - send vdev keys
* @vdev: vdev pointer
* @key_index: key index value
* @pairwise: pairwise bool value
* @ciipher_type: cipher enum value
*
* Return: QDF_STATUS
*/
QDF_STATUS mlme_cm_osif_send_keys(struct wlan_objmgr_vdev *vdev,
uint8_t key_index, bool pairwise,
enum wlan_crypto_cipher_type cipher_type);
#else
static inline
QDF_STATUS mlme_cm_osif_roam_sync_ind(struct wlan_objmgr_vdev *vdev)
{
return QDF_STATUS_SUCCESS;
}
static inline
QDF_STATUS mlme_cm_osif_send_keys(struct wlan_objmgr_vdev *vdev,
uint8_t key_index, bool pairwise,
enum wlan_crypto_cipher_type cipher_type)
{
return QDF_STATUS_SUCCESS;
}
#endif
#ifdef WLAN_FEATURE_ROAM_OFFLOAD