qcacld-3.0: Update self RSN caps to FW in RSO update/start cmd

Present source of self RSN capability to copy in RSO command i.e
csr_roam_session's rsn_cap is zero, A new capability OCVC (Operating
Channel Validation Capable) bit is in RSN capabilities. FW enables
OCV feature only if STA and AP both supports it.
Hence update self RSN capability to FW in RSO start/update command.

Change-Id: I1db500142560ec64a24ffab0c414c0c2b733e454
CRs-Fixed: 2721095
This commit is contained in:
Abhishek Ambure 2020-06-22 20:27:10 +05:30 committed by nshrivas
parent 5e82bbc32c
commit 5e1f7ea5d6
2 changed files with 21 additions and 4 deletions

View File

@ -516,7 +516,6 @@ struct csr_roam_session {
struct qdf_mac_addr self_mac_addr;
eCsrConnectState connectState;
struct rsn_caps rsn_caps;
tCsrRoamConnectedProfile connectedProfile;
struct csr_roam_connectedinfo connectedInfo;
struct csr_roam_connectedinfo prev_assoc_ap_info;

View File

@ -17257,6 +17257,23 @@ csr_add_ch_lst_from_roam_scan_list(struct mac_context *mac_ctx,
return QDF_STATUS_SUCCESS;
}
static void
csr_rso_command_fill_rsn_caps(struct mac_context *mac_ctx, uint8_t vdev_id,
uint16_t *rsn_caps)
{
struct wlan_objmgr_vdev *vdev;
vdev = wlan_objmgr_get_vdev_by_id_from_psoc(mac_ctx->psoc, vdev_id,
WLAN_LEGACY_SME_ID);
if (!vdev) {
sme_err("Invalid vdev");
return;
}
*rsn_caps = wlan_crypto_get_param(vdev, WLAN_CRYPTO_PARAM_RSN_CAP);
wlan_objmgr_vdev_release_ref(vdev, WLAN_LEGACY_SME_ID);
}
#ifdef WLAN_FEATURE_11W
/**
* csr_rso_command_fill_11w_params() - Fill the 11w related parameters
@ -17283,7 +17300,7 @@ csr_rso_command_fill_11w_params(struct mac_context *mac_ctx,
session_id,
WLAN_LEGACY_SME_ID);
if (!vdev) {
pe_err("Invalid vdev");
sme_err("Invalid vdev");
return;
}
@ -17473,9 +17490,10 @@ csr_create_roam_scan_offload_request(struct mac_context *mac_ctx,
req_buf->ConnectedNetwork.mcencryption =
mac_ctx->roam.roamSession[session_id].
connectedProfile.mcEncryptionType;
/* Copy the RSN capabilities in roam offload request from session*/
req_buf->rsn_caps = session->rsn_caps;
/* Copy the self RSN capabilities in roam offload request */
csr_rso_command_fill_rsn_caps(mac_ctx, session_id,
(uint16_t *)&req_buf->rsn_caps);
csr_rso_command_fill_11w_params(mac_ctx, session_id, req_buf);
req_buf->delay_before_vdev_stop =