qcacld-3.0: Update sae_single_pmk info in RSO start command

Requirement is to allow station to just keeps only one
PMK1 and PMKID1 which gets derived while first connection
and re-use it for roaming to other AP which has some
specific VSIE.

To support this feature, STA should Set new flag in 11i
params during RSO start/update when initial connection is
completed based on the VSIE in AP beacon/probe response
frame. This flag will allow fw to roam to AP(s) which has
VSIE with single PMK.

Update PMK info in RSO start command with
sae_single_pmk info if initial connection is completed
with AP contains VSIE.

Change-Id: I839b48da48f92f24444e69405d87560186d7f986
CRs-Fixed: 2616029
This commit is contained in:
Abhinav Kumar
2020-02-10 18:45:23 +05:30
committed by nshrivas
parent c71e678b18
commit 8747fd098c
5 changed files with 118 additions and 6 deletions

View File

@@ -3638,6 +3638,34 @@ void wlan_mlme_update_sae_single_pmk(struct wlan_objmgr_vdev *vdev,
is_sae_connection)
mlme_priv->mlme_roam.sae_single_pmk.pmk_info = *sae_single_pmk;
}
void wlan_mlme_get_sae_single_pmk_info(struct wlan_objmgr_vdev *vdev,
struct wlan_mlme_sae_single_pmk *pmksa)
{
struct mlme_legacy_priv *mlme_priv;
struct mlme_pmk_info pmk_info;
mlme_priv = wlan_vdev_mlme_get_ext_hdl(vdev);
if (!mlme_priv) {
mlme_legacy_err("vdev legacy private object is NULL");
return;
}
pmk_info = mlme_priv->mlme_roam.sae_single_pmk.pmk_info;
pmksa->sae_single_pmk_ap =
mlme_priv->mlme_roam.sae_single_pmk.sae_single_pmk_ap;
if (pmk_info.pmk_len) {
qdf_mem_copy(pmksa->pmk_info.pmk, pmk_info.pmk,
pmk_info.pmk_len);
pmksa->pmk_info.pmk_len = pmk_info.pmk_len;
return;
}
qdf_mem_zero(pmksa->pmk_info.pmk, sizeof(*pmksa->pmk_info.pmk));
pmksa->pmk_info.pmk_len = 0;
}
#endif
char *mlme_get_roam_fail_reason_str(uint32_t result)