qcacld-3.0: Fill dot11mode and cbmode in LIM
Fill dot11mode and cb mode according to the bss description and IEs in LIM layer itself. Change-Id: I55cdeffdd55cfc1787a2929b349aea25f499499f CRs-Fixed: 2846126
Cette révision appartient à :

révisé par
snandini

Parent
68f52c6624
révision
0b02b4ba2f
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2012-2020 The Linux Foundation. All rights reserved.
|
* Copyright (c) 2012-2021 The Linux Foundation. All rights reserved.
|
||||||
*
|
*
|
||||||
* Permission to use, copy, modify, and/or distribute this software for
|
* Permission to use, copy, modify, and/or distribute this software for
|
||||||
* any purpose with or without fee is hereby granted, provided that the
|
* any purpose with or without fee is hereby granted, provided that the
|
||||||
@@ -908,21 +908,8 @@ struct join_req {
|
|||||||
uint16_t length;
|
uint16_t length;
|
||||||
uint8_t vdev_id;
|
uint8_t vdev_id;
|
||||||
tSirMacSSid ssId;
|
tSirMacSSid ssId;
|
||||||
tSirMacAddr self_mac_addr; /* self Mac address */
|
|
||||||
uint8_t dot11mode; /* to support BT-AMP */
|
uint8_t dot11mode; /* to support BT-AMP */
|
||||||
#ifdef FEATURE_WLAN_MCC_TO_SCC_SWITCH
|
|
||||||
uint8_t cc_switch_mode;
|
|
||||||
#endif
|
|
||||||
bool wps_registration;
|
bool wps_registration;
|
||||||
ePhyChanBondState cbMode; /* Pass CB mode value in Join. */
|
|
||||||
|
|
||||||
/*This contains the UAPSD Flag for all 4 AC
|
|
||||||
* B0: AC_VO UAPSD FLAG
|
|
||||||
* B1: AC_VI UAPSD FLAG
|
|
||||||
* B2: AC_BK UAPSD FLAG
|
|
||||||
* B3: AC_BE UASPD FLAG
|
|
||||||
*/
|
|
||||||
uint8_t uapsdPerAcBitmask;
|
|
||||||
|
|
||||||
tSirMacRateSet operationalRateSet; /* Has 11a or 11b rates */
|
tSirMacRateSet operationalRateSet; /* Has 11a or 11b rates */
|
||||||
tSirMacRateSet extendedRateSet; /* Has 11g rates */
|
tSirMacRateSet extendedRateSet; /* Has 11g rates */
|
||||||
@@ -951,17 +938,12 @@ struct join_req {
|
|||||||
bool isESEconnection;
|
bool isESEconnection;
|
||||||
tESETspecInfo eseTspecInfo;
|
tESETspecInfo eseTspecInfo;
|
||||||
#endif
|
#endif
|
||||||
bool he_with_wep_tkip;
|
|
||||||
bool isOSENConnection;
|
bool isOSENConnection;
|
||||||
bool spectrumMgtIndicator;
|
|
||||||
struct power_cap_info powerCap;
|
|
||||||
struct supported_channels supportedChannels;
|
struct supported_channels supportedChannels;
|
||||||
bool sae_pmk_cached;
|
bool sae_pmk_cached;
|
||||||
/* Pls make this as last variable in struct */
|
/* Pls make this as last variable in struct */
|
||||||
bool force_24ghz_in_ht20;
|
bool force_24ghz_in_ht20;
|
||||||
bool force_rsne_override;
|
bool force_rsne_override;
|
||||||
bool supported_nss_1x1;
|
|
||||||
bool enable_session_twt_support;
|
|
||||||
struct bss_description bssDescription;
|
struct bss_description bssDescription;
|
||||||
/*
|
/*
|
||||||
* WARNING: Pls make bssDescription as last variable in struct
|
* WARNING: Pls make bssDescription as last variable in struct
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2012-2020 The Linux Foundation. All rights reserved.
|
* Copyright (c) 2012-2021 The Linux Foundation. All rights reserved.
|
||||||
*
|
*
|
||||||
* Permission to use, copy, modify, and/or distribute this software for
|
* Permission to use, copy, modify, and/or distribute this software for
|
||||||
* any purpose with or without fee is hereby granted, provided that the
|
* any purpose with or without fee is hereby granted, provided that the
|
||||||
@@ -1262,6 +1262,8 @@ wlan_get_parsed_bss_description_ies(struct mac_context *mac_ctx,
|
|||||||
struct bss_description *bss_desc,
|
struct bss_description *bss_desc,
|
||||||
tDot11fBeaconIEs **ie_struct);
|
tDot11fBeaconIEs **ie_struct);
|
||||||
|
|
||||||
|
int8_t wlan_get_cfg_max_tx_power(struct mac_context *mac, uint32_t ch_freq);
|
||||||
|
|
||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
wlan_fill_bss_desc_from_scan_entry(struct mac_context *mac_ctx,
|
wlan_fill_bss_desc_from_scan_entry(struct mac_context *mac_ctx,
|
||||||
struct bss_description *bss_desc,
|
struct bss_description *bss_desc,
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2012-2020 The Linux Foundation. All rights reserved.
|
* Copyright (c) 2012-2021 The Linux Foundation. All rights reserved.
|
||||||
*
|
*
|
||||||
* Permission to use, copy, modify, and/or distribute this software for
|
* Permission to use, copy, modify, and/or distribute this software for
|
||||||
* any purpose with or without fee is hereby granted, provided that the
|
* any purpose with or without fee is hereby granted, provided that the
|
||||||
@@ -317,6 +317,8 @@ struct pe_session {
|
|||||||
uint32_t lim11hEnable;
|
uint32_t lim11hEnable;
|
||||||
|
|
||||||
int8_t maxTxPower; /* MIN (Regulatory and local power constraint) */
|
int8_t maxTxPower; /* MIN (Regulatory and local power constraint) */
|
||||||
|
int8_t min_11h_pwr;
|
||||||
|
int8_t max_11h_pwr;
|
||||||
enum QDF_OPMODE opmode;
|
enum QDF_OPMODE opmode;
|
||||||
int8_t txMgmtPower;
|
int8_t txMgmtPower;
|
||||||
bool is11Rconnection;
|
bool is11Rconnection;
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2011-2012, 2014-2020 The Linux Foundation. All rights reserved.
|
* Copyright (c) 2011-2012, 2014-2021 The Linux Foundation. All rights reserved.
|
||||||
*
|
*
|
||||||
* Permission to use, copy, modify, and/or distribute this software for
|
* Permission to use, copy, modify, and/or distribute this software for
|
||||||
* any purpose with or without fee is hereby granted, provided that the
|
* any purpose with or without fee is hereby granted, provided that the
|
||||||
@@ -108,6 +108,5 @@ QDF_STATUS rrm_reject_req(tpSirMacRadioMeasureReport *radiomes_report,
|
|||||||
uint8_t *num_report, uint8_t index,
|
uint8_t *num_report, uint8_t index,
|
||||||
uint8_t measurement_type);
|
uint8_t measurement_type);
|
||||||
|
|
||||||
void lim_update_rrm_capability(struct mac_context *mac_ctx,
|
void lim_update_rrm_capability(struct mac_context *mac_ctx);
|
||||||
struct join_req *join_req);
|
|
||||||
#endif
|
#endif
|
||||||
|
Fichier diff supprimé car celui-ci est trop grand
Voir la Diff
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2016-2020 The Linux Foundation. All rights reserved.
|
* Copyright (c) 2016-2021 The Linux Foundation. All rights reserved.
|
||||||
*
|
*
|
||||||
* Permission to use, copy, modify, and/or distribute this software for
|
* Permission to use, copy, modify, and/or distribute this software for
|
||||||
* any purpose with or without fee is hereby granted, provided that the
|
* any purpose with or without fee is hereby granted, provided that the
|
||||||
@@ -143,7 +143,7 @@ void lim_send_reassoc_req_with_ft_ies_mgmt_frame(struct mac_context *mac_ctx,
|
|||||||
LIM_BSS_CAPS_GET(WSM, pe_session->limReassocBssQosCaps);
|
LIM_BSS_CAPS_GET(WSM, pe_session->limReassocBssQosCaps);
|
||||||
|
|
||||||
if (pe_session->lim11hEnable &&
|
if (pe_session->lim11hEnable &&
|
||||||
pe_session->pLimReAssocReq->spectrumMgtIndicator == true) {
|
pe_session->spectrumMgtEnabled) {
|
||||||
power_caps_populated = true;
|
power_caps_populated = true;
|
||||||
|
|
||||||
populate_dot11f_power_caps(mac_ctx, &frm->PowerCaps,
|
populate_dot11f_power_caps(mac_ctx, &frm->PowerCaps,
|
||||||
@@ -609,7 +609,7 @@ void lim_send_reassoc_req_mgmt_frame(struct mac_context *mac,
|
|||||||
LIM_BSS_CAPS_GET(WSM, pe_session->limReassocBssQosCaps);
|
LIM_BSS_CAPS_GET(WSM, pe_session->limReassocBssQosCaps);
|
||||||
|
|
||||||
if (pe_session->lim11hEnable &&
|
if (pe_session->lim11hEnable &&
|
||||||
pe_session->pLimReAssocReq->spectrumMgtIndicator == true) {
|
pe_session->spectrumMgtEnabled) {
|
||||||
PowerCapsPopulated = true;
|
PowerCapsPopulated = true;
|
||||||
populate_dot11f_power_caps(mac, &frm->PowerCaps, LIM_REASSOC,
|
populate_dot11f_power_caps(mac, &frm->PowerCaps, LIM_REASSOC,
|
||||||
pe_session);
|
pe_session);
|
||||||
|
@@ -2155,7 +2155,7 @@ lim_send_assoc_req_mgmt_frame(struct mac_context *mac_ctx,
|
|||||||
LIM_BSS_CAPS_GET(WSM, pe_session->limCurrentBssQosCaps);
|
LIM_BSS_CAPS_GET(WSM, pe_session->limCurrentBssQosCaps);
|
||||||
|
|
||||||
if (pe_session->lim11hEnable &&
|
if (pe_session->lim11hEnable &&
|
||||||
pe_session->lim_join_req->spectrumMgtIndicator == true) {
|
pe_session->spectrumMgtEnabled == true) {
|
||||||
power_caps = true;
|
power_caps = true;
|
||||||
|
|
||||||
populate_dot11f_power_caps(mac_ctx, &frm->PowerCaps,
|
populate_dot11f_power_caps(mac_ctx, &frm->PowerCaps,
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2011-2020 The Linux Foundation. All rights reserved.
|
* Copyright (c) 2011-2021 The Linux Foundation. All rights reserved.
|
||||||
*
|
*
|
||||||
* Permission to use, copy, modify, and/or distribute this software for
|
* Permission to use, copy, modify, and/or distribute this software for
|
||||||
* any purpose with or without fee is hereby granted, provided that the
|
* any purpose with or without fee is hereby granted, provided that the
|
||||||
@@ -475,20 +475,6 @@ uint8_t lim_is_sme_join_req_valid(struct mac_context *mac,
|
|||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
Reject Join Req if the Self Mac Address and
|
|
||||||
the Ap's Mac Address is same
|
|
||||||
*/
|
|
||||||
if (!qdf_mem_cmp((uint8_t *)pJoinReq->self_mac_addr,
|
|
||||||
(uint8_t *)pJoinReq->bssDescription.bssId,
|
|
||||||
(uint8_t) (sizeof(tSirMacAddr)))) {
|
|
||||||
/* Log the event */
|
|
||||||
pe_err("received SME_JOIN_REQ with Self Mac and BSSID Same");
|
|
||||||
|
|
||||||
valid = false;
|
|
||||||
goto end;
|
|
||||||
}
|
|
||||||
|
|
||||||
end:
|
end:
|
||||||
return valid;
|
return valid;
|
||||||
} /*** end lim_is_sme_join_req_valid() ***/
|
} /*** end lim_is_sme_join_req_valid() ***/
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2012-2020 The Linux Foundation. All rights reserved.
|
* Copyright (c) 2012-2021 The Linux Foundation. All rights reserved.
|
||||||
*
|
*
|
||||||
* Permission to use, copy, modify, and/or distribute this software for
|
* Permission to use, copy, modify, and/or distribute this software for
|
||||||
* any purpose with or without fee is hereby granted, provided that the
|
* any purpose with or without fee is hereby granted, provided that the
|
||||||
@@ -1578,8 +1578,7 @@ void rrm_cleanup(struct mac_context *mac, uint8_t idx)
|
|||||||
*
|
*
|
||||||
* Return: None
|
* Return: None
|
||||||
*/
|
*/
|
||||||
void lim_update_rrm_capability(struct mac_context *mac_ctx,
|
void lim_update_rrm_capability(struct mac_context *mac_ctx)
|
||||||
struct join_req *join_req)
|
|
||||||
{
|
{
|
||||||
mac_ctx->rrm.rrmPEContext.rrmEnable =
|
mac_ctx->rrm.rrmPEContext.rrmEnable =
|
||||||
mac_ctx->rrm.rrmConfig.rrm_enabled;
|
mac_ctx->rrm.rrmConfig.rrm_enabled;
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2012-2020 The Linux Foundation. All rights reserved.
|
* Copyright (c) 2012-2021 The Linux Foundation. All rights reserved.
|
||||||
*
|
*
|
||||||
* Permission to use, copy, modify, and/or distribute this software for
|
* Permission to use, copy, modify, and/or distribute this software for
|
||||||
* any purpose with or without fee is hereby granted, provided that the
|
* any purpose with or without fee is hereby granted, provided that the
|
||||||
@@ -1452,18 +1452,8 @@ populate_dot11f_power_caps(struct mac_context *mac,
|
|||||||
{
|
{
|
||||||
struct vdev_mlme_obj *mlme_obj;
|
struct vdev_mlme_obj *mlme_obj;
|
||||||
|
|
||||||
if (nAssocType == LIM_REASSOC) {
|
pCaps->minTxPower = pe_session->min_11h_pwr;
|
||||||
pCaps->minTxPower =
|
pCaps->maxTxPower = pe_session->maxTxPower;
|
||||||
pe_session->pLimReAssocReq->powerCap.minTxPower;
|
|
||||||
pCaps->maxTxPower =
|
|
||||||
pe_session->pLimReAssocReq->powerCap.maxTxPower;
|
|
||||||
} else {
|
|
||||||
pCaps->minTxPower =
|
|
||||||
pe_session->lim_join_req->powerCap.minTxPower;
|
|
||||||
pCaps->maxTxPower =
|
|
||||||
pe_session->lim_join_req->powerCap.maxTxPower;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Use firmware updated max tx power if non zero */
|
/* Use firmware updated max tx power if non zero */
|
||||||
mlme_obj = wlan_vdev_mlme_get_cmpt_obj(pe_session->vdev);
|
mlme_obj = wlan_vdev_mlme_get_cmpt_obj(pe_session->vdev);
|
||||||
@@ -6311,6 +6301,69 @@ wlan_get_parsed_bss_description_ies(struct mac_context *mac_ctx,
|
|||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int8_t wlan_get_cfg_max_tx_power(struct mac_context *mac, uint32_t ch_freq)
|
||||||
|
{
|
||||||
|
uint32_t cfg_length = 0;
|
||||||
|
int8_t maxTxPwr = 0;
|
||||||
|
tSirMacChanInfo *pCountryInfo = NULL;
|
||||||
|
uint8_t count = 0;
|
||||||
|
uint8_t maxChannels;
|
||||||
|
int32_t rem_length = 0;
|
||||||
|
|
||||||
|
if (WLAN_REG_IS_5GHZ_CH_FREQ(ch_freq)) {
|
||||||
|
cfg_length = mac->mlme_cfg->power.max_tx_power_5.len;
|
||||||
|
} else if (WLAN_REG_IS_24GHZ_CH_FREQ(ch_freq)) {
|
||||||
|
cfg_length = mac->mlme_cfg->power.max_tx_power_24.len;
|
||||||
|
|
||||||
|
} else if (wlan_reg_is_6ghz_chan_freq(ch_freq)) {
|
||||||
|
return wlan_reg_get_channel_reg_power_for_freq(mac->pdev,
|
||||||
|
ch_freq);
|
||||||
|
} else {
|
||||||
|
return maxTxPwr;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!cfg_length)
|
||||||
|
goto error;
|
||||||
|
|
||||||
|
pCountryInfo = qdf_mem_malloc(cfg_length);
|
||||||
|
if (!pCountryInfo)
|
||||||
|
goto error;
|
||||||
|
|
||||||
|
if (WLAN_REG_IS_5GHZ_CH_FREQ(ch_freq)) {
|
||||||
|
if (cfg_length > CFG_MAX_TX_POWER_5_LEN)
|
||||||
|
goto error;
|
||||||
|
qdf_mem_copy(pCountryInfo,
|
||||||
|
mac->mlme_cfg->power.max_tx_power_5.data,
|
||||||
|
cfg_length);
|
||||||
|
} else if (WLAN_REG_IS_24GHZ_CH_FREQ(ch_freq)) {
|
||||||
|
if (cfg_length > CFG_MAX_TX_POWER_2_4_LEN)
|
||||||
|
goto error;
|
||||||
|
qdf_mem_copy(pCountryInfo,
|
||||||
|
mac->mlme_cfg->power.max_tx_power_24.data,
|
||||||
|
cfg_length);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Identify the channel and maxtxpower */
|
||||||
|
rem_length = cfg_length;
|
||||||
|
while (rem_length >= (sizeof(tSirMacChanInfo))) {
|
||||||
|
maxChannels = pCountryInfo[count].numChannels;
|
||||||
|
maxTxPwr = pCountryInfo[count].maxTxPower;
|
||||||
|
count++;
|
||||||
|
rem_length -= (sizeof(tSirMacChanInfo));
|
||||||
|
|
||||||
|
if (ch_freq >= pCountryInfo[count].first_freq &&
|
||||||
|
ch_freq < (pCountryInfo[count].first_freq + maxChannels)) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
error:
|
||||||
|
if (pCountryInfo)
|
||||||
|
qdf_mem_free(pCountryInfo);
|
||||||
|
|
||||||
|
return maxTxPwr;
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef FEATURE_WLAN_ESE
|
#ifdef FEATURE_WLAN_ESE
|
||||||
static void wlan_fill_qbss_load_param(tDot11fBeaconIEs *bcn_ies,
|
static void wlan_fill_qbss_load_param(tDot11fBeaconIEs *bcn_ies,
|
||||||
struct bss_description *bss_desc)
|
struct bss_description *bss_desc)
|
||||||
|
@@ -13153,65 +13153,7 @@ QDF_STATUS csr_get_cfg_valid_channels(struct mac_context *mac,
|
|||||||
|
|
||||||
int8_t csr_get_cfg_max_tx_power(struct mac_context *mac, uint32_t ch_freq)
|
int8_t csr_get_cfg_max_tx_power(struct mac_context *mac, uint32_t ch_freq)
|
||||||
{
|
{
|
||||||
uint32_t cfg_length = 0;
|
return wlan_get_cfg_max_tx_power(mac, ch_freq);
|
||||||
int8_t maxTxPwr = 0;
|
|
||||||
tSirMacChanInfo *pCountryInfo = NULL;
|
|
||||||
uint8_t count = 0;
|
|
||||||
uint8_t maxChannels;
|
|
||||||
int32_t rem_length = 0;
|
|
||||||
|
|
||||||
if (WLAN_REG_IS_5GHZ_CH_FREQ(ch_freq)) {
|
|
||||||
cfg_length = mac->mlme_cfg->power.max_tx_power_5.len;
|
|
||||||
} else if (WLAN_REG_IS_24GHZ_CH_FREQ(ch_freq)) {
|
|
||||||
cfg_length = mac->mlme_cfg->power.max_tx_power_24.len;
|
|
||||||
|
|
||||||
} else if (wlan_reg_is_6ghz_chan_freq(ch_freq)) {
|
|
||||||
return wlan_reg_get_channel_reg_power_for_freq(mac->pdev,
|
|
||||||
ch_freq);
|
|
||||||
} else {
|
|
||||||
return maxTxPwr;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!cfg_length)
|
|
||||||
goto error;
|
|
||||||
|
|
||||||
pCountryInfo = qdf_mem_malloc(cfg_length);
|
|
||||||
if (!pCountryInfo)
|
|
||||||
goto error;
|
|
||||||
|
|
||||||
if (WLAN_REG_IS_5GHZ_CH_FREQ(ch_freq)) {
|
|
||||||
if (cfg_length > CFG_MAX_TX_POWER_5_LEN)
|
|
||||||
goto error;
|
|
||||||
qdf_mem_copy(pCountryInfo,
|
|
||||||
mac->mlme_cfg->power.max_tx_power_5.data,
|
|
||||||
cfg_length);
|
|
||||||
} else if (WLAN_REG_IS_24GHZ_CH_FREQ(ch_freq)) {
|
|
||||||
if (cfg_length > CFG_MAX_TX_POWER_2_4_LEN)
|
|
||||||
goto error;
|
|
||||||
qdf_mem_copy(pCountryInfo,
|
|
||||||
mac->mlme_cfg->power.max_tx_power_24.data,
|
|
||||||
cfg_length);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Identify the channel and maxtxpower */
|
|
||||||
rem_length = cfg_length;
|
|
||||||
while (rem_length >= (sizeof(tSirMacChanInfo))) {
|
|
||||||
maxChannels = pCountryInfo[count].numChannels;
|
|
||||||
maxTxPwr = pCountryInfo[count].maxTxPower;
|
|
||||||
count++;
|
|
||||||
rem_length -= (sizeof(tSirMacChanInfo));
|
|
||||||
|
|
||||||
if (ch_freq >= pCountryInfo[count].first_freq &&
|
|
||||||
ch_freq < (pCountryInfo[count].first_freq + maxChannels)) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
error:
|
|
||||||
if (pCountryInfo)
|
|
||||||
qdf_mem_free(pCountryInfo);
|
|
||||||
|
|
||||||
return maxTxPwr;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool csr_roam_is_channel_valid(struct mac_context *mac, uint32_t chan_freq)
|
bool csr_roam_is_channel_valid(struct mac_context *mac, uint32_t chan_freq)
|
||||||
@@ -14764,9 +14706,6 @@ QDF_STATUS csr_send_join_req_msg(struct mac_context *mac, uint32_t sessionId,
|
|||||||
uint32_t dot11mode = 0;
|
uint32_t dot11mode = 0;
|
||||||
uint8_t *wpaRsnIE = NULL;
|
uint8_t *wpaRsnIE = NULL;
|
||||||
struct join_req *csr_join_req;
|
struct join_req *csr_join_req;
|
||||||
tSirMacCapabilityInfo *pAP_capabilityInfo;
|
|
||||||
bool fTmp;
|
|
||||||
int8_t pwr_limit = 0;
|
|
||||||
struct ps_global_info *ps_global_info = &mac->sme.ps_global_info;
|
struct ps_global_info *ps_global_info = &mac->sme.ps_global_info;
|
||||||
struct ps_params *ps_param = &ps_global_info->ps_params[sessionId];
|
struct ps_params *ps_param = &ps_global_info->ps_params[sessionId];
|
||||||
tpCsrNeighborRoamControlInfo neigh_roam_info;
|
tpCsrNeighborRoamControlInfo neigh_roam_info;
|
||||||
@@ -14857,9 +14796,7 @@ QDF_STATUS csr_send_join_req_msg(struct mac_context *mac, uint32_t sessionId,
|
|||||||
} else {
|
} else {
|
||||||
csr_join_req->ssId.length = 0;
|
csr_join_req->ssId.length = 0;
|
||||||
}
|
}
|
||||||
qdf_mem_copy(&csr_join_req->self_mac_addr,
|
|
||||||
&pSession->self_mac_addr,
|
|
||||||
sizeof(tSirMacAddr));
|
|
||||||
sme_nofl_info("vdev-%d: Connecting to %.*s " QDF_MAC_ADDR_FMT
|
sme_nofl_info("vdev-%d: Connecting to %.*s " QDF_MAC_ADDR_FMT
|
||||||
" rssi: %d freq: %d akm %d cipher: uc %d mc %d, CC: %c%c",
|
" rssi: %d freq: %d akm %d cipher: uc %d mc %d, CC: %c%c",
|
||||||
sessionId, csr_join_req->ssId.length,
|
sessionId, csr_join_req->ssId.length,
|
||||||
@@ -14881,15 +14818,8 @@ QDF_STATUS csr_send_join_req_msg(struct mac_context *mac, uint32_t sessionId,
|
|||||||
|
|
||||||
csr_update_sae_single_pmk_ap_cap(mac, pBssDescription,
|
csr_update_sae_single_pmk_ap_cap(mac, pBssDescription,
|
||||||
sessionId, akm);
|
sessionId, akm);
|
||||||
|
|
||||||
csr_join_req->supported_nss_1x1 = pSession->supported_nss_1x1;
|
|
||||||
csr_join_req->dot11mode = (uint8_t)dot11mode;
|
csr_join_req->dot11mode = (uint8_t)dot11mode;
|
||||||
#ifdef FEATURE_WLAN_MCC_TO_SCC_SWITCH
|
|
||||||
csr_join_req->cc_switch_mode =
|
|
||||||
mac->roam.configParam.cc_switch_mode;
|
|
||||||
#endif
|
|
||||||
csr_join_req->wps_registration = pProfile->bWPSAssociation;
|
csr_join_req->wps_registration = pProfile->bWPSAssociation;
|
||||||
csr_join_req->cbMode = (uint8_t) pSession->bssParams.cbMode;
|
|
||||||
csr_join_req->force_24ghz_in_ht20 =
|
csr_join_req->force_24ghz_in_ht20 =
|
||||||
pProfile->force_24ghz_in_ht20;
|
pProfile->force_24ghz_in_ht20;
|
||||||
pSession->uapsd_mask = pProfile->uapsd_mask;
|
pSession->uapsd_mask = pProfile->uapsd_mask;
|
||||||
@@ -15151,10 +15081,6 @@ QDF_STATUS csr_send_join_req_msg(struct mac_context *mac, uint32_t sessionId,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!CSR_IS_11n_ALLOWED(pProfile->negotiatedUCEncryptionType))
|
|
||||||
csr_join_req->he_with_wep_tkip =
|
|
||||||
mac->roam.configParam.wep_tkip_in_he;
|
|
||||||
|
|
||||||
csr_join_req->UCEncryptionType =
|
csr_join_req->UCEncryptionType =
|
||||||
csr_translate_encrypt_type_to_ed_type
|
csr_translate_encrypt_type_to_ed_type
|
||||||
(pProfile->negotiatedUCEncryptionType);
|
(pProfile->negotiatedUCEncryptionType);
|
||||||
@@ -15247,45 +15173,11 @@ QDF_STATUS csr_send_join_req_msg(struct mac_context *mac, uint32_t sessionId,
|
|||||||
else
|
else
|
||||||
csr_join_req->isOSENConnection = false;
|
csr_join_req->isOSENConnection = false;
|
||||||
|
|
||||||
pAP_capabilityInfo =
|
|
||||||
(tSirMacCapabilityInfo *)
|
|
||||||
&pBssDescription->capabilityInfo;
|
|
||||||
/*
|
|
||||||
* tell the target AP my 11H capability only if both AP and STA
|
|
||||||
* support
|
|
||||||
* 11H and the channel being used is 11a
|
|
||||||
*/
|
|
||||||
if (csr_is11h_supported(mac) && pAP_capabilityInfo->spectrumMgt
|
|
||||||
&& eSIR_11A_NW_TYPE == pBssDescription->nwType) {
|
|
||||||
fTmp = true;
|
|
||||||
} else
|
|
||||||
fTmp = false;
|
|
||||||
|
|
||||||
csr_join_req->spectrumMgtIndicator = fTmp;
|
|
||||||
csr_join_req->powerCap.minTxPower = MIN_TX_PWR_CAP;
|
|
||||||
/*
|
|
||||||
* This is required for 11k test VoWiFi Ent: Test 2.
|
|
||||||
* We need the power capabilities for Assoc Req.
|
|
||||||
* This macro is provided by the halPhyCfg.h. We pick our
|
|
||||||
* max and min capability by the halPhy provided macros
|
|
||||||
* Any change in this power cap IE should also be done
|
|
||||||
* in csr_update_driver_assoc_ies() which would send
|
|
||||||
* assoc IE's to FW which is used for LFR3 roaming
|
|
||||||
* ie. used in reassociation requests from FW.
|
|
||||||
*/
|
|
||||||
pwr_limit = csr_get_cfg_max_tx_power(mac, bss_freq);
|
|
||||||
if (0 != pwr_limit && pwr_limit < MAX_TX_PWR_CAP)
|
|
||||||
csr_join_req->powerCap.maxTxPower = pwr_limit;
|
|
||||||
else
|
|
||||||
csr_join_req->powerCap.maxTxPower = MAX_TX_PWR_CAP;
|
|
||||||
|
|
||||||
csr_add_supported_5Ghz_channels(mac,
|
csr_add_supported_5Ghz_channels(mac,
|
||||||
csr_join_req->supportedChannels.channelList,
|
csr_join_req->supportedChannels.channelList,
|
||||||
&csr_join_req->supportedChannels.numChnl,
|
&csr_join_req->supportedChannels.numChnl,
|
||||||
false);
|
false);
|
||||||
/* Enable UAPSD only if TWT is not supported */
|
|
||||||
if (!csr_enable_twt(mac, pIes))
|
|
||||||
csr_join_req->uapsdPerAcBitmask = pProfile->uapsd_mask;
|
|
||||||
/* Move the entire BssDescription into the join request. */
|
/* Move the entire BssDescription into the join request. */
|
||||||
qdf_mem_copy(&csr_join_req->bssDescription, pBssDescription,
|
qdf_mem_copy(&csr_join_req->bssDescription, pBssDescription,
|
||||||
pBssDescription->length +
|
pBssDescription->length +
|
||||||
@@ -15339,8 +15231,6 @@ QDF_STATUS csr_send_join_req_msg(struct mac_context *mac, uint32_t sessionId,
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
csr_join_req->enable_session_twt_support = csr_enable_twt(mac,
|
|
||||||
pIes);
|
|
||||||
status = umac_send_mb_message_to_mac(csr_join_req);
|
status = umac_send_mb_message_to_mac(csr_join_req);
|
||||||
if (!QDF_IS_STATUS_SUCCESS(status)) {
|
if (!QDF_IS_STATUS_SUCCESS(status)) {
|
||||||
/*
|
/*
|
||||||
|
Référencer dans un nouveau ticket
Bloquer un utilisateur