qcacmn: Send the user configured MFP state in RSO command

Currently the user configured MFP state that comes from the
userspace in connect request is not handled or processed.
Instead the RSN caps from assoc IE of connect request is inter-
sected with AP RSN caps and sent to Firmware using RSO command.
This RSN caps is used in FW in selecting a roam candidate, which
was causing the cross AKM (eg:SAE -> PSK) roam fail.
Hence, use the user configured MFP value in sending the RSN caps
to Firmware.

CRs-Fixed: 3606069
Change-Id: I3facfcf3616667b4749109d26d924c3fb1537494
Šī revīzija ir iekļauta:
Srikanth Marepalli
2023-09-01 12:15:31 -07:00
revīziju iesūtīja Rahul Choudhary
vecāks f0fc4d0daf
revīzija f8d554dc22
3 mainīti faili ar 19 papildinājumiem un 0 dzēšanām

Parādīt failu

@@ -147,6 +147,19 @@ osif_cm_set_akm_params(struct wlan_cm_connect_req *connect_req,
}
}
static inline
uint8_t osif_cm_get_rsn_cap_mfp(enum nl80211_mfp mfp_state)
{
switch (mfp_state) {
case NL80211_MFP_REQUIRED:
return RSN_CAP_MFP_REQUIRED;
case NL80211_MFP_OPTIONAL:
return RSN_CAP_MFP_CAPABLE;
default:
return RSN_CAP_MFP_DISABLED;
}
}
static
QDF_STATUS osif_cm_set_crypto_params(struct wlan_cm_connect_req *connect_req,
const struct cfg80211_connect_params *req)
@@ -187,6 +200,9 @@ QDF_STATUS osif_cm_set_crypto_params(struct wlan_cm_connect_req *connect_req,
if (QDF_IS_STATUS_ERROR(status))
osif_err("set wep key params failed");
/* Copy user configured MFP capability */
connect_req->crypto.user_mfp = osif_cm_get_rsn_cap_mfp(req->mfp);
return status;
}