qcacld-3.0: Fix RSN cap sent to firmware
Send RSN caps value as in supplicant to firmware instead of intersection value. Change-Id: If300836a89329325d906c88dcf06835ad767aa85 CRs-Fixed: 2746357
This commit is contained in:
@@ -17227,23 +17227,6 @@ csr_add_ch_lst_from_roam_scan_list(struct mac_context *mac_ctx,
|
|||||||
return QDF_STATUS_SUCCESS;
|
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
|
#ifdef WLAN_FEATURE_11W
|
||||||
/**
|
/**
|
||||||
* csr_rso_command_fill_11w_params() - Fill the 11w related parameters
|
* csr_rso_command_fill_11w_params() - Fill the 11w related parameters
|
||||||
@@ -17306,14 +17289,51 @@ csr_rso_command_fill_11w_params(struct mac_context *mac_ctx,
|
|||||||
network_cfg->gp_mgmt_cipher_suite = eSIR_ED_NONE;
|
network_cfg->gp_mgmt_cipher_suite = eSIR_ED_NONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void csr_fill_pmf_caps(uint16_t *rsn_caps,
|
||||||
|
tCsrRoamConnectedProfile *profile)
|
||||||
|
{
|
||||||
|
*rsn_caps &= ~WLAN_CRYPTO_RSN_CAP_MFP_ENABLED;
|
||||||
|
*rsn_caps &= ~WLAN_CRYPTO_RSN_CAP_MFP_REQUIRED;
|
||||||
|
if (profile->MFPRequired)
|
||||||
|
*rsn_caps |= WLAN_CRYPTO_RSN_CAP_MFP_REQUIRED;
|
||||||
|
if (profile->MFPCapable)
|
||||||
|
*rsn_caps |= WLAN_CRYPTO_RSN_CAP_MFP_ENABLED;
|
||||||
|
}
|
||||||
#else
|
#else
|
||||||
static inline
|
static inline
|
||||||
void csr_rso_command_fill_11w_params(struct mac_context *mac_ctx,
|
void csr_rso_command_fill_11w_params(struct mac_context *mac_ctx,
|
||||||
uint8_t session_id,
|
uint8_t session_id,
|
||||||
struct roam_offload_scan_req *rso_req)
|
struct roam_offload_scan_req *rso_req)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
static inline
|
||||||
|
void csr_fill_pmf_caps(uint16_t *rsn_caps, tCsrRoamConnectedProfile *profile)
|
||||||
|
{
|
||||||
|
*rsn_caps &= ~WLAN_CRYPTO_RSN_CAP_MFP_ENABLED;
|
||||||
|
*rsn_caps &= ~WLAN_CRYPTO_RSN_CAP_MFP_REQUIRED;
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
static void
|
||||||
|
csr_rso_command_fill_rsn_caps(struct mac_context *mac_ctx, uint8_t vdev_id,
|
||||||
|
uint16_t *rsn_caps,
|
||||||
|
tCsrRoamConnectedProfile *profile)
|
||||||
|
{
|
||||||
|
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);
|
||||||
|
csr_fill_pmf_caps(rsn_caps, profile);
|
||||||
|
|
||||||
|
wlan_objmgr_vdev_release_ref(vdev, WLAN_LEGACY_SME_ID);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* csr_update_btm_offload_config() - Update btm config param to fw
|
* csr_update_btm_offload_config() - Update btm config param to fw
|
||||||
* @mac_ctx: Global mac ctx
|
* @mac_ctx: Global mac ctx
|
||||||
@@ -17463,7 +17483,8 @@ csr_create_roam_scan_offload_request(struct mac_context *mac_ctx,
|
|||||||
|
|
||||||
/* Copy the self RSN capabilities in roam offload request */
|
/* Copy the self RSN capabilities in roam offload request */
|
||||||
csr_rso_command_fill_rsn_caps(mac_ctx, session_id,
|
csr_rso_command_fill_rsn_caps(mac_ctx, session_id,
|
||||||
(uint16_t *)&req_buf->rsn_caps);
|
(uint16_t *)&req_buf->rsn_caps,
|
||||||
|
&mac_ctx->roam.roamSession[session_id].connectedProfile);
|
||||||
csr_rso_command_fill_11w_params(mac_ctx, session_id, req_buf);
|
csr_rso_command_fill_11w_params(mac_ctx, session_id, req_buf);
|
||||||
|
|
||||||
req_buf->delay_before_vdev_stop =
|
req_buf->delay_before_vdev_stop =
|
||||||
|
Reference in New Issue
Block a user