qcacld-3.0: Replace pSessionEntry with pe_session
Per the Linux coding style both mixed-case names and so-called Hungarian notation are frowned upon. There are multiple variations of the identifier "pSessionEntry" currently in use, so replace them with pe_session everywhere they occur in the driver. Change-Id: I6cc37504bf9e8821c0e1c3d99e4f97a57aaba24c CRs-Fixed: 2360166
This commit is contained in:
@@ -247,7 +247,7 @@ enum wifi_logging_ring_id {
|
|||||||
/* Change channel generic scheme */
|
/* Change channel generic scheme */
|
||||||
typedef void (*CHANGE_CHANNEL_CALLBACK)(tpAniSirGlobal mac, QDF_STATUS status,
|
typedef void (*CHANGE_CHANNEL_CALLBACK)(tpAniSirGlobal mac, QDF_STATUS status,
|
||||||
uint32_t *data,
|
uint32_t *data,
|
||||||
struct pe_session *psessionEntry);
|
struct pe_session *pe_session);
|
||||||
|
|
||||||
/* / LIM global definitions */
|
/* / LIM global definitions */
|
||||||
typedef struct sAniSirLimIbss {
|
typedef struct sAniSirLimIbss {
|
||||||
@@ -711,7 +711,7 @@ typedef struct sAniSirLim {
|
|||||||
uint32_t mgmtFrameSessionId;
|
uint32_t mgmtFrameSessionId;
|
||||||
uint32_t tdls_frm_session_id;
|
uint32_t tdls_frm_session_id;
|
||||||
|
|
||||||
struct pe_session *pSessionEntry;
|
struct pe_session *pe_session;
|
||||||
uint8_t reAssocRetryAttempt;
|
uint8_t reAssocRetryAttempt;
|
||||||
tLimDisassocDeauthCnfReq limDisassocDeauthCnfReq;
|
tLimDisassocDeauthCnfReq limDisassocDeauthCnfReq;
|
||||||
uint8_t deferredMsgCnt;
|
uint8_t deferredMsgCnt;
|
||||||
|
|||||||
@@ -641,7 +641,7 @@ int8_t cfg_get_regulatory_max_transmit_power(tpAniSirGlobal mac,
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
QDF_STATUS cfg_get_capability_info(tpAniSirGlobal mac, uint16_t *pCap,
|
QDF_STATUS cfg_get_capability_info(tpAniSirGlobal mac, uint16_t *pCap,
|
||||||
struct pe_session *sessionEntry)
|
struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
uint32_t val = 0;
|
uint32_t val = 0;
|
||||||
tpSirMacCapabilityInfo pCapInfo;
|
tpSirMacCapabilityInfo pCapInfo;
|
||||||
@@ -649,20 +649,20 @@ QDF_STATUS cfg_get_capability_info(tpAniSirGlobal mac, uint16_t *pCap,
|
|||||||
*pCap = 0;
|
*pCap = 0;
|
||||||
pCapInfo = (tpSirMacCapabilityInfo) pCap;
|
pCapInfo = (tpSirMacCapabilityInfo) pCap;
|
||||||
|
|
||||||
if (LIM_IS_IBSS_ROLE(sessionEntry))
|
if (LIM_IS_IBSS_ROLE(pe_session))
|
||||||
pCapInfo->ibss = 1; /* IBSS bit */
|
pCapInfo->ibss = 1; /* IBSS bit */
|
||||||
else if (LIM_IS_AP_ROLE(sessionEntry) ||
|
else if (LIM_IS_AP_ROLE(pe_session) ||
|
||||||
LIM_IS_STA_ROLE(sessionEntry))
|
LIM_IS_STA_ROLE(pe_session))
|
||||||
pCapInfo->ess = 1; /* ESS bit */
|
pCapInfo->ess = 1; /* ESS bit */
|
||||||
else if (LIM_IS_P2P_DEVICE_ROLE(sessionEntry) ||
|
else if (LIM_IS_P2P_DEVICE_ROLE(pe_session) ||
|
||||||
LIM_IS_NDI_ROLE(sessionEntry)) {
|
LIM_IS_NDI_ROLE(pe_session)) {
|
||||||
pCapInfo->ess = 0;
|
pCapInfo->ess = 0;
|
||||||
pCapInfo->ibss = 0;
|
pCapInfo->ibss = 0;
|
||||||
} else
|
} else
|
||||||
pe_warn("can't get capability, role is UNKNOWN!!");
|
pe_warn("can't get capability, role is UNKNOWN!!");
|
||||||
|
|
||||||
if (LIM_IS_AP_ROLE(sessionEntry)) {
|
if (LIM_IS_AP_ROLE(pe_session)) {
|
||||||
val = sessionEntry->privacy;
|
val = pe_session->privacy;
|
||||||
} else {
|
} else {
|
||||||
/* PRIVACY bit */
|
/* PRIVACY bit */
|
||||||
val = mac->mlme_cfg->wep_params.is_privacy_enabled;
|
val = mac->mlme_cfg->wep_params.is_privacy_enabled;
|
||||||
@@ -683,12 +683,12 @@ QDF_STATUS cfg_get_capability_info(tpAniSirGlobal mac, uint16_t *pCap,
|
|||||||
/* If STA/AP operating in 11B mode, don't set rest of the
|
/* If STA/AP operating in 11B mode, don't set rest of the
|
||||||
* capability info bits.
|
* capability info bits.
|
||||||
*/
|
*/
|
||||||
if (sessionEntry->dot11mode == WNI_CFG_DOT11_MODE_11B)
|
if (pe_session->dot11mode == WNI_CFG_DOT11_MODE_11B)
|
||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
|
|
||||||
/* Short slot time bit */
|
/* Short slot time bit */
|
||||||
if (LIM_IS_AP_ROLE(sessionEntry)) {
|
if (LIM_IS_AP_ROLE(pe_session)) {
|
||||||
pCapInfo->shortSlotTime = sessionEntry->shortSlotTimeSupported;
|
pCapInfo->shortSlotTime = pe_session->shortSlotTimeSupported;
|
||||||
} else {
|
} else {
|
||||||
/* When in STA mode, we need to check if short slot is
|
/* When in STA mode, we need to check if short slot is
|
||||||
* enabled as well as check if the current operating
|
* enabled as well as check if the current operating
|
||||||
@@ -704,12 +704,12 @@ QDF_STATUS cfg_get_capability_info(tpAniSirGlobal mac, uint16_t *pCap,
|
|||||||
*/
|
*/
|
||||||
if (mac->mlme_cfg->feature_flags.enable_short_slot_time_11g) {
|
if (mac->mlme_cfg->feature_flags.enable_short_slot_time_11g) {
|
||||||
pCapInfo->shortSlotTime =
|
pCapInfo->shortSlotTime =
|
||||||
sessionEntry->shortSlotTimeSupported;
|
pe_session->shortSlotTimeSupported;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Spectrum Management bit */
|
/* Spectrum Management bit */
|
||||||
if (!LIM_IS_IBSS_ROLE(sessionEntry) && sessionEntry->lim11hEnable) {
|
if (!LIM_IS_IBSS_ROLE(pe_session) && pe_session->lim11hEnable) {
|
||||||
if (wlan_cfg_get_int(mac, WNI_CFG_11H_ENABLED, &val) !=
|
if (wlan_cfg_get_int(mac, WNI_CFG_11H_ENABLED, &val) !=
|
||||||
QDF_STATUS_SUCCESS) {
|
QDF_STATUS_SUCCESS) {
|
||||||
pe_err("cfg get WNI_CFG_11H_ENABLED failed");
|
pe_err("cfg get WNI_CFG_11H_ENABLED failed");
|
||||||
|
|||||||
@@ -97,7 +97,7 @@ int8_t cfg_get_regulatory_max_transmit_power(tpAniSirGlobal mac,
|
|||||||
|
|
||||||
/* / Get capability info */
|
/* / Get capability info */
|
||||||
QDF_STATUS cfg_get_capability_info(tpAniSirGlobal mac, uint16_t *pCap,
|
QDF_STATUS cfg_get_capability_info(tpAniSirGlobal mac, uint16_t *pCap,
|
||||||
struct pe_session *psessionEntry);
|
struct pe_session *pe_session);
|
||||||
|
|
||||||
/* / Set capability info */
|
/* / Set capability info */
|
||||||
void cfg_set_capability_info(tpAniSirGlobal, uint16_t);
|
void cfg_set_capability_info(tpAniSirGlobal, uint16_t);
|
||||||
|
|||||||
@@ -667,7 +667,7 @@ sir_convert_meas_req_frame2_struct(struct mac_context *, uint8_t *,
|
|||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
populate_dot11f_capabilities(tpAniSirGlobal mac,
|
populate_dot11f_capabilities(tpAniSirGlobal mac,
|
||||||
tDot11fFfCapabilities *pDot11f,
|
tDot11fFfCapabilities *pDot11f,
|
||||||
struct pe_session *psessionEntry);
|
struct pe_session *pe_session);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Populated a tDot11fFfCapabilities
|
* \brief Populated a tDot11fFfCapabilities
|
||||||
@@ -694,13 +694,13 @@ QDF_STATUS
|
|||||||
populate_dot11f_capabilities2(tpAniSirGlobal mac,
|
populate_dot11f_capabilities2(tpAniSirGlobal mac,
|
||||||
tDot11fFfCapabilities *pDot11f,
|
tDot11fFfCapabilities *pDot11f,
|
||||||
struct sDphHashNode *pSta,
|
struct sDphHashNode *pSta,
|
||||||
struct pe_session *psessionEntry);
|
struct pe_session *pe_session);
|
||||||
|
|
||||||
/* / Populate a tDot11fIEChanSwitchAnn */
|
/* / Populate a tDot11fIEChanSwitchAnn */
|
||||||
void
|
void
|
||||||
populate_dot11f_chan_switch_ann(tpAniSirGlobal mac,
|
populate_dot11f_chan_switch_ann(tpAniSirGlobal mac,
|
||||||
tDot11fIEChanSwitchAnn *pDot11f,
|
tDot11fIEChanSwitchAnn *pDot11f,
|
||||||
struct pe_session *psessionEntry);
|
struct pe_session *pe_session);
|
||||||
|
|
||||||
void
|
void
|
||||||
populate_dot_11_f_ext_chann_switch_ann(tpAniSirGlobal mac_ptr,
|
populate_dot_11_f_ext_chann_switch_ann(tpAniSirGlobal mac_ptr,
|
||||||
@@ -711,12 +711,12 @@ populate_dot_11_f_ext_chann_switch_ann(tpAniSirGlobal mac_ptr,
|
|||||||
void
|
void
|
||||||
populate_dot11f_chan_switch_wrapper(tpAniSirGlobal mac,
|
populate_dot11f_chan_switch_wrapper(tpAniSirGlobal mac,
|
||||||
tDot11fIEChannelSwitchWrapper *pDot11f,
|
tDot11fIEChannelSwitchWrapper *pDot11f,
|
||||||
struct pe_session *psessionEntry);
|
struct pe_session *pe_session);
|
||||||
|
|
||||||
/* / Populate a tDot11fIECountry */
|
/* / Populate a tDot11fIECountry */
|
||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
populate_dot11f_country(tpAniSirGlobal mac,
|
populate_dot11f_country(tpAniSirGlobal mac,
|
||||||
tDot11fIECountry *pDot11f, struct pe_session *psessionEntry);
|
tDot11fIECountry *pDot11f, struct pe_session *pe_session);
|
||||||
|
|
||||||
/* Populated a populate_dot11f_ds_params */
|
/* Populated a populate_dot11f_ds_params */
|
||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
@@ -727,16 +727,16 @@ populate_dot11f_ds_params(tpAniSirGlobal mac,
|
|||||||
void
|
void
|
||||||
populate_dot11f_edca_param_set(tpAniSirGlobal mac,
|
populate_dot11f_edca_param_set(tpAniSirGlobal mac,
|
||||||
tDot11fIEEDCAParamSet *pDot11f,
|
tDot11fIEEDCAParamSet *pDot11f,
|
||||||
struct pe_session *psessionEntry);
|
struct pe_session *pe_session);
|
||||||
|
|
||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
populate_dot11f_erp_info(tpAniSirGlobal mac,
|
populate_dot11f_erp_info(tpAniSirGlobal mac,
|
||||||
tDot11fIEERPInfo *pDot11f, struct pe_session *psessionEntry);
|
tDot11fIEERPInfo *pDot11f, struct pe_session *pe_session);
|
||||||
|
|
||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
populate_dot11f_ext_supp_rates(tpAniSirGlobal mac,
|
populate_dot11f_ext_supp_rates(tpAniSirGlobal mac,
|
||||||
uint8_t nChannelNum, tDot11fIEExtSuppRates *pDot11f,
|
uint8_t nChannelNum, tDot11fIEExtSuppRates *pDot11f,
|
||||||
struct pe_session *psessionEntry);
|
struct pe_session *pe_session);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* populate_dot11f_beacon_report() - Populate the Beacon Report IE
|
* populate_dot11f_beacon_report() - Populate the Beacon Report IE
|
||||||
@@ -776,15 +776,15 @@ populate_dot11f_ext_supp_rates1(tpAniSirGlobal mac,
|
|||||||
|
|
||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
populate_dot11f_ht_caps(tpAniSirGlobal mac,
|
populate_dot11f_ht_caps(tpAniSirGlobal mac,
|
||||||
struct pe_session *psessionEntry, tDot11fIEHTCaps *pDot11f);
|
struct pe_session *pe_session, tDot11fIEHTCaps *pDot11f);
|
||||||
|
|
||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
populate_dot11f_ht_info(tpAniSirGlobal mac,
|
populate_dot11f_ht_info(tpAniSirGlobal mac,
|
||||||
tDot11fIEHTInfo *pDot11f, struct pe_session *psessionEntry);
|
tDot11fIEHTInfo *pDot11f, struct pe_session *pe_session);
|
||||||
|
|
||||||
void populate_dot11f_ibss_params(tpAniSirGlobal mac,
|
void populate_dot11f_ibss_params(tpAniSirGlobal mac,
|
||||||
tDot11fIEIBSSParams *pDot11f,
|
tDot11fIEIBSSParams *pDot11f,
|
||||||
struct pe_session *psessionEntry);
|
struct pe_session *pe_session);
|
||||||
|
|
||||||
#ifdef ANI_SUPPORT_11H
|
#ifdef ANI_SUPPORT_11H
|
||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
@@ -809,7 +809,7 @@ populate_dot11f_measurement_report2(tpAniSirGlobal mac,
|
|||||||
void
|
void
|
||||||
populate_dot11f_power_caps(tpAniSirGlobal mac,
|
populate_dot11f_power_caps(tpAniSirGlobal mac,
|
||||||
tDot11fIEPowerCaps *pCaps,
|
tDot11fIEPowerCaps *pCaps,
|
||||||
uint8_t nAssocType, struct pe_session *psessionEntry);
|
uint8_t nAssocType, struct pe_session *pe_session);
|
||||||
|
|
||||||
/* / Populate a tDot11fIEPowerConstraints */
|
/* / Populate a tDot11fIEPowerConstraints */
|
||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
@@ -819,7 +819,7 @@ populate_dot11f_power_constraints(tpAniSirGlobal mac,
|
|||||||
void
|
void
|
||||||
populate_dot11f_qos_caps_ap(tpAniSirGlobal mac,
|
populate_dot11f_qos_caps_ap(tpAniSirGlobal mac,
|
||||||
tDot11fIEQOSCapsAp *pDot11f,
|
tDot11fIEQOSCapsAp *pDot11f,
|
||||||
struct pe_session *psessionEntry);
|
struct pe_session *pe_session);
|
||||||
|
|
||||||
void
|
void
|
||||||
populate_dot11f_qos_caps_station(tpAniSirGlobal mac, struct pe_session *session,
|
populate_dot11f_qos_caps_station(tpAniSirGlobal mac, struct pe_session *session,
|
||||||
@@ -874,7 +874,7 @@ populate_dot11f_schedule(tSirMacScheduleIE *pSchedule,
|
|||||||
void
|
void
|
||||||
populate_dot11f_supp_channels(tpAniSirGlobal mac,
|
populate_dot11f_supp_channels(tpAniSirGlobal mac,
|
||||||
tDot11fIESuppChannels *pDot11f,
|
tDot11fIESuppChannels *pDot11f,
|
||||||
uint8_t nAssocType, struct pe_session *psessionEntry);
|
uint8_t nAssocType, struct pe_session *pe_session);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Populated a tDot11fIESuppRates
|
* \brief Populated a tDot11fIESuppRates
|
||||||
@@ -912,7 +912,7 @@ populate_dot11f_rates_tdls(tpAniSirGlobal p_mac,
|
|||||||
|
|
||||||
QDF_STATUS populate_dot11f_tpc_report(tpAniSirGlobal mac,
|
QDF_STATUS populate_dot11f_tpc_report(tpAniSirGlobal mac,
|
||||||
tDot11fIETPCReport *pDot11f,
|
tDot11fIETPCReport *pDot11f,
|
||||||
struct pe_session *psessionEntry);
|
struct pe_session *pe_session);
|
||||||
|
|
||||||
/* / Populate a tDot11FfTSInfo */
|
/* / Populate a tDot11FfTSInfo */
|
||||||
void populate_dot11f_ts_info(tSirMacTSInfo *pInfo, tDot11fFfTSInfo *pDot11f);
|
void populate_dot11f_ts_info(tSirMacTSInfo *pInfo, tDot11fFfTSInfo *pDot11f);
|
||||||
@@ -920,7 +920,7 @@ void populate_dot11f_ts_info(tSirMacTSInfo *pInfo, tDot11fFfTSInfo *pDot11f);
|
|||||||
void populate_dot11f_wmm(tpAniSirGlobal mac,
|
void populate_dot11f_wmm(tpAniSirGlobal mac,
|
||||||
tDot11fIEWMMInfoAp *pInfo,
|
tDot11fIEWMMInfoAp *pInfo,
|
||||||
tDot11fIEWMMParams *pParams,
|
tDot11fIEWMMParams *pParams,
|
||||||
tDot11fIEWMMCaps *pCaps, struct pe_session *psessionEntry);
|
tDot11fIEWMMCaps *pCaps, struct pe_session *pe_session);
|
||||||
|
|
||||||
void populate_dot11f_wmm_caps(tDot11fIEWMMCaps *pCaps);
|
void populate_dot11f_wmm_caps(tDot11fIEWMMCaps *pCaps);
|
||||||
|
|
||||||
@@ -940,7 +940,7 @@ void populate_dot11_tsrsie(tpAniSirGlobal mac,
|
|||||||
uint8_t rate_length);
|
uint8_t rate_length);
|
||||||
void populate_dot11f_re_assoc_tspec(tpAniSirGlobal mac,
|
void populate_dot11f_re_assoc_tspec(tpAniSirGlobal mac,
|
||||||
tDot11fReAssocRequest *pReassoc,
|
tDot11fReAssocRequest *pReassoc,
|
||||||
struct pe_session *psessionEntry);
|
struct pe_session *pe_session);
|
||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
sir_beacon_ie_ese_bcn_report(tpAniSirGlobal mac,
|
sir_beacon_ie_ese_bcn_report(tpAniSirGlobal mac,
|
||||||
uint8_t *pPayload, const uint32_t payloadLength,
|
uint8_t *pPayload, const uint32_t payloadLength,
|
||||||
@@ -963,15 +963,15 @@ void ese_populate_wmm_tspec(tSirMacTspecIE *source, ese_wmm_tspec_ie *dest);
|
|||||||
|
|
||||||
void populate_dot11f_wmm_info_ap(tpAniSirGlobal mac,
|
void populate_dot11f_wmm_info_ap(tpAniSirGlobal mac,
|
||||||
tDot11fIEWMMInfoAp *pInfo,
|
tDot11fIEWMMInfoAp *pInfo,
|
||||||
struct pe_session *psessionEntry);
|
struct pe_session *pe_session);
|
||||||
|
|
||||||
void populate_dot11f_wmm_info_station_per_session(tpAniSirGlobal mac,
|
void populate_dot11f_wmm_info_station_per_session(tpAniSirGlobal mac,
|
||||||
struct pe_session *psessionEntry,
|
struct pe_session *pe_session,
|
||||||
tDot11fIEWMMInfoStation *pInfo);
|
tDot11fIEWMMInfoStation *pInfo);
|
||||||
|
|
||||||
void populate_dot11f_wmm_params(tpAniSirGlobal mac,
|
void populate_dot11f_wmm_params(tpAniSirGlobal mac,
|
||||||
tDot11fIEWMMParams *pParams,
|
tDot11fIEWMMParams *pParams,
|
||||||
struct pe_session *psessionEntry);
|
struct pe_session *pe_session);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Populate a tDot11fIEWMMSchedule
|
* \brief Populate a tDot11fIEWMMSchedule
|
||||||
@@ -1021,13 +1021,13 @@ QDF_STATUS de_populate_dot11f_wsc_registrar_info(tpAniSirGlobal mac,
|
|||||||
|
|
||||||
QDF_STATUS populate_dot11f_probe_res_wpsi_es(tpAniSirGlobal mac,
|
QDF_STATUS populate_dot11f_probe_res_wpsi_es(tpAniSirGlobal mac,
|
||||||
tDot11fIEWscProbeRes *pDot11f,
|
tDot11fIEWscProbeRes *pDot11f,
|
||||||
struct pe_session *psessionEntry);
|
struct pe_session *pe_session);
|
||||||
QDF_STATUS populate_dot11f_assoc_res_wpsi_es(tpAniSirGlobal mac,
|
QDF_STATUS populate_dot11f_assoc_res_wpsi_es(tpAniSirGlobal mac,
|
||||||
tDot11fIEWscAssocRes *pDot11f,
|
tDot11fIEWscAssocRes *pDot11f,
|
||||||
struct pe_session *psessionEntry);
|
struct pe_session *pe_session);
|
||||||
QDF_STATUS populate_dot11f_beacon_wpsi_es(tpAniSirGlobal mac,
|
QDF_STATUS populate_dot11f_beacon_wpsi_es(tpAniSirGlobal mac,
|
||||||
tDot11fIEWscBeacon *pDot11f,
|
tDot11fIEWscBeacon *pDot11f,
|
||||||
struct pe_session *psessionEntry);
|
struct pe_session *pe_session);
|
||||||
|
|
||||||
QDF_STATUS populate_dot11f_wsc_in_probe_res(tpAniSirGlobal mac,
|
QDF_STATUS populate_dot11f_wsc_in_probe_res(tpAniSirGlobal mac,
|
||||||
tDot11fIEWscProbeRes *pDot11f);
|
tDot11fIEWscProbeRes *pDot11f);
|
||||||
@@ -1057,7 +1057,7 @@ QDF_STATUS populate_dot11f_wfatpc(tpAniSirGlobal mac,
|
|||||||
|
|
||||||
QDF_STATUS populate_dot11f_rrm_ie(tpAniSirGlobal mac,
|
QDF_STATUS populate_dot11f_rrm_ie(tpAniSirGlobal mac,
|
||||||
tDot11fIERRMEnabledCap *pDot11f,
|
tDot11fIERRMEnabledCap *pDot11f,
|
||||||
struct pe_session *psessionEntry);
|
struct pe_session *pe_session);
|
||||||
|
|
||||||
void populate_mdie(tpAniSirGlobal mac,
|
void populate_mdie(tpAniSirGlobal mac,
|
||||||
tDot11fIEMobilityDomain * pDot11f, uint8_t mdie[]);
|
tDot11fIEMobilityDomain * pDot11f, uint8_t mdie[]);
|
||||||
@@ -1073,17 +1073,17 @@ int find_ie_location(tpAniSirGlobal mac, tpSirRSNie pRsnIe, uint8_t EID);
|
|||||||
void lim_log_vht_cap(tpAniSirGlobal mac, tDot11fIEVHTCaps *pDot11f);
|
void lim_log_vht_cap(tpAniSirGlobal mac, tDot11fIEVHTCaps *pDot11f);
|
||||||
|
|
||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
populate_dot11f_vht_caps(tpAniSirGlobal mac, struct pe_session *psessionEntry,
|
populate_dot11f_vht_caps(tpAniSirGlobal mac, struct pe_session *pe_session,
|
||||||
tDot11fIEVHTCaps *pDot11f);
|
tDot11fIEVHTCaps *pDot11f);
|
||||||
|
|
||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
populate_dot11f_vht_operation(tpAniSirGlobal mac,
|
populate_dot11f_vht_operation(tpAniSirGlobal mac,
|
||||||
struct pe_session *psessionEntry,
|
struct pe_session *pe_session,
|
||||||
tDot11fIEVHTOperation *pDot11f);
|
tDot11fIEVHTOperation *pDot11f);
|
||||||
|
|
||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
populate_dot11f_ext_cap(tpAniSirGlobal mac, bool isVHTEnabled,
|
populate_dot11f_ext_cap(tpAniSirGlobal mac, bool isVHTEnabled,
|
||||||
tDot11fIEExtCap *pDot11f, struct pe_session *psessionEntry);
|
tDot11fIEExtCap *pDot11f, struct pe_session *pe_session);
|
||||||
|
|
||||||
void populate_dot11f_qcn_ie(tDot11fIEQCN_IE *pDot11f);
|
void populate_dot11f_qcn_ie(tDot11fIEQCN_IE *pDot11f);
|
||||||
|
|
||||||
@@ -1111,12 +1111,12 @@ static inline void populate_dot11f_fils_params(tpAniSirGlobal mac_ctx,
|
|||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
populate_dot11f_operating_mode(tpAniSirGlobal mac,
|
populate_dot11f_operating_mode(tpAniSirGlobal mac,
|
||||||
tDot11fIEOperatingMode *pDot11f,
|
tDot11fIEOperatingMode *pDot11f,
|
||||||
struct pe_session *psessionEntry);
|
struct pe_session *pe_session);
|
||||||
|
|
||||||
void
|
void
|
||||||
populate_dot11f_wider_bw_chan_switch_ann(tpAniSirGlobal mac,
|
populate_dot11f_wider_bw_chan_switch_ann(tpAniSirGlobal mac,
|
||||||
tDot11fIEWiderBWChanSwitchAnn *pDot11f,
|
tDot11fIEWiderBWChanSwitchAnn *pDot11f,
|
||||||
struct pe_session *psessionEntry);
|
struct pe_session *pe_session);
|
||||||
|
|
||||||
void populate_dot11f_timeout_interval(tpAniSirGlobal mac,
|
void populate_dot11f_timeout_interval(tpAniSirGlobal mac,
|
||||||
tDot11fIETimeoutInterval *pDot11f,
|
tDot11fIETimeoutInterval *pDot11f,
|
||||||
|
|||||||
@@ -53,7 +53,7 @@ extern QDF_STATUS lim_admit_control_add_ts(tpAniSirGlobal mac,
|
|||||||
tSirMacScheduleIE *pSch,
|
tSirMacScheduleIE *pSch,
|
||||||
/* index to the lim tspec table. */
|
/* index to the lim tspec table. */
|
||||||
uint8_t *pTspecIdx,
|
uint8_t *pTspecIdx,
|
||||||
struct pe_session *psessionEntry);
|
struct pe_session *pe_session);
|
||||||
|
|
||||||
static inline QDF_STATUS
|
static inline QDF_STATUS
|
||||||
lim_admit_control_add_sta(tpAniSirGlobal mac, uint8_t *staAddr, uint8_t alloc)
|
lim_admit_control_add_sta(tpAniSirGlobal mac, uint8_t *staAddr, uint8_t alloc)
|
||||||
|
|||||||
@@ -43,19 +43,19 @@
|
|||||||
#include "scheduler_api.h"
|
#include "scheduler_api.h"
|
||||||
|
|
||||||
/* Macro to count heartbeat */
|
/* Macro to count heartbeat */
|
||||||
#define limResetHBPktCount(psessionEntry) (psessionEntry->LimRxedBeaconCntDuringHB = 0)
|
#define limResetHBPktCount(pe_session) (pe_session->LimRxedBeaconCntDuringHB = 0)
|
||||||
|
|
||||||
/* Useful macros for fetching various states in mac->lim */
|
/* Useful macros for fetching various states in mac->lim */
|
||||||
/* gLimSystemRole */
|
/* gLimSystemRole */
|
||||||
#define GET_LIM_SYSTEM_ROLE(psessionEntry) (psessionEntry->limSystemRole)
|
#define GET_LIM_SYSTEM_ROLE(pe_session) (pe_session->limSystemRole)
|
||||||
#define LIM_IS_AP_ROLE(psessionEntry) (GET_LIM_SYSTEM_ROLE(psessionEntry) == eLIM_AP_ROLE)
|
#define LIM_IS_AP_ROLE(pe_session) (GET_LIM_SYSTEM_ROLE(pe_session) == eLIM_AP_ROLE)
|
||||||
#define LIM_IS_STA_ROLE(psessionEntry) (GET_LIM_SYSTEM_ROLE(psessionEntry) == eLIM_STA_ROLE)
|
#define LIM_IS_STA_ROLE(pe_session) (GET_LIM_SYSTEM_ROLE(pe_session) == eLIM_STA_ROLE)
|
||||||
#define LIM_IS_IBSS_ROLE(psessionEntry) (GET_LIM_SYSTEM_ROLE(psessionEntry) == eLIM_STA_IN_IBSS_ROLE)
|
#define LIM_IS_IBSS_ROLE(pe_session) (GET_LIM_SYSTEM_ROLE(pe_session) == eLIM_STA_IN_IBSS_ROLE)
|
||||||
#define LIM_IS_UNKNOWN_ROLE(psessionEntry) (GET_LIM_SYSTEM_ROLE(psessionEntry) == eLIM_UNKNOWN_ROLE)
|
#define LIM_IS_UNKNOWN_ROLE(pe_session) (GET_LIM_SYSTEM_ROLE(pe_session) == eLIM_UNKNOWN_ROLE)
|
||||||
#define LIM_IS_P2P_DEVICE_ROLE(psessionEntry) (GET_LIM_SYSTEM_ROLE(psessionEntry) == eLIM_P2P_DEVICE_ROLE)
|
#define LIM_IS_P2P_DEVICE_ROLE(pe_session) (GET_LIM_SYSTEM_ROLE(pe_session) == eLIM_P2P_DEVICE_ROLE)
|
||||||
#define LIM_IS_P2P_DEVICE_GO(psessionEntry) (GET_LIM_SYSTEM_ROLE(psessionEntry) == eLIM_P2P_DEVICE_GO)
|
#define LIM_IS_P2P_DEVICE_GO(pe_session) (GET_LIM_SYSTEM_ROLE(pe_session) == eLIM_P2P_DEVICE_GO)
|
||||||
#define LIM_IS_NDI_ROLE(psessionEntry) \
|
#define LIM_IS_NDI_ROLE(pe_session) \
|
||||||
(GET_LIM_SYSTEM_ROLE(psessionEntry) == eLIM_NDI_ROLE)
|
(GET_LIM_SYSTEM_ROLE(pe_session) == eLIM_NDI_ROLE)
|
||||||
/* gLimSmeState */
|
/* gLimSmeState */
|
||||||
#define GET_LIM_SME_STATE(mac) (mac->lim.gLimSmeState)
|
#define GET_LIM_SME_STATE(mac) (mac->lim.gLimSmeState)
|
||||||
#define SET_LIM_SME_STATE(mac, state) (mac->lim.gLimSmeState = state)
|
#define SET_LIM_SME_STATE(mac, state) (mac->lim.gLimSmeState = state)
|
||||||
@@ -65,7 +65,7 @@
|
|||||||
/*tpdphHashNode mlmStaContext*/
|
/*tpdphHashNode mlmStaContext*/
|
||||||
#define GET_LIM_STA_CONTEXT_MLM_STATE(pStaDs) (pStaDs->mlmStaContext.mlmState)
|
#define GET_LIM_STA_CONTEXT_MLM_STATE(pStaDs) (pStaDs->mlmStaContext.mlmState)
|
||||||
#define SET_LIM_STA_CONTEXT_MLM_STATE(pStaDs, state) (pStaDs->mlmStaContext.mlmState = state)
|
#define SET_LIM_STA_CONTEXT_MLM_STATE(pStaDs, state) (pStaDs->mlmStaContext.mlmState = state)
|
||||||
#define LIM_IS_CONNECTION_ACTIVE(psessionEntry) (psessionEntry->LimRxedBeaconCntDuringHB)
|
#define LIM_IS_CONNECTION_ACTIVE(pe_session) (pe_session->LimRxedBeaconCntDuringHB)
|
||||||
/*mac->lim.gLimProcessDefdMsgs*/
|
/*mac->lim.gLimProcessDefdMsgs*/
|
||||||
#define GET_LIM_PROCESS_DEFD_MESGS(mac) (mac->lim.gLimProcessDefdMsgs)
|
#define GET_LIM_PROCESS_DEFD_MESGS(mac) (mac->lim.gLimProcessDefdMsgs)
|
||||||
#define SET_LIM_PROCESS_DEFD_MESGS(mac, val) \
|
#define SET_LIM_PROCESS_DEFD_MESGS(mac, val) \
|
||||||
@@ -210,12 +210,12 @@ static inline tLimSmeStates lim_get_sme_state(tpAniSirGlobal mac)
|
|||||||
extern void lim_received_hb_handler(tpAniSirGlobal, uint8_t, struct pe_session *);
|
extern void lim_received_hb_handler(tpAniSirGlobal, uint8_t, struct pe_session *);
|
||||||
/* / Function that triggers STA context deletion */
|
/* / Function that triggers STA context deletion */
|
||||||
extern void lim_trigger_sta_deletion(tpAniSirGlobal mac, tpDphHashNode pStaDs,
|
extern void lim_trigger_sta_deletion(tpAniSirGlobal mac, tpDphHashNode pStaDs,
|
||||||
struct pe_session *psessionEntry);
|
struct pe_session *pe_session);
|
||||||
|
|
||||||
#ifdef FEATURE_WLAN_TDLS
|
#ifdef FEATURE_WLAN_TDLS
|
||||||
/* Function that sends TDLS Del Sta indication to SME */
|
/* Function that sends TDLS Del Sta indication to SME */
|
||||||
extern void lim_send_sme_tdls_del_sta_ind(tpAniSirGlobal mac, tpDphHashNode pStaDs,
|
extern void lim_send_sme_tdls_del_sta_ind(tpAniSirGlobal mac, tpDphHashNode pStaDs,
|
||||||
struct pe_session *psessionEntry,
|
struct pe_session *pe_session,
|
||||||
uint16_t reasonCode);
|
uint16_t reasonCode);
|
||||||
/**
|
/**
|
||||||
* lim_set_tdls_flags() - update tdls flags based on newer STA connection
|
* lim_set_tdls_flags() - update tdls flags based on newer STA connection
|
||||||
@@ -246,7 +246,7 @@ QDF_STATUS lim_update_short_slot(tpAniSirGlobal mac,
|
|||||||
|
|
||||||
void lim_ps_offload_handle_missed_beacon_ind(tpAniSirGlobal mac,
|
void lim_ps_offload_handle_missed_beacon_ind(tpAniSirGlobal mac,
|
||||||
struct scheduler_msg *pMsg);
|
struct scheduler_msg *pMsg);
|
||||||
void lim_send_heart_beat_timeout_ind(tpAniSirGlobal mac, struct pe_session *psessionEntry);
|
void lim_send_heart_beat_timeout_ind(tpAniSirGlobal mac, struct pe_session *pe_session);
|
||||||
tMgmtFrmDropReason lim_is_pkt_candidate_for_drop(tpAniSirGlobal mac,
|
tMgmtFrmDropReason lim_is_pkt_candidate_for_drop(tpAniSirGlobal mac,
|
||||||
uint8_t *pRxPacketInfo,
|
uint8_t *pRxPacketInfo,
|
||||||
uint32_t subType);
|
uint32_t subType);
|
||||||
@@ -284,24 +284,24 @@ void lim_update_lost_link_info(tpAniSirGlobal mac, struct pe_session *session,
|
|||||||
void lim_mon_init_session(tpAniSirGlobal mac_ptr,
|
void lim_mon_init_session(tpAniSirGlobal mac_ptr,
|
||||||
struct sir_create_session *msg);
|
struct sir_create_session *msg);
|
||||||
|
|
||||||
#define limGetQosMode(psessionEntry, pVal) (*(pVal) = (psessionEntry)->limQosEnabled)
|
#define limGetQosMode(pe_session, pVal) (*(pVal) = (pe_session)->limQosEnabled)
|
||||||
#define limGetWmeMode(psessionEntry, pVal) (*(pVal) = (psessionEntry)->limWmeEnabled)
|
#define limGetWmeMode(pe_session, pVal) (*(pVal) = (pe_session)->limWmeEnabled)
|
||||||
#define limGetWsmMode(psessionEntry, pVal) (*(pVal) = (psessionEntry)->limWsmEnabled)
|
#define limGetWsmMode(pe_session, pVal) (*(pVal) = (pe_session)->limWsmEnabled)
|
||||||
#define limGet11dMode(psessionEntry, pVal) (*(pVal) = (psessionEntry)->lim11dEnabled)
|
#define limGet11dMode(pe_session, pVal) (*(pVal) = (pe_session)->lim11dEnabled)
|
||||||
/* ----------------------------------------------------------------------- */
|
/* ----------------------------------------------------------------------- */
|
||||||
static inline void lim_get_phy_mode(tpAniSirGlobal mac, uint32_t *phyMode,
|
static inline void lim_get_phy_mode(tpAniSirGlobal mac, uint32_t *phyMode,
|
||||||
struct pe_session *psessionEntry)
|
struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
*phyMode =
|
*phyMode =
|
||||||
psessionEntry ? psessionEntry->gLimPhyMode : mac->lim.gLimPhyMode;
|
pe_session ? pe_session->gLimPhyMode : mac->lim.gLimPhyMode;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ----------------------------------------------------------------------- */
|
/* ----------------------------------------------------------------------- */
|
||||||
static inline void lim_get_rf_band_new(tpAniSirGlobal mac,
|
static inline void lim_get_rf_band_new(tpAniSirGlobal mac,
|
||||||
enum band_info *band,
|
enum band_info *band,
|
||||||
struct pe_session *psessionEntry)
|
struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
*band = psessionEntry ? psessionEntry->limRFBand : BAND_UNKNOWN;
|
*band = pe_session ? pe_session->limRFBand : BAND_UNKNOWN;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -33,11 +33,11 @@
|
|||||||
/*-------------------------------------------------------------------------
|
/*-------------------------------------------------------------------------
|
||||||
Function declarations and documenation
|
Function declarations and documenation
|
||||||
------------------------------------------------------------------------*/
|
------------------------------------------------------------------------*/
|
||||||
void lim_ft_open(tpAniSirGlobal mac, struct pe_session *psessionEntry);
|
void lim_ft_open(tpAniSirGlobal mac, struct pe_session *pe_session);
|
||||||
void lim_ft_cleanup(tpAniSirGlobal mac, struct pe_session *psessionEntry);
|
void lim_ft_cleanup(tpAniSirGlobal mac, struct pe_session *pe_session);
|
||||||
#ifdef WLAN_FEATURE_HOST_ROAM
|
#ifdef WLAN_FEATURE_HOST_ROAM
|
||||||
void lim_ft_cleanup_pre_auth_info(tpAniSirGlobal mac,
|
void lim_ft_cleanup_pre_auth_info(tpAniSirGlobal mac,
|
||||||
struct pe_session *psessionEntry);
|
struct pe_session *pe_session);
|
||||||
int lim_process_ft_pre_auth_req(tpAniSirGlobal mac,
|
int lim_process_ft_pre_auth_req(tpAniSirGlobal mac,
|
||||||
struct scheduler_msg *pMsg);
|
struct scheduler_msg *pMsg);
|
||||||
void lim_process_ft_preauth_rsp_timeout(tpAniSirGlobal mac);
|
void lim_process_ft_preauth_rsp_timeout(tpAniSirGlobal mac);
|
||||||
@@ -54,18 +54,18 @@ void lim_process_ft_preauth_rsp_timeout(tpAniSirGlobal mac);
|
|||||||
void lim_process_mlm_ft_reassoc_req(tpAniSirGlobal mac,
|
void lim_process_mlm_ft_reassoc_req(tpAniSirGlobal mac,
|
||||||
tLimMlmReassocReq *reassoc_req);
|
tLimMlmReassocReq *reassoc_req);
|
||||||
void lim_perform_ft_pre_auth(tpAniSirGlobal mac, QDF_STATUS status,
|
void lim_perform_ft_pre_auth(tpAniSirGlobal mac, QDF_STATUS status,
|
||||||
uint32_t *data, struct pe_session *psessionEntry);
|
uint32_t *data, struct pe_session *pe_session);
|
||||||
void lim_post_ft_pre_auth_rsp(tpAniSirGlobal mac, QDF_STATUS status,
|
void lim_post_ft_pre_auth_rsp(tpAniSirGlobal mac, QDF_STATUS status,
|
||||||
uint8_t *auth_rsp, uint16_t auth_rsp_length,
|
uint8_t *auth_rsp, uint16_t auth_rsp_length,
|
||||||
struct pe_session *psessionEntry);
|
struct pe_session *pe_session);
|
||||||
void lim_handle_ft_pre_auth_rsp(tpAniSirGlobal mac, QDF_STATUS status,
|
void lim_handle_ft_pre_auth_rsp(tpAniSirGlobal mac, QDF_STATUS status,
|
||||||
uint8_t *auth_rsp, uint16_t auth_rsp_len,
|
uint8_t *auth_rsp, uint16_t auth_rsp_len,
|
||||||
struct pe_session *psessionEntry);
|
struct pe_session *pe_session);
|
||||||
QDF_STATUS lim_ft_setup_auth_session(tpAniSirGlobal mac,
|
QDF_STATUS lim_ft_setup_auth_session(tpAniSirGlobal mac,
|
||||||
struct pe_session *psessionEntry);
|
struct pe_session *pe_session);
|
||||||
void lim_process_mlm_reassoc_cnf(tpAniSirGlobal mac_ctx, uint32_t *msg);
|
void lim_process_mlm_reassoc_cnf(tpAniSirGlobal mac_ctx, uint32_t *msg);
|
||||||
void lim_process_sta_mlm_add_bss_rsp_ft(tpAniSirGlobal mac,
|
void lim_process_sta_mlm_add_bss_rsp_ft(tpAniSirGlobal mac,
|
||||||
struct scheduler_msg *limMsgQ, struct pe_session *psessionEntry);
|
struct scheduler_msg *limMsgQ, struct pe_session *pe_session);
|
||||||
void lim_process_mlm_reassoc_req(tpAniSirGlobal mac_ctx,
|
void lim_process_mlm_reassoc_req(tpAniSirGlobal mac_ctx,
|
||||||
tLimMlmReassocReq *reassoc_req);
|
tLimMlmReassocReq *reassoc_req);
|
||||||
void lim_preauth_scan_event_handler(tpAniSirGlobal mac_ctx,
|
void lim_preauth_scan_event_handler(tpAniSirGlobal mac_ctx,
|
||||||
@@ -76,7 +76,7 @@ QDF_STATUS lim_send_preauth_scan_offload(tpAniSirGlobal mac_ctx,
|
|||||||
struct pe_session *session_entry, tSirFTPreAuthReq *ft_preauth_req);
|
struct pe_session *session_entry, tSirFTPreAuthReq *ft_preauth_req);
|
||||||
#else
|
#else
|
||||||
static inline void lim_ft_cleanup_pre_auth_info(tpAniSirGlobal mac,
|
static inline void lim_ft_cleanup_pre_auth_info(tpAniSirGlobal mac,
|
||||||
struct pe_session *psessionEntry)
|
struct pe_session *pe_session)
|
||||||
{}
|
{}
|
||||||
static inline void lim_process_ft_preauth_rsp_timeout(tpAniSirGlobal mac)
|
static inline void lim_process_ft_preauth_rsp_timeout(tpAniSirGlobal mac)
|
||||||
{}
|
{}
|
||||||
@@ -86,13 +86,13 @@ void lim_process_mlm_ft_reassoc_req(tpAniSirGlobal mac,
|
|||||||
{}
|
{}
|
||||||
static inline void lim_handle_ft_pre_auth_rsp(tpAniSirGlobal mac,
|
static inline void lim_handle_ft_pre_auth_rsp(tpAniSirGlobal mac,
|
||||||
QDF_STATUS status, uint8_t *auth_rsp,
|
QDF_STATUS status, uint8_t *auth_rsp,
|
||||||
uint16_t auth_rsp_len, struct pe_session *psessionEntry)
|
uint16_t auth_rsp_len, struct pe_session *pe_session)
|
||||||
{}
|
{}
|
||||||
static inline void lim_process_mlm_reassoc_cnf(tpAniSirGlobal mac_ctx,
|
static inline void lim_process_mlm_reassoc_cnf(tpAniSirGlobal mac_ctx,
|
||||||
uint32_t *msg)
|
uint32_t *msg)
|
||||||
{}
|
{}
|
||||||
static inline void lim_process_sta_mlm_add_bss_rsp_ft(tpAniSirGlobal mac,
|
static inline void lim_process_sta_mlm_add_bss_rsp_ft(tpAniSirGlobal mac,
|
||||||
struct scheduler_msg *limMsgQ, struct pe_session *psessionEntry)
|
struct scheduler_msg *limMsgQ, struct pe_session *pe_session)
|
||||||
{}
|
{}
|
||||||
static inline void lim_process_mlm_reassoc_req(tpAniSirGlobal mac_ctx,
|
static inline void lim_process_mlm_reassoc_req(tpAniSirGlobal mac_ctx,
|
||||||
tLimMlmReassocReq *reassoc_req)
|
tLimMlmReassocReq *reassoc_req)
|
||||||
@@ -112,7 +112,7 @@ static inline int lim_process_ft_pre_auth_req(tpAniSirGlobal mac,
|
|||||||
void lim_fill_ft_session(tpAniSirGlobal mac,
|
void lim_fill_ft_session(tpAniSirGlobal mac,
|
||||||
tpSirBssDescription pbssDescription,
|
tpSirBssDescription pbssDescription,
|
||||||
struct pe_session *ft_session,
|
struct pe_session *ft_session,
|
||||||
struct pe_session *psessionEntry);
|
struct pe_session *pe_session);
|
||||||
void lim_ft_prepare_add_bss_req(tpAniSirGlobal mac, uint8_t updateEntry,
|
void lim_ft_prepare_add_bss_req(tpAniSirGlobal mac, uint8_t updateEntry,
|
||||||
struct pe_session *ft_session,
|
struct pe_session *ft_session,
|
||||||
tpSirBssDescription bssDescription);
|
tpSirBssDescription bssDescription);
|
||||||
@@ -122,7 +122,7 @@ QDF_STATUS lim_send_preauth_scan_offload(tpAniSirGlobal mac_ctx,
|
|||||||
static inline void lim_fill_ft_session(tpAniSirGlobal mac,
|
static inline void lim_fill_ft_session(tpAniSirGlobal mac,
|
||||||
tpSirBssDescription pbssDescription,
|
tpSirBssDescription pbssDescription,
|
||||||
struct pe_session *ft_session,
|
struct pe_session *ft_session,
|
||||||
struct pe_session *psessionEntry)
|
struct pe_session *pe_session)
|
||||||
{}
|
{}
|
||||||
static inline void lim_ft_prepare_add_bss_req(tpAniSirGlobal mac,
|
static inline void lim_ft_prepare_add_bss_req(tpAniSirGlobal mac,
|
||||||
uint8_t updateEntry, struct pe_session *ft_session,
|
uint8_t updateEntry, struct pe_session *ft_session,
|
||||||
|
|||||||
@@ -703,7 +703,7 @@ struct pe_session *pe_find_session_by_sta_id(tpAniSirGlobal mac, uint8_t staid,
|
|||||||
*
|
*
|
||||||
* Return: void
|
* Return: void
|
||||||
*/
|
*/
|
||||||
void pe_delete_session(tpAniSirGlobal mac, struct pe_session *psessionEntry);
|
void pe_delete_session(tpAniSirGlobal mac, struct pe_session *pe_session);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -47,33 +47,33 @@ QDF_STATUS rrm_process_link_measurement_request(tpAniSirGlobal mac,
|
|||||||
tDot11fLinkMeasurementRequest
|
tDot11fLinkMeasurementRequest
|
||||||
*pLinkReq,
|
*pLinkReq,
|
||||||
struct pe_session *
|
struct pe_session *
|
||||||
pSessionEntry);
|
pe_session);
|
||||||
|
|
||||||
QDF_STATUS rrm_process_radio_measurement_request(tpAniSirGlobal mac,
|
QDF_STATUS rrm_process_radio_measurement_request(tpAniSirGlobal mac,
|
||||||
tSirMacAddr peer,
|
tSirMacAddr peer,
|
||||||
tDot11fRadioMeasurementRequest
|
tDot11fRadioMeasurementRequest
|
||||||
*pRRMReq,
|
*pRRMReq,
|
||||||
struct pe_session *
|
struct pe_session *
|
||||||
pSessionEntry);
|
pe_session);
|
||||||
|
|
||||||
QDF_STATUS rrm_process_neighbor_report_response(tpAniSirGlobal mac,
|
QDF_STATUS rrm_process_neighbor_report_response(tpAniSirGlobal mac,
|
||||||
tDot11fNeighborReportResponse
|
tDot11fNeighborReportResponse
|
||||||
*pNeighborRep,
|
*pNeighborRep,
|
||||||
struct pe_session *
|
struct pe_session *
|
||||||
pSessionEntry);
|
pe_session);
|
||||||
|
|
||||||
QDF_STATUS rrm_send_set_max_tx_power_req(tpAniSirGlobal mac,
|
QDF_STATUS rrm_send_set_max_tx_power_req(tpAniSirGlobal mac,
|
||||||
int8_t txPower,
|
int8_t txPower,
|
||||||
struct pe_session *pSessionEntry);
|
struct pe_session *pe_session);
|
||||||
|
|
||||||
int8_t rrm_get_mgmt_tx_power(tpAniSirGlobal mac,
|
int8_t rrm_get_mgmt_tx_power(tpAniSirGlobal mac,
|
||||||
struct pe_session *pSessionEntry);
|
struct pe_session *pe_session);
|
||||||
|
|
||||||
void rrm_cache_mgmt_tx_power(tpAniSirGlobal mac,
|
void rrm_cache_mgmt_tx_power(tpAniSirGlobal mac,
|
||||||
int8_t txPower, struct pe_session *pSessionEntry);
|
int8_t txPower, struct pe_session *pe_session);
|
||||||
|
|
||||||
tpRRMCaps rrm_get_capabilities(tpAniSirGlobal mac,
|
tpRRMCaps rrm_get_capabilities(tpAniSirGlobal mac,
|
||||||
struct pe_session *pSessionEntry);
|
struct pe_session *pe_session);
|
||||||
|
|
||||||
void rrm_get_start_tsf(tpAniSirGlobal mac, uint32_t *pStartTSF);
|
void rrm_get_start_tsf(tpAniSirGlobal mac, uint32_t *pStartTSF);
|
||||||
|
|
||||||
|
|||||||
@@ -36,21 +36,21 @@
|
|||||||
|
|
||||||
/* update only the broadcast qos params */
|
/* update only the broadcast qos params */
|
||||||
void sch_qos_update_broadcast(tpAniSirGlobal mac,
|
void sch_qos_update_broadcast(tpAniSirGlobal mac,
|
||||||
struct pe_session *psessionEntry);
|
struct pe_session *pe_session);
|
||||||
|
|
||||||
/* fill in the default local edca parameter into gLimEdcaParams[] */
|
/* fill in the default local edca parameter into gLimEdcaParams[] */
|
||||||
void sch_set_default_edca_params(tpAniSirGlobal mac, struct pe_session *psessionE);
|
void sch_set_default_edca_params(tpAniSirGlobal mac, struct pe_session *pe_session);
|
||||||
|
|
||||||
/* update only local qos params */
|
/* update only local qos params */
|
||||||
void sch_qos_update_local(tpAniSirGlobal mac, struct pe_session *psessionEntry);
|
void sch_qos_update_local(tpAniSirGlobal mac, struct pe_session *pe_session);
|
||||||
|
|
||||||
/* update the edca profile parameters */
|
/* update the edca profile parameters */
|
||||||
void sch_edca_profile_update(tpAniSirGlobal mac,
|
void sch_edca_profile_update(tpAniSirGlobal mac,
|
||||||
struct pe_session *psessionEntry);
|
struct pe_session *pe_session);
|
||||||
|
|
||||||
/* / Set the fixed fields in a beacon frame */
|
/* / Set the fixed fields in a beacon frame */
|
||||||
QDF_STATUS sch_set_fixed_beacon_fields(tpAniSirGlobal mac,
|
QDF_STATUS sch_set_fixed_beacon_fields(tpAniSirGlobal mac,
|
||||||
struct pe_session *psessionEntry);
|
struct pe_session *pe_session);
|
||||||
|
|
||||||
/* / Process the scheduler messages */
|
/* / Process the scheduler messages */
|
||||||
void sch_process_message(tpAniSirGlobal mac,
|
void sch_process_message(tpAniSirGlobal mac,
|
||||||
@@ -73,15 +73,15 @@ QDF_STATUS sch_post_message(tpAniSirGlobal mac,
|
|||||||
struct scheduler_msg *pMsg);
|
struct scheduler_msg *pMsg);
|
||||||
|
|
||||||
void sch_beacon_process(tpAniSirGlobal mac, uint8_t *pRxPacketInfo,
|
void sch_beacon_process(tpAniSirGlobal mac, uint8_t *pRxPacketInfo,
|
||||||
struct pe_session *psessionEntry);
|
struct pe_session *pe_session);
|
||||||
|
|
||||||
QDF_STATUS sch_beacon_edca_process(tpAniSirGlobal mac,
|
QDF_STATUS sch_beacon_edca_process(tpAniSirGlobal mac,
|
||||||
tSirMacEdcaParamSetIE *edca,
|
tSirMacEdcaParamSetIE *edca,
|
||||||
struct pe_session *psessionEntry);
|
struct pe_session *pe_session);
|
||||||
|
|
||||||
void sch_generate_tim(tpAniSirGlobal, uint8_t **, uint16_t *, uint8_t);
|
void sch_generate_tim(tpAniSirGlobal, uint8_t **, uint16_t *, uint8_t);
|
||||||
|
|
||||||
void sch_set_beacon_interval(tpAniSirGlobal mac, struct pe_session *psessionEntry);
|
void sch_set_beacon_interval(tpAniSirGlobal mac, struct pe_session *pe_session);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* sch_send_beacon_req() - send beacon update req to wma
|
* sch_send_beacon_req() - send beacon update req to wma
|
||||||
@@ -101,7 +101,7 @@ QDF_STATUS sch_send_beacon_req(tpAniSirGlobal mac_ctx, uint8_t *bcn_payload,
|
|||||||
QDF_STATUS lim_update_probe_rsp_template_ie_bitmap_beacon1(tpAniSirGlobal,
|
QDF_STATUS lim_update_probe_rsp_template_ie_bitmap_beacon1(tpAniSirGlobal,
|
||||||
tDot11fBeacon1 *,
|
tDot11fBeacon1 *,
|
||||||
struct pe_session *
|
struct pe_session *
|
||||||
psessionEntry);
|
pe_session);
|
||||||
void lim_update_probe_rsp_template_ie_bitmap_beacon2(tpAniSirGlobal,
|
void lim_update_probe_rsp_template_ie_bitmap_beacon2(tpAniSirGlobal,
|
||||||
tDot11fBeacon2 *,
|
tDot11fBeacon2 *,
|
||||||
uint32_t *,
|
uint32_t *,
|
||||||
|
|||||||
@@ -181,13 +181,13 @@ lim_validate_tspec_edca(tpAniSirGlobal mac_ctx,
|
|||||||
|
|
||||||
static QDF_STATUS
|
static QDF_STATUS
|
||||||
lim_validate_tspec(tpAniSirGlobal mac,
|
lim_validate_tspec(tpAniSirGlobal mac,
|
||||||
tSirMacTspecIE *pTspec, struct pe_session *psessionEntry)
|
tSirMacTspecIE *pTspec, struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
QDF_STATUS retval = QDF_STATUS_SUCCESS;
|
QDF_STATUS retval = QDF_STATUS_SUCCESS;
|
||||||
|
|
||||||
switch (pTspec->tsinfo.traffic.accessPolicy) {
|
switch (pTspec->tsinfo.traffic.accessPolicy) {
|
||||||
case SIR_MAC_ACCESSPOLICY_EDCA:
|
case SIR_MAC_ACCESSPOLICY_EDCA:
|
||||||
retval = lim_validate_tspec_edca(mac, pTspec, psessionEntry);
|
retval = lim_validate_tspec_edca(mac, pTspec, pe_session);
|
||||||
if (retval != QDF_STATUS_SUCCESS)
|
if (retval != QDF_STATUS_SUCCESS)
|
||||||
pe_warn("EDCA tspec invalid");
|
pe_warn("EDCA tspec invalid");
|
||||||
break;
|
break;
|
||||||
@@ -221,7 +221,7 @@ static void
|
|||||||
lim_compute_mean_bw_used(tpAniSirGlobal mac,
|
lim_compute_mean_bw_used(tpAniSirGlobal mac,
|
||||||
uint32_t *pBw,
|
uint32_t *pBw,
|
||||||
uint32_t phyMode,
|
uint32_t phyMode,
|
||||||
tpLimTspecInfo pTspecInfo, struct pe_session *psessionEntry)
|
tpLimTspecInfo pTspecInfo, struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
uint32_t ctspec;
|
uint32_t ctspec;
|
||||||
*pBw = 0;
|
*pBw = 0;
|
||||||
@@ -229,7 +229,7 @@ lim_compute_mean_bw_used(tpAniSirGlobal mac,
|
|||||||
if (pTspecInfo->inuse) {
|
if (pTspecInfo->inuse) {
|
||||||
tpDphHashNode pSta =
|
tpDphHashNode pSta =
|
||||||
dph_get_hash_entry(mac, pTspecInfo->assocId,
|
dph_get_hash_entry(mac, pTspecInfo->assocId,
|
||||||
&psessionEntry->dph.dphHashTable);
|
&pe_session->dph.dphHashTable);
|
||||||
if (pSta == NULL) {
|
if (pSta == NULL) {
|
||||||
/* maybe we should delete the tspec?? */
|
/* maybe we should delete the tspec?? */
|
||||||
pe_err("Tspec: %d assocId: %d dphNode not found",
|
pe_err("Tspec: %d assocId: %d dphNode not found",
|
||||||
@@ -335,7 +335,7 @@ lim_admit_policy_oversubscription(tpAniSirGlobal mac_ctx,
|
|||||||
|
|
||||||
static QDF_STATUS lim_admit_policy(tpAniSirGlobal mac,
|
static QDF_STATUS lim_admit_policy(tpAniSirGlobal mac,
|
||||||
tSirMacTspecIE *pTspec,
|
tSirMacTspecIE *pTspec,
|
||||||
struct pe_session *psessionEntry)
|
struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
QDF_STATUS retval = QDF_STATUS_E_FAILURE;
|
QDF_STATUS retval = QDF_STATUS_E_FAILURE;
|
||||||
tpLimAdmitPolicyInfo pAdmitPolicy = &mac->lim.admitPolicyInfo;
|
tpLimAdmitPolicyInfo pAdmitPolicy = &mac->lim.admitPolicyInfo;
|
||||||
@@ -350,7 +350,7 @@ static QDF_STATUS lim_admit_policy(tpAniSirGlobal mac,
|
|||||||
&mac->lim.
|
&mac->lim.
|
||||||
admitPolicyInfo,
|
admitPolicyInfo,
|
||||||
&mac->lim.tspecInfo[0],
|
&mac->lim.tspecInfo[0],
|
||||||
psessionEntry);
|
pe_session);
|
||||||
if (retval != QDF_STATUS_SUCCESS)
|
if (retval != QDF_STATUS_SUCCESS)
|
||||||
pe_err("rejected by BWFactor policy");
|
pe_err("rejected by BWFactor policy");
|
||||||
break;
|
break;
|
||||||
@@ -605,11 +605,11 @@ QDF_STATUS lim_tspec_add(tpAniSirGlobal mac,
|
|||||||
static QDF_STATUS
|
static QDF_STATUS
|
||||||
lim_validate_access_policy(tpAniSirGlobal mac,
|
lim_validate_access_policy(tpAniSirGlobal mac,
|
||||||
uint8_t accessPolicy,
|
uint8_t accessPolicy,
|
||||||
uint16_t assocId, struct pe_session *psessionEntry)
|
uint16_t assocId, struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
QDF_STATUS retval = QDF_STATUS_E_FAILURE;
|
QDF_STATUS retval = QDF_STATUS_E_FAILURE;
|
||||||
tpDphHashNode pSta =
|
tpDphHashNode pSta =
|
||||||
dph_get_hash_entry(mac, assocId, &psessionEntry->dph.dphHashTable);
|
dph_get_hash_entry(mac, assocId, &pe_session->dph.dphHashTable);
|
||||||
|
|
||||||
if ((pSta == NULL) || (!pSta->valid)) {
|
if ((pSta == NULL) || (!pSta->valid)) {
|
||||||
pe_err("invalid station address passed");
|
pe_err("invalid station address passed");
|
||||||
@@ -648,7 +648,7 @@ lim_validate_access_policy(tpAniSirGlobal mac,
|
|||||||
* @alloc: Allocate bandwidth for this tspec
|
* @alloc: Allocate bandwidth for this tspec
|
||||||
* @pSch: Schedule IE
|
* @pSch: Schedule IE
|
||||||
* @pTspecIdx: TSPEC index
|
* @pTspecIdx: TSPEC index
|
||||||
* @psessionEntry: PE Session Entry
|
* @pe_session: PE Session Entry
|
||||||
*
|
*
|
||||||
* Determine if STA with the specified TSPEC can be admitted. If it can,
|
* Determine if STA with the specified TSPEC can be admitted. If it can,
|
||||||
* a schedule element is provided
|
* a schedule element is provided
|
||||||
@@ -658,7 +658,7 @@ lim_validate_access_policy(tpAniSirGlobal mac,
|
|||||||
QDF_STATUS lim_admit_control_add_ts(tpAniSirGlobal mac, uint8_t *pAddr,
|
QDF_STATUS lim_admit_control_add_ts(tpAniSirGlobal mac, uint8_t *pAddr,
|
||||||
tSirAddtsReqInfo *pAddts, tSirMacQosCapabilityStaIE *pQos,
|
tSirAddtsReqInfo *pAddts, tSirMacQosCapabilityStaIE *pQos,
|
||||||
uint16_t assocId, uint8_t alloc, tSirMacScheduleIE *pSch,
|
uint16_t assocId, uint8_t alloc, tSirMacScheduleIE *pSch,
|
||||||
uint8_t *pTspecIdx, struct pe_session *psessionEntry)
|
uint8_t *pTspecIdx, struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
tpLimTspecInfo pTspecInfo;
|
tpLimTspecInfo pTspecInfo;
|
||||||
QDF_STATUS retval;
|
QDF_STATUS retval;
|
||||||
@@ -688,7 +688,7 @@ QDF_STATUS lim_admit_control_add_ts(tpAniSirGlobal mac, uint8_t *pAddr,
|
|||||||
return QDF_STATUS_E_FAILURE;
|
return QDF_STATUS_E_FAILURE;
|
||||||
}
|
}
|
||||||
/* check that the tspec's are well formed and acceptable */
|
/* check that the tspec's are well formed and acceptable */
|
||||||
if (lim_validate_tspec(mac, &pAddts->tspec, psessionEntry) !=
|
if (lim_validate_tspec(mac, &pAddts->tspec, pe_session) !=
|
||||||
QDF_STATUS_SUCCESS) {
|
QDF_STATUS_SUCCESS) {
|
||||||
pe_warn("tspec validation failed");
|
pe_warn("tspec validation failed");
|
||||||
return QDF_STATUS_E_FAILURE;
|
return QDF_STATUS_E_FAILURE;
|
||||||
@@ -700,7 +700,7 @@ QDF_STATUS lim_admit_control_add_ts(tpAniSirGlobal mac, uint8_t *pAddr,
|
|||||||
return QDF_STATUS_E_FAILURE;
|
return QDF_STATUS_E_FAILURE;
|
||||||
}
|
}
|
||||||
/* determine if the tspec can be admitted or not based on current policy */
|
/* determine if the tspec can be admitted or not based on current policy */
|
||||||
if (lim_admit_policy(mac, &pAddts->tspec, psessionEntry) != QDF_STATUS_SUCCESS) {
|
if (lim_admit_policy(mac, &pAddts->tspec, pe_session) != QDF_STATUS_SUCCESS) {
|
||||||
pe_warn("tspec rejected by admit control policy");
|
pe_warn("tspec rejected by admit control policy");
|
||||||
return QDF_STATUS_E_FAILURE;
|
return QDF_STATUS_E_FAILURE;
|
||||||
}
|
}
|
||||||
@@ -723,7 +723,7 @@ QDF_STATUS lim_admit_control_add_ts(tpAniSirGlobal mac, uint8_t *pAddr,
|
|||||||
/* check that we are in the proper mode to deal with the tspec type */
|
/* check that we are in the proper mode to deal with the tspec type */
|
||||||
if (lim_validate_access_policy
|
if (lim_validate_access_policy
|
||||||
(mac, (uint8_t) pAddts->tspec.tsinfo.traffic.accessPolicy, assocId,
|
(mac, (uint8_t) pAddts->tspec.tsinfo.traffic.accessPolicy, assocId,
|
||||||
psessionEntry) != QDF_STATUS_SUCCESS) {
|
pe_session) != QDF_STATUS_SUCCESS) {
|
||||||
pe_warn("AccessPolicy: %d is not valid in current mode",
|
pe_warn("AccessPolicy: %d is not valid in current mode",
|
||||||
pAddts->tspec.tsinfo.traffic.accessPolicy);
|
pAddts->tspec.tsinfo.traffic.accessPolicy);
|
||||||
return QDF_STATUS_E_FAILURE;
|
return QDF_STATUS_E_FAILURE;
|
||||||
@@ -844,9 +844,9 @@ lim_send_hal_msg_add_ts(tpAniSirGlobal mac,
|
|||||||
struct scheduler_msg msg = {0};
|
struct scheduler_msg msg = {0};
|
||||||
tpAddTsParams pAddTsParam;
|
tpAddTsParams pAddTsParam;
|
||||||
|
|
||||||
struct pe_session *psessionEntry = pe_find_session_by_session_id(mac, sessionId);
|
struct pe_session *pe_session = pe_find_session_by_session_id(mac, sessionId);
|
||||||
|
|
||||||
if (psessionEntry == NULL) {
|
if (pe_session == NULL) {
|
||||||
pe_err("Unable to get Session for session Id: %d",
|
pe_err("Unable to get Session for session Id: %d",
|
||||||
sessionId);
|
sessionId);
|
||||||
return QDF_STATUS_E_FAILURE;
|
return QDF_STATUS_E_FAILURE;
|
||||||
@@ -860,14 +860,14 @@ lim_send_hal_msg_add_ts(tpAniSirGlobal mac,
|
|||||||
pAddTsParam->tspecIdx = tspecIdx;
|
pAddTsParam->tspecIdx = tspecIdx;
|
||||||
qdf_mem_copy(&pAddTsParam->tspec, &tspecIE, sizeof(tSirMacTspecIE));
|
qdf_mem_copy(&pAddTsParam->tspec, &tspecIE, sizeof(tSirMacTspecIE));
|
||||||
pAddTsParam->sessionId = sessionId;
|
pAddTsParam->sessionId = sessionId;
|
||||||
pAddTsParam->sme_session_id = psessionEntry->smeSessionId;
|
pAddTsParam->sme_session_id = pe_session->smeSessionId;
|
||||||
|
|
||||||
#ifdef FEATURE_WLAN_ESE
|
#ifdef FEATURE_WLAN_ESE
|
||||||
pAddTsParam->tsm_interval = tsm_interval;
|
pAddTsParam->tsm_interval = tsm_interval;
|
||||||
#endif
|
#endif
|
||||||
#ifdef WLAN_FEATURE_ROAM_OFFLOAD
|
#ifdef WLAN_FEATURE_ROAM_OFFLOAD
|
||||||
if (mac->mlme_cfg->lfr.lfr3_roaming_offload &&
|
if (mac->mlme_cfg->lfr.lfr3_roaming_offload &&
|
||||||
psessionEntry->is11Rconnection)
|
pe_session->is11Rconnection)
|
||||||
pAddTsParam->setRICparams = 1;
|
pAddTsParam->setRICparams = 1;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -908,7 +908,7 @@ lim_send_hal_msg_del_ts(tpAniSirGlobal mac,
|
|||||||
{
|
{
|
||||||
struct scheduler_msg msg = {0};
|
struct scheduler_msg msg = {0};
|
||||||
tpDelTsParams pDelTsParam;
|
tpDelTsParams pDelTsParam;
|
||||||
struct pe_session *psessionEntry = NULL;
|
struct pe_session *pe_session = NULL;
|
||||||
|
|
||||||
pDelTsParam = qdf_mem_malloc(sizeof(tDelTsParams));
|
pDelTsParam = qdf_mem_malloc(sizeof(tDelTsParams));
|
||||||
if (!pDelTsParam)
|
if (!pDelTsParam)
|
||||||
@@ -923,20 +923,20 @@ lim_send_hal_msg_del_ts(tpAniSirGlobal mac,
|
|||||||
pDelTsParam->tspecIdx = tspecIdx;
|
pDelTsParam->tspecIdx = tspecIdx;
|
||||||
qdf_mem_copy(&pDelTsParam->bssId, bssId, sizeof(tSirMacAddr));
|
qdf_mem_copy(&pDelTsParam->bssId, bssId, sizeof(tSirMacAddr));
|
||||||
|
|
||||||
psessionEntry = pe_find_session_by_session_id(mac, sessionId);
|
pe_session = pe_find_session_by_session_id(mac, sessionId);
|
||||||
if (psessionEntry == NULL) {
|
if (pe_session == NULL) {
|
||||||
pe_err("Session does Not exist with given sessionId: %d",
|
pe_err("Session does Not exist with given sessionId: %d",
|
||||||
sessionId);
|
sessionId);
|
||||||
goto err;
|
goto err;
|
||||||
}
|
}
|
||||||
pDelTsParam->sessionId = psessionEntry->smeSessionId;
|
pDelTsParam->sessionId = pe_session->smeSessionId;
|
||||||
pDelTsParam->userPrio = delts.wmeTspecPresent ?
|
pDelTsParam->userPrio = delts.wmeTspecPresent ?
|
||||||
delts.tspec.tsinfo.traffic.userPrio :
|
delts.tspec.tsinfo.traffic.userPrio :
|
||||||
delts.tsinfo.traffic.userPrio;
|
delts.tsinfo.traffic.userPrio;
|
||||||
|
|
||||||
#ifdef WLAN_FEATURE_ROAM_OFFLOAD
|
#ifdef WLAN_FEATURE_ROAM_OFFLOAD
|
||||||
if (mac->mlme_cfg->lfr.lfr3_roaming_offload &&
|
if (mac->mlme_cfg->lfr.lfr3_roaming_offload &&
|
||||||
psessionEntry->is11Rconnection) {
|
pe_session->is11Rconnection) {
|
||||||
qdf_mem_copy(&pDelTsParam->delTsInfo, &delts,
|
qdf_mem_copy(&pDelTsParam->delTsInfo, &delts,
|
||||||
sizeof(tSirDeltsReqInfo));
|
sizeof(tSirDeltsReqInfo));
|
||||||
pDelTsParam->setRICparams = 1;
|
pDelTsParam->setRICparams = 1;
|
||||||
@@ -973,7 +973,7 @@ void lim_process_hal_add_ts_rsp(tpAniSirGlobal mac,
|
|||||||
uint16_t assocId = 0;
|
uint16_t assocId = 0;
|
||||||
tSirMacAddr peerMacAddr;
|
tSirMacAddr peerMacAddr;
|
||||||
uint8_t rspReqd = 1;
|
uint8_t rspReqd = 1;
|
||||||
struct pe_session *psessionEntry = NULL;
|
struct pe_session *pe_session = NULL;
|
||||||
|
|
||||||
/* Need to process all the deferred messages enqueued
|
/* Need to process all the deferred messages enqueued
|
||||||
* since sending the WMA_ADD_TS_REQ.
|
* since sending the WMA_ADD_TS_REQ.
|
||||||
@@ -989,13 +989,13 @@ void lim_process_hal_add_ts_rsp(tpAniSirGlobal mac,
|
|||||||
|
|
||||||
/* 090803: Use pe_find_session_by_session_id() to obtain the PE session context */
|
/* 090803: Use pe_find_session_by_session_id() to obtain the PE session context */
|
||||||
/* from the sessionId in the Rsp Msg from HAL */
|
/* from the sessionId in the Rsp Msg from HAL */
|
||||||
psessionEntry = pe_find_session_by_session_id(mac, pAddTsRspMsg->sessionId);
|
pe_session = pe_find_session_by_session_id(mac, pAddTsRspMsg->sessionId);
|
||||||
|
|
||||||
if (psessionEntry == NULL) {
|
if (pe_session == NULL) {
|
||||||
pe_err("Session does Not exist with given sessionId: %d",
|
pe_err("Session does Not exist with given sessionId: %d",
|
||||||
pAddTsRspMsg->sessionId);
|
pAddTsRspMsg->sessionId);
|
||||||
lim_send_sme_addts_rsp(mac, rspReqd, eSIR_SME_ADDTS_RSP_FAILED,
|
lim_send_sme_addts_rsp(mac, rspReqd, eSIR_SME_ADDTS_RSP_FAILED,
|
||||||
psessionEntry, pAddTsRspMsg->tspec,
|
pe_session, pAddTsRspMsg->tspec,
|
||||||
mac->lim.gLimAddtsReq.sessionId,
|
mac->lim.gLimAddtsReq.sessionId,
|
||||||
mac->lim.gLimAddtsReq.transactionId);
|
mac->lim.gLimAddtsReq.transactionId);
|
||||||
goto end;
|
goto end;
|
||||||
@@ -1005,25 +1005,25 @@ void lim_process_hal_add_ts_rsp(tpAniSirGlobal mac,
|
|||||||
pe_debug("Received successful ADDTS response from HAL");
|
pe_debug("Received successful ADDTS response from HAL");
|
||||||
/* Use the smesessionId and smetransactionId from the PE session context */
|
/* Use the smesessionId and smetransactionId from the PE session context */
|
||||||
lim_send_sme_addts_rsp(mac, rspReqd, eSIR_SME_SUCCESS,
|
lim_send_sme_addts_rsp(mac, rspReqd, eSIR_SME_SUCCESS,
|
||||||
psessionEntry, pAddTsRspMsg->tspec,
|
pe_session, pAddTsRspMsg->tspec,
|
||||||
psessionEntry->smeSessionId,
|
pe_session->smeSessionId,
|
||||||
psessionEntry->transactionId);
|
pe_session->transactionId);
|
||||||
goto end;
|
goto end;
|
||||||
} else {
|
} else {
|
||||||
pe_debug("Received failure ADDTS response from HAL");
|
pe_debug("Received failure ADDTS response from HAL");
|
||||||
/* Send DELTS action frame to AP */
|
/* Send DELTS action frame to AP */
|
||||||
/* 090803: Get peer MAC addr from session */
|
/* 090803: Get peer MAC addr from session */
|
||||||
sir_copy_mac_addr(peerMacAddr, psessionEntry->bssId);
|
sir_copy_mac_addr(peerMacAddr, pe_session->bssId);
|
||||||
|
|
||||||
/* 090803: Add the SME Session ID */
|
/* 090803: Add the SME Session ID */
|
||||||
lim_send_delts_req_action_frame(mac, peerMacAddr, rspReqd,
|
lim_send_delts_req_action_frame(mac, peerMacAddr, rspReqd,
|
||||||
&pAddTsRspMsg->tspec.tsinfo,
|
&pAddTsRspMsg->tspec.tsinfo,
|
||||||
&pAddTsRspMsg->tspec, psessionEntry);
|
&pAddTsRspMsg->tspec, pe_session);
|
||||||
|
|
||||||
/* Delete TSPEC */
|
/* Delete TSPEC */
|
||||||
/* 090803: Pull the hash table from the session */
|
/* 090803: Pull the hash table from the session */
|
||||||
pSta = dph_lookup_assoc_id(mac, pAddTsRspMsg->staIdx, &assocId,
|
pSta = dph_lookup_assoc_id(mac, pAddTsRspMsg->staIdx, &assocId,
|
||||||
&psessionEntry->dph.dphHashTable);
|
&pe_session->dph.dphHashTable);
|
||||||
if (pSta != NULL)
|
if (pSta != NULL)
|
||||||
lim_admit_control_delete_ts(mac, assocId,
|
lim_admit_control_delete_ts(mac, assocId,
|
||||||
&pAddTsRspMsg->tspec.tsinfo,
|
&pAddTsRspMsg->tspec.tsinfo,
|
||||||
@@ -1034,9 +1034,9 @@ void lim_process_hal_add_ts_rsp(tpAniSirGlobal mac,
|
|||||||
/* Send SME_ADDTS_RSP */
|
/* Send SME_ADDTS_RSP */
|
||||||
/* 090803: Use the smesessionId and smetransactionId from the PE session context */
|
/* 090803: Use the smesessionId and smetransactionId from the PE session context */
|
||||||
lim_send_sme_addts_rsp(mac, rspReqd, eSIR_SME_ADDTS_RSP_FAILED,
|
lim_send_sme_addts_rsp(mac, rspReqd, eSIR_SME_ADDTS_RSP_FAILED,
|
||||||
psessionEntry, pAddTsRspMsg->tspec,
|
pe_session, pAddTsRspMsg->tspec,
|
||||||
psessionEntry->smeSessionId,
|
pe_session->smeSessionId,
|
||||||
psessionEntry->transactionId);
|
pe_session->transactionId);
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -43,7 +43,7 @@
|
|||||||
/**
|
/**
|
||||||
* lim_init_peer_idxpool() -- initializes peer index pool
|
* lim_init_peer_idxpool() -- initializes peer index pool
|
||||||
* @mac: mac context
|
* @mac: mac context
|
||||||
* @pSessionEntry: session entry
|
* @pe_session: session entry
|
||||||
*
|
*
|
||||||
* This function is called while starting a BSS at AP
|
* This function is called while starting a BSS at AP
|
||||||
* to initialize AID pool. This may also be called while
|
* to initialize AID pool. This may also be called while
|
||||||
@@ -53,12 +53,12 @@
|
|||||||
* Return: None
|
* Return: None
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void lim_init_peer_idxpool(tpAniSirGlobal mac, struct pe_session *pSessionEntry)
|
void lim_init_peer_idxpool(tpAniSirGlobal mac, struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
uint8_t i;
|
uint8_t i;
|
||||||
uint8_t maxAssocSta = mac->lim.maxStation;
|
uint8_t maxAssocSta = mac->lim.maxStation;
|
||||||
|
|
||||||
pSessionEntry->gpLimPeerIdxpool[0] = 0;
|
pe_session->gpLimPeerIdxpool[0] = 0;
|
||||||
|
|
||||||
#ifdef FEATURE_WLAN_TDLS
|
#ifdef FEATURE_WLAN_TDLS
|
||||||
/*
|
/*
|
||||||
@@ -67,25 +67,25 @@ void lim_init_peer_idxpool(tpAniSirGlobal mac, struct pe_session *pSessionEntry)
|
|||||||
* and get index starting from (DPH_STA_HASH_INDEX_PEER + 1)
|
* and get index starting from (DPH_STA_HASH_INDEX_PEER + 1)
|
||||||
* (index 2) for TDLS stations;
|
* (index 2) for TDLS stations;
|
||||||
*/
|
*/
|
||||||
if (LIM_IS_STA_ROLE(pSessionEntry)) {
|
if (LIM_IS_STA_ROLE(pe_session)) {
|
||||||
pSessionEntry->freePeerIdxHead = DPH_STA_HASH_INDEX_PEER + 1;
|
pe_session->freePeerIdxHead = DPH_STA_HASH_INDEX_PEER + 1;
|
||||||
} else
|
} else
|
||||||
#endif
|
#endif
|
||||||
#ifdef QCA_IBSS_SUPPORT
|
#ifdef QCA_IBSS_SUPPORT
|
||||||
if (LIM_IS_IBSS_ROLE(pSessionEntry)) {
|
if (LIM_IS_IBSS_ROLE(pe_session)) {
|
||||||
pSessionEntry->freePeerIdxHead = LIM_START_PEER_IDX;
|
pe_session->freePeerIdxHead = LIM_START_PEER_IDX;
|
||||||
} else
|
} else
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
pSessionEntry->freePeerIdxHead = LIM_START_PEER_IDX;
|
pe_session->freePeerIdxHead = LIM_START_PEER_IDX;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = pSessionEntry->freePeerIdxHead; i < maxAssocSta; i++) {
|
for (i = pe_session->freePeerIdxHead; i < maxAssocSta; i++) {
|
||||||
pSessionEntry->gpLimPeerIdxpool[i] = i + 1;
|
pe_session->gpLimPeerIdxpool[i] = i + 1;
|
||||||
}
|
}
|
||||||
pSessionEntry->gpLimPeerIdxpool[i] = 0;
|
pe_session->gpLimPeerIdxpool[i] = 0;
|
||||||
|
|
||||||
pSessionEntry->freePeerIdxTail = i;
|
pe_session->freePeerIdxTail = i;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -109,7 +109,7 @@ void lim_init_peer_idxpool(tpAniSirGlobal mac, struct pe_session *pSessionEntry)
|
|||||||
* @return peerIdx - assigned peer Station IDx for STA
|
* @return peerIdx - assigned peer Station IDx for STA
|
||||||
*/
|
*/
|
||||||
|
|
||||||
uint16_t lim_assign_peer_idx(tpAniSirGlobal mac, struct pe_session *pSessionEntry)
|
uint16_t lim_assign_peer_idx(tpAniSirGlobal mac, struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
uint16_t peerId;
|
uint16_t peerId;
|
||||||
|
|
||||||
@@ -123,14 +123,14 @@ uint16_t lim_assign_peer_idx(tpAniSirGlobal mac, struct pe_session *pSessionEntr
|
|||||||
|
|
||||||
/* return head of free list */
|
/* return head of free list */
|
||||||
|
|
||||||
if (pSessionEntry->freePeerIdxHead) {
|
if (pe_session->freePeerIdxHead) {
|
||||||
peerId = pSessionEntry->freePeerIdxHead;
|
peerId = pe_session->freePeerIdxHead;
|
||||||
pSessionEntry->freePeerIdxHead =
|
pe_session->freePeerIdxHead =
|
||||||
pSessionEntry->gpLimPeerIdxpool[pSessionEntry->
|
pe_session->gpLimPeerIdxpool[pe_session->
|
||||||
freePeerIdxHead];
|
freePeerIdxHead];
|
||||||
if (pSessionEntry->freePeerIdxHead == 0)
|
if (pe_session->freePeerIdxHead == 0)
|
||||||
pSessionEntry->freePeerIdxTail = 0;
|
pe_session->freePeerIdxTail = 0;
|
||||||
pSessionEntry->gLimNumOfCurrentSTAs++;
|
pe_session->gLimNumOfCurrentSTAs++;
|
||||||
return peerId;
|
return peerId;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -160,19 +160,19 @@ uint16_t lim_assign_peer_idx(tpAniSirGlobal mac, struct pe_session *pSessionEntr
|
|||||||
|
|
||||||
void
|
void
|
||||||
lim_release_peer_idx(tpAniSirGlobal mac, uint16_t peerIdx,
|
lim_release_peer_idx(tpAniSirGlobal mac, uint16_t peerIdx,
|
||||||
struct pe_session *pSessionEntry)
|
struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
pSessionEntry->gLimNumOfCurrentSTAs--;
|
pe_session->gLimNumOfCurrentSTAs--;
|
||||||
|
|
||||||
/* insert at tail of free list */
|
/* insert at tail of free list */
|
||||||
if (pSessionEntry->freePeerIdxTail) {
|
if (pe_session->freePeerIdxTail) {
|
||||||
pSessionEntry->gpLimPeerIdxpool[pSessionEntry->
|
pe_session->gpLimPeerIdxpool[pe_session->
|
||||||
freePeerIdxTail] =
|
freePeerIdxTail] =
|
||||||
(uint8_t) peerIdx;
|
(uint8_t) peerIdx;
|
||||||
pSessionEntry->freePeerIdxTail = (uint8_t) peerIdx;
|
pe_session->freePeerIdxTail = (uint8_t) peerIdx;
|
||||||
} else {
|
} else {
|
||||||
pSessionEntry->freePeerIdxTail =
|
pe_session->freePeerIdxTail =
|
||||||
pSessionEntry->freePeerIdxHead = (uint8_t) peerIdx;
|
pe_session->freePeerIdxHead = (uint8_t) peerIdx;
|
||||||
}
|
}
|
||||||
pSessionEntry->gpLimPeerIdxpool[(uint8_t) peerIdx] = 0;
|
pe_session->gpLimPeerIdxpool[(uint8_t) peerIdx] = 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -232,7 +232,7 @@ static void __lim_init_assoc_vars(tpAniSirGlobal mac)
|
|||||||
qdf_mem_set(mac->lim.protStaCache,
|
qdf_mem_set(mac->lim.protStaCache,
|
||||||
sizeof(tCacheParams) * LIM_PROT_STA_CACHE_SIZE, 0);
|
sizeof(tCacheParams) * LIM_PROT_STA_CACHE_SIZE, 0);
|
||||||
|
|
||||||
mac->lim.pSessionEntry = NULL;
|
mac->lim.pe_session = NULL;
|
||||||
mac->lim.reAssocRetryAttempt = 0;
|
mac->lim.reAssocRetryAttempt = 0;
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -1434,13 +1434,13 @@ uint8_t lim_is_system_in_scan_state(tpAniSirGlobal mac)
|
|||||||
|
|
||||||
void
|
void
|
||||||
lim_received_hb_handler(tpAniSirGlobal mac, uint8_t channelId,
|
lim_received_hb_handler(tpAniSirGlobal mac, uint8_t channelId,
|
||||||
struct pe_session *psessionEntry)
|
struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
if ((channelId == 0)
|
if ((channelId == 0)
|
||||||
|| (channelId == psessionEntry->currentOperChannel))
|
|| (channelId == pe_session->currentOperChannel))
|
||||||
psessionEntry->LimRxedBeaconCntDuringHB++;
|
pe_session->LimRxedBeaconCntDuringHB++;
|
||||||
|
|
||||||
psessionEntry->pmmOffloadInfo.bcnmiss = false;
|
pe_session->pmmOffloadInfo.bcnmiss = false;
|
||||||
} /*** lim_init_wds_info_params() ***/
|
} /*** lim_init_wds_info_params() ***/
|
||||||
|
|
||||||
/** -------------------------------------------------------------
|
/** -------------------------------------------------------------
|
||||||
@@ -1560,7 +1560,7 @@ static bool lim_ibss_enc_type_matched(tpSchBeaconStruct pBeacon,
|
|||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
lim_handle_ibss_coalescing(tpAniSirGlobal mac,
|
lim_handle_ibss_coalescing(tpAniSirGlobal mac,
|
||||||
tpSchBeaconStruct pBeacon,
|
tpSchBeaconStruct pBeacon,
|
||||||
uint8_t *pRxPacketInfo, struct pe_session *psessionEntry)
|
uint8_t *pRxPacketInfo, struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
tpSirMacMgmtHdr pHdr;
|
tpSirMacMgmtHdr pHdr;
|
||||||
QDF_STATUS retCode;
|
QDF_STATUS retCode;
|
||||||
@@ -1574,14 +1574,14 @@ lim_handle_ibss_coalescing(tpAniSirGlobal mac,
|
|||||||
4. Encyption type in the beacon does not match with self station
|
4. Encyption type in the beacon does not match with self station
|
||||||
*/
|
*/
|
||||||
if ((!pBeacon->capabilityInfo.ibss) ||
|
if ((!pBeacon->capabilityInfo.ibss) ||
|
||||||
lim_cmp_ssid(&pBeacon->ssId, psessionEntry) ||
|
lim_cmp_ssid(&pBeacon->ssId, pe_session) ||
|
||||||
(psessionEntry->currentOperChannel != pBeacon->channelNumber))
|
(pe_session->currentOperChannel != pBeacon->channelNumber))
|
||||||
retCode = QDF_STATUS_E_INVAL;
|
retCode = QDF_STATUS_E_INVAL;
|
||||||
else if (lim_ibss_enc_type_matched(pBeacon, psessionEntry) != true) {
|
else if (lim_ibss_enc_type_matched(pBeacon, pe_session) != true) {
|
||||||
pe_debug("peer privacy: %d peer wpa: %d peer rsn: %d self encType: %d",
|
pe_debug("peer privacy: %d peer wpa: %d peer rsn: %d self encType: %d",
|
||||||
pBeacon->capabilityInfo.privacy,
|
pBeacon->capabilityInfo.privacy,
|
||||||
pBeacon->wpaPresent, pBeacon->rsnPresent,
|
pBeacon->wpaPresent, pBeacon->rsnPresent,
|
||||||
psessionEntry->encryptType);
|
pe_session->encryptType);
|
||||||
retCode = QDF_STATUS_E_INVAL;
|
retCode = QDF_STATUS_E_INVAL;
|
||||||
} else {
|
} else {
|
||||||
uint32_t ieLen;
|
uint32_t ieLen;
|
||||||
@@ -1594,7 +1594,7 @@ lim_handle_ibss_coalescing(tpAniSirGlobal mac,
|
|||||||
pe_debug("BEFORE Coalescing tsfLater val: %d", tsfLater);
|
pe_debug("BEFORE Coalescing tsfLater val: %d", tsfLater);
|
||||||
retCode =
|
retCode =
|
||||||
lim_ibss_coalesce(mac, pHdr, pBeacon, pIEs, ieLen, tsfLater,
|
lim_ibss_coalesce(mac, pHdr, pBeacon, pIEs, ieLen, tsfLater,
|
||||||
psessionEntry);
|
pe_session);
|
||||||
}
|
}
|
||||||
return retCode;
|
return retCode;
|
||||||
} /*** end lim_handle_ibs_scoalescing() ***/
|
} /*** end lim_handle_ibs_scoalescing() ***/
|
||||||
@@ -1704,7 +1704,7 @@ lim_enc_type_matched(tpAniSirGlobal mac_ctx,
|
|||||||
void
|
void
|
||||||
lim_detect_change_in_ap_capabilities(tpAniSirGlobal mac,
|
lim_detect_change_in_ap_capabilities(tpAniSirGlobal mac,
|
||||||
tpSirProbeRespBeacon pBeacon,
|
tpSirProbeRespBeacon pBeacon,
|
||||||
struct pe_session *psessionEntry)
|
struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
uint8_t len;
|
uint8_t len;
|
||||||
tSirSmeApNewCaps apNewCaps;
|
tSirSmeApNewCaps apNewCaps;
|
||||||
@@ -1717,41 +1717,41 @@ lim_detect_change_in_ap_capabilities(tpAniSirGlobal mac,
|
|||||||
newChannel = (uint8_t) pBeacon->channelNumber;
|
newChannel = (uint8_t) pBeacon->channelNumber;
|
||||||
|
|
||||||
security_caps_matched = lim_enc_type_matched(mac, pBeacon,
|
security_caps_matched = lim_enc_type_matched(mac, pBeacon,
|
||||||
psessionEntry);
|
pe_session);
|
||||||
if ((false == psessionEntry->limSentCapsChangeNtf) &&
|
if ((false == pe_session->limSentCapsChangeNtf) &&
|
||||||
(((!lim_is_null_ssid(&pBeacon->ssId)) &&
|
(((!lim_is_null_ssid(&pBeacon->ssId)) &&
|
||||||
lim_cmp_ssid(&pBeacon->ssId, psessionEntry)) ||
|
lim_cmp_ssid(&pBeacon->ssId, pe_session)) ||
|
||||||
((SIR_MAC_GET_ESS(apNewCaps.capabilityInfo) !=
|
((SIR_MAC_GET_ESS(apNewCaps.capabilityInfo) !=
|
||||||
SIR_MAC_GET_ESS(psessionEntry->limCurrentBssCaps)) ||
|
SIR_MAC_GET_ESS(pe_session->limCurrentBssCaps)) ||
|
||||||
(SIR_MAC_GET_PRIVACY(apNewCaps.capabilityInfo) !=
|
(SIR_MAC_GET_PRIVACY(apNewCaps.capabilityInfo) !=
|
||||||
SIR_MAC_GET_PRIVACY(psessionEntry->limCurrentBssCaps)) ||
|
SIR_MAC_GET_PRIVACY(pe_session->limCurrentBssCaps)) ||
|
||||||
(SIR_MAC_GET_QOS(apNewCaps.capabilityInfo) !=
|
(SIR_MAC_GET_QOS(apNewCaps.capabilityInfo) !=
|
||||||
SIR_MAC_GET_QOS(psessionEntry->limCurrentBssCaps)) ||
|
SIR_MAC_GET_QOS(pe_session->limCurrentBssCaps)) ||
|
||||||
((newChannel != psessionEntry->currentOperChannel) &&
|
((newChannel != pe_session->currentOperChannel) &&
|
||||||
(newChannel != 0)) ||
|
(newChannel != 0)) ||
|
||||||
(false == security_caps_matched)
|
(false == security_caps_matched)
|
||||||
))) {
|
))) {
|
||||||
if (false == psessionEntry->fWaitForProbeRsp) {
|
if (false == pe_session->fWaitForProbeRsp) {
|
||||||
/* If Beacon capabilities is not matching with the current capability,
|
/* If Beacon capabilities is not matching with the current capability,
|
||||||
* then send unicast probe request to AP and take decision after
|
* then send unicast probe request to AP and take decision after
|
||||||
* receiving probe response */
|
* receiving probe response */
|
||||||
if (true == psessionEntry->fIgnoreCapsChange) {
|
if (true == pe_session->fIgnoreCapsChange) {
|
||||||
pe_debug("Ignoring the Capability change as it is false alarm");
|
pe_debug("Ignoring the Capability change as it is false alarm");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
psessionEntry->fWaitForProbeRsp = true;
|
pe_session->fWaitForProbeRsp = true;
|
||||||
pe_warn("AP capabilities are not matching, sending directed probe request");
|
pe_warn("AP capabilities are not matching, sending directed probe request");
|
||||||
status =
|
status =
|
||||||
lim_send_probe_req_mgmt_frame(mac, &psessionEntry->ssId,
|
lim_send_probe_req_mgmt_frame(mac, &pe_session->ssId,
|
||||||
psessionEntry->bssId,
|
pe_session->bssId,
|
||||||
psessionEntry->currentOperChannel,
|
pe_session->currentOperChannel,
|
||||||
psessionEntry->selfMacAddr,
|
pe_session->selfMacAddr,
|
||||||
psessionEntry->dot11mode,
|
pe_session->dot11mode,
|
||||||
NULL, NULL);
|
NULL, NULL);
|
||||||
|
|
||||||
if (QDF_STATUS_SUCCESS != status) {
|
if (QDF_STATUS_SUCCESS != status) {
|
||||||
pe_err("send ProbeReq failed");
|
pe_err("send ProbeReq failed");
|
||||||
psessionEntry->fWaitForProbeRsp = false;
|
pe_session->fWaitForProbeRsp = false;
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -1763,10 +1763,10 @@ lim_detect_change_in_ap_capabilities(tpAniSirGlobal mac,
|
|||||||
pBeacon->ssId.length + 1;
|
pBeacon->ssId.length + 1;
|
||||||
|
|
||||||
qdf_mem_copy(apNewCaps.bssId.bytes,
|
qdf_mem_copy(apNewCaps.bssId.bytes,
|
||||||
psessionEntry->bssId, QDF_MAC_ADDR_SIZE);
|
pe_session->bssId, QDF_MAC_ADDR_SIZE);
|
||||||
if (newChannel != psessionEntry->currentOperChannel) {
|
if (newChannel != pe_session->currentOperChannel) {
|
||||||
pe_err("Channel Change from %d --> %d Ignoring beacon!",
|
pe_err("Channel Change from %d --> %d Ignoring beacon!",
|
||||||
psessionEntry->currentOperChannel, newChannel);
|
pe_session->currentOperChannel, newChannel);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1785,18 +1785,18 @@ lim_detect_change_in_ap_capabilities(tpAniSirGlobal mac,
|
|||||||
pe_err("BSS Caps (Privacy) bit 0 in beacon, but WPA or RSN IE present, Ignore Beacon!");
|
pe_err("BSS Caps (Privacy) bit 0 in beacon, but WPA or RSN IE present, Ignore Beacon!");
|
||||||
return;
|
return;
|
||||||
} else
|
} else
|
||||||
apNewCaps.channelId = psessionEntry->currentOperChannel;
|
apNewCaps.channelId = pe_session->currentOperChannel;
|
||||||
qdf_mem_copy((uint8_t *) &apNewCaps.ssId,
|
qdf_mem_copy((uint8_t *) &apNewCaps.ssId,
|
||||||
(uint8_t *) &pBeacon->ssId,
|
(uint8_t *) &pBeacon->ssId,
|
||||||
pBeacon->ssId.length + 1);
|
pBeacon->ssId.length + 1);
|
||||||
|
|
||||||
psessionEntry->fIgnoreCapsChange = false;
|
pe_session->fIgnoreCapsChange = false;
|
||||||
psessionEntry->fWaitForProbeRsp = false;
|
pe_session->fWaitForProbeRsp = false;
|
||||||
psessionEntry->limSentCapsChangeNtf = true;
|
pe_session->limSentCapsChangeNtf = true;
|
||||||
lim_send_sme_wm_status_change_ntf(mac, eSIR_SME_AP_CAPS_CHANGED,
|
lim_send_sme_wm_status_change_ntf(mac, eSIR_SME_AP_CAPS_CHANGED,
|
||||||
(uint32_t *) &apNewCaps,
|
(uint32_t *) &apNewCaps,
|
||||||
len, psessionEntry->smeSessionId);
|
len, pe_session->smeSessionId);
|
||||||
} else if (true == psessionEntry->fWaitForProbeRsp) {
|
} else if (true == pe_session->fWaitForProbeRsp) {
|
||||||
/* Only for probe response frames and matching capabilities the control
|
/* Only for probe response frames and matching capabilities the control
|
||||||
* will come here. If beacon is with broadcast ssid then fWaitForProbeRsp
|
* will come here. If beacon is with broadcast ssid then fWaitForProbeRsp
|
||||||
* will be false, the control will not come here*/
|
* will be false, the control will not come here*/
|
||||||
@@ -1805,8 +1805,8 @@ lim_detect_change_in_ap_capabilities(tpAniSirGlobal mac,
|
|||||||
"matching with the current setting,"
|
"matching with the current setting,"
|
||||||
"Ignoring subsequent capability"
|
"Ignoring subsequent capability"
|
||||||
"mismatch");
|
"mismatch");
|
||||||
psessionEntry->fIgnoreCapsChange = true;
|
pe_session->fIgnoreCapsChange = true;
|
||||||
psessionEntry->fWaitForProbeRsp = false;
|
pe_session->fWaitForProbeRsp = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
} /*** lim_detect_change_in_ap_capabilities() ***/
|
} /*** lim_detect_change_in_ap_capabilities() ***/
|
||||||
@@ -1831,7 +1831,7 @@ lim_detect_change_in_ap_capabilities(tpAniSirGlobal mac,
|
|||||||
QDF_STATUS lim_update_short_slot(tpAniSirGlobal mac,
|
QDF_STATUS lim_update_short_slot(tpAniSirGlobal mac,
|
||||||
tpSirProbeRespBeacon pBeacon,
|
tpSirProbeRespBeacon pBeacon,
|
||||||
tpUpdateBeaconParams pBeaconParams,
|
tpUpdateBeaconParams pBeaconParams,
|
||||||
struct pe_session *psessionEntry)
|
struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
|
|
||||||
tSirSmeApNewCaps apNewCaps;
|
tSirSmeApNewCaps apNewCaps;
|
||||||
@@ -1843,7 +1843,7 @@ QDF_STATUS lim_update_short_slot(tpAniSirGlobal mac,
|
|||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
|
|
||||||
/* Check for 11a mode or 11b mode. In both cases return since slot time is constant and cannot/should not change in beacon */
|
/* Check for 11a mode or 11b mode. In both cases return since slot time is constant and cannot/should not change in beacon */
|
||||||
lim_get_phy_mode(mac, &phyMode, psessionEntry);
|
lim_get_phy_mode(mac, &phyMode, pe_session);
|
||||||
if ((phyMode == WNI_CFG_PHY_MODE_11A)
|
if ((phyMode == WNI_CFG_PHY_MODE_11A)
|
||||||
|| (phyMode == WNI_CFG_PHY_MODE_11B))
|
|| (phyMode == WNI_CFG_PHY_MODE_11B))
|
||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
@@ -1872,13 +1872,13 @@ QDF_STATUS lim_update_short_slot(tpAniSirGlobal mac,
|
|||||||
*/
|
*/
|
||||||
nShortSlot = SIR_MAC_GET_SHORT_SLOT_TIME(apNewCaps.capabilityInfo);
|
nShortSlot = SIR_MAC_GET_SHORT_SLOT_TIME(apNewCaps.capabilityInfo);
|
||||||
|
|
||||||
if (nShortSlot != psessionEntry->shortSlotTimeSupported) {
|
if (nShortSlot != pe_session->shortSlotTimeSupported) {
|
||||||
/* Short slot time capability of AP has changed. Adopt to it. */
|
/* Short slot time capability of AP has changed. Adopt to it. */
|
||||||
pe_debug("Shortslot capability of AP changed: %d",
|
pe_debug("Shortslot capability of AP changed: %d",
|
||||||
nShortSlot);
|
nShortSlot);
|
||||||
((tpSirMacCapabilityInfo) & psessionEntry->
|
((tpSirMacCapabilityInfo) & pe_session->
|
||||||
limCurrentBssCaps)->shortSlotTime = (uint16_t) nShortSlot;
|
limCurrentBssCaps)->shortSlotTime = (uint16_t) nShortSlot;
|
||||||
psessionEntry->shortSlotTimeSupported = nShortSlot;
|
pe_session->shortSlotTimeSupported = nShortSlot;
|
||||||
pBeaconParams->fShortSlotTime = (uint8_t) nShortSlot;
|
pBeaconParams->fShortSlotTime = (uint8_t) nShortSlot;
|
||||||
pBeaconParams->paramChangeBitmap |=
|
pBeaconParams->paramChangeBitmap |=
|
||||||
PARAM_SHORT_SLOT_TIME_CHANGED;
|
PARAM_SHORT_SLOT_TIME_CHANGED;
|
||||||
@@ -1888,14 +1888,14 @@ QDF_STATUS lim_update_short_slot(tpAniSirGlobal mac,
|
|||||||
|
|
||||||
|
|
||||||
void lim_send_heart_beat_timeout_ind(tpAniSirGlobal mac,
|
void lim_send_heart_beat_timeout_ind(tpAniSirGlobal mac,
|
||||||
struct pe_session *psessionEntry)
|
struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
QDF_STATUS status;
|
QDF_STATUS status;
|
||||||
struct scheduler_msg msg = {0};
|
struct scheduler_msg msg = {0};
|
||||||
|
|
||||||
/* Prepare and post message to LIM Message Queue */
|
/* Prepare and post message to LIM Message Queue */
|
||||||
msg.type = (uint16_t) SIR_LIM_HEART_BEAT_TIMEOUT;
|
msg.type = (uint16_t) SIR_LIM_HEART_BEAT_TIMEOUT;
|
||||||
msg.bodyptr = psessionEntry;
|
msg.bodyptr = pe_session;
|
||||||
msg.bodyval = 0;
|
msg.bodyval = 0;
|
||||||
pe_err("Heartbeat failure from Fw");
|
pe_err("Heartbeat failure from Fw");
|
||||||
|
|
||||||
@@ -1922,20 +1922,20 @@ void lim_ps_offload_handle_missed_beacon_ind(tpAniSirGlobal mac,
|
|||||||
{
|
{
|
||||||
tpSirSmeMissedBeaconInd pSirMissedBeaconInd =
|
tpSirSmeMissedBeaconInd pSirMissedBeaconInd =
|
||||||
(tpSirSmeMissedBeaconInd) pMsg->bodyptr;
|
(tpSirSmeMissedBeaconInd) pMsg->bodyptr;
|
||||||
struct pe_session *psessionEntry =
|
struct pe_session *pe_session =
|
||||||
pe_find_session_by_bss_idx(mac, pSirMissedBeaconInd->bssIdx);
|
pe_find_session_by_bss_idx(mac, pSirMissedBeaconInd->bssIdx);
|
||||||
|
|
||||||
if (!psessionEntry) {
|
if (!pe_session) {
|
||||||
pe_err("session does not exist for given BSSId");
|
pe_err("session does not exist for given BSSId");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Set Beacon Miss in Powersave Offload */
|
/* Set Beacon Miss in Powersave Offload */
|
||||||
psessionEntry->pmmOffloadInfo.bcnmiss = true;
|
pe_session->pmmOffloadInfo.bcnmiss = true;
|
||||||
pe_err("Received Heart Beat Failure");
|
pe_err("Received Heart Beat Failure");
|
||||||
|
|
||||||
/* Do AP probing immediately */
|
/* Do AP probing immediately */
|
||||||
lim_send_heart_beat_timeout_ind(mac, psessionEntry);
|
lim_send_heart_beat_timeout_ind(mac, pe_session);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2453,10 +2453,10 @@ static bool lim_is_beacon_miss_scenario(tpAniSirGlobal mac,
|
|||||||
{
|
{
|
||||||
tpSirMacMgmtHdr pHdr = WMA_GET_RX_MAC_HEADER(pRxPacketInfo);
|
tpSirMacMgmtHdr pHdr = WMA_GET_RX_MAC_HEADER(pRxPacketInfo);
|
||||||
uint8_t sessionId;
|
uint8_t sessionId;
|
||||||
struct pe_session *psessionEntry =
|
struct pe_session *pe_session =
|
||||||
pe_find_session_by_bssid(mac, pHdr->bssId, &sessionId);
|
pe_find_session_by_bssid(mac, pHdr->bssId, &sessionId);
|
||||||
|
|
||||||
if (psessionEntry && psessionEntry->pmmOffloadInfo.bcnmiss)
|
if (pe_session && pe_session->pmmOffloadInfo.bcnmiss)
|
||||||
return true;
|
return true;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -2486,7 +2486,7 @@ tMgmtFrmDropReason lim_is_pkt_candidate_for_drop(tpAniSirGlobal mac,
|
|||||||
uint8_t *pBody;
|
uint8_t *pBody;
|
||||||
tSirMacCapabilityInfo capabilityInfo;
|
tSirMacCapabilityInfo capabilityInfo;
|
||||||
tpSirMacMgmtHdr pHdr = NULL;
|
tpSirMacMgmtHdr pHdr = NULL;
|
||||||
struct pe_session *psessionEntry = NULL;
|
struct pe_session *pe_session = NULL;
|
||||||
uint8_t sessionId;
|
uint8_t sessionId;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -2531,11 +2531,11 @@ tMgmtFrmDropReason lim_is_pkt_candidate_for_drop(tpAniSirGlobal mac,
|
|||||||
} else if ((subType == SIR_MAC_MGMT_PROBE_REQ) &&
|
} else if ((subType == SIR_MAC_MGMT_PROBE_REQ) &&
|
||||||
(!WMA_GET_RX_BEACON_SENT(pRxPacketInfo))) {
|
(!WMA_GET_RX_BEACON_SENT(pRxPacketInfo))) {
|
||||||
pHdr = WMA_GET_RX_MAC_HEADER(pRxPacketInfo);
|
pHdr = WMA_GET_RX_MAC_HEADER(pRxPacketInfo);
|
||||||
psessionEntry = pe_find_session_by_bssid(mac,
|
pe_session = pe_find_session_by_bssid(mac,
|
||||||
pHdr->bssId,
|
pHdr->bssId,
|
||||||
&sessionId);
|
&sessionId);
|
||||||
if ((psessionEntry && !LIM_IS_IBSS_ROLE(psessionEntry)) ||
|
if ((pe_session && !LIM_IS_IBSS_ROLE(pe_session)) ||
|
||||||
(!psessionEntry))
|
(!pe_session))
|
||||||
return eMGMT_DROP_NO_DROP;
|
return eMGMT_DROP_NO_DROP;
|
||||||
|
|
||||||
/* Drop the Probe Request in IBSS mode, if STA did not send out the last beacon */
|
/* Drop the Probe Request in IBSS mode, if STA did not send out the last beacon */
|
||||||
@@ -2546,9 +2546,9 @@ tMgmtFrmDropReason lim_is_pkt_candidate_for_drop(tpAniSirGlobal mac,
|
|||||||
struct tLimPreAuthNode *auth_node;
|
struct tLimPreAuthNode *auth_node;
|
||||||
|
|
||||||
pHdr = WMA_GET_RX_MAC_HEADER(pRxPacketInfo);
|
pHdr = WMA_GET_RX_MAC_HEADER(pRxPacketInfo);
|
||||||
psessionEntry = pe_find_session_by_bssid(mac, pHdr->bssId,
|
pe_session = pe_find_session_by_bssid(mac, pHdr->bssId,
|
||||||
&sessionId);
|
&sessionId);
|
||||||
if (!psessionEntry)
|
if (!pe_session)
|
||||||
return eMGMT_DROP_NO_DROP;
|
return eMGMT_DROP_NO_DROP;
|
||||||
|
|
||||||
curr_seq_num = ((pHdr->seqControl.seqNumHi << 4) |
|
curr_seq_num = ((pHdr->seqControl.seqNumHi << 4) |
|
||||||
@@ -2569,11 +2569,11 @@ tMgmtFrmDropReason lim_is_pkt_candidate_for_drop(tpAniSirGlobal mac,
|
|||||||
qdf_time_t *timestamp;
|
qdf_time_t *timestamp;
|
||||||
|
|
||||||
pHdr = WMA_GET_RX_MAC_HEADER(pRxPacketInfo);
|
pHdr = WMA_GET_RX_MAC_HEADER(pRxPacketInfo);
|
||||||
psessionEntry = pe_find_session_by_bssid(mac, pHdr->bssId,
|
pe_session = pe_find_session_by_bssid(mac, pHdr->bssId,
|
||||||
&sessionId);
|
&sessionId);
|
||||||
if (!psessionEntry)
|
if (!pe_session)
|
||||||
return eMGMT_DROP_NO_DROP;
|
return eMGMT_DROP_NO_DROP;
|
||||||
dph_table = &psessionEntry->dph.dphHashTable;
|
dph_table = &pe_session->dph.dphHashTable;
|
||||||
sta_ds = dph_lookup_hash_entry(mac, pHdr->sa, &assoc_id,
|
sta_ds = dph_lookup_hash_entry(mac, pHdr->sa, &assoc_id,
|
||||||
dph_table);
|
dph_table);
|
||||||
if (!sta_ds) {
|
if (!sta_ds) {
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -62,7 +62,7 @@ QDF_STATUS lim_populate_peer_rate_set(tpAniSirGlobal mac,
|
|||||||
tpSirSupportedRates pRates,
|
tpSirSupportedRates pRates,
|
||||||
uint8_t *pSupportedMCSSet,
|
uint8_t *pSupportedMCSSet,
|
||||||
uint8_t basicOnly,
|
uint8_t basicOnly,
|
||||||
struct pe_session *psessionEntry,
|
struct pe_session *pe_session,
|
||||||
tDot11fIEVHTCaps *pVHTCaps,
|
tDot11fIEVHTCaps *pVHTCaps,
|
||||||
tDot11fIEhe_cap *he_caps);
|
tDot11fIEhe_cap *he_caps);
|
||||||
|
|
||||||
@@ -70,7 +70,7 @@ QDF_STATUS lim_populate_own_rate_set(tpAniSirGlobal mac,
|
|||||||
tpSirSupportedRates pRates,
|
tpSirSupportedRates pRates,
|
||||||
uint8_t *pSupportedMCSSet,
|
uint8_t *pSupportedMCSSet,
|
||||||
uint8_t basicOnly,
|
uint8_t basicOnly,
|
||||||
struct pe_session *psessionEntry,
|
struct pe_session *pe_session,
|
||||||
tDot11fIEVHTCaps *pVHTCaps,
|
tDot11fIEVHTCaps *pVHTCaps,
|
||||||
tDot11fIEhe_cap *he_caps);
|
tDot11fIEhe_cap *he_caps);
|
||||||
|
|
||||||
@@ -80,7 +80,7 @@ lim_populate_matching_rate_set(tpAniSirGlobal mac,
|
|||||||
tSirMacRateSet *pOperRateSet,
|
tSirMacRateSet *pOperRateSet,
|
||||||
tSirMacRateSet *pExtRateSet,
|
tSirMacRateSet *pExtRateSet,
|
||||||
uint8_t *pSupportedMCSSet,
|
uint8_t *pSupportedMCSSet,
|
||||||
struct pe_session *psessionEntry,
|
struct pe_session *pe_session,
|
||||||
tDot11fIEVHTCaps *pVHTCaps,
|
tDot11fIEVHTCaps *pVHTCaps,
|
||||||
tDot11fIEhe_cap *he_caps);
|
tDot11fIEhe_cap *he_caps);
|
||||||
|
|
||||||
@@ -98,13 +98,13 @@ void lim_post_reassoc_failure(tpAniSirGlobal,
|
|||||||
bool lim_is_reassoc_in_progress(tpAniSirGlobal, struct pe_session *);
|
bool lim_is_reassoc_in_progress(tpAniSirGlobal, struct pe_session *);
|
||||||
|
|
||||||
void lim_handle_add_bss_in_re_assoc_context(tpAniSirGlobal mac,
|
void lim_handle_add_bss_in_re_assoc_context(tpAniSirGlobal mac,
|
||||||
tpDphHashNode pStaDs, struct pe_session *psessionEntry);
|
tpDphHashNode pStaDs, struct pe_session *pe_session);
|
||||||
void lim_handle_del_bss_in_re_assoc_context(tpAniSirGlobal mac,
|
void lim_handle_del_bss_in_re_assoc_context(tpAniSirGlobal mac,
|
||||||
tpDphHashNode pStaDs, struct pe_session *psessionEntry);
|
tpDphHashNode pStaDs, struct pe_session *pe_session);
|
||||||
void lim_send_retry_reassoc_req_frame(tpAniSirGlobal mac,
|
void lim_send_retry_reassoc_req_frame(tpAniSirGlobal mac,
|
||||||
tLimMlmReassocReq *pMlmReassocReq, struct pe_session *psessionEntry);
|
tLimMlmReassocReq *pMlmReassocReq, struct pe_session *pe_session);
|
||||||
QDF_STATUS lim_add_ft_sta_self(tpAniSirGlobal mac, uint16_t assocId,
|
QDF_STATUS lim_add_ft_sta_self(tpAniSirGlobal mac, uint16_t assocId,
|
||||||
struct pe_session *psessionEntry);
|
struct pe_session *pe_session);
|
||||||
#else
|
#else
|
||||||
static inline void lim_restore_pre_reassoc_state(tpAniSirGlobal mac_ctx,
|
static inline void lim_restore_pre_reassoc_state(tpAniSirGlobal mac_ctx,
|
||||||
tSirResultCodes res_code, uint16_t prot_status,
|
tSirResultCodes res_code, uint16_t prot_status,
|
||||||
@@ -115,13 +115,13 @@ static inline void lim_post_reassoc_failure(tpAniSirGlobal mac_ctx,
|
|||||||
struct pe_session *pe_session)
|
struct pe_session *pe_session)
|
||||||
{}
|
{}
|
||||||
static inline void lim_handle_add_bss_in_re_assoc_context(tpAniSirGlobal mac,
|
static inline void lim_handle_add_bss_in_re_assoc_context(tpAniSirGlobal mac,
|
||||||
tpDphHashNode pStaDs, struct pe_session *psessionEntry)
|
tpDphHashNode pStaDs, struct pe_session *pe_session)
|
||||||
{}
|
{}
|
||||||
static inline void lim_handle_del_bss_in_re_assoc_context(tpAniSirGlobal mac,
|
static inline void lim_handle_del_bss_in_re_assoc_context(tpAniSirGlobal mac,
|
||||||
tpDphHashNode pStaDs, struct pe_session *psessionEntry)
|
tpDphHashNode pStaDs, struct pe_session *pe_session)
|
||||||
{}
|
{}
|
||||||
static inline void lim_send_retry_reassoc_req_frame(tpAniSirGlobal mac,
|
static inline void lim_send_retry_reassoc_req_frame(tpAniSirGlobal mac,
|
||||||
tLimMlmReassocReq *pMlmReassocReq, struct pe_session *psessionEntry)
|
tLimMlmReassocReq *pMlmReassocReq, struct pe_session *pe_session)
|
||||||
{}
|
{}
|
||||||
static inline bool lim_is_reassoc_in_progress(tpAniSirGlobal mac_ctx,
|
static inline bool lim_is_reassoc_in_progress(tpAniSirGlobal mac_ctx,
|
||||||
struct pe_session *pe_session)
|
struct pe_session *pe_session)
|
||||||
@@ -129,7 +129,7 @@ static inline bool lim_is_reassoc_in_progress(tpAniSirGlobal mac_ctx,
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
static inline QDF_STATUS lim_add_ft_sta_self(tpAniSirGlobal mac,
|
static inline QDF_STATUS lim_add_ft_sta_self(tpAniSirGlobal mac,
|
||||||
uint16_t assocId, struct pe_session *psessionEntry)
|
uint16_t assocId, struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
@@ -150,7 +150,7 @@ static inline bool lim_is_roam_synch_in_progress(struct pe_session *pe_session)
|
|||||||
void
|
void
|
||||||
lim_send_del_sta_cnf(tpAniSirGlobal mac, struct qdf_mac_addr sta_dsaddr,
|
lim_send_del_sta_cnf(tpAniSirGlobal mac, struct qdf_mac_addr sta_dsaddr,
|
||||||
uint16_t staDsAssocId, tLimMlmStaContext mlmStaContext,
|
uint16_t staDsAssocId, tLimMlmStaContext mlmStaContext,
|
||||||
tSirResultCodes statusCode, struct pe_session *psessionEntry);
|
tSirResultCodes statusCode, struct pe_session *pe_session);
|
||||||
|
|
||||||
void lim_handle_cnf_wait_timeout(tpAniSirGlobal mac, uint16_t staId);
|
void lim_handle_cnf_wait_timeout(tpAniSirGlobal mac, uint16_t staId);
|
||||||
void lim_delete_dph_hash_entry(tpAniSirGlobal, tSirMacAddr, uint16_t, struct pe_session *);
|
void lim_delete_dph_hash_entry(tpAniSirGlobal, tSirMacAddr, uint16_t, struct pe_session *);
|
||||||
@@ -159,18 +159,18 @@ void lim_check_and_announce_join_success(tpAniSirGlobal,
|
|||||||
tpSirMacMgmtHdr, struct pe_session *);
|
tpSirMacMgmtHdr, struct pe_session *);
|
||||||
void lim_update_re_assoc_globals(tpAniSirGlobal mac,
|
void lim_update_re_assoc_globals(tpAniSirGlobal mac,
|
||||||
tpSirAssocRsp pAssocRsp,
|
tpSirAssocRsp pAssocRsp,
|
||||||
struct pe_session *psessionEntry);
|
struct pe_session *pe_session);
|
||||||
|
|
||||||
void lim_update_assoc_sta_datas(tpAniSirGlobal mac,
|
void lim_update_assoc_sta_datas(tpAniSirGlobal mac,
|
||||||
tpDphHashNode pStaDs, tpSirAssocRsp pAssocRsp,
|
tpDphHashNode pStaDs, tpSirAssocRsp pAssocRsp,
|
||||||
struct pe_session *psessionEntry);
|
struct pe_session *pe_session);
|
||||||
|
|
||||||
QDF_STATUS lim_sta_send_add_bss(tpAniSirGlobal mac, tpSirAssocRsp pAssocRsp,
|
QDF_STATUS lim_sta_send_add_bss(tpAniSirGlobal mac, tpSirAssocRsp pAssocRsp,
|
||||||
tpSchBeaconStruct pBeaconStruct,
|
tpSchBeaconStruct pBeaconStruct,
|
||||||
tpSirBssDescription bssDescription,
|
tpSirBssDescription bssDescription,
|
||||||
uint8_t updateEntry, struct pe_session *psessionEntry);
|
uint8_t updateEntry, struct pe_session *pe_session);
|
||||||
QDF_STATUS lim_sta_send_add_bss_pre_assoc(tpAniSirGlobal mac, uint8_t updateEntry,
|
QDF_STATUS lim_sta_send_add_bss_pre_assoc(tpAniSirGlobal mac, uint8_t updateEntry,
|
||||||
struct pe_session *psessionEntry);
|
struct pe_session *pe_session);
|
||||||
|
|
||||||
void lim_prepare_and_send_del_sta_cnf(tpAniSirGlobal mac, tpDphHashNode pStaDs,
|
void lim_prepare_and_send_del_sta_cnf(tpAniSirGlobal mac, tpDphHashNode pStaDs,
|
||||||
tSirResultCodes statusCode, struct pe_session *);
|
tSirResultCodes statusCode, struct pe_session *);
|
||||||
@@ -202,15 +202,15 @@ void lim_fill_rx_highest_supported_rate(tpAniSirGlobal mac,
|
|||||||
void lim_send_sme_unprotected_mgmt_frame_ind(tpAniSirGlobal mac, uint8_t frameType,
|
void lim_send_sme_unprotected_mgmt_frame_ind(tpAniSirGlobal mac, uint8_t frameType,
|
||||||
uint8_t *frame, uint32_t frameLen,
|
uint8_t *frame, uint32_t frameLen,
|
||||||
uint16_t sessionId,
|
uint16_t sessionId,
|
||||||
struct pe_session *psessionEntry);
|
struct pe_session *pe_session);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef FEATURE_WLAN_ESE
|
#ifdef FEATURE_WLAN_ESE
|
||||||
void lim_send_sme_tsm_ie_ind(tpAniSirGlobal mac, struct pe_session *psessionEntry,
|
void lim_send_sme_tsm_ie_ind(tpAniSirGlobal mac, struct pe_session *pe_session,
|
||||||
uint8_t tid, uint8_t state, uint16_t measInterval);
|
uint8_t tid, uint8_t state, uint16_t measInterval);
|
||||||
#else
|
#else
|
||||||
static inline void lim_send_sme_tsm_ie_ind(tpAniSirGlobal mac,
|
static inline void lim_send_sme_tsm_ie_ind(tpAniSirGlobal mac,
|
||||||
struct pe_session *psessionEntry, uint8_t tid,
|
struct pe_session *pe_session, uint8_t tid,
|
||||||
uint8_t state, uint16_t measInterval)
|
uint8_t state, uint16_t measInterval)
|
||||||
{}
|
{}
|
||||||
#endif /* FEATURE_WLAN_ESE */
|
#endif /* FEATURE_WLAN_ESE */
|
||||||
@@ -218,7 +218,7 @@ static inline void lim_send_sme_tsm_ie_ind(tpAniSirGlobal mac,
|
|||||||
QDF_STATUS lim_populate_vht_mcs_set(tpAniSirGlobal mac,
|
QDF_STATUS lim_populate_vht_mcs_set(tpAniSirGlobal mac,
|
||||||
tpSirSupportedRates pRates,
|
tpSirSupportedRates pRates,
|
||||||
tDot11fIEVHTCaps *pPeerVHTCaps,
|
tDot11fIEVHTCaps *pPeerVHTCaps,
|
||||||
struct pe_session *psessionEntry,
|
struct pe_session *pe_session,
|
||||||
uint8_t nss);
|
uint8_t nss);
|
||||||
|
|
||||||
#endif /* __LIM_ASSOC_UTILS_H */
|
#endif /* __LIM_ASSOC_UTILS_H */
|
||||||
|
|||||||
@@ -43,15 +43,15 @@ extern void lim_send_set_sta_key_req(tpAniSirGlobal mac,
|
|||||||
tLimMlmSetKeysReq * pMlmSetKeysReq,
|
tLimMlmSetKeysReq * pMlmSetKeysReq,
|
||||||
uint16_t staIdx,
|
uint16_t staIdx,
|
||||||
uint8_t defWEPIdx,
|
uint8_t defWEPIdx,
|
||||||
struct pe_session *sessionEntry, bool sendRsp);
|
struct pe_session *pe_session, bool sendRsp);
|
||||||
|
|
||||||
/*--------------------------------------------------------------------------
|
/*--------------------------------------------------------------------------
|
||||||
Initialize the FT variables.
|
Initialize the FT variables.
|
||||||
------------------------------------------------------------------------*/
|
------------------------------------------------------------------------*/
|
||||||
void lim_ft_open(tpAniSirGlobal mac, struct pe_session *psessionEntry)
|
void lim_ft_open(tpAniSirGlobal mac, struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
if (psessionEntry)
|
if (pe_session)
|
||||||
qdf_mem_set(&psessionEntry->ftPEContext, sizeof(tftPEContext),
|
qdf_mem_set(&pe_session->ftPEContext, sizeof(tftPEContext),
|
||||||
0);
|
0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -68,46 +68,46 @@ void lim_ft_cleanup_all_ft_sessions(tpAniSirGlobal mac)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void lim_ft_cleanup(tpAniSirGlobal mac, struct pe_session *psessionEntry)
|
void lim_ft_cleanup(tpAniSirGlobal mac, struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
if (NULL == psessionEntry) {
|
if (NULL == pe_session) {
|
||||||
pe_err("psessionEntry is NULL");
|
pe_err("pe_session is NULL");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Nothing to be done if the session is not in STA mode */
|
/* Nothing to be done if the session is not in STA mode */
|
||||||
if (!LIM_IS_STA_ROLE(psessionEntry)) {
|
if (!LIM_IS_STA_ROLE(pe_session)) {
|
||||||
pe_err("psessionEntry is not in STA mode");
|
pe_err("pe_session is not in STA mode");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (NULL != psessionEntry->ftPEContext.pFTPreAuthReq) {
|
if (NULL != pe_session->ftPEContext.pFTPreAuthReq) {
|
||||||
pe_debug("Freeing pFTPreAuthReq: %pK",
|
pe_debug("Freeing pFTPreAuthReq: %pK",
|
||||||
psessionEntry->ftPEContext.pFTPreAuthReq);
|
pe_session->ftPEContext.pFTPreAuthReq);
|
||||||
if (NULL !=
|
if (NULL !=
|
||||||
psessionEntry->ftPEContext.pFTPreAuthReq->
|
pe_session->ftPEContext.pFTPreAuthReq->
|
||||||
pbssDescription) {
|
pbssDescription) {
|
||||||
qdf_mem_free(psessionEntry->ftPEContext.pFTPreAuthReq->
|
qdf_mem_free(pe_session->ftPEContext.pFTPreAuthReq->
|
||||||
pbssDescription);
|
pbssDescription);
|
||||||
psessionEntry->ftPEContext.pFTPreAuthReq->
|
pe_session->ftPEContext.pFTPreAuthReq->
|
||||||
pbssDescription = NULL;
|
pbssDescription = NULL;
|
||||||
}
|
}
|
||||||
qdf_mem_free(psessionEntry->ftPEContext.pFTPreAuthReq);
|
qdf_mem_free(pe_session->ftPEContext.pFTPreAuthReq);
|
||||||
psessionEntry->ftPEContext.pFTPreAuthReq = NULL;
|
pe_session->ftPEContext.pFTPreAuthReq = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (psessionEntry->ftPEContext.pAddBssReq) {
|
if (pe_session->ftPEContext.pAddBssReq) {
|
||||||
qdf_mem_free(psessionEntry->ftPEContext.pAddBssReq);
|
qdf_mem_free(pe_session->ftPEContext.pAddBssReq);
|
||||||
psessionEntry->ftPEContext.pAddBssReq = NULL;
|
pe_session->ftPEContext.pAddBssReq = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (psessionEntry->ftPEContext.pAddStaReq) {
|
if (pe_session->ftPEContext.pAddStaReq) {
|
||||||
qdf_mem_free(psessionEntry->ftPEContext.pAddStaReq);
|
qdf_mem_free(pe_session->ftPEContext.pAddStaReq);
|
||||||
psessionEntry->ftPEContext.pAddStaReq = NULL;
|
pe_session->ftPEContext.pAddStaReq = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* The session is being deleted, cleanup the contents */
|
/* The session is being deleted, cleanup the contents */
|
||||||
qdf_mem_set(&psessionEntry->ftPEContext, sizeof(tftPEContext), 0);
|
qdf_mem_set(&pe_session->ftPEContext, sizeof(tftPEContext), 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(WLAN_FEATURE_HOST_ROAM) || defined(WLAN_FEATURE_ROAM_OFFLOAD)
|
#if defined(WLAN_FEATURE_HOST_ROAM) || defined(WLAN_FEATURE_ROAM_OFFLOAD)
|
||||||
@@ -129,7 +129,7 @@ void lim_ft_prepare_add_bss_req(tpAniSirGlobal mac,
|
|||||||
|
|
||||||
/* Nothing to be done if the session is not in STA mode */
|
/* Nothing to be done if the session is not in STA mode */
|
||||||
if (!LIM_IS_STA_ROLE(ft_session)) {
|
if (!LIM_IS_STA_ROLE(ft_session)) {
|
||||||
pe_err("psessionEntry is not in STA mode");
|
pe_err("pe_session is not in STA mode");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -472,7 +472,7 @@ void lim_ft_prepare_add_bss_req(tpAniSirGlobal mac,
|
|||||||
* lim_fill_dot11mode() - to fill 802.11 mode in FT session
|
* lim_fill_dot11mode() - to fill 802.11 mode in FT session
|
||||||
* @mac_ctx: pointer to mac ctx
|
* @mac_ctx: pointer to mac ctx
|
||||||
* @ft_session: FT session
|
* @ft_session: FT session
|
||||||
* @psessionEntry: PE session
|
* @pe_session: PE session
|
||||||
*
|
*
|
||||||
* This API fills FT session's dot11mode either from pe session or
|
* This API fills FT session's dot11mode either from pe session or
|
||||||
* from CFG depending on the condition.
|
* from CFG depending on the condition.
|
||||||
@@ -480,14 +480,14 @@ void lim_ft_prepare_add_bss_req(tpAniSirGlobal mac,
|
|||||||
* Return: none
|
* Return: none
|
||||||
*/
|
*/
|
||||||
static void lim_fill_dot11mode(tpAniSirGlobal mac_ctx,
|
static void lim_fill_dot11mode(tpAniSirGlobal mac_ctx,
|
||||||
struct pe_session *ft_session, struct pe_session *psessionEntry)
|
struct pe_session *ft_session, struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
uint32_t self_dot11_mode;
|
uint32_t self_dot11_mode;
|
||||||
|
|
||||||
if (psessionEntry->ftPEContext.pFTPreAuthReq &&
|
if (pe_session->ftPEContext.pFTPreAuthReq &&
|
||||||
!mac_ctx->roam.configParam.isRoamOffloadEnabled) {
|
!mac_ctx->roam.configParam.isRoamOffloadEnabled) {
|
||||||
ft_session->dot11mode =
|
ft_session->dot11mode =
|
||||||
psessionEntry->ftPEContext.pFTPreAuthReq->dot11mode;
|
pe_session->ftPEContext.pFTPreAuthReq->dot11mode;
|
||||||
} else {
|
} else {
|
||||||
wlan_cfg_get_int(mac_ctx, WNI_CFG_DOT11_MODE, &self_dot11_mode);
|
wlan_cfg_get_int(mac_ctx, WNI_CFG_DOT11_MODE, &self_dot11_mode);
|
||||||
pe_debug("selfDot11Mode: %d", self_dot11_mode);
|
pe_debug("selfDot11Mode: %d", self_dot11_mode);
|
||||||
@@ -499,17 +499,17 @@ static void lim_fill_dot11mode(tpAniSirGlobal mac_ctx,
|
|||||||
* lim_fill_dot11mode() - to fill 802.11 mode in FT session
|
* lim_fill_dot11mode() - to fill 802.11 mode in FT session
|
||||||
* @mac_ctx: pointer to mac ctx
|
* @mac_ctx: pointer to mac ctx
|
||||||
* @ft_session: FT session
|
* @ft_session: FT session
|
||||||
* @psessionEntry: PE session
|
* @pe_session: PE session
|
||||||
*
|
*
|
||||||
* This API fills FT session's dot11mode either from pe session.
|
* This API fills FT session's dot11mode either from pe session.
|
||||||
*
|
*
|
||||||
* Return: none
|
* Return: none
|
||||||
*/
|
*/
|
||||||
static void lim_fill_dot11mode(tpAniSirGlobal mac_ctx,
|
static void lim_fill_dot11mode(tpAniSirGlobal mac_ctx,
|
||||||
struct pe_session *ft_session, struct pe_session *psessionEntry)
|
struct pe_session *ft_session, struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
ft_session->dot11mode =
|
ft_session->dot11mode =
|
||||||
psessionEntry->ftPEContext.pFTPreAuthReq->dot11mode;
|
pe_session->ftPEContext.pFTPreAuthReq->dot11mode;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -522,7 +522,7 @@ static void lim_fill_dot11mode(tpAniSirGlobal mac_ctx,
|
|||||||
*------------------------------------------------------------------*/
|
*------------------------------------------------------------------*/
|
||||||
void lim_fill_ft_session(tpAniSirGlobal mac,
|
void lim_fill_ft_session(tpAniSirGlobal mac,
|
||||||
tpSirBssDescription pbssDescription,
|
tpSirBssDescription pbssDescription,
|
||||||
struct pe_session *ft_session, struct pe_session *psessionEntry)
|
struct pe_session *ft_session, struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
uint8_t currentBssUapsd;
|
uint8_t currentBssUapsd;
|
||||||
int8_t localPowerConstraint;
|
int8_t localPowerConstraint;
|
||||||
@@ -535,15 +535,15 @@ void lim_fill_ft_session(tpAniSirGlobal mac,
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
/* Retrieve the session that was already created and update the entry */
|
/* Retrieve the session that was already created and update the entry */
|
||||||
ft_session->limWmeEnabled = psessionEntry->limWmeEnabled;
|
ft_session->limWmeEnabled = pe_session->limWmeEnabled;
|
||||||
ft_session->limQosEnabled = psessionEntry->limQosEnabled;
|
ft_session->limQosEnabled = pe_session->limQosEnabled;
|
||||||
ft_session->limWsmEnabled = psessionEntry->limWsmEnabled;
|
ft_session->limWsmEnabled = pe_session->limWsmEnabled;
|
||||||
ft_session->lim11hEnable = psessionEntry->lim11hEnable;
|
ft_session->lim11hEnable = pe_session->lim11hEnable;
|
||||||
ft_session->isOSENConnection = psessionEntry->isOSENConnection;
|
ft_session->isOSENConnection = pe_session->isOSENConnection;
|
||||||
|
|
||||||
/* Fields to be filled later */
|
/* Fields to be filled later */
|
||||||
ft_session->pLimJoinReq = NULL;
|
ft_session->pLimJoinReq = NULL;
|
||||||
ft_session->smeSessionId = psessionEntry->smeSessionId;
|
ft_session->smeSessionId = pe_session->smeSessionId;
|
||||||
ft_session->transactionId = 0;
|
ft_session->transactionId = 0;
|
||||||
|
|
||||||
lim_extract_ap_capabilities(mac, (uint8_t *) pbssDescription->ieFields,
|
lim_extract_ap_capabilities(mac, (uint8_t *) pbssDescription->ieFields,
|
||||||
@@ -565,7 +565,7 @@ void lim_fill_ft_session(tpAniSirGlobal mac,
|
|||||||
ft_session->ssId.length = pBeaconStruct->ssId.length;
|
ft_session->ssId.length = pBeaconStruct->ssId.length;
|
||||||
qdf_mem_copy(ft_session->ssId.ssId, pBeaconStruct->ssId.ssId,
|
qdf_mem_copy(ft_session->ssId.ssId, pBeaconStruct->ssId.ssId,
|
||||||
ft_session->ssId.length);
|
ft_session->ssId.length);
|
||||||
lim_fill_dot11mode(mac, ft_session, psessionEntry);
|
lim_fill_dot11mode(mac, ft_session, pe_session);
|
||||||
|
|
||||||
pe_debug("dot11mode: %d", ft_session->dot11mode);
|
pe_debug("dot11mode: %d", ft_session->dot11mode);
|
||||||
ft_session->vhtCapability =
|
ft_session->vhtCapability =
|
||||||
@@ -629,15 +629,15 @@ void lim_fill_ft_session(tpAniSirGlobal mac,
|
|||||||
}
|
}
|
||||||
|
|
||||||
sir_copy_mac_addr(ft_session->selfMacAddr,
|
sir_copy_mac_addr(ft_session->selfMacAddr,
|
||||||
psessionEntry->selfMacAddr);
|
pe_session->selfMacAddr);
|
||||||
sir_copy_mac_addr(ft_session->limReAssocbssId,
|
sir_copy_mac_addr(ft_session->limReAssocbssId,
|
||||||
pbssDescription->bssId);
|
pbssDescription->bssId);
|
||||||
sir_copy_mac_addr(ft_session->prev_ap_bssid, psessionEntry->bssId);
|
sir_copy_mac_addr(ft_session->prev_ap_bssid, pe_session->bssId);
|
||||||
|
|
||||||
/* Store beaconInterval */
|
/* Store beaconInterval */
|
||||||
ft_session->beaconParams.beaconInterval =
|
ft_session->beaconParams.beaconInterval =
|
||||||
pbssDescription->beaconInterval;
|
pbssDescription->beaconInterval;
|
||||||
ft_session->bssType = psessionEntry->bssType;
|
ft_session->bssType = pe_session->bssType;
|
||||||
|
|
||||||
ft_session->statypeForBss = STA_ENTRY_PEER;
|
ft_session->statypeForBss = STA_ENTRY_PEER;
|
||||||
ft_session->nwType = pbssDescription->nwType;
|
ft_session->nwType = pbssDescription->nwType;
|
||||||
@@ -672,17 +672,17 @@ void lim_fill_ft_session(tpAniSirGlobal mac,
|
|||||||
ft_session->limReassocBssPropCap =
|
ft_session->limReassocBssPropCap =
|
||||||
ft_session->limCurrentBssPropCap;
|
ft_session->limCurrentBssPropCap;
|
||||||
|
|
||||||
ft_session->is11Rconnection = psessionEntry->is11Rconnection;
|
ft_session->is11Rconnection = pe_session->is11Rconnection;
|
||||||
#ifdef FEATURE_WLAN_ESE
|
#ifdef FEATURE_WLAN_ESE
|
||||||
ft_session->isESEconnection = psessionEntry->isESEconnection;
|
ft_session->isESEconnection = pe_session->isESEconnection;
|
||||||
ft_session->is_ese_version_ie_present =
|
ft_session->is_ese_version_ie_present =
|
||||||
pBeaconStruct->is_ese_ver_ie_present;
|
pBeaconStruct->is_ese_ver_ie_present;
|
||||||
#endif
|
#endif
|
||||||
ft_session->isFastTransitionEnabled =
|
ft_session->isFastTransitionEnabled =
|
||||||
psessionEntry->isFastTransitionEnabled;
|
pe_session->isFastTransitionEnabled;
|
||||||
|
|
||||||
ft_session->isFastRoamIniFeatureEnabled =
|
ft_session->isFastRoamIniFeatureEnabled =
|
||||||
psessionEntry->isFastRoamIniFeatureEnabled;
|
pe_session->isFastRoamIniFeatureEnabled;
|
||||||
|
|
||||||
#ifdef FEATURE_WLAN_ESE
|
#ifdef FEATURE_WLAN_ESE
|
||||||
ft_session->maxTxPower =
|
ft_session->maxTxPower =
|
||||||
@@ -696,7 +696,7 @@ void lim_fill_ft_session(tpAniSirGlobal mac,
|
|||||||
regMax, localPowerConstraint,
|
regMax, localPowerConstraint,
|
||||||
mac->roam.configParam.nTxPowerCap,
|
mac->roam.configParam.nTxPowerCap,
|
||||||
ft_session->maxTxPower);
|
ft_session->maxTxPower);
|
||||||
if (!lim_is_roam_synch_in_progress(psessionEntry)) {
|
if (!lim_is_roam_synch_in_progress(pe_session)) {
|
||||||
ft_session->limPrevSmeState = ft_session->limSmeState;
|
ft_session->limPrevSmeState = ft_session->limSmeState;
|
||||||
ft_session->limSmeState = eLIM_SME_WT_REASSOC_STATE;
|
ft_session->limSmeState = eLIM_SME_WT_REASSOC_STATE;
|
||||||
MTRACE(mac_trace(mac,
|
MTRACE(mac_trace(mac,
|
||||||
@@ -704,17 +704,17 @@ void lim_fill_ft_session(tpAniSirGlobal mac,
|
|||||||
ft_session->peSessionId,
|
ft_session->peSessionId,
|
||||||
ft_session->limSmeState));
|
ft_session->limSmeState));
|
||||||
}
|
}
|
||||||
ft_session->encryptType = psessionEntry->encryptType;
|
ft_session->encryptType = pe_session->encryptType;
|
||||||
#ifdef WLAN_FEATURE_11W
|
#ifdef WLAN_FEATURE_11W
|
||||||
ft_session->limRmfEnabled = psessionEntry->limRmfEnabled;
|
ft_session->limRmfEnabled = pe_session->limRmfEnabled;
|
||||||
#endif
|
#endif
|
||||||
if ((ft_session->limRFBand == BAND_2G) &&
|
if ((ft_session->limRFBand == BAND_2G) &&
|
||||||
(ft_session->htSupportedChannelWidthSet ==
|
(ft_session->htSupportedChannelWidthSet ==
|
||||||
eHT_CHANNEL_WIDTH_40MHZ))
|
eHT_CHANNEL_WIDTH_40MHZ))
|
||||||
lim_init_obss_params(mac, ft_session);
|
lim_init_obss_params(mac, ft_session);
|
||||||
|
|
||||||
ft_session->enableHtSmps = psessionEntry->enableHtSmps;
|
ft_session->enableHtSmps = pe_session->enableHtSmps;
|
||||||
ft_session->htSmpsvalue = psessionEntry->htSmpsvalue;
|
ft_session->htSmpsvalue = pe_session->htSmpsvalue;
|
||||||
/*
|
/*
|
||||||
* By default supported NSS 1x1 is set to true
|
* By default supported NSS 1x1 is set to true
|
||||||
* and later on updated while determining session
|
* and later on updated while determining session
|
||||||
@@ -740,7 +740,7 @@ bool lim_process_ft_update_key(tpAniSirGlobal mac, uint32_t *pMsgBuf)
|
|||||||
{
|
{
|
||||||
tAddBssParams *pAddBssParams;
|
tAddBssParams *pAddBssParams;
|
||||||
tSirFTUpdateKeyInfo *pKeyInfo;
|
tSirFTUpdateKeyInfo *pKeyInfo;
|
||||||
struct pe_session *psessionEntry;
|
struct pe_session *pe_session;
|
||||||
uint8_t sessionId;
|
uint8_t sessionId;
|
||||||
|
|
||||||
/* Sanity Check */
|
/* Sanity Check */
|
||||||
@@ -750,9 +750,9 @@ bool lim_process_ft_update_key(tpAniSirGlobal mac, uint32_t *pMsgBuf)
|
|||||||
|
|
||||||
pKeyInfo = (tSirFTUpdateKeyInfo *) pMsgBuf;
|
pKeyInfo = (tSirFTUpdateKeyInfo *) pMsgBuf;
|
||||||
|
|
||||||
psessionEntry = pe_find_session_by_bssid(mac, pKeyInfo->bssid.bytes,
|
pe_session = pe_find_session_by_bssid(mac, pKeyInfo->bssid.bytes,
|
||||||
&sessionId);
|
&sessionId);
|
||||||
if (NULL == psessionEntry) {
|
if (NULL == pe_session) {
|
||||||
pe_err("%s: Unable to find session for the following bssid",
|
pe_err("%s: Unable to find session for the following bssid",
|
||||||
__func__);
|
__func__);
|
||||||
lim_print_mac_addr(mac, pKeyInfo->bssid.bytes, LOGE);
|
lim_print_mac_addr(mac, pKeyInfo->bssid.bytes, LOGE);
|
||||||
@@ -760,40 +760,40 @@ bool lim_process_ft_update_key(tpAniSirGlobal mac, uint32_t *pMsgBuf)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Nothing to be done if the session is not in STA mode */
|
/* Nothing to be done if the session is not in STA mode */
|
||||||
if (!LIM_IS_STA_ROLE(psessionEntry)) {
|
if (!LIM_IS_STA_ROLE(pe_session)) {
|
||||||
pe_err("psessionEntry is not in STA mode");
|
pe_err("pe_session is not in STA mode");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (NULL == psessionEntry->ftPEContext.pAddBssReq) {
|
if (NULL == pe_session->ftPEContext.pAddBssReq) {
|
||||||
/* AddBss Req is NULL, save the keys to configure them later. */
|
/* AddBss Req is NULL, save the keys to configure them later. */
|
||||||
tpLimMlmSetKeysReq pMlmSetKeysReq =
|
tpLimMlmSetKeysReq pMlmSetKeysReq =
|
||||||
&psessionEntry->ftPEContext.PreAuthKeyInfo.
|
&pe_session->ftPEContext.PreAuthKeyInfo.
|
||||||
extSetStaKeyParam;
|
extSetStaKeyParam;
|
||||||
|
|
||||||
qdf_mem_zero(pMlmSetKeysReq, sizeof(tLimMlmSetKeysReq));
|
qdf_mem_zero(pMlmSetKeysReq, sizeof(tLimMlmSetKeysReq));
|
||||||
qdf_copy_macaddr(&pMlmSetKeysReq->peer_macaddr,
|
qdf_copy_macaddr(&pMlmSetKeysReq->peer_macaddr,
|
||||||
&pKeyInfo->bssid);
|
&pKeyInfo->bssid);
|
||||||
pMlmSetKeysReq->sessionId = psessionEntry->peSessionId;
|
pMlmSetKeysReq->sessionId = pe_session->peSessionId;
|
||||||
pMlmSetKeysReq->smesessionId = psessionEntry->smeSessionId;
|
pMlmSetKeysReq->smesessionId = pe_session->smeSessionId;
|
||||||
pMlmSetKeysReq->edType = pKeyInfo->keyMaterial.edType;
|
pMlmSetKeysReq->edType = pKeyInfo->keyMaterial.edType;
|
||||||
pMlmSetKeysReq->numKeys = pKeyInfo->keyMaterial.numKeys;
|
pMlmSetKeysReq->numKeys = pKeyInfo->keyMaterial.numKeys;
|
||||||
qdf_mem_copy((uint8_t *) &pMlmSetKeysReq->key,
|
qdf_mem_copy((uint8_t *) &pMlmSetKeysReq->key,
|
||||||
(uint8_t *) &pKeyInfo->keyMaterial.key,
|
(uint8_t *) &pKeyInfo->keyMaterial.key,
|
||||||
sizeof(tSirKeys));
|
sizeof(tSirKeys));
|
||||||
|
|
||||||
psessionEntry->ftPEContext.PreAuthKeyInfo.
|
pe_session->ftPEContext.PreAuthKeyInfo.
|
||||||
extSetStaKeyParamValid = true;
|
extSetStaKeyParamValid = true;
|
||||||
|
|
||||||
if (psessionEntry->ftPEContext.pAddStaReq == NULL) {
|
if (pe_session->ftPEContext.pAddStaReq == NULL) {
|
||||||
pe_err("pAddStaReq is NULL");
|
pe_err("pAddStaReq is NULL");
|
||||||
lim_send_set_sta_key_req(mac, pMlmSetKeysReq, 0, 0,
|
lim_send_set_sta_key_req(mac, pMlmSetKeysReq, 0, 0,
|
||||||
psessionEntry, false);
|
pe_session, false);
|
||||||
psessionEntry->ftPEContext.PreAuthKeyInfo.
|
pe_session->ftPEContext.PreAuthKeyInfo.
|
||||||
extSetStaKeyParamValid = false;
|
extSetStaKeyParamValid = false;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
pAddBssParams = psessionEntry->ftPEContext.pAddBssReq;
|
pAddBssParams = pe_session->ftPEContext.pAddBssReq;
|
||||||
|
|
||||||
/* Store the key information in the ADD BSS parameters */
|
/* Store the key information in the ADD BSS parameters */
|
||||||
pAddBssParams->extSetStaKeyParamValid = 1;
|
pAddBssParams->extSetStaKeyParamValid = 1;
|
||||||
@@ -865,7 +865,7 @@ void lim_process_ft_aggr_qo_s_rsp(tpAniSirGlobal mac,
|
|||||||
uint16_t assocId = 0;
|
uint16_t assocId = 0;
|
||||||
tSirMacAddr peerMacAddr;
|
tSirMacAddr peerMacAddr;
|
||||||
uint8_t rspReqd = 1;
|
uint8_t rspReqd = 1;
|
||||||
struct pe_session *psessionEntry = NULL;
|
struct pe_session *pe_session = NULL;
|
||||||
int i = 0;
|
int i = 0;
|
||||||
|
|
||||||
pe_debug(" Received AGGR_QOS_RSP from HAL");
|
pe_debug(" Received AGGR_QOS_RSP from HAL");
|
||||||
@@ -875,23 +875,23 @@ void lim_process_ft_aggr_qo_s_rsp(tpAniSirGlobal mac,
|
|||||||
pe_err("NULL pAggrQosRspMsg");
|
pe_err("NULL pAggrQosRspMsg");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
psessionEntry =
|
pe_session =
|
||||||
pe_find_session_by_session_id(mac, pAggrQosRspMsg->sessionId);
|
pe_find_session_by_session_id(mac, pAggrQosRspMsg->sessionId);
|
||||||
if (NULL == psessionEntry) {
|
if (NULL == pe_session) {
|
||||||
pe_err("Cant find session entry for %s", __func__);
|
pe_err("Cant find session entry for %s", __func__);
|
||||||
if (pAggrQosRspMsg != NULL) {
|
if (pAggrQosRspMsg != NULL) {
|
||||||
qdf_mem_free(pAggrQosRspMsg);
|
qdf_mem_free(pAggrQosRspMsg);
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!LIM_IS_STA_ROLE(psessionEntry)) {
|
if (!LIM_IS_STA_ROLE(pe_session)) {
|
||||||
pe_err("psessionEntry is not in STA mode");
|
pe_err("pe_session is not in STA mode");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
for (i = 0; i < HAL_QOS_NUM_AC_MAX; i++) {
|
for (i = 0; i < HAL_QOS_NUM_AC_MAX; i++) {
|
||||||
if ((((1 << i) & pAggrQosRspMsg->tspecIdx)) &&
|
if ((((1 << i) & pAggrQosRspMsg->tspecIdx)) &&
|
||||||
(pAggrQosRspMsg->status[i] != QDF_STATUS_SUCCESS)) {
|
(pAggrQosRspMsg->status[i] != QDF_STATUS_SUCCESS)) {
|
||||||
sir_copy_mac_addr(peerMacAddr, psessionEntry->bssId);
|
sir_copy_mac_addr(peerMacAddr, pe_session->bssId);
|
||||||
addTsParam.staIdx = pAggrQosRspMsg->staIdx;
|
addTsParam.staIdx = pAggrQosRspMsg->staIdx;
|
||||||
addTsParam.sessionId = pAggrQosRspMsg->sessionId;
|
addTsParam.sessionId = pAggrQosRspMsg->sessionId;
|
||||||
addTsParam.tspec = pAggrQosRspMsg->tspec[i];
|
addTsParam.tspec = pAggrQosRspMsg->tspec[i];
|
||||||
@@ -899,10 +899,10 @@ void lim_process_ft_aggr_qo_s_rsp(tpAniSirGlobal mac,
|
|||||||
lim_send_delts_req_action_frame(mac, peerMacAddr, rspReqd,
|
lim_send_delts_req_action_frame(mac, peerMacAddr, rspReqd,
|
||||||
&addTsParam.tspec.tsinfo,
|
&addTsParam.tspec.tsinfo,
|
||||||
&addTsParam.tspec,
|
&addTsParam.tspec,
|
||||||
psessionEntry);
|
pe_session);
|
||||||
pSta =
|
pSta =
|
||||||
dph_lookup_assoc_id(mac, addTsParam.staIdx, &assocId,
|
dph_lookup_assoc_id(mac, addTsParam.staIdx, &assocId,
|
||||||
&psessionEntry->dph.dphHashTable);
|
&pe_session->dph.dphHashTable);
|
||||||
if (pSta != NULL) {
|
if (pSta != NULL) {
|
||||||
lim_admit_control_delete_ts(mac, assocId,
|
lim_admit_control_delete_ts(mac, assocId,
|
||||||
&addTsParam.tspec.
|
&addTsParam.tspec.
|
||||||
@@ -913,7 +913,7 @@ void lim_process_ft_aggr_qo_s_rsp(tpAniSirGlobal mac,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
lim_ft_send_aggr_qos_rsp(mac, rspReqd, pAggrQosRspMsg,
|
lim_ft_send_aggr_qos_rsp(mac, rspReqd, pAggrQosRspMsg,
|
||||||
psessionEntry->smeSessionId);
|
pe_session->smeSessionId);
|
||||||
if (pAggrQosRspMsg != NULL) {
|
if (pAggrQosRspMsg != NULL) {
|
||||||
qdf_mem_free(pAggrQosRspMsg);
|
qdf_mem_free(pAggrQosRspMsg);
|
||||||
}
|
}
|
||||||
@@ -925,7 +925,7 @@ QDF_STATUS lim_process_ft_aggr_qos_req(tpAniSirGlobal mac, uint32_t *pMsgBuf)
|
|||||||
struct scheduler_msg msg = {0};
|
struct scheduler_msg msg = {0};
|
||||||
tSirAggrQosReq *aggrQosReq = (tSirAggrQosReq *) pMsgBuf;
|
tSirAggrQosReq *aggrQosReq = (tSirAggrQosReq *) pMsgBuf;
|
||||||
tpAggrAddTsParams pAggrAddTsParam;
|
tpAggrAddTsParams pAggrAddTsParam;
|
||||||
struct pe_session *psessionEntry = NULL;
|
struct pe_session *pe_session = NULL;
|
||||||
tpLimTspecInfo tspecInfo;
|
tpLimTspecInfo tspecInfo;
|
||||||
uint8_t ac;
|
uint8_t ac;
|
||||||
tpDphHashNode pSta;
|
tpDphHashNode pSta;
|
||||||
@@ -937,10 +937,10 @@ QDF_STATUS lim_process_ft_aggr_qos_req(tpAniSirGlobal mac, uint32_t *pMsgBuf)
|
|||||||
if (!pAggrAddTsParam)
|
if (!pAggrAddTsParam)
|
||||||
return QDF_STATUS_E_NOMEM;
|
return QDF_STATUS_E_NOMEM;
|
||||||
|
|
||||||
psessionEntry = pe_find_session_by_bssid(mac, aggrQosReq->bssid.bytes,
|
pe_session = pe_find_session_by_bssid(mac, aggrQosReq->bssid.bytes,
|
||||||
&sessionId);
|
&sessionId);
|
||||||
|
|
||||||
if (psessionEntry == NULL) {
|
if (pe_session == NULL) {
|
||||||
pe_err("psession Entry Null for sessionId: %d",
|
pe_err("psession Entry Null for sessionId: %d",
|
||||||
aggrQosReq->sessionId);
|
aggrQosReq->sessionId);
|
||||||
qdf_mem_free(pAggrAddTsParam);
|
qdf_mem_free(pAggrAddTsParam);
|
||||||
@@ -948,25 +948,25 @@ QDF_STATUS lim_process_ft_aggr_qos_req(tpAniSirGlobal mac, uint32_t *pMsgBuf)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Nothing to be done if the session is not in STA mode */
|
/* Nothing to be done if the session is not in STA mode */
|
||||||
if (!LIM_IS_STA_ROLE(psessionEntry)) {
|
if (!LIM_IS_STA_ROLE(pe_session)) {
|
||||||
pe_err("psessionEntry is not in STA mode");
|
pe_err("pe_session is not in STA mode");
|
||||||
qdf_mem_free(pAggrAddTsParam);
|
qdf_mem_free(pAggrAddTsParam);
|
||||||
return QDF_STATUS_E_FAILURE;
|
return QDF_STATUS_E_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
pSta = dph_lookup_hash_entry(mac, aggrQosReq->bssid.bytes, &aid,
|
pSta = dph_lookup_hash_entry(mac, aggrQosReq->bssid.bytes, &aid,
|
||||||
&psessionEntry->dph.dphHashTable);
|
&pe_session->dph.dphHashTable);
|
||||||
if (pSta == NULL) {
|
if (pSta == NULL) {
|
||||||
pe_err("Station context not found - ignoring AddTsRsp");
|
pe_err("Station context not found - ignoring AddTsRsp");
|
||||||
qdf_mem_free(pAggrAddTsParam);
|
qdf_mem_free(pAggrAddTsParam);
|
||||||
return QDF_STATUS_E_FAILURE;
|
return QDF_STATUS_E_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
pAggrAddTsParam->staIdx = psessionEntry->staId;
|
pAggrAddTsParam->staIdx = pe_session->staId;
|
||||||
/* Fill in the sessionId specific to PE */
|
/* Fill in the sessionId specific to PE */
|
||||||
pAggrAddTsParam->sessionId = sessionId;
|
pAggrAddTsParam->sessionId = sessionId;
|
||||||
pAggrAddTsParam->tspecIdx = aggrQosReq->aggrInfo.tspecIdx;
|
pAggrAddTsParam->tspecIdx = aggrQosReq->aggrInfo.tspecIdx;
|
||||||
pAggrAddTsParam->vdev_id = psessionEntry->smeSessionId;
|
pAggrAddTsParam->vdev_id = pe_session->smeSessionId;
|
||||||
|
|
||||||
for (i = 0; i < HAL_QOS_NUM_AC_MAX; i++) {
|
for (i = 0; i < HAL_QOS_NUM_AC_MAX; i++) {
|
||||||
if (aggrQosReq->aggrInfo.tspecIdx & (1 << i)) {
|
if (aggrQosReq->aggrInfo.tspecIdx & (1 << i)) {
|
||||||
@@ -983,13 +983,13 @@ QDF_STATUS lim_process_ft_aggr_qos_req(tpAniSirGlobal mac, uint32_t *pMsgBuf)
|
|||||||
*/
|
*/
|
||||||
if (pTspec->tsinfo.traffic.psb == 1) {
|
if (pTspec->tsinfo.traffic.psb == 1) {
|
||||||
lim_set_tspec_uapsd_mask_per_session(mac,
|
lim_set_tspec_uapsd_mask_per_session(mac,
|
||||||
psessionEntry,
|
pe_session,
|
||||||
&pTspec->
|
&pTspec->
|
||||||
tsinfo,
|
tsinfo,
|
||||||
SET_UAPSD_MASK);
|
SET_UAPSD_MASK);
|
||||||
} else {
|
} else {
|
||||||
lim_set_tspec_uapsd_mask_per_session(mac,
|
lim_set_tspec_uapsd_mask_per_session(mac,
|
||||||
psessionEntry,
|
pe_session,
|
||||||
&pTspec->
|
&pTspec->
|
||||||
tsinfo,
|
tsinfo,
|
||||||
CLEAR_UAPSD_MASK);
|
CLEAR_UAPSD_MASK);
|
||||||
@@ -1004,33 +1004,33 @@ QDF_STATUS lim_process_ft_aggr_qos_req(tpAniSirGlobal mac, uint32_t *pMsgBuf)
|
|||||||
ac = upToAc(pTspec->tsinfo.traffic.userPrio);
|
ac = upToAc(pTspec->tsinfo.traffic.userPrio);
|
||||||
if (pTspec->tsinfo.traffic.direction ==
|
if (pTspec->tsinfo.traffic.direction ==
|
||||||
SIR_MAC_DIRECTION_UPLINK) {
|
SIR_MAC_DIRECTION_UPLINK) {
|
||||||
psessionEntry->
|
pe_session->
|
||||||
gAcAdmitMask
|
gAcAdmitMask
|
||||||
[SIR_MAC_DIRECTION_UPLINK] |=
|
[SIR_MAC_DIRECTION_UPLINK] |=
|
||||||
(1 << ac);
|
(1 << ac);
|
||||||
} else if (pTspec->tsinfo.traffic.direction ==
|
} else if (pTspec->tsinfo.traffic.direction ==
|
||||||
SIR_MAC_DIRECTION_DNLINK) {
|
SIR_MAC_DIRECTION_DNLINK) {
|
||||||
psessionEntry->
|
pe_session->
|
||||||
gAcAdmitMask
|
gAcAdmitMask
|
||||||
[SIR_MAC_DIRECTION_DNLINK] |=
|
[SIR_MAC_DIRECTION_DNLINK] |=
|
||||||
(1 << ac);
|
(1 << ac);
|
||||||
} else if (pTspec->tsinfo.traffic.direction ==
|
} else if (pTspec->tsinfo.traffic.direction ==
|
||||||
SIR_MAC_DIRECTION_BIDIR) {
|
SIR_MAC_DIRECTION_BIDIR) {
|
||||||
psessionEntry->
|
pe_session->
|
||||||
gAcAdmitMask
|
gAcAdmitMask
|
||||||
[SIR_MAC_DIRECTION_UPLINK] |=
|
[SIR_MAC_DIRECTION_UPLINK] |=
|
||||||
(1 << ac);
|
(1 << ac);
|
||||||
psessionEntry->
|
pe_session->
|
||||||
gAcAdmitMask
|
gAcAdmitMask
|
||||||
[SIR_MAC_DIRECTION_DNLINK] |=
|
[SIR_MAC_DIRECTION_DNLINK] |=
|
||||||
(1 << ac);
|
(1 << ac);
|
||||||
}
|
}
|
||||||
lim_set_active_edca_params(mac,
|
lim_set_active_edca_params(mac,
|
||||||
psessionEntry->gLimEdcaParams,
|
pe_session->gLimEdcaParams,
|
||||||
psessionEntry);
|
pe_session);
|
||||||
|
|
||||||
lim_send_edca_params(mac,
|
lim_send_edca_params(mac,
|
||||||
psessionEntry->gLimEdcaParamsActive,
|
pe_session->gLimEdcaParamsActive,
|
||||||
pSta->bssId, false);
|
pSta->bssId, false);
|
||||||
|
|
||||||
if (QDF_STATUS_SUCCESS !=
|
if (QDF_STATUS_SUCCESS !=
|
||||||
@@ -1050,7 +1050,7 @@ QDF_STATUS lim_process_ft_aggr_qos_req(tpAniSirGlobal mac, uint32_t *pMsgBuf)
|
|||||||
#ifdef WLAN_FEATURE_ROAM_OFFLOAD
|
#ifdef WLAN_FEATURE_ROAM_OFFLOAD
|
||||||
if (!mac->mlme_cfg->lfr.lfr3_roaming_offload ||
|
if (!mac->mlme_cfg->lfr.lfr3_roaming_offload ||
|
||||||
(mac->mlme_cfg->lfr.lfr3_roaming_offload &&
|
(mac->mlme_cfg->lfr.lfr3_roaming_offload &&
|
||||||
!psessionEntry->is11Rconnection))
|
!pe_session->is11Rconnection))
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
msg.type = WMA_AGGR_QOS_REQ;
|
msg.type = WMA_AGGR_QOS_REQ;
|
||||||
@@ -1061,7 +1061,7 @@ QDF_STATUS lim_process_ft_aggr_qos_req(tpAniSirGlobal mac, uint32_t *pMsgBuf)
|
|||||||
* WMA_AGGR_QOS_RSP from HAL.
|
* WMA_AGGR_QOS_RSP from HAL.
|
||||||
*/
|
*/
|
||||||
SET_LIM_PROCESS_DEFD_MESGS(mac, false);
|
SET_LIM_PROCESS_DEFD_MESGS(mac, false);
|
||||||
MTRACE(mac_trace_msg_tx(mac, psessionEntry->peSessionId, msg.type));
|
MTRACE(mac_trace_msg_tx(mac, pe_session->peSessionId, msg.type));
|
||||||
|
|
||||||
if (QDF_STATUS_SUCCESS != wma_post_ctrl_msg(mac, &msg)) {
|
if (QDF_STATUS_SUCCESS != wma_post_ctrl_msg(mac, &msg)) {
|
||||||
pe_warn("wma_post_ctrl_msg() failed");
|
pe_warn("wma_post_ctrl_msg() failed");
|
||||||
@@ -1078,7 +1078,7 @@ QDF_STATUS lim_process_ft_aggr_qos_req(tpAniSirGlobal mac, uint32_t *pMsgBuf)
|
|||||||
|
|
||||||
/* Send the Aggr QoS response to SME */
|
/* Send the Aggr QoS response to SME */
|
||||||
lim_ft_send_aggr_qos_rsp(mac, true, pAggrAddTsParam,
|
lim_ft_send_aggr_qos_rsp(mac, true, pAggrAddTsParam,
|
||||||
psessionEntry->smeSessionId);
|
pe_session->smeSessionId);
|
||||||
if (pAggrAddTsParam != NULL) {
|
if (pAggrAddTsParam != NULL) {
|
||||||
qdf_mem_free(pAggrAddTsParam);
|
qdf_mem_free(pAggrAddTsParam);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,7 +37,7 @@
|
|||||||
/**
|
/**
|
||||||
* lim_ft_cleanup_pre_auth_info() - Cleanup preauth related information
|
* lim_ft_cleanup_pre_auth_info() - Cleanup preauth related information
|
||||||
* @mac: Global MAC Context
|
* @mac: Global MAC Context
|
||||||
* @psessionEntry: PE Session
|
* @pe_session: PE Session
|
||||||
*
|
*
|
||||||
* This routine is called to free the FT context, session and other
|
* This routine is called to free the FT context, session and other
|
||||||
* information used during preauth operation.
|
* information used during preauth operation.
|
||||||
@@ -45,52 +45,52 @@
|
|||||||
* Return: None
|
* Return: None
|
||||||
*/
|
*/
|
||||||
void lim_ft_cleanup_pre_auth_info(tpAniSirGlobal mac,
|
void lim_ft_cleanup_pre_auth_info(tpAniSirGlobal mac,
|
||||||
struct pe_session *psessionEntry)
|
struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
struct pe_session *pReAssocSessionEntry = NULL;
|
struct pe_session *pReAssocSessionEntry = NULL;
|
||||||
uint8_t sessionId = 0;
|
uint8_t sessionId = 0;
|
||||||
|
|
||||||
if (!psessionEntry) {
|
if (!pe_session) {
|
||||||
pe_err("psessionEntry is NULL");
|
pe_err("pe_session is NULL");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Nothing to be done if the session is not in STA mode */
|
/* Nothing to be done if the session is not in STA mode */
|
||||||
if (!LIM_IS_STA_ROLE(psessionEntry)) {
|
if (!LIM_IS_STA_ROLE(pe_session)) {
|
||||||
pe_err("psessionEntry is not in STA mode");
|
pe_err("pe_session is not in STA mode");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (psessionEntry->ftPEContext.pFTPreAuthReq) {
|
if (pe_session->ftPEContext.pFTPreAuthReq) {
|
||||||
pReAssocSessionEntry =
|
pReAssocSessionEntry =
|
||||||
pe_find_session_by_bssid(mac,
|
pe_find_session_by_bssid(mac,
|
||||||
psessionEntry->ftPEContext.
|
pe_session->ftPEContext.
|
||||||
pFTPreAuthReq->preAuthbssId,
|
pFTPreAuthReq->preAuthbssId,
|
||||||
&sessionId);
|
&sessionId);
|
||||||
|
|
||||||
if (psessionEntry->ftPEContext.pFTPreAuthReq->
|
if (pe_session->ftPEContext.pFTPreAuthReq->
|
||||||
pbssDescription) {
|
pbssDescription) {
|
||||||
qdf_mem_free(psessionEntry->ftPEContext.pFTPreAuthReq->
|
qdf_mem_free(pe_session->ftPEContext.pFTPreAuthReq->
|
||||||
pbssDescription);
|
pbssDescription);
|
||||||
psessionEntry->ftPEContext.pFTPreAuthReq->
|
pe_session->ftPEContext.pFTPreAuthReq->
|
||||||
pbssDescription = NULL;
|
pbssDescription = NULL;
|
||||||
}
|
}
|
||||||
qdf_mem_free(psessionEntry->ftPEContext.pFTPreAuthReq);
|
qdf_mem_free(pe_session->ftPEContext.pFTPreAuthReq);
|
||||||
psessionEntry->ftPEContext.pFTPreAuthReq = NULL;
|
pe_session->ftPEContext.pFTPreAuthReq = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (psessionEntry->ftPEContext.pAddBssReq) {
|
if (pe_session->ftPEContext.pAddBssReq) {
|
||||||
qdf_mem_free(psessionEntry->ftPEContext.pAddBssReq);
|
qdf_mem_free(pe_session->ftPEContext.pAddBssReq);
|
||||||
psessionEntry->ftPEContext.pAddBssReq = NULL;
|
pe_session->ftPEContext.pAddBssReq = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (psessionEntry->ftPEContext.pAddStaReq) {
|
if (pe_session->ftPEContext.pAddStaReq) {
|
||||||
qdf_mem_free(psessionEntry->ftPEContext.pAddStaReq);
|
qdf_mem_free(pe_session->ftPEContext.pAddStaReq);
|
||||||
psessionEntry->ftPEContext.pAddStaReq = NULL;
|
pe_session->ftPEContext.pAddStaReq = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* The session is being deleted, cleanup the contents */
|
/* The session is being deleted, cleanup the contents */
|
||||||
qdf_mem_set(&psessionEntry->ftPEContext, sizeof(tftPEContext), 0);
|
qdf_mem_set(&pe_session->ftPEContext, sizeof(tftPEContext), 0);
|
||||||
|
|
||||||
/* Delete the session created while handling pre-auth response */
|
/* Delete the session created while handling pre-auth response */
|
||||||
if (pReAssocSessionEntry) {
|
if (pReAssocSessionEntry) {
|
||||||
@@ -214,7 +214,7 @@ int lim_process_ft_pre_auth_req(tpAniSirGlobal mac_ctx,
|
|||||||
* @mac: Global MAC Context
|
* @mac: Global MAC Context
|
||||||
* @status: Status Code
|
* @status: Status Code
|
||||||
* @data: pre-auth data
|
* @data: pre-auth data
|
||||||
* @psessionEntry: PE Session
|
* @pe_session: PE Session
|
||||||
*
|
*
|
||||||
* This routine will trigger the sending of authentication frame
|
* This routine will trigger the sending of authentication frame
|
||||||
* to the peer.
|
* to the peer.
|
||||||
@@ -222,25 +222,25 @@ int lim_process_ft_pre_auth_req(tpAniSirGlobal mac_ctx,
|
|||||||
* Return: None
|
* Return: None
|
||||||
*/
|
*/
|
||||||
void lim_perform_ft_pre_auth(tpAniSirGlobal mac, QDF_STATUS status,
|
void lim_perform_ft_pre_auth(tpAniSirGlobal mac, QDF_STATUS status,
|
||||||
uint32_t *data, struct pe_session *psessionEntry)
|
uint32_t *data, struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
tSirMacAuthFrameBody authFrame;
|
tSirMacAuthFrameBody authFrame;
|
||||||
unsigned int session_id;
|
unsigned int session_id;
|
||||||
eCsrAuthType auth_type;
|
eCsrAuthType auth_type;
|
||||||
|
|
||||||
if (NULL == psessionEntry) {
|
if (NULL == pe_session) {
|
||||||
pe_err("psessionEntry is NULL");
|
pe_err("pe_session is NULL");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
session_id = psessionEntry->smeSessionId;
|
session_id = pe_session->smeSessionId;
|
||||||
auth_type =
|
auth_type =
|
||||||
mac->roam.roamSession[session_id].connectedProfile.AuthType;
|
mac->roam.roamSession[session_id].connectedProfile.AuthType;
|
||||||
|
|
||||||
if (psessionEntry->is11Rconnection &&
|
if (pe_session->is11Rconnection &&
|
||||||
psessionEntry->ftPEContext.pFTPreAuthReq) {
|
pe_session->ftPEContext.pFTPreAuthReq) {
|
||||||
/* Only 11r assoc has FT IEs */
|
/* Only 11r assoc has FT IEs */
|
||||||
if ((auth_type != eCSR_AUTH_TYPE_OPEN_SYSTEM) &&
|
if ((auth_type != eCSR_AUTH_TYPE_OPEN_SYSTEM) &&
|
||||||
(psessionEntry->ftPEContext.pFTPreAuthReq->ft_ies_length
|
(pe_session->ftPEContext.pFTPreAuthReq->ft_ies_length
|
||||||
== 0)) {
|
== 0)) {
|
||||||
pe_err("FTIEs for Auth Req Seq 1 is absent");
|
pe_err("FTIEs for Auth Req Seq 1 is absent");
|
||||||
goto preauth_fail;
|
goto preauth_fail;
|
||||||
@@ -253,13 +253,13 @@ void lim_perform_ft_pre_auth(tpAniSirGlobal mac, QDF_STATUS status,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Nothing to be done if the session is not in STA mode */
|
/* Nothing to be done if the session is not in STA mode */
|
||||||
if (!LIM_IS_STA_ROLE(psessionEntry)) {
|
if (!LIM_IS_STA_ROLE(pe_session)) {
|
||||||
pe_err("psessionEntry is not in STA mode");
|
pe_err("pe_session is not in STA mode");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
pe_debug("Entered wait auth2 state for FT (old session %pK)",
|
pe_debug("Entered wait auth2 state for FT (old session %pK)",
|
||||||
psessionEntry);
|
pe_session);
|
||||||
if (psessionEntry->is11Rconnection) {
|
if (pe_session->is11Rconnection) {
|
||||||
/* Now we are on the right channel and need to send out Auth1
|
/* Now we are on the right channel and need to send out Auth1
|
||||||
* and receive Auth2
|
* and receive Auth2
|
||||||
*/
|
*/
|
||||||
@@ -274,75 +274,75 @@ void lim_perform_ft_pre_auth(tpAniSirGlobal mac, QDF_STATUS status,
|
|||||||
authFrame.authStatusCode = 0;
|
authFrame.authStatusCode = 0;
|
||||||
|
|
||||||
mac->lim.limTimers.g_lim_periodic_auth_retry_timer.sessionId =
|
mac->lim.limTimers.g_lim_periodic_auth_retry_timer.sessionId =
|
||||||
psessionEntry->peSessionId;
|
pe_session->peSessionId;
|
||||||
|
|
||||||
/* Start timer here to come back to operating channel */
|
/* Start timer here to come back to operating channel */
|
||||||
mac->lim.limTimers.gLimFTPreAuthRspTimer.sessionId =
|
mac->lim.limTimers.gLimFTPreAuthRspTimer.sessionId =
|
||||||
psessionEntry->peSessionId;
|
pe_session->peSessionId;
|
||||||
if (TX_SUCCESS !=
|
if (TX_SUCCESS !=
|
||||||
tx_timer_activate(&mac->lim.limTimers.gLimFTPreAuthRspTimer)) {
|
tx_timer_activate(&mac->lim.limTimers.gLimFTPreAuthRspTimer)) {
|
||||||
pe_err("FT Auth Rsp Timer Start Failed");
|
pe_err("FT Auth Rsp Timer Start Failed");
|
||||||
goto preauth_fail;
|
goto preauth_fail;
|
||||||
}
|
}
|
||||||
MTRACE(mac_trace(mac, TRACE_CODE_TIMER_ACTIVATE,
|
MTRACE(mac_trace(mac, TRACE_CODE_TIMER_ACTIVATE,
|
||||||
psessionEntry->peSessionId, eLIM_FT_PREAUTH_RSP_TIMER));
|
pe_session->peSessionId, eLIM_FT_PREAUTH_RSP_TIMER));
|
||||||
|
|
||||||
pe_debug("FT Auth Rsp Timer Started");
|
pe_debug("FT Auth Rsp Timer Started");
|
||||||
#ifdef FEATURE_WLAN_DIAG_SUPPORT
|
#ifdef FEATURE_WLAN_DIAG_SUPPORT
|
||||||
lim_diag_event_report(mac, WLAN_PE_DIAG_ROAM_AUTH_START_EVENT,
|
lim_diag_event_report(mac, WLAN_PE_DIAG_ROAM_AUTH_START_EVENT,
|
||||||
mac->lim.pSessionEntry, QDF_STATUS_SUCCESS, QDF_STATUS_SUCCESS);
|
mac->lim.pe_session, QDF_STATUS_SUCCESS, QDF_STATUS_SUCCESS);
|
||||||
#endif
|
#endif
|
||||||
if (psessionEntry->ftPEContext.pFTPreAuthReq)
|
if (pe_session->ftPEContext.pFTPreAuthReq)
|
||||||
lim_send_auth_mgmt_frame(mac, &authFrame,
|
lim_send_auth_mgmt_frame(mac, &authFrame,
|
||||||
psessionEntry->ftPEContext.pFTPreAuthReq->preAuthbssId,
|
pe_session->ftPEContext.pFTPreAuthReq->preAuthbssId,
|
||||||
LIM_NO_WEP_IN_FC, psessionEntry);
|
LIM_NO_WEP_IN_FC, pe_session);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
|
|
||||||
preauth_fail:
|
preauth_fail:
|
||||||
lim_handle_ft_pre_auth_rsp(mac, QDF_STATUS_E_FAILURE, NULL, 0, psessionEntry);
|
lim_handle_ft_pre_auth_rsp(mac, QDF_STATUS_E_FAILURE, NULL, 0, pe_session);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* lim_ft_setup_auth_session() - Fill the FT Session
|
* lim_ft_setup_auth_session() - Fill the FT Session
|
||||||
* @mac: Global MAC Context
|
* @mac: Global MAC Context
|
||||||
* @psessionEntry: PE Session
|
* @pe_session: PE Session
|
||||||
*
|
*
|
||||||
* Setup the session and the add bss req for the pre-auth AP.
|
* Setup the session and the add bss req for the pre-auth AP.
|
||||||
*
|
*
|
||||||
* Return: Success or Failure Status
|
* Return: Success or Failure Status
|
||||||
*/
|
*/
|
||||||
QDF_STATUS lim_ft_setup_auth_session(tpAniSirGlobal mac,
|
QDF_STATUS lim_ft_setup_auth_session(tpAniSirGlobal mac,
|
||||||
struct pe_session *psessionEntry)
|
struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
struct pe_session *ft_session = NULL;
|
struct pe_session *ft_session = NULL;
|
||||||
uint8_t sessionId = 0;
|
uint8_t sessionId = 0;
|
||||||
|
|
||||||
ft_session =
|
ft_session =
|
||||||
pe_find_session_by_bssid(mac, psessionEntry->limReAssocbssId,
|
pe_find_session_by_bssid(mac, pe_session->limReAssocbssId,
|
||||||
&sessionId);
|
&sessionId);
|
||||||
if (ft_session == NULL) {
|
if (ft_session == NULL) {
|
||||||
pe_err("No session found for bssid");
|
pe_err("No session found for bssid");
|
||||||
lim_print_mac_addr(mac, psessionEntry->limReAssocbssId, LOGE);
|
lim_print_mac_addr(mac, pe_session->limReAssocbssId, LOGE);
|
||||||
return QDF_STATUS_E_FAILURE;
|
return QDF_STATUS_E_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Nothing to be done if the session is not in STA mode */
|
/* Nothing to be done if the session is not in STA mode */
|
||||||
if (!LIM_IS_STA_ROLE(psessionEntry)) {
|
if (!LIM_IS_STA_ROLE(pe_session)) {
|
||||||
pe_err("psessionEntry is not in STA mode");
|
pe_err("pe_session is not in STA mode");
|
||||||
return QDF_STATUS_E_FAILURE;
|
return QDF_STATUS_E_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (psessionEntry->ftPEContext.pFTPreAuthReq &&
|
if (pe_session->ftPEContext.pFTPreAuthReq &&
|
||||||
psessionEntry->ftPEContext.pFTPreAuthReq->pbssDescription) {
|
pe_session->ftPEContext.pFTPreAuthReq->pbssDescription) {
|
||||||
lim_fill_ft_session(mac,
|
lim_fill_ft_session(mac,
|
||||||
psessionEntry->ftPEContext.pFTPreAuthReq->
|
pe_session->ftPEContext.pFTPreAuthReq->
|
||||||
pbssDescription, ft_session,
|
pbssDescription, ft_session,
|
||||||
psessionEntry);
|
pe_session);
|
||||||
|
|
||||||
lim_ft_prepare_add_bss_req(mac, false, ft_session,
|
lim_ft_prepare_add_bss_req(mac, false, ft_session,
|
||||||
psessionEntry->ftPEContext.pFTPreAuthReq->pbssDescription);
|
pe_session->ftPEContext.pFTPreAuthReq->pbssDescription);
|
||||||
}
|
}
|
||||||
|
|
||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
@@ -351,33 +351,33 @@ QDF_STATUS lim_ft_setup_auth_session(tpAniSirGlobal mac,
|
|||||||
/**
|
/**
|
||||||
* lim_ft_process_pre_auth_result() - Process the Auth frame
|
* lim_ft_process_pre_auth_result() - Process the Auth frame
|
||||||
* @mac: Global MAC context
|
* @mac: Global MAC context
|
||||||
* @psessionEntry: PE Session
|
* @pe_session: PE Session
|
||||||
*
|
*
|
||||||
* Return: None
|
* Return: None
|
||||||
*/
|
*/
|
||||||
static void lim_ft_process_pre_auth_result(tpAniSirGlobal mac,
|
static void lim_ft_process_pre_auth_result(tpAniSirGlobal mac,
|
||||||
struct pe_session *psessionEntry)
|
struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
if (NULL == psessionEntry ||
|
if (NULL == pe_session ||
|
||||||
NULL == psessionEntry->ftPEContext.pFTPreAuthReq)
|
NULL == pe_session->ftPEContext.pFTPreAuthReq)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
/* Nothing to be done if the session is not in STA mode */
|
/* Nothing to be done if the session is not in STA mode */
|
||||||
if (!LIM_IS_STA_ROLE(psessionEntry)) {
|
if (!LIM_IS_STA_ROLE(pe_session)) {
|
||||||
pe_err("psessionEntry is not in STA mode");
|
pe_err("pe_session is not in STA mode");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (psessionEntry->ftPEContext.ftPreAuthStatus == QDF_STATUS_SUCCESS) {
|
if (pe_session->ftPEContext.ftPreAuthStatus == QDF_STATUS_SUCCESS) {
|
||||||
psessionEntry->ftPEContext.ftPreAuthStatus =
|
pe_session->ftPEContext.ftPreAuthStatus =
|
||||||
lim_ft_setup_auth_session(mac, psessionEntry);
|
lim_ft_setup_auth_session(mac, pe_session);
|
||||||
}
|
}
|
||||||
/* Post the FT Pre Auth Response to SME */
|
/* Post the FT Pre Auth Response to SME */
|
||||||
lim_post_ft_pre_auth_rsp(mac,
|
lim_post_ft_pre_auth_rsp(mac,
|
||||||
psessionEntry->ftPEContext.ftPreAuthStatus,
|
pe_session->ftPEContext.ftPreAuthStatus,
|
||||||
psessionEntry->ftPEContext.saved_auth_rsp,
|
pe_session->ftPEContext.saved_auth_rsp,
|
||||||
psessionEntry->ftPEContext.saved_auth_rsp_length,
|
pe_session->ftPEContext.saved_auth_rsp_length,
|
||||||
psessionEntry);
|
pe_session);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -386,7 +386,7 @@ static void lim_ft_process_pre_auth_result(tpAniSirGlobal mac,
|
|||||||
* @status: Status Code
|
* @status: Status Code
|
||||||
* @auth_rsp: Auth Response
|
* @auth_rsp: Auth Response
|
||||||
* @auth_rsp_length: Auth response length
|
* @auth_rsp_length: Auth response length
|
||||||
* @psessionEntry: PE Session
|
* @pe_session: PE Session
|
||||||
*
|
*
|
||||||
* Send the FT Pre Auth Response to SME whenever we have a status
|
* Send the FT Pre Auth Response to SME whenever we have a status
|
||||||
* ready to be sent to SME
|
* ready to be sent to SME
|
||||||
@@ -398,60 +398,60 @@ static void lim_ft_process_pre_auth_result(tpAniSirGlobal mac,
|
|||||||
*/
|
*/
|
||||||
void lim_handle_ft_pre_auth_rsp(tpAniSirGlobal mac, QDF_STATUS status,
|
void lim_handle_ft_pre_auth_rsp(tpAniSirGlobal mac, QDF_STATUS status,
|
||||||
uint8_t *auth_rsp, uint16_t auth_rsp_length,
|
uint8_t *auth_rsp, uint16_t auth_rsp_length,
|
||||||
struct pe_session *psessionEntry)
|
struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
struct pe_session *ft_session = NULL;
|
struct pe_session *ft_session = NULL;
|
||||||
uint8_t sessionId = 0;
|
uint8_t sessionId = 0;
|
||||||
tpSirBssDescription pbssDescription = NULL;
|
tpSirBssDescription pbssDescription = NULL;
|
||||||
#ifdef FEATURE_WLAN_DIAG_SUPPORT
|
#ifdef FEATURE_WLAN_DIAG_SUPPORT
|
||||||
lim_diag_event_report(mac, WLAN_PE_DIAG_PRE_AUTH_RSP_EVENT,
|
lim_diag_event_report(mac, WLAN_PE_DIAG_PRE_AUTH_RSP_EVENT,
|
||||||
psessionEntry, (uint16_t) status, 0);
|
pe_session, (uint16_t) status, 0);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Nothing to be done if the session is not in STA mode */
|
/* Nothing to be done if the session is not in STA mode */
|
||||||
if (!LIM_IS_STA_ROLE(psessionEntry)) {
|
if (!LIM_IS_STA_ROLE(pe_session)) {
|
||||||
pe_err("psessionEntry is not in STA mode");
|
pe_err("pe_session is not in STA mode");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Save the status of pre-auth */
|
/* Save the status of pre-auth */
|
||||||
psessionEntry->ftPEContext.ftPreAuthStatus = status;
|
pe_session->ftPEContext.ftPreAuthStatus = status;
|
||||||
|
|
||||||
/* Save the auth rsp, so we can send it to
|
/* Save the auth rsp, so we can send it to
|
||||||
* SME once we resume link
|
* SME once we resume link
|
||||||
*/
|
*/
|
||||||
psessionEntry->ftPEContext.saved_auth_rsp_length = 0;
|
pe_session->ftPEContext.saved_auth_rsp_length = 0;
|
||||||
if ((auth_rsp != NULL) && (auth_rsp_length < MAX_FTIE_SIZE)) {
|
if ((auth_rsp != NULL) && (auth_rsp_length < MAX_FTIE_SIZE)) {
|
||||||
qdf_mem_copy(psessionEntry->ftPEContext.saved_auth_rsp,
|
qdf_mem_copy(pe_session->ftPEContext.saved_auth_rsp,
|
||||||
auth_rsp, auth_rsp_length);
|
auth_rsp, auth_rsp_length);
|
||||||
psessionEntry->ftPEContext.saved_auth_rsp_length =
|
pe_session->ftPEContext.saved_auth_rsp_length =
|
||||||
auth_rsp_length;
|
auth_rsp_length;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!psessionEntry->ftPEContext.pFTPreAuthReq ||
|
if (!pe_session->ftPEContext.pFTPreAuthReq ||
|
||||||
!psessionEntry->ftPEContext.pFTPreAuthReq->pbssDescription) {
|
!pe_session->ftPEContext.pFTPreAuthReq->pbssDescription) {
|
||||||
pe_err("pFTPreAuthReq or pbssDescription is NULL");
|
pe_err("pFTPreAuthReq or pbssDescription is NULL");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Create FT session for the re-association at this point */
|
/* Create FT session for the re-association at this point */
|
||||||
if (psessionEntry->ftPEContext.ftPreAuthStatus == QDF_STATUS_SUCCESS) {
|
if (pe_session->ftPEContext.ftPreAuthStatus == QDF_STATUS_SUCCESS) {
|
||||||
pbssDescription =
|
pbssDescription =
|
||||||
psessionEntry->ftPEContext.pFTPreAuthReq->pbssDescription;
|
pe_session->ftPEContext.pFTPreAuthReq->pbssDescription;
|
||||||
ft_session =
|
ft_session =
|
||||||
pe_create_session(mac, pbssDescription->bssId,
|
pe_create_session(mac, pbssDescription->bssId,
|
||||||
&sessionId, mac->lim.maxStation,
|
&sessionId, mac->lim.maxStation,
|
||||||
psessionEntry->bssType,
|
pe_session->bssType,
|
||||||
psessionEntry->smeSessionId);
|
pe_session->smeSessionId);
|
||||||
if (!ft_session) {
|
if (!ft_session) {
|
||||||
pe_err("Session not created for pre-auth 11R AP");
|
pe_err("Session not created for pre-auth 11R AP");
|
||||||
status = QDF_STATUS_E_FAILURE;
|
status = QDF_STATUS_E_FAILURE;
|
||||||
psessionEntry->ftPEContext.ftPreAuthStatus = status;
|
pe_session->ftPEContext.ftPreAuthStatus = status;
|
||||||
goto send_rsp;
|
goto send_rsp;
|
||||||
}
|
}
|
||||||
|
|
||||||
sir_copy_mac_addr(ft_session->selfMacAddr,
|
sir_copy_mac_addr(ft_session->selfMacAddr,
|
||||||
psessionEntry->selfMacAddr);
|
pe_session->selfMacAddr);
|
||||||
sir_copy_mac_addr(ft_session->limReAssocbssId,
|
sir_copy_mac_addr(ft_session->limReAssocbssId,
|
||||||
pbssDescription->bssId);
|
pbssDescription->bssId);
|
||||||
|
|
||||||
@@ -467,11 +467,11 @@ void lim_handle_ft_pre_auth_rsp(tpAniSirGlobal mac, QDF_STATUS status,
|
|||||||
|
|
||||||
ft_session->limPrevSmeState = ft_session->limSmeState;
|
ft_session->limPrevSmeState = ft_session->limSmeState;
|
||||||
qdf_mem_copy(&(ft_session->htConfig),
|
qdf_mem_copy(&(ft_session->htConfig),
|
||||||
&(psessionEntry->htConfig),
|
&(pe_session->htConfig),
|
||||||
sizeof(psessionEntry->htConfig));
|
sizeof(pe_session->htConfig));
|
||||||
ft_session->limSmeState = eLIM_SME_WT_REASSOC_STATE;
|
ft_session->limSmeState = eLIM_SME_WT_REASSOC_STATE;
|
||||||
|
|
||||||
if (IS_5G_CH(psessionEntry->ftPEContext.pFTPreAuthReq->
|
if (IS_5G_CH(pe_session->ftPEContext.pFTPreAuthReq->
|
||||||
preAuthchannelNum))
|
preAuthchannelNum))
|
||||||
ft_session->vdev_nss = mac->vdev_type_nss_5g.sta;
|
ft_session->vdev_nss = mac->vdev_type_nss_5g.sta;
|
||||||
else
|
else
|
||||||
@@ -481,24 +481,24 @@ void lim_handle_ft_pre_auth_rsp(tpAniSirGlobal mac, QDF_STATUS status,
|
|||||||
ft_session, ft_session->peSessionId);
|
ft_session, ft_session->peSessionId);
|
||||||
|
|
||||||
/* Update the ReAssoc BSSID of the current session */
|
/* Update the ReAssoc BSSID of the current session */
|
||||||
sir_copy_mac_addr(psessionEntry->limReAssocbssId,
|
sir_copy_mac_addr(pe_session->limReAssocbssId,
|
||||||
pbssDescription->bssId);
|
pbssDescription->bssId);
|
||||||
lim_print_mac_addr(mac, psessionEntry->limReAssocbssId, LOGD);
|
lim_print_mac_addr(mac, pe_session->limReAssocbssId, LOGD);
|
||||||
}
|
}
|
||||||
send_rsp:
|
send_rsp:
|
||||||
if ((psessionEntry->currentOperChannel !=
|
if ((pe_session->currentOperChannel !=
|
||||||
psessionEntry->ftPEContext.pFTPreAuthReq->preAuthchannelNum) ||
|
pe_session->ftPEContext.pFTPreAuthReq->preAuthchannelNum) ||
|
||||||
lim_is_in_mcc(mac)) {
|
lim_is_in_mcc(mac)) {
|
||||||
/* Need to move to the original AP channel */
|
/* Need to move to the original AP channel */
|
||||||
lim_process_abort_scan_ind(mac, psessionEntry->smeSessionId,
|
lim_process_abort_scan_ind(mac, pe_session->smeSessionId,
|
||||||
psessionEntry->ftPEContext.pFTPreAuthReq->scan_id,
|
pe_session->ftPEContext.pFTPreAuthReq->scan_id,
|
||||||
mac->lim.req_id | PREAUTH_REQUESTOR_ID);
|
mac->lim.req_id | PREAUTH_REQUESTOR_ID);
|
||||||
} else {
|
} else {
|
||||||
pe_debug("Pre auth on same channel as connected AP channel %d\
|
pe_debug("Pre auth on same channel as connected AP channel %d\
|
||||||
and no mcc pe sessions exist",
|
and no mcc pe sessions exist",
|
||||||
psessionEntry->ftPEContext.pFTPreAuthReq->
|
pe_session->ftPEContext.pFTPreAuthReq->
|
||||||
preAuthchannelNum);
|
preAuthchannelNum);
|
||||||
lim_ft_process_pre_auth_result(mac, psessionEntry);
|
lim_ft_process_pre_auth_result(mac, pe_session);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -148,7 +148,7 @@ static void
|
|||||||
ibss_peer_collect(tpAniSirGlobal mac,
|
ibss_peer_collect(tpAniSirGlobal mac,
|
||||||
tpSchBeaconStruct pBeacon,
|
tpSchBeaconStruct pBeacon,
|
||||||
tpSirMacMgmtHdr pHdr,
|
tpSirMacMgmtHdr pHdr,
|
||||||
tLimIbssPeerNode *peer, struct pe_session *psessionEntry)
|
tLimIbssPeerNode *peer, struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
qdf_mem_copy(peer->peerMacAddr, pHdr->sa, sizeof(tSirMacAddr));
|
qdf_mem_copy(peer->peerMacAddr, pHdr->sa, sizeof(tSirMacAddr));
|
||||||
|
|
||||||
@@ -163,7 +163,7 @@ ibss_peer_collect(tpAniSirGlobal mac,
|
|||||||
peer->peerAtimWindowLength = pBeacon->IBSSParams.atim;
|
peer->peerAtimWindowLength = pBeacon->IBSSParams.atim;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (IS_DOT11_MODE_HT(psessionEntry->dot11mode) &&
|
if (IS_DOT11_MODE_HT(pe_session->dot11mode) &&
|
||||||
(pBeacon->HTCaps.present)) {
|
(pBeacon->HTCaps.present)) {
|
||||||
peer->htCapable = pBeacon->HTCaps.present;
|
peer->htCapable = pBeacon->HTCaps.present;
|
||||||
qdf_mem_copy((uint8_t *) peer->supportedMCSSet,
|
qdf_mem_copy((uint8_t *) peer->supportedMCSSet,
|
||||||
@@ -216,7 +216,7 @@ ibss_peer_collect(tpAniSirGlobal mac,
|
|||||||
/* handle change in peer qos/wme capabilities */
|
/* handle change in peer qos/wme capabilities */
|
||||||
static void
|
static void
|
||||||
ibss_sta_caps_update(tpAniSirGlobal mac,
|
ibss_sta_caps_update(tpAniSirGlobal mac,
|
||||||
tLimIbssPeerNode *pPeerNode, struct pe_session *psessionEntry)
|
tLimIbssPeerNode *pPeerNode, struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
uint16_t peerIdx;
|
uint16_t peerIdx;
|
||||||
tpDphHashNode pStaDs;
|
tpDphHashNode pStaDs;
|
||||||
@@ -225,12 +225,12 @@ ibss_sta_caps_update(tpAniSirGlobal mac,
|
|||||||
|
|
||||||
/* if the peer node exists, update its qos capabilities */
|
/* if the peer node exists, update its qos capabilities */
|
||||||
pStaDs = dph_lookup_hash_entry(mac, pPeerNode->peerMacAddr, &peerIdx,
|
pStaDs = dph_lookup_hash_entry(mac, pPeerNode->peerMacAddr, &peerIdx,
|
||||||
&psessionEntry->dph.dphHashTable);
|
&pe_session->dph.dphHashTable);
|
||||||
if (pStaDs == NULL)
|
if (pStaDs == NULL)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
/* Update HT Capabilities */
|
/* Update HT Capabilities */
|
||||||
if (IS_DOT11_MODE_HT(psessionEntry->dot11mode)) {
|
if (IS_DOT11_MODE_HT(pe_session->dot11mode)) {
|
||||||
pStaDs->mlmStaContext.htCapability = pPeerNode->htCapable;
|
pStaDs->mlmStaContext.htCapability = pPeerNode->htCapable;
|
||||||
if (pPeerNode->htCapable) {
|
if (pPeerNode->htCapable) {
|
||||||
pStaDs->htGreenfield = pPeerNode->htGreenfield;
|
pStaDs->htGreenfield = pPeerNode->htGreenfield;
|
||||||
@@ -253,7 +253,7 @@ ibss_sta_caps_update(tpAniSirGlobal mac,
|
|||||||
pStaDs->htLdpcCapable = pPeerNode->htLdpcCapable;
|
pStaDs->htLdpcCapable = pPeerNode->htLdpcCapable;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (IS_DOT11_MODE_VHT(psessionEntry->dot11mode)) {
|
if (IS_DOT11_MODE_VHT(pe_session->dot11mode)) {
|
||||||
pStaDs->mlmStaContext.vhtCapability = pPeerNode->vhtCapable;
|
pStaDs->mlmStaContext.vhtCapability = pPeerNode->vhtCapable;
|
||||||
if (pPeerNode->vhtCapable) {
|
if (pPeerNode->vhtCapable) {
|
||||||
pStaDs->vhtSupportedChannelWidthSet =
|
pStaDs->vhtSupportedChannelWidthSet =
|
||||||
@@ -271,7 +271,7 @@ ibss_sta_caps_update(tpAniSirGlobal mac,
|
|||||||
/* some STA's when joining Airgo IBSS, assert qos capability even when */
|
/* some STA's when joining Airgo IBSS, assert qos capability even when */
|
||||||
/* they don't support qos. however, they do not include the edca parameter */
|
/* they don't support qos. however, they do not include the edca parameter */
|
||||||
/* set. so let's check for edcaParam in addition to the qos capability */
|
/* set. so let's check for edcaParam in addition to the qos capability */
|
||||||
if (pPeerNode->capabilityInfo.qos && (psessionEntry->limQosEnabled)
|
if (pPeerNode->capabilityInfo.qos && (pe_session->limQosEnabled)
|
||||||
&& pPeerNode->edcaPresent) {
|
&& pPeerNode->edcaPresent) {
|
||||||
pStaDs->qosMode = 1;
|
pStaDs->qosMode = 1;
|
||||||
pStaDs->wmeEnabled = 0;
|
pStaDs->wmeEnabled = 0;
|
||||||
@@ -287,7 +287,7 @@ ibss_sta_caps_update(tpAniSirGlobal mac,
|
|||||||
pStaDs->lleEnabled = 0;
|
pStaDs->lleEnabled = 0;
|
||||||
}
|
}
|
||||||
/* peer is wme capable but is not wme enabled yet */
|
/* peer is wme capable but is not wme enabled yet */
|
||||||
if (pPeerNode->wmeInfoPresent && psessionEntry->limWmeEnabled) {
|
if (pPeerNode->wmeInfoPresent && pe_session->limWmeEnabled) {
|
||||||
pStaDs->qosMode = 1;
|
pStaDs->qosMode = 1;
|
||||||
pStaDs->lleEnabled = 0;
|
pStaDs->lleEnabled = 0;
|
||||||
if (!pStaDs->wmeEnabled) {
|
if (!pStaDs->wmeEnabled) {
|
||||||
@@ -299,7 +299,7 @@ ibss_sta_caps_update(tpAniSirGlobal mac,
|
|||||||
considering. Added this code when we saw that one of the Peer Device
|
considering. Added this code when we saw that one of the Peer Device
|
||||||
was advertising WMM param where we were not honouring that. CR# 210756
|
was advertising WMM param where we were not honouring that. CR# 210756
|
||||||
*/
|
*/
|
||||||
if (pPeerNode->wmeEdcaPresent && psessionEntry->limWmeEnabled) {
|
if (pPeerNode->wmeEdcaPresent && pe_session->limWmeEnabled) {
|
||||||
pStaDs->qosMode = 1;
|
pStaDs->qosMode = 1;
|
||||||
pStaDs->lleEnabled = 0;
|
pStaDs->lleEnabled = 0;
|
||||||
if (!pStaDs->wmeEnabled) {
|
if (!pStaDs->wmeEnabled) {
|
||||||
@@ -318,11 +318,11 @@ ibss_sta_caps_update(tpAniSirGlobal mac,
|
|||||||
static void
|
static void
|
||||||
ibss_sta_rates_update(tpAniSirGlobal mac,
|
ibss_sta_rates_update(tpAniSirGlobal mac,
|
||||||
tpDphHashNode pStaDs,
|
tpDphHashNode pStaDs,
|
||||||
tLimIbssPeerNode *peer, struct pe_session *psessionEntry)
|
tLimIbssPeerNode *peer, struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
lim_populate_matching_rate_set(mac, pStaDs, &peer->supportedRates,
|
lim_populate_matching_rate_set(mac, pStaDs, &peer->supportedRates,
|
||||||
&peer->extendedRates,
|
&peer->extendedRates,
|
||||||
peer->supportedMCSSet, psessionEntry,
|
peer->supportedMCSSet, pe_session,
|
||||||
&peer->VHTCaps, NULL);
|
&peer->VHTCaps, NULL);
|
||||||
pStaDs->mlmStaContext.capabilityInfo = peer->capabilityInfo;
|
pStaDs->mlmStaContext.capabilityInfo = peer->capabilityInfo;
|
||||||
} /*** end ibss_sta_info_update() ***/
|
} /*** end ibss_sta_info_update() ***/
|
||||||
@@ -350,11 +350,11 @@ ibss_sta_rates_update(tpAniSirGlobal mac,
|
|||||||
static void
|
static void
|
||||||
ibss_sta_info_update(tpAniSirGlobal mac,
|
ibss_sta_info_update(tpAniSirGlobal mac,
|
||||||
tpDphHashNode pStaDs,
|
tpDphHashNode pStaDs,
|
||||||
tLimIbssPeerNode *peer, struct pe_session *psessionEntry)
|
tLimIbssPeerNode *peer, struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
pStaDs->staType = STA_ENTRY_PEER;
|
pStaDs->staType = STA_ENTRY_PEER;
|
||||||
ibss_sta_caps_update(mac, peer, psessionEntry);
|
ibss_sta_caps_update(mac, peer, pe_session);
|
||||||
ibss_sta_rates_update(mac, pStaDs, peer, psessionEntry);
|
ibss_sta_rates_update(mac, pStaDs, peer, pe_session);
|
||||||
} /*** end ibss_sta_info_update() ***/
|
} /*** end ibss_sta_info_update() ***/
|
||||||
|
|
||||||
static void ibss_coalesce_free(tpAniSirGlobal mac)
|
static void ibss_coalesce_free(tpAniSirGlobal mac)
|
||||||
@@ -399,7 +399,7 @@ ibss_coalesce_save(tpAniSirGlobal mac,
|
|||||||
static QDF_STATUS
|
static QDF_STATUS
|
||||||
ibss_dph_entry_add(tpAniSirGlobal mac,
|
ibss_dph_entry_add(tpAniSirGlobal mac,
|
||||||
tSirMacAddr peerAddr,
|
tSirMacAddr peerAddr,
|
||||||
tpDphHashNode *ppSta, struct pe_session *psessionEntry)
|
tpDphHashNode *ppSta, struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
uint16_t peerIdx;
|
uint16_t peerIdx;
|
||||||
tpDphHashNode pStaDs;
|
tpDphHashNode pStaDs;
|
||||||
@@ -408,7 +408,7 @@ ibss_dph_entry_add(tpAniSirGlobal mac,
|
|||||||
|
|
||||||
pStaDs =
|
pStaDs =
|
||||||
dph_lookup_hash_entry(mac, peerAddr, &peerIdx,
|
dph_lookup_hash_entry(mac, peerAddr, &peerIdx,
|
||||||
&psessionEntry->dph.dphHashTable);
|
&pe_session->dph.dphHashTable);
|
||||||
if (pStaDs != NULL) {
|
if (pStaDs != NULL) {
|
||||||
/* Trying to add context for already existing STA in IBSS */
|
/* Trying to add context for already existing STA in IBSS */
|
||||||
pe_err("STA exists already");
|
pe_err("STA exists already");
|
||||||
@@ -421,20 +421,20 @@ ibss_dph_entry_add(tpAniSirGlobal mac,
|
|||||||
* AID and then add an entry to hash table maintained
|
* AID and then add an entry to hash table maintained
|
||||||
* by DPH module.
|
* by DPH module.
|
||||||
*/
|
*/
|
||||||
peerIdx = lim_assign_peer_idx(mac, psessionEntry);
|
peerIdx = lim_assign_peer_idx(mac, pe_session);
|
||||||
|
|
||||||
pStaDs =
|
pStaDs =
|
||||||
dph_get_hash_entry(mac, peerIdx, &psessionEntry->dph.dphHashTable);
|
dph_get_hash_entry(mac, peerIdx, &pe_session->dph.dphHashTable);
|
||||||
if (pStaDs) {
|
if (pStaDs) {
|
||||||
(void)lim_del_sta(mac, pStaDs, false /*asynchronous */,
|
(void)lim_del_sta(mac, pStaDs, false /*asynchronous */,
|
||||||
psessionEntry);
|
pe_session);
|
||||||
lim_delete_dph_hash_entry(mac, pStaDs->staAddr, peerIdx,
|
lim_delete_dph_hash_entry(mac, pStaDs->staAddr, peerIdx,
|
||||||
psessionEntry);
|
pe_session);
|
||||||
}
|
}
|
||||||
|
|
||||||
pStaDs =
|
pStaDs =
|
||||||
dph_add_hash_entry(mac, peerAddr, peerIdx,
|
dph_add_hash_entry(mac, peerAddr, peerIdx,
|
||||||
&psessionEntry->dph.dphHashTable);
|
&pe_session->dph.dphHashTable);
|
||||||
if (pStaDs == NULL) {
|
if (pStaDs == NULL) {
|
||||||
/* Could not add hash table entry */
|
/* Could not add hash table entry */
|
||||||
pe_err("could not add hash entry at DPH for peerIdx/aid: %d MACaddr:",
|
pe_err("could not add hash entry at DPH for peerIdx/aid: %d MACaddr:",
|
||||||
@@ -475,7 +475,7 @@ ibss_status_chg_notify(tpAniSirGlobal mac, tSirMacAddr peerAddr,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ibss_bss_add(tpAniSirGlobal mac, struct pe_session *psessionEntry)
|
void ibss_bss_add(tpAniSirGlobal mac, struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
tLimMlmStartReq mlmStartReq;
|
tLimMlmStartReq mlmStartReq;
|
||||||
uint32_t cfg;
|
uint32_t cfg;
|
||||||
@@ -489,14 +489,14 @@ void ibss_bss_add(tpAniSirGlobal mac, struct pe_session *psessionEntry)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
qdf_mem_copy(psessionEntry->bssId, pHdr->bssId, sizeof(tSirMacAddr));
|
qdf_mem_copy(pe_session->bssId, pHdr->bssId, sizeof(tSirMacAddr));
|
||||||
|
|
||||||
sir_copy_mac_addr(pHdr->bssId, psessionEntry->bssId);
|
sir_copy_mac_addr(pHdr->bssId, pe_session->bssId);
|
||||||
|
|
||||||
/* Copy beacon interval from sessionTable */
|
/* Copy beacon interval from sessionTable */
|
||||||
cfg = psessionEntry->beaconParams.beaconInterval;
|
cfg = pe_session->beaconParams.beaconInterval;
|
||||||
if (cfg != pBeacon->beaconInterval)
|
if (cfg != pBeacon->beaconInterval)
|
||||||
psessionEntry->beaconParams.beaconInterval =
|
pe_session->beaconParams.beaconInterval =
|
||||||
pBeacon->beaconInterval;
|
pBeacon->beaconInterval;
|
||||||
|
|
||||||
/* This function ibss_bss_add (and hence the below code) is only called during ibss coalescing. We need to
|
/* This function ibss_bss_add (and hence the below code) is only called during ibss coalescing. We need to
|
||||||
@@ -505,12 +505,12 @@ void ibss_bss_add(tpAniSirGlobal mac, struct pe_session *psessionEntry)
|
|||||||
* to peer's short slot using code below.
|
* to peer's short slot using code below.
|
||||||
*/
|
*/
|
||||||
/* If cfg is already set to current peer's capability then no need to set it again */
|
/* If cfg is already set to current peer's capability then no need to set it again */
|
||||||
if (psessionEntry->shortSlotTimeSupported !=
|
if (pe_session->shortSlotTimeSupported !=
|
||||||
pBeacon->capabilityInfo.shortSlotTime) {
|
pBeacon->capabilityInfo.shortSlotTime) {
|
||||||
psessionEntry->shortSlotTimeSupported =
|
pe_session->shortSlotTimeSupported =
|
||||||
pBeacon->capabilityInfo.shortSlotTime;
|
pBeacon->capabilityInfo.shortSlotTime;
|
||||||
}
|
}
|
||||||
qdf_mem_copy((uint8_t *) &psessionEntry->pLimStartBssReq->
|
qdf_mem_copy((uint8_t *) &pe_session->pLimStartBssReq->
|
||||||
operationalRateSet, (uint8_t *) &pBeacon->supportedRates,
|
operationalRateSet, (uint8_t *) &pBeacon->supportedRates,
|
||||||
pBeacon->supportedRates.numRates);
|
pBeacon->supportedRates.numRates);
|
||||||
|
|
||||||
@@ -545,42 +545,42 @@ void ibss_bss_add(tpAniSirGlobal mac, struct pe_session *psessionEntry)
|
|||||||
|
|
||||||
qdf_mem_copy(mlmStartReq.bssId, pHdr->bssId, sizeof(tSirMacAddr));
|
qdf_mem_copy(mlmStartReq.bssId, pHdr->bssId, sizeof(tSirMacAddr));
|
||||||
mlmStartReq.rateSet.numRates =
|
mlmStartReq.rateSet.numRates =
|
||||||
psessionEntry->pLimStartBssReq->operationalRateSet.numRates;
|
pe_session->pLimStartBssReq->operationalRateSet.numRates;
|
||||||
qdf_mem_copy(&mlmStartReq.rateSet.rate[0],
|
qdf_mem_copy(&mlmStartReq.rateSet.rate[0],
|
||||||
&psessionEntry->pLimStartBssReq->operationalRateSet.
|
&pe_session->pLimStartBssReq->operationalRateSet.
|
||||||
rate[0], mlmStartReq.rateSet.numRates);
|
rate[0], mlmStartReq.rateSet.numRates);
|
||||||
mlmStartReq.bssType = eSIR_IBSS_MODE;
|
mlmStartReq.bssType = eSIR_IBSS_MODE;
|
||||||
mlmStartReq.beaconPeriod = pBeacon->beaconInterval;
|
mlmStartReq.beaconPeriod = pBeacon->beaconInterval;
|
||||||
mlmStartReq.nwType = psessionEntry->pLimStartBssReq->nwType; /* psessionEntry->nwType is also OK???? */
|
mlmStartReq.nwType = pe_session->pLimStartBssReq->nwType; /* pe_session->nwType is also OK???? */
|
||||||
mlmStartReq.htCapable = psessionEntry->htCapability;
|
mlmStartReq.htCapable = pe_session->htCapability;
|
||||||
mlmStartReq.htOperMode = mac->lim.gHTOperMode;
|
mlmStartReq.htOperMode = mac->lim.gHTOperMode;
|
||||||
mlmStartReq.dualCTSProtection = mac->lim.gHTDualCTSProtection;
|
mlmStartReq.dualCTSProtection = mac->lim.gHTDualCTSProtection;
|
||||||
mlmStartReq.txChannelWidthSet = psessionEntry->htRecommendedTxWidthSet;
|
mlmStartReq.txChannelWidthSet = pe_session->htRecommendedTxWidthSet;
|
||||||
|
|
||||||
/* reading the channel num from session Table */
|
/* reading the channel num from session Table */
|
||||||
mlmStartReq.channelNumber = psessionEntry->currentOperChannel;
|
mlmStartReq.channelNumber = pe_session->currentOperChannel;
|
||||||
|
|
||||||
mlmStartReq.cbMode = psessionEntry->pLimStartBssReq->cbMode;
|
mlmStartReq.cbMode = pe_session->pLimStartBssReq->cbMode;
|
||||||
|
|
||||||
/* Copy the SSID for RxP filtering based on SSID. */
|
/* Copy the SSID for RxP filtering based on SSID. */
|
||||||
qdf_mem_copy((uint8_t *) &mlmStartReq.ssId,
|
qdf_mem_copy((uint8_t *) &mlmStartReq.ssId,
|
||||||
(uint8_t *) &psessionEntry->pLimStartBssReq->ssId,
|
(uint8_t *) &pe_session->pLimStartBssReq->ssId,
|
||||||
psessionEntry->pLimStartBssReq->ssId.length + 1);
|
pe_session->pLimStartBssReq->ssId.length + 1);
|
||||||
|
|
||||||
pe_debug("invoking ADD_BSS as part of coalescing!");
|
pe_debug("invoking ADD_BSS as part of coalescing!");
|
||||||
#ifdef CONFIG_VDEV_SM
|
#ifdef CONFIG_VDEV_SM
|
||||||
wlan_vdev_mlme_sm_deliver_evt(psessionEntry->vdev,
|
wlan_vdev_mlme_sm_deliver_evt(pe_session->vdev,
|
||||||
WLAN_VDEV_SM_EV_START,
|
WLAN_VDEV_SM_EV_START,
|
||||||
sizeof(mlmStartReq), &mlmStartReq);
|
sizeof(mlmStartReq), &mlmStartReq);
|
||||||
#else
|
#else
|
||||||
if (lim_mlm_add_bss(mac, &mlmStartReq, psessionEntry) !=
|
if (lim_mlm_add_bss(mac, &mlmStartReq, pe_session) !=
|
||||||
eSIR_SME_SUCCESS) {
|
eSIR_SME_SUCCESS) {
|
||||||
pe_err("AddBss failure");
|
pe_err("AddBss failure");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
/* Update fields in Beacon */
|
/* Update fields in Beacon */
|
||||||
if (sch_set_fixed_beacon_fields(mac, psessionEntry) != QDF_STATUS_SUCCESS) {
|
if (sch_set_fixed_beacon_fields(mac, pe_session) != QDF_STATUS_SUCCESS) {
|
||||||
pe_err("Unable to set fixed Beacon fields");
|
pe_err("Unable to set fixed Beacon fields");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -645,7 +645,7 @@ void lim_ibss_init(tpAniSirGlobal mac)
|
|||||||
* @return None
|
* @return None
|
||||||
*/
|
*/
|
||||||
void lim_ibss_delete_all_peers(tpAniSirGlobal mac,
|
void lim_ibss_delete_all_peers(tpAniSirGlobal mac,
|
||||||
struct pe_session *psessionEntry)
|
struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
tLimIbssPeerNode *pCurrNode, *pTempNode;
|
tLimIbssPeerNode *pCurrNode, *pTempNode;
|
||||||
tpDphHashNode pStaDs;
|
tpDphHashNode pStaDs;
|
||||||
@@ -667,17 +667,17 @@ void lim_ibss_delete_all_peers(tpAniSirGlobal mac,
|
|||||||
*/
|
*/
|
||||||
pStaDs =
|
pStaDs =
|
||||||
dph_lookup_hash_entry(mac, pCurrNode->peerMacAddr, &peerIdx,
|
dph_lookup_hash_entry(mac, pCurrNode->peerMacAddr, &peerIdx,
|
||||||
&psessionEntry->dph.dphHashTable);
|
&pe_session->dph.dphHashTable);
|
||||||
if (pStaDs) {
|
if (pStaDs) {
|
||||||
|
|
||||||
ibss_status_chg_notify(mac, pCurrNode->peerMacAddr,
|
ibss_status_chg_notify(mac, pCurrNode->peerMacAddr,
|
||||||
pStaDs->staIndex,
|
pStaDs->staIndex,
|
||||||
eWNI_SME_IBSS_PEER_DEPARTED_IND,
|
eWNI_SME_IBSS_PEER_DEPARTED_IND,
|
||||||
psessionEntry->smeSessionId);
|
pe_session->smeSessionId);
|
||||||
lim_del_sta(mac, pStaDs, false, psessionEntry);
|
lim_del_sta(mac, pStaDs, false, pe_session);
|
||||||
lim_release_peer_idx(mac, peerIdx, psessionEntry);
|
lim_release_peer_idx(mac, peerIdx, pe_session);
|
||||||
dph_delete_hash_entry(mac, pStaDs->staAddr, peerIdx,
|
dph_delete_hash_entry(mac, pStaDs->staAddr, peerIdx,
|
||||||
&psessionEntry->dph.dphHashTable);
|
&pe_session->dph.dphHashTable);
|
||||||
}
|
}
|
||||||
|
|
||||||
pTempNode = pCurrNode->next;
|
pTempNode = pCurrNode->next;
|
||||||
@@ -708,14 +708,14 @@ void lim_ibss_delete_all_peers(tpAniSirGlobal mac,
|
|||||||
mac->lim.gLimIbssPeerList = NULL;
|
mac->lim.gLimIbssPeerList = NULL;
|
||||||
#ifdef CONFIG_VDEV_SM
|
#ifdef CONFIG_VDEV_SM
|
||||||
status =
|
status =
|
||||||
wlan_vdev_mlme_sm_deliver_evt(psessionEntry->vdev,
|
wlan_vdev_mlme_sm_deliver_evt(pe_session->vdev,
|
||||||
WLAN_VDEV_SM_EV_DISCONNECT_COMPLETE,
|
WLAN_VDEV_SM_EV_DISCONNECT_COMPLETE,
|
||||||
sizeof(*psessionEntry), psessionEntry);
|
sizeof(*pe_session), pe_session);
|
||||||
if (!mac->lim.gLimIbssCoalescingHappened &&
|
if (!mac->lim.gLimIbssCoalescingHappened &&
|
||||||
QDF_IS_STATUS_ERROR(status)) {
|
QDF_IS_STATUS_ERROR(status)) {
|
||||||
pe_err("failed to post WLAN_VDEV_SM_EV_DISCONNECT_COMPLETE for vdevid %d",
|
pe_err("failed to post WLAN_VDEV_SM_EV_DISCONNECT_COMPLETE for vdevid %d",
|
||||||
psessionEntry->smeSessionId);
|
pe_session->smeSessionId);
|
||||||
lim_send_stop_bss_failure_resp(mac, psessionEntry);
|
lim_send_stop_bss_failure_resp(mac, pe_session);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
@@ -724,15 +724,15 @@ void lim_ibss_delete_all_peers(tpAniSirGlobal mac,
|
|||||||
* lim_ibss_delete() - This function is called while tearing down an IBSS
|
* lim_ibss_delete() - This function is called while tearing down an IBSS
|
||||||
*
|
*
|
||||||
* @mac: Pointer to Global MAC structure
|
* @mac: Pointer to Global MAC structure
|
||||||
* @psessionEntry: Pointer to session entry
|
* @pe_session: Pointer to session entry
|
||||||
*
|
*
|
||||||
* Return: none
|
* Return: none
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void lim_ibss_delete(tpAniSirGlobal mac, struct pe_session *psessionEntry)
|
void lim_ibss_delete(tpAniSirGlobal mac, struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
#ifndef CONFIG_VDEV_SM
|
#ifndef CONFIG_VDEV_SM
|
||||||
lim_ibss_delete_all_peers(mac, psessionEntry);
|
lim_ibss_delete_all_peers(mac, pe_session);
|
||||||
#endif
|
#endif
|
||||||
ibss_coalesce_free(mac);
|
ibss_coalesce_free(mac);
|
||||||
}
|
}
|
||||||
@@ -749,7 +749,7 @@ void lim_ibss_delete(tpAniSirGlobal mac, struct pe_session *psessionEntry)
|
|||||||
static void
|
static void
|
||||||
lim_ibss_set_protection(tpAniSirGlobal mac, uint8_t enable,
|
lim_ibss_set_protection(tpAniSirGlobal mac, uint8_t enable,
|
||||||
tpUpdateBeaconParams pBeaconParams,
|
tpUpdateBeaconParams pBeaconParams,
|
||||||
struct pe_session *psessionEntry)
|
struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
|
|
||||||
if (!mac->lim.cfgProtection.fromllb) {
|
if (!mac->lim.cfgProtection.fromllb) {
|
||||||
@@ -758,23 +758,23 @@ lim_ibss_set_protection(tpAniSirGlobal mac, uint8_t enable,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (enable) {
|
if (enable) {
|
||||||
psessionEntry->gLim11bParams.protectionEnabled = true;
|
pe_session->gLim11bParams.protectionEnabled = true;
|
||||||
if (false ==
|
if (false ==
|
||||||
psessionEntry->beaconParams.
|
pe_session->beaconParams.
|
||||||
llbCoexist /*mac->lim.llbCoexist */) {
|
llbCoexist /*mac->lim.llbCoexist */) {
|
||||||
pe_debug("=> IBSS: Enable Protection");
|
pe_debug("=> IBSS: Enable Protection");
|
||||||
pBeaconParams->llbCoexist =
|
pBeaconParams->llbCoexist =
|
||||||
psessionEntry->beaconParams.llbCoexist = true;
|
pe_session->beaconParams.llbCoexist = true;
|
||||||
pBeaconParams->paramChangeBitmap |=
|
pBeaconParams->paramChangeBitmap |=
|
||||||
PARAM_llBCOEXIST_CHANGED;
|
PARAM_llBCOEXIST_CHANGED;
|
||||||
}
|
}
|
||||||
} else if (true ==
|
} else if (true ==
|
||||||
psessionEntry->beaconParams.
|
pe_session->beaconParams.
|
||||||
llbCoexist /*mac->lim.llbCoexist */) {
|
llbCoexist /*mac->lim.llbCoexist */) {
|
||||||
psessionEntry->gLim11bParams.protectionEnabled = false;
|
pe_session->gLim11bParams.protectionEnabled = false;
|
||||||
pe_debug("===> IBSS: Disable protection");
|
pe_debug("===> IBSS: Disable protection");
|
||||||
pBeaconParams->llbCoexist =
|
pBeaconParams->llbCoexist =
|
||||||
psessionEntry->beaconParams.llbCoexist = false;
|
pe_session->beaconParams.llbCoexist = false;
|
||||||
pBeaconParams->paramChangeBitmap |= PARAM_llBCOEXIST_CHANGED;
|
pBeaconParams->paramChangeBitmap |= PARAM_llBCOEXIST_CHANGED;
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
@@ -793,7 +793,7 @@ static void
|
|||||||
lim_ibss_update_protection_params(tpAniSirGlobal mac,
|
lim_ibss_update_protection_params(tpAniSirGlobal mac,
|
||||||
tSirMacAddr peerMacAddr,
|
tSirMacAddr peerMacAddr,
|
||||||
tLimProtStaCacheType protStaCacheType,
|
tLimProtStaCacheType protStaCacheType,
|
||||||
struct pe_session *psessionEntry)
|
struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
uint32_t i;
|
uint32_t i;
|
||||||
|
|
||||||
@@ -832,9 +832,9 @@ lim_ibss_update_protection_params(tpAniSirGlobal mac,
|
|||||||
mac->lim.protStaCache[i].protStaCacheType = protStaCacheType;
|
mac->lim.protStaCache[i].protStaCacheType = protStaCacheType;
|
||||||
mac->lim.protStaCache[i].active = true;
|
mac->lim.protStaCache[i].active = true;
|
||||||
if (eLIM_PROT_STA_CACHE_TYPE_llB == protStaCacheType) {
|
if (eLIM_PROT_STA_CACHE_TYPE_llB == protStaCacheType) {
|
||||||
psessionEntry->gLim11bParams.numSta++;
|
pe_session->gLim11bParams.numSta++;
|
||||||
} else if (eLIM_PROT_STA_CACHE_TYPE_llG == protStaCacheType) {
|
} else if (eLIM_PROT_STA_CACHE_TYPE_llG == protStaCacheType) {
|
||||||
psessionEntry->gLim11gParams.numSta++;
|
pe_session->gLim11gParams.numSta++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -850,7 +850,7 @@ lim_ibss_update_protection_params(tpAniSirGlobal mac,
|
|||||||
static void
|
static void
|
||||||
lim_ibss_decide_protection(tpAniSirGlobal mac, tpDphHashNode pStaDs,
|
lim_ibss_decide_protection(tpAniSirGlobal mac, tpDphHashNode pStaDs,
|
||||||
tpUpdateBeaconParams pBeaconParams,
|
tpUpdateBeaconParams pBeaconParams,
|
||||||
struct pe_session *psessionEntry)
|
struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
enum band_info rfBand = BAND_UNKNOWN;
|
enum band_info rfBand = BAND_UNKNOWN;
|
||||||
uint32_t phyMode;
|
uint32_t phyMode;
|
||||||
@@ -864,13 +864,13 @@ lim_ibss_decide_protection(tpAniSirGlobal mac, tpDphHashNode pStaDs,
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
lim_get_rf_band_new(mac, &rfBand, psessionEntry);
|
lim_get_rf_band_new(mac, &rfBand, pe_session);
|
||||||
if (BAND_2G == rfBand) {
|
if (BAND_2G == rfBand) {
|
||||||
lim_get_phy_mode(mac, &phyMode, psessionEntry);
|
lim_get_phy_mode(mac, &phyMode, pe_session);
|
||||||
|
|
||||||
/* We are 11G or 11n. Check if we need protection from 11b Stations. */
|
/* We are 11G or 11n. Check if we need protection from 11b Stations. */
|
||||||
if ((phyMode == WNI_CFG_PHY_MODE_11G)
|
if ((phyMode == WNI_CFG_PHY_MODE_11G)
|
||||||
|| (psessionEntry->htCapability)) {
|
|| (pe_session->htCapability)) {
|
||||||
/* As we found in the past, it is possible that a 11n STA sends
|
/* As we found in the past, it is possible that a 11n STA sends
|
||||||
* Beacon with HT IE but not ERP IE. So the absence of ERP IE
|
* Beacon with HT IE but not ERP IE. So the absence of ERP IE
|
||||||
* in the Beacon is not enough to conclude that STA is 11b.
|
* in the Beacon is not enough to conclude that STA is 11b.
|
||||||
@@ -881,12 +881,12 @@ lim_ibss_decide_protection(tpAniSirGlobal mac, tpDphHashNode pStaDs,
|
|||||||
pe_err("Enable protection from 11B");
|
pe_err("Enable protection from 11B");
|
||||||
lim_ibss_set_protection(mac, true,
|
lim_ibss_set_protection(mac, true,
|
||||||
pBeaconParams,
|
pBeaconParams,
|
||||||
psessionEntry);
|
pe_session);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
lim_ibss_update_protection_params(mac, pStaDs->staAddr, protStaCacheType,
|
lim_ibss_update_protection_params(mac, pStaDs->staAddr, protStaCacheType,
|
||||||
psessionEntry);
|
pe_session);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -937,7 +937,7 @@ tLimIbssPeerNode *lim_ibss_peer_find(tpAniSirGlobal mac, tSirMacAddr macAddr)
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
lim_ibss_sta_add(tpAniSirGlobal mac, void *pBody, struct pe_session *psessionEntry)
|
lim_ibss_sta_add(tpAniSirGlobal mac, void *pBody, struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
QDF_STATUS retCode = QDF_STATUS_SUCCESS;
|
QDF_STATUS retCode = QDF_STATUS_SUCCESS;
|
||||||
tpDphHashNode pStaDs;
|
tpDphHashNode pStaDs;
|
||||||
@@ -960,16 +960,16 @@ lim_ibss_sta_add(tpAniSirGlobal mac, void *pBody, struct pe_session *psessionEnt
|
|||||||
if (NULL != pPeerNode) {
|
if (NULL != pPeerNode) {
|
||||||
retCode =
|
retCode =
|
||||||
ibss_dph_entry_add(mac, *pPeerAddr, &pStaDs,
|
ibss_dph_entry_add(mac, *pPeerAddr, &pStaDs,
|
||||||
psessionEntry);
|
pe_session);
|
||||||
if (QDF_STATUS_SUCCESS == retCode) {
|
if (QDF_STATUS_SUCCESS == retCode) {
|
||||||
prevState = pStaDs->mlmStaContext.mlmState;
|
prevState = pStaDs->mlmStaContext.mlmState;
|
||||||
pStaDs->erpEnabled = pPeerNode->erpIePresent;
|
pStaDs->erpEnabled = pPeerNode->erpIePresent;
|
||||||
|
|
||||||
ibss_sta_info_update(mac, pStaDs, pPeerNode,
|
ibss_sta_info_update(mac, pStaDs, pPeerNode,
|
||||||
psessionEntry);
|
pe_session);
|
||||||
pe_debug("initiating ADD STA for the IBSS peer");
|
pe_debug("initiating ADD STA for the IBSS peer");
|
||||||
retCode =
|
retCode =
|
||||||
lim_add_sta(mac, pStaDs, false, psessionEntry);
|
lim_add_sta(mac, pStaDs, false, pe_session);
|
||||||
if (retCode != QDF_STATUS_SUCCESS) {
|
if (retCode != QDF_STATUS_SUCCESS) {
|
||||||
pe_err("ibss-sta-add failed (reason %x)",
|
pe_err("ibss-sta-add failed (reason %x)",
|
||||||
retCode);
|
retCode);
|
||||||
@@ -977,23 +977,23 @@ lim_ibss_sta_add(tpAniSirGlobal mac, void *pBody, struct pe_session *psessionEnt
|
|||||||
pStaDs->mlmStaContext.mlmState = prevState;
|
pStaDs->mlmStaContext.mlmState = prevState;
|
||||||
dph_delete_hash_entry(mac, pStaDs->staAddr,
|
dph_delete_hash_entry(mac, pStaDs->staAddr,
|
||||||
pStaDs->assocId,
|
pStaDs->assocId,
|
||||||
&psessionEntry->dph.
|
&pe_session->dph.
|
||||||
dphHashTable);
|
dphHashTable);
|
||||||
} else {
|
} else {
|
||||||
if (mac->lim.gLimProtectionControl !=
|
if (mac->lim.gLimProtectionControl !=
|
||||||
MLME_FORCE_POLICY_PROTECTION_DISABLE)
|
MLME_FORCE_POLICY_PROTECTION_DISABLE)
|
||||||
lim_ibss_decide_protection(mac, pStaDs,
|
lim_ibss_decide_protection(mac, pStaDs,
|
||||||
&beaconParams,
|
&beaconParams,
|
||||||
psessionEntry);
|
pe_session);
|
||||||
|
|
||||||
if (beaconParams.paramChangeBitmap) {
|
if (beaconParams.paramChangeBitmap) {
|
||||||
pe_debug("---> Update Beacon Params");
|
pe_debug("---> Update Beacon Params");
|
||||||
sch_set_fixed_beacon_fields(mac,
|
sch_set_fixed_beacon_fields(mac,
|
||||||
psessionEntry);
|
pe_session);
|
||||||
beaconParams.bssIdx =
|
beaconParams.bssIdx =
|
||||||
psessionEntry->bssIdx;
|
pe_session->bssIdx;
|
||||||
lim_send_beacon_params(mac, &beaconParams,
|
lim_send_beacon_params(mac, &beaconParams,
|
||||||
psessionEntry);
|
pe_session);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@@ -1180,7 +1180,7 @@ skip_event:
|
|||||||
|
|
||||||
/* handle the response from HAL for an ADD STA request */
|
/* handle the response from HAL for an ADD STA request */
|
||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
lim_ibss_add_sta_rsp(tpAniSirGlobal mac, void *msg, struct pe_session *psessionEntry)
|
lim_ibss_add_sta_rsp(tpAniSirGlobal mac, void *msg, struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
tpDphHashNode pStaDs;
|
tpDphHashNode pStaDs;
|
||||||
uint16_t peerIdx;
|
uint16_t peerIdx;
|
||||||
@@ -1194,7 +1194,7 @@ lim_ibss_add_sta_rsp(tpAniSirGlobal mac, void *msg, struct pe_session *psessionE
|
|||||||
|
|
||||||
pStaDs =
|
pStaDs =
|
||||||
dph_lookup_hash_entry(mac, pAddStaParams->staMac, &peerIdx,
|
dph_lookup_hash_entry(mac, pAddStaParams->staMac, &peerIdx,
|
||||||
&psessionEntry->dph.dphHashTable);
|
&pe_session->dph.dphHashTable);
|
||||||
if (pStaDs == NULL) {
|
if (pStaDs == NULL) {
|
||||||
pe_err("IBSS: ADD_STA_RSP for unknown MAC addr: "MAC_ADDRESS_STR,
|
pe_err("IBSS: ADD_STA_RSP for unknown MAC addr: "MAC_ADDRESS_STR,
|
||||||
MAC_ADDR_ARRAY(pAddStaParams->staMac));
|
MAC_ADDR_ARRAY(pAddStaParams->staMac));
|
||||||
@@ -1207,7 +1207,7 @@ lim_ibss_add_sta_rsp(tpAniSirGlobal mac, void *msg, struct pe_session *psessionE
|
|||||||
pAddStaParams->status,
|
pAddStaParams->status,
|
||||||
MAC_ADDR_ARRAY(pAddStaParams->staMac));
|
MAC_ADDR_ARRAY(pAddStaParams->staMac));
|
||||||
lim_ibss_delete_peer(mac,
|
lim_ibss_delete_peer(mac,
|
||||||
psessionEntry, pAddStaParams->staMac);
|
pe_session, pAddStaParams->staMac);
|
||||||
qdf_mem_free(pAddStaParams);
|
qdf_mem_free(pAddStaParams);
|
||||||
return QDF_STATUS_E_FAILURE;
|
return QDF_STATUS_E_FAILURE;
|
||||||
}
|
}
|
||||||
@@ -1222,7 +1222,7 @@ lim_ibss_add_sta_rsp(tpAniSirGlobal mac, void *msg, struct pe_session *psessionE
|
|||||||
ibss_status_chg_notify(mac, pAddStaParams->staMac,
|
ibss_status_chg_notify(mac, pAddStaParams->staMac,
|
||||||
pStaDs->staIndex,
|
pStaDs->staIndex,
|
||||||
eWNI_SME_IBSS_NEW_PEER_IND,
|
eWNI_SME_IBSS_NEW_PEER_IND,
|
||||||
psessionEntry->smeSessionId);
|
pe_session->smeSessionId);
|
||||||
|
|
||||||
qdf_mem_free(pAddStaParams);
|
qdf_mem_free(pAddStaParams);
|
||||||
|
|
||||||
@@ -1230,7 +1230,7 @@ lim_ibss_add_sta_rsp(tpAniSirGlobal mac, void *msg, struct pe_session *psessionE
|
|||||||
}
|
}
|
||||||
|
|
||||||
void lim_ibss_del_bss_rsp_when_coalescing(tpAniSirGlobal mac, void *msg,
|
void lim_ibss_del_bss_rsp_when_coalescing(tpAniSirGlobal mac, void *msg,
|
||||||
struct pe_session *psessionEntry)
|
struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
tpDeleteBssParams pDelBss = (tpDeleteBssParams) msg;
|
tpDeleteBssParams pDelBss = (tpDeleteBssParams) msg;
|
||||||
|
|
||||||
@@ -1249,17 +1249,17 @@ void lim_ibss_del_bss_rsp_when_coalescing(tpAniSirGlobal mac, void *msg,
|
|||||||
|
|
||||||
#ifndef CONFIG_VDEV_SM
|
#ifndef CONFIG_VDEV_SM
|
||||||
/* Delete peer entries. */
|
/* Delete peer entries. */
|
||||||
lim_ibss_delete_all_peers(mac, psessionEntry);
|
lim_ibss_delete_all_peers(mac, pe_session);
|
||||||
#endif
|
#endif
|
||||||
/* add the new bss */
|
/* add the new bss */
|
||||||
ibss_bss_add(mac, psessionEntry);
|
ibss_bss_add(mac, pe_session);
|
||||||
end:
|
end:
|
||||||
if (pDelBss != NULL)
|
if (pDelBss != NULL)
|
||||||
qdf_mem_free(pDelBss);
|
qdf_mem_free(pDelBss);
|
||||||
}
|
}
|
||||||
|
|
||||||
void lim_ibss_add_bss_rsp_when_coalescing(tpAniSirGlobal mac, void *msg,
|
void lim_ibss_add_bss_rsp_when_coalescing(tpAniSirGlobal mac, void *msg,
|
||||||
struct pe_session *pSessionEntry)
|
struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
uint8_t infoLen;
|
uint8_t infoLen;
|
||||||
tSirSmeNewBssInfo newBssInfo;
|
tSirSmeNewBssInfo newBssInfo;
|
||||||
@@ -1288,17 +1288,17 @@ void lim_ibss_add_bss_rsp_when_coalescing(tpAniSirGlobal mac, void *msg,
|
|||||||
|
|
||||||
lim_send_sme_wm_status_change_ntf(mac, eSIR_SME_JOINED_NEW_BSS,
|
lim_send_sme_wm_status_change_ntf(mac, eSIR_SME_JOINED_NEW_BSS,
|
||||||
(uint32_t *) &newBssInfo,
|
(uint32_t *) &newBssInfo,
|
||||||
infoLen, pSessionEntry->smeSessionId);
|
infoLen, pe_session->smeSessionId);
|
||||||
{
|
{
|
||||||
/* Configure beacon and send beacons to HAL */
|
/* Configure beacon and send beacons to HAL */
|
||||||
lim_send_beacon(mac, pSessionEntry);
|
lim_send_beacon(mac, pe_session);
|
||||||
}
|
}
|
||||||
|
|
||||||
end:
|
end:
|
||||||
ibss_coalesce_free(mac);
|
ibss_coalesce_free(mac);
|
||||||
}
|
}
|
||||||
|
|
||||||
void lim_ibss_del_bss_rsp(tpAniSirGlobal mac, void *msg, struct pe_session *psessionEntry)
|
void lim_ibss_del_bss_rsp(tpAniSirGlobal mac, void *msg, struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
tSirResultCodes rc = eSIR_SME_SUCCESS;
|
tSirResultCodes rc = eSIR_SME_SUCCESS;
|
||||||
tpDeleteBssParams pDelBss = (tpDeleteBssParams) msg;
|
tpDeleteBssParams pDelBss = (tpDeleteBssParams) msg;
|
||||||
@@ -1311,8 +1311,8 @@ void lim_ibss_del_bss_rsp(tpAniSirGlobal mac, void *msg, struct pe_session *pses
|
|||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
|
|
||||||
psessionEntry = pe_find_session_by_session_id(mac, pDelBss->sessionId);
|
pe_session = pe_find_session_by_session_id(mac, pDelBss->sessionId);
|
||||||
if (psessionEntry == NULL) {
|
if (pe_session == NULL) {
|
||||||
pe_err("Session Does not exist for given sessionID");
|
pe_err("Session Does not exist for given sessionID");
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
@@ -1325,7 +1325,7 @@ void lim_ibss_del_bss_rsp(tpAniSirGlobal mac, void *msg, struct pe_session *pses
|
|||||||
*/
|
*/
|
||||||
if (true == mac->lim.gLimIbssCoalescingHappened) {
|
if (true == mac->lim.gLimIbssCoalescingHappened) {
|
||||||
|
|
||||||
lim_ibss_del_bss_rsp_when_coalescing(mac, msg, psessionEntry);
|
lim_ibss_del_bss_rsp_when_coalescing(mac, msg, pe_session);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1337,42 +1337,42 @@ void lim_ibss_del_bss_rsp(tpAniSirGlobal mac, void *msg, struct pe_session *pses
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (lim_set_link_state(mac, eSIR_LINK_IDLE_STATE, nullBssid,
|
if (lim_set_link_state(mac, eSIR_LINK_IDLE_STATE, nullBssid,
|
||||||
psessionEntry->selfMacAddr, NULL,
|
pe_session->selfMacAddr, NULL,
|
||||||
NULL) != QDF_STATUS_SUCCESS) {
|
NULL) != QDF_STATUS_SUCCESS) {
|
||||||
pe_err("IBSS: DEL_BSS_RSP setLinkState failed");
|
pe_err("IBSS: DEL_BSS_RSP setLinkState failed");
|
||||||
rc = eSIR_SME_REFUSED;
|
rc = eSIR_SME_REFUSED;
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
|
|
||||||
lim_ibss_delete(mac, psessionEntry);
|
lim_ibss_delete(mac, pe_session);
|
||||||
|
|
||||||
dph_hash_table_class_init(mac, &psessionEntry->dph.dphHashTable);
|
dph_hash_table_class_init(mac, &pe_session->dph.dphHashTable);
|
||||||
lim_delete_pre_auth_list(mac);
|
lim_delete_pre_auth_list(mac);
|
||||||
|
|
||||||
psessionEntry->limMlmState = eLIM_MLM_IDLE_STATE;
|
pe_session->limMlmState = eLIM_MLM_IDLE_STATE;
|
||||||
|
|
||||||
MTRACE(mac_trace
|
MTRACE(mac_trace
|
||||||
(mac, TRACE_CODE_MLM_STATE, psessionEntry->peSessionId,
|
(mac, TRACE_CODE_MLM_STATE, pe_session->peSessionId,
|
||||||
psessionEntry->limMlmState));
|
pe_session->limMlmState));
|
||||||
|
|
||||||
psessionEntry->limSystemRole = eLIM_STA_ROLE;
|
pe_session->limSystemRole = eLIM_STA_ROLE;
|
||||||
|
|
||||||
/* Change the short slot operating mode to Default (which is 1 for now) so that when IBSS starts next time with Libra
|
/* Change the short slot operating mode to Default (which is 1 for now) so that when IBSS starts next time with Libra
|
||||||
* as originator, it picks up the default. This enables us to remove hard coding of short slot = 1 from lim_apply_configuration
|
* as originator, it picks up the default. This enables us to remove hard coding of short slot = 1 from lim_apply_configuration
|
||||||
*/
|
*/
|
||||||
psessionEntry->shortSlotTimeSupported =
|
pe_session->shortSlotTimeSupported =
|
||||||
cfg_default(CFG_SHORT_SLOT_TIME_ENABLED);
|
cfg_default(CFG_SHORT_SLOT_TIME_ENABLED);
|
||||||
|
|
||||||
end:
|
end:
|
||||||
if (pDelBss != NULL)
|
if (pDelBss != NULL)
|
||||||
qdf_mem_free(pDelBss);
|
qdf_mem_free(pDelBss);
|
||||||
/* Delete PE session once BSS is deleted */
|
/* Delete PE session once BSS is deleted */
|
||||||
if (NULL != psessionEntry) {
|
if (NULL != pe_session) {
|
||||||
lim_send_sme_rsp(mac, eWNI_SME_STOP_BSS_RSP, rc,
|
lim_send_sme_rsp(mac, eWNI_SME_STOP_BSS_RSP, rc,
|
||||||
psessionEntry->smeSessionId,
|
pe_session->smeSessionId,
|
||||||
psessionEntry->transactionId);
|
pe_session->transactionId);
|
||||||
pe_delete_session(mac, psessionEntry);
|
pe_delete_session(mac, pe_session);
|
||||||
psessionEntry = NULL;
|
pe_session = NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1401,7 +1401,7 @@ lim_ibss_coalesce(tpAniSirGlobal mac,
|
|||||||
tpSirMacMgmtHdr pHdr,
|
tpSirMacMgmtHdr pHdr,
|
||||||
tpSchBeaconStruct pBeacon,
|
tpSchBeaconStruct pBeacon,
|
||||||
uint8_t *pIEs,
|
uint8_t *pIEs,
|
||||||
uint32_t ieLen, uint16_t fTsfLater, struct pe_session *psessionEntry)
|
uint32_t ieLen, uint16_t fTsfLater, struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
uint16_t peerIdx;
|
uint16_t peerIdx;
|
||||||
tSirMacAddr currentBssId;
|
tSirMacAddr currentBssId;
|
||||||
@@ -1411,7 +1411,7 @@ lim_ibss_coalesce(tpAniSirGlobal mac,
|
|||||||
|
|
||||||
qdf_mem_set((uint8_t *) &beaconParams, sizeof(tUpdateBeaconParams), 0);
|
qdf_mem_set((uint8_t *) &beaconParams, sizeof(tUpdateBeaconParams), 0);
|
||||||
|
|
||||||
sir_copy_mac_addr(currentBssId, psessionEntry->bssId);
|
sir_copy_mac_addr(currentBssId, pe_session->bssId);
|
||||||
|
|
||||||
pe_debug("Current BSSID :" MAC_ADDRESS_STR " Received BSSID :"
|
pe_debug("Current BSSID :" MAC_ADDRESS_STR " Received BSSID :"
|
||||||
MAC_ADDRESS_STR, MAC_ADDR_ARRAY(currentBssId),
|
MAC_ADDRESS_STR, MAC_ADDR_ARRAY(currentBssId),
|
||||||
@@ -1419,7 +1419,7 @@ lim_ibss_coalesce(tpAniSirGlobal mac,
|
|||||||
|
|
||||||
/* Check for IBSS Coalescing only if Beacon is from different BSS */
|
/* Check for IBSS Coalescing only if Beacon is from different BSS */
|
||||||
if (qdf_mem_cmp(currentBssId, pHdr->bssId, sizeof(tSirMacAddr))
|
if (qdf_mem_cmp(currentBssId, pHdr->bssId, sizeof(tSirMacAddr))
|
||||||
&& psessionEntry->isCoalesingInIBSSAllowed) {
|
&& pe_session->isCoalesingInIBSSAllowed) {
|
||||||
/*
|
/*
|
||||||
* If STA entry is already available in the LIM hash table, then it is
|
* If STA entry is already available in the LIM hash table, then it is
|
||||||
* possible that the peer may have left and rejoined within the heartbeat
|
* possible that the peer may have left and rejoined within the heartbeat
|
||||||
@@ -1432,7 +1432,7 @@ lim_ibss_coalesce(tpAniSirGlobal mac,
|
|||||||
*/
|
*/
|
||||||
pPeerNode = ibss_peer_find(mac, pHdr->sa);
|
pPeerNode = ibss_peer_find(mac, pHdr->sa);
|
||||||
if (NULL != pPeerNode) {
|
if (NULL != pPeerNode) {
|
||||||
lim_ibss_delete_peer(mac, psessionEntry,
|
lim_ibss_delete_peer(mac, pe_session,
|
||||||
pHdr->sa);
|
pHdr->sa);
|
||||||
pe_warn("Peer attempting to reconnect before HB timeout, deleted");
|
pe_warn("Peer attempting to reconnect before HB timeout, deleted");
|
||||||
return QDF_STATUS_E_INVAL;
|
return QDF_STATUS_E_INVAL;
|
||||||
@@ -1452,12 +1452,12 @@ lim_ibss_coalesce(tpAniSirGlobal mac,
|
|||||||
pe_debug("IBSS Coalescing happened Delete BSSID :" MAC_ADDRESS_STR,
|
pe_debug("IBSS Coalescing happened Delete BSSID :" MAC_ADDRESS_STR,
|
||||||
MAC_ADDR_ARRAY(currentBssId));
|
MAC_ADDR_ARRAY(currentBssId));
|
||||||
#ifdef CONFIG_VDEV_SM
|
#ifdef CONFIG_VDEV_SM
|
||||||
wlan_vdev_mlme_sm_deliver_evt(psessionEntry->vdev,
|
wlan_vdev_mlme_sm_deliver_evt(pe_session->vdev,
|
||||||
WLAN_VDEV_SM_EV_DOWN,
|
WLAN_VDEV_SM_EV_DOWN,
|
||||||
sizeof(*psessionEntry),
|
sizeof(*pe_session),
|
||||||
psessionEntry);
|
pe_session);
|
||||||
#else
|
#else
|
||||||
ibss_bss_delete(mac, psessionEntry);
|
ibss_bss_delete(mac, pe_session);
|
||||||
#endif
|
#endif
|
||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
} else {
|
} else {
|
||||||
@@ -1501,7 +1501,7 @@ lim_ibss_coalesce(tpAniSirGlobal mac,
|
|||||||
pPeerNode->beaconLen = 0;
|
pPeerNode->beaconLen = 0;
|
||||||
|
|
||||||
ibss_peer_collect(mac, pBeacon, pHdr, pPeerNode,
|
ibss_peer_collect(mac, pBeacon, pHdr, pPeerNode,
|
||||||
psessionEntry);
|
pe_session);
|
||||||
pPeerNode->beacon = qdf_mem_malloc(ieLen);
|
pPeerNode->beacon = qdf_mem_malloc(ieLen);
|
||||||
if (pPeerNode->beacon) {
|
if (pPeerNode->beacon) {
|
||||||
qdf_mem_copy(pPeerNode->beacon, pIEs, ieLen);
|
qdf_mem_copy(pPeerNode->beacon, pIEs, ieLen);
|
||||||
@@ -1511,17 +1511,17 @@ lim_ibss_coalesce(tpAniSirGlobal mac,
|
|||||||
|
|
||||||
pStaDs =
|
pStaDs =
|
||||||
dph_lookup_hash_entry(mac, pPeerNode->peerMacAddr, &peerIdx,
|
dph_lookup_hash_entry(mac, pPeerNode->peerMacAddr, &peerIdx,
|
||||||
&psessionEntry->dph.dphHashTable);
|
&pe_session->dph.dphHashTable);
|
||||||
if (pStaDs != NULL) {
|
if (pStaDs != NULL) {
|
||||||
/* / DPH node already exists for the peer */
|
/* / DPH node already exists for the peer */
|
||||||
pe_warn("DPH Node present for just learned peer");
|
pe_warn("DPH Node present for just learned peer");
|
||||||
lim_print_mac_addr(mac, pPeerNode->peerMacAddr, LOGD);
|
lim_print_mac_addr(mac, pPeerNode->peerMacAddr, LOGD);
|
||||||
ibss_sta_info_update(mac, pStaDs, pPeerNode,
|
ibss_sta_info_update(mac, pStaDs, pPeerNode,
|
||||||
psessionEntry);
|
pe_session);
|
||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
retCode =
|
retCode =
|
||||||
lim_ibss_sta_add(mac, pPeerNode->peerMacAddr, psessionEntry);
|
lim_ibss_sta_add(mac, pPeerNode->peerMacAddr, pe_session);
|
||||||
if (retCode != QDF_STATUS_SUCCESS) {
|
if (retCode != QDF_STATUS_SUCCESS) {
|
||||||
pe_err("lim-ibss-sta-add failed reason: %x", retCode);
|
pe_err("lim-ibss-sta-add failed reason: %x", retCode);
|
||||||
lim_print_mac_addr(mac, pPeerNode->peerMacAddr, LOGE);
|
lim_print_mac_addr(mac, pPeerNode->peerMacAddr, LOGE);
|
||||||
@@ -1530,33 +1530,33 @@ lim_ibss_coalesce(tpAniSirGlobal mac,
|
|||||||
/* Decide protection mode */
|
/* Decide protection mode */
|
||||||
pStaDs =
|
pStaDs =
|
||||||
dph_lookup_hash_entry(mac, pPeerNode->peerMacAddr, &peerIdx,
|
dph_lookup_hash_entry(mac, pPeerNode->peerMacAddr, &peerIdx,
|
||||||
&psessionEntry->dph.dphHashTable);
|
&pe_session->dph.dphHashTable);
|
||||||
if (mac->lim.gLimProtectionControl !=
|
if (mac->lim.gLimProtectionControl !=
|
||||||
MLME_FORCE_POLICY_PROTECTION_DISABLE)
|
MLME_FORCE_POLICY_PROTECTION_DISABLE)
|
||||||
lim_ibss_decide_protection(mac, pStaDs, &beaconParams,
|
lim_ibss_decide_protection(mac, pStaDs, &beaconParams,
|
||||||
psessionEntry);
|
pe_session);
|
||||||
|
|
||||||
if (beaconParams.paramChangeBitmap) {
|
if (beaconParams.paramChangeBitmap) {
|
||||||
pe_err("beaconParams.paramChangeBitmap=1 ---> Update Beacon Params");
|
pe_err("beaconParams.paramChangeBitmap=1 ---> Update Beacon Params");
|
||||||
sch_set_fixed_beacon_fields(mac, psessionEntry);
|
sch_set_fixed_beacon_fields(mac, pe_session);
|
||||||
beaconParams.bssIdx = psessionEntry->bssIdx;
|
beaconParams.bssIdx = pe_session->bssIdx;
|
||||||
lim_send_beacon_params(mac, &beaconParams, psessionEntry);
|
lim_send_beacon_params(mac, &beaconParams, pe_session);
|
||||||
}
|
}
|
||||||
} else
|
} else
|
||||||
ibss_sta_caps_update(mac, pPeerNode, psessionEntry);
|
ibss_sta_caps_update(mac, pPeerNode, pe_session);
|
||||||
|
|
||||||
if (psessionEntry->limSmeState != eLIM_SME_NORMAL_STATE)
|
if (pe_session->limSmeState != eLIM_SME_NORMAL_STATE)
|
||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
|
|
||||||
/* Received Beacon from same IBSS we're */
|
/* Received Beacon from same IBSS we're */
|
||||||
/* currently part of. Inform Roaming algorithm */
|
/* currently part of. Inform Roaming algorithm */
|
||||||
/* if not already that IBSS is active. */
|
/* if not already that IBSS is active. */
|
||||||
if (psessionEntry->limIbssActive == false) {
|
if (pe_session->limIbssActive == false) {
|
||||||
limResetHBPktCount(psessionEntry);
|
limResetHBPktCount(pe_session);
|
||||||
pe_warn("Partner joined our IBSS, Sending IBSS_ACTIVE Notification to SME");
|
pe_warn("Partner joined our IBSS, Sending IBSS_ACTIVE Notification to SME");
|
||||||
psessionEntry->limIbssActive = true;
|
pe_session->limIbssActive = true;
|
||||||
lim_send_sme_wm_status_change_ntf(mac, eSIR_SME_IBSS_ACTIVE, NULL, 0,
|
lim_send_sme_wm_status_change_ntf(mac, eSIR_SME_IBSS_ACTIVE, NULL, 0,
|
||||||
psessionEntry->smeSessionId);
|
pe_session->smeSessionId);
|
||||||
}
|
}
|
||||||
|
|
||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
@@ -1749,21 +1749,21 @@ void lim_ibss_decide_protection_on_delete(tpAniSirGlobal mac_ctx,
|
|||||||
\brief Internal function. Deletes FW indicated peer which is inactive
|
\brief Internal function. Deletes FW indicated peer which is inactive
|
||||||
\
|
\
|
||||||
\param tpAniSirGlobal mac
|
\param tpAniSirGlobal mac
|
||||||
\param struct pe_session * psessionEntry
|
\param struct pe_session * pe_session
|
||||||
\param tpSirIbssPeerInactivityInd peerInactivityInd
|
\param tpSirIbssPeerInactivityInd peerInactivityInd
|
||||||
\return None
|
\return None
|
||||||
-----------------------------------------------------------------*/
|
-----------------------------------------------------------------*/
|
||||||
static void
|
static void
|
||||||
__lim_ibss_peer_inactivity_handler(tpAniSirGlobal mac,
|
__lim_ibss_peer_inactivity_handler(tpAniSirGlobal mac,
|
||||||
struct pe_session *psessionEntry,
|
struct pe_session *pe_session,
|
||||||
tpSirIbssPeerInactivityInd peerInactivityInd)
|
tpSirIbssPeerInactivityInd peerInactivityInd)
|
||||||
{
|
{
|
||||||
if (psessionEntry->limMlmState != eLIM_MLM_BSS_STARTED_STATE) {
|
if (pe_session->limMlmState != eLIM_MLM_BSS_STARTED_STATE) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* delete the peer for which heartbeat is observed */
|
/* delete the peer for which heartbeat is observed */
|
||||||
lim_ibss_delete_peer(mac, psessionEntry,
|
lim_ibss_delete_peer(mac, pe_session,
|
||||||
peerInactivityInd->peer_addr.bytes);
|
peerInactivityInd->peer_addr.bytes);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ void ibss_bss_delete(tpAniSirGlobal mac_ctx, struct pe_session *session);
|
|||||||
void lim_ibss_delete_all_peers(tpAniSirGlobal mac_ctx, struct pe_session *session);
|
void lim_ibss_delete_all_peers(tpAniSirGlobal mac_ctx, struct pe_session *session);
|
||||||
|
|
||||||
void lim_ibss_init(tpAniSirGlobal);
|
void lim_ibss_init(tpAniSirGlobal);
|
||||||
void lim_ibss_delete(tpAniSirGlobal, struct pe_session *psessionEntry);
|
void lim_ibss_delete(tpAniSirGlobal, struct pe_session *pe_session);
|
||||||
QDF_STATUS lim_ibss_coalesce(tpAniSirGlobal, tpSirMacMgmtHdr,
|
QDF_STATUS lim_ibss_coalesce(tpAniSirGlobal, tpSirMacMgmtHdr,
|
||||||
tpSchBeaconStruct, uint8_t *, uint32_t, uint16_t,
|
tpSchBeaconStruct, uint8_t *, uint32_t, uint16_t,
|
||||||
struct pe_session *);
|
struct pe_session *);
|
||||||
@@ -83,9 +83,9 @@ tLimIbssPeerNode *lim_ibss_peer_find(tpAniSirGlobal mac, tSirMacAddr macAddr);
|
|||||||
void lim_ibss_del_bss_rsp(tpAniSirGlobal, void *, struct pe_session *);
|
void lim_ibss_del_bss_rsp(tpAniSirGlobal, void *, struct pe_session *);
|
||||||
void lim_ibss_del_bss_rsp_when_coalescing(tpAniSirGlobal, void *, struct pe_session *);
|
void lim_ibss_del_bss_rsp_when_coalescing(tpAniSirGlobal, void *, struct pe_session *);
|
||||||
void lim_ibss_add_bss_rsp_when_coalescing(tpAniSirGlobal mac, void *msg,
|
void lim_ibss_add_bss_rsp_when_coalescing(tpAniSirGlobal mac, void *msg,
|
||||||
struct pe_session *pSessionEntry);
|
struct pe_session *pe_session);
|
||||||
void lim_ibss_decide_protection_on_delete(tpAniSirGlobal mac, tpDphHashNode pStaDs,
|
void lim_ibss_decide_protection_on_delete(tpAniSirGlobal mac, tpDphHashNode pStaDs,
|
||||||
tpUpdateBeaconParams pBeaconParams,
|
tpUpdateBeaconParams pBeaconParams,
|
||||||
struct pe_session *pSessionEntry);
|
struct pe_session *pe_session);
|
||||||
void lim_ibss_heart_beat_handle(tpAniSirGlobal mac, struct pe_session *psessionEntry);
|
void lim_ibss_heart_beat_handle(tpAniSirGlobal mac, struct pe_session *pe_session);
|
||||||
void lim_process_ibss_peer_inactivity(tpAniSirGlobal mac, void *buf);
|
void lim_process_ibss_peer_inactivity(tpAniSirGlobal mac, void *buf);
|
||||||
|
|||||||
@@ -359,11 +359,11 @@ lim_tear_down_link_with_ap(tpAniSirGlobal mac, uint8_t sessionId,
|
|||||||
{
|
{
|
||||||
tpDphHashNode pStaDs = NULL;
|
tpDphHashNode pStaDs = NULL;
|
||||||
|
|
||||||
/* tear down the following sessionEntry */
|
/* tear down the following pe_session */
|
||||||
struct pe_session *psessionEntry;
|
struct pe_session *pe_session;
|
||||||
|
|
||||||
psessionEntry = pe_find_session_by_session_id(mac, sessionId);
|
pe_session = pe_find_session_by_session_id(mac, sessionId);
|
||||||
if (psessionEntry == NULL) {
|
if (pe_session == NULL) {
|
||||||
pe_err("Session Does not exist for given sessionID");
|
pe_err("Session Does not exist for given sessionID");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -372,7 +372,7 @@ lim_tear_down_link_with_ap(tpAniSirGlobal mac, uint8_t sessionId,
|
|||||||
* and AP did not respond for Probe request.
|
* and AP did not respond for Probe request.
|
||||||
* Trigger link tear down.
|
* Trigger link tear down.
|
||||||
*/
|
*/
|
||||||
psessionEntry->pmmOffloadInfo.bcnmiss = false;
|
pe_session->pmmOffloadInfo.bcnmiss = false;
|
||||||
|
|
||||||
pe_info("No ProbeRsp from AP after HB failure. Tearing down link");
|
pe_info("No ProbeRsp from AP after HB failure. Tearing down link");
|
||||||
|
|
||||||
@@ -381,14 +381,14 @@ lim_tear_down_link_with_ap(tpAniSirGlobal mac, uint8_t sessionId,
|
|||||||
|
|
||||||
pStaDs =
|
pStaDs =
|
||||||
dph_get_hash_entry(mac, DPH_STA_HASH_INDEX_PEER,
|
dph_get_hash_entry(mac, DPH_STA_HASH_INDEX_PEER,
|
||||||
&psessionEntry->dph.dphHashTable);
|
&pe_session->dph.dphHashTable);
|
||||||
|
|
||||||
if (pStaDs != NULL) {
|
if (pStaDs != NULL) {
|
||||||
tLimMlmDeauthInd mlmDeauthInd;
|
tLimMlmDeauthInd mlmDeauthInd;
|
||||||
|
|
||||||
#ifdef FEATURE_WLAN_TDLS
|
#ifdef FEATURE_WLAN_TDLS
|
||||||
/* Delete all TDLS peers connected before leaving BSS */
|
/* Delete all TDLS peers connected before leaving BSS */
|
||||||
lim_delete_tdls_peers(mac, psessionEntry);
|
lim_delete_tdls_peers(mac, pe_session);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
pStaDs->mlmStaContext.disassocReason = reasonCode;
|
pStaDs->mlmStaContext.disassocReason = reasonCode;
|
||||||
@@ -426,7 +426,7 @@ lim_tear_down_link_with_ap(tpAniSirGlobal mac, uint8_t sessionId,
|
|||||||
mlmDeauthInd.deauthTrigger =
|
mlmDeauthInd.deauthTrigger =
|
||||||
pStaDs->mlmStaContext.cleanupTrigger;
|
pStaDs->mlmStaContext.cleanupTrigger;
|
||||||
|
|
||||||
if (LIM_IS_STA_ROLE(psessionEntry))
|
if (LIM_IS_STA_ROLE(pe_session))
|
||||||
lim_post_sme_message(mac, LIM_MLM_DEAUTH_IND,
|
lim_post_sme_message(mac, LIM_MLM_DEAUTH_IND,
|
||||||
(uint32_t *) &mlmDeauthInd);
|
(uint32_t *) &mlmDeauthInd);
|
||||||
if (mac->mlme_cfg->gen.fatal_event_trigger)
|
if (mac->mlme_cfg->gen.fatal_event_trigger)
|
||||||
@@ -435,7 +435,7 @@ lim_tear_down_link_with_ap(tpAniSirGlobal mac, uint8_t sessionId,
|
|||||||
WLAN_LOG_REASON_HB_FAILURE,
|
WLAN_LOG_REASON_HB_FAILURE,
|
||||||
false, false);
|
false, false);
|
||||||
|
|
||||||
lim_send_sme_deauth_ind(mac, pStaDs, psessionEntry);
|
lim_send_sme_deauth_ind(mac, pStaDs, pe_session);
|
||||||
}
|
}
|
||||||
} /*** lim_tear_down_link_with_ap() ***/
|
} /*** lim_tear_down_link_with_ap() ***/
|
||||||
|
|
||||||
|
|||||||
@@ -71,28 +71,28 @@ static last_processed_msg rrm_link_action_frm;
|
|||||||
-----------------------------------------------------------------*/
|
-----------------------------------------------------------------*/
|
||||||
void lim_stop_tx_and_switch_channel(tpAniSirGlobal mac, uint8_t sessionId)
|
void lim_stop_tx_and_switch_channel(tpAniSirGlobal mac, uint8_t sessionId)
|
||||||
{
|
{
|
||||||
struct pe_session *psessionEntry;
|
struct pe_session *pe_session;
|
||||||
|
|
||||||
psessionEntry = pe_find_session_by_session_id(mac, sessionId);
|
pe_session = pe_find_session_by_session_id(mac, sessionId);
|
||||||
|
|
||||||
if (NULL == psessionEntry) {
|
if (NULL == pe_session) {
|
||||||
pe_err("Session: %d not active", sessionId);
|
pe_err("Session: %d not active", sessionId);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (psessionEntry->ftPEContext.pFTPreAuthReq) {
|
if (pe_session->ftPEContext.pFTPreAuthReq) {
|
||||||
pe_debug("Avoid Switch Channel req during pre auth");
|
pe_debug("Avoid Switch Channel req during pre auth");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
pe_debug("Channel switch Mode: %d",
|
pe_debug("Channel switch Mode: %d",
|
||||||
psessionEntry->gLimChannelSwitch.switchMode);
|
pe_session->gLimChannelSwitch.switchMode);
|
||||||
|
|
||||||
mac->lim.limTimers.gLimChannelSwitchTimer.sessionId = sessionId;
|
mac->lim.limTimers.gLimChannelSwitchTimer.sessionId = sessionId;
|
||||||
/* change the channel immediately only if
|
/* change the channel immediately only if
|
||||||
* the channel switch count is 0
|
* the channel switch count is 0
|
||||||
*/
|
*/
|
||||||
if (psessionEntry->gLimChannelSwitch.switchCount == 0) {
|
if (pe_session->gLimChannelSwitch.switchCount == 0) {
|
||||||
lim_process_channel_switch_timeout(mac);
|
lim_process_channel_switch_timeout(mac);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -114,28 +114,28 @@ void lim_stop_tx_and_switch_channel(tpAniSirGlobal mac, uint8_t sessionId)
|
|||||||
and heartbeat timer tempororily.
|
and heartbeat timer tempororily.
|
||||||
|
|
||||||
\param mac
|
\param mac
|
||||||
\param psessionEntry
|
\param pe_session
|
||||||
\return NONE
|
\return NONE
|
||||||
------------------------------------------------------------*/
|
------------------------------------------------------------*/
|
||||||
QDF_STATUS lim_start_channel_switch(tpAniSirGlobal mac,
|
QDF_STATUS lim_start_channel_switch(tpAniSirGlobal mac,
|
||||||
struct pe_session *psessionEntry)
|
struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
pe_debug("Starting the channel switch");
|
pe_debug("Starting the channel switch");
|
||||||
|
|
||||||
/*If channel switch is already running and it is on a different session, just return */
|
/*If channel switch is already running and it is on a different session, just return */
|
||||||
/*This need to be removed for MCC */
|
/*This need to be removed for MCC */
|
||||||
if ((lim_is_chan_switch_running(mac) &&
|
if ((lim_is_chan_switch_running(mac) &&
|
||||||
psessionEntry->gLimSpecMgmt.dot11hChanSwState !=
|
pe_session->gLimSpecMgmt.dot11hChanSwState !=
|
||||||
eLIM_11H_CHANSW_RUNNING) || psessionEntry->csaOffloadEnable) {
|
eLIM_11H_CHANSW_RUNNING) || pe_session->csaOffloadEnable) {
|
||||||
pe_warn("Ignoring channel switch on session: %d",
|
pe_warn("Ignoring channel switch on session: %d",
|
||||||
psessionEntry->peSessionId);
|
pe_session->peSessionId);
|
||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Deactivate and change reconfigure the timeout value */
|
/* Deactivate and change reconfigure the timeout value */
|
||||||
/* lim_deactivate_and_change_timer(mac, eLIM_CHANNEL_SWITCH_TIMER); */
|
/* lim_deactivate_and_change_timer(mac, eLIM_CHANNEL_SWITCH_TIMER); */
|
||||||
MTRACE(mac_trace
|
MTRACE(mac_trace
|
||||||
(mac, TRACE_CODE_TIMER_DEACTIVATE, psessionEntry->peSessionId,
|
(mac, TRACE_CODE_TIMER_DEACTIVATE, pe_session->peSessionId,
|
||||||
eLIM_CHANNEL_SWITCH_TIMER));
|
eLIM_CHANNEL_SWITCH_TIMER));
|
||||||
if (tx_timer_deactivate(&mac->lim.limTimers.gLimChannelSwitchTimer) !=
|
if (tx_timer_deactivate(&mac->lim.limTimers.gLimChannelSwitchTimer) !=
|
||||||
QDF_STATUS_SUCCESS) {
|
QDF_STATUS_SUCCESS) {
|
||||||
@@ -144,14 +144,14 @@ QDF_STATUS lim_start_channel_switch(tpAniSirGlobal mac,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (tx_timer_change(&mac->lim.limTimers.gLimChannelSwitchTimer,
|
if (tx_timer_change(&mac->lim.limTimers.gLimChannelSwitchTimer,
|
||||||
psessionEntry->gLimChannelSwitch.switchTimeoutValue,
|
pe_session->gLimChannelSwitch.switchTimeoutValue,
|
||||||
0) != TX_SUCCESS) {
|
0) != TX_SUCCESS) {
|
||||||
pe_err("tx_timer_change failed");
|
pe_err("tx_timer_change failed");
|
||||||
return QDF_STATUS_E_FAILURE;
|
return QDF_STATUS_E_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Prepare for 11h channel switch */
|
/* Prepare for 11h channel switch */
|
||||||
lim_prepare_for11h_channel_switch(mac, psessionEntry);
|
lim_prepare_for11h_channel_switch(mac, pe_session);
|
||||||
|
|
||||||
/** Dont add any more statements here as we posted finish scan request
|
/** Dont add any more statements here as we posted finish scan request
|
||||||
* to HAL, wait till we get the response
|
* to HAL, wait till we get the response
|
||||||
@@ -628,7 +628,7 @@ out:
|
|||||||
|
|
||||||
static void
|
static void
|
||||||
__lim_process_add_ts_req(tpAniSirGlobal mac, uint8_t *pRxPacketInfo,
|
__lim_process_add_ts_req(tpAniSirGlobal mac, uint8_t *pRxPacketInfo,
|
||||||
struct pe_session *psessionEntry)
|
struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1056,10 +1056,10 @@ static void __lim_process_qos_map_configure_frame(tpAniSirGlobal mac_ctx,
|
|||||||
static void
|
static void
|
||||||
__lim_process_basic_meas_req(tpAniSirGlobal mac,
|
__lim_process_basic_meas_req(tpAniSirGlobal mac,
|
||||||
tpSirMacMeasReqActionFrame pMeasReqFrame,
|
tpSirMacMeasReqActionFrame pMeasReqFrame,
|
||||||
tSirMacAddr peerMacAddr, struct pe_session *psessionEntry)
|
tSirMacAddr peerMacAddr, struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
if (lim_send_meas_report_frame(mac, pMeasReqFrame,
|
if (lim_send_meas_report_frame(mac, pMeasReqFrame,
|
||||||
peerMacAddr, psessionEntry) !=
|
peerMacAddr, pe_session) !=
|
||||||
QDF_STATUS_SUCCESS) {
|
QDF_STATUS_SUCCESS) {
|
||||||
pe_err("fail to send Basic Meas report");
|
pe_err("fail to send Basic Meas report");
|
||||||
return;
|
return;
|
||||||
@@ -1068,10 +1068,10 @@ __lim_process_basic_meas_req(tpAniSirGlobal mac,
|
|||||||
static void
|
static void
|
||||||
__lim_process_cca_meas_req(tpAniSirGlobal mac,
|
__lim_process_cca_meas_req(tpAniSirGlobal mac,
|
||||||
tpSirMacMeasReqActionFrame pMeasReqFrame,
|
tpSirMacMeasReqActionFrame pMeasReqFrame,
|
||||||
tSirMacAddr peerMacAddr, struct pe_session *psessionEntry)
|
tSirMacAddr peerMacAddr, struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
if (lim_send_meas_report_frame(mac, pMeasReqFrame,
|
if (lim_send_meas_report_frame(mac, pMeasReqFrame,
|
||||||
peerMacAddr, psessionEntry) !=
|
peerMacAddr, pe_session) !=
|
||||||
QDF_STATUS_SUCCESS) {
|
QDF_STATUS_SUCCESS) {
|
||||||
pe_err("fail to send CCA Meas report");
|
pe_err("fail to send CCA Meas report");
|
||||||
return;
|
return;
|
||||||
@@ -1080,10 +1080,10 @@ __lim_process_cca_meas_req(tpAniSirGlobal mac,
|
|||||||
static void
|
static void
|
||||||
__lim_process_rpi_meas_req(tpAniSirGlobal mac,
|
__lim_process_rpi_meas_req(tpAniSirGlobal mac,
|
||||||
tpSirMacMeasReqActionFrame pMeasReqFrame,
|
tpSirMacMeasReqActionFrame pMeasReqFrame,
|
||||||
tSirMacAddr peerMacAddr, struct pe_session *psessionEntry)
|
tSirMacAddr peerMacAddr, struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
if (lim_send_meas_report_frame(mac, pMeasReqFrame,
|
if (lim_send_meas_report_frame(mac, pMeasReqFrame,
|
||||||
peerMacAddr, psessionEntry) !=
|
peerMacAddr, pe_session) !=
|
||||||
QDF_STATUS_SUCCESS) {
|
QDF_STATUS_SUCCESS) {
|
||||||
pe_err("fail to send RPI Meas report");
|
pe_err("fail to send RPI Meas report");
|
||||||
return;
|
return;
|
||||||
@@ -1092,7 +1092,7 @@ __lim_process_rpi_meas_req(tpAniSirGlobal mac,
|
|||||||
static void
|
static void
|
||||||
__lim_process_measurement_request_frame(tpAniSirGlobal mac,
|
__lim_process_measurement_request_frame(tpAniSirGlobal mac,
|
||||||
uint8_t *pRxPacketInfo,
|
uint8_t *pRxPacketInfo,
|
||||||
struct pe_session *psessionEntry)
|
struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
tpSirMacMgmtHdr pHdr;
|
tpSirMacMgmtHdr pHdr;
|
||||||
uint8_t *pBody;
|
uint8_t *pBody;
|
||||||
@@ -1115,15 +1115,15 @@ __lim_process_measurement_request_frame(tpAniSirGlobal mac,
|
|||||||
switch (pMeasReqFrame->measReqIE.measType) {
|
switch (pMeasReqFrame->measReqIE.measType) {
|
||||||
case SIR_MAC_BASIC_MEASUREMENT_TYPE:
|
case SIR_MAC_BASIC_MEASUREMENT_TYPE:
|
||||||
__lim_process_basic_meas_req(mac, pMeasReqFrame, pHdr->sa,
|
__lim_process_basic_meas_req(mac, pMeasReqFrame, pHdr->sa,
|
||||||
psessionEntry);
|
pe_session);
|
||||||
break;
|
break;
|
||||||
case SIR_MAC_CCA_MEASUREMENT_TYPE:
|
case SIR_MAC_CCA_MEASUREMENT_TYPE:
|
||||||
__lim_process_cca_meas_req(mac, pMeasReqFrame, pHdr->sa,
|
__lim_process_cca_meas_req(mac, pMeasReqFrame, pHdr->sa,
|
||||||
psessionEntry);
|
pe_session);
|
||||||
break;
|
break;
|
||||||
case SIR_MAC_RPI_MEASUREMENT_TYPE:
|
case SIR_MAC_RPI_MEASUREMENT_TYPE:
|
||||||
__lim_process_rpi_meas_req(mac, pMeasReqFrame, pHdr->sa,
|
__lim_process_rpi_meas_req(mac, pMeasReqFrame, pHdr->sa,
|
||||||
psessionEntry);
|
pe_session);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
pe_warn("Unknown Measurement Type: %d",
|
pe_warn("Unknown Measurement Type: %d",
|
||||||
@@ -1133,7 +1133,7 @@ __lim_process_measurement_request_frame(tpAniSirGlobal mac,
|
|||||||
} /*** end limProcessMeasurementRequestFrame ***/
|
} /*** end limProcessMeasurementRequestFrame ***/
|
||||||
static void
|
static void
|
||||||
__lim_process_tpc_request_frame(tpAniSirGlobal mac, uint8_t *pRxPacketInfo,
|
__lim_process_tpc_request_frame(tpAniSirGlobal mac, uint8_t *pRxPacketInfo,
|
||||||
struct pe_session *psessionEntry)
|
struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
tpSirMacMgmtHdr pHdr;
|
tpSirMacMgmtHdr pHdr;
|
||||||
uint8_t *pBody;
|
uint8_t *pBody;
|
||||||
@@ -1156,7 +1156,7 @@ __lim_process_tpc_request_frame(tpAniSirGlobal mac, uint8_t *pRxPacketInfo,
|
|||||||
}
|
}
|
||||||
if (lim_send_tpc_report_frame(mac,
|
if (lim_send_tpc_report_frame(mac,
|
||||||
pTpcReqFrame,
|
pTpcReqFrame,
|
||||||
pHdr->sa, psessionEntry) != QDF_STATUS_SUCCESS) {
|
pHdr->sa, pe_session) != QDF_STATUS_SUCCESS) {
|
||||||
pe_err("fail to send TPC Report Frame");
|
pe_err("fail to send TPC Report Frame");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -1165,7 +1165,7 @@ __lim_process_tpc_request_frame(tpAniSirGlobal mac, uint8_t *pRxPacketInfo,
|
|||||||
|
|
||||||
static void
|
static void
|
||||||
__lim_process_sm_power_save_update(tpAniSirGlobal mac, uint8_t *pRxPacketInfo,
|
__lim_process_sm_power_save_update(tpAniSirGlobal mac, uint8_t *pRxPacketInfo,
|
||||||
struct pe_session *psessionEntry)
|
struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
|
|
||||||
tpSirMacMgmtHdr pHdr;
|
tpSirMacMgmtHdr pHdr;
|
||||||
@@ -1182,7 +1182,7 @@ __lim_process_sm_power_save_update(tpAniSirGlobal mac, uint8_t *pRxPacketInfo,
|
|||||||
|
|
||||||
pSta =
|
pSta =
|
||||||
dph_lookup_hash_entry(mac, pHdr->sa, &aid,
|
dph_lookup_hash_entry(mac, pHdr->sa, &aid,
|
||||||
&psessionEntry->dph.dphHashTable);
|
&pe_session->dph.dphHashTable);
|
||||||
if (pSta == NULL) {
|
if (pSta == NULL) {
|
||||||
pe_err("STA context not found - ignoring UpdateSM PSave Mode from");
|
pe_err("STA context not found - ignoring UpdateSM PSave Mode from");
|
||||||
lim_print_mac_addr(mac, pHdr->sa, LOGE);
|
lim_print_mac_addr(mac, pHdr->sa, LOGE);
|
||||||
@@ -1231,13 +1231,13 @@ __lim_process_sm_power_save_update(tpAniSirGlobal mac, uint8_t *pRxPacketInfo,
|
|||||||
/** Update in the HAL Station Table for the Update of the Protection Mode */
|
/** Update in the HAL Station Table for the Update of the Protection Mode */
|
||||||
pSta->htMIMOPSState = state;
|
pSta->htMIMOPSState = state;
|
||||||
lim_post_sm_state_update(mac, pSta->staIndex, pSta->htMIMOPSState,
|
lim_post_sm_state_update(mac, pSta->staIndex, pSta->htMIMOPSState,
|
||||||
pSta->staAddr, psessionEntry->smeSessionId);
|
pSta->staAddr, pe_session->smeSessionId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
__lim_process_radio_measure_request(tpAniSirGlobal mac, uint8_t *pRxPacketInfo,
|
__lim_process_radio_measure_request(tpAniSirGlobal mac, uint8_t *pRxPacketInfo,
|
||||||
struct pe_session *psessionEntry)
|
struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
tpSirMacMgmtHdr pHdr;
|
tpSirMacMgmtHdr pHdr;
|
||||||
tDot11fRadioMeasurementRequest *frm;
|
tDot11fRadioMeasurementRequest *frm;
|
||||||
@@ -1249,7 +1249,7 @@ __lim_process_radio_measure_request(tpAniSirGlobal mac, uint8_t *pRxPacketInfo,
|
|||||||
pBody = WMA_GET_RX_MPDU_DATA(pRxPacketInfo);
|
pBody = WMA_GET_RX_MPDU_DATA(pRxPacketInfo);
|
||||||
frameLen = WMA_GET_RX_PAYLOAD_LEN(pRxPacketInfo);
|
frameLen = WMA_GET_RX_PAYLOAD_LEN(pRxPacketInfo);
|
||||||
|
|
||||||
if (psessionEntry == NULL) {
|
if (pe_session == NULL) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1266,7 +1266,7 @@ __lim_process_radio_measure_request(tpAniSirGlobal mac, uint8_t *pRxPacketInfo,
|
|||||||
mac->rrm.rrmPEContext.prev_rrm_report_seq_num = curr_seq_num;
|
mac->rrm.rrmPEContext.prev_rrm_report_seq_num = curr_seq_num;
|
||||||
lim_send_sme_mgmt_frame_ind(mac, pHdr->fc.subType, (uint8_t *)pHdr,
|
lim_send_sme_mgmt_frame_ind(mac, pHdr->fc.subType, (uint8_t *)pHdr,
|
||||||
frameLen + sizeof(tSirMacMgmtHdr), 0,
|
frameLen + sizeof(tSirMacMgmtHdr), 0,
|
||||||
WMA_GET_RX_CH(pRxPacketInfo), psessionEntry,
|
WMA_GET_RX_CH(pRxPacketInfo), pe_session,
|
||||||
WMA_GET_RX_RSSI_NORMALIZED(pRxPacketInfo));
|
WMA_GET_RX_RSSI_NORMALIZED(pRxPacketInfo));
|
||||||
|
|
||||||
frm = qdf_mem_malloc(sizeof(*frm));
|
frm = qdf_mem_malloc(sizeof(*frm));
|
||||||
@@ -1290,14 +1290,14 @@ __lim_process_radio_measure_request(tpAniSirGlobal mac, uint8_t *pRxPacketInfo,
|
|||||||
/* Call rrm function to handle the request. */
|
/* Call rrm function to handle the request. */
|
||||||
|
|
||||||
rrm_process_radio_measurement_request(mac, pHdr->sa, frm,
|
rrm_process_radio_measurement_request(mac, pHdr->sa, frm,
|
||||||
psessionEntry);
|
pe_session);
|
||||||
err:
|
err:
|
||||||
qdf_mem_free(frm);
|
qdf_mem_free(frm);
|
||||||
}
|
}
|
||||||
|
|
||||||
static QDF_STATUS
|
static QDF_STATUS
|
||||||
__lim_process_link_measurement_req(tpAniSirGlobal mac, uint8_t *pRxPacketInfo,
|
__lim_process_link_measurement_req(tpAniSirGlobal mac, uint8_t *pRxPacketInfo,
|
||||||
struct pe_session *psessionEntry)
|
struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
tpSirMacMgmtHdr pHdr;
|
tpSirMacMgmtHdr pHdr;
|
||||||
tDot11fLinkMeasurementRequest frm;
|
tDot11fLinkMeasurementRequest frm;
|
||||||
@@ -1308,7 +1308,7 @@ __lim_process_link_measurement_req(tpAniSirGlobal mac, uint8_t *pRxPacketInfo,
|
|||||||
pBody = WMA_GET_RX_MPDU_DATA(pRxPacketInfo);
|
pBody = WMA_GET_RX_MPDU_DATA(pRxPacketInfo);
|
||||||
frameLen = WMA_GET_RX_PAYLOAD_LEN(pRxPacketInfo);
|
frameLen = WMA_GET_RX_PAYLOAD_LEN(pRxPacketInfo);
|
||||||
|
|
||||||
if (psessionEntry == NULL) {
|
if (pe_session == NULL) {
|
||||||
return QDF_STATUS_E_FAILURE;
|
return QDF_STATUS_E_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1330,13 +1330,13 @@ __lim_process_link_measurement_req(tpAniSirGlobal mac, uint8_t *pRxPacketInfo,
|
|||||||
/* Call rrm function to handle the request. */
|
/* Call rrm function to handle the request. */
|
||||||
|
|
||||||
return rrm_process_link_measurement_request(mac, pRxPacketInfo, &frm,
|
return rrm_process_link_measurement_request(mac, pRxPacketInfo, &frm,
|
||||||
psessionEntry);
|
pe_session);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
__lim_process_neighbor_report(tpAniSirGlobal mac, uint8_t *pRxPacketInfo,
|
__lim_process_neighbor_report(tpAniSirGlobal mac, uint8_t *pRxPacketInfo,
|
||||||
struct pe_session *psessionEntry)
|
struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
tpSirMacMgmtHdr pHdr;
|
tpSirMacMgmtHdr pHdr;
|
||||||
tDot11fNeighborReportResponse *pFrm;
|
tDot11fNeighborReportResponse *pFrm;
|
||||||
@@ -1351,7 +1351,7 @@ __lim_process_neighbor_report(tpAniSirGlobal mac, uint8_t *pRxPacketInfo,
|
|||||||
if (!pFrm)
|
if (!pFrm)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (psessionEntry == NULL) {
|
if (pe_session == NULL) {
|
||||||
qdf_mem_free(pFrm);
|
qdf_mem_free(pFrm);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -1373,7 +1373,7 @@ __lim_process_neighbor_report(tpAniSirGlobal mac, uint8_t *pRxPacketInfo,
|
|||||||
nStatus, frameLen);
|
nStatus, frameLen);
|
||||||
}
|
}
|
||||||
/* Call rrm function to handle the request. */
|
/* Call rrm function to handle the request. */
|
||||||
rrm_process_neighbor_report_response(mac, pFrm, psessionEntry);
|
rrm_process_neighbor_report_response(mac, pFrm, pe_session);
|
||||||
|
|
||||||
qdf_mem_free(pFrm);
|
qdf_mem_free(pFrm);
|
||||||
}
|
}
|
||||||
@@ -1395,13 +1395,13 @@ __lim_process_neighbor_report(tpAniSirGlobal mac, uint8_t *pRxPacketInfo,
|
|||||||
*
|
*
|
||||||
* @param mac - Pointer to Global MAC structure
|
* @param mac - Pointer to Global MAC structure
|
||||||
* @param *pRxPacketInfo - Handle to the Rx packet info
|
* @param *pRxPacketInfo - Handle to the Rx packet info
|
||||||
* @param psessionEntry - PE session entry
|
* @param pe_session - PE session entry
|
||||||
*
|
*
|
||||||
* @return None
|
* @return None
|
||||||
*/
|
*/
|
||||||
static void __lim_process_sa_query_request_action_frame(tpAniSirGlobal mac,
|
static void __lim_process_sa_query_request_action_frame(tpAniSirGlobal mac,
|
||||||
uint8_t *pRxPacketInfo,
|
uint8_t *pRxPacketInfo,
|
||||||
struct pe_session *psessionEntry)
|
struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
tpSirMacMgmtHdr pHdr;
|
tpSirMacMgmtHdr pHdr;
|
||||||
uint8_t *pBody;
|
uint8_t *pBody;
|
||||||
@@ -1425,7 +1425,7 @@ static void __lim_process_sa_query_request_action_frame(tpAniSirGlobal mac,
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
/* 11w offload is enabled then firmware should not fwd this frame */
|
/* 11w offload is enabled then firmware should not fwd this frame */
|
||||||
if (LIM_IS_STA_ROLE(psessionEntry) && mac->pmf_offload) {
|
if (LIM_IS_STA_ROLE(pe_session) && mac->pmf_offload) {
|
||||||
pe_err("11w offload enabled, SA Query req isn't expected");
|
pe_err("11w offload enabled, SA Query req isn't expected");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -1442,7 +1442,7 @@ static void __lim_process_sa_query_request_action_frame(tpAniSirGlobal mac,
|
|||||||
if (lim_send_sa_query_response_frame(mac,
|
if (lim_send_sa_query_response_frame(mac,
|
||||||
transId,
|
transId,
|
||||||
pHdr->sa,
|
pHdr->sa,
|
||||||
psessionEntry) != QDF_STATUS_SUCCESS) {
|
pe_session) != QDF_STATUS_SUCCESS) {
|
||||||
pe_err("fail to send SA query response action frame");
|
pe_err("fail to send SA query response action frame");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -1463,12 +1463,12 @@ static void __lim_process_sa_query_request_action_frame(tpAniSirGlobal mac,
|
|||||||
*
|
*
|
||||||
* @param mac - Pointer to Global MAC structure
|
* @param mac - Pointer to Global MAC structure
|
||||||
* @param *pRxPacketInfo - Handle to the Rx packet info
|
* @param *pRxPacketInfo - Handle to the Rx packet info
|
||||||
* @param psessionEntry - PE session entry
|
* @param pe_session - PE session entry
|
||||||
* @return None
|
* @return None
|
||||||
*/
|
*/
|
||||||
static void __lim_process_sa_query_response_action_frame(tpAniSirGlobal mac,
|
static void __lim_process_sa_query_response_action_frame(tpAniSirGlobal mac,
|
||||||
uint8_t *pRxPacketInfo,
|
uint8_t *pRxPacketInfo,
|
||||||
struct pe_session *psessionEntry)
|
struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
tpSirMacMgmtHdr pHdr;
|
tpSirMacMgmtHdr pHdr;
|
||||||
uint32_t frame_len;
|
uint32_t frame_len;
|
||||||
@@ -1490,13 +1490,13 @@ static void __lim_process_sa_query_response_action_frame(tpAniSirGlobal mac,
|
|||||||
/* When a station, supplicant handles SA Query Response.
|
/* When a station, supplicant handles SA Query Response.
|
||||||
* Forward to SME to HDD to wpa_supplicant.
|
* Forward to SME to HDD to wpa_supplicant.
|
||||||
*/
|
*/
|
||||||
if (LIM_IS_STA_ROLE(psessionEntry)) {
|
if (LIM_IS_STA_ROLE(pe_session)) {
|
||||||
lim_send_sme_mgmt_frame_ind(mac, pHdr->fc.subType,
|
lim_send_sme_mgmt_frame_ind(mac, pHdr->fc.subType,
|
||||||
(uint8_t *)pHdr,
|
(uint8_t *)pHdr,
|
||||||
frame_len + sizeof(tSirMacMgmtHdr),
|
frame_len + sizeof(tSirMacMgmtHdr),
|
||||||
0,
|
0,
|
||||||
WMA_GET_RX_CH(pRxPacketInfo),
|
WMA_GET_RX_CH(pRxPacketInfo),
|
||||||
psessionEntry,
|
pe_session,
|
||||||
WMA_GET_RX_RSSI_NORMALIZED(
|
WMA_GET_RX_RSSI_NORMALIZED(
|
||||||
pRxPacketInfo));
|
pRxPacketInfo));
|
||||||
return;
|
return;
|
||||||
@@ -1508,7 +1508,7 @@ static void __lim_process_sa_query_response_action_frame(tpAniSirGlobal mac,
|
|||||||
|
|
||||||
pSta =
|
pSta =
|
||||||
dph_lookup_hash_entry(mac, pHdr->sa, &aid,
|
dph_lookup_hash_entry(mac, pHdr->sa, &aid,
|
||||||
&psessionEntry->dph.dphHashTable);
|
&pe_session->dph.dphHashTable);
|
||||||
if (NULL == pSta)
|
if (NULL == pSta)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@@ -1557,28 +1557,28 @@ static void __lim_process_sa_query_response_action_frame(tpAniSirGlobal mac,
|
|||||||
***NOTE:
|
***NOTE:
|
||||||
*
|
*
|
||||||
* @param mac - Global MAC structure
|
* @param mac - Global MAC structure
|
||||||
* @param psessionEntry - PE session entry
|
* @param pe_session - PE session entry
|
||||||
* @param pHdr - Frame header
|
* @param pHdr - Frame header
|
||||||
* @param category - Action frame category
|
* @param category - Action frame category
|
||||||
* @return true if frame should be dropped
|
* @return true if frame should be dropped
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static bool
|
static bool
|
||||||
lim_drop_unprotected_action_frame(tpAniSirGlobal mac, struct pe_session *psessionEntry,
|
lim_drop_unprotected_action_frame(tpAniSirGlobal mac, struct pe_session *pe_session,
|
||||||
tpSirMacMgmtHdr pHdr, uint8_t category)
|
tpSirMacMgmtHdr pHdr, uint8_t category)
|
||||||
{
|
{
|
||||||
uint16_t aid;
|
uint16_t aid;
|
||||||
tpDphHashNode pStaDs;
|
tpDphHashNode pStaDs;
|
||||||
bool rmfConnection = false;
|
bool rmfConnection = false;
|
||||||
|
|
||||||
if (LIM_IS_AP_ROLE(psessionEntry)) {
|
if (LIM_IS_AP_ROLE(pe_session)) {
|
||||||
pStaDs =
|
pStaDs =
|
||||||
dph_lookup_hash_entry(mac, pHdr->sa, &aid,
|
dph_lookup_hash_entry(mac, pHdr->sa, &aid,
|
||||||
&psessionEntry->dph.dphHashTable);
|
&pe_session->dph.dphHashTable);
|
||||||
if (pStaDs != NULL)
|
if (pStaDs != NULL)
|
||||||
if (pStaDs->rmfEnabled)
|
if (pStaDs->rmfEnabled)
|
||||||
rmfConnection = true;
|
rmfConnection = true;
|
||||||
} else if (psessionEntry->limRmfEnabled)
|
} else if (pe_session->limRmfEnabled)
|
||||||
rmfConnection = true;
|
rmfConnection = true;
|
||||||
|
|
||||||
if (rmfConnection && (pHdr->fc.wep == 0)) {
|
if (rmfConnection && (pHdr->fc.wep == 0)) {
|
||||||
|
|||||||
@@ -45,7 +45,7 @@
|
|||||||
#include "lim_process_fils.h"
|
#include "lim_process_fils.h"
|
||||||
|
|
||||||
extern QDF_STATUS sch_beacon_edca_process(tpAniSirGlobal mac,
|
extern QDF_STATUS sch_beacon_edca_process(tpAniSirGlobal mac,
|
||||||
tSirMacEdcaParamSetIE *edca, struct pe_session *psessionEntry);
|
tSirMacEdcaParamSetIE *edca, struct pe_session *pe_session);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* lim_update_stads_htcap() - Updates station Descriptor HT capability
|
* lim_update_stads_htcap() - Updates station Descriptor HT capability
|
||||||
@@ -464,12 +464,12 @@ static void lim_update_stads_ext_cap(tpAniSirGlobal mac_ctx,
|
|||||||
static void lim_stop_reassoc_retry_timer(tpAniSirGlobal mac_ctx)
|
static void lim_stop_reassoc_retry_timer(tpAniSirGlobal mac_ctx)
|
||||||
{
|
{
|
||||||
mac_ctx->lim.reAssocRetryAttempt = 0;
|
mac_ctx->lim.reAssocRetryAttempt = 0;
|
||||||
if ((NULL != mac_ctx->lim.pSessionEntry)
|
if ((NULL != mac_ctx->lim.pe_session)
|
||||||
&& (NULL !=
|
&& (NULL !=
|
||||||
mac_ctx->lim.pSessionEntry->pLimMlmReassocRetryReq)) {
|
mac_ctx->lim.pe_session->pLimMlmReassocRetryReq)) {
|
||||||
qdf_mem_free(
|
qdf_mem_free(
|
||||||
mac_ctx->lim.pSessionEntry->pLimMlmReassocRetryReq);
|
mac_ctx->lim.pe_session->pLimMlmReassocRetryReq);
|
||||||
mac_ctx->lim.pSessionEntry->pLimMlmReassocRetryReq = NULL;
|
mac_ctx->lim.pe_session->pLimMlmReassocRetryReq = NULL;
|
||||||
}
|
}
|
||||||
lim_deactivate_and_change_timer(mac_ctx, eLIM_REASSOC_FAIL_TIMER);
|
lim_deactivate_and_change_timer(mac_ctx, eLIM_REASSOC_FAIL_TIMER);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -71,18 +71,18 @@
|
|||||||
|
|
||||||
static inline unsigned int is_auth_valid(tpAniSirGlobal mac,
|
static inline unsigned int is_auth_valid(tpAniSirGlobal mac,
|
||||||
tpSirMacAuthFrameBody auth,
|
tpSirMacAuthFrameBody auth,
|
||||||
struct pe_session *sessionEntry)
|
struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
unsigned int valid = 1;
|
unsigned int valid = 1;
|
||||||
|
|
||||||
if (((auth->authTransactionSeqNumber == SIR_MAC_AUTH_FRAME_1) ||
|
if (((auth->authTransactionSeqNumber == SIR_MAC_AUTH_FRAME_1) ||
|
||||||
(auth->authTransactionSeqNumber == SIR_MAC_AUTH_FRAME_3)) &&
|
(auth->authTransactionSeqNumber == SIR_MAC_AUTH_FRAME_3)) &&
|
||||||
(LIM_IS_STA_ROLE(sessionEntry)))
|
(LIM_IS_STA_ROLE(pe_session)))
|
||||||
valid = 0;
|
valid = 0;
|
||||||
|
|
||||||
if (((auth->authTransactionSeqNumber == SIR_MAC_AUTH_FRAME_2) ||
|
if (((auth->authTransactionSeqNumber == SIR_MAC_AUTH_FRAME_2) ||
|
||||||
(auth->authTransactionSeqNumber == SIR_MAC_AUTH_FRAME_4)) &&
|
(auth->authTransactionSeqNumber == SIR_MAC_AUTH_FRAME_4)) &&
|
||||||
(LIM_IS_AP_ROLE(sessionEntry)))
|
(LIM_IS_AP_ROLE(pe_session)))
|
||||||
valid = 0;
|
valid = 0;
|
||||||
|
|
||||||
if (((auth->authTransactionSeqNumber == SIR_MAC_AUTH_FRAME_3) ||
|
if (((auth->authTransactionSeqNumber == SIR_MAC_AUTH_FRAME_3) ||
|
||||||
@@ -1512,7 +1512,7 @@ QDF_STATUS lim_process_auth_frame_no_session(tpAniSirGlobal mac, uint8_t *pBd,
|
|||||||
void *body)
|
void *body)
|
||||||
{
|
{
|
||||||
tpSirMacMgmtHdr pHdr;
|
tpSirMacMgmtHdr pHdr;
|
||||||
struct pe_session *psessionEntry = NULL;
|
struct pe_session *pe_session = NULL;
|
||||||
uint8_t *pBody;
|
uint8_t *pBody;
|
||||||
uint16_t frameLen;
|
uint16_t frameLen;
|
||||||
tSirMacAuthFrameBody rxAuthFrame;
|
tSirMacAuthFrameBody rxAuthFrame;
|
||||||
@@ -1537,18 +1537,18 @@ QDF_STATUS lim_process_auth_frame_no_session(tpAniSirGlobal mac, uint8_t *pBd,
|
|||||||
mac->lim.gpSession[i].ftPEContext.ftPreAuthSession ==
|
mac->lim.gpSession[i].ftPEContext.ftPreAuthSession ==
|
||||||
true) {
|
true) {
|
||||||
/* Found the session */
|
/* Found the session */
|
||||||
psessionEntry = &mac->lim.gpSession[i];
|
pe_session = &mac->lim.gpSession[i];
|
||||||
mac->lim.gpSession[i].ftPEContext.ftPreAuthSession =
|
mac->lim.gpSession[i].ftPEContext.ftPreAuthSession =
|
||||||
false;
|
false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (psessionEntry == NULL) {
|
if (pe_session == NULL) {
|
||||||
pe_debug("cannot find session id in FT pre-auth phase");
|
pe_debug("cannot find session id in FT pre-auth phase");
|
||||||
return QDF_STATUS_E_FAILURE;
|
return QDF_STATUS_E_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (psessionEntry->ftPEContext.pFTPreAuthReq == NULL) {
|
if (pe_session->ftPEContext.pFTPreAuthReq == NULL) {
|
||||||
pe_err("Error: No FT");
|
pe_err("Error: No FT");
|
||||||
/* No FT in progress. */
|
/* No FT in progress. */
|
||||||
return QDF_STATUS_E_FAILURE;
|
return QDF_STATUS_E_FAILURE;
|
||||||
@@ -1560,7 +1560,7 @@ QDF_STATUS lim_process_auth_frame_no_session(tpAniSirGlobal mac, uint8_t *pBd,
|
|||||||
}
|
}
|
||||||
lim_print_mac_addr(mac, pHdr->bssId, LOGD);
|
lim_print_mac_addr(mac, pHdr->bssId, LOGD);
|
||||||
lim_print_mac_addr(mac,
|
lim_print_mac_addr(mac,
|
||||||
psessionEntry->ftPEContext.pFTPreAuthReq->preAuthbssId,
|
pe_session->ftPEContext.pFTPreAuthReq->preAuthbssId,
|
||||||
LOGD);
|
LOGD);
|
||||||
pe_debug("seqControl: 0x%X",
|
pe_debug("seqControl: 0x%X",
|
||||||
((pHdr->seqControl.seqNumHi << 8) |
|
((pHdr->seqControl.seqNumHi << 8) |
|
||||||
@@ -1569,7 +1569,7 @@ QDF_STATUS lim_process_auth_frame_no_session(tpAniSirGlobal mac, uint8_t *pBd,
|
|||||||
|
|
||||||
/* Check that its the same bssId we have for preAuth */
|
/* Check that its the same bssId we have for preAuth */
|
||||||
if (qdf_mem_cmp
|
if (qdf_mem_cmp
|
||||||
(psessionEntry->ftPEContext.pFTPreAuthReq->preAuthbssId,
|
(pe_session->ftPEContext.pFTPreAuthReq->preAuthbssId,
|
||||||
pHdr->bssId, sizeof(tSirMacAddr))) {
|
pHdr->bssId, sizeof(tSirMacAddr))) {
|
||||||
pe_err("Error: Same bssid as preauth BSSID");
|
pe_err("Error: Same bssid as preauth BSSID");
|
||||||
/* In this case SME if indeed has triggered a */
|
/* In this case SME if indeed has triggered a */
|
||||||
@@ -1578,7 +1578,7 @@ QDF_STATUS lim_process_auth_frame_no_session(tpAniSirGlobal mac, uint8_t *pBd,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (true ==
|
if (true ==
|
||||||
psessionEntry->ftPEContext.pFTPreAuthReq->bPreAuthRspProcessed) {
|
pe_session->ftPEContext.pFTPreAuthReq->bPreAuthRspProcessed) {
|
||||||
/*
|
/*
|
||||||
* This is likely a duplicate for the same pre-auth request.
|
* This is likely a duplicate for the same pre-auth request.
|
||||||
* PE/LIM already posted a response to SME. Hence, drop it.
|
* PE/LIM already posted a response to SME. Hence, drop it.
|
||||||
@@ -1597,14 +1597,14 @@ QDF_STATUS lim_process_auth_frame_no_session(tpAniSirGlobal mac, uint8_t *pBd,
|
|||||||
* pre-auth.
|
* pre-auth.
|
||||||
*/
|
*/
|
||||||
pe_debug("Auth rsp already posted to SME"
|
pe_debug("Auth rsp already posted to SME"
|
||||||
" (session %pK, FT session %pK)", psessionEntry,
|
" (session %pK, FT session %pK)", pe_session,
|
||||||
psessionEntry);
|
pe_session);
|
||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
} else {
|
} else {
|
||||||
pe_warn("Auth rsp not yet posted to SME"
|
pe_warn("Auth rsp not yet posted to SME"
|
||||||
" (session %pK, FT session %pK)", psessionEntry,
|
" (session %pK, FT session %pK)", pe_session,
|
||||||
psessionEntry);
|
pe_session);
|
||||||
psessionEntry->ftPEContext.pFTPreAuthReq->bPreAuthRspProcessed =
|
pe_session->ftPEContext.pFTPreAuthReq->bPreAuthRspProcessed =
|
||||||
true;
|
true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1617,7 +1617,7 @@ QDF_STATUS lim_process_auth_frame_no_session(tpAniSirGlobal mac, uint8_t *pBd,
|
|||||||
QDF_STATUS_SUCCESS)) {
|
QDF_STATUS_SUCCESS)) {
|
||||||
pe_err("failed to convert Auth frame to struct");
|
pe_err("failed to convert Auth frame to struct");
|
||||||
lim_handle_ft_pre_auth_rsp(mac, QDF_STATUS_E_FAILURE, NULL, 0,
|
lim_handle_ft_pre_auth_rsp(mac, QDF_STATUS_E_FAILURE, NULL, 0,
|
||||||
psessionEntry);
|
pe_session);
|
||||||
return QDF_STATUS_E_FAILURE;
|
return QDF_STATUS_E_FAILURE;
|
||||||
}
|
}
|
||||||
pRxAuthFrameBody = &rxAuthFrame;
|
pRxAuthFrameBody = &rxAuthFrame;
|
||||||
@@ -1647,7 +1647,7 @@ QDF_STATUS lim_process_auth_frame_no_session(tpAniSirGlobal mac, uint8_t *pBd,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Send the Auth response to SME */
|
/* Send the Auth response to SME */
|
||||||
lim_handle_ft_pre_auth_rsp(mac, ret_status, pBody, frameLen, psessionEntry);
|
lim_handle_ft_pre_auth_rsp(mac, ret_status, pBody, frameLen, pe_session);
|
||||||
|
|
||||||
return ret_status;
|
return ret_status;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,7 +37,7 @@
|
|||||||
#include "sch_api.h"
|
#include "sch_api.h"
|
||||||
#include "rrm_api.h"
|
#include "rrm_api.h"
|
||||||
|
|
||||||
static void lim_update_config(tpAniSirGlobal mac, struct pe_session *psessionEntry);
|
static void lim_update_config(tpAniSirGlobal mac, struct pe_session *pe_session);
|
||||||
|
|
||||||
void lim_set_cfg_protection(tpAniSirGlobal mac, struct pe_session *pesessionEntry)
|
void lim_set_cfg_protection(tpAniSirGlobal mac, struct pe_session *pesessionEntry)
|
||||||
{
|
{
|
||||||
@@ -157,33 +157,33 @@ void lim_handle_param_update(tpAniSirGlobal mac, eUpdateIEsType cfgId)
|
|||||||
* @return None
|
* @return None
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void lim_apply_configuration(tpAniSirGlobal mac, struct pe_session *psessionEntry)
|
void lim_apply_configuration(tpAniSirGlobal mac, struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
uint32_t val = 0, phyMode;
|
uint32_t val = 0, phyMode;
|
||||||
|
|
||||||
pe_debug("Applying config");
|
pe_debug("Applying config");
|
||||||
|
|
||||||
psessionEntry->limSentCapsChangeNtf = false;
|
pe_session->limSentCapsChangeNtf = false;
|
||||||
|
|
||||||
lim_get_phy_mode(mac, &phyMode, psessionEntry);
|
lim_get_phy_mode(mac, &phyMode, pe_session);
|
||||||
|
|
||||||
lim_update_config(mac, psessionEntry);
|
lim_update_config(mac, pe_session);
|
||||||
|
|
||||||
lim_get_short_slot_from_phy_mode(mac, psessionEntry, phyMode,
|
lim_get_short_slot_from_phy_mode(mac, pe_session, phyMode,
|
||||||
&psessionEntry->shortSlotTimeSupported);
|
&pe_session->shortSlotTimeSupported);
|
||||||
|
|
||||||
lim_set_cfg_protection(mac, psessionEntry);
|
lim_set_cfg_protection(mac, pe_session);
|
||||||
|
|
||||||
/* Added for BT - AMP Support */
|
/* Added for BT - AMP Support */
|
||||||
if (LIM_IS_AP_ROLE(psessionEntry) ||
|
if (LIM_IS_AP_ROLE(pe_session) ||
|
||||||
LIM_IS_IBSS_ROLE(psessionEntry)) {
|
LIM_IS_IBSS_ROLE(pe_session)) {
|
||||||
/* This check is required to ensure the beacon generation is not done
|
/* This check is required to ensure the beacon generation is not done
|
||||||
as a part of join request for a BT-AMP station */
|
as a part of join request for a BT-AMP station */
|
||||||
|
|
||||||
if (psessionEntry->statypeForBss == STA_ENTRY_SELF) {
|
if (pe_session->statypeForBss == STA_ENTRY_SELF) {
|
||||||
pe_debug("Initializing BT-AMP beacon generation");
|
pe_debug("Initializing BT-AMP beacon generation");
|
||||||
sch_set_beacon_interval(mac, psessionEntry);
|
sch_set_beacon_interval(mac, pe_session);
|
||||||
sch_set_fixed_beacon_fields(mac, psessionEntry);
|
sch_set_fixed_beacon_fields(mac, pe_session);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -211,42 +211,42 @@ void lim_apply_configuration(tpAniSirGlobal mac, struct pe_session *psessionEntr
|
|||||||
* @return None
|
* @return None
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static void lim_update_config(tpAniSirGlobal mac, struct pe_session *psessionEntry)
|
static void lim_update_config(tpAniSirGlobal mac, struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
uint32_t val;
|
uint32_t val;
|
||||||
bool enabled;
|
bool enabled;
|
||||||
|
|
||||||
psessionEntry->beaconParams.fShortPreamble =
|
pe_session->beaconParams.fShortPreamble =
|
||||||
mac->mlme_cfg->ht_caps.short_preamble;
|
mac->mlme_cfg->ht_caps.short_preamble;
|
||||||
|
|
||||||
/* In STA case this parameter is filled during the join request */
|
/* In STA case this parameter is filled during the join request */
|
||||||
if (LIM_IS_AP_ROLE(psessionEntry) ||
|
if (LIM_IS_AP_ROLE(pe_session) ||
|
||||||
LIM_IS_IBSS_ROLE(psessionEntry)) {
|
LIM_IS_IBSS_ROLE(pe_session)) {
|
||||||
enabled = mac->mlme_cfg->wmm_params.wme_enabled;
|
enabled = mac->mlme_cfg->wmm_params.wme_enabled;
|
||||||
psessionEntry->limWmeEnabled = enabled;
|
pe_session->limWmeEnabled = enabled;
|
||||||
}
|
}
|
||||||
enabled = mac->mlme_cfg->wmm_params.wsm_enabled;
|
enabled = mac->mlme_cfg->wmm_params.wsm_enabled;
|
||||||
psessionEntry->limWsmEnabled = enabled;
|
pe_session->limWsmEnabled = enabled;
|
||||||
|
|
||||||
if ((!psessionEntry->limWmeEnabled) && (psessionEntry->limWsmEnabled)) {
|
if ((!pe_session->limWmeEnabled) && (pe_session->limWsmEnabled)) {
|
||||||
pe_err("Can't enable WSM without WME");
|
pe_err("Can't enable WSM without WME");
|
||||||
psessionEntry->limWsmEnabled = 0;
|
pe_session->limWsmEnabled = 0;
|
||||||
}
|
}
|
||||||
/* In STA , this parameter is filled during the join request */
|
/* In STA , this parameter is filled during the join request */
|
||||||
if (LIM_IS_AP_ROLE(psessionEntry) || LIM_IS_IBSS_ROLE(psessionEntry)) {
|
if (LIM_IS_AP_ROLE(pe_session) || LIM_IS_IBSS_ROLE(pe_session)) {
|
||||||
enabled = mac->mlme_cfg->wmm_params.qos_enabled;
|
enabled = mac->mlme_cfg->wmm_params.qos_enabled;
|
||||||
psessionEntry->limQosEnabled = enabled;
|
pe_session->limQosEnabled = enabled;
|
||||||
}
|
}
|
||||||
psessionEntry->limHcfEnabled = mac->mlme_cfg->feature_flags.enable_hcf;
|
pe_session->limHcfEnabled = mac->mlme_cfg->feature_flags.enable_hcf;
|
||||||
|
|
||||||
/* AP: WSM should enable HCF as well, for STA enable WSM only after */
|
/* AP: WSM should enable HCF as well, for STA enable WSM only after */
|
||||||
/* association response is received */
|
/* association response is received */
|
||||||
if (psessionEntry->limWsmEnabled && LIM_IS_AP_ROLE(psessionEntry))
|
if (pe_session->limWsmEnabled && LIM_IS_AP_ROLE(pe_session))
|
||||||
psessionEntry->limHcfEnabled = 1;
|
pe_session->limHcfEnabled = 1;
|
||||||
|
|
||||||
if (wlan_cfg_get_int(mac, WNI_CFG_11D_ENABLED, &val) != QDF_STATUS_SUCCESS)
|
if (wlan_cfg_get_int(mac, WNI_CFG_11D_ENABLED, &val) != QDF_STATUS_SUCCESS)
|
||||||
pe_err("cfg get 11d enabled failed");
|
pe_err("cfg get 11d enabled failed");
|
||||||
psessionEntry->lim11dEnabled = (val) ? 1 : 0;
|
pe_session->lim11dEnabled = (val) ? 1 : 0;
|
||||||
|
|
||||||
pe_debug("Updated Lim shadow state based on CFG");
|
pe_debug("Updated Lim shadow state based on CFG");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -59,7 +59,7 @@
|
|||||||
|
|
||||||
void
|
void
|
||||||
lim_process_deauth_frame(tpAniSirGlobal mac, uint8_t *pRxPacketInfo,
|
lim_process_deauth_frame(tpAniSirGlobal mac, uint8_t *pRxPacketInfo,
|
||||||
struct pe_session *psessionEntry)
|
struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
uint8_t *pBody;
|
uint8_t *pBody;
|
||||||
uint16_t reasonCode;
|
uint16_t reasonCode;
|
||||||
@@ -81,9 +81,9 @@ lim_process_deauth_frame(tpAniSirGlobal mac, uint8_t *pRxPacketInfo,
|
|||||||
return ;
|
return ;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (LIM_IS_STA_ROLE(psessionEntry) &&
|
if (LIM_IS_STA_ROLE(pe_session) &&
|
||||||
((eLIM_SME_WT_DISASSOC_STATE == psessionEntry->limSmeState) ||
|
((eLIM_SME_WT_DISASSOC_STATE == pe_session->limSmeState) ||
|
||||||
(eLIM_SME_WT_DEAUTH_STATE == psessionEntry->limSmeState))) {
|
(eLIM_SME_WT_DEAUTH_STATE == pe_session->limSmeState))) {
|
||||||
/*Every 15th deauth frame will be logged in kmsg */
|
/*Every 15th deauth frame will be logged in kmsg */
|
||||||
if (!(mac->lim.deauthMsgCnt & 0xF)) {
|
if (!(mac->lim.deauthMsgCnt & 0xF)) {
|
||||||
pe_debug("received Deauth frame in DEAUTH_WT_STATE"
|
pe_debug("received Deauth frame in DEAUTH_WT_STATE"
|
||||||
@@ -110,13 +110,13 @@ lim_process_deauth_frame(tpAniSirGlobal mac, uint8_t *pRxPacketInfo,
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!lim_validate_received_frame_a1_addr(mac,
|
if (!lim_validate_received_frame_a1_addr(mac,
|
||||||
pHdr->da, psessionEntry)) {
|
pHdr->da, pe_session)) {
|
||||||
pe_err("rx frame doesn't have valid a1 address, drop it");
|
pe_err("rx frame doesn't have valid a1 address, drop it");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
#ifdef WLAN_FEATURE_11W
|
#ifdef WLAN_FEATURE_11W
|
||||||
/* PMF: If this session is a PMF session, then ensure that this frame was protected */
|
/* PMF: If this session is a PMF session, then ensure that this frame was protected */
|
||||||
if (psessionEntry->limRmfEnabled
|
if (pe_session->limRmfEnabled
|
||||||
&& (WMA_GET_RX_DPU_FEEDBACK(pRxPacketInfo) &
|
&& (WMA_GET_RX_DPU_FEEDBACK(pRxPacketInfo) &
|
||||||
DPU_FEEDBACK_UNPROTECTED_ERROR)) {
|
DPU_FEEDBACK_UNPROTECTED_ERROR)) {
|
||||||
pe_debug("received an unprotected deauth from AP");
|
pe_debug("received an unprotected deauth from AP");
|
||||||
@@ -124,7 +124,7 @@ lim_process_deauth_frame(tpAniSirGlobal mac, uint8_t *pRxPacketInfo,
|
|||||||
* When 11w offload is enabled then
|
* When 11w offload is enabled then
|
||||||
* firmware should not fwd this frame
|
* firmware should not fwd this frame
|
||||||
*/
|
*/
|
||||||
if (LIM_IS_STA_ROLE(psessionEntry) && mac->pmf_offload) {
|
if (LIM_IS_STA_ROLE(pe_session) && mac->pmf_offload) {
|
||||||
pe_err("11w offload is enable,unprotected deauth is not expected");
|
pe_err("11w offload is enable,unprotected deauth is not expected");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -137,8 +137,8 @@ lim_process_deauth_frame(tpAniSirGlobal mac, uint8_t *pRxPacketInfo,
|
|||||||
(uint8_t *) pHdr,
|
(uint8_t *) pHdr,
|
||||||
(frameLen +
|
(frameLen +
|
||||||
sizeof(tSirMacMgmtHdr)),
|
sizeof(tSirMacMgmtHdr)),
|
||||||
psessionEntry->smeSessionId,
|
pe_session->smeSessionId,
|
||||||
psessionEntry);
|
pe_session);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@@ -150,9 +150,9 @@ lim_process_deauth_frame(tpAniSirGlobal mac, uint8_t *pRxPacketInfo,
|
|||||||
"(mlm state = %s, sme state = %d systemrole = %d "
|
"(mlm state = %s, sme state = %d systemrole = %d "
|
||||||
"RSSI = %d) with reason code %d [%s] from "
|
"RSSI = %d) with reason code %d [%s] from "
|
||||||
MAC_ADDRESS_STR, MAC_ADDR_ARRAY(pHdr->da),
|
MAC_ADDRESS_STR, MAC_ADDR_ARRAY(pHdr->da),
|
||||||
lim_mlm_state_str(psessionEntry->limMlmState),
|
lim_mlm_state_str(pe_session->limMlmState),
|
||||||
psessionEntry->limSmeState,
|
pe_session->limSmeState,
|
||||||
GET_LIM_SYSTEM_ROLE(psessionEntry), frame_rssi,
|
GET_LIM_SYSTEM_ROLE(pe_session), frame_rssi,
|
||||||
reasonCode, lim_dot11_reason_str(reasonCode),
|
reasonCode, lim_dot11_reason_str(reasonCode),
|
||||||
MAC_ADDR_ARRAY(pHdr->sa));
|
MAC_ADDR_ARRAY(pHdr->sa));
|
||||||
|
|
||||||
@@ -167,7 +167,7 @@ lim_process_deauth_frame(tpAniSirGlobal mac, uint8_t *pRxPacketInfo,
|
|||||||
}
|
}
|
||||||
|
|
||||||
lim_diag_event_report(mac, WLAN_PE_DIAG_DEAUTH_FRAME_EVENT,
|
lim_diag_event_report(mac, WLAN_PE_DIAG_DEAUTH_FRAME_EVENT,
|
||||||
psessionEntry, 0, reasonCode);
|
pe_session, 0, reasonCode);
|
||||||
|
|
||||||
if (lim_check_disassoc_deauth_ack_pending(mac, (uint8_t *) pHdr->sa)) {
|
if (lim_check_disassoc_deauth_ack_pending(mac, (uint8_t *) pHdr->sa)) {
|
||||||
pe_debug("Ignore the Deauth received, while waiting for ack of "
|
pe_debug("Ignore the Deauth received, while waiting for ack of "
|
||||||
@@ -176,7 +176,7 @@ lim_process_deauth_frame(tpAniSirGlobal mac, uint8_t *pRxPacketInfo,
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (LIM_IS_AP_ROLE(psessionEntry)) {
|
if (LIM_IS_AP_ROLE(pe_session)) {
|
||||||
switch (reasonCode) {
|
switch (reasonCode) {
|
||||||
case eSIR_MAC_UNSPEC_FAILURE_REASON:
|
case eSIR_MAC_UNSPEC_FAILURE_REASON:
|
||||||
case eSIR_MAC_DEAUTH_LEAVING_BSS_REASON:
|
case eSIR_MAC_DEAUTH_LEAVING_BSS_REASON:
|
||||||
@@ -192,7 +192,7 @@ lim_process_deauth_frame(tpAniSirGlobal mac, uint8_t *pRxPacketInfo,
|
|||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
} else if (LIM_IS_STA_ROLE(psessionEntry)) {
|
} else if (LIM_IS_STA_ROLE(pe_session)) {
|
||||||
switch (reasonCode) {
|
switch (reasonCode) {
|
||||||
case eSIR_MAC_UNSPEC_FAILURE_REASON:
|
case eSIR_MAC_UNSPEC_FAILURE_REASON:
|
||||||
case eSIR_MAC_PREV_AUTH_NOT_VALID_REASON:
|
case eSIR_MAC_PREV_AUTH_NOT_VALID_REASON:
|
||||||
@@ -217,7 +217,7 @@ lim_process_deauth_frame(tpAniSirGlobal mac, uint8_t *pRxPacketInfo,
|
|||||||
/* or un-known role. Log and ignore it */
|
/* or un-known role. Log and ignore it */
|
||||||
pe_err("received Deauth frame with reasonCode %d in role %d from "
|
pe_err("received Deauth frame with reasonCode %d in role %d from "
|
||||||
MAC_ADDRESS_STR, reasonCode,
|
MAC_ADDRESS_STR, reasonCode,
|
||||||
GET_LIM_SYSTEM_ROLE(psessionEntry),
|
GET_LIM_SYSTEM_ROLE(pe_session),
|
||||||
MAC_ADDR_ARRAY(pHdr->sa));
|
MAC_ADDR_ARRAY(pHdr->sa));
|
||||||
|
|
||||||
return;
|
return;
|
||||||
@@ -242,19 +242,19 @@ lim_process_deauth_frame(tpAniSirGlobal mac, uint8_t *pRxPacketInfo,
|
|||||||
* with normal deauth processing.
|
* with normal deauth processing.
|
||||||
*/
|
*/
|
||||||
pRoamSessionEntry =
|
pRoamSessionEntry =
|
||||||
pe_find_session_by_bssid(mac, psessionEntry->limReAssocbssId,
|
pe_find_session_by_bssid(mac, pe_session->limReAssocbssId,
|
||||||
&roamSessionId);
|
&roamSessionId);
|
||||||
|
|
||||||
if (lim_is_reassoc_in_progress(mac, psessionEntry) ||
|
if (lim_is_reassoc_in_progress(mac, pe_session) ||
|
||||||
lim_is_reassoc_in_progress(mac, pRoamSessionEntry) ||
|
lim_is_reassoc_in_progress(mac, pRoamSessionEntry) ||
|
||||||
psessionEntry->fw_roaming_started) {
|
pe_session->fw_roaming_started) {
|
||||||
/*
|
/*
|
||||||
* For LFR3, the roaming bssid is not known during ROAM_START,
|
* For LFR3, the roaming bssid is not known during ROAM_START,
|
||||||
* so check if the deauth is received from current AP when
|
* so check if the deauth is received from current AP when
|
||||||
* roaming is being done in the firmware
|
* roaming is being done in the firmware
|
||||||
*/
|
*/
|
||||||
if (psessionEntry->fw_roaming_started &&
|
if (pe_session->fw_roaming_started &&
|
||||||
IS_CURRENT_BSSID(mac, pHdr->sa, psessionEntry)) {
|
IS_CURRENT_BSSID(mac, pHdr->sa, pe_session)) {
|
||||||
pe_debug("LFR3: Drop deauth frame from connected AP");
|
pe_debug("LFR3: Drop deauth frame from connected AP");
|
||||||
/*
|
/*
|
||||||
* recvd_deauth_while_roaming will be stored in the
|
* recvd_deauth_while_roaming will be stored in the
|
||||||
@@ -265,33 +265,33 @@ lim_process_deauth_frame(tpAniSirGlobal mac, uint8_t *pRxPacketInfo,
|
|||||||
* roaming succeeds, then this session gets deleted and
|
* roaming succeeds, then this session gets deleted and
|
||||||
* new session is created.
|
* new session is created.
|
||||||
*/
|
*/
|
||||||
psessionEntry->recvd_deauth_while_roaming = true;
|
pe_session->recvd_deauth_while_roaming = true;
|
||||||
psessionEntry->deauth_disassoc_rc = reasonCode;
|
pe_session->deauth_disassoc_rc = reasonCode;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!IS_REASSOC_BSSID(mac, pHdr->sa, psessionEntry)) {
|
if (!IS_REASSOC_BSSID(mac, pHdr->sa, pe_session)) {
|
||||||
pe_debug("Rcv Deauth from unknown/different "
|
pe_debug("Rcv Deauth from unknown/different "
|
||||||
"AP while ReAssoc. Ignore " MAC_ADDRESS_STR
|
"AP while ReAssoc. Ignore " MAC_ADDRESS_STR
|
||||||
"limReAssocbssId : " MAC_ADDRESS_STR,
|
"limReAssocbssId : " MAC_ADDRESS_STR,
|
||||||
MAC_ADDR_ARRAY(pHdr->sa),
|
MAC_ADDR_ARRAY(pHdr->sa),
|
||||||
MAC_ADDR_ARRAY(psessionEntry->limReAssocbssId));
|
MAC_ADDR_ARRAY(pe_session->limReAssocbssId));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Received deauth from the new AP to which we tried to ReAssociate.
|
/** Received deauth from the new AP to which we tried to ReAssociate.
|
||||||
* Drop ReAssoc and Restore the Previous context( current connected AP).
|
* Drop ReAssoc and Restore the Previous context( current connected AP).
|
||||||
*/
|
*/
|
||||||
if (!IS_CURRENT_BSSID(mac, pHdr->sa, psessionEntry)) {
|
if (!IS_CURRENT_BSSID(mac, pHdr->sa, pe_session)) {
|
||||||
pe_debug("received DeAuth from the New AP to "
|
pe_debug("received DeAuth from the New AP to "
|
||||||
"which ReAssoc is sent " MAC_ADDRESS_STR
|
"which ReAssoc is sent " MAC_ADDRESS_STR
|
||||||
"psessionEntry->bssId: " MAC_ADDRESS_STR,
|
"pe_session->bssId: " MAC_ADDRESS_STR,
|
||||||
MAC_ADDR_ARRAY(pHdr->sa),
|
MAC_ADDR_ARRAY(pHdr->sa),
|
||||||
MAC_ADDR_ARRAY(psessionEntry->bssId));
|
MAC_ADDR_ARRAY(pe_session->bssId));
|
||||||
|
|
||||||
lim_restore_pre_reassoc_state(mac,
|
lim_restore_pre_reassoc_state(mac,
|
||||||
eSIR_SME_REASSOC_REFUSED,
|
eSIR_SME_REASSOC_REFUSED,
|
||||||
reasonCode,
|
reasonCode,
|
||||||
psessionEntry);
|
pe_session);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -299,8 +299,8 @@ lim_process_deauth_frame(tpAniSirGlobal mac, uint8_t *pRxPacketInfo,
|
|||||||
/* If received DeAuth from AP other than the one we're trying to join with
|
/* If received DeAuth from AP other than the one we're trying to join with
|
||||||
* nor associated with, then ignore deauth and delete Pre-auth entry.
|
* nor associated with, then ignore deauth and delete Pre-auth entry.
|
||||||
*/
|
*/
|
||||||
if (!LIM_IS_AP_ROLE(psessionEntry)) {
|
if (!LIM_IS_AP_ROLE(pe_session)) {
|
||||||
if (!IS_CURRENT_BSSID(mac, pHdr->bssId, psessionEntry)) {
|
if (!IS_CURRENT_BSSID(mac, pHdr->bssId, pe_session)) {
|
||||||
pe_err("received DeAuth from an AP other "
|
pe_err("received DeAuth from an AP other "
|
||||||
"than we're trying to join. Ignore. "
|
"than we're trying to join. Ignore. "
|
||||||
MAC_ADDRESS_STR, MAC_ADDR_ARRAY(pHdr->sa));
|
MAC_ADDRESS_STR, MAC_ADDR_ARRAY(pHdr->sa));
|
||||||
@@ -313,7 +313,7 @@ lim_process_deauth_frame(tpAniSirGlobal mac, uint8_t *pRxPacketInfo,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
lim_perform_deauth(mac, psessionEntry, reasonCode, pHdr->sa,
|
lim_perform_deauth(mac, pe_session, reasonCode, pHdr->sa,
|
||||||
frame_rssi);
|
frame_rssi);
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -62,7 +62,7 @@
|
|||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
lim_process_disassoc_frame(tpAniSirGlobal mac, uint8_t *pRxPacketInfo,
|
lim_process_disassoc_frame(tpAniSirGlobal mac, uint8_t *pRxPacketInfo,
|
||||||
struct pe_session *psessionEntry)
|
struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
uint8_t *pBody;
|
uint8_t *pBody;
|
||||||
uint16_t aid, reasonCode;
|
uint16_t aid, reasonCode;
|
||||||
@@ -91,18 +91,18 @@ lim_process_disassoc_frame(tpAniSirGlobal mac, uint8_t *pRxPacketInfo,
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!lim_validate_received_frame_a1_addr(mac,
|
if (!lim_validate_received_frame_a1_addr(mac,
|
||||||
pHdr->da, psessionEntry)) {
|
pHdr->da, pe_session)) {
|
||||||
pe_err("rx frame doesn't have valid a1 address, drop it");
|
pe_err("rx frame doesn't have valid a1 address, drop it");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (LIM_IS_STA_ROLE(psessionEntry) &&
|
if (LIM_IS_STA_ROLE(pe_session) &&
|
||||||
((eLIM_SME_WT_DISASSOC_STATE == psessionEntry->limSmeState) ||
|
((eLIM_SME_WT_DISASSOC_STATE == pe_session->limSmeState) ||
|
||||||
(eLIM_SME_WT_DEAUTH_STATE == psessionEntry->limSmeState))) {
|
(eLIM_SME_WT_DEAUTH_STATE == pe_session->limSmeState))) {
|
||||||
if (!(mac->lim.disassocMsgCnt & 0xF)) {
|
if (!(mac->lim.disassocMsgCnt & 0xF)) {
|
||||||
pe_debug("received Disassoc frame in %s"
|
pe_debug("received Disassoc frame in %s"
|
||||||
"already processing previously received Disassoc frame, dropping this %d",
|
"already processing previously received Disassoc frame, dropping this %d",
|
||||||
lim_sme_state_str(psessionEntry->limSmeState),
|
lim_sme_state_str(pe_session->limSmeState),
|
||||||
++mac->lim.disassocMsgCnt);
|
++mac->lim.disassocMsgCnt);
|
||||||
} else {
|
} else {
|
||||||
mac->lim.disassocMsgCnt++;
|
mac->lim.disassocMsgCnt++;
|
||||||
@@ -111,7 +111,7 @@ lim_process_disassoc_frame(tpAniSirGlobal mac, uint8_t *pRxPacketInfo,
|
|||||||
}
|
}
|
||||||
#ifdef WLAN_FEATURE_11W
|
#ifdef WLAN_FEATURE_11W
|
||||||
/* PMF: If this session is a PMF session, then ensure that this frame was protected */
|
/* PMF: If this session is a PMF session, then ensure that this frame was protected */
|
||||||
if (psessionEntry->limRmfEnabled
|
if (pe_session->limRmfEnabled
|
||||||
&& (WMA_GET_RX_DPU_FEEDBACK(pRxPacketInfo) &
|
&& (WMA_GET_RX_DPU_FEEDBACK(pRxPacketInfo) &
|
||||||
DPU_FEEDBACK_UNPROTECTED_ERROR)) {
|
DPU_FEEDBACK_UNPROTECTED_ERROR)) {
|
||||||
pe_err("received an unprotected disassoc from AP");
|
pe_err("received an unprotected disassoc from AP");
|
||||||
@@ -119,7 +119,7 @@ lim_process_disassoc_frame(tpAniSirGlobal mac, uint8_t *pRxPacketInfo,
|
|||||||
* When 11w offload is enabled then
|
* When 11w offload is enabled then
|
||||||
* firmware should not fwd this frame
|
* firmware should not fwd this frame
|
||||||
*/
|
*/
|
||||||
if (LIM_IS_STA_ROLE(psessionEntry) && mac->pmf_offload) {
|
if (LIM_IS_STA_ROLE(pe_session) && mac->pmf_offload) {
|
||||||
pe_err("11w offload is enable,unprotected disassoc is not expected");
|
pe_err("11w offload is enable,unprotected disassoc is not expected");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -131,8 +131,8 @@ lim_process_disassoc_frame(tpAniSirGlobal mac, uint8_t *pRxPacketInfo,
|
|||||||
(uint8_t *) pHdr,
|
(uint8_t *) pHdr,
|
||||||
(frame_len +
|
(frame_len +
|
||||||
sizeof(tSirMacMgmtHdr)),
|
sizeof(tSirMacMgmtHdr)),
|
||||||
psessionEntry->smeSessionId,
|
pe_session->smeSessionId,
|
||||||
psessionEntry);
|
pe_session);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@@ -149,11 +149,11 @@ lim_process_disassoc_frame(tpAniSirGlobal mac, uint8_t *pRxPacketInfo,
|
|||||||
"(mlm state=%s, sme state=%d RSSI=%d),"
|
"(mlm state=%s, sme state=%d RSSI=%d),"
|
||||||
"with reason code %d [%s] from " MAC_ADDRESS_STR,
|
"with reason code %d [%s] from " MAC_ADDRESS_STR,
|
||||||
MAC_ADDR_ARRAY(pHdr->da),
|
MAC_ADDR_ARRAY(pHdr->da),
|
||||||
lim_mlm_state_str(psessionEntry->limMlmState),
|
lim_mlm_state_str(pe_session->limMlmState),
|
||||||
psessionEntry->limSmeState, frame_rssi, reasonCode,
|
pe_session->limSmeState, frame_rssi, reasonCode,
|
||||||
lim_dot11_reason_str(reasonCode), MAC_ADDR_ARRAY(pHdr->sa));
|
lim_dot11_reason_str(reasonCode), MAC_ADDR_ARRAY(pHdr->sa));
|
||||||
lim_diag_event_report(mac, WLAN_PE_DIAG_DISASSOC_FRAME_EVENT,
|
lim_diag_event_report(mac, WLAN_PE_DIAG_DISASSOC_FRAME_EVENT,
|
||||||
psessionEntry, 0, reasonCode);
|
pe_session, 0, reasonCode);
|
||||||
|
|
||||||
if (mac->mlme_cfg->gen.fatal_event_trigger &&
|
if (mac->mlme_cfg->gen.fatal_event_trigger &&
|
||||||
(reasonCode != eSIR_MAC_UNSPEC_FAILURE_REASON &&
|
(reasonCode != eSIR_MAC_UNSPEC_FAILURE_REASON &&
|
||||||
@@ -170,7 +170,7 @@ lim_process_disassoc_frame(tpAniSirGlobal mac, uint8_t *pRxPacketInfo,
|
|||||||
*/
|
*/
|
||||||
pStaDs =
|
pStaDs =
|
||||||
dph_lookup_hash_entry(mac, pHdr->sa, &aid,
|
dph_lookup_hash_entry(mac, pHdr->sa, &aid,
|
||||||
&psessionEntry->dph.dphHashTable);
|
&pe_session->dph.dphHashTable);
|
||||||
|
|
||||||
if (pStaDs == NULL) {
|
if (pStaDs == NULL) {
|
||||||
/**
|
/**
|
||||||
@@ -194,17 +194,17 @@ lim_process_disassoc_frame(tpAniSirGlobal mac, uint8_t *pRxPacketInfo,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/** If we are in the Wait for ReAssoc Rsp state */
|
/** If we are in the Wait for ReAssoc Rsp state */
|
||||||
if (lim_is_reassoc_in_progress(mac, psessionEntry)) {
|
if (lim_is_reassoc_in_progress(mac, pe_session)) {
|
||||||
/*
|
/*
|
||||||
* For LFR3, the roaming bssid is not known during ROAM_START,
|
* For LFR3, the roaming bssid is not known during ROAM_START,
|
||||||
* so check if the disassoc is received from current AP when
|
* so check if the disassoc is received from current AP when
|
||||||
* roaming is being done in the firmware
|
* roaming is being done in the firmware
|
||||||
*/
|
*/
|
||||||
if (psessionEntry->fw_roaming_started &&
|
if (pe_session->fw_roaming_started &&
|
||||||
IS_CURRENT_BSSID(mac, pHdr->sa, psessionEntry)) {
|
IS_CURRENT_BSSID(mac, pHdr->sa, pe_session)) {
|
||||||
pe_debug("Dropping disassoc frame from connected AP");
|
pe_debug("Dropping disassoc frame from connected AP");
|
||||||
psessionEntry->recvd_disassoc_while_roaming = true;
|
pe_session->recvd_disassoc_while_roaming = true;
|
||||||
psessionEntry->deauth_disassoc_rc = reasonCode;
|
pe_session->deauth_disassoc_rc = reasonCode;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
/** If we had received the DisAssoc from,
|
/** If we had received the DisAssoc from,
|
||||||
@@ -212,24 +212,24 @@ lim_process_disassoc_frame(tpAniSirGlobal mac, uint8_t *pRxPacketInfo,
|
|||||||
* b. Unknown AP
|
* b. Unknown AP
|
||||||
* drop/ignore the DisAssoc received
|
* drop/ignore the DisAssoc received
|
||||||
*/
|
*/
|
||||||
if (!IS_REASSOC_BSSID(mac, pHdr->sa, psessionEntry)) {
|
if (!IS_REASSOC_BSSID(mac, pHdr->sa, pe_session)) {
|
||||||
pe_err("Ignore DisAssoc while Processing ReAssoc");
|
pe_err("Ignore DisAssoc while Processing ReAssoc");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
/** If the Disassoc is received from the new AP to which we tried to ReAssociate
|
/** If the Disassoc is received from the new AP to which we tried to ReAssociate
|
||||||
* Drop ReAssoc and Restore the Previous context( current connected AP).
|
* Drop ReAssoc and Restore the Previous context( current connected AP).
|
||||||
*/
|
*/
|
||||||
if (!IS_CURRENT_BSSID(mac, pHdr->sa, psessionEntry)) {
|
if (!IS_CURRENT_BSSID(mac, pHdr->sa, pe_session)) {
|
||||||
pe_debug("received Disassoc from the New AP to which ReAssoc is sent");
|
pe_debug("received Disassoc from the New AP to which ReAssoc is sent");
|
||||||
lim_restore_pre_reassoc_state(mac,
|
lim_restore_pre_reassoc_state(mac,
|
||||||
eSIR_SME_REASSOC_REFUSED,
|
eSIR_SME_REASSOC_REFUSED,
|
||||||
reasonCode,
|
reasonCode,
|
||||||
psessionEntry);
|
pe_session);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (LIM_IS_AP_ROLE(psessionEntry)) {
|
if (LIM_IS_AP_ROLE(pe_session)) {
|
||||||
switch (reasonCode) {
|
switch (reasonCode) {
|
||||||
case eSIR_MAC_UNSPEC_FAILURE_REASON:
|
case eSIR_MAC_UNSPEC_FAILURE_REASON:
|
||||||
case eSIR_MAC_DISASSOC_DUE_TO_INACTIVITY_REASON:
|
case eSIR_MAC_DISASSOC_DUE_TO_INACTIVITY_REASON:
|
||||||
@@ -248,17 +248,17 @@ lim_process_disassoc_frame(tpAniSirGlobal mac, uint8_t *pRxPacketInfo,
|
|||||||
reasonCode, MAC_ADDR_ARRAY(pHdr->sa));
|
reasonCode, MAC_ADDR_ARRAY(pHdr->sa));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
} else if (LIM_IS_STA_ROLE(psessionEntry) &&
|
} else if (LIM_IS_STA_ROLE(pe_session) &&
|
||||||
((psessionEntry->limSmeState != eLIM_SME_WT_JOIN_STATE) &&
|
((pe_session->limSmeState != eLIM_SME_WT_JOIN_STATE) &&
|
||||||
(psessionEntry->limSmeState != eLIM_SME_WT_AUTH_STATE) &&
|
(pe_session->limSmeState != eLIM_SME_WT_AUTH_STATE) &&
|
||||||
(psessionEntry->limSmeState != eLIM_SME_WT_ASSOC_STATE) &&
|
(pe_session->limSmeState != eLIM_SME_WT_ASSOC_STATE) &&
|
||||||
(psessionEntry->limSmeState != eLIM_SME_WT_REASSOC_STATE))) {
|
(pe_session->limSmeState != eLIM_SME_WT_REASSOC_STATE))) {
|
||||||
switch (reasonCode) {
|
switch (reasonCode) {
|
||||||
case eSIR_MAC_DEAUTH_LEAVING_BSS_REASON:
|
case eSIR_MAC_DEAUTH_LEAVING_BSS_REASON:
|
||||||
case eSIR_MAC_DISASSOC_LEAVING_BSS_REASON:
|
case eSIR_MAC_DISASSOC_LEAVING_BSS_REASON:
|
||||||
/* Valid reasonCode in received Disassociation frame */
|
/* Valid reasonCode in received Disassociation frame */
|
||||||
/* as long as we're not about to channel switch */
|
/* as long as we're not about to channel switch */
|
||||||
if (psessionEntry->gLimChannelSwitch.state !=
|
if (pe_session->gLimChannelSwitch.state !=
|
||||||
eLIM_CHANNEL_SWITCH_IDLE) {
|
eLIM_CHANNEL_SWITCH_IDLE) {
|
||||||
pe_err("Ignoring disassoc frame due to upcoming channel switch, from "MAC_ADDRESS_STR,
|
pe_err("Ignoring disassoc frame due to upcoming channel switch, from "MAC_ADDRESS_STR,
|
||||||
MAC_ADDR_ARRAY(pHdr->sa));
|
MAC_ADDR_ARRAY(pHdr->sa));
|
||||||
@@ -274,7 +274,7 @@ lim_process_disassoc_frame(tpAniSirGlobal mac, uint8_t *pRxPacketInfo,
|
|||||||
/* or un-known role. Log and ignore it */
|
/* or un-known role. Log and ignore it */
|
||||||
pe_err("received Disassoc frame with invalid reasonCode: %d in role:"
|
pe_err("received Disassoc frame with invalid reasonCode: %d in role:"
|
||||||
"%d in sme state: %d from " MAC_ADDRESS_STR, reasonCode,
|
"%d in sme state: %d from " MAC_ADDRESS_STR, reasonCode,
|
||||||
GET_LIM_SYSTEM_ROLE(psessionEntry), psessionEntry->limSmeState,
|
GET_LIM_SYSTEM_ROLE(pe_session), pe_session->limSmeState,
|
||||||
MAC_ADDR_ARRAY(pHdr->sa));
|
MAC_ADDR_ARRAY(pHdr->sa));
|
||||||
|
|
||||||
return;
|
return;
|
||||||
@@ -293,7 +293,7 @@ lim_process_disassoc_frame(tpAniSirGlobal mac, uint8_t *pRxPacketInfo,
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
pStaDs->sta_deletion_in_progress = true;
|
pStaDs->sta_deletion_in_progress = true;
|
||||||
lim_disassoc_tdls_peers(mac, psessionEntry, pHdr->sa);
|
lim_disassoc_tdls_peers(mac, pe_session, pHdr->sa);
|
||||||
if (pStaDs->mlmStaContext.mlmState != eLIM_MLM_LINK_ESTABLISHED_STATE) {
|
if (pStaDs->mlmStaContext.mlmState != eLIM_MLM_LINK_ESTABLISHED_STATE) {
|
||||||
/**
|
/**
|
||||||
* Requesting STA is in some 'transient' state?
|
* Requesting STA is in some 'transient' state?
|
||||||
@@ -310,7 +310,7 @@ lim_process_disassoc_frame(tpAniSirGlobal mac, uint8_t *pRxPacketInfo,
|
|||||||
} /* if (pStaDs->mlmStaContext.mlmState != eLIM_MLM_LINK_ESTABLISHED_STATE) */
|
} /* if (pStaDs->mlmStaContext.mlmState != eLIM_MLM_LINK_ESTABLISHED_STATE) */
|
||||||
|
|
||||||
lim_perform_disassoc(mac, frame_rssi, reasonCode,
|
lim_perform_disassoc(mac, frame_rssi, reasonCode,
|
||||||
psessionEntry, pHdr->sa);
|
pe_session, pHdr->sa);
|
||||||
|
|
||||||
} /*** end lim_process_disassoc_frame() ***/
|
} /*** end lim_process_disassoc_frame() ***/
|
||||||
|
|
||||||
|
|||||||
@@ -675,9 +675,9 @@ __lim_process_ext_scan_beacon_probe_rsp(tpAniSirGlobal pmac,
|
|||||||
* Beacon Handling Cases:
|
* Beacon Handling Cases:
|
||||||
* during scanning, when no session is active:
|
* during scanning, when no session is active:
|
||||||
* handled by lim_handle_frames_in_scan_state before __lim_handle_beacon call is invoked.
|
* handled by lim_handle_frames_in_scan_state before __lim_handle_beacon call is invoked.
|
||||||
* during scanning, when any session is active, but beacon/Pr does not belong to that session, psessionEntry will be null.
|
* during scanning, when any session is active, but beacon/Pr does not belong to that session, pe_session will be null.
|
||||||
* handled by lim_handle_frames_in_scan_state before __lim_handle_beacon call is invoked.
|
* handled by lim_handle_frames_in_scan_state before __lim_handle_beacon call is invoked.
|
||||||
* during scanning, when any session is active, and beacon/Pr belongs to one of the session, psessionEntry will not be null.
|
* during scanning, when any session is active, and beacon/Pr belongs to one of the session, pe_session will not be null.
|
||||||
* handled by lim_handle_frames_in_scan_state before __lim_handle_beacon call is invoked.
|
* handled by lim_handle_frames_in_scan_state before __lim_handle_beacon call is invoked.
|
||||||
* Not scanning, no session:
|
* Not scanning, no session:
|
||||||
* there should not be any beacon coming, if coming, should be dropped.
|
* there should not be any beacon coming, if coming, should be dropped.
|
||||||
@@ -685,7 +685,7 @@ __lim_process_ext_scan_beacon_probe_rsp(tpAniSirGlobal pmac,
|
|||||||
*/
|
*/
|
||||||
static void
|
static void
|
||||||
__lim_handle_beacon(tpAniSirGlobal mac, struct scheduler_msg *pMsg,
|
__lim_handle_beacon(tpAniSirGlobal mac, struct scheduler_msg *pMsg,
|
||||||
struct pe_session *psessionEntry)
|
struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
uint8_t *pRxPacketInfo;
|
uint8_t *pRxPacketInfo;
|
||||||
|
|
||||||
@@ -695,13 +695,13 @@ __lim_handle_beacon(tpAniSirGlobal mac, struct scheduler_msg *pMsg,
|
|||||||
/* This function should not be called if beacon is received in scan state. */
|
/* This function should not be called if beacon is received in scan state. */
|
||||||
/* So not doing any checks for the global state. */
|
/* So not doing any checks for the global state. */
|
||||||
|
|
||||||
if (psessionEntry == NULL) {
|
if (pe_session == NULL) {
|
||||||
sch_beacon_process(mac, pRxPacketInfo, NULL);
|
sch_beacon_process(mac, pRxPacketInfo, NULL);
|
||||||
} else if ((psessionEntry->limSmeState == eLIM_SME_LINK_EST_STATE) ||
|
} else if ((pe_session->limSmeState == eLIM_SME_LINK_EST_STATE) ||
|
||||||
(psessionEntry->limSmeState == eLIM_SME_NORMAL_STATE)) {
|
(pe_session->limSmeState == eLIM_SME_NORMAL_STATE)) {
|
||||||
sch_beacon_process(mac, pRxPacketInfo, psessionEntry);
|
sch_beacon_process(mac, pRxPacketInfo, pe_session);
|
||||||
} else
|
} else
|
||||||
lim_process_beacon_frame(mac, pRxPacketInfo, psessionEntry);
|
lim_process_beacon_frame(mac, pRxPacketInfo, pe_session);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -1121,7 +1121,7 @@ lim_handle80211_frames(tpAniSirGlobal mac, struct scheduler_msg *limMsg,
|
|||||||
uint8_t *pRxPacketInfo = NULL;
|
uint8_t *pRxPacketInfo = NULL;
|
||||||
tSirMacFrameCtl fc;
|
tSirMacFrameCtl fc;
|
||||||
tpSirMacMgmtHdr pHdr = NULL;
|
tpSirMacMgmtHdr pHdr = NULL;
|
||||||
struct pe_session *psessionEntry = NULL;
|
struct pe_session *pe_session = NULL;
|
||||||
uint8_t sessionId;
|
uint8_t sessionId;
|
||||||
bool isFrmFt = false;
|
bool isFrmFt = false;
|
||||||
uint8_t channel;
|
uint8_t channel;
|
||||||
@@ -1142,10 +1142,10 @@ lim_handle80211_frames(tpAniSirGlobal mac, struct scheduler_msg *limMsg,
|
|||||||
(!is_hw_sbs_capable ||
|
(!is_hw_sbs_capable ||
|
||||||
(is_hw_sbs_capable && wlan_reg_is_dfs_ch(mac->pdev, channel))) &&
|
(is_hw_sbs_capable && wlan_reg_is_dfs_ch(mac->pdev, channel))) &&
|
||||||
mac->sap.SapDfsInfo.is_dfs_cac_timer_running) {
|
mac->sap.SapDfsInfo.is_dfs_cac_timer_running) {
|
||||||
psessionEntry = pe_find_session_by_bssid(mac,
|
pe_session = pe_find_session_by_bssid(mac,
|
||||||
pHdr->bssId, &sessionId);
|
pHdr->bssId, &sessionId);
|
||||||
if (psessionEntry &&
|
if (pe_session &&
|
||||||
(QDF_SAP_MODE == psessionEntry->pePersona)) {
|
(QDF_SAP_MODE == pe_session->pePersona)) {
|
||||||
pe_debug("CAC timer running - drop the frame");
|
pe_debug("CAC timer running - drop the frame");
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
@@ -1188,9 +1188,9 @@ lim_handle80211_frames(tpAniSirGlobal mac, struct scheduler_msg *limMsg,
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
/* Added For BT-AMP Support */
|
/* Added For BT-AMP Support */
|
||||||
psessionEntry = pe_find_session_by_bssid(mac, pHdr->bssId,
|
pe_session = pe_find_session_by_bssid(mac, pHdr->bssId,
|
||||||
&sessionId);
|
&sessionId);
|
||||||
if (psessionEntry == NULL) {
|
if (pe_session == NULL) {
|
||||||
if (fc.subType == SIR_MAC_MGMT_AUTH) {
|
if (fc.subType == SIR_MAC_MGMT_AUTH) {
|
||||||
pe_debug("ProtVersion %d, Type %d, Subtype %d rateIndex=%d",
|
pe_debug("ProtVersion %d, Type %d, Subtype %d rateIndex=%d",
|
||||||
fc.protVer, fc.type, fc.subType,
|
fc.protVer, fc.type, fc.subType,
|
||||||
@@ -1208,27 +1208,27 @@ lim_handle80211_frames(tpAniSirGlobal mac, struct scheduler_msg *limMsg,
|
|||||||
(fc.subType != SIR_MAC_MGMT_PROBE_REQ)
|
(fc.subType != SIR_MAC_MGMT_PROBE_REQ)
|
||||||
&& (fc.subType != SIR_MAC_MGMT_ACTION)) {
|
&& (fc.subType != SIR_MAC_MGMT_ACTION)) {
|
||||||
|
|
||||||
psessionEntry = pe_find_session_by_peer_sta(mac,
|
pe_session = pe_find_session_by_peer_sta(mac,
|
||||||
pHdr->sa, &sessionId);
|
pHdr->sa, &sessionId);
|
||||||
if (psessionEntry == NULL) {
|
if (pe_session == NULL) {
|
||||||
pe_debug("session does not exist for bssId");
|
pe_debug("session does not exist for bssId");
|
||||||
lim_print_mac_addr(mac, pHdr->sa, LOGD);
|
lim_print_mac_addr(mac, pHdr->sa, LOGD);
|
||||||
goto end;
|
goto end;
|
||||||
} else {
|
} else {
|
||||||
pe_debug("SessionId:%d exists for given Bssid",
|
pe_debug("SessionId:%d exists for given Bssid",
|
||||||
psessionEntry->peSessionId);
|
pe_session->peSessionId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/* For p2p resp frames search for valid session with DA as */
|
/* For p2p resp frames search for valid session with DA as */
|
||||||
/* BSSID will be SA and session will be present with DA only */
|
/* BSSID will be SA and session will be present with DA only */
|
||||||
if (fc.subType == SIR_MAC_MGMT_ACTION) {
|
if (fc.subType == SIR_MAC_MGMT_ACTION) {
|
||||||
psessionEntry =
|
pe_session =
|
||||||
pe_find_session_by_bssid(mac, pHdr->da, &sessionId);
|
pe_find_session_by_bssid(mac, pHdr->da, &sessionId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Check if frame is registered by HDD */
|
/* Check if frame is registered by HDD */
|
||||||
if (lim_check_mgmt_registered_frames(mac, pRxPacketInfo, psessionEntry)) {
|
if (lim_check_mgmt_registered_frames(mac, pRxPacketInfo, pe_session)) {
|
||||||
pe_debug("Received frame is passed to SME");
|
pe_debug("Received frame is passed to SME");
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
@@ -1257,11 +1257,11 @@ lim_handle80211_frames(tpAniSirGlobal mac, struct scheduler_msg *limMsg,
|
|||||||
switch (fc.subType) {
|
switch (fc.subType) {
|
||||||
case SIR_MAC_MGMT_ASSOC_REQ:
|
case SIR_MAC_MGMT_ASSOC_REQ:
|
||||||
/* Make sure the role supports Association */
|
/* Make sure the role supports Association */
|
||||||
if (LIM_IS_AP_ROLE(psessionEntry))
|
if (LIM_IS_AP_ROLE(pe_session))
|
||||||
lim_process_assoc_req_frame(mac,
|
lim_process_assoc_req_frame(mac,
|
||||||
pRxPacketInfo,
|
pRxPacketInfo,
|
||||||
LIM_ASSOC,
|
LIM_ASSOC,
|
||||||
psessionEntry);
|
pe_session);
|
||||||
else {
|
else {
|
||||||
pe_err("unexpected message received %X",
|
pe_err("unexpected message received %X",
|
||||||
limMsg->type);
|
limMsg->type);
|
||||||
@@ -1273,16 +1273,16 @@ lim_handle80211_frames(tpAniSirGlobal mac, struct scheduler_msg *limMsg,
|
|||||||
case SIR_MAC_MGMT_ASSOC_RSP:
|
case SIR_MAC_MGMT_ASSOC_RSP:
|
||||||
lim_process_assoc_rsp_frame(mac, pRxPacketInfo,
|
lim_process_assoc_rsp_frame(mac, pRxPacketInfo,
|
||||||
LIM_ASSOC,
|
LIM_ASSOC,
|
||||||
psessionEntry);
|
pe_session);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SIR_MAC_MGMT_REASSOC_REQ:
|
case SIR_MAC_MGMT_REASSOC_REQ:
|
||||||
/* Make sure the role supports Reassociation */
|
/* Make sure the role supports Reassociation */
|
||||||
if (LIM_IS_AP_ROLE(psessionEntry)) {
|
if (LIM_IS_AP_ROLE(pe_session)) {
|
||||||
lim_process_assoc_req_frame(mac,
|
lim_process_assoc_req_frame(mac,
|
||||||
pRxPacketInfo,
|
pRxPacketInfo,
|
||||||
LIM_REASSOC,
|
LIM_REASSOC,
|
||||||
psessionEntry);
|
pe_session);
|
||||||
} else {
|
} else {
|
||||||
pe_err("unexpected message received %X",
|
pe_err("unexpected message received %X",
|
||||||
limMsg->type);
|
limMsg->type);
|
||||||
@@ -1294,43 +1294,43 @@ lim_handle80211_frames(tpAniSirGlobal mac, struct scheduler_msg *limMsg,
|
|||||||
case SIR_MAC_MGMT_REASSOC_RSP:
|
case SIR_MAC_MGMT_REASSOC_RSP:
|
||||||
lim_process_assoc_rsp_frame(mac, pRxPacketInfo,
|
lim_process_assoc_rsp_frame(mac, pRxPacketInfo,
|
||||||
LIM_REASSOC,
|
LIM_REASSOC,
|
||||||
psessionEntry);
|
pe_session);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SIR_MAC_MGMT_PROBE_REQ:
|
case SIR_MAC_MGMT_PROBE_REQ:
|
||||||
lim_process_probe_req_frame_multiple_bss(mac,
|
lim_process_probe_req_frame_multiple_bss(mac,
|
||||||
pRxPacketInfo,
|
pRxPacketInfo,
|
||||||
psessionEntry);
|
pe_session);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SIR_MAC_MGMT_PROBE_RSP:
|
case SIR_MAC_MGMT_PROBE_RSP:
|
||||||
if (psessionEntry)
|
if (pe_session)
|
||||||
lim_process_probe_rsp_frame(mac,
|
lim_process_probe_rsp_frame(mac,
|
||||||
pRxPacketInfo,
|
pRxPacketInfo,
|
||||||
psessionEntry);
|
pe_session);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SIR_MAC_MGMT_BEACON:
|
case SIR_MAC_MGMT_BEACON:
|
||||||
__lim_handle_beacon(mac, limMsg, psessionEntry);
|
__lim_handle_beacon(mac, limMsg, pe_session);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SIR_MAC_MGMT_DISASSOC:
|
case SIR_MAC_MGMT_DISASSOC:
|
||||||
lim_process_disassoc_frame(mac, pRxPacketInfo,
|
lim_process_disassoc_frame(mac, pRxPacketInfo,
|
||||||
psessionEntry);
|
pe_session);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SIR_MAC_MGMT_AUTH:
|
case SIR_MAC_MGMT_AUTH:
|
||||||
lim_process_auth_frame(mac, pRxPacketInfo,
|
lim_process_auth_frame(mac, pRxPacketInfo,
|
||||||
psessionEntry);
|
pe_session);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SIR_MAC_MGMT_DEAUTH:
|
case SIR_MAC_MGMT_DEAUTH:
|
||||||
lim_process_deauth_frame(mac, pRxPacketInfo,
|
lim_process_deauth_frame(mac, pRxPacketInfo,
|
||||||
psessionEntry);
|
pe_session);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SIR_MAC_MGMT_ACTION:
|
case SIR_MAC_MGMT_ACTION:
|
||||||
if (psessionEntry == NULL)
|
if (pe_session == NULL)
|
||||||
lim_process_action_frame_no_session(mac,
|
lim_process_action_frame_no_session(mac,
|
||||||
pRxPacketInfo);
|
pRxPacketInfo);
|
||||||
else {
|
else {
|
||||||
@@ -1338,11 +1338,11 @@ lim_handle80211_frames(tpAniSirGlobal mac, struct scheduler_msg *limMsg,
|
|||||||
(pRxPacketInfo))
|
(pRxPacketInfo))
|
||||||
lim_handle_unknown_a2_index_frames
|
lim_handle_unknown_a2_index_frames
|
||||||
(mac, pRxPacketInfo,
|
(mac, pRxPacketInfo,
|
||||||
psessionEntry);
|
pe_session);
|
||||||
else
|
else
|
||||||
lim_process_action_frame(mac,
|
lim_process_action_frame(mac,
|
||||||
pRxPacketInfo,
|
pRxPacketInfo,
|
||||||
psessionEntry);
|
pe_session);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@@ -1363,7 +1363,7 @@ lim_handle80211_frames(tpAniSirGlobal mac, struct scheduler_msg *limMsg,
|
|||||||
} /* switch (fc.type) */
|
} /* switch (fc.type) */
|
||||||
if (lim_is_mgmt_frame_loggable(fc.type, fc.subType))
|
if (lim_is_mgmt_frame_loggable(fc.type, fc.subType))
|
||||||
lim_diag_mgmt_rx_event_report(mac, pHdr,
|
lim_diag_mgmt_rx_event_report(mac, pHdr,
|
||||||
psessionEntry,
|
pe_session,
|
||||||
QDF_STATUS_SUCCESS, QDF_STATUS_SUCCESS);
|
QDF_STATUS_SUCCESS, QDF_STATUS_SUCCESS);
|
||||||
end:
|
end:
|
||||||
lim_pkt_free(mac, TXRX_FRM_802_11_MGMT, pRxPacketInfo,
|
lim_pkt_free(mac, TXRX_FRM_802_11_MGMT, pRxPacketInfo,
|
||||||
@@ -2193,7 +2193,7 @@ static void lim_process_normal_hdd_msg(tpAniSirGlobal mac_ctx,
|
|||||||
|
|
||||||
void
|
void
|
||||||
handle_ht_capabilityand_ht_info(struct mac_context *mac,
|
handle_ht_capabilityand_ht_info(struct mac_context *mac,
|
||||||
struct pe_session *psessionEntry)
|
struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
struct mlme_ht_capabilities_info *ht_cap_info;
|
struct mlme_ht_capabilities_info *ht_cap_info;
|
||||||
|
|
||||||
@@ -2243,16 +2243,16 @@ handle_ht_capabilityand_ht_info(struct mac_context *mac,
|
|||||||
|
|
||||||
/* The lim globals for channelwidth and secondary chnl have been removed and should not be used during no session;
|
/* The lim globals for channelwidth and secondary chnl have been removed and should not be used during no session;
|
||||||
* instead direct cfg is read and used when no session for transmission of mgmt frames (same as old);
|
* instead direct cfg is read and used when no session for transmission of mgmt frames (same as old);
|
||||||
* For now, we might come here during init and join with sessionEntry = NULL; in that case just fill the globals which exist
|
* For now, we might come here during init and join with pe_session = NULL; in that case just fill the globals which exist
|
||||||
* Sessionized entries values will be filled in join or add bss req. The ones which are missed in join are filled below
|
* Sessionized entries values will be filled in join or add bss req. The ones which are missed in join are filled below
|
||||||
*/
|
*/
|
||||||
if (psessionEntry != NULL) {
|
if (pe_session != NULL) {
|
||||||
psessionEntry->htCapability =
|
pe_session->htCapability =
|
||||||
IS_DOT11_MODE_HT(psessionEntry->dot11mode);
|
IS_DOT11_MODE_HT(pe_session->dot11mode);
|
||||||
psessionEntry->beaconParams.fLsigTXOPProtectionFullSupport =
|
pe_session->beaconParams.fLsigTXOPProtectionFullSupport =
|
||||||
(uint8_t)mac->mlme_cfg->ht_caps.info_field_3.
|
(uint8_t)mac->mlme_cfg->ht_caps.info_field_3.
|
||||||
lsig_txop_protection_full_support;
|
lsig_txop_protection_full_support;
|
||||||
lim_init_obss_params(mac, psessionEntry);
|
lim_init_obss_params(mac, pe_session);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -136,7 +136,7 @@ void lim_process_mlm_reassoc_req(tpAniSirGlobal mac_ctx,
|
|||||||
/* Apply previously set configuration at HW */
|
/* Apply previously set configuration at HW */
|
||||||
lim_apply_configuration(mac_ctx, session);
|
lim_apply_configuration(mac_ctx, session);
|
||||||
|
|
||||||
/* store the channel switch sessionEntry in the lim global var */
|
/* store the channel switch pe_session in the lim global var */
|
||||||
session->channelChangeReasonCode =
|
session->channelChangeReasonCode =
|
||||||
LIM_SWITCH_CHANNEL_REASSOC;
|
LIM_SWITCH_CHANNEL_REASSOC;
|
||||||
|
|
||||||
@@ -165,7 +165,7 @@ end:
|
|||||||
* @mac: Global MAC Context
|
* @mac: Global MAC Context
|
||||||
* @resultCode: Result code
|
* @resultCode: Result code
|
||||||
* @protStatusCode: Protocol Status Code
|
* @protStatusCode: Protocol Status Code
|
||||||
* @psessionEntry: PE Session
|
* @pe_session: PE Session
|
||||||
*
|
*
|
||||||
* This function is called to process reassoc failures
|
* This function is called to process reassoc failures
|
||||||
* upon receiving REASSOC_CNF with a failure code or
|
* upon receiving REASSOC_CNF with a failure code or
|
||||||
@@ -175,22 +175,22 @@ end:
|
|||||||
*/
|
*/
|
||||||
static void lim_handle_sme_reaasoc_result(tpAniSirGlobal mac,
|
static void lim_handle_sme_reaasoc_result(tpAniSirGlobal mac,
|
||||||
tSirResultCodes resultCode, uint16_t protStatusCode,
|
tSirResultCodes resultCode, uint16_t protStatusCode,
|
||||||
struct pe_session *psessionEntry)
|
struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
tpDphHashNode pStaDs = NULL;
|
tpDphHashNode pStaDs = NULL;
|
||||||
uint8_t smesessionId;
|
uint8_t smesessionId;
|
||||||
uint16_t smetransactionId;
|
uint16_t smetransactionId;
|
||||||
|
|
||||||
if (psessionEntry == NULL) {
|
if (pe_session == NULL) {
|
||||||
pe_err("psessionEntry is NULL");
|
pe_err("pe_session is NULL");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
smesessionId = psessionEntry->smeSessionId;
|
smesessionId = pe_session->smeSessionId;
|
||||||
smetransactionId = psessionEntry->transactionId;
|
smetransactionId = pe_session->transactionId;
|
||||||
if (resultCode != eSIR_SME_SUCCESS) {
|
if (resultCode != eSIR_SME_SUCCESS) {
|
||||||
pStaDs =
|
pStaDs =
|
||||||
dph_get_hash_entry(mac, DPH_STA_HASH_INDEX_PEER,
|
dph_get_hash_entry(mac, DPH_STA_HASH_INDEX_PEER,
|
||||||
&psessionEntry->dph.dphHashTable);
|
&pe_session->dph.dphHashTable);
|
||||||
if (pStaDs != NULL) {
|
if (pStaDs != NULL) {
|
||||||
pStaDs->mlmStaContext.disassocReason =
|
pStaDs->mlmStaContext.disassocReason =
|
||||||
eSIR_MAC_UNSPEC_FAILURE_REASON;
|
eSIR_MAC_UNSPEC_FAILURE_REASON;
|
||||||
@@ -198,12 +198,12 @@ static void lim_handle_sme_reaasoc_result(tpAniSirGlobal mac,
|
|||||||
eLIM_JOIN_FAILURE;
|
eLIM_JOIN_FAILURE;
|
||||||
pStaDs->mlmStaContext.resultCode = resultCode;
|
pStaDs->mlmStaContext.resultCode = resultCode;
|
||||||
pStaDs->mlmStaContext.protStatusCode = protStatusCode;
|
pStaDs->mlmStaContext.protStatusCode = protStatusCode;
|
||||||
lim_cleanup_rx_path(mac, pStaDs, psessionEntry);
|
lim_cleanup_rx_path(mac, pStaDs, pe_session);
|
||||||
/* Cleanup if add bss failed */
|
/* Cleanup if add bss failed */
|
||||||
if (psessionEntry->add_bss_failed) {
|
if (pe_session->add_bss_failed) {
|
||||||
dph_delete_hash_entry(mac,
|
dph_delete_hash_entry(mac,
|
||||||
pStaDs->staAddr, pStaDs->assocId,
|
pStaDs->staAddr, pStaDs->assocId,
|
||||||
&psessionEntry->dph.dphHashTable);
|
&pe_session->dph.dphHashTable);
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
@@ -212,13 +212,13 @@ static void lim_handle_sme_reaasoc_result(tpAniSirGlobal mac,
|
|||||||
error:
|
error:
|
||||||
/* Delete the session if REASSOC failure occurred. */
|
/* Delete the session if REASSOC failure occurred. */
|
||||||
if (resultCode != eSIR_SME_SUCCESS) {
|
if (resultCode != eSIR_SME_SUCCESS) {
|
||||||
if (NULL != psessionEntry) {
|
if (NULL != pe_session) {
|
||||||
pe_delete_session(mac, psessionEntry);
|
pe_delete_session(mac, pe_session);
|
||||||
psessionEntry = NULL;
|
pe_session = NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
lim_send_sme_join_reassoc_rsp(mac, eWNI_SME_REASSOC_RSP, resultCode,
|
lim_send_sme_join_reassoc_rsp(mac, eWNI_SME_REASSOC_RSP, resultCode,
|
||||||
protStatusCode, psessionEntry, smesessionId, smetransactionId);
|
protStatusCode, pe_session, smesessionId, smetransactionId);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -339,7 +339,7 @@ void lim_process_mlm_reassoc_cnf(tpAniSirGlobal mac_ctx, uint32_t *msg_buf)
|
|||||||
* lim_process_sta_mlm_add_bss_rsp_ft() - Handle the ADD BSS response
|
* lim_process_sta_mlm_add_bss_rsp_ft() - Handle the ADD BSS response
|
||||||
* @mac: Global MAC context
|
* @mac: Global MAC context
|
||||||
* @limMsgQ: ADD BSS Parameters
|
* @limMsgQ: ADD BSS Parameters
|
||||||
* @psessionEntry: PE Session
|
* @pe_session: PE Session
|
||||||
*
|
*
|
||||||
* Function to handle WMA_ADD_BSS_RSP, in FT reassoc state.
|
* Function to handle WMA_ADD_BSS_RSP, in FT reassoc state.
|
||||||
* Send ReAssociation Request.
|
* Send ReAssociation Request.
|
||||||
@@ -347,7 +347,7 @@ void lim_process_mlm_reassoc_cnf(tpAniSirGlobal mac_ctx, uint32_t *msg_buf)
|
|||||||
*Return: None
|
*Return: None
|
||||||
*/
|
*/
|
||||||
void lim_process_sta_mlm_add_bss_rsp_ft(tpAniSirGlobal mac,
|
void lim_process_sta_mlm_add_bss_rsp_ft(tpAniSirGlobal mac,
|
||||||
struct scheduler_msg *limMsgQ, struct pe_session *psessionEntry)
|
struct scheduler_msg *limMsgQ, struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
tLimMlmReassocCnf mlmReassocCnf; /* keep sme */
|
tLimMlmReassocCnf mlmReassocCnf; /* keep sme */
|
||||||
tpDphHashNode pStaDs = NULL;
|
tpDphHashNode pStaDs = NULL;
|
||||||
@@ -363,13 +363,13 @@ void lim_process_sta_mlm_add_bss_rsp_ft(tpAniSirGlobal mac,
|
|||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
if (eLIM_MLM_WT_ADD_BSS_RSP_FT_REASSOC_STATE !=
|
if (eLIM_MLM_WT_ADD_BSS_RSP_FT_REASSOC_STATE !=
|
||||||
psessionEntry->limMlmState) {
|
pe_session->limMlmState) {
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
|
|
||||||
pStaDs = dph_add_hash_entry(mac, pAddBssParams->bssId,
|
pStaDs = dph_add_hash_entry(mac, pAddBssParams->bssId,
|
||||||
DPH_STA_HASH_INDEX_PEER,
|
DPH_STA_HASH_INDEX_PEER,
|
||||||
&psessionEntry->dph.dphHashTable);
|
&pe_session->dph.dphHashTable);
|
||||||
if (pStaDs == NULL) {
|
if (pStaDs == NULL) {
|
||||||
/* Could not add hash table entry */
|
/* Could not add hash table entry */
|
||||||
pe_err("could not add hash entry at DPH for");
|
pe_err("could not add hash entry at DPH for");
|
||||||
@@ -380,14 +380,14 @@ void lim_process_sta_mlm_add_bss_rsp_ft(tpAniSirGlobal mac,
|
|||||||
/* Prepare and send Reassociation request frame */
|
/* Prepare and send Reassociation request frame */
|
||||||
/* start reassoc timer. */
|
/* start reassoc timer. */
|
||||||
#ifdef WLAN_FEATURE_ROAM_OFFLOAD
|
#ifdef WLAN_FEATURE_ROAM_OFFLOAD
|
||||||
if (psessionEntry->bRoamSynchInProgress != true) {
|
if (pe_session->bRoamSynchInProgress != true) {
|
||||||
#endif
|
#endif
|
||||||
mac->lim.limTimers.gLimReassocFailureTimer.sessionId =
|
mac->lim.limTimers.gLimReassocFailureTimer.sessionId =
|
||||||
psessionEntry->peSessionId;
|
pe_session->peSessionId;
|
||||||
/* / Start reassociation failure timer */
|
/* / Start reassociation failure timer */
|
||||||
MTRACE(mac_trace
|
MTRACE(mac_trace
|
||||||
(mac, TRACE_CODE_TIMER_ACTIVATE,
|
(mac, TRACE_CODE_TIMER_ACTIVATE,
|
||||||
psessionEntry->peSessionId, eLIM_REASSOC_FAIL_TIMER));
|
pe_session->peSessionId, eLIM_REASSOC_FAIL_TIMER));
|
||||||
if (tx_timer_activate
|
if (tx_timer_activate
|
||||||
(&mac->lim.limTimers.gLimReassocFailureTimer)
|
(&mac->lim.limTimers.gLimReassocFailureTimer)
|
||||||
!= TX_SUCCESS) {
|
!= TX_SUCCESS) {
|
||||||
@@ -402,37 +402,37 @@ void lim_process_sta_mlm_add_bss_rsp_ft(tpAniSirGlobal mac,
|
|||||||
eSIR_MAC_UNSPEC_FAILURE_STATUS;
|
eSIR_MAC_UNSPEC_FAILURE_STATUS;
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
mac->lim.pSessionEntry = psessionEntry;
|
mac->lim.pe_session = pe_session;
|
||||||
if (NULL == mac->lim.pSessionEntry->pLimMlmReassocRetryReq) {
|
if (NULL == mac->lim.pe_session->pLimMlmReassocRetryReq) {
|
||||||
/* Take a copy of reassoc request for retrying */
|
/* Take a copy of reassoc request for retrying */
|
||||||
mac->lim.pSessionEntry->pLimMlmReassocRetryReq =
|
mac->lim.pe_session->pLimMlmReassocRetryReq =
|
||||||
qdf_mem_malloc(sizeof(tLimMlmReassocReq));
|
qdf_mem_malloc(sizeof(tLimMlmReassocReq));
|
||||||
if (!mac->lim.pSessionEntry->pLimMlmReassocRetryReq)
|
if (!mac->lim.pe_session->pLimMlmReassocRetryReq)
|
||||||
goto end;
|
goto end;
|
||||||
qdf_mem_copy(mac->lim.pSessionEntry->
|
qdf_mem_copy(mac->lim.pe_session->
|
||||||
pLimMlmReassocRetryReq,
|
pLimMlmReassocRetryReq,
|
||||||
psessionEntry->pLimMlmReassocReq,
|
pe_session->pLimMlmReassocReq,
|
||||||
sizeof(tLimMlmReassocReq));
|
sizeof(tLimMlmReassocReq));
|
||||||
}
|
}
|
||||||
mac->lim.reAssocRetryAttempt = 0;
|
mac->lim.reAssocRetryAttempt = 0;
|
||||||
lim_send_reassoc_req_with_ft_ies_mgmt_frame(mac,
|
lim_send_reassoc_req_with_ft_ies_mgmt_frame(mac,
|
||||||
psessionEntry->
|
pe_session->
|
||||||
pLimMlmReassocReq,
|
pLimMlmReassocReq,
|
||||||
psessionEntry);
|
pe_session);
|
||||||
#ifdef WLAN_FEATURE_ROAM_OFFLOAD
|
#ifdef WLAN_FEATURE_ROAM_OFFLOAD
|
||||||
} else {
|
} else {
|
||||||
pe_debug("LFR3:Do not activate timer and dont send the reassoc");
|
pe_debug("LFR3:Do not activate timer and dont send the reassoc");
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
psessionEntry->limPrevMlmState = psessionEntry->limMlmState;
|
pe_session->limPrevMlmState = pe_session->limMlmState;
|
||||||
psessionEntry->limMlmState = eLIM_MLM_WT_FT_REASSOC_RSP_STATE;
|
pe_session->limMlmState = eLIM_MLM_WT_FT_REASSOC_RSP_STATE;
|
||||||
MTRACE(mac_trace
|
MTRACE(mac_trace
|
||||||
(mac, TRACE_CODE_MLM_STATE, psessionEntry->peSessionId,
|
(mac, TRACE_CODE_MLM_STATE, pe_session->peSessionId,
|
||||||
eLIM_MLM_WT_FT_REASSOC_RSP_STATE));
|
eLIM_MLM_WT_FT_REASSOC_RSP_STATE));
|
||||||
pe_debug("Set the mlm state: %d session: %d",
|
pe_debug("Set the mlm state: %d session: %d",
|
||||||
psessionEntry->limMlmState, psessionEntry->peSessionId);
|
pe_session->limMlmState, pe_session->peSessionId);
|
||||||
|
|
||||||
psessionEntry->bssIdx = (uint8_t) pAddBssParams->bssIdx;
|
pe_session->bssIdx = (uint8_t) pAddBssParams->bssIdx;
|
||||||
|
|
||||||
/* Success, handle below */
|
/* Success, handle below */
|
||||||
pStaDs->bssId = pAddBssParams->bssIdx;
|
pStaDs->bssId = pAddBssParams->bssIdx;
|
||||||
@@ -440,7 +440,7 @@ void lim_process_sta_mlm_add_bss_rsp_ft(tpAniSirGlobal mac,
|
|||||||
pStaDs->staIndex = pAddBssParams->staContext.staIdx;
|
pStaDs->staIndex = pAddBssParams->staContext.staIdx;
|
||||||
|
|
||||||
rrm_cache_mgmt_tx_power(mac, pAddBssParams->txMgmtPower,
|
rrm_cache_mgmt_tx_power(mac, pAddBssParams->txMgmtPower,
|
||||||
psessionEntry);
|
pe_session);
|
||||||
|
|
||||||
pAddStaParams = qdf_mem_malloc(sizeof(tAddStaParams));
|
pAddStaParams = qdf_mem_malloc(sizeof(tAddStaParams));
|
||||||
if (!pAddStaParams)
|
if (!pAddStaParams)
|
||||||
@@ -448,80 +448,80 @@ void lim_process_sta_mlm_add_bss_rsp_ft(tpAniSirGlobal mac,
|
|||||||
|
|
||||||
/* / Add STA context at MAC HW (BMU, RHP & TFP) */
|
/* / Add STA context at MAC HW (BMU, RHP & TFP) */
|
||||||
qdf_mem_copy((uint8_t *) pAddStaParams->staMac,
|
qdf_mem_copy((uint8_t *) pAddStaParams->staMac,
|
||||||
(uint8_t *) psessionEntry->selfMacAddr,
|
(uint8_t *) pe_session->selfMacAddr,
|
||||||
sizeof(tSirMacAddr));
|
sizeof(tSirMacAddr));
|
||||||
|
|
||||||
qdf_mem_copy((uint8_t *) pAddStaParams->bssId,
|
qdf_mem_copy((uint8_t *) pAddStaParams->bssId,
|
||||||
psessionEntry->bssId, sizeof(tSirMacAddr));
|
pe_session->bssId, sizeof(tSirMacAddr));
|
||||||
|
|
||||||
pAddStaParams->staType = STA_ENTRY_SELF;
|
pAddStaParams->staType = STA_ENTRY_SELF;
|
||||||
pAddStaParams->status = QDF_STATUS_SUCCESS;
|
pAddStaParams->status = QDF_STATUS_SUCCESS;
|
||||||
pAddStaParams->respReqd = 1;
|
pAddStaParams->respReqd = 1;
|
||||||
|
|
||||||
/* Update PE session ID */
|
/* Update PE session ID */
|
||||||
pAddStaParams->sessionId = psessionEntry->peSessionId;
|
pAddStaParams->sessionId = pe_session->peSessionId;
|
||||||
pAddStaParams->smesessionId = psessionEntry->smeSessionId;
|
pAddStaParams->smesessionId = pe_session->smeSessionId;
|
||||||
|
|
||||||
/* This will indicate HAL to "allocate" a new STA index */
|
/* This will indicate HAL to "allocate" a new STA index */
|
||||||
#ifdef WLAN_FEATURE_ROAM_OFFLOAD
|
#ifdef WLAN_FEATURE_ROAM_OFFLOAD
|
||||||
if (psessionEntry->bRoamSynchInProgress != true)
|
if (pe_session->bRoamSynchInProgress != true)
|
||||||
#endif
|
#endif
|
||||||
pAddStaParams->staIdx = STA_INVALID_IDX;
|
pAddStaParams->staIdx = STA_INVALID_IDX;
|
||||||
pAddStaParams->updateSta = false;
|
pAddStaParams->updateSta = false;
|
||||||
|
|
||||||
pAddStaParams->shortPreambleSupported =
|
pAddStaParams->shortPreambleSupported =
|
||||||
(uint8_t) psessionEntry->beaconParams.fShortPreamble;
|
(uint8_t) pe_session->beaconParams.fShortPreamble;
|
||||||
lim_populate_peer_rate_set(mac, &pAddStaParams->supportedRates, NULL,
|
lim_populate_peer_rate_set(mac, &pAddStaParams->supportedRates, NULL,
|
||||||
false, psessionEntry, NULL, NULL);
|
false, pe_session, NULL, NULL);
|
||||||
|
|
||||||
if (psessionEntry->htCapability) {
|
if (pe_session->htCapability) {
|
||||||
pAddStaParams->htCapable = psessionEntry->htCapability;
|
pAddStaParams->htCapable = pe_session->htCapability;
|
||||||
pAddStaParams->vhtCapable = psessionEntry->vhtCapability;
|
pAddStaParams->vhtCapable = pe_session->vhtCapability;
|
||||||
pAddStaParams->ch_width = psessionEntry->ch_width;
|
pAddStaParams->ch_width = pe_session->ch_width;
|
||||||
pAddStaParams->greenFieldCapable =
|
pAddStaParams->greenFieldCapable =
|
||||||
lim_get_ht_capability(mac, eHT_GREENFIELD,
|
lim_get_ht_capability(mac, eHT_GREENFIELD,
|
||||||
psessionEntry);
|
pe_session);
|
||||||
pAddStaParams->mimoPS =
|
pAddStaParams->mimoPS =
|
||||||
lim_get_ht_capability(mac, eHT_MIMO_POWER_SAVE,
|
lim_get_ht_capability(mac, eHT_MIMO_POWER_SAVE,
|
||||||
psessionEntry);
|
pe_session);
|
||||||
pAddStaParams->rifsMode =
|
pAddStaParams->rifsMode =
|
||||||
lim_get_ht_capability(mac, eHT_RIFS_MODE,
|
lim_get_ht_capability(mac, eHT_RIFS_MODE,
|
||||||
psessionEntry);
|
pe_session);
|
||||||
pAddStaParams->lsigTxopProtection =
|
pAddStaParams->lsigTxopProtection =
|
||||||
lim_get_ht_capability(mac, eHT_LSIG_TXOP_PROTECTION,
|
lim_get_ht_capability(mac, eHT_LSIG_TXOP_PROTECTION,
|
||||||
psessionEntry);
|
pe_session);
|
||||||
pAddStaParams->maxAmpduDensity =
|
pAddStaParams->maxAmpduDensity =
|
||||||
lim_get_ht_capability(mac, eHT_MPDU_DENSITY,
|
lim_get_ht_capability(mac, eHT_MPDU_DENSITY,
|
||||||
psessionEntry);
|
pe_session);
|
||||||
pAddStaParams->maxAmpduSize =
|
pAddStaParams->maxAmpduSize =
|
||||||
lim_get_ht_capability(mac, eHT_MAX_RX_AMPDU_FACTOR,
|
lim_get_ht_capability(mac, eHT_MAX_RX_AMPDU_FACTOR,
|
||||||
psessionEntry);
|
pe_session);
|
||||||
pAddStaParams->maxAmsduSize =
|
pAddStaParams->maxAmsduSize =
|
||||||
lim_get_ht_capability(mac, eHT_MAX_AMSDU_LENGTH,
|
lim_get_ht_capability(mac, eHT_MAX_AMSDU_LENGTH,
|
||||||
psessionEntry);
|
pe_session);
|
||||||
pAddStaParams->max_amsdu_num =
|
pAddStaParams->max_amsdu_num =
|
||||||
lim_get_ht_capability(mac, eHT_MAX_AMSDU_NUM,
|
lim_get_ht_capability(mac, eHT_MAX_AMSDU_NUM,
|
||||||
psessionEntry);
|
pe_session);
|
||||||
pAddStaParams->fDsssCckMode40Mhz =
|
pAddStaParams->fDsssCckMode40Mhz =
|
||||||
lim_get_ht_capability(mac, eHT_DSSS_CCK_MODE_40MHZ,
|
lim_get_ht_capability(mac, eHT_DSSS_CCK_MODE_40MHZ,
|
||||||
psessionEntry);
|
pe_session);
|
||||||
pAddStaParams->fShortGI20Mhz =
|
pAddStaParams->fShortGI20Mhz =
|
||||||
lim_get_ht_capability(mac, eHT_SHORT_GI_20MHZ,
|
lim_get_ht_capability(mac, eHT_SHORT_GI_20MHZ,
|
||||||
psessionEntry);
|
pe_session);
|
||||||
pAddStaParams->fShortGI40Mhz =
|
pAddStaParams->fShortGI40Mhz =
|
||||||
lim_get_ht_capability(mac, eHT_SHORT_GI_40MHZ,
|
lim_get_ht_capability(mac, eHT_SHORT_GI_40MHZ,
|
||||||
psessionEntry);
|
pe_session);
|
||||||
}
|
}
|
||||||
|
|
||||||
listenInterval = mac->mlme_cfg->sap_cfg.listen_interval;
|
listenInterval = mac->mlme_cfg->sap_cfg.listen_interval;
|
||||||
pAddStaParams->listenInterval = (uint16_t) listenInterval;
|
pAddStaParams->listenInterval = (uint16_t) listenInterval;
|
||||||
|
|
||||||
wlan_cfg_get_int(mac, WNI_CFG_DOT11_MODE, &selfStaDot11Mode);
|
wlan_cfg_get_int(mac, WNI_CFG_DOT11_MODE, &selfStaDot11Mode);
|
||||||
pAddStaParams->encryptType = psessionEntry->encryptType;
|
pAddStaParams->encryptType = pe_session->encryptType;
|
||||||
pAddStaParams->maxTxPower = psessionEntry->maxTxPower;
|
pAddStaParams->maxTxPower = pe_session->maxTxPower;
|
||||||
|
|
||||||
/* Lets save this for when we receive the Reassoc Rsp */
|
/* Lets save this for when we receive the Reassoc Rsp */
|
||||||
psessionEntry->ftPEContext.pAddStaReq = pAddStaParams;
|
pe_session->ftPEContext.pAddStaReq = pAddStaParams;
|
||||||
|
|
||||||
if (pAddBssParams != NULL) {
|
if (pAddBssParams != NULL) {
|
||||||
qdf_mem_free(pAddBssParams);
|
qdf_mem_free(pAddBssParams);
|
||||||
@@ -529,20 +529,20 @@ void lim_process_sta_mlm_add_bss_rsp_ft(tpAniSirGlobal mac,
|
|||||||
limMsgQ->bodyptr = NULL;
|
limMsgQ->bodyptr = NULL;
|
||||||
}
|
}
|
||||||
#ifdef WLAN_FEATURE_ROAM_OFFLOAD
|
#ifdef WLAN_FEATURE_ROAM_OFFLOAD
|
||||||
if (psessionEntry->bRoamSynchInProgress) {
|
if (pe_session->bRoamSynchInProgress) {
|
||||||
pe_debug("LFR3:Prep and save AddStaReq for post-assoc-rsp");
|
pe_debug("LFR3:Prep and save AddStaReq for post-assoc-rsp");
|
||||||
lim_process_assoc_rsp_frame(mac, mac->roam.pReassocResp,
|
lim_process_assoc_rsp_frame(mac, mac->roam.pReassocResp,
|
||||||
LIM_REASSOC, psessionEntry);
|
LIM_REASSOC, pe_session);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
return;
|
return;
|
||||||
|
|
||||||
end:
|
end:
|
||||||
/* Free up buffer allocated for reassocReq */
|
/* Free up buffer allocated for reassocReq */
|
||||||
if (psessionEntry != NULL)
|
if (pe_session != NULL)
|
||||||
if (psessionEntry->pLimMlmReassocReq != NULL) {
|
if (pe_session->pLimMlmReassocReq != NULL) {
|
||||||
qdf_mem_free(psessionEntry->pLimMlmReassocReq);
|
qdf_mem_free(pe_session->pLimMlmReassocReq);
|
||||||
psessionEntry->pLimMlmReassocReq = NULL;
|
pe_session->pLimMlmReassocReq = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pAddBssParams != NULL) {
|
if (pAddBssParams != NULL) {
|
||||||
@@ -554,8 +554,8 @@ end:
|
|||||||
mlmReassocCnf.resultCode = eSIR_SME_FT_REASSOC_FAILURE;
|
mlmReassocCnf.resultCode = eSIR_SME_FT_REASSOC_FAILURE;
|
||||||
mlmReassocCnf.protStatusCode = eSIR_MAC_UNSPEC_FAILURE_STATUS;
|
mlmReassocCnf.protStatusCode = eSIR_MAC_UNSPEC_FAILURE_STATUS;
|
||||||
/* Update PE session Id */
|
/* Update PE session Id */
|
||||||
if (psessionEntry != NULL)
|
if (pe_session != NULL)
|
||||||
mlmReassocCnf.sessionId = psessionEntry->peSessionId;
|
mlmReassocCnf.sessionId = pe_session->peSessionId;
|
||||||
else
|
else
|
||||||
mlmReassocCnf.sessionId = 0;
|
mlmReassocCnf.sessionId = 0;
|
||||||
|
|
||||||
@@ -595,7 +595,7 @@ void lim_process_mlm_ft_reassoc_req(tpAniSirGlobal mac,
|
|||||||
|
|
||||||
/* Nothing to be done if the session is not in STA mode */
|
/* Nothing to be done if the session is not in STA mode */
|
||||||
if (!LIM_IS_STA_ROLE(session)) {
|
if (!LIM_IS_STA_ROLE(session)) {
|
||||||
pe_err("psessionEntry is not in STA mode");
|
pe_err("pe_session is not in STA mode");
|
||||||
qdf_mem_free(reassoc_req);
|
qdf_mem_free(reassoc_req);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2325,7 +2325,7 @@ static void lim_process_auth_retry_timer(tpAniSirGlobal mac_ctx)
|
|||||||
|
|
||||||
void lim_process_auth_failure_timeout(tpAniSirGlobal mac_ctx)
|
void lim_process_auth_failure_timeout(tpAniSirGlobal mac_ctx)
|
||||||
{
|
{
|
||||||
/* fetch the sessionEntry based on the sessionId */
|
/* fetch the pe_session based on the sessionId */
|
||||||
struct pe_session *session;
|
struct pe_session *session;
|
||||||
uint32_t val;
|
uint32_t val;
|
||||||
#ifdef FEATURE_WLAN_DIAG_SUPPORT_LIM
|
#ifdef FEATURE_WLAN_DIAG_SUPPORT_LIM
|
||||||
@@ -2457,7 +2457,7 @@ void lim_process_assoc_failure_timeout(tpAniSirGlobal mac_ctx,
|
|||||||
#endif
|
#endif
|
||||||
/*
|
/*
|
||||||
* to fetch the lim/mlm state based on the session_id, use the
|
* to fetch the lim/mlm state based on the session_id, use the
|
||||||
* below sessionEntry
|
* below pe_session
|
||||||
*/
|
*/
|
||||||
uint8_t session_id;
|
uint8_t session_id;
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -46,7 +46,7 @@ void
|
|||||||
lim_send_sme_probe_req_ind(tpAniSirGlobal mac,
|
lim_send_sme_probe_req_ind(tpAniSirGlobal mac,
|
||||||
tSirMacAddr peerMacAddr,
|
tSirMacAddr peerMacAddr,
|
||||||
uint8_t *pProbeReqIE,
|
uint8_t *pProbeReqIE,
|
||||||
uint32_t ProbeReqIELen, struct pe_session *psessionEntry);
|
uint32_t ProbeReqIELen, struct pe_session *pe_session);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* lim_get_wpspbc_sessions() - to get wps pbs sessions
|
* lim_get_wpspbc_sessions() - to get wps pbs sessions
|
||||||
@@ -176,14 +176,14 @@ void lim_remove_pbc_sessions(tpAniSirGlobal mac, struct qdf_mac_addr remove_mac,
|
|||||||
* @param mac Pointer to Global MAC structure
|
* @param mac Pointer to Global MAC structure
|
||||||
* @param addr A pointer to probe request source MAC address
|
* @param addr A pointer to probe request source MAC address
|
||||||
* @param uuid_e A pointer to UUIDE element of WPS IE
|
* @param uuid_e A pointer to UUIDE element of WPS IE
|
||||||
* @param psessionEntry A pointer to station PE session
|
* @param pe_session A pointer to station PE session
|
||||||
*
|
*
|
||||||
* @return None
|
* @return None
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static void lim_update_pbc_session_entry(tpAniSirGlobal mac,
|
static void lim_update_pbc_session_entry(tpAniSirGlobal mac,
|
||||||
uint8_t *addr, uint8_t *uuid_e,
|
uint8_t *addr, uint8_t *uuid_e,
|
||||||
struct pe_session *psessionEntry)
|
struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
tSirWPSPBCSession *pbc, *prev = NULL;
|
tSirWPSPBCSession *pbc, *prev = NULL;
|
||||||
|
|
||||||
@@ -199,7 +199,7 @@ static void lim_update_pbc_session_entry(tpAniSirGlobal mac,
|
|||||||
QDF_TRACE_HEX_DUMP(QDF_MODULE_ID_PE, QDF_TRACE_LEVEL_DEBUG,
|
QDF_TRACE_HEX_DUMP(QDF_MODULE_ID_PE, QDF_TRACE_LEVEL_DEBUG,
|
||||||
uuid_e, SIR_WPS_UUID_LEN);
|
uuid_e, SIR_WPS_UUID_LEN);
|
||||||
|
|
||||||
pbc = psessionEntry->pAPWPSPBCSession;
|
pbc = pe_session->pAPWPSPBCSession;
|
||||||
|
|
||||||
while (pbc) {
|
while (pbc) {
|
||||||
if ((!qdf_mem_cmp
|
if ((!qdf_mem_cmp
|
||||||
@@ -210,7 +210,7 @@ static void lim_update_pbc_session_entry(tpAniSirGlobal mac,
|
|||||||
if (prev)
|
if (prev)
|
||||||
prev->next = pbc->next;
|
prev->next = pbc->next;
|
||||||
else
|
else
|
||||||
psessionEntry->pAPWPSPBCSession = pbc->next;
|
pe_session->pAPWPSPBCSession = pbc->next;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
prev = pbc;
|
prev = pbc;
|
||||||
@@ -229,8 +229,8 @@ static void lim_update_pbc_session_entry(tpAniSirGlobal mac,
|
|||||||
(uint8_t *) uuid_e, SIR_WPS_UUID_LEN);
|
(uint8_t *) uuid_e, SIR_WPS_UUID_LEN);
|
||||||
}
|
}
|
||||||
|
|
||||||
pbc->next = psessionEntry->pAPWPSPBCSession;
|
pbc->next = pe_session->pAPWPSPBCSession;
|
||||||
psessionEntry->pAPWPSPBCSession = pbc;
|
pe_session->pAPWPSPBCSession = pbc;
|
||||||
pbc->timestamp = curTime;
|
pbc->timestamp = curTime;
|
||||||
|
|
||||||
/* remove entries that have timed out */
|
/* remove entries that have timed out */
|
||||||
@@ -263,15 +263,15 @@ static void lim_update_pbc_session_entry(tpAniSirGlobal mac,
|
|||||||
***NOTE:
|
***NOTE:
|
||||||
*
|
*
|
||||||
* @param mac Pointer to Global MAC structure
|
* @param mac Pointer to Global MAC structure
|
||||||
* @param psessionEntry A pointer to station PE session
|
* @param pe_session A pointer to station PE session
|
||||||
*
|
*
|
||||||
* @return None
|
* @return None
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void lim_wpspbc_close(tpAniSirGlobal mac, struct pe_session *psessionEntry)
|
void lim_wpspbc_close(tpAniSirGlobal mac, struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
|
|
||||||
lim_remove_timeout_pbc_sessions(mac, psessionEntry->pAPWPSPBCSession);
|
lim_remove_timeout_pbc_sessions(mac, pe_session->pAPWPSPBCSession);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -526,14 +526,14 @@ multipleSSIDcheck:
|
|||||||
*
|
*
|
||||||
* @param mac Pointer to Global MAC structure
|
* @param mac Pointer to Global MAC structure
|
||||||
* @param *pBd A pointer to Buffer descriptor + associated PDUs
|
* @param *pBd A pointer to Buffer descriptor + associated PDUs
|
||||||
* @param psessionEntry A pointer to PE session
|
* @param pe_session A pointer to PE session
|
||||||
*
|
*
|
||||||
* @return None
|
* @return None
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static void
|
static void
|
||||||
lim_indicate_probe_req_to_hdd(tpAniSirGlobal mac, uint8_t *pBd,
|
lim_indicate_probe_req_to_hdd(tpAniSirGlobal mac, uint8_t *pBd,
|
||||||
struct pe_session *psessionEntry)
|
struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
tpSirMacMgmtHdr pHdr;
|
tpSirMacMgmtHdr pHdr;
|
||||||
uint32_t frameLen;
|
uint32_t frameLen;
|
||||||
@@ -547,8 +547,8 @@ lim_indicate_probe_req_to_hdd(tpAniSirGlobal mac, uint8_t *pBd,
|
|||||||
lim_send_sme_mgmt_frame_ind(mac, pHdr->fc.subType,
|
lim_send_sme_mgmt_frame_ind(mac, pHdr->fc.subType,
|
||||||
(uint8_t *) pHdr,
|
(uint8_t *) pHdr,
|
||||||
(frameLen + sizeof(tSirMacMgmtHdr)),
|
(frameLen + sizeof(tSirMacMgmtHdr)),
|
||||||
psessionEntry->smeSessionId, WMA_GET_RX_CH(pBd),
|
pe_session->smeSessionId, WMA_GET_RX_CH(pBd),
|
||||||
psessionEntry,
|
pe_session,
|
||||||
WMA_GET_RX_RSSI_NORMALIZED(pBd));
|
WMA_GET_RX_RSSI_NORMALIZED(pBd));
|
||||||
} /*** end lim_indicate_probe_req_to_hdd() ***/
|
} /*** end lim_indicate_probe_req_to_hdd() ***/
|
||||||
|
|
||||||
@@ -618,7 +618,7 @@ lim_process_probe_req_frame_multiple_bss(tpAniSirGlobal mac_ctx,
|
|||||||
* is generated.
|
* is generated.
|
||||||
* @param pProbeReqIE pointer to RAW probe request IE
|
* @param pProbeReqIE pointer to RAW probe request IE
|
||||||
* @param ProbeReqIELen The length of probe request IE.
|
* @param ProbeReqIELen The length of probe request IE.
|
||||||
* @param psessionEntry A pointer to PE session
|
* @param pe_session A pointer to PE session
|
||||||
*
|
*
|
||||||
* @return None
|
* @return None
|
||||||
*/
|
*/
|
||||||
@@ -626,7 +626,7 @@ void
|
|||||||
lim_send_sme_probe_req_ind(tpAniSirGlobal mac,
|
lim_send_sme_probe_req_ind(tpAniSirGlobal mac,
|
||||||
tSirMacAddr peerMacAddr,
|
tSirMacAddr peerMacAddr,
|
||||||
uint8_t *pProbeReqIE,
|
uint8_t *pProbeReqIE,
|
||||||
uint32_t ProbeReqIELen, struct pe_session *psessionEntry)
|
uint32_t ProbeReqIELen, struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
tSirSmeProbeReqInd *pSirSmeProbeReqInd;
|
tSirSmeProbeReqInd *pSirSmeProbeReqInd;
|
||||||
struct scheduler_msg msgQ = {0};
|
struct scheduler_msg msgQ = {0};
|
||||||
@@ -641,15 +641,15 @@ lim_send_sme_probe_req_ind(tpAniSirGlobal mac,
|
|||||||
|
|
||||||
pSirSmeProbeReqInd->messageType = eWNI_SME_WPS_PBC_PROBE_REQ_IND;
|
pSirSmeProbeReqInd->messageType = eWNI_SME_WPS_PBC_PROBE_REQ_IND;
|
||||||
pSirSmeProbeReqInd->length = sizeof(tSirSmeProbeReq);
|
pSirSmeProbeReqInd->length = sizeof(tSirSmeProbeReq);
|
||||||
pSirSmeProbeReqInd->sessionId = psessionEntry->smeSessionId;
|
pSirSmeProbeReqInd->sessionId = pe_session->smeSessionId;
|
||||||
|
|
||||||
qdf_mem_copy(pSirSmeProbeReqInd->bssid.bytes, psessionEntry->bssId,
|
qdf_mem_copy(pSirSmeProbeReqInd->bssid.bytes, pe_session->bssId,
|
||||||
QDF_MAC_ADDR_SIZE);
|
QDF_MAC_ADDR_SIZE);
|
||||||
qdf_mem_copy(pSirSmeProbeReqInd->WPSPBCProbeReq.peer_macaddr.bytes,
|
qdf_mem_copy(pSirSmeProbeReqInd->WPSPBCProbeReq.peer_macaddr.bytes,
|
||||||
peerMacAddr, QDF_MAC_ADDR_SIZE);
|
peerMacAddr, QDF_MAC_ADDR_SIZE);
|
||||||
|
|
||||||
MTRACE(mac_trace(mac, TRACE_CODE_TX_SME_MSG,
|
MTRACE(mac_trace(mac, TRACE_CODE_TX_SME_MSG,
|
||||||
psessionEntry->peSessionId, msgQ.type));
|
pe_session->peSessionId, msgQ.type));
|
||||||
|
|
||||||
if (ProbeReqIELen > sizeof(pSirSmeProbeReqInd->WPSPBCProbeReq.
|
if (ProbeReqIELen > sizeof(pSirSmeProbeReqInd->WPSPBCProbeReq.
|
||||||
probeReqIE)) {
|
probeReqIE)) {
|
||||||
|
|||||||
@@ -2139,7 +2139,7 @@ static void __lim_process_sme_disassoc_req(tpAniSirGlobal mac, uint32_t *pMsgBuf
|
|||||||
tLimMlmDisassocReq *pMlmDisassocReq;
|
tLimMlmDisassocReq *pMlmDisassocReq;
|
||||||
tSirResultCodes retCode = eSIR_SME_SUCCESS;
|
tSirResultCodes retCode = eSIR_SME_SUCCESS;
|
||||||
tSirSmeDisassocReq smeDisassocReq;
|
tSirSmeDisassocReq smeDisassocReq;
|
||||||
struct pe_session *psessionEntry = NULL;
|
struct pe_session *pe_session = NULL;
|
||||||
uint8_t sessionId;
|
uint8_t sessionId;
|
||||||
uint8_t smesessionId;
|
uint8_t smesessionId;
|
||||||
uint16_t smetransactionId;
|
uint16_t smetransactionId;
|
||||||
@@ -2154,7 +2154,7 @@ static void __lim_process_sme_disassoc_req(tpAniSirGlobal mac, uint32_t *pMsgBuf
|
|||||||
smetransactionId = smeDisassocReq.transactionId;
|
smetransactionId = smeDisassocReq.transactionId;
|
||||||
if (!lim_is_sme_disassoc_req_valid(mac,
|
if (!lim_is_sme_disassoc_req_valid(mac,
|
||||||
&smeDisassocReq,
|
&smeDisassocReq,
|
||||||
psessionEntry)) {
|
pe_session)) {
|
||||||
pe_err("received invalid SME_DISASSOC_REQ message");
|
pe_err("received invalid SME_DISASSOC_REQ message");
|
||||||
if (mac->lim.gLimRspReqd) {
|
if (mac->lim.gLimRspReqd) {
|
||||||
mac->lim.gLimRspReqd = false;
|
mac->lim.gLimRspReqd = false;
|
||||||
@@ -2167,10 +2167,10 @@ static void __lim_process_sme_disassoc_req(tpAniSirGlobal mac, uint32_t *pMsgBuf
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
psessionEntry = pe_find_session_by_bssid(mac,
|
pe_session = pe_find_session_by_bssid(mac,
|
||||||
smeDisassocReq.bssid.bytes,
|
smeDisassocReq.bssid.bytes,
|
||||||
&sessionId);
|
&sessionId);
|
||||||
if (psessionEntry == NULL) {
|
if (pe_session == NULL) {
|
||||||
pe_err("session does not exist for given bssId "
|
pe_err("session does not exist for given bssId "
|
||||||
MAC_ADDRESS_STR,
|
MAC_ADDRESS_STR,
|
||||||
MAC_ADDR_ARRAY(smeDisassocReq.bssid.bytes));
|
MAC_ADDR_ARRAY(smeDisassocReq.bssid.bytes));
|
||||||
@@ -2180,37 +2180,37 @@ static void __lim_process_sme_disassoc_req(tpAniSirGlobal mac, uint32_t *pMsgBuf
|
|||||||
}
|
}
|
||||||
pe_debug("received DISASSOC_REQ message on sessionid %d Systemrole %d Reason: %u SmeState: %d from: "
|
pe_debug("received DISASSOC_REQ message on sessionid %d Systemrole %d Reason: %u SmeState: %d from: "
|
||||||
MAC_ADDRESS_STR, smesessionId,
|
MAC_ADDRESS_STR, smesessionId,
|
||||||
GET_LIM_SYSTEM_ROLE(psessionEntry), smeDisassocReq.reasonCode,
|
GET_LIM_SYSTEM_ROLE(pe_session), smeDisassocReq.reasonCode,
|
||||||
mac->lim.gLimSmeState,
|
mac->lim.gLimSmeState,
|
||||||
MAC_ADDR_ARRAY(smeDisassocReq.peer_macaddr.bytes));
|
MAC_ADDR_ARRAY(smeDisassocReq.peer_macaddr.bytes));
|
||||||
|
|
||||||
#ifdef FEATURE_WLAN_DIAG_SUPPORT_LIM /* FEATURE_WLAN_DIAG_SUPPORT */
|
#ifdef FEATURE_WLAN_DIAG_SUPPORT_LIM /* FEATURE_WLAN_DIAG_SUPPORT */
|
||||||
lim_diag_event_report(mac, WLAN_PE_DIAG_DISASSOC_REQ_EVENT, psessionEntry,
|
lim_diag_event_report(mac, WLAN_PE_DIAG_DISASSOC_REQ_EVENT, pe_session,
|
||||||
0, smeDisassocReq.reasonCode);
|
0, smeDisassocReq.reasonCode);
|
||||||
#endif /* FEATURE_WLAN_DIAG_SUPPORT */
|
#endif /* FEATURE_WLAN_DIAG_SUPPORT */
|
||||||
|
|
||||||
/* Update SME session Id and SME transaction ID */
|
/* Update SME session Id and SME transaction ID */
|
||||||
|
|
||||||
psessionEntry->smeSessionId = smesessionId;
|
pe_session->smeSessionId = smesessionId;
|
||||||
psessionEntry->transactionId = smetransactionId;
|
pe_session->transactionId = smetransactionId;
|
||||||
pe_debug("ho_fail: %d ", smeDisassocReq.process_ho_fail);
|
pe_debug("ho_fail: %d ", smeDisassocReq.process_ho_fail);
|
||||||
psessionEntry->process_ho_fail = smeDisassocReq.process_ho_fail;
|
pe_session->process_ho_fail = smeDisassocReq.process_ho_fail;
|
||||||
|
|
||||||
switch (GET_LIM_SYSTEM_ROLE(psessionEntry)) {
|
switch (GET_LIM_SYSTEM_ROLE(pe_session)) {
|
||||||
case eLIM_STA_ROLE:
|
case eLIM_STA_ROLE:
|
||||||
switch (psessionEntry->limSmeState) {
|
switch (pe_session->limSmeState) {
|
||||||
case eLIM_SME_ASSOCIATED_STATE:
|
case eLIM_SME_ASSOCIATED_STATE:
|
||||||
case eLIM_SME_LINK_EST_STATE:
|
case eLIM_SME_LINK_EST_STATE:
|
||||||
pe_debug("Rcvd SME_DISASSOC_REQ in limSmeState: %d ",
|
pe_debug("Rcvd SME_DISASSOC_REQ in limSmeState: %d ",
|
||||||
psessionEntry->limSmeState);
|
pe_session->limSmeState);
|
||||||
psessionEntry->limPrevSmeState =
|
pe_session->limPrevSmeState =
|
||||||
psessionEntry->limSmeState;
|
pe_session->limSmeState;
|
||||||
psessionEntry->limSmeState = eLIM_SME_WT_DISASSOC_STATE;
|
pe_session->limSmeState = eLIM_SME_WT_DISASSOC_STATE;
|
||||||
/* Delete all TDLS peers connected before leaving BSS */
|
/* Delete all TDLS peers connected before leaving BSS */
|
||||||
lim_delete_tdls_peers(mac, psessionEntry);
|
lim_delete_tdls_peers(mac, pe_session);
|
||||||
MTRACE(mac_trace(mac, TRACE_CODE_SME_STATE,
|
MTRACE(mac_trace(mac, TRACE_CODE_SME_STATE,
|
||||||
psessionEntry->peSessionId,
|
pe_session->peSessionId,
|
||||||
psessionEntry->limSmeState));
|
pe_session->limSmeState));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case eLIM_SME_WT_DEAUTH_STATE:
|
case eLIM_SME_WT_DEAUTH_STATE:
|
||||||
@@ -2219,11 +2219,11 @@ static void __lim_process_sme_disassoc_req(tpAniSirGlobal mac, uint32_t *pMsgBuf
|
|||||||
* to SME. mac->lim.gLimPrevSmeState shall remain the same as
|
* to SME. mac->lim.gLimPrevSmeState shall remain the same as
|
||||||
* its been set when PE entered WT_DEAUTH_STATE.
|
* its been set when PE entered WT_DEAUTH_STATE.
|
||||||
*/
|
*/
|
||||||
psessionEntry->limSmeState = eLIM_SME_WT_DISASSOC_STATE;
|
pe_session->limSmeState = eLIM_SME_WT_DISASSOC_STATE;
|
||||||
MTRACE(mac_trace
|
MTRACE(mac_trace
|
||||||
(mac, TRACE_CODE_SME_STATE,
|
(mac, TRACE_CODE_SME_STATE,
|
||||||
psessionEntry->peSessionId,
|
pe_session->peSessionId,
|
||||||
psessionEntry->limSmeState));
|
pe_session->limSmeState));
|
||||||
pe_debug("Rcvd SME_DISASSOC_REQ while in SME_WT_DEAUTH_STATE");
|
pe_debug("Rcvd SME_DISASSOC_REQ while in SME_WT_DEAUTH_STATE");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -2256,12 +2256,12 @@ static void __lim_process_sme_disassoc_req(tpAniSirGlobal mac, uint32_t *pMsgBuf
|
|||||||
* Log error and send response to host
|
* Log error and send response to host
|
||||||
*/
|
*/
|
||||||
pe_err("received unexpected SME_DISASSOC_REQ in state %X",
|
pe_err("received unexpected SME_DISASSOC_REQ in state %X",
|
||||||
psessionEntry->limSmeState);
|
pe_session->limSmeState);
|
||||||
lim_print_sme_state(mac, LOGE,
|
lim_print_sme_state(mac, LOGE,
|
||||||
psessionEntry->limSmeState);
|
pe_session->limSmeState);
|
||||||
|
|
||||||
if (mac->lim.gLimRspReqd) {
|
if (mac->lim.gLimRspReqd) {
|
||||||
if (psessionEntry->limSmeState !=
|
if (pe_session->limSmeState !=
|
||||||
eLIM_SME_WT_ASSOC_STATE)
|
eLIM_SME_WT_ASSOC_STATE)
|
||||||
mac->lim.gLimRspReqd = false;
|
mac->lim.gLimRspReqd = false;
|
||||||
|
|
||||||
@@ -2283,7 +2283,7 @@ static void __lim_process_sme_disassoc_req(tpAniSirGlobal mac, uint32_t *pMsgBuf
|
|||||||
default:
|
default:
|
||||||
/* eLIM_UNKNOWN_ROLE */
|
/* eLIM_UNKNOWN_ROLE */
|
||||||
pe_err("received unexpected SME_DISASSOC_REQ for role %d",
|
pe_err("received unexpected SME_DISASSOC_REQ for role %d",
|
||||||
GET_LIM_SYSTEM_ROLE(psessionEntry));
|
GET_LIM_SYSTEM_ROLE(pe_session));
|
||||||
|
|
||||||
retCode = eSIR_SME_UNEXPECTED_REQ_RESULT_CODE;
|
retCode = eSIR_SME_UNEXPECTED_REQ_RESULT_CODE;
|
||||||
disassocTrigger = eLIM_HOST_DISASSOC;
|
disassocTrigger = eLIM_HOST_DISASSOC;
|
||||||
@@ -2320,13 +2320,13 @@ static void __lim_process_sme_disassoc_req(tpAniSirGlobal mac, uint32_t *pMsgBuf
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
sendDisassoc:
|
sendDisassoc:
|
||||||
if (psessionEntry)
|
if (pe_session)
|
||||||
lim_send_sme_disassoc_ntf(mac,
|
lim_send_sme_disassoc_ntf(mac,
|
||||||
smeDisassocReq.peer_macaddr.bytes,
|
smeDisassocReq.peer_macaddr.bytes,
|
||||||
retCode,
|
retCode,
|
||||||
disassocTrigger,
|
disassocTrigger,
|
||||||
1, smesessionId, smetransactionId,
|
1, smesessionId, smetransactionId,
|
||||||
psessionEntry);
|
pe_session);
|
||||||
else
|
else
|
||||||
lim_send_sme_disassoc_ntf(mac,
|
lim_send_sme_disassoc_ntf(mac,
|
||||||
smeDisassocReq.peer_macaddr.bytes,
|
smeDisassocReq.peer_macaddr.bytes,
|
||||||
@@ -2351,7 +2351,7 @@ void __lim_process_sme_disassoc_cnf(tpAniSirGlobal mac, uint32_t *pMsgBuf)
|
|||||||
tSirSmeDisassocCnf smeDisassocCnf;
|
tSirSmeDisassocCnf smeDisassocCnf;
|
||||||
uint16_t aid;
|
uint16_t aid;
|
||||||
tpDphHashNode pStaDs;
|
tpDphHashNode pStaDs;
|
||||||
struct pe_session *psessionEntry;
|
struct pe_session *pe_session;
|
||||||
uint8_t sessionId;
|
uint8_t sessionId;
|
||||||
uint32_t *msg = NULL;
|
uint32_t *msg = NULL;
|
||||||
QDF_STATUS status;
|
QDF_STATUS status;
|
||||||
@@ -2359,10 +2359,10 @@ void __lim_process_sme_disassoc_cnf(tpAniSirGlobal mac, uint32_t *pMsgBuf)
|
|||||||
qdf_mem_copy(&smeDisassocCnf, pMsgBuf,
|
qdf_mem_copy(&smeDisassocCnf, pMsgBuf,
|
||||||
sizeof(struct sSirSmeDisassocCnf));
|
sizeof(struct sSirSmeDisassocCnf));
|
||||||
|
|
||||||
psessionEntry = pe_find_session_by_bssid(mac,
|
pe_session = pe_find_session_by_bssid(mac,
|
||||||
smeDisassocCnf.bssid.bytes,
|
smeDisassocCnf.bssid.bytes,
|
||||||
&sessionId);
|
&sessionId);
|
||||||
if (psessionEntry == NULL) {
|
if (pe_session == NULL) {
|
||||||
pe_err("session does not exist for given bssId");
|
pe_err("session does not exist for given bssId");
|
||||||
status = lim_prepare_disconnect_done_ind(mac, &msg,
|
status = lim_prepare_disconnect_done_ind(mac, &msg,
|
||||||
smeDisassocCnf.sme_session_id,
|
smeDisassocCnf.sme_session_id,
|
||||||
@@ -2375,10 +2375,10 @@ void __lim_process_sme_disassoc_cnf(tpAniSirGlobal mac, uint32_t *pMsgBuf)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!lim_is_sme_disassoc_cnf_valid(mac, &smeDisassocCnf, psessionEntry)) {
|
if (!lim_is_sme_disassoc_cnf_valid(mac, &smeDisassocCnf, pe_session)) {
|
||||||
pe_err("received invalid SME_DISASSOC_CNF message");
|
pe_err("received invalid SME_DISASSOC_CNF message");
|
||||||
status = lim_prepare_disconnect_done_ind(mac, &msg,
|
status = lim_prepare_disconnect_done_ind(mac, &msg,
|
||||||
psessionEntry->smeSessionId,
|
pe_session->smeSessionId,
|
||||||
eSIR_SME_INVALID_PARAMETERS,
|
eSIR_SME_INVALID_PARAMETERS,
|
||||||
&smeDisassocCnf.bssid.bytes[0]);
|
&smeDisassocCnf.bssid.bytes[0]);
|
||||||
if (QDF_IS_STATUS_SUCCESS(status))
|
if (QDF_IS_STATUS_SUCCESS(status))
|
||||||
@@ -2390,26 +2390,26 @@ void __lim_process_sme_disassoc_cnf(tpAniSirGlobal mac, uint32_t *pMsgBuf)
|
|||||||
#ifdef FEATURE_WLAN_DIAG_SUPPORT_LIM /* FEATURE_WLAN_DIAG_SUPPORT */
|
#ifdef FEATURE_WLAN_DIAG_SUPPORT_LIM /* FEATURE_WLAN_DIAG_SUPPORT */
|
||||||
if (smeDisassocCnf.messageType == eWNI_SME_DISASSOC_CNF)
|
if (smeDisassocCnf.messageType == eWNI_SME_DISASSOC_CNF)
|
||||||
lim_diag_event_report(mac, WLAN_PE_DIAG_DISASSOC_CNF_EVENT,
|
lim_diag_event_report(mac, WLAN_PE_DIAG_DISASSOC_CNF_EVENT,
|
||||||
psessionEntry,
|
pe_session,
|
||||||
(uint16_t) smeDisassocCnf.statusCode, 0);
|
(uint16_t) smeDisassocCnf.statusCode, 0);
|
||||||
else if (smeDisassocCnf.messageType == eWNI_SME_DEAUTH_CNF)
|
else if (smeDisassocCnf.messageType == eWNI_SME_DEAUTH_CNF)
|
||||||
lim_diag_event_report(mac, WLAN_PE_DIAG_DEAUTH_CNF_EVENT,
|
lim_diag_event_report(mac, WLAN_PE_DIAG_DEAUTH_CNF_EVENT,
|
||||||
psessionEntry,
|
pe_session,
|
||||||
(uint16_t) smeDisassocCnf.statusCode, 0);
|
(uint16_t) smeDisassocCnf.statusCode, 0);
|
||||||
#endif /* FEATURE_WLAN_DIAG_SUPPORT */
|
#endif /* FEATURE_WLAN_DIAG_SUPPORT */
|
||||||
|
|
||||||
switch (GET_LIM_SYSTEM_ROLE(psessionEntry)) {
|
switch (GET_LIM_SYSTEM_ROLE(pe_session)) {
|
||||||
case eLIM_STA_ROLE:
|
case eLIM_STA_ROLE:
|
||||||
if ((psessionEntry->limSmeState != eLIM_SME_IDLE_STATE) &&
|
if ((pe_session->limSmeState != eLIM_SME_IDLE_STATE) &&
|
||||||
(psessionEntry->limSmeState != eLIM_SME_WT_DISASSOC_STATE)
|
(pe_session->limSmeState != eLIM_SME_WT_DISASSOC_STATE)
|
||||||
&& (psessionEntry->limSmeState !=
|
&& (pe_session->limSmeState !=
|
||||||
eLIM_SME_WT_DEAUTH_STATE)) {
|
eLIM_SME_WT_DEAUTH_STATE)) {
|
||||||
pe_err("received unexp SME_DISASSOC_CNF in state %X",
|
pe_err("received unexp SME_DISASSOC_CNF in state %X",
|
||||||
psessionEntry->limSmeState);
|
pe_session->limSmeState);
|
||||||
lim_print_sme_state(mac, LOGE,
|
lim_print_sme_state(mac, LOGE,
|
||||||
psessionEntry->limSmeState);
|
pe_session->limSmeState);
|
||||||
status = lim_prepare_disconnect_done_ind(mac, &msg,
|
status = lim_prepare_disconnect_done_ind(mac, &msg,
|
||||||
psessionEntry->smeSessionId,
|
pe_session->smeSessionId,
|
||||||
eSIR_SME_INVALID_STATE,
|
eSIR_SME_INVALID_STATE,
|
||||||
&smeDisassocCnf.bssid.bytes[0]);
|
&smeDisassocCnf.bssid.bytes[0]);
|
||||||
if (QDF_IS_STATUS_SUCCESS(status))
|
if (QDF_IS_STATUS_SUCCESS(status))
|
||||||
@@ -2427,9 +2427,9 @@ void __lim_process_sme_disassoc_cnf(tpAniSirGlobal mac, uint32_t *pMsgBuf)
|
|||||||
case eLIM_STA_IN_IBSS_ROLE:
|
case eLIM_STA_IN_IBSS_ROLE:
|
||||||
default: /* eLIM_UNKNOWN_ROLE */
|
default: /* eLIM_UNKNOWN_ROLE */
|
||||||
pe_err("received unexpected SME_DISASSOC_CNF role %d",
|
pe_err("received unexpected SME_DISASSOC_CNF role %d",
|
||||||
GET_LIM_SYSTEM_ROLE(psessionEntry));
|
GET_LIM_SYSTEM_ROLE(pe_session));
|
||||||
status = lim_prepare_disconnect_done_ind(mac, &msg,
|
status = lim_prepare_disconnect_done_ind(mac, &msg,
|
||||||
psessionEntry->smeSessionId,
|
pe_session->smeSessionId,
|
||||||
eSIR_SME_INVALID_STATE,
|
eSIR_SME_INVALID_STATE,
|
||||||
&smeDisassocCnf.bssid.bytes[0]);
|
&smeDisassocCnf.bssid.bytes[0]);
|
||||||
if (QDF_IS_STATUS_SUCCESS(status))
|
if (QDF_IS_STATUS_SUCCESS(status))
|
||||||
@@ -2439,18 +2439,18 @@ void __lim_process_sme_disassoc_cnf(tpAniSirGlobal mac, uint32_t *pMsgBuf)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((psessionEntry->limSmeState == eLIM_SME_WT_DISASSOC_STATE) ||
|
if ((pe_session->limSmeState == eLIM_SME_WT_DISASSOC_STATE) ||
|
||||||
(psessionEntry->limSmeState == eLIM_SME_WT_DEAUTH_STATE) ||
|
(pe_session->limSmeState == eLIM_SME_WT_DEAUTH_STATE) ||
|
||||||
LIM_IS_AP_ROLE(psessionEntry)) {
|
LIM_IS_AP_ROLE(pe_session)) {
|
||||||
pStaDs = dph_lookup_hash_entry(mac,
|
pStaDs = dph_lookup_hash_entry(mac,
|
||||||
smeDisassocCnf.peer_macaddr.bytes, &aid,
|
smeDisassocCnf.peer_macaddr.bytes, &aid,
|
||||||
&psessionEntry->dph.dphHashTable);
|
&pe_session->dph.dphHashTable);
|
||||||
if (pStaDs == NULL) {
|
if (pStaDs == NULL) {
|
||||||
pe_err("DISASSOC_CNF for a STA with no context, addr= "
|
pe_err("DISASSOC_CNF for a STA with no context, addr= "
|
||||||
MAC_ADDRESS_STR,
|
MAC_ADDRESS_STR,
|
||||||
MAC_ADDR_ARRAY(smeDisassocCnf.peer_macaddr.bytes));
|
MAC_ADDR_ARRAY(smeDisassocCnf.peer_macaddr.bytes));
|
||||||
status = lim_prepare_disconnect_done_ind(mac, &msg,
|
status = lim_prepare_disconnect_done_ind(mac, &msg,
|
||||||
psessionEntry->smeSessionId,
|
pe_session->smeSessionId,
|
||||||
eSIR_SME_INVALID_PARAMETERS,
|
eSIR_SME_INVALID_PARAMETERS,
|
||||||
&smeDisassocCnf.bssid.bytes[0]);
|
&smeDisassocCnf.bssid.bytes[0]);
|
||||||
if (QDF_IS_STATUS_SUCCESS(status))
|
if (QDF_IS_STATUS_SUCCESS(status))
|
||||||
@@ -2468,7 +2468,7 @@ void __lim_process_sme_disassoc_cnf(tpAniSirGlobal mac, uint32_t *pMsgBuf)
|
|||||||
MAC_ADDR_ARRAY(smeDisassocCnf.peer_macaddr.bytes),
|
MAC_ADDR_ARRAY(smeDisassocCnf.peer_macaddr.bytes),
|
||||||
pStaDs->mlmStaContext.mlmState);
|
pStaDs->mlmStaContext.mlmState);
|
||||||
status = lim_prepare_disconnect_done_ind(mac, &msg,
|
status = lim_prepare_disconnect_done_ind(mac, &msg,
|
||||||
psessionEntry->smeSessionId,
|
pe_session->smeSessionId,
|
||||||
eSIR_SME_SUCCESS,
|
eSIR_SME_SUCCESS,
|
||||||
NULL);
|
NULL);
|
||||||
if (QDF_IS_STATUS_SUCCESS(status))
|
if (QDF_IS_STATUS_SUCCESS(status))
|
||||||
@@ -2479,8 +2479,8 @@ void __lim_process_sme_disassoc_cnf(tpAniSirGlobal mac, uint32_t *pMsgBuf)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Delete FT session if there exists one */
|
/* Delete FT session if there exists one */
|
||||||
lim_ft_cleanup_pre_auth_info(mac, psessionEntry);
|
lim_ft_cleanup_pre_auth_info(mac, pe_session);
|
||||||
lim_cleanup_rx_path(mac, pStaDs, psessionEntry);
|
lim_cleanup_rx_path(mac, pStaDs, pe_session);
|
||||||
|
|
||||||
lim_clean_up_disassoc_deauth_req(mac,
|
lim_clean_up_disassoc_deauth_req(mac,
|
||||||
(char *)&smeDisassocCnf.peer_macaddr, 0);
|
(char *)&smeDisassocCnf.peer_macaddr, 0);
|
||||||
@@ -2952,13 +2952,13 @@ lim_assoc_sta_end:
|
|||||||
* @return None
|
* @return None
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static void __lim_counter_measures(tpAniSirGlobal mac, struct pe_session *psessionEntry)
|
static void __lim_counter_measures(tpAniSirGlobal mac, struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
tSirMacAddr mac_addr = { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF };
|
tSirMacAddr mac_addr = { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF };
|
||||||
|
|
||||||
if (LIM_IS_AP_ROLE(psessionEntry))
|
if (LIM_IS_AP_ROLE(pe_session))
|
||||||
lim_send_disassoc_mgmt_frame(mac, eSIR_MAC_MIC_FAILURE_REASON,
|
lim_send_disassoc_mgmt_frame(mac, eSIR_MAC_MIC_FAILURE_REASON,
|
||||||
mac_addr, psessionEntry, false);
|
mac_addr, pe_session, false);
|
||||||
};
|
};
|
||||||
|
|
||||||
void lim_send_stop_bss_failure_resp(tpAniSirGlobal mac_ctx,
|
void lim_send_stop_bss_failure_resp(tpAniSirGlobal mac_ctx,
|
||||||
@@ -3090,7 +3090,7 @@ __lim_handle_sme_stop_bss_request(tpAniSirGlobal mac, uint32_t *pMsgBuf)
|
|||||||
{
|
{
|
||||||
tSirSmeStopBssReq stopBssReq;
|
tSirSmeStopBssReq stopBssReq;
|
||||||
tLimSmeStates prevState;
|
tLimSmeStates prevState;
|
||||||
struct pe_session *psessionEntry;
|
struct pe_session *pe_session;
|
||||||
uint8_t smesessionId;
|
uint8_t smesessionId;
|
||||||
uint8_t sessionId;
|
uint8_t sessionId;
|
||||||
uint16_t smetransactionId;
|
uint16_t smetransactionId;
|
||||||
@@ -3108,10 +3108,10 @@ __lim_handle_sme_stop_bss_request(tpAniSirGlobal mac, uint32_t *pMsgBuf)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
psessionEntry = pe_find_session_by_bssid(mac,
|
pe_session = pe_find_session_by_bssid(mac,
|
||||||
stopBssReq.bssid.bytes,
|
stopBssReq.bssid.bytes,
|
||||||
&sessionId);
|
&sessionId);
|
||||||
if (psessionEntry == NULL) {
|
if (pe_session == NULL) {
|
||||||
pe_err("session does not exist for given BSSID");
|
pe_err("session does not exist for given BSSID");
|
||||||
lim_send_sme_rsp(mac, eWNI_SME_STOP_BSS_RSP,
|
lim_send_sme_rsp(mac, eWNI_SME_STOP_BSS_RSP,
|
||||||
eSIR_SME_INVALID_PARAMETERS, smesessionId,
|
eSIR_SME_INVALID_PARAMETERS, smesessionId,
|
||||||
@@ -3119,21 +3119,21 @@ __lim_handle_sme_stop_bss_request(tpAniSirGlobal mac, uint32_t *pMsgBuf)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
#ifdef FEATURE_WLAN_DIAG_SUPPORT_LIM /* FEATURE_WLAN_DIAG_SUPPORT */
|
#ifdef FEATURE_WLAN_DIAG_SUPPORT_LIM /* FEATURE_WLAN_DIAG_SUPPORT */
|
||||||
lim_diag_event_report(mac, WLAN_PE_DIAG_STOP_BSS_REQ_EVENT, psessionEntry,
|
lim_diag_event_report(mac, WLAN_PE_DIAG_STOP_BSS_REQ_EVENT, pe_session,
|
||||||
0, 0);
|
0, 0);
|
||||||
#endif /* FEATURE_WLAN_DIAG_SUPPORT */
|
#endif /* FEATURE_WLAN_DIAG_SUPPORT */
|
||||||
|
|
||||||
if (psessionEntry->limSmeState != eLIM_SME_NORMAL_STATE || /* Added For BT -AMP Support */
|
if (pe_session->limSmeState != eLIM_SME_NORMAL_STATE || /* Added For BT -AMP Support */
|
||||||
LIM_IS_STA_ROLE(psessionEntry)) {
|
LIM_IS_STA_ROLE(pe_session)) {
|
||||||
/**
|
/**
|
||||||
* Should not have received STOP_BSS_REQ in states
|
* Should not have received STOP_BSS_REQ in states
|
||||||
* other than 'normal' state or on STA in Infrastructure
|
* other than 'normal' state or on STA in Infrastructure
|
||||||
* mode. Log error and return response to host.
|
* mode. Log error and return response to host.
|
||||||
*/
|
*/
|
||||||
pe_err("received unexpected SME_STOP_BSS_REQ in state %X, for role %d",
|
pe_err("received unexpected SME_STOP_BSS_REQ in state %X, for role %d",
|
||||||
psessionEntry->limSmeState,
|
pe_session->limSmeState,
|
||||||
GET_LIM_SYSTEM_ROLE(psessionEntry));
|
GET_LIM_SYSTEM_ROLE(pe_session));
|
||||||
lim_print_sme_state(mac, LOGE, psessionEntry->limSmeState);
|
lim_print_sme_state(mac, LOGE, pe_session->limSmeState);
|
||||||
/* / Send Stop BSS response to host */
|
/* / Send Stop BSS response to host */
|
||||||
lim_send_sme_rsp(mac, eWNI_SME_STOP_BSS_RSP,
|
lim_send_sme_rsp(mac, eWNI_SME_STOP_BSS_RSP,
|
||||||
eSIR_SME_UNEXPECTED_REQ_RESULT_CODE, smesessionId,
|
eSIR_SME_UNEXPECTED_REQ_RESULT_CODE, smesessionId,
|
||||||
@@ -3141,51 +3141,51 @@ __lim_handle_sme_stop_bss_request(tpAniSirGlobal mac, uint32_t *pMsgBuf)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (LIM_IS_AP_ROLE(psessionEntry))
|
if (LIM_IS_AP_ROLE(pe_session))
|
||||||
lim_wpspbc_close(mac, psessionEntry);
|
lim_wpspbc_close(mac, pe_session);
|
||||||
|
|
||||||
pe_debug("RECEIVED STOP_BSS_REQ with reason code=%d",
|
pe_debug("RECEIVED STOP_BSS_REQ with reason code=%d",
|
||||||
stopBssReq.reasonCode);
|
stopBssReq.reasonCode);
|
||||||
|
|
||||||
prevState = psessionEntry->limSmeState;
|
prevState = pe_session->limSmeState;
|
||||||
psessionEntry->limPrevSmeState = prevState;
|
pe_session->limPrevSmeState = prevState;
|
||||||
|
|
||||||
psessionEntry->limSmeState = eLIM_SME_IDLE_STATE;
|
pe_session->limSmeState = eLIM_SME_IDLE_STATE;
|
||||||
MTRACE(mac_trace
|
MTRACE(mac_trace
|
||||||
(mac, TRACE_CODE_SME_STATE, psessionEntry->peSessionId,
|
(mac, TRACE_CODE_SME_STATE, pe_session->peSessionId,
|
||||||
psessionEntry->limSmeState));
|
pe_session->limSmeState));
|
||||||
|
|
||||||
/* Update SME session Id and Transaction Id */
|
/* Update SME session Id and Transaction Id */
|
||||||
psessionEntry->smeSessionId = smesessionId;
|
pe_session->smeSessionId = smesessionId;
|
||||||
psessionEntry->transactionId = smetransactionId;
|
pe_session->transactionId = smetransactionId;
|
||||||
|
|
||||||
/* STA_IN_IBSS and NDI should NOT send Disassoc frame */
|
/* STA_IN_IBSS and NDI should NOT send Disassoc frame */
|
||||||
if (!LIM_IS_IBSS_ROLE(psessionEntry) &&
|
if (!LIM_IS_IBSS_ROLE(pe_session) &&
|
||||||
!LIM_IS_NDI_ROLE(psessionEntry)) {
|
!LIM_IS_NDI_ROLE(pe_session)) {
|
||||||
tSirMacAddr bcAddr = { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF };
|
tSirMacAddr bcAddr = { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF };
|
||||||
|
|
||||||
if (stopBssReq.reasonCode == eSIR_SME_MIC_COUNTER_MEASURES)
|
if (stopBssReq.reasonCode == eSIR_SME_MIC_COUNTER_MEASURES)
|
||||||
/* Send disassoc all stations associated thru TKIP */
|
/* Send disassoc all stations associated thru TKIP */
|
||||||
__lim_counter_measures(mac, psessionEntry);
|
__lim_counter_measures(mac, pe_session);
|
||||||
else
|
else
|
||||||
lim_send_disassoc_mgmt_frame(mac,
|
lim_send_disassoc_mgmt_frame(mac,
|
||||||
eSIR_MAC_DEAUTH_LEAVING_BSS_REASON,
|
eSIR_MAC_DEAUTH_LEAVING_BSS_REASON,
|
||||||
bcAddr, psessionEntry, false);
|
bcAddr, pe_session, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!LIM_IS_NDI_ROLE(psessionEntry)) {
|
if (!LIM_IS_NDI_ROLE(pe_session)) {
|
||||||
/* Free the buffer allocated in START_BSS_REQ */
|
/* Free the buffer allocated in START_BSS_REQ */
|
||||||
qdf_mem_free(psessionEntry->addIeParams.probeRespData_buff);
|
qdf_mem_free(pe_session->addIeParams.probeRespData_buff);
|
||||||
psessionEntry->addIeParams.probeRespDataLen = 0;
|
pe_session->addIeParams.probeRespDataLen = 0;
|
||||||
psessionEntry->addIeParams.probeRespData_buff = NULL;
|
pe_session->addIeParams.probeRespData_buff = NULL;
|
||||||
|
|
||||||
qdf_mem_free(psessionEntry->addIeParams.assocRespData_buff);
|
qdf_mem_free(pe_session->addIeParams.assocRespData_buff);
|
||||||
psessionEntry->addIeParams.assocRespDataLen = 0;
|
pe_session->addIeParams.assocRespDataLen = 0;
|
||||||
psessionEntry->addIeParams.assocRespData_buff = NULL;
|
pe_session->addIeParams.assocRespData_buff = NULL;
|
||||||
|
|
||||||
qdf_mem_free(psessionEntry->addIeParams.probeRespBCNData_buff);
|
qdf_mem_free(pe_session->addIeParams.probeRespBCNData_buff);
|
||||||
psessionEntry->addIeParams.probeRespBCNDataLen = 0;
|
pe_session->addIeParams.probeRespBCNDataLen = 0;
|
||||||
psessionEntry->addIeParams.probeRespBCNData_buff = NULL;
|
pe_session->addIeParams.probeRespBCNData_buff = NULL;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* lim_del_bss is also called as part of coalescing,
|
* lim_del_bss is also called as part of coalescing,
|
||||||
@@ -3194,7 +3194,7 @@ __lim_handle_sme_stop_bss_request(tpAniSirGlobal mac, uint32_t *pMsgBuf)
|
|||||||
mac->lim.gLimIbssCoalescingHappened = false;
|
mac->lim.gLimIbssCoalescingHappened = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
lim_delete_peers_and_send_vdev_stop(psessionEntry);
|
lim_delete_peers_and_send_vdev_stop(pe_session);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3227,17 +3227,17 @@ static bool __lim_process_sme_stop_bss_req(tpAniSirGlobal mac,
|
|||||||
} /*** end __lim_process_sme_stop_bss_req() ***/
|
} /*** end __lim_process_sme_stop_bss_req() ***/
|
||||||
|
|
||||||
void lim_process_sme_del_bss_rsp(tpAniSirGlobal mac,
|
void lim_process_sme_del_bss_rsp(tpAniSirGlobal mac,
|
||||||
uint32_t body, struct pe_session *psessionEntry)
|
uint32_t body, struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
|
|
||||||
(void)body;
|
(void)body;
|
||||||
SET_LIM_PROCESS_DEFD_MESGS(mac, true);
|
SET_LIM_PROCESS_DEFD_MESGS(mac, true);
|
||||||
lim_ibss_delete(mac, psessionEntry);
|
lim_ibss_delete(mac, pe_session);
|
||||||
dph_hash_table_class_init(mac, &psessionEntry->dph.dphHashTable);
|
dph_hash_table_class_init(mac, &pe_session->dph.dphHashTable);
|
||||||
lim_delete_pre_auth_list(mac);
|
lim_delete_pre_auth_list(mac);
|
||||||
lim_send_sme_rsp(mac, eWNI_SME_STOP_BSS_RSP, eSIR_SME_SUCCESS,
|
lim_send_sme_rsp(mac, eWNI_SME_STOP_BSS_RSP, eSIR_SME_SUCCESS,
|
||||||
psessionEntry->smeSessionId,
|
pe_session->smeSessionId,
|
||||||
psessionEntry->transactionId);
|
pe_session->transactionId);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3390,7 +3390,7 @@ static void __lim_process_sme_addts_req(tpAniSirGlobal mac, uint32_t *pMsgBuf)
|
|||||||
tSirMacAddr peerMac;
|
tSirMacAddr peerMac;
|
||||||
tpSirAddtsReq pSirAddts;
|
tpSirAddtsReq pSirAddts;
|
||||||
uint32_t timeout;
|
uint32_t timeout;
|
||||||
struct pe_session *psessionEntry;
|
struct pe_session *pe_session;
|
||||||
uint8_t sessionId; /* PE sessionId */
|
uint8_t sessionId; /* PE sessionId */
|
||||||
uint8_t smesessionId;
|
uint8_t smesessionId;
|
||||||
uint16_t smetransactionId;
|
uint16_t smetransactionId;
|
||||||
@@ -3405,9 +3405,9 @@ static void __lim_process_sme_addts_req(tpAniSirGlobal mac, uint32_t *pMsgBuf)
|
|||||||
|
|
||||||
pSirAddts = (tpSirAddtsReq) pMsgBuf;
|
pSirAddts = (tpSirAddtsReq) pMsgBuf;
|
||||||
|
|
||||||
psessionEntry = pe_find_session_by_bssid(mac, pSirAddts->bssid.bytes,
|
pe_session = pe_find_session_by_bssid(mac, pSirAddts->bssid.bytes,
|
||||||
&sessionId);
|
&sessionId);
|
||||||
if (psessionEntry == NULL) {
|
if (pe_session == NULL) {
|
||||||
pe_err("Session Does not exist for given bssId");
|
pe_err("Session Does not exist for given bssId");
|
||||||
lim_send_sme_addts_rsp(mac, pSirAddts->rspReqd, QDF_STATUS_E_FAILURE,
|
lim_send_sme_addts_rsp(mac, pSirAddts->rspReqd, QDF_STATUS_E_FAILURE,
|
||||||
NULL, pSirAddts->req.tspec,
|
NULL, pSirAddts->req.tspec,
|
||||||
@@ -3415,7 +3415,7 @@ static void __lim_process_sme_addts_req(tpAniSirGlobal mac, uint32_t *pMsgBuf)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
#ifdef FEATURE_WLAN_DIAG_SUPPORT_LIM /* FEATURE_WLAN_DIAG_SUPPORT */
|
#ifdef FEATURE_WLAN_DIAG_SUPPORT_LIM /* FEATURE_WLAN_DIAG_SUPPORT */
|
||||||
lim_diag_event_report(mac, WLAN_PE_DIAG_ADDTS_REQ_EVENT, psessionEntry, 0,
|
lim_diag_event_report(mac, WLAN_PE_DIAG_ADDTS_REQ_EVENT, pe_session, 0,
|
||||||
0);
|
0);
|
||||||
#endif /* FEATURE_WLAN_DIAG_SUPPORT */
|
#endif /* FEATURE_WLAN_DIAG_SUPPORT */
|
||||||
|
|
||||||
@@ -3429,14 +3429,14 @@ static void __lim_process_sme_addts_req(tpAniSirGlobal mac, uint32_t *pMsgBuf)
|
|||||||
pSirAddts->req.tspec.tsinfo.traffic.tsid,
|
pSirAddts->req.tspec.tsinfo.traffic.tsid,
|
||||||
pSirAddts->req.tspec.tsinfo.traffic.userPrio);
|
pSirAddts->req.tspec.tsinfo.traffic.userPrio);
|
||||||
|
|
||||||
if (!LIM_IS_STA_ROLE(psessionEntry)) {
|
if (!LIM_IS_STA_ROLE(pe_session)) {
|
||||||
pe_err("AddTs received on AP - ignoring");
|
pe_err("AddTs received on AP - ignoring");
|
||||||
goto send_failure_addts_rsp;
|
goto send_failure_addts_rsp;
|
||||||
}
|
}
|
||||||
|
|
||||||
pStaDs =
|
pStaDs =
|
||||||
dph_get_hash_entry(mac, DPH_STA_HASH_INDEX_PEER,
|
dph_get_hash_entry(mac, DPH_STA_HASH_INDEX_PEER,
|
||||||
&psessionEntry->dph.dphHashTable);
|
&pe_session->dph.dphHashTable);
|
||||||
|
|
||||||
if (pStaDs == NULL) {
|
if (pStaDs == NULL) {
|
||||||
pe_err("Cannot find AP context for addts req");
|
pe_err("Cannot find AP context for addts req");
|
||||||
@@ -3466,10 +3466,10 @@ static void __lim_process_sme_addts_req(tpAniSirGlobal mac, uint32_t *pMsgBuf)
|
|||||||
goto send_failure_addts_rsp;
|
goto send_failure_addts_rsp;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((psessionEntry->limSmeState != eLIM_SME_ASSOCIATED_STATE) &&
|
if ((pe_session->limSmeState != eLIM_SME_ASSOCIATED_STATE) &&
|
||||||
(psessionEntry->limSmeState != eLIM_SME_LINK_EST_STATE)) {
|
(pe_session->limSmeState != eLIM_SME_LINK_EST_STATE)) {
|
||||||
pe_err("AddTs received in invalid LIMsme state (%d)",
|
pe_err("AddTs received in invalid LIMsme state (%d)",
|
||||||
psessionEntry->limSmeState);
|
pe_session->limSmeState);
|
||||||
goto send_failure_addts_rsp;
|
goto send_failure_addts_rsp;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3482,7 +3482,7 @@ static void __lim_process_sme_addts_req(tpAniSirGlobal mac, uint32_t *pMsgBuf)
|
|||||||
goto send_failure_addts_rsp;
|
goto send_failure_addts_rsp;
|
||||||
}
|
}
|
||||||
|
|
||||||
sir_copy_mac_addr(peerMac, psessionEntry->bssId);
|
sir_copy_mac_addr(peerMac, pe_session->bssId);
|
||||||
|
|
||||||
/* save the addts request */
|
/* save the addts request */
|
||||||
mac->lim.gLimAddtsSent = true;
|
mac->lim.gLimAddtsSent = true;
|
||||||
@@ -3491,7 +3491,7 @@ static void __lim_process_sme_addts_req(tpAniSirGlobal mac, uint32_t *pMsgBuf)
|
|||||||
|
|
||||||
/* ship out the message now */
|
/* ship out the message now */
|
||||||
lim_send_addts_req_action_frame(mac, peerMac, &pSirAddts->req,
|
lim_send_addts_req_action_frame(mac, peerMac, &pSirAddts->req,
|
||||||
psessionEntry);
|
pe_session);
|
||||||
pe_err("Sent ADDTS request");
|
pe_err("Sent ADDTS request");
|
||||||
/* start a timer to wait for the response */
|
/* start a timer to wait for the response */
|
||||||
if (pSirAddts->timeout)
|
if (pSirAddts->timeout)
|
||||||
@@ -3513,7 +3513,7 @@ static void __lim_process_sme_addts_req(tpAniSirGlobal mac, uint32_t *pMsgBuf)
|
|||||||
goto send_failure_addts_rsp;
|
goto send_failure_addts_rsp;
|
||||||
}
|
}
|
||||||
MTRACE(mac_trace
|
MTRACE(mac_trace
|
||||||
(mac, TRACE_CODE_TIMER_ACTIVATE, psessionEntry->peSessionId,
|
(mac, TRACE_CODE_TIMER_ACTIVATE, pe_session->peSessionId,
|
||||||
eLIM_ADDTS_RSP_TIMER));
|
eLIM_ADDTS_RSP_TIMER));
|
||||||
|
|
||||||
/* add the sessionId to the timer object */
|
/* add the sessionId to the timer object */
|
||||||
@@ -3527,7 +3527,7 @@ static void __lim_process_sme_addts_req(tpAniSirGlobal mac, uint32_t *pMsgBuf)
|
|||||||
|
|
||||||
send_failure_addts_rsp:
|
send_failure_addts_rsp:
|
||||||
lim_send_sme_addts_rsp(mac, pSirAddts->rspReqd, QDF_STATUS_E_FAILURE,
|
lim_send_sme_addts_rsp(mac, pSirAddts->rspReqd, QDF_STATUS_E_FAILURE,
|
||||||
psessionEntry, pSirAddts->req.tspec,
|
pe_session, pSirAddts->req.tspec,
|
||||||
smesessionId, smetransactionId);
|
smesessionId, smetransactionId);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3538,7 +3538,7 @@ static void __lim_process_sme_delts_req(tpAniSirGlobal mac, uint32_t *pMsgBuf)
|
|||||||
tSirMacTSInfo *pTsinfo;
|
tSirMacTSInfo *pTsinfo;
|
||||||
tpSirDeltsReq pDeltsReq = (tpSirDeltsReq) pMsgBuf;
|
tpSirDeltsReq pDeltsReq = (tpSirDeltsReq) pMsgBuf;
|
||||||
tpDphHashNode pStaDs = NULL;
|
tpDphHashNode pStaDs = NULL;
|
||||||
struct pe_session *psessionEntry;
|
struct pe_session *pe_session;
|
||||||
uint8_t sessionId;
|
uint8_t sessionId;
|
||||||
uint32_t status = QDF_STATUS_SUCCESS;
|
uint32_t status = QDF_STATUS_SUCCESS;
|
||||||
uint8_t smesessionId;
|
uint8_t smesessionId;
|
||||||
@@ -3547,24 +3547,24 @@ static void __lim_process_sme_delts_req(tpAniSirGlobal mac, uint32_t *pMsgBuf)
|
|||||||
lim_get_session_info(mac, (uint8_t *) pMsgBuf, &smesessionId,
|
lim_get_session_info(mac, (uint8_t *) pMsgBuf, &smesessionId,
|
||||||
&smetransactionId);
|
&smetransactionId);
|
||||||
|
|
||||||
psessionEntry = pe_find_session_by_bssid(mac,
|
pe_session = pe_find_session_by_bssid(mac,
|
||||||
pDeltsReq->bssid.bytes,
|
pDeltsReq->bssid.bytes,
|
||||||
&sessionId);
|
&sessionId);
|
||||||
if (psessionEntry == NULL) {
|
if (pe_session == NULL) {
|
||||||
pe_err("Session Does not exist for given bssId");
|
pe_err("Session Does not exist for given bssId");
|
||||||
status = QDF_STATUS_E_FAILURE;
|
status = QDF_STATUS_E_FAILURE;
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
#ifdef FEATURE_WLAN_DIAG_SUPPORT_LIM /* FEATURE_WLAN_DIAG_SUPPORT */
|
#ifdef FEATURE_WLAN_DIAG_SUPPORT_LIM /* FEATURE_WLAN_DIAG_SUPPORT */
|
||||||
lim_diag_event_report(mac, WLAN_PE_DIAG_DELTS_REQ_EVENT, psessionEntry, 0,
|
lim_diag_event_report(mac, WLAN_PE_DIAG_DELTS_REQ_EVENT, pe_session, 0,
|
||||||
0);
|
0);
|
||||||
#endif /* FEATURE_WLAN_DIAG_SUPPORT */
|
#endif /* FEATURE_WLAN_DIAG_SUPPORT */
|
||||||
|
|
||||||
if (QDF_STATUS_SUCCESS !=
|
if (QDF_STATUS_SUCCESS !=
|
||||||
lim_validate_delts_req(mac, pDeltsReq, peerMacAddr, psessionEntry)) {
|
lim_validate_delts_req(mac, pDeltsReq, peerMacAddr, pe_session)) {
|
||||||
pe_err("lim_validate_delts_req failed");
|
pe_err("lim_validate_delts_req failed");
|
||||||
status = QDF_STATUS_E_FAILURE;
|
status = QDF_STATUS_E_FAILURE;
|
||||||
lim_send_sme_delts_rsp(mac, pDeltsReq, QDF_STATUS_E_FAILURE, psessionEntry,
|
lim_send_sme_delts_rsp(mac, pDeltsReq, QDF_STATUS_E_FAILURE, pe_session,
|
||||||
smesessionId, smetransactionId);
|
smesessionId, smetransactionId);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -3576,7 +3576,7 @@ static void __lim_process_sme_delts_req(tpAniSirGlobal mac, uint32_t *pMsgBuf)
|
|||||||
lim_send_delts_req_action_frame(mac, peerMacAddr,
|
lim_send_delts_req_action_frame(mac, peerMacAddr,
|
||||||
pDeltsReq->req.wmeTspecPresent,
|
pDeltsReq->req.wmeTspecPresent,
|
||||||
&pDeltsReq->req.tsinfo,
|
&pDeltsReq->req.tsinfo,
|
||||||
&pDeltsReq->req.tspec, psessionEntry);
|
&pDeltsReq->req.tspec, pe_session);
|
||||||
|
|
||||||
pTsinfo =
|
pTsinfo =
|
||||||
pDeltsReq->req.wmeTspecPresent ? &pDeltsReq->req.tspec.
|
pDeltsReq->req.wmeTspecPresent ? &pDeltsReq->req.tspec.
|
||||||
@@ -3586,7 +3586,7 @@ static void __lim_process_sme_delts_req(tpAniSirGlobal mac, uint32_t *pMsgBuf)
|
|||||||
* dynamic UAPSD mask. The AC for this TSPEC to be deleted
|
* dynamic UAPSD mask. The AC for this TSPEC to be deleted
|
||||||
* is no longer trigger enabled or delivery enabled
|
* is no longer trigger enabled or delivery enabled
|
||||||
*/
|
*/
|
||||||
lim_set_tspec_uapsd_mask_per_session(mac, psessionEntry,
|
lim_set_tspec_uapsd_mask_per_session(mac, pe_session,
|
||||||
pTsinfo, CLEAR_UAPSD_MASK);
|
pTsinfo, CLEAR_UAPSD_MASK);
|
||||||
|
|
||||||
/* We're deleting the TSPEC, so this particular AC is no longer
|
/* We're deleting the TSPEC, so this particular AC is no longer
|
||||||
@@ -3598,28 +3598,28 @@ static void __lim_process_sme_delts_req(tpAniSirGlobal mac, uint32_t *pMsgBuf)
|
|||||||
ac = upToAc(pTsinfo->traffic.userPrio);
|
ac = upToAc(pTsinfo->traffic.userPrio);
|
||||||
|
|
||||||
if (pTsinfo->traffic.direction == SIR_MAC_DIRECTION_UPLINK) {
|
if (pTsinfo->traffic.direction == SIR_MAC_DIRECTION_UPLINK) {
|
||||||
psessionEntry->gAcAdmitMask[SIR_MAC_DIRECTION_UPLINK] &=
|
pe_session->gAcAdmitMask[SIR_MAC_DIRECTION_UPLINK] &=
|
||||||
~(1 << ac);
|
~(1 << ac);
|
||||||
} else if (pTsinfo->traffic.direction ==
|
} else if (pTsinfo->traffic.direction ==
|
||||||
SIR_MAC_DIRECTION_DNLINK) {
|
SIR_MAC_DIRECTION_DNLINK) {
|
||||||
psessionEntry->gAcAdmitMask[SIR_MAC_DIRECTION_DNLINK] &=
|
pe_session->gAcAdmitMask[SIR_MAC_DIRECTION_DNLINK] &=
|
||||||
~(1 << ac);
|
~(1 << ac);
|
||||||
} else if (pTsinfo->traffic.direction ==
|
} else if (pTsinfo->traffic.direction ==
|
||||||
SIR_MAC_DIRECTION_BIDIR) {
|
SIR_MAC_DIRECTION_BIDIR) {
|
||||||
psessionEntry->gAcAdmitMask[SIR_MAC_DIRECTION_UPLINK] &=
|
pe_session->gAcAdmitMask[SIR_MAC_DIRECTION_UPLINK] &=
|
||||||
~(1 << ac);
|
~(1 << ac);
|
||||||
psessionEntry->gAcAdmitMask[SIR_MAC_DIRECTION_DNLINK] &=
|
pe_session->gAcAdmitMask[SIR_MAC_DIRECTION_DNLINK] &=
|
||||||
~(1 << ac);
|
~(1 << ac);
|
||||||
}
|
}
|
||||||
|
|
||||||
lim_set_active_edca_params(mac, psessionEntry->gLimEdcaParams,
|
lim_set_active_edca_params(mac, pe_session->gLimEdcaParams,
|
||||||
psessionEntry);
|
pe_session);
|
||||||
|
|
||||||
pStaDs =
|
pStaDs =
|
||||||
dph_get_hash_entry(mac, DPH_STA_HASH_INDEX_PEER,
|
dph_get_hash_entry(mac, DPH_STA_HASH_INDEX_PEER,
|
||||||
&psessionEntry->dph.dphHashTable);
|
&pe_session->dph.dphHashTable);
|
||||||
if (pStaDs != NULL) {
|
if (pStaDs != NULL) {
|
||||||
lim_send_edca_params(mac, psessionEntry->gLimEdcaParamsActive,
|
lim_send_edca_params(mac, pe_session->gLimEdcaParamsActive,
|
||||||
pStaDs->bssId, false);
|
pStaDs->bssId, false);
|
||||||
status = QDF_STATUS_SUCCESS;
|
status = QDF_STATUS_SUCCESS;
|
||||||
} else {
|
} else {
|
||||||
@@ -3627,31 +3627,31 @@ static void __lim_process_sme_delts_req(tpAniSirGlobal mac, uint32_t *pMsgBuf)
|
|||||||
status = QDF_STATUS_E_FAILURE;
|
status = QDF_STATUS_E_FAILURE;
|
||||||
}
|
}
|
||||||
#ifdef FEATURE_WLAN_ESE
|
#ifdef FEATURE_WLAN_ESE
|
||||||
lim_send_sme_tsm_ie_ind(mac, psessionEntry, 0, 0, 0);
|
lim_send_sme_tsm_ie_ind(mac, pe_session, 0, 0, 0);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* send an sme response back */
|
/* send an sme response back */
|
||||||
end:
|
end:
|
||||||
lim_send_sme_delts_rsp(mac, pDeltsReq, QDF_STATUS_SUCCESS, psessionEntry,
|
lim_send_sme_delts_rsp(mac, pDeltsReq, QDF_STATUS_SUCCESS, pe_session,
|
||||||
smesessionId, smetransactionId);
|
smesessionId, smetransactionId);
|
||||||
}
|
}
|
||||||
|
|
||||||
void lim_process_sme_addts_rsp_timeout(tpAniSirGlobal mac, uint32_t param)
|
void lim_process_sme_addts_rsp_timeout(tpAniSirGlobal mac, uint32_t param)
|
||||||
{
|
{
|
||||||
/* fetch the sessionEntry based on the sessionId */
|
/* fetch the pe_session based on the sessionId */
|
||||||
struct pe_session *psessionEntry;
|
struct pe_session *pe_session;
|
||||||
|
|
||||||
psessionEntry = pe_find_session_by_session_id(mac,
|
pe_session = pe_find_session_by_session_id(mac,
|
||||||
mac->lim.limTimers.gLimAddtsRspTimer.
|
mac->lim.limTimers.gLimAddtsRspTimer.
|
||||||
sessionId);
|
sessionId);
|
||||||
if (psessionEntry == NULL) {
|
if (pe_session == NULL) {
|
||||||
pe_err("Session Does not exist for given sessionID");
|
pe_err("Session Does not exist for given sessionID");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!LIM_IS_STA_ROLE(psessionEntry)) {
|
if (!LIM_IS_STA_ROLE(pe_session)) {
|
||||||
pe_warn("AddtsRspTimeout in non-Sta role (%d)",
|
pe_warn("AddtsRspTimeout in non-Sta role (%d)",
|
||||||
GET_LIM_SYSTEM_ROLE(psessionEntry));
|
GET_LIM_SYSTEM_ROLE(pe_session));
|
||||||
mac->lim.gLimAddtsSent = false;
|
mac->lim.gLimAddtsSent = false;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -3671,9 +3671,9 @@ void lim_process_sme_addts_rsp_timeout(tpAniSirGlobal mac, uint32_t param)
|
|||||||
mac->lim.gLimAddtsRspTimerCount++;
|
mac->lim.gLimAddtsRspTimerCount++;
|
||||||
|
|
||||||
lim_send_sme_addts_rsp(mac, true, eSIR_SME_ADDTS_RSP_TIMEOUT,
|
lim_send_sme_addts_rsp(mac, true, eSIR_SME_ADDTS_RSP_TIMEOUT,
|
||||||
psessionEntry, mac->lim.gLimAddtsReq.req.tspec,
|
pe_session, mac->lim.gLimAddtsReq.req.tspec,
|
||||||
psessionEntry->smeSessionId,
|
pe_session->smeSessionId,
|
||||||
psessionEntry->transactionId);
|
pe_session->transactionId);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef QCA_SUPPORT_CP_STATS
|
#ifndef QCA_SUPPORT_CP_STATS
|
||||||
@@ -3866,13 +3866,13 @@ static void lim_process_sme_update_config(tpAniSirGlobal mac_ctx,
|
|||||||
|
|
||||||
void
|
void
|
||||||
lim_send_vdev_restart(tpAniSirGlobal mac,
|
lim_send_vdev_restart(tpAniSirGlobal mac,
|
||||||
struct pe_session *psessionEntry, uint8_t sessionId)
|
struct pe_session *pe_session, uint8_t sessionId)
|
||||||
{
|
{
|
||||||
tpHalHiddenSsidVdevRestart pHalHiddenSsidVdevRestart = NULL;
|
tpHalHiddenSsidVdevRestart pHalHiddenSsidVdevRestart = NULL;
|
||||||
struct scheduler_msg msgQ = {0};
|
struct scheduler_msg msgQ = {0};
|
||||||
QDF_STATUS retCode = QDF_STATUS_SUCCESS;
|
QDF_STATUS retCode = QDF_STATUS_SUCCESS;
|
||||||
|
|
||||||
if (psessionEntry == NULL) {
|
if (pe_session == NULL) {
|
||||||
pe_err("Invalid parameters");
|
pe_err("Invalid parameters");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -3882,9 +3882,9 @@ lim_send_vdev_restart(tpAniSirGlobal mac,
|
|||||||
if (!pHalHiddenSsidVdevRestart)
|
if (!pHalHiddenSsidVdevRestart)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
pHalHiddenSsidVdevRestart->ssidHidden = psessionEntry->ssidHidden;
|
pHalHiddenSsidVdevRestart->ssidHidden = pe_session->ssidHidden;
|
||||||
pHalHiddenSsidVdevRestart->sessionId = sessionId;
|
pHalHiddenSsidVdevRestart->sessionId = sessionId;
|
||||||
pHalHiddenSsidVdevRestart->pe_session_id = psessionEntry->peSessionId;
|
pHalHiddenSsidVdevRestart->pe_session_id = pe_session->peSessionId;
|
||||||
|
|
||||||
msgQ.type = WMA_HIDDEN_SSID_VDEV_RESTART;
|
msgQ.type = WMA_HIDDEN_SSID_VDEV_RESTART;
|
||||||
msgQ.bodyptr = pHalHiddenSsidVdevRestart;
|
msgQ.bodyptr = pHalHiddenSsidVdevRestart;
|
||||||
@@ -4069,7 +4069,7 @@ static void __lim_process_sme_session_update(tpAniSirGlobal mac_ctx,
|
|||||||
static void __lim_process_sme_change_bi(tpAniSirGlobal mac, uint32_t *pMsgBuf)
|
static void __lim_process_sme_change_bi(tpAniSirGlobal mac, uint32_t *pMsgBuf)
|
||||||
{
|
{
|
||||||
tpSirChangeBIParams pChangeBIParams;
|
tpSirChangeBIParams pChangeBIParams;
|
||||||
struct pe_session *psessionEntry;
|
struct pe_session *pe_session;
|
||||||
uint8_t sessionId = 0;
|
uint8_t sessionId = 0;
|
||||||
tUpdateBeaconParams beaconParams;
|
tUpdateBeaconParams beaconParams;
|
||||||
|
|
||||||
@@ -4083,18 +4083,18 @@ static void __lim_process_sme_change_bi(tpAniSirGlobal mac, uint32_t *pMsgBuf)
|
|||||||
qdf_mem_zero(&beaconParams, sizeof(tUpdateBeaconParams));
|
qdf_mem_zero(&beaconParams, sizeof(tUpdateBeaconParams));
|
||||||
pChangeBIParams = (tpSirChangeBIParams) pMsgBuf;
|
pChangeBIParams = (tpSirChangeBIParams) pMsgBuf;
|
||||||
|
|
||||||
psessionEntry = pe_find_session_by_bssid(mac,
|
pe_session = pe_find_session_by_bssid(mac,
|
||||||
pChangeBIParams->bssid.bytes,
|
pChangeBIParams->bssid.bytes,
|
||||||
&sessionId);
|
&sessionId);
|
||||||
if (psessionEntry == NULL) {
|
if (pe_session == NULL) {
|
||||||
pe_err("Session does not exist for given BSSID");
|
pe_err("Session does not exist for given BSSID");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*Update sessionEntry Beacon Interval */
|
/*Update pe_session Beacon Interval */
|
||||||
if (psessionEntry->beaconParams.beaconInterval !=
|
if (pe_session->beaconParams.beaconInterval !=
|
||||||
pChangeBIParams->beaconInterval) {
|
pChangeBIParams->beaconInterval) {
|
||||||
psessionEntry->beaconParams.beaconInterval =
|
pe_session->beaconParams.beaconInterval =
|
||||||
pChangeBIParams->beaconInterval;
|
pChangeBIParams->beaconInterval;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -4109,15 +4109,15 @@ static void __lim_process_sme_change_bi(tpAniSirGlobal mac, uint32_t *pMsgBuf)
|
|||||||
|
|
||||||
if (false == mac->sap.SapDfsInfo.is_dfs_cac_timer_running) {
|
if (false == mac->sap.SapDfsInfo.is_dfs_cac_timer_running) {
|
||||||
/* Update beacon */
|
/* Update beacon */
|
||||||
sch_set_fixed_beacon_fields(mac, psessionEntry);
|
sch_set_fixed_beacon_fields(mac, pe_session);
|
||||||
|
|
||||||
beaconParams.bssIdx = psessionEntry->bssIdx;
|
beaconParams.bssIdx = pe_session->bssIdx;
|
||||||
/* Set change in beacon Interval */
|
/* Set change in beacon Interval */
|
||||||
beaconParams.beaconInterval =
|
beaconParams.beaconInterval =
|
||||||
pChangeBIParams->beaconInterval;
|
pChangeBIParams->beaconInterval;
|
||||||
beaconParams.paramChangeBitmap =
|
beaconParams.paramChangeBitmap =
|
||||||
PARAM_BCN_INTERVAL_CHANGED;
|
PARAM_BCN_INTERVAL_CHANGED;
|
||||||
lim_send_beacon_params(mac, &beaconParams, psessionEntry);
|
lim_send_beacon_params(mac, &beaconParams, pe_session);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -4129,7 +4129,7 @@ static void __lim_process_sme_set_ht2040_mode(tpAniSirGlobal mac,
|
|||||||
uint32_t *pMsgBuf)
|
uint32_t *pMsgBuf)
|
||||||
{
|
{
|
||||||
tpSirSetHT2040Mode pSetHT2040Mode;
|
tpSirSetHT2040Mode pSetHT2040Mode;
|
||||||
struct pe_session *psessionEntry;
|
struct pe_session *pe_session;
|
||||||
uint8_t sessionId = 0;
|
uint8_t sessionId = 0;
|
||||||
struct scheduler_msg msg = {0};
|
struct scheduler_msg msg = {0};
|
||||||
tUpdateVHTOpMode *pHtOpMode = NULL;
|
tUpdateVHTOpMode *pHtOpMode = NULL;
|
||||||
@@ -4144,10 +4144,10 @@ static void __lim_process_sme_set_ht2040_mode(tpAniSirGlobal mac,
|
|||||||
|
|
||||||
pSetHT2040Mode = (tpSirSetHT2040Mode) pMsgBuf;
|
pSetHT2040Mode = (tpSirSetHT2040Mode) pMsgBuf;
|
||||||
|
|
||||||
psessionEntry = pe_find_session_by_bssid(mac,
|
pe_session = pe_find_session_by_bssid(mac,
|
||||||
pSetHT2040Mode->bssid.bytes,
|
pSetHT2040Mode->bssid.bytes,
|
||||||
&sessionId);
|
&sessionId);
|
||||||
if (psessionEntry == NULL) {
|
if (pe_session == NULL) {
|
||||||
pe_debug("Session does not exist for given BSSID");
|
pe_debug("Session does not exist for given BSSID");
|
||||||
lim_print_mac_addr(mac, pSetHT2040Mode->bssid.bytes, LOGD);
|
lim_print_mac_addr(mac, pSetHT2040Mode->bssid.bytes, LOGD);
|
||||||
return;
|
return;
|
||||||
@@ -4155,28 +4155,28 @@ static void __lim_process_sme_set_ht2040_mode(tpAniSirGlobal mac,
|
|||||||
|
|
||||||
pe_debug("Update session entry for cbMod=%d",
|
pe_debug("Update session entry for cbMod=%d",
|
||||||
pSetHT2040Mode->cbMode);
|
pSetHT2040Mode->cbMode);
|
||||||
/*Update sessionEntry HT related fields */
|
/*Update pe_session HT related fields */
|
||||||
switch (pSetHT2040Mode->cbMode) {
|
switch (pSetHT2040Mode->cbMode) {
|
||||||
case PHY_SINGLE_CHANNEL_CENTERED:
|
case PHY_SINGLE_CHANNEL_CENTERED:
|
||||||
psessionEntry->htSecondaryChannelOffset =
|
pe_session->htSecondaryChannelOffset =
|
||||||
PHY_SINGLE_CHANNEL_CENTERED;
|
PHY_SINGLE_CHANNEL_CENTERED;
|
||||||
psessionEntry->htRecommendedTxWidthSet = 0;
|
pe_session->htRecommendedTxWidthSet = 0;
|
||||||
if (pSetHT2040Mode->obssEnabled)
|
if (pSetHT2040Mode->obssEnabled)
|
||||||
psessionEntry->htSupportedChannelWidthSet
|
pe_session->htSupportedChannelWidthSet
|
||||||
= eHT_CHANNEL_WIDTH_40MHZ;
|
= eHT_CHANNEL_WIDTH_40MHZ;
|
||||||
else
|
else
|
||||||
psessionEntry->htSupportedChannelWidthSet
|
pe_session->htSupportedChannelWidthSet
|
||||||
= eHT_CHANNEL_WIDTH_20MHZ;
|
= eHT_CHANNEL_WIDTH_20MHZ;
|
||||||
break;
|
break;
|
||||||
case PHY_DOUBLE_CHANNEL_LOW_PRIMARY:
|
case PHY_DOUBLE_CHANNEL_LOW_PRIMARY:
|
||||||
psessionEntry->htSecondaryChannelOffset =
|
pe_session->htSecondaryChannelOffset =
|
||||||
PHY_DOUBLE_CHANNEL_LOW_PRIMARY;
|
PHY_DOUBLE_CHANNEL_LOW_PRIMARY;
|
||||||
psessionEntry->htRecommendedTxWidthSet = 1;
|
pe_session->htRecommendedTxWidthSet = 1;
|
||||||
break;
|
break;
|
||||||
case PHY_DOUBLE_CHANNEL_HIGH_PRIMARY:
|
case PHY_DOUBLE_CHANNEL_HIGH_PRIMARY:
|
||||||
psessionEntry->htSecondaryChannelOffset =
|
pe_session->htSecondaryChannelOffset =
|
||||||
PHY_DOUBLE_CHANNEL_HIGH_PRIMARY;
|
PHY_DOUBLE_CHANNEL_HIGH_PRIMARY;
|
||||||
psessionEntry->htRecommendedTxWidthSet = 1;
|
pe_session->htRecommendedTxWidthSet = 1;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
pe_err("Invalid cbMode");
|
pe_err("Invalid cbMode");
|
||||||
@@ -4184,13 +4184,13 @@ static void __lim_process_sme_set_ht2040_mode(tpAniSirGlobal mac,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Update beacon */
|
/* Update beacon */
|
||||||
sch_set_fixed_beacon_fields(mac, psessionEntry);
|
sch_set_fixed_beacon_fields(mac, pe_session);
|
||||||
lim_send_beacon_ind(mac, psessionEntry, REASON_SET_HT2040);
|
lim_send_beacon_ind(mac, pe_session, REASON_SET_HT2040);
|
||||||
|
|
||||||
/* update OP Mode for each associated peer */
|
/* update OP Mode for each associated peer */
|
||||||
for (staId = 0; staId < psessionEntry->dph.dphHashTable.size; staId++) {
|
for (staId = 0; staId < pe_session->dph.dphHashTable.size; staId++) {
|
||||||
pStaDs = dph_get_hash_entry(mac, staId,
|
pStaDs = dph_get_hash_entry(mac, staId,
|
||||||
&psessionEntry->dph.dphHashTable);
|
&pe_session->dph.dphHashTable);
|
||||||
if (NULL == pStaDs)
|
if (NULL == pStaDs)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
@@ -4199,7 +4199,7 @@ static void __lim_process_sme_set_ht2040_mode(tpAniSirGlobal mac,
|
|||||||
if (!pHtOpMode)
|
if (!pHtOpMode)
|
||||||
return;
|
return;
|
||||||
pHtOpMode->opMode =
|
pHtOpMode->opMode =
|
||||||
(psessionEntry->htSecondaryChannelOffset ==
|
(pe_session->htSecondaryChannelOffset ==
|
||||||
PHY_SINGLE_CHANNEL_CENTERED) ?
|
PHY_SINGLE_CHANNEL_CENTERED) ?
|
||||||
eHT_CHANNEL_WIDTH_20MHZ : eHT_CHANNEL_WIDTH_40MHZ;
|
eHT_CHANNEL_WIDTH_20MHZ : eHT_CHANNEL_WIDTH_40MHZ;
|
||||||
pHtOpMode->staId = staId;
|
pHtOpMode->staId = staId;
|
||||||
@@ -4274,18 +4274,18 @@ static void __lim_process_report_message(tpAniSirGlobal mac,
|
|||||||
* NOTE:
|
* NOTE:
|
||||||
*
|
*
|
||||||
* @param txPower txPower to be set.
|
* @param txPower txPower to be set.
|
||||||
* @param pSessionEntry session entry.
|
* @param pe_session session entry.
|
||||||
* @return None
|
* @return None
|
||||||
*/
|
*/
|
||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
lim_send_set_max_tx_power_req(tpAniSirGlobal mac, int8_t txPower,
|
lim_send_set_max_tx_power_req(tpAniSirGlobal mac, int8_t txPower,
|
||||||
struct pe_session *pSessionEntry)
|
struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
tpMaxTxPowerParams pMaxTxParams = NULL;
|
tpMaxTxPowerParams pMaxTxParams = NULL;
|
||||||
QDF_STATUS retCode = QDF_STATUS_SUCCESS;
|
QDF_STATUS retCode = QDF_STATUS_SUCCESS;
|
||||||
struct scheduler_msg msgQ = {0};
|
struct scheduler_msg msgQ = {0};
|
||||||
|
|
||||||
if (pSessionEntry == NULL) {
|
if (pe_session == NULL) {
|
||||||
pe_err("Invalid parameters");
|
pe_err("Invalid parameters");
|
||||||
return QDF_STATUS_E_FAILURE;
|
return QDF_STATUS_E_FAILURE;
|
||||||
}
|
}
|
||||||
@@ -4294,17 +4294,17 @@ lim_send_set_max_tx_power_req(tpAniSirGlobal mac, int8_t txPower,
|
|||||||
if (!pMaxTxParams)
|
if (!pMaxTxParams)
|
||||||
return QDF_STATUS_E_NOMEM;
|
return QDF_STATUS_E_NOMEM;
|
||||||
pMaxTxParams->power = txPower;
|
pMaxTxParams->power = txPower;
|
||||||
qdf_mem_copy(pMaxTxParams->bssId.bytes, pSessionEntry->bssId,
|
qdf_mem_copy(pMaxTxParams->bssId.bytes, pe_session->bssId,
|
||||||
QDF_MAC_ADDR_SIZE);
|
QDF_MAC_ADDR_SIZE);
|
||||||
qdf_mem_copy(pMaxTxParams->selfStaMacAddr.bytes,
|
qdf_mem_copy(pMaxTxParams->selfStaMacAddr.bytes,
|
||||||
pSessionEntry->selfMacAddr,
|
pe_session->selfMacAddr,
|
||||||
QDF_MAC_ADDR_SIZE);
|
QDF_MAC_ADDR_SIZE);
|
||||||
|
|
||||||
msgQ.type = WMA_SET_MAX_TX_POWER_REQ;
|
msgQ.type = WMA_SET_MAX_TX_POWER_REQ;
|
||||||
msgQ.bodyptr = pMaxTxParams;
|
msgQ.bodyptr = pMaxTxParams;
|
||||||
msgQ.bodyval = 0;
|
msgQ.bodyval = 0;
|
||||||
pe_debug("Post WMA_SET_MAX_TX_POWER_REQ to WMA");
|
pe_debug("Post WMA_SET_MAX_TX_POWER_REQ to WMA");
|
||||||
MTRACE(mac_trace_msg_tx(mac, pSessionEntry->peSessionId, msgQ.type));
|
MTRACE(mac_trace_msg_tx(mac, pe_session->peSessionId, msgQ.type));
|
||||||
retCode = wma_post_ctrl_msg(mac, &msgQ);
|
retCode = wma_post_ctrl_msg(mac, &msgQ);
|
||||||
if (QDF_STATUS_SUCCESS != retCode) {
|
if (QDF_STATUS_SUCCESS != retCode) {
|
||||||
pe_err("wma_post_ctrl_msg() failed");
|
pe_err("wma_post_ctrl_msg() failed");
|
||||||
@@ -4408,7 +4408,7 @@ static void
|
|||||||
__lim_process_sme_reset_ap_caps_change(tpAniSirGlobal mac, uint32_t *pMsgBuf)
|
__lim_process_sme_reset_ap_caps_change(tpAniSirGlobal mac, uint32_t *pMsgBuf)
|
||||||
{
|
{
|
||||||
tpSirResetAPCapsChange pResetCapsChange;
|
tpSirResetAPCapsChange pResetCapsChange;
|
||||||
struct pe_session *psessionEntry;
|
struct pe_session *pe_session;
|
||||||
uint8_t sessionId = 0;
|
uint8_t sessionId = 0;
|
||||||
|
|
||||||
if (pMsgBuf == NULL) {
|
if (pMsgBuf == NULL) {
|
||||||
@@ -4417,15 +4417,15 @@ __lim_process_sme_reset_ap_caps_change(tpAniSirGlobal mac, uint32_t *pMsgBuf)
|
|||||||
}
|
}
|
||||||
|
|
||||||
pResetCapsChange = (tpSirResetAPCapsChange) pMsgBuf;
|
pResetCapsChange = (tpSirResetAPCapsChange) pMsgBuf;
|
||||||
psessionEntry =
|
pe_session =
|
||||||
pe_find_session_by_bssid(mac, pResetCapsChange->bssId.bytes,
|
pe_find_session_by_bssid(mac, pResetCapsChange->bssId.bytes,
|
||||||
&sessionId);
|
&sessionId);
|
||||||
if (psessionEntry == NULL) {
|
if (pe_session == NULL) {
|
||||||
pe_err("Session does not exist for given BSSID");
|
pe_err("Session does not exist for given BSSID");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
psessionEntry->limSentCapsChangeNtf = false;
|
pe_session->limSentCapsChangeNtf = false;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -5161,7 +5161,7 @@ bool lim_process_sme_req_messages(tpAniSirGlobal mac,
|
|||||||
static void lim_process_sme_start_beacon_req(tpAniSirGlobal mac, uint32_t *pMsg)
|
static void lim_process_sme_start_beacon_req(tpAniSirGlobal mac, uint32_t *pMsg)
|
||||||
{
|
{
|
||||||
tpSirStartBeaconIndication pBeaconStartInd;
|
tpSirStartBeaconIndication pBeaconStartInd;
|
||||||
struct pe_session *psessionEntry;
|
struct pe_session *pe_session;
|
||||||
uint8_t sessionId; /* PE sessionID */
|
uint8_t sessionId; /* PE sessionID */
|
||||||
|
|
||||||
if (pMsg == NULL) {
|
if (pMsg == NULL) {
|
||||||
@@ -5170,10 +5170,10 @@ static void lim_process_sme_start_beacon_req(tpAniSirGlobal mac, uint32_t *pMsg)
|
|||||||
}
|
}
|
||||||
|
|
||||||
pBeaconStartInd = (tpSirStartBeaconIndication) pMsg;
|
pBeaconStartInd = (tpSirStartBeaconIndication) pMsg;
|
||||||
psessionEntry = pe_find_session_by_bssid(mac,
|
pe_session = pe_find_session_by_bssid(mac,
|
||||||
pBeaconStartInd->bssid,
|
pBeaconStartInd->bssid,
|
||||||
&sessionId);
|
&sessionId);
|
||||||
if (psessionEntry == NULL) {
|
if (pe_session == NULL) {
|
||||||
lim_print_mac_addr(mac, pBeaconStartInd->bssid, LOGE);
|
lim_print_mac_addr(mac, pBeaconStartInd->bssid, LOGE);
|
||||||
pe_err("Session does not exist for given bssId");
|
pe_err("Session does not exist for given bssId");
|
||||||
return;
|
return;
|
||||||
@@ -5188,14 +5188,14 @@ static void lim_process_sme_start_beacon_req(tpAniSirGlobal mac, uint32_t *pMsg)
|
|||||||
* On a DFS Channel LIM does not start beacon
|
* On a DFS Channel LIM does not start beacon
|
||||||
* Tx right after the WMA_ADD_BSS_RSP.
|
* Tx right after the WMA_ADD_BSS_RSP.
|
||||||
*/
|
*/
|
||||||
lim_apply_configuration(mac, psessionEntry);
|
lim_apply_configuration(mac, pe_session);
|
||||||
QDF_TRACE(QDF_MODULE_ID_PE, QDF_TRACE_LEVEL_DEBUG,
|
QDF_TRACE(QDF_MODULE_ID_PE, QDF_TRACE_LEVEL_DEBUG,
|
||||||
FL("Start Beacon with ssid %s Ch %d"),
|
FL("Start Beacon with ssid %s Ch %d"),
|
||||||
psessionEntry->ssId.ssId,
|
pe_session->ssId.ssId,
|
||||||
psessionEntry->currentOperChannel);
|
pe_session->currentOperChannel);
|
||||||
lim_send_beacon(mac, psessionEntry);
|
lim_send_beacon(mac, pe_session);
|
||||||
lim_enable_obss_detection_config(mac, psessionEntry);
|
lim_enable_obss_detection_config(mac, pe_session);
|
||||||
lim_send_obss_color_collision_cfg(mac, psessionEntry,
|
lim_send_obss_color_collision_cfg(mac, pe_session,
|
||||||
OBSS_COLOR_COLLISION_DETECTION);
|
OBSS_COLOR_COLLISION_DETECTION);
|
||||||
} else {
|
} else {
|
||||||
pe_err("Invalid Beacon Start Indication");
|
pe_err("Invalid Beacon Start Indication");
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -51,7 +51,7 @@
|
|||||||
* lim_update_re_assoc_globals() - Update reassoc global data
|
* lim_update_re_assoc_globals() - Update reassoc global data
|
||||||
* @mac: Global MAC context
|
* @mac: Global MAC context
|
||||||
* @pAssocRsp: Reassociation response data
|
* @pAssocRsp: Reassociation response data
|
||||||
* @psessionEntry: PE Session
|
* @pe_session: PE Session
|
||||||
*
|
*
|
||||||
* This function is called to Update the Globals (LIM) during ReAssoc.
|
* This function is called to Update the Globals (LIM) during ReAssoc.
|
||||||
*
|
*
|
||||||
@@ -59,35 +59,35 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
void lim_update_re_assoc_globals(tpAniSirGlobal mac, tpSirAssocRsp pAssocRsp,
|
void lim_update_re_assoc_globals(tpAniSirGlobal mac, tpSirAssocRsp pAssocRsp,
|
||||||
struct pe_session *psessionEntry)
|
struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
/* Update the current Bss Information */
|
/* Update the current Bss Information */
|
||||||
qdf_mem_copy(psessionEntry->bssId,
|
qdf_mem_copy(pe_session->bssId,
|
||||||
psessionEntry->limReAssocbssId, sizeof(tSirMacAddr));
|
pe_session->limReAssocbssId, sizeof(tSirMacAddr));
|
||||||
psessionEntry->currentOperChannel = psessionEntry->limReassocChannelId;
|
pe_session->currentOperChannel = pe_session->limReassocChannelId;
|
||||||
psessionEntry->htSecondaryChannelOffset =
|
pe_session->htSecondaryChannelOffset =
|
||||||
psessionEntry->reAssocHtSupportedChannelWidthSet;
|
pe_session->reAssocHtSupportedChannelWidthSet;
|
||||||
psessionEntry->htRecommendedTxWidthSet =
|
pe_session->htRecommendedTxWidthSet =
|
||||||
psessionEntry->reAssocHtRecommendedTxWidthSet;
|
pe_session->reAssocHtRecommendedTxWidthSet;
|
||||||
psessionEntry->htSecondaryChannelOffset =
|
pe_session->htSecondaryChannelOffset =
|
||||||
psessionEntry->reAssocHtSecondaryChannelOffset;
|
pe_session->reAssocHtSecondaryChannelOffset;
|
||||||
psessionEntry->limCurrentBssCaps = psessionEntry->limReassocBssCaps;
|
pe_session->limCurrentBssCaps = pe_session->limReassocBssCaps;
|
||||||
psessionEntry->limCurrentBssQosCaps =
|
pe_session->limCurrentBssQosCaps =
|
||||||
psessionEntry->limReassocBssQosCaps;
|
pe_session->limReassocBssQosCaps;
|
||||||
psessionEntry->limCurrentBssPropCap =
|
pe_session->limCurrentBssPropCap =
|
||||||
psessionEntry->limReassocBssPropCap;
|
pe_session->limReassocBssPropCap;
|
||||||
|
|
||||||
qdf_mem_copy((uint8_t *) &psessionEntry->ssId,
|
qdf_mem_copy((uint8_t *) &pe_session->ssId,
|
||||||
(uint8_t *) &psessionEntry->limReassocSSID,
|
(uint8_t *) &pe_session->limReassocSSID,
|
||||||
psessionEntry->limReassocSSID.length + 1);
|
pe_session->limReassocSSID.length + 1);
|
||||||
|
|
||||||
/* Store assigned AID for TIM processing */
|
/* Store assigned AID for TIM processing */
|
||||||
psessionEntry->limAID = pAssocRsp->aid & 0x3FFF;
|
pe_session->limAID = pAssocRsp->aid & 0x3FFF;
|
||||||
/** Set the State Back to ReAssoc Rsp*/
|
/** Set the State Back to ReAssoc Rsp*/
|
||||||
psessionEntry->limMlmState = eLIM_MLM_WT_REASSOC_RSP_STATE;
|
pe_session->limMlmState = eLIM_MLM_WT_REASSOC_RSP_STATE;
|
||||||
MTRACE(mac_trace
|
MTRACE(mac_trace
|
||||||
(mac, TRACE_CODE_MLM_STATE, psessionEntry->peSessionId,
|
(mac, TRACE_CODE_MLM_STATE, pe_session->peSessionId,
|
||||||
psessionEntry->limMlmState));
|
pe_session->limMlmState));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -95,7 +95,7 @@ void lim_update_re_assoc_globals(tpAniSirGlobal mac, tpSirAssocRsp pAssocRsp,
|
|||||||
* @lim_handle_del_bss_in_re_assoc_context() - DEL BSS during reassociation
|
* @lim_handle_del_bss_in_re_assoc_context() - DEL BSS during reassociation
|
||||||
* @mac: Global MAC Context
|
* @mac: Global MAC Context
|
||||||
* @pStaDs: Station Hash entry
|
* @pStaDs: Station Hash entry
|
||||||
* @psessionEntry: PE Session
|
* @pe_session: PE Session
|
||||||
*
|
*
|
||||||
* While Processing the ReAssociation Response Frame in STA,
|
* While Processing the ReAssociation Response Frame in STA,
|
||||||
* a.immediately after receiving the Reassoc Response the RxCleanUp is
|
* a.immediately after receiving the Reassoc Response the RxCleanUp is
|
||||||
@@ -109,7 +109,7 @@ void lim_update_re_assoc_globals(tpAniSirGlobal mac, tpSirAssocRsp pAssocRsp,
|
|||||||
* Return: None
|
* Return: None
|
||||||
*/
|
*/
|
||||||
void lim_handle_del_bss_in_re_assoc_context(tpAniSirGlobal mac,
|
void lim_handle_del_bss_in_re_assoc_context(tpAniSirGlobal mac,
|
||||||
tpDphHashNode pStaDs, struct pe_session *psessionEntry)
|
tpDphHashNode pStaDs, struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
tLimMlmReassocCnf mlmReassocCnf;
|
tLimMlmReassocCnf mlmReassocCnf;
|
||||||
tpSirBssDescription bss_desc;
|
tpSirBssDescription bss_desc;
|
||||||
@@ -117,10 +117,10 @@ void lim_handle_del_bss_in_re_assoc_context(tpAniSirGlobal mac,
|
|||||||
* Skipped the DeleteDPH Hash Entry as we need it for the new BSS
|
* Skipped the DeleteDPH Hash Entry as we need it for the new BSS
|
||||||
* Set the MlmState to IDLE
|
* Set the MlmState to IDLE
|
||||||
*/
|
*/
|
||||||
psessionEntry->limMlmState = eLIM_MLM_IDLE_STATE;
|
pe_session->limMlmState = eLIM_MLM_IDLE_STATE;
|
||||||
/* Update PE session Id */
|
/* Update PE session Id */
|
||||||
mlmReassocCnf.sessionId = psessionEntry->peSessionId;
|
mlmReassocCnf.sessionId = pe_session->peSessionId;
|
||||||
switch (psessionEntry->limSmeState) {
|
switch (pe_session->limSmeState) {
|
||||||
case eLIM_SME_WT_REASSOC_STATE:
|
case eLIM_SME_WT_REASSOC_STATE:
|
||||||
{
|
{
|
||||||
tpSirAssocRsp assocRsp;
|
tpSirAssocRsp assocRsp;
|
||||||
@@ -134,26 +134,26 @@ void lim_handle_del_bss_in_re_assoc_context(tpAniSirGlobal mac,
|
|||||||
eSIR_SME_RESOURCES_UNAVAILABLE;
|
eSIR_SME_RESOURCES_UNAVAILABLE;
|
||||||
mlmReassocCnf.protStatusCode =
|
mlmReassocCnf.protStatusCode =
|
||||||
eSIR_MAC_UNSPEC_FAILURE_STATUS;
|
eSIR_MAC_UNSPEC_FAILURE_STATUS;
|
||||||
lim_delete_dph_hash_entry(mac, psessionEntry->bssId,
|
lim_delete_dph_hash_entry(mac, pe_session->bssId,
|
||||||
DPH_STA_HASH_INDEX_PEER, psessionEntry);
|
DPH_STA_HASH_INDEX_PEER, pe_session);
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
/* Delete the older STA Table entry */
|
/* Delete the older STA Table entry */
|
||||||
lim_delete_dph_hash_entry(mac, psessionEntry->bssId,
|
lim_delete_dph_hash_entry(mac, pe_session->bssId,
|
||||||
DPH_STA_HASH_INDEX_PEER, psessionEntry);
|
DPH_STA_HASH_INDEX_PEER, pe_session);
|
||||||
/*
|
/*
|
||||||
* Add an entry for AP to hash table
|
* Add an entry for AP to hash table
|
||||||
* maintained by DPH module
|
* maintained by DPH module
|
||||||
*/
|
*/
|
||||||
pStaDs = dph_add_hash_entry(mac,
|
pStaDs = dph_add_hash_entry(mac,
|
||||||
psessionEntry->limReAssocbssId,
|
pe_session->limReAssocbssId,
|
||||||
DPH_STA_HASH_INDEX_PEER,
|
DPH_STA_HASH_INDEX_PEER,
|
||||||
&psessionEntry->dph.dphHashTable);
|
&pe_session->dph.dphHashTable);
|
||||||
if (pStaDs == NULL) {
|
if (pStaDs == NULL) {
|
||||||
/* Could not add hash table entry */
|
/* Could not add hash table entry */
|
||||||
pe_err("could not add hash entry at DPH for");
|
pe_err("could not add hash entry at DPH for");
|
||||||
lim_print_mac_addr(mac,
|
lim_print_mac_addr(mac,
|
||||||
psessionEntry->limReAssocbssId, LOGE);
|
pe_session->limReAssocbssId, LOGE);
|
||||||
mlmReassocCnf.resultCode =
|
mlmReassocCnf.resultCode =
|
||||||
eSIR_SME_RESOURCES_UNAVAILABLE;
|
eSIR_SME_RESOURCES_UNAVAILABLE;
|
||||||
mlmReassocCnf.protStatusCode = eSIR_SME_SUCCESS;
|
mlmReassocCnf.protStatusCode = eSIR_SME_SUCCESS;
|
||||||
@@ -165,11 +165,11 @@ void lim_handle_del_bss_in_re_assoc_context(tpAniSirGlobal mac,
|
|||||||
* is being stored to be used here for sending ADDBSS
|
* is being stored to be used here for sending ADDBSS
|
||||||
*/
|
*/
|
||||||
assocRsp =
|
assocRsp =
|
||||||
(tpSirAssocRsp) psessionEntry->limAssocResponseData;
|
(tpSirAssocRsp) pe_session->limAssocResponseData;
|
||||||
lim_update_assoc_sta_datas(mac, pStaDs, assocRsp,
|
lim_update_assoc_sta_datas(mac, pStaDs, assocRsp,
|
||||||
psessionEntry);
|
pe_session);
|
||||||
lim_update_re_assoc_globals(mac, assocRsp, psessionEntry);
|
lim_update_re_assoc_globals(mac, assocRsp, pe_session);
|
||||||
bss_desc = &psessionEntry->pLimReAssocReq->bssDescription;
|
bss_desc = &pe_session->pLimReAssocReq->bssDescription;
|
||||||
lim_extract_ap_capabilities(mac,
|
lim_extract_ap_capabilities(mac,
|
||||||
(uint8_t *) bss_desc->ieFields,
|
(uint8_t *) bss_desc->ieFields,
|
||||||
lim_get_ielen_from_bss_description(bss_desc),
|
lim_get_ielen_from_bss_description(bss_desc),
|
||||||
@@ -178,12 +178,12 @@ void lim_handle_del_bss_in_re_assoc_context(tpAniSirGlobal mac,
|
|||||||
MLME_FORCE_POLICY_PROTECTION_DISABLE)
|
MLME_FORCE_POLICY_PROTECTION_DISABLE)
|
||||||
lim_decide_sta_protection_on_assoc(mac,
|
lim_decide_sta_protection_on_assoc(mac,
|
||||||
beacon_struct,
|
beacon_struct,
|
||||||
psessionEntry);
|
pe_session);
|
||||||
if (beacon_struct->erpPresent) {
|
if (beacon_struct->erpPresent) {
|
||||||
if (beacon_struct->erpIEInfo.barkerPreambleMode)
|
if (beacon_struct->erpIEInfo.barkerPreambleMode)
|
||||||
psessionEntry->beaconParams.fShortPreamble = 0;
|
pe_session->beaconParams.fShortPreamble = 0;
|
||||||
else
|
else
|
||||||
psessionEntry->beaconParams.fShortPreamble = 1;
|
pe_session->beaconParams.fShortPreamble = 1;
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
* updateBss flag is false, as in this case, PE is first
|
* updateBss flag is false, as in this case, PE is first
|
||||||
@@ -192,7 +192,7 @@ void lim_handle_del_bss_in_re_assoc_context(tpAniSirGlobal mac,
|
|||||||
if (QDF_STATUS_SUCCESS !=
|
if (QDF_STATUS_SUCCESS !=
|
||||||
lim_sta_send_add_bss(mac, assocRsp, beacon_struct,
|
lim_sta_send_add_bss(mac, assocRsp, beacon_struct,
|
||||||
bss_desc,
|
bss_desc,
|
||||||
false, psessionEntry)) {
|
false, pe_session)) {
|
||||||
pe_err("Posting ADDBSS in the ReAssocCtx Failed");
|
pe_err("Posting ADDBSS in the ReAssocCtx Failed");
|
||||||
retStatus = QDF_STATUS_E_FAILURE;
|
retStatus = QDF_STATUS_E_FAILURE;
|
||||||
}
|
}
|
||||||
@@ -208,7 +208,7 @@ void lim_handle_del_bss_in_re_assoc_context(tpAniSirGlobal mac,
|
|||||||
}
|
}
|
||||||
qdf_mem_free(assocRsp);
|
qdf_mem_free(assocRsp);
|
||||||
qdf_mem_free(beacon_struct);
|
qdf_mem_free(beacon_struct);
|
||||||
psessionEntry->limAssocResponseData = NULL;
|
pe_session->limAssocResponseData = NULL;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@@ -228,7 +228,7 @@ error:
|
|||||||
* @lim_handle_add_bss_in_re_assoc_context() - ADD BSS during reassociation
|
* @lim_handle_add_bss_in_re_assoc_context() - ADD BSS during reassociation
|
||||||
* @mac: Global MAC Context
|
* @mac: Global MAC Context
|
||||||
* @pStaDs: Station Hash entry
|
* @pStaDs: Station Hash entry
|
||||||
* @psessionEntry: PE Session
|
* @pe_session: PE Session
|
||||||
*
|
*
|
||||||
* While Processing the ReAssociation Response Frame in STA,
|
* While Processing the ReAssociation Response Frame in STA,
|
||||||
* a. immediately after receiving the Reassoc Response the RxCleanUp is
|
* a. immediately after receiving the Reassoc Response the RxCleanUp is
|
||||||
@@ -242,16 +242,16 @@ error:
|
|||||||
* Return: None
|
* Return: None
|
||||||
*/
|
*/
|
||||||
void lim_handle_add_bss_in_re_assoc_context(tpAniSirGlobal mac,
|
void lim_handle_add_bss_in_re_assoc_context(tpAniSirGlobal mac,
|
||||||
tpDphHashNode pStaDs, struct pe_session *psessionEntry)
|
tpDphHashNode pStaDs, struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
tLimMlmReassocCnf mlmReassocCnf;
|
tLimMlmReassocCnf mlmReassocCnf;
|
||||||
/** Skipped the DeleteDPH Hash Entry as we need it for the new BSS*/
|
/** Skipped the DeleteDPH Hash Entry as we need it for the new BSS*/
|
||||||
/** Set the MlmState to IDLE*/
|
/** Set the MlmState to IDLE*/
|
||||||
psessionEntry->limMlmState = eLIM_MLM_IDLE_STATE;
|
pe_session->limMlmState = eLIM_MLM_IDLE_STATE;
|
||||||
MTRACE(mac_trace
|
MTRACE(mac_trace
|
||||||
(mac, TRACE_CODE_MLM_STATE, psessionEntry->peSessionId,
|
(mac, TRACE_CODE_MLM_STATE, pe_session->peSessionId,
|
||||||
psessionEntry->limMlmState));
|
pe_session->limMlmState));
|
||||||
switch (psessionEntry->limSmeState) {
|
switch (pe_session->limSmeState) {
|
||||||
case eLIM_SME_WT_REASSOC_STATE: {
|
case eLIM_SME_WT_REASSOC_STATE: {
|
||||||
tpSirAssocRsp assocRsp;
|
tpSirAssocRsp assocRsp;
|
||||||
tpDphHashNode pStaDs;
|
tpDphHashNode pStaDs;
|
||||||
@@ -270,7 +270,7 @@ void lim_handle_add_bss_in_re_assoc_context(tpAniSirGlobal mac,
|
|||||||
/* Get the AP entry from DPH hash table */
|
/* Get the AP entry from DPH hash table */
|
||||||
pStaDs =
|
pStaDs =
|
||||||
dph_get_hash_entry(mac, DPH_STA_HASH_INDEX_PEER,
|
dph_get_hash_entry(mac, DPH_STA_HASH_INDEX_PEER,
|
||||||
&psessionEntry->dph.dphHashTable);
|
&pe_session->dph.dphHashTable);
|
||||||
if (pStaDs == NULL) {
|
if (pStaDs == NULL) {
|
||||||
pe_err("Fail to get STA PEER entry from hash");
|
pe_err("Fail to get STA PEER entry from hash");
|
||||||
mlmReassocCnf.resultCode =
|
mlmReassocCnf.resultCode =
|
||||||
@@ -284,16 +284,16 @@ void lim_handle_add_bss_in_re_assoc_context(tpAniSirGlobal mac,
|
|||||||
* is being stored to be used here for sending ADDBSS
|
* is being stored to be used here for sending ADDBSS
|
||||||
*/
|
*/
|
||||||
assocRsp =
|
assocRsp =
|
||||||
(tpSirAssocRsp) psessionEntry->limAssocResponseData;
|
(tpSirAssocRsp) pe_session->limAssocResponseData;
|
||||||
lim_update_assoc_sta_datas(mac, pStaDs, assocRsp,
|
lim_update_assoc_sta_datas(mac, pStaDs, assocRsp,
|
||||||
psessionEntry);
|
pe_session);
|
||||||
lim_update_re_assoc_globals(mac, assocRsp, psessionEntry);
|
lim_update_re_assoc_globals(mac, assocRsp, pe_session);
|
||||||
lim_extract_ap_capabilities(mac,
|
lim_extract_ap_capabilities(mac,
|
||||||
(uint8_t *) psessionEntry->
|
(uint8_t *) pe_session->
|
||||||
pLimReAssocReq->bssDescription.
|
pLimReAssocReq->bssDescription.
|
||||||
ieFields,
|
ieFields,
|
||||||
lim_get_ielen_from_bss_description
|
lim_get_ielen_from_bss_description
|
||||||
(&psessionEntry->
|
(&pe_session->
|
||||||
pLimReAssocReq->
|
pLimReAssocReq->
|
||||||
bssDescription),
|
bssDescription),
|
||||||
pBeaconStruct);
|
pBeaconStruct);
|
||||||
@@ -301,23 +301,23 @@ void lim_handle_add_bss_in_re_assoc_context(tpAniSirGlobal mac,
|
|||||||
MLME_FORCE_POLICY_PROTECTION_DISABLE)
|
MLME_FORCE_POLICY_PROTECTION_DISABLE)
|
||||||
lim_decide_sta_protection_on_assoc(mac,
|
lim_decide_sta_protection_on_assoc(mac,
|
||||||
pBeaconStruct,
|
pBeaconStruct,
|
||||||
psessionEntry);
|
pe_session);
|
||||||
|
|
||||||
if (pBeaconStruct->erpPresent) {
|
if (pBeaconStruct->erpPresent) {
|
||||||
if (pBeaconStruct->erpIEInfo.barkerPreambleMode)
|
if (pBeaconStruct->erpIEInfo.barkerPreambleMode)
|
||||||
psessionEntry->beaconParams.
|
pe_session->beaconParams.
|
||||||
fShortPreamble = 0;
|
fShortPreamble = 0;
|
||||||
else
|
else
|
||||||
psessionEntry->beaconParams.
|
pe_session->beaconParams.
|
||||||
fShortPreamble = 1;
|
fShortPreamble = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
psessionEntry->isNonRoamReassoc = 1;
|
pe_session->isNonRoamReassoc = 1;
|
||||||
if (QDF_STATUS_SUCCESS !=
|
if (QDF_STATUS_SUCCESS !=
|
||||||
lim_sta_send_add_bss(mac, assocRsp, pBeaconStruct,
|
lim_sta_send_add_bss(mac, assocRsp, pBeaconStruct,
|
||||||
&psessionEntry->pLimReAssocReq->
|
&pe_session->pLimReAssocReq->
|
||||||
bssDescription, true,
|
bssDescription, true,
|
||||||
psessionEntry)) {
|
pe_session)) {
|
||||||
pe_err("Post ADDBSS in the ReAssocCtxt Failed");
|
pe_err("Post ADDBSS in the ReAssocCtxt Failed");
|
||||||
retStatus = QDF_STATUS_E_FAILURE;
|
retStatus = QDF_STATUS_E_FAILURE;
|
||||||
}
|
}
|
||||||
@@ -332,7 +332,7 @@ void lim_handle_add_bss_in_re_assoc_context(tpAniSirGlobal mac,
|
|||||||
goto Error;
|
goto Error;
|
||||||
}
|
}
|
||||||
qdf_mem_free(assocRsp);
|
qdf_mem_free(assocRsp);
|
||||||
psessionEntry->limAssocResponseData = NULL;
|
pe_session->limAssocResponseData = NULL;
|
||||||
qdf_mem_free(pBeaconStruct);
|
qdf_mem_free(pBeaconStruct);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -352,18 +352,18 @@ Error:
|
|||||||
/**
|
/**
|
||||||
* lim_is_reassoc_in_progress() - Check if reassoiciation is in progress
|
* lim_is_reassoc_in_progress() - Check if reassoiciation is in progress
|
||||||
* @mac: Global MAC Context
|
* @mac: Global MAC Context
|
||||||
* @psessionEntry: PE Session
|
* @pe_session: PE Session
|
||||||
*
|
*
|
||||||
* Return: true When STA is waiting for Reassoc response from AP
|
* Return: true When STA is waiting for Reassoc response from AP
|
||||||
* else false
|
* else false
|
||||||
*/
|
*/
|
||||||
bool lim_is_reassoc_in_progress(tpAniSirGlobal mac, struct pe_session *psessionEntry)
|
bool lim_is_reassoc_in_progress(tpAniSirGlobal mac, struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
if (psessionEntry == NULL)
|
if (pe_session == NULL)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (LIM_IS_STA_ROLE(psessionEntry) &&
|
if (LIM_IS_STA_ROLE(pe_session) &&
|
||||||
(psessionEntry->limSmeState == eLIM_SME_WT_REASSOC_STATE))
|
(pe_session->limSmeState == eLIM_SME_WT_REASSOC_STATE))
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
@@ -427,7 +427,7 @@ QDF_STATUS lim_add_ft_sta_self(tpAniSirGlobal mac_ctx, uint16_t assoc_id,
|
|||||||
* @mac: Global MAC Context
|
* @mac: Global MAC Context
|
||||||
* @resultCode: Assoc response result
|
* @resultCode: Assoc response result
|
||||||
* @protStatusCode: Internal protocol status code
|
* @protStatusCode: Internal protocol status code
|
||||||
* @psessionEntry: PE Session
|
* @pe_session: PE Session
|
||||||
*
|
*
|
||||||
* This function is called on STA role whenever Reasociation
|
* This function is called on STA role whenever Reasociation
|
||||||
* Response with a reject code is received from AP.
|
* Response with a reject code is received from AP.
|
||||||
@@ -440,34 +440,34 @@ QDF_STATUS lim_add_ft_sta_self(tpAniSirGlobal mac_ctx, uint16_t assoc_id,
|
|||||||
void
|
void
|
||||||
lim_restore_pre_reassoc_state(tpAniSirGlobal mac,
|
lim_restore_pre_reassoc_state(tpAniSirGlobal mac,
|
||||||
tSirResultCodes resultCode, uint16_t protStatusCode,
|
tSirResultCodes resultCode, uint16_t protStatusCode,
|
||||||
struct pe_session *psessionEntry)
|
struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
tLimMlmReassocCnf mlmReassocCnf;
|
tLimMlmReassocCnf mlmReassocCnf;
|
||||||
|
|
||||||
pe_debug("sessionid: %d protStatusCode: %d resultCode: %d",
|
pe_debug("sessionid: %d protStatusCode: %d resultCode: %d",
|
||||||
psessionEntry->smeSessionId, protStatusCode, resultCode);
|
pe_session->smeSessionId, protStatusCode, resultCode);
|
||||||
|
|
||||||
psessionEntry->limMlmState = eLIM_MLM_LINK_ESTABLISHED_STATE;
|
pe_session->limMlmState = eLIM_MLM_LINK_ESTABLISHED_STATE;
|
||||||
MTRACE(mac_trace
|
MTRACE(mac_trace
|
||||||
(mac, TRACE_CODE_MLM_STATE, psessionEntry->peSessionId,
|
(mac, TRACE_CODE_MLM_STATE, pe_session->peSessionId,
|
||||||
eLIM_MLM_LINK_ESTABLISHED_STATE));
|
eLIM_MLM_LINK_ESTABLISHED_STATE));
|
||||||
|
|
||||||
/* 'Change' timer for future activations */
|
/* 'Change' timer for future activations */
|
||||||
lim_deactivate_and_change_timer(mac, eLIM_REASSOC_FAIL_TIMER);
|
lim_deactivate_and_change_timer(mac, eLIM_REASSOC_FAIL_TIMER);
|
||||||
|
|
||||||
lim_set_channel(mac, psessionEntry->currentOperChannel,
|
lim_set_channel(mac, pe_session->currentOperChannel,
|
||||||
psessionEntry->ch_center_freq_seg0,
|
pe_session->ch_center_freq_seg0,
|
||||||
psessionEntry->ch_center_freq_seg1,
|
pe_session->ch_center_freq_seg1,
|
||||||
psessionEntry->ch_width,
|
pe_session->ch_width,
|
||||||
psessionEntry->maxTxPower,
|
pe_session->maxTxPower,
|
||||||
psessionEntry->peSessionId,
|
pe_session->peSessionId,
|
||||||
0, 0);
|
0, 0);
|
||||||
|
|
||||||
/* @ToDo:Need to Integrate the STOP the Dataxfer to AP from 11H code */
|
/* @ToDo:Need to Integrate the STOP the Dataxfer to AP from 11H code */
|
||||||
|
|
||||||
mlmReassocCnf.resultCode = resultCode;
|
mlmReassocCnf.resultCode = resultCode;
|
||||||
mlmReassocCnf.protStatusCode = protStatusCode;
|
mlmReassocCnf.protStatusCode = protStatusCode;
|
||||||
mlmReassocCnf.sessionId = psessionEntry->peSessionId;
|
mlmReassocCnf.sessionId = pe_session->peSessionId;
|
||||||
lim_post_sme_message(mac,
|
lim_post_sme_message(mac,
|
||||||
LIM_MLM_REASSOC_CNF, (uint32_t *) &mlmReassocCnf);
|
LIM_MLM_REASSOC_CNF, (uint32_t *) &mlmReassocCnf);
|
||||||
}
|
}
|
||||||
@@ -477,26 +477,26 @@ lim_restore_pre_reassoc_state(tpAniSirGlobal mac,
|
|||||||
* @mac: Global MAC Context
|
* @mac: Global MAC Context
|
||||||
* @resultCode: Result Code
|
* @resultCode: Result Code
|
||||||
* @protStatusCode: Protocol Status Code
|
* @protStatusCode: Protocol Status Code
|
||||||
* @psessionEntry: PE Session
|
* @pe_session: PE Session
|
||||||
*
|
*
|
||||||
* Return: None
|
* Return: None
|
||||||
*/
|
*/
|
||||||
void lim_post_reassoc_failure(tpAniSirGlobal mac,
|
void lim_post_reassoc_failure(tpAniSirGlobal mac,
|
||||||
tSirResultCodes resultCode, uint16_t protStatusCode,
|
tSirResultCodes resultCode, uint16_t protStatusCode,
|
||||||
struct pe_session *psessionEntry)
|
struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
tLimMlmReassocCnf mlmReassocCnf;
|
tLimMlmReassocCnf mlmReassocCnf;
|
||||||
|
|
||||||
psessionEntry->limMlmState = eLIM_MLM_LINK_ESTABLISHED_STATE;
|
pe_session->limMlmState = eLIM_MLM_LINK_ESTABLISHED_STATE;
|
||||||
MTRACE(mac_trace
|
MTRACE(mac_trace
|
||||||
(mac, TRACE_CODE_MLM_STATE, psessionEntry->peSessionId,
|
(mac, TRACE_CODE_MLM_STATE, pe_session->peSessionId,
|
||||||
eLIM_MLM_LINK_ESTABLISHED_STATE));
|
eLIM_MLM_LINK_ESTABLISHED_STATE));
|
||||||
|
|
||||||
lim_deactivate_and_change_timer(mac, eLIM_REASSOC_FAIL_TIMER);
|
lim_deactivate_and_change_timer(mac, eLIM_REASSOC_FAIL_TIMER);
|
||||||
|
|
||||||
mlmReassocCnf.resultCode = resultCode;
|
mlmReassocCnf.resultCode = resultCode;
|
||||||
mlmReassocCnf.protStatusCode = protStatusCode;
|
mlmReassocCnf.protStatusCode = protStatusCode;
|
||||||
mlmReassocCnf.sessionId = psessionEntry->peSessionId;
|
mlmReassocCnf.sessionId = pe_session->peSessionId;
|
||||||
lim_post_sme_message(mac,
|
lim_post_sme_message(mac,
|
||||||
LIM_MLM_REASSOC_CNF, (uint32_t *) &mlmReassocCnf);
|
LIM_MLM_REASSOC_CNF, (uint32_t *) &mlmReassocCnf);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -72,16 +72,16 @@
|
|||||||
*/
|
*/
|
||||||
uint8_t
|
uint8_t
|
||||||
lim_is_auth_algo_supported(tpAniSirGlobal mac, tAniAuthType authType,
|
lim_is_auth_algo_supported(tpAniSirGlobal mac, tAniAuthType authType,
|
||||||
struct pe_session *psessionEntry)
|
struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
bool algoEnable, privacyOptImp;
|
bool algoEnable, privacyOptImp;
|
||||||
struct wlan_mlme_wep_cfg *wep_params = &mac->mlme_cfg->wep_params;
|
struct wlan_mlme_wep_cfg *wep_params = &mac->mlme_cfg->wep_params;
|
||||||
|
|
||||||
if (authType == eSIR_OPEN_SYSTEM) {
|
if (authType == eSIR_OPEN_SYSTEM) {
|
||||||
|
|
||||||
if (LIM_IS_AP_ROLE(psessionEntry)) {
|
if (LIM_IS_AP_ROLE(pe_session)) {
|
||||||
if ((psessionEntry->authType == eSIR_OPEN_SYSTEM)
|
if ((pe_session->authType == eSIR_OPEN_SYSTEM)
|
||||||
|| (psessionEntry->authType == eSIR_AUTO_SWITCH))
|
|| (pe_session->authType == eSIR_AUTO_SWITCH))
|
||||||
return true;
|
return true;
|
||||||
else
|
else
|
||||||
return false;
|
return false;
|
||||||
@@ -92,9 +92,9 @@ lim_is_auth_algo_supported(tpAniSirGlobal mac, tAniAuthType authType,
|
|||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
if (LIM_IS_AP_ROLE(psessionEntry)) {
|
if (LIM_IS_AP_ROLE(pe_session)) {
|
||||||
if ((psessionEntry->authType == eSIR_SHARED_KEY)
|
if ((pe_session->authType == eSIR_SHARED_KEY)
|
||||||
|| (psessionEntry->authType == eSIR_AUTO_SWITCH))
|
|| (pe_session->authType == eSIR_AUTO_SWITCH))
|
||||||
algoEnable = true;
|
algoEnable = true;
|
||||||
else
|
else
|
||||||
algoEnable = false;
|
algoEnable = false;
|
||||||
@@ -103,8 +103,8 @@ lim_is_auth_algo_supported(tpAniSirGlobal mac, tAniAuthType authType,
|
|||||||
algoEnable = wep_params->is_shared_key_auth;
|
algoEnable = wep_params->is_shared_key_auth;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (LIM_IS_AP_ROLE(psessionEntry))
|
if (LIM_IS_AP_ROLE(pe_session))
|
||||||
privacyOptImp = psessionEntry->privacy;
|
privacyOptImp = pe_session->privacy;
|
||||||
else
|
else
|
||||||
privacyOptImp = wep_params->is_privacy_enabled;
|
privacyOptImp = wep_params->is_privacy_enabled;
|
||||||
|
|
||||||
@@ -412,13 +412,13 @@ void lim_delete_pre_auth_node(tpAniSirGlobal mac, tSirMacAddr macAddr)
|
|||||||
|
|
||||||
void
|
void
|
||||||
lim_restore_from_auth_state(tpAniSirGlobal mac, tSirResultCodes resultCode,
|
lim_restore_from_auth_state(tpAniSirGlobal mac, tSirResultCodes resultCode,
|
||||||
uint16_t protStatusCode, struct pe_session *sessionEntry)
|
uint16_t protStatusCode, struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
tSirMacAddr currentBssId;
|
tSirMacAddr currentBssId;
|
||||||
tLimMlmAuthCnf mlmAuthCnf;
|
tLimMlmAuthCnf mlmAuthCnf;
|
||||||
|
|
||||||
#ifdef FEATURE_WLAN_DIAG_SUPPORT
|
#ifdef FEATURE_WLAN_DIAG_SUPPORT
|
||||||
lim_diag_event_report(mac, WLAN_PE_DIAG_AUTH_COMP_EVENT, sessionEntry,
|
lim_diag_event_report(mac, WLAN_PE_DIAG_AUTH_COMP_EVENT, pe_session,
|
||||||
resultCode, protStatusCode);
|
resultCode, protStatusCode);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -430,18 +430,18 @@ lim_restore_from_auth_state(tpAniSirGlobal mac, tSirResultCodes resultCode,
|
|||||||
mlmAuthCnf.protStatusCode = protStatusCode;
|
mlmAuthCnf.protStatusCode = protStatusCode;
|
||||||
|
|
||||||
/* Update PE session ID */
|
/* Update PE session ID */
|
||||||
mlmAuthCnf.sessionId = sessionEntry->peSessionId;
|
mlmAuthCnf.sessionId = pe_session->peSessionId;
|
||||||
|
|
||||||
/* / Free up buffer allocated */
|
/* / Free up buffer allocated */
|
||||||
/* / for mac->lim.gLimMlmAuthReq */
|
/* / for mac->lim.gLimMlmAuthReq */
|
||||||
qdf_mem_free(mac->lim.gpLimMlmAuthReq);
|
qdf_mem_free(mac->lim.gpLimMlmAuthReq);
|
||||||
mac->lim.gpLimMlmAuthReq = NULL;
|
mac->lim.gpLimMlmAuthReq = NULL;
|
||||||
|
|
||||||
sessionEntry->limMlmState = sessionEntry->limPrevMlmState;
|
pe_session->limMlmState = pe_session->limPrevMlmState;
|
||||||
|
|
||||||
MTRACE(mac_trace
|
MTRACE(mac_trace
|
||||||
(mac, TRACE_CODE_MLM_STATE, sessionEntry->peSessionId,
|
(mac, TRACE_CODE_MLM_STATE, pe_session->peSessionId,
|
||||||
sessionEntry->limMlmState));
|
pe_session->limMlmState));
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Set the auth_ack_status status flag as success as
|
* Set the auth_ack_status status flag as success as
|
||||||
@@ -461,9 +461,9 @@ lim_restore_from_auth_state(tpAniSirGlobal mac, tSirResultCodes resultCode,
|
|||||||
lim_deactivate_and_change_timer(mac,
|
lim_deactivate_and_change_timer(mac,
|
||||||
eLIM_AUTH_FAIL_TIMER);
|
eLIM_AUTH_FAIL_TIMER);
|
||||||
|
|
||||||
sir_copy_mac_addr(currentBssId, sessionEntry->bssId);
|
sir_copy_mac_addr(currentBssId, pe_session->bssId);
|
||||||
|
|
||||||
if (sessionEntry->limSmeState == eLIM_SME_WT_PRE_AUTH_STATE) {
|
if (pe_session->limSmeState == eLIM_SME_WT_PRE_AUTH_STATE) {
|
||||||
mac->lim.gLimPreAuthChannelNumber = 0;
|
mac->lim.gLimPreAuthChannelNumber = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -764,7 +764,7 @@ void lim_post_sme_set_keys_cnf(tpAniSirGlobal mac,
|
|||||||
*/
|
*/
|
||||||
void lim_send_set_bss_key_req(tpAniSirGlobal mac,
|
void lim_send_set_bss_key_req(tpAniSirGlobal mac,
|
||||||
tLimMlmSetKeysReq *pMlmSetKeysReq,
|
tLimMlmSetKeysReq *pMlmSetKeysReq,
|
||||||
struct pe_session *psessionEntry)
|
struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
struct scheduler_msg msgQ = {0};
|
struct scheduler_msg msgQ = {0};
|
||||||
tpSetBssKeyParams pSetBssKeyParams = NULL;
|
tpSetBssKeyParams pSetBssKeyParams = NULL;
|
||||||
@@ -789,13 +789,13 @@ void lim_send_set_bss_key_req(tpAniSirGlobal mac,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Update the WMA_SET_BSSKEY_REQ parameters */
|
/* Update the WMA_SET_BSSKEY_REQ parameters */
|
||||||
pSetBssKeyParams->bssIdx = psessionEntry->bssIdx;
|
pSetBssKeyParams->bssIdx = pe_session->bssIdx;
|
||||||
pSetBssKeyParams->encType = pMlmSetKeysReq->edType;
|
pSetBssKeyParams->encType = pMlmSetKeysReq->edType;
|
||||||
|
|
||||||
pSetBssKeyParams->singleTidRc =
|
pSetBssKeyParams->singleTidRc =
|
||||||
(uint8_t)(mac->mlme_cfg->sta.single_tid);
|
(uint8_t)(mac->mlme_cfg->sta.single_tid);
|
||||||
/* Update PE session Id */
|
/* Update PE session Id */
|
||||||
pSetBssKeyParams->sessionId = psessionEntry->peSessionId;
|
pSetBssKeyParams->sessionId = pe_session->peSessionId;
|
||||||
|
|
||||||
pSetBssKeyParams->smesessionId = pMlmSetKeysReq->smesessionId;
|
pSetBssKeyParams->smesessionId = pMlmSetKeysReq->smesessionId;
|
||||||
|
|
||||||
@@ -825,7 +825,7 @@ void lim_send_set_bss_key_req(tpAniSirGlobal mac,
|
|||||||
msgQ.bodyval = 0;
|
msgQ.bodyval = 0;
|
||||||
|
|
||||||
pe_debug("Sending WMA_SET_BSSKEY_REQ...");
|
pe_debug("Sending WMA_SET_BSSKEY_REQ...");
|
||||||
MTRACE(mac_trace_msg_tx(mac, psessionEntry->peSessionId, msgQ.type));
|
MTRACE(mac_trace_msg_tx(mac, pe_session->peSessionId, msgQ.type));
|
||||||
retCode = wma_post_ctrl_msg(mac, &msgQ);
|
retCode = wma_post_ctrl_msg(mac, &msgQ);
|
||||||
if (QDF_STATUS_SUCCESS != retCode) {
|
if (QDF_STATUS_SUCCESS != retCode) {
|
||||||
pe_err("Posting SET_BSSKEY to HAL failed, reason=%X",
|
pe_err("Posting SET_BSSKEY to HAL failed, reason=%X",
|
||||||
@@ -866,7 +866,7 @@ void lim_send_set_sta_key_req(tpAniSirGlobal mac,
|
|||||||
tLimMlmSetKeysReq *pMlmSetKeysReq,
|
tLimMlmSetKeysReq *pMlmSetKeysReq,
|
||||||
uint16_t staIdx,
|
uint16_t staIdx,
|
||||||
uint8_t defWEPIdx,
|
uint8_t defWEPIdx,
|
||||||
struct pe_session *sessionEntry, bool sendRsp)
|
struct pe_session *pe_session, bool sendRsp)
|
||||||
{
|
{
|
||||||
struct scheduler_msg msgQ = {0};
|
struct scheduler_msg msgQ = {0};
|
||||||
tpSetStaKeyParams pSetStaKeyParams = NULL;
|
tpSetStaKeyParams pSetStaKeyParams = NULL;
|
||||||
@@ -885,7 +885,7 @@ void lim_send_set_sta_key_req(tpAniSirGlobal mac,
|
|||||||
pSetStaKeyParams->singleTidRc =
|
pSetStaKeyParams->singleTidRc =
|
||||||
(uint8_t)(mac->mlme_cfg->sta.single_tid);
|
(uint8_t)(mac->mlme_cfg->sta.single_tid);
|
||||||
/* Update PE session ID */
|
/* Update PE session ID */
|
||||||
pSetStaKeyParams->sessionId = sessionEntry->peSessionId;
|
pSetStaKeyParams->sessionId = pe_session->peSessionId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* For WEP - defWEPIdx indicates the default WEP
|
* For WEP - defWEPIdx indicates the default WEP
|
||||||
@@ -903,25 +903,25 @@ void lim_send_set_sta_key_req(tpAniSirGlobal mac,
|
|||||||
|
|
||||||
if (sendRsp == true) {
|
if (sendRsp == true) {
|
||||||
/** Store the Previous MlmState*/
|
/** Store the Previous MlmState*/
|
||||||
sessionEntry->limPrevMlmState = sessionEntry->limMlmState;
|
pe_session->limPrevMlmState = pe_session->limMlmState;
|
||||||
SET_LIM_PROCESS_DEFD_MESGS(mac, false);
|
SET_LIM_PROCESS_DEFD_MESGS(mac, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (LIM_IS_IBSS_ROLE(sessionEntry)
|
if (LIM_IS_IBSS_ROLE(pe_session)
|
||||||
&& !pMlmSetKeysReq->key[0].unicast) {
|
&& !pMlmSetKeysReq->key[0].unicast) {
|
||||||
if (sendRsp == true)
|
if (sendRsp == true)
|
||||||
sessionEntry->limMlmState =
|
pe_session->limMlmState =
|
||||||
eLIM_MLM_WT_SET_STA_BCASTKEY_STATE;
|
eLIM_MLM_WT_SET_STA_BCASTKEY_STATE;
|
||||||
msgQ.type = WMA_SET_STA_BCASTKEY_REQ;
|
msgQ.type = WMA_SET_STA_BCASTKEY_REQ;
|
||||||
} else {
|
} else {
|
||||||
if (sendRsp == true)
|
if (sendRsp == true)
|
||||||
sessionEntry->limMlmState =
|
pe_session->limMlmState =
|
||||||
eLIM_MLM_WT_SET_STA_KEY_STATE;
|
eLIM_MLM_WT_SET_STA_KEY_STATE;
|
||||||
msgQ.type = WMA_SET_STAKEY_REQ;
|
msgQ.type = WMA_SET_STAKEY_REQ;
|
||||||
}
|
}
|
||||||
MTRACE(mac_trace
|
MTRACE(mac_trace
|
||||||
(mac, TRACE_CODE_MLM_STATE, sessionEntry->peSessionId,
|
(mac, TRACE_CODE_MLM_STATE, pe_session->peSessionId,
|
||||||
sessionEntry->limMlmState));
|
pe_session->limMlmState));
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* In the Case of WEP_DYNAMIC, ED_TKIP and ED_CCMP
|
* In the Case of WEP_DYNAMIC, ED_TKIP and ED_CCMP
|
||||||
@@ -942,12 +942,12 @@ void lim_send_set_sta_key_req(tpAniSirGlobal mac,
|
|||||||
key[i], sizeof(tSirKeys));
|
key[i], sizeof(tSirKeys));
|
||||||
}
|
}
|
||||||
pSetStaKeyParams->wepType = eSIR_WEP_STATIC;
|
pSetStaKeyParams->wepType = eSIR_WEP_STATIC;
|
||||||
sessionEntry->limMlmState =
|
pe_session->limMlmState =
|
||||||
eLIM_MLM_WT_SET_STA_KEY_STATE;
|
eLIM_MLM_WT_SET_STA_KEY_STATE;
|
||||||
MTRACE(mac_trace
|
MTRACE(mac_trace
|
||||||
(mac, TRACE_CODE_MLM_STATE,
|
(mac, TRACE_CODE_MLM_STATE,
|
||||||
sessionEntry->peSessionId,
|
pe_session->peSessionId,
|
||||||
sessionEntry->limMlmState));
|
pe_session->limMlmState));
|
||||||
} else {
|
} else {
|
||||||
/*This case the keys are coming from upper layer so need to fill the
|
/*This case the keys are coming from upper layer so need to fill the
|
||||||
* key at the default wep key index and send to the HAL */
|
* key at the default wep key index and send to the HAL */
|
||||||
@@ -989,7 +989,7 @@ void lim_send_set_sta_key_req(tpAniSirGlobal mac,
|
|||||||
msgQ.bodyval = 0;
|
msgQ.bodyval = 0;
|
||||||
|
|
||||||
pe_debug("Sending WMA_SET_STAKEY_REQ...");
|
pe_debug("Sending WMA_SET_STAKEY_REQ...");
|
||||||
MTRACE(mac_trace_msg_tx(mac, sessionEntry->peSessionId, msgQ.type));
|
MTRACE(mac_trace_msg_tx(mac, pe_session->peSessionId, msgQ.type));
|
||||||
retCode = wma_post_ctrl_msg(mac, &msgQ);
|
retCode = wma_post_ctrl_msg(mac, &msgQ);
|
||||||
if (QDF_STATUS_SUCCESS != retCode) {
|
if (QDF_STATUS_SUCCESS != retCode) {
|
||||||
pe_err("Posting SET_STAKEY to HAL failed, reason=%X",
|
pe_err("Posting SET_STAKEY to HAL failed, reason=%X",
|
||||||
|
|||||||
@@ -471,13 +471,13 @@ err:
|
|||||||
* lim_send_retry_reassoc_req_frame() - Retry for reassociation
|
* lim_send_retry_reassoc_req_frame() - Retry for reassociation
|
||||||
* @mac: Global MAC Context
|
* @mac: Global MAC Context
|
||||||
* @pMlmReassocReq: Request buffer to be sent
|
* @pMlmReassocReq: Request buffer to be sent
|
||||||
* @psessionEntry: PE Session
|
* @pe_session: PE Session
|
||||||
*
|
*
|
||||||
* Return: None
|
* Return: None
|
||||||
*/
|
*/
|
||||||
void lim_send_retry_reassoc_req_frame(tpAniSirGlobal mac,
|
void lim_send_retry_reassoc_req_frame(tpAniSirGlobal mac,
|
||||||
tLimMlmReassocReq *pMlmReassocReq,
|
tLimMlmReassocReq *pMlmReassocReq,
|
||||||
struct pe_session *psessionEntry)
|
struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
tLimMlmReassocCnf mlmReassocCnf; /* keep sme */
|
tLimMlmReassocCnf mlmReassocCnf; /* keep sme */
|
||||||
tLimMlmReassocReq *pTmpMlmReassocReq = NULL;
|
tLimMlmReassocReq *pTmpMlmReassocReq = NULL;
|
||||||
@@ -492,10 +492,10 @@ void lim_send_retry_reassoc_req_frame(tpAniSirGlobal mac,
|
|||||||
/* Prepare and send Reassociation request frame */
|
/* Prepare and send Reassociation request frame */
|
||||||
/* start reassoc timer. */
|
/* start reassoc timer. */
|
||||||
mac->lim.limTimers.gLimReassocFailureTimer.sessionId =
|
mac->lim.limTimers.gLimReassocFailureTimer.sessionId =
|
||||||
psessionEntry->peSessionId;
|
pe_session->peSessionId;
|
||||||
/* Start reassociation failure timer */
|
/* Start reassociation failure timer */
|
||||||
MTRACE(qdf_trace(QDF_MODULE_ID_PE, TRACE_CODE_TIMER_ACTIVATE,
|
MTRACE(qdf_trace(QDF_MODULE_ID_PE, TRACE_CODE_TIMER_ACTIVATE,
|
||||||
psessionEntry->peSessionId, eLIM_REASSOC_FAIL_TIMER));
|
pe_session->peSessionId, eLIM_REASSOC_FAIL_TIMER));
|
||||||
if (tx_timer_activate(&mac->lim.limTimers.gLimReassocFailureTimer)
|
if (tx_timer_activate(&mac->lim.limTimers.gLimReassocFailureTimer)
|
||||||
!= TX_SUCCESS) {
|
!= TX_SUCCESS) {
|
||||||
/* Could not start reassoc failure timer. */
|
/* Could not start reassoc failure timer. */
|
||||||
@@ -509,7 +509,7 @@ void lim_send_retry_reassoc_req_frame(tpAniSirGlobal mac,
|
|||||||
}
|
}
|
||||||
|
|
||||||
lim_send_reassoc_req_with_ft_ies_mgmt_frame(mac, pTmpMlmReassocReq,
|
lim_send_reassoc_req_with_ft_ies_mgmt_frame(mac, pTmpMlmReassocReq,
|
||||||
psessionEntry);
|
pe_session);
|
||||||
return;
|
return;
|
||||||
|
|
||||||
end:
|
end:
|
||||||
@@ -525,7 +525,7 @@ end:
|
|||||||
mlmReassocCnf.resultCode = eSIR_SME_FT_REASSOC_FAILURE;
|
mlmReassocCnf.resultCode = eSIR_SME_FT_REASSOC_FAILURE;
|
||||||
mlmReassocCnf.protStatusCode = eSIR_MAC_UNSPEC_FAILURE_STATUS;
|
mlmReassocCnf.protStatusCode = eSIR_MAC_UNSPEC_FAILURE_STATUS;
|
||||||
/* Update PE sessio Id */
|
/* Update PE sessio Id */
|
||||||
mlmReassocCnf.sessionId = psessionEntry->peSessionId;
|
mlmReassocCnf.sessionId = pe_session->peSessionId;
|
||||||
|
|
||||||
lim_post_sme_message(mac, LIM_MLM_REASSOC_CNF,
|
lim_post_sme_message(mac, LIM_MLM_REASSOC_CNF,
|
||||||
(uint32_t *) &mlmReassocCnf);
|
(uint32_t *) &mlmReassocCnf);
|
||||||
@@ -535,13 +535,13 @@ end:
|
|||||||
* lim_send_reassoc_req_mgmt_frame() - Send the reassociation frame
|
* lim_send_reassoc_req_mgmt_frame() - Send the reassociation frame
|
||||||
* @mac: Global MAC Context
|
* @mac: Global MAC Context
|
||||||
* @pMlmReassocReq: Reassociation request buffer to be sent
|
* @pMlmReassocReq: Reassociation request buffer to be sent
|
||||||
* @psessionEntry: PE Session
|
* @pe_session: PE Session
|
||||||
*
|
*
|
||||||
* Return: None
|
* Return: None
|
||||||
*/
|
*/
|
||||||
void lim_send_reassoc_req_mgmt_frame(tpAniSirGlobal mac,
|
void lim_send_reassoc_req_mgmt_frame(tpAniSirGlobal mac,
|
||||||
tLimMlmReassocReq *pMlmReassocReq,
|
tLimMlmReassocReq *pMlmReassocReq,
|
||||||
struct pe_session *psessionEntry)
|
struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
tDot11fReAssocRequest *frm;
|
tDot11fReAssocRequest *frm;
|
||||||
uint16_t caps;
|
uint16_t caps;
|
||||||
@@ -559,18 +559,18 @@ void lim_send_reassoc_req_mgmt_frame(tpAniSirGlobal mac,
|
|||||||
bool isVHTEnabled = false;
|
bool isVHTEnabled = false;
|
||||||
tpSirMacMgmtHdr pMacHdr;
|
tpSirMacMgmtHdr pMacHdr;
|
||||||
|
|
||||||
if (NULL == psessionEntry)
|
if (NULL == pe_session)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
smeSessionId = psessionEntry->smeSessionId;
|
smeSessionId = pe_session->smeSessionId;
|
||||||
if (NULL == psessionEntry->pLimReAssocReq)
|
if (NULL == pe_session->pLimReAssocReq)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
frm = qdf_mem_malloc(sizeof(*frm));
|
frm = qdf_mem_malloc(sizeof(*frm));
|
||||||
if (!frm)
|
if (!frm)
|
||||||
goto err;
|
goto err;
|
||||||
nAddIELen = psessionEntry->pLimReAssocReq->addIEAssoc.length;
|
nAddIELen = pe_session->pLimReAssocReq->addIEAssoc.length;
|
||||||
pAddIE = psessionEntry->pLimReAssocReq->addIEAssoc.addIEdata;
|
pAddIE = pe_session->pLimReAssocReq->addIEAssoc.addIEdata;
|
||||||
|
|
||||||
qdf_mem_set((uint8_t *) frm, sizeof(*frm), 0);
|
qdf_mem_set((uint8_t *) frm, sizeof(*frm), 0);
|
||||||
|
|
||||||
@@ -585,7 +585,7 @@ void lim_send_reassoc_req_mgmt_frame(tpAniSirGlobal mac,
|
|||||||
* ignore the Privacy subfield within received Association and
|
* ignore the Privacy subfield within received Association and
|
||||||
* Reassociation management frames.
|
* Reassociation management frames.
|
||||||
*/
|
*/
|
||||||
if (psessionEntry->encryptType == eSIR_ED_WPI)
|
if (pe_session->encryptType == eSIR_ED_WPI)
|
||||||
((tSirMacCapabilityInfo *) &caps)->privacy = 0;
|
((tSirMacCapabilityInfo *) &caps)->privacy = 0;
|
||||||
#endif
|
#endif
|
||||||
swap_bit_field16(caps, (uint16_t *) &frm->Capabilities);
|
swap_bit_field16(caps, (uint16_t *) &frm->Capabilities);
|
||||||
@@ -593,48 +593,48 @@ void lim_send_reassoc_req_mgmt_frame(tpAniSirGlobal mac,
|
|||||||
frm->ListenInterval.interval = pMlmReassocReq->listenInterval;
|
frm->ListenInterval.interval = pMlmReassocReq->listenInterval;
|
||||||
|
|
||||||
qdf_mem_copy((uint8_t *) frm->CurrentAPAddress.mac,
|
qdf_mem_copy((uint8_t *) frm->CurrentAPAddress.mac,
|
||||||
(uint8_t *) psessionEntry->bssId, 6);
|
(uint8_t *) pe_session->bssId, 6);
|
||||||
|
|
||||||
populate_dot11f_ssid2(mac, &frm->SSID);
|
populate_dot11f_ssid2(mac, &frm->SSID);
|
||||||
populate_dot11f_supp_rates(mac, POPULATE_DOT11F_RATES_OPERATIONAL,
|
populate_dot11f_supp_rates(mac, POPULATE_DOT11F_RATES_OPERATIONAL,
|
||||||
&frm->SuppRates, psessionEntry);
|
&frm->SuppRates, pe_session);
|
||||||
|
|
||||||
fQosEnabled = (psessionEntry->limQosEnabled) &&
|
fQosEnabled = (pe_session->limQosEnabled) &&
|
||||||
SIR_MAC_GET_QOS(psessionEntry->limReassocBssCaps);
|
SIR_MAC_GET_QOS(pe_session->limReassocBssCaps);
|
||||||
|
|
||||||
fWmeEnabled = (psessionEntry->limWmeEnabled) &&
|
fWmeEnabled = (pe_session->limWmeEnabled) &&
|
||||||
LIM_BSS_CAPS_GET(WME, psessionEntry->limReassocBssQosCaps);
|
LIM_BSS_CAPS_GET(WME, pe_session->limReassocBssQosCaps);
|
||||||
|
|
||||||
fWsmEnabled = (psessionEntry->limWsmEnabled) && fWmeEnabled &&
|
fWsmEnabled = (pe_session->limWsmEnabled) && fWmeEnabled &&
|
||||||
LIM_BSS_CAPS_GET(WSM, psessionEntry->limReassocBssQosCaps);
|
LIM_BSS_CAPS_GET(WSM, pe_session->limReassocBssQosCaps);
|
||||||
|
|
||||||
if (psessionEntry->lim11hEnable &&
|
if (pe_session->lim11hEnable &&
|
||||||
psessionEntry->pLimReAssocReq->spectrumMgtIndicator == true) {
|
pe_session->pLimReAssocReq->spectrumMgtIndicator == true) {
|
||||||
PowerCapsPopulated = true;
|
PowerCapsPopulated = true;
|
||||||
populate_dot11f_power_caps(mac, &frm->PowerCaps, LIM_REASSOC,
|
populate_dot11f_power_caps(mac, &frm->PowerCaps, LIM_REASSOC,
|
||||||
psessionEntry);
|
pe_session);
|
||||||
populate_dot11f_supp_channels(mac, &frm->SuppChannels,
|
populate_dot11f_supp_channels(mac, &frm->SuppChannels,
|
||||||
LIM_REASSOC, psessionEntry);
|
LIM_REASSOC, pe_session);
|
||||||
}
|
}
|
||||||
if (mac->rrm.rrmPEContext.rrmEnable &&
|
if (mac->rrm.rrmPEContext.rrmEnable &&
|
||||||
SIR_MAC_GET_RRM(psessionEntry->limCurrentBssCaps)) {
|
SIR_MAC_GET_RRM(pe_session->limCurrentBssCaps)) {
|
||||||
if (PowerCapsPopulated == false) {
|
if (PowerCapsPopulated == false) {
|
||||||
PowerCapsPopulated = true;
|
PowerCapsPopulated = true;
|
||||||
populate_dot11f_power_caps(mac, &frm->PowerCaps,
|
populate_dot11f_power_caps(mac, &frm->PowerCaps,
|
||||||
LIM_REASSOC, psessionEntry);
|
LIM_REASSOC, pe_session);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fQosEnabled)
|
if (fQosEnabled)
|
||||||
populate_dot11f_qos_caps_station(mac, psessionEntry,
|
populate_dot11f_qos_caps_station(mac, pe_session,
|
||||||
&frm->QOSCapsStation);
|
&frm->QOSCapsStation);
|
||||||
|
|
||||||
populate_dot11f_ext_supp_rates(mac, POPULATE_DOT11F_RATES_OPERATIONAL,
|
populate_dot11f_ext_supp_rates(mac, POPULATE_DOT11F_RATES_OPERATIONAL,
|
||||||
&frm->ExtSuppRates, psessionEntry);
|
&frm->ExtSuppRates, pe_session);
|
||||||
|
|
||||||
if (mac->rrm.rrmPEContext.rrmEnable &&
|
if (mac->rrm.rrmPEContext.rrmEnable &&
|
||||||
SIR_MAC_GET_RRM(psessionEntry->limCurrentBssCaps))
|
SIR_MAC_GET_RRM(pe_session->limCurrentBssCaps))
|
||||||
populate_dot11f_rrm_ie(mac, &frm->RRMEnabledCap, psessionEntry);
|
populate_dot11f_rrm_ie(mac, &frm->RRMEnabledCap, pe_session);
|
||||||
/* The join request *should* contain zero or one of the WPA and RSN */
|
/* The join request *should* contain zero or one of the WPA and RSN */
|
||||||
/* IEs. The payload send along with the request is a */
|
/* IEs. The payload send along with the request is a */
|
||||||
/* 'tSirSmeJoinReq'; the IE portion is held inside a 'tSirRSNie': */
|
/* 'tSirSmeJoinReq'; the IE portion is held inside a 'tSirRSNie': */
|
||||||
@@ -659,41 +659,41 @@ void lim_send_reassoc_req_mgmt_frame(tpAniSirGlobal mac,
|
|||||||
wpsIe = limGetWscIEPtr(mac, pAddIE, nAddIELen);
|
wpsIe = limGetWscIEPtr(mac, pAddIE, nAddIELen);
|
||||||
if (NULL == wpsIe) {
|
if (NULL == wpsIe) {
|
||||||
populate_dot11f_rsn_opaque(mac,
|
populate_dot11f_rsn_opaque(mac,
|
||||||
&(psessionEntry->pLimReAssocReq->rsnIE),
|
&(pe_session->pLimReAssocReq->rsnIE),
|
||||||
&frm->RSNOpaque);
|
&frm->RSNOpaque);
|
||||||
populate_dot11f_wpa_opaque(mac,
|
populate_dot11f_wpa_opaque(mac,
|
||||||
&(psessionEntry->pLimReAssocReq->rsnIE),
|
&(pe_session->pLimReAssocReq->rsnIE),
|
||||||
&frm->WPAOpaque);
|
&frm->WPAOpaque);
|
||||||
#if defined(FEATURE_WLAN_WAPI)
|
#if defined(FEATURE_WLAN_WAPI)
|
||||||
populate_dot11f_wapi_opaque(mac,
|
populate_dot11f_wapi_opaque(mac,
|
||||||
&(psessionEntry->pLimReAssocReq->
|
&(pe_session->pLimReAssocReq->
|
||||||
rsnIE), &frm->WAPIOpaque);
|
rsnIE), &frm->WAPIOpaque);
|
||||||
#endif /* defined(FEATURE_WLAN_WAPI) */
|
#endif /* defined(FEATURE_WLAN_WAPI) */
|
||||||
}
|
}
|
||||||
/* include WME EDCA IE as well */
|
/* include WME EDCA IE as well */
|
||||||
if (fWmeEnabled) {
|
if (fWmeEnabled) {
|
||||||
populate_dot11f_wmm_info_station_per_session(mac,
|
populate_dot11f_wmm_info_station_per_session(mac,
|
||||||
psessionEntry, &frm->WMMInfoStation);
|
pe_session, &frm->WMMInfoStation);
|
||||||
|
|
||||||
if (fWsmEnabled)
|
if (fWsmEnabled)
|
||||||
populate_dot11f_wmm_caps(&frm->WMMCaps);
|
populate_dot11f_wmm_caps(&frm->WMMCaps);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (psessionEntry->htCapability &&
|
if (pe_session->htCapability &&
|
||||||
mac->lim.htCapabilityPresentInBeacon) {
|
mac->lim.htCapabilityPresentInBeacon) {
|
||||||
populate_dot11f_ht_caps(mac, psessionEntry, &frm->HTCaps);
|
populate_dot11f_ht_caps(mac, pe_session, &frm->HTCaps);
|
||||||
}
|
}
|
||||||
if (psessionEntry->vhtCapability &&
|
if (pe_session->vhtCapability &&
|
||||||
psessionEntry->vhtCapabilityPresentInBeacon) {
|
pe_session->vhtCapabilityPresentInBeacon) {
|
||||||
pe_warn("Populate VHT IEs in Re-Assoc Request");
|
pe_warn("Populate VHT IEs in Re-Assoc Request");
|
||||||
populate_dot11f_vht_caps(mac, psessionEntry, &frm->VHTCaps);
|
populate_dot11f_vht_caps(mac, pe_session, &frm->VHTCaps);
|
||||||
isVHTEnabled = true;
|
isVHTEnabled = true;
|
||||||
}
|
}
|
||||||
populate_dot11f_ext_cap(mac, isVHTEnabled, &frm->ExtCap, psessionEntry);
|
populate_dot11f_ext_cap(mac, isVHTEnabled, &frm->ExtCap, pe_session);
|
||||||
|
|
||||||
if (lim_is_session_he_capable(psessionEntry)) {
|
if (lim_is_session_he_capable(pe_session)) {
|
||||||
pe_debug("Populate HE IEs");
|
pe_debug("Populate HE IEs");
|
||||||
populate_dot11f_he_caps(mac, psessionEntry,
|
populate_dot11f_he_caps(mac, pe_session,
|
||||||
&frm->he_cap);
|
&frm->he_cap);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -712,10 +712,10 @@ void lim_send_reassoc_req_mgmt_frame(tpAniSirGlobal mac,
|
|||||||
qdf_status = cds_packet_alloc((uint16_t) nBytes, (void **)&pFrame,
|
qdf_status = cds_packet_alloc((uint16_t) nBytes, (void **)&pFrame,
|
||||||
(void **)&pPacket);
|
(void **)&pPacket);
|
||||||
if (!QDF_IS_STATUS_SUCCESS(qdf_status)) {
|
if (!QDF_IS_STATUS_SUCCESS(qdf_status)) {
|
||||||
psessionEntry->limMlmState = psessionEntry->limPrevMlmState;
|
pe_session->limMlmState = pe_session->limPrevMlmState;
|
||||||
MTRACE(qdf_trace(QDF_MODULE_ID_PE, TRACE_CODE_MLM_STATE,
|
MTRACE(qdf_trace(QDF_MODULE_ID_PE, TRACE_CODE_MLM_STATE,
|
||||||
psessionEntry->peSessionId,
|
pe_session->peSessionId,
|
||||||
psessionEntry->limMlmState));
|
pe_session->limMlmState));
|
||||||
pe_err("Failed to alloc %d bytes for a ReAssociation Req",
|
pe_err("Failed to alloc %d bytes for a ReAssociation Req",
|
||||||
nBytes);
|
nBytes);
|
||||||
goto end;
|
goto end;
|
||||||
@@ -725,8 +725,8 @@ void lim_send_reassoc_req_mgmt_frame(tpAniSirGlobal mac,
|
|||||||
|
|
||||||
/* Next, we fill out the buffer descriptor: */
|
/* Next, we fill out the buffer descriptor: */
|
||||||
lim_populate_mac_header(mac, pFrame, SIR_MAC_MGMT_FRAME,
|
lim_populate_mac_header(mac, pFrame, SIR_MAC_MGMT_FRAME,
|
||||||
SIR_MAC_MGMT_REASSOC_REQ, psessionEntry->limReAssocbssId,
|
SIR_MAC_MGMT_REASSOC_REQ, pe_session->limReAssocbssId,
|
||||||
psessionEntry->selfMacAddr);
|
pe_session->selfMacAddr);
|
||||||
pMacHdr = (tpSirMacMgmtHdr) pFrame;
|
pMacHdr = (tpSirMacMgmtHdr) pFrame;
|
||||||
|
|
||||||
/* That done, pack the Probe Request: */
|
/* That done, pack the Probe Request: */
|
||||||
@@ -743,10 +743,10 @@ void lim_send_reassoc_req_mgmt_frame(tpAniSirGlobal mac,
|
|||||||
|
|
||||||
pe_debug("*** Sending Re-Association Request length: %d" "to", nBytes);
|
pe_debug("*** Sending Re-Association Request length: %d" "to", nBytes);
|
||||||
|
|
||||||
if (psessionEntry->assocReq != NULL) {
|
if (pe_session->assocReq != NULL) {
|
||||||
qdf_mem_free(psessionEntry->assocReq);
|
qdf_mem_free(pe_session->assocReq);
|
||||||
psessionEntry->assocReq = NULL;
|
pe_session->assocReq = NULL;
|
||||||
psessionEntry->assocReqLen = 0;
|
pe_session->assocReqLen = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (nAddIELen) {
|
if (nAddIELen) {
|
||||||
@@ -755,30 +755,30 @@ void lim_send_reassoc_req_mgmt_frame(tpAniSirGlobal mac,
|
|||||||
nPayload += nAddIELen;
|
nPayload += nAddIELen;
|
||||||
}
|
}
|
||||||
|
|
||||||
psessionEntry->assocReq = qdf_mem_malloc(nPayload);
|
pe_session->assocReq = qdf_mem_malloc(nPayload);
|
||||||
if (psessionEntry->assocReq) {
|
if (pe_session->assocReq) {
|
||||||
/* Store the Assocrequest. It is sent to csr in joincnfrsp */
|
/* Store the Assocrequest. It is sent to csr in joincnfrsp */
|
||||||
qdf_mem_copy(psessionEntry->assocReq,
|
qdf_mem_copy(pe_session->assocReq,
|
||||||
pFrame + sizeof(tSirMacMgmtHdr), nPayload);
|
pFrame + sizeof(tSirMacMgmtHdr), nPayload);
|
||||||
psessionEntry->assocReqLen = nPayload;
|
pe_session->assocReqLen = nPayload;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((BAND_5G ==
|
if ((BAND_5G ==
|
||||||
lim_get_rf_band(psessionEntry->currentOperChannel))
|
lim_get_rf_band(pe_session->currentOperChannel))
|
||||||
|| (psessionEntry->pePersona == QDF_P2P_CLIENT_MODE) ||
|
|| (pe_session->pePersona == QDF_P2P_CLIENT_MODE) ||
|
||||||
(psessionEntry->pePersona == QDF_P2P_GO_MODE))
|
(pe_session->pePersona == QDF_P2P_GO_MODE))
|
||||||
txFlag |= HAL_USE_BD_RATE2_FOR_MANAGEMENT_FRAME;
|
txFlag |= HAL_USE_BD_RATE2_FOR_MANAGEMENT_FRAME;
|
||||||
|
|
||||||
if (psessionEntry->pePersona == QDF_P2P_CLIENT_MODE ||
|
if (pe_session->pePersona == QDF_P2P_CLIENT_MODE ||
|
||||||
psessionEntry->pePersona == QDF_STA_MODE)
|
pe_session->pePersona == QDF_STA_MODE)
|
||||||
txFlag |= HAL_USE_PEER_STA_REQUESTED_MASK;
|
txFlag |= HAL_USE_PEER_STA_REQUESTED_MASK;
|
||||||
|
|
||||||
MTRACE(qdf_trace(QDF_MODULE_ID_PE, TRACE_CODE_TX_MGMT,
|
MTRACE(qdf_trace(QDF_MODULE_ID_PE, TRACE_CODE_TX_MGMT,
|
||||||
psessionEntry->peSessionId, pMacHdr->fc.subType));
|
pe_session->peSessionId, pMacHdr->fc.subType));
|
||||||
lim_diag_event_report(mac, WLAN_PE_DIAG_REASSOC_START_EVENT,
|
lim_diag_event_report(mac, WLAN_PE_DIAG_REASSOC_START_EVENT,
|
||||||
psessionEntry, QDF_STATUS_SUCCESS, QDF_STATUS_SUCCESS);
|
pe_session, QDF_STATUS_SUCCESS, QDF_STATUS_SUCCESS);
|
||||||
lim_diag_mgmt_tx_event_report(mac, pMacHdr,
|
lim_diag_mgmt_tx_event_report(mac, pMacHdr,
|
||||||
psessionEntry, QDF_STATUS_SUCCESS,
|
pe_session, QDF_STATUS_SUCCESS,
|
||||||
QDF_STATUS_SUCCESS);
|
QDF_STATUS_SUCCESS);
|
||||||
qdf_status =
|
qdf_status =
|
||||||
wma_tx_frame(mac, pPacket,
|
wma_tx_frame(mac, pPacket,
|
||||||
@@ -788,7 +788,7 @@ void lim_send_reassoc_req_mgmt_frame(tpAniSirGlobal mac,
|
|||||||
RATEID_DEFAULT);
|
RATEID_DEFAULT);
|
||||||
MTRACE(qdf_trace
|
MTRACE(qdf_trace
|
||||||
(QDF_MODULE_ID_PE, TRACE_CODE_TX_COMPLETE,
|
(QDF_MODULE_ID_PE, TRACE_CODE_TX_COMPLETE,
|
||||||
psessionEntry->peSessionId, qdf_status));
|
pe_session->peSessionId, qdf_status));
|
||||||
if (!QDF_IS_STATUS_SUCCESS(qdf_status)) {
|
if (!QDF_IS_STATUS_SUCCESS(qdf_status)) {
|
||||||
pe_err("Failed to send Re-Association Request: %X!",
|
pe_err("Failed to send Re-Association Request: %X!",
|
||||||
qdf_status);
|
qdf_status);
|
||||||
@@ -800,7 +800,7 @@ end:
|
|||||||
err:
|
err:
|
||||||
/* Free up buffer allocated for mlmAssocReq */
|
/* Free up buffer allocated for mlmAssocReq */
|
||||||
qdf_mem_free(pMlmReassocReq);
|
qdf_mem_free(pMlmReassocReq);
|
||||||
psessionEntry->pLimMlmReassocReq = NULL;
|
pe_session->pLimMlmReassocReq = NULL;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -870,7 +870,7 @@ err_ret:
|
|||||||
void
|
void
|
||||||
lim_send_addts_req_action_frame(tpAniSirGlobal mac,
|
lim_send_addts_req_action_frame(tpAniSirGlobal mac,
|
||||||
tSirMacAddr peerMacAddr,
|
tSirMacAddr peerMacAddr,
|
||||||
tSirAddtsReqInfo *pAddTS, struct pe_session *psessionEntry)
|
tSirAddtsReqInfo *pAddTS, struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
uint16_t i;
|
uint16_t i;
|
||||||
uint8_t *pFrame;
|
uint8_t *pFrame;
|
||||||
@@ -886,11 +886,11 @@ lim_send_addts_req_action_frame(tpAniSirGlobal mac,
|
|||||||
uint8_t txFlag = 0;
|
uint8_t txFlag = 0;
|
||||||
uint8_t smeSessionId = 0;
|
uint8_t smeSessionId = 0;
|
||||||
|
|
||||||
if (NULL == psessionEntry) {
|
if (NULL == pe_session) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
smeSessionId = psessionEntry->smeSessionId;
|
smeSessionId = pe_session->smeSessionId;
|
||||||
|
|
||||||
if (!pAddTS->wmeTspecPresent) {
|
if (!pAddTS->wmeTspecPresent) {
|
||||||
qdf_mem_set((uint8_t *) &AddTSReq, sizeof(AddTSReq), 0);
|
qdf_mem_set((uint8_t *) &AddTSReq, sizeof(AddTSReq), 0);
|
||||||
@@ -958,7 +958,7 @@ lim_send_addts_req_action_frame(tpAniSirGlobal mac,
|
|||||||
|
|
||||||
populate_dot11f_wmmtspec(&pAddTS->tspec, &WMMAddTSReq.WMMTSPEC);
|
populate_dot11f_wmmtspec(&pAddTS->tspec, &WMMAddTSReq.WMMTSPEC);
|
||||||
#ifdef FEATURE_WLAN_ESE
|
#ifdef FEATURE_WLAN_ESE
|
||||||
lim_get_phy_mode(mac, &phyMode, psessionEntry);
|
lim_get_phy_mode(mac, &phyMode, pe_session);
|
||||||
|
|
||||||
if (phyMode == WNI_CFG_PHY_MODE_11G
|
if (phyMode == WNI_CFG_PHY_MODE_11G
|
||||||
|| phyMode == WNI_CFG_PHY_MODE_11A) {
|
|| phyMode == WNI_CFG_PHY_MODE_11A) {
|
||||||
@@ -1000,12 +1000,12 @@ lim_send_addts_req_action_frame(tpAniSirGlobal mac,
|
|||||||
|
|
||||||
/* Next, we fill out the buffer descriptor: */
|
/* Next, we fill out the buffer descriptor: */
|
||||||
lim_populate_mac_header(mac, pFrame, SIR_MAC_MGMT_FRAME,
|
lim_populate_mac_header(mac, pFrame, SIR_MAC_MGMT_FRAME,
|
||||||
SIR_MAC_MGMT_ACTION, peerMacAddr, psessionEntry->selfMacAddr);
|
SIR_MAC_MGMT_ACTION, peerMacAddr, pe_session->selfMacAddr);
|
||||||
pMacHdr = (tpSirMacMgmtHdr) pFrame;
|
pMacHdr = (tpSirMacMgmtHdr) pFrame;
|
||||||
|
|
||||||
sir_copy_mac_addr(pMacHdr->bssId, psessionEntry->bssId);
|
sir_copy_mac_addr(pMacHdr->bssId, pe_session->bssId);
|
||||||
|
|
||||||
lim_set_protected_bit(mac, psessionEntry, peerMacAddr, pMacHdr);
|
lim_set_protected_bit(mac, pe_session, peerMacAddr, pMacHdr);
|
||||||
|
|
||||||
/* That done, pack the struct: */
|
/* That done, pack the struct: */
|
||||||
if (!pAddTS->wmeTspecPresent) {
|
if (!pAddTS->wmeTspecPresent) {
|
||||||
@@ -1042,17 +1042,17 @@ lim_send_addts_req_action_frame(tpAniSirGlobal mac,
|
|||||||
lim_print_mac_addr(mac, peerMacAddr, LOGD);
|
lim_print_mac_addr(mac, peerMacAddr, LOGD);
|
||||||
|
|
||||||
if ((BAND_5G ==
|
if ((BAND_5G ==
|
||||||
lim_get_rf_band(psessionEntry->currentOperChannel))
|
lim_get_rf_band(pe_session->currentOperChannel))
|
||||||
|| (psessionEntry->pePersona == QDF_P2P_CLIENT_MODE)
|
|| (pe_session->pePersona == QDF_P2P_CLIENT_MODE)
|
||||||
|| (psessionEntry->pePersona == QDF_P2P_GO_MODE)
|
|| (pe_session->pePersona == QDF_P2P_GO_MODE)
|
||||||
) {
|
) {
|
||||||
txFlag |= HAL_USE_BD_RATE2_FOR_MANAGEMENT_FRAME;
|
txFlag |= HAL_USE_BD_RATE2_FOR_MANAGEMENT_FRAME;
|
||||||
}
|
}
|
||||||
|
|
||||||
MTRACE(qdf_trace(QDF_MODULE_ID_PE, TRACE_CODE_TX_MGMT,
|
MTRACE(qdf_trace(QDF_MODULE_ID_PE, TRACE_CODE_TX_MGMT,
|
||||||
psessionEntry->peSessionId, pMacHdr->fc.subType));
|
pe_session->peSessionId, pMacHdr->fc.subType));
|
||||||
lim_diag_mgmt_tx_event_report(mac, pMacHdr,
|
lim_diag_mgmt_tx_event_report(mac, pMacHdr,
|
||||||
psessionEntry, QDF_STATUS_SUCCESS,
|
pe_session, QDF_STATUS_SUCCESS,
|
||||||
QDF_STATUS_SUCCESS);
|
QDF_STATUS_SUCCESS);
|
||||||
|
|
||||||
/* Queue Addts Response frame in high priority WQ */
|
/* Queue Addts Response frame in high priority WQ */
|
||||||
@@ -1062,7 +1062,7 @@ lim_send_addts_req_action_frame(tpAniSirGlobal mac,
|
|||||||
7, lim_tx_complete, pFrame, txFlag,
|
7, lim_tx_complete, pFrame, txFlag,
|
||||||
smeSessionId, 0, RATEID_DEFAULT);
|
smeSessionId, 0, RATEID_DEFAULT);
|
||||||
MTRACE(qdf_trace(QDF_MODULE_ID_PE, TRACE_CODE_TX_COMPLETE,
|
MTRACE(qdf_trace(QDF_MODULE_ID_PE, TRACE_CODE_TX_COMPLETE,
|
||||||
psessionEntry->peSessionId, qdf_status));
|
pe_session->peSessionId, qdf_status));
|
||||||
|
|
||||||
if (!QDF_IS_STATUS_SUCCESS(qdf_status))
|
if (!QDF_IS_STATUS_SUCCESS(qdf_status))
|
||||||
pe_err("Could not send an Add TS Request (%X",
|
pe_err("Could not send an Add TS Request (%X",
|
||||||
@@ -1429,7 +1429,7 @@ lim_send_delts_req_action_frame(tpAniSirGlobal mac,
|
|||||||
tSirMacAddr peer,
|
tSirMacAddr peer,
|
||||||
uint8_t wmmTspecPresent,
|
uint8_t wmmTspecPresent,
|
||||||
tSirMacTSInfo *pTsinfo,
|
tSirMacTSInfo *pTsinfo,
|
||||||
tSirMacTspecIE *pTspecIe, struct pe_session *psessionEntry)
|
tSirMacTspecIE *pTspecIe, struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
uint8_t *pFrame;
|
uint8_t *pFrame;
|
||||||
tpSirMacMgmtHdr pMacHdr;
|
tpSirMacMgmtHdr pMacHdr;
|
||||||
@@ -1441,11 +1441,11 @@ lim_send_delts_req_action_frame(tpAniSirGlobal mac,
|
|||||||
uint8_t txFlag = 0;
|
uint8_t txFlag = 0;
|
||||||
uint8_t smeSessionId = 0;
|
uint8_t smeSessionId = 0;
|
||||||
|
|
||||||
if (NULL == psessionEntry) {
|
if (NULL == pe_session) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
smeSessionId = psessionEntry->smeSessionId;
|
smeSessionId = pe_session->smeSessionId;
|
||||||
|
|
||||||
if (!wmmTspecPresent) {
|
if (!wmmTspecPresent) {
|
||||||
qdf_mem_set((uint8_t *) &DelTS, sizeof(DelTS), 0);
|
qdf_mem_set((uint8_t *) &DelTS, sizeof(DelTS), 0);
|
||||||
@@ -1498,12 +1498,12 @@ lim_send_delts_req_action_frame(tpAniSirGlobal mac,
|
|||||||
|
|
||||||
/* Next, we fill out the buffer descriptor: */
|
/* Next, we fill out the buffer descriptor: */
|
||||||
lim_populate_mac_header(mac, pFrame, SIR_MAC_MGMT_FRAME,
|
lim_populate_mac_header(mac, pFrame, SIR_MAC_MGMT_FRAME,
|
||||||
SIR_MAC_MGMT_ACTION, peer, psessionEntry->selfMacAddr);
|
SIR_MAC_MGMT_ACTION, peer, pe_session->selfMacAddr);
|
||||||
pMacHdr = (tpSirMacMgmtHdr) pFrame;
|
pMacHdr = (tpSirMacMgmtHdr) pFrame;
|
||||||
|
|
||||||
sir_copy_mac_addr(pMacHdr->bssId, psessionEntry->bssId);
|
sir_copy_mac_addr(pMacHdr->bssId, pe_session->bssId);
|
||||||
|
|
||||||
lim_set_protected_bit(mac, psessionEntry, peer, pMacHdr);
|
lim_set_protected_bit(mac, pe_session, peer, pMacHdr);
|
||||||
|
|
||||||
/* That done, pack the struct: */
|
/* That done, pack the struct: */
|
||||||
if (!wmmTspecPresent) {
|
if (!wmmTspecPresent) {
|
||||||
@@ -1538,17 +1538,17 @@ lim_send_delts_req_action_frame(tpAniSirGlobal mac,
|
|||||||
lim_print_mac_addr(mac, pMacHdr->da, LOGD);
|
lim_print_mac_addr(mac, pMacHdr->da, LOGD);
|
||||||
|
|
||||||
if ((BAND_5G ==
|
if ((BAND_5G ==
|
||||||
lim_get_rf_band(psessionEntry->currentOperChannel))
|
lim_get_rf_band(pe_session->currentOperChannel))
|
||||||
|| (psessionEntry->pePersona == QDF_P2P_CLIENT_MODE)
|
|| (pe_session->pePersona == QDF_P2P_CLIENT_MODE)
|
||||||
|| (psessionEntry->pePersona == QDF_P2P_GO_MODE)
|
|| (pe_session->pePersona == QDF_P2P_GO_MODE)
|
||||||
) {
|
) {
|
||||||
txFlag |= HAL_USE_BD_RATE2_FOR_MANAGEMENT_FRAME;
|
txFlag |= HAL_USE_BD_RATE2_FOR_MANAGEMENT_FRAME;
|
||||||
}
|
}
|
||||||
|
|
||||||
MTRACE(qdf_trace(QDF_MODULE_ID_PE, TRACE_CODE_TX_MGMT,
|
MTRACE(qdf_trace(QDF_MODULE_ID_PE, TRACE_CODE_TX_MGMT,
|
||||||
psessionEntry->peSessionId, pMacHdr->fc.subType));
|
pe_session->peSessionId, pMacHdr->fc.subType));
|
||||||
lim_diag_mgmt_tx_event_report(mac, pMacHdr,
|
lim_diag_mgmt_tx_event_report(mac, pMacHdr,
|
||||||
psessionEntry, QDF_STATUS_SUCCESS,
|
pe_session, QDF_STATUS_SUCCESS,
|
||||||
QDF_STATUS_SUCCESS);
|
QDF_STATUS_SUCCESS);
|
||||||
qdf_status = wma_tx_frame(mac, pPacket, (uint16_t) nBytes,
|
qdf_status = wma_tx_frame(mac, pPacket, (uint16_t) nBytes,
|
||||||
TXRX_FRM_802_11_MGMT,
|
TXRX_FRM_802_11_MGMT,
|
||||||
@@ -1556,7 +1556,7 @@ lim_send_delts_req_action_frame(tpAniSirGlobal mac,
|
|||||||
7, lim_tx_complete, pFrame, txFlag,
|
7, lim_tx_complete, pFrame, txFlag,
|
||||||
smeSessionId, 0, RATEID_DEFAULT);
|
smeSessionId, 0, RATEID_DEFAULT);
|
||||||
MTRACE(qdf_trace(QDF_MODULE_ID_PE, TRACE_CODE_TX_COMPLETE,
|
MTRACE(qdf_trace(QDF_MODULE_ID_PE, TRACE_CODE_TX_COMPLETE,
|
||||||
psessionEntry->peSessionId, qdf_status));
|
pe_session->peSessionId, qdf_status));
|
||||||
/* Pkt will be freed up by the callback */
|
/* Pkt will be freed up by the callback */
|
||||||
if (!QDF_IS_STATUS_SUCCESS(qdf_status))
|
if (!QDF_IS_STATUS_SUCCESS(qdf_status))
|
||||||
pe_err("Failed to send Del TS (%X)!", qdf_status);
|
pe_err("Failed to send Del TS (%X)!", qdf_status);
|
||||||
@@ -2833,7 +2833,7 @@ void
|
|||||||
lim_send_disassoc_mgmt_frame(tpAniSirGlobal mac,
|
lim_send_disassoc_mgmt_frame(tpAniSirGlobal mac,
|
||||||
uint16_t nReason,
|
uint16_t nReason,
|
||||||
tSirMacAddr peer,
|
tSirMacAddr peer,
|
||||||
struct pe_session *psessionEntry, bool waitForAck)
|
struct pe_session *pe_session, bool waitForAck)
|
||||||
{
|
{
|
||||||
tDot11fDisassociation frm;
|
tDot11fDisassociation frm;
|
||||||
uint8_t *pFrame;
|
uint8_t *pFrame;
|
||||||
@@ -2845,7 +2845,7 @@ lim_send_disassoc_mgmt_frame(tpAniSirGlobal mac,
|
|||||||
uint32_t val = 0;
|
uint32_t val = 0;
|
||||||
uint8_t smeSessionId = 0;
|
uint8_t smeSessionId = 0;
|
||||||
|
|
||||||
if (NULL == psessionEntry) {
|
if (NULL == pe_session) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2853,15 +2853,15 @@ lim_send_disassoc_mgmt_frame(tpAniSirGlobal mac,
|
|||||||
* In case when cac timer is running for this SAP session then
|
* In case when cac timer is running for this SAP session then
|
||||||
* avoid sending disassoc out. It is violation of dfs specification.
|
* avoid sending disassoc out. It is violation of dfs specification.
|
||||||
*/
|
*/
|
||||||
if (((psessionEntry->pePersona == QDF_SAP_MODE) ||
|
if (((pe_session->pePersona == QDF_SAP_MODE) ||
|
||||||
(psessionEntry->pePersona == QDF_P2P_GO_MODE)) &&
|
(pe_session->pePersona == QDF_P2P_GO_MODE)) &&
|
||||||
(true == mac->sap.SapDfsInfo.is_dfs_cac_timer_running)) {
|
(true == mac->sap.SapDfsInfo.is_dfs_cac_timer_running)) {
|
||||||
QDF_TRACE(QDF_MODULE_ID_SAP, QDF_TRACE_LEVEL_INFO,
|
QDF_TRACE(QDF_MODULE_ID_SAP, QDF_TRACE_LEVEL_INFO,
|
||||||
FL
|
FL
|
||||||
("CAC timer is running, drop disassoc from going out"));
|
("CAC timer is running, drop disassoc from going out"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
smeSessionId = psessionEntry->smeSessionId;
|
smeSessionId = pe_session->smeSessionId;
|
||||||
|
|
||||||
qdf_mem_set((uint8_t *) &frm, sizeof(frm), 0);
|
qdf_mem_set((uint8_t *) &frm, sizeof(frm), 0);
|
||||||
|
|
||||||
@@ -2892,13 +2892,13 @@ lim_send_disassoc_mgmt_frame(tpAniSirGlobal mac,
|
|||||||
|
|
||||||
/* Next, we fill out the buffer descriptor: */
|
/* Next, we fill out the buffer descriptor: */
|
||||||
lim_populate_mac_header(mac, pFrame, SIR_MAC_MGMT_FRAME,
|
lim_populate_mac_header(mac, pFrame, SIR_MAC_MGMT_FRAME,
|
||||||
SIR_MAC_MGMT_DISASSOC, peer, psessionEntry->selfMacAddr);
|
SIR_MAC_MGMT_DISASSOC, peer, pe_session->selfMacAddr);
|
||||||
pMacHdr = (tpSirMacMgmtHdr) pFrame;
|
pMacHdr = (tpSirMacMgmtHdr) pFrame;
|
||||||
|
|
||||||
/* Prepare the BSSID */
|
/* Prepare the BSSID */
|
||||||
sir_copy_mac_addr(pMacHdr->bssId, psessionEntry->bssId);
|
sir_copy_mac_addr(pMacHdr->bssId, pe_session->bssId);
|
||||||
|
|
||||||
lim_set_protected_bit(mac, psessionEntry, peer, pMacHdr);
|
lim_set_protected_bit(mac, pe_session, peer, pMacHdr);
|
||||||
|
|
||||||
nStatus = dot11f_pack_disassociation(mac, &frm, pFrame +
|
nStatus = dot11f_pack_disassociation(mac, &frm, pFrame +
|
||||||
sizeof(tSirMacMgmtHdr),
|
sizeof(tSirMacMgmtHdr),
|
||||||
@@ -2915,13 +2915,13 @@ lim_send_disassoc_mgmt_frame(tpAniSirGlobal mac,
|
|||||||
|
|
||||||
pe_debug("***Sessionid %d Sending Disassociation frame with "
|
pe_debug("***Sessionid %d Sending Disassociation frame with "
|
||||||
"reason %u and waitForAck %d to " MAC_ADDRESS_STR " ,From "
|
"reason %u and waitForAck %d to " MAC_ADDRESS_STR " ,From "
|
||||||
MAC_ADDRESS_STR, psessionEntry->peSessionId, nReason,
|
MAC_ADDRESS_STR, pe_session->peSessionId, nReason,
|
||||||
waitForAck, MAC_ADDR_ARRAY(pMacHdr->da),
|
waitForAck, MAC_ADDR_ARRAY(pMacHdr->da),
|
||||||
MAC_ADDR_ARRAY(psessionEntry->selfMacAddr));
|
MAC_ADDR_ARRAY(pe_session->selfMacAddr));
|
||||||
|
|
||||||
if ((BAND_5G == lim_get_rf_band(psessionEntry->currentOperChannel))
|
if ((BAND_5G == lim_get_rf_band(pe_session->currentOperChannel))
|
||||||
|| (psessionEntry->pePersona == QDF_P2P_CLIENT_MODE) ||
|
|| (pe_session->pePersona == QDF_P2P_CLIENT_MODE) ||
|
||||||
(psessionEntry->pePersona == QDF_P2P_GO_MODE)
|
(pe_session->pePersona == QDF_P2P_GO_MODE)
|
||||||
) {
|
) {
|
||||||
txFlag |= HAL_USE_BD_RATE2_FOR_MANAGEMENT_FRAME;
|
txFlag |= HAL_USE_BD_RATE2_FOR_MANAGEMENT_FRAME;
|
||||||
}
|
}
|
||||||
@@ -2930,10 +2930,10 @@ lim_send_disassoc_mgmt_frame(tpAniSirGlobal mac,
|
|||||||
|
|
||||||
if (waitForAck) {
|
if (waitForAck) {
|
||||||
MTRACE(qdf_trace(QDF_MODULE_ID_PE, TRACE_CODE_TX_MGMT,
|
MTRACE(qdf_trace(QDF_MODULE_ID_PE, TRACE_CODE_TX_MGMT,
|
||||||
psessionEntry->peSessionId,
|
pe_session->peSessionId,
|
||||||
pMacHdr->fc.subType));
|
pMacHdr->fc.subType));
|
||||||
lim_diag_mgmt_tx_event_report(mac, pMacHdr,
|
lim_diag_mgmt_tx_event_report(mac, pMacHdr,
|
||||||
psessionEntry, QDF_STATUS_SUCCESS,
|
pe_session, QDF_STATUS_SUCCESS,
|
||||||
QDF_STATUS_SUCCESS);
|
QDF_STATUS_SUCCESS);
|
||||||
/* Queue Disassociation frame in high priority WQ */
|
/* Queue Disassociation frame in high priority WQ */
|
||||||
/* get the duration from the request */
|
/* get the duration from the request */
|
||||||
@@ -2946,7 +2946,7 @@ lim_send_disassoc_mgmt_frame(tpAniSirGlobal mac,
|
|||||||
RATEID_DEFAULT);
|
RATEID_DEFAULT);
|
||||||
MTRACE(qdf_trace
|
MTRACE(qdf_trace
|
||||||
(QDF_MODULE_ID_PE, TRACE_CODE_TX_COMPLETE,
|
(QDF_MODULE_ID_PE, TRACE_CODE_TX_COMPLETE,
|
||||||
psessionEntry->peSessionId, qdf_status));
|
pe_session->peSessionId, qdf_status));
|
||||||
|
|
||||||
val = SYS_MS_TO_TICKS(LIM_DISASSOC_DEAUTH_ACK_TIMEOUT);
|
val = SYS_MS_TO_TICKS(LIM_DISASSOC_DEAUTH_ACK_TIMEOUT);
|
||||||
|
|
||||||
@@ -2965,10 +2965,10 @@ lim_send_disassoc_mgmt_frame(tpAniSirGlobal mac,
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
MTRACE(qdf_trace(QDF_MODULE_ID_PE, TRACE_CODE_TX_MGMT,
|
MTRACE(qdf_trace(QDF_MODULE_ID_PE, TRACE_CODE_TX_MGMT,
|
||||||
psessionEntry->peSessionId,
|
pe_session->peSessionId,
|
||||||
pMacHdr->fc.subType));
|
pMacHdr->fc.subType));
|
||||||
lim_diag_mgmt_tx_event_report(mac, pMacHdr,
|
lim_diag_mgmt_tx_event_report(mac, pMacHdr,
|
||||||
psessionEntry,
|
pe_session,
|
||||||
QDF_STATUS_SUCCESS, QDF_STATUS_SUCCESS);
|
QDF_STATUS_SUCCESS, QDF_STATUS_SUCCESS);
|
||||||
/* Queue Disassociation frame in high priority WQ */
|
/* Queue Disassociation frame in high priority WQ */
|
||||||
qdf_status = wma_tx_frame(mac, pPacket, (uint16_t) nBytes,
|
qdf_status = wma_tx_frame(mac, pPacket, (uint16_t) nBytes,
|
||||||
@@ -2979,7 +2979,7 @@ lim_send_disassoc_mgmt_frame(tpAniSirGlobal mac,
|
|||||||
smeSessionId, 0, RATEID_DEFAULT);
|
smeSessionId, 0, RATEID_DEFAULT);
|
||||||
MTRACE(qdf_trace
|
MTRACE(qdf_trace
|
||||||
(QDF_MODULE_ID_PE, TRACE_CODE_TX_COMPLETE,
|
(QDF_MODULE_ID_PE, TRACE_CODE_TX_COMPLETE,
|
||||||
psessionEntry->peSessionId, qdf_status));
|
pe_session->peSessionId, qdf_status));
|
||||||
if (!QDF_IS_STATUS_SUCCESS(qdf_status)) {
|
if (!QDF_IS_STATUS_SUCCESS(qdf_status)) {
|
||||||
pe_err("Failed to send Disassociation (%X)!",
|
pe_err("Failed to send Disassociation (%X)!",
|
||||||
qdf_status);
|
qdf_status);
|
||||||
@@ -3006,7 +3006,7 @@ void
|
|||||||
lim_send_deauth_mgmt_frame(tpAniSirGlobal mac,
|
lim_send_deauth_mgmt_frame(tpAniSirGlobal mac,
|
||||||
uint16_t nReason,
|
uint16_t nReason,
|
||||||
tSirMacAddr peer,
|
tSirMacAddr peer,
|
||||||
struct pe_session *psessionEntry, bool waitForAck)
|
struct pe_session *pe_session, bool waitForAck)
|
||||||
{
|
{
|
||||||
tDot11fDeAuth frm;
|
tDot11fDeAuth frm;
|
||||||
uint8_t *pFrame;
|
uint8_t *pFrame;
|
||||||
@@ -3022,7 +3022,7 @@ lim_send_deauth_mgmt_frame(tpAniSirGlobal mac,
|
|||||||
#endif
|
#endif
|
||||||
uint8_t smeSessionId = 0;
|
uint8_t smeSessionId = 0;
|
||||||
|
|
||||||
if (NULL == psessionEntry) {
|
if (NULL == pe_session) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3030,15 +3030,15 @@ lim_send_deauth_mgmt_frame(tpAniSirGlobal mac,
|
|||||||
* In case when cac timer is running for this SAP session then
|
* In case when cac timer is running for this SAP session then
|
||||||
* avoid deauth frame out. It is violation of dfs specification.
|
* avoid deauth frame out. It is violation of dfs specification.
|
||||||
*/
|
*/
|
||||||
if (((psessionEntry->pePersona == QDF_SAP_MODE) ||
|
if (((pe_session->pePersona == QDF_SAP_MODE) ||
|
||||||
(psessionEntry->pePersona == QDF_P2P_GO_MODE)) &&
|
(pe_session->pePersona == QDF_P2P_GO_MODE)) &&
|
||||||
(true == mac->sap.SapDfsInfo.is_dfs_cac_timer_running)) {
|
(true == mac->sap.SapDfsInfo.is_dfs_cac_timer_running)) {
|
||||||
QDF_TRACE(QDF_MODULE_ID_SAP, QDF_TRACE_LEVEL_INFO,
|
QDF_TRACE(QDF_MODULE_ID_SAP, QDF_TRACE_LEVEL_INFO,
|
||||||
FL
|
FL
|
||||||
("CAC timer is running, drop the deauth from going out"));
|
("CAC timer is running, drop the deauth from going out"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
smeSessionId = psessionEntry->smeSessionId;
|
smeSessionId = pe_session->smeSessionId;
|
||||||
|
|
||||||
qdf_mem_set((uint8_t *) &frm, sizeof(frm), 0);
|
qdf_mem_set((uint8_t *) &frm, sizeof(frm), 0);
|
||||||
|
|
||||||
@@ -3069,13 +3069,13 @@ lim_send_deauth_mgmt_frame(tpAniSirGlobal mac,
|
|||||||
|
|
||||||
/* Next, we fill out the buffer descriptor: */
|
/* Next, we fill out the buffer descriptor: */
|
||||||
lim_populate_mac_header(mac, pFrame, SIR_MAC_MGMT_FRAME,
|
lim_populate_mac_header(mac, pFrame, SIR_MAC_MGMT_FRAME,
|
||||||
SIR_MAC_MGMT_DEAUTH, peer, psessionEntry->selfMacAddr);
|
SIR_MAC_MGMT_DEAUTH, peer, pe_session->selfMacAddr);
|
||||||
pMacHdr = (tpSirMacMgmtHdr) pFrame;
|
pMacHdr = (tpSirMacMgmtHdr) pFrame;
|
||||||
|
|
||||||
/* Prepare the BSSID */
|
/* Prepare the BSSID */
|
||||||
sir_copy_mac_addr(pMacHdr->bssId, psessionEntry->bssId);
|
sir_copy_mac_addr(pMacHdr->bssId, pe_session->bssId);
|
||||||
|
|
||||||
lim_set_protected_bit(mac, psessionEntry, peer, pMacHdr);
|
lim_set_protected_bit(mac, pe_session, peer, pMacHdr);
|
||||||
|
|
||||||
nStatus = dot11f_pack_de_auth(mac, &frm, pFrame +
|
nStatus = dot11f_pack_de_auth(mac, &frm, pFrame +
|
||||||
sizeof(tSirMacMgmtHdr), nPayload, &nPayload);
|
sizeof(tSirMacMgmtHdr), nPayload, &nPayload);
|
||||||
@@ -3091,13 +3091,13 @@ lim_send_deauth_mgmt_frame(tpAniSirGlobal mac,
|
|||||||
pe_debug("***Sessionid %d Sending Deauth frame with "
|
pe_debug("***Sessionid %d Sending Deauth frame with "
|
||||||
"reason %u and waitForAck %d to " MAC_ADDRESS_STR
|
"reason %u and waitForAck %d to " MAC_ADDRESS_STR
|
||||||
" ,From " MAC_ADDRESS_STR,
|
" ,From " MAC_ADDRESS_STR,
|
||||||
psessionEntry->peSessionId, nReason, waitForAck,
|
pe_session->peSessionId, nReason, waitForAck,
|
||||||
MAC_ADDR_ARRAY(pMacHdr->da),
|
MAC_ADDR_ARRAY(pMacHdr->da),
|
||||||
MAC_ADDR_ARRAY(psessionEntry->selfMacAddr));
|
MAC_ADDR_ARRAY(pe_session->selfMacAddr));
|
||||||
|
|
||||||
if ((BAND_5G == lim_get_rf_band(psessionEntry->currentOperChannel))
|
if ((BAND_5G == lim_get_rf_band(pe_session->currentOperChannel))
|
||||||
|| (psessionEntry->pePersona == QDF_P2P_CLIENT_MODE) ||
|
|| (pe_session->pePersona == QDF_P2P_CLIENT_MODE) ||
|
||||||
(psessionEntry->pePersona == QDF_P2P_GO_MODE)
|
(pe_session->pePersona == QDF_P2P_GO_MODE)
|
||||||
) {
|
) {
|
||||||
txFlag |= HAL_USE_BD_RATE2_FOR_MANAGEMENT_FRAME;
|
txFlag |= HAL_USE_BD_RATE2_FOR_MANAGEMENT_FRAME;
|
||||||
}
|
}
|
||||||
@@ -3106,15 +3106,15 @@ lim_send_deauth_mgmt_frame(tpAniSirGlobal mac,
|
|||||||
#ifdef FEATURE_WLAN_TDLS
|
#ifdef FEATURE_WLAN_TDLS
|
||||||
pStaDs =
|
pStaDs =
|
||||||
dph_lookup_hash_entry(mac, peer, &aid,
|
dph_lookup_hash_entry(mac, peer, &aid,
|
||||||
&psessionEntry->dph.dphHashTable);
|
&pe_session->dph.dphHashTable);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (waitForAck) {
|
if (waitForAck) {
|
||||||
MTRACE(qdf_trace(QDF_MODULE_ID_PE, TRACE_CODE_TX_MGMT,
|
MTRACE(qdf_trace(QDF_MODULE_ID_PE, TRACE_CODE_TX_MGMT,
|
||||||
psessionEntry->peSessionId,
|
pe_session->peSessionId,
|
||||||
pMacHdr->fc.subType));
|
pMacHdr->fc.subType));
|
||||||
lim_diag_mgmt_tx_event_report(mac, pMacHdr,
|
lim_diag_mgmt_tx_event_report(mac, pMacHdr,
|
||||||
psessionEntry,
|
pe_session,
|
||||||
QDF_STATUS_SUCCESS, QDF_STATUS_SUCCESS);
|
QDF_STATUS_SUCCESS, QDF_STATUS_SUCCESS);
|
||||||
/* Queue Disassociation frame in high priority WQ */
|
/* Queue Disassociation frame in high priority WQ */
|
||||||
qdf_status =
|
qdf_status =
|
||||||
@@ -3126,7 +3126,7 @@ lim_send_deauth_mgmt_frame(tpAniSirGlobal mac,
|
|||||||
RATEID_DEFAULT);
|
RATEID_DEFAULT);
|
||||||
MTRACE(qdf_trace
|
MTRACE(qdf_trace
|
||||||
(QDF_MODULE_ID_PE, TRACE_CODE_TX_COMPLETE,
|
(QDF_MODULE_ID_PE, TRACE_CODE_TX_COMPLETE,
|
||||||
psessionEntry->peSessionId, qdf_status));
|
pe_session->peSessionId, qdf_status));
|
||||||
/* Pkt will be freed up by the callback lim_tx_complete */
|
/* Pkt will be freed up by the callback lim_tx_complete */
|
||||||
if (!QDF_IS_STATUS_SUCCESS(qdf_status)) {
|
if (!QDF_IS_STATUS_SUCCESS(qdf_status)) {
|
||||||
pe_err("Failed to send De-Authentication (%X)!",
|
pe_err("Failed to send De-Authentication (%X)!",
|
||||||
@@ -3156,14 +3156,14 @@ lim_send_deauth_mgmt_frame(tpAniSirGlobal mac,
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
MTRACE(qdf_trace(QDF_MODULE_ID_PE, TRACE_CODE_TX_MGMT,
|
MTRACE(qdf_trace(QDF_MODULE_ID_PE, TRACE_CODE_TX_MGMT,
|
||||||
psessionEntry->peSessionId,
|
pe_session->peSessionId,
|
||||||
pMacHdr->fc.subType));
|
pMacHdr->fc.subType));
|
||||||
#ifdef FEATURE_WLAN_TDLS
|
#ifdef FEATURE_WLAN_TDLS
|
||||||
if ((NULL != pStaDs)
|
if ((NULL != pStaDs)
|
||||||
&& (STA_ENTRY_TDLS_PEER == pStaDs->staType)) {
|
&& (STA_ENTRY_TDLS_PEER == pStaDs->staType)) {
|
||||||
/* Queue Disassociation frame in high priority WQ */
|
/* Queue Disassociation frame in high priority WQ */
|
||||||
lim_diag_mgmt_tx_event_report(mac, pMacHdr,
|
lim_diag_mgmt_tx_event_report(mac, pMacHdr,
|
||||||
psessionEntry,
|
pe_session,
|
||||||
QDF_STATUS_SUCCESS,
|
QDF_STATUS_SUCCESS,
|
||||||
QDF_STATUS_SUCCESS);
|
QDF_STATUS_SUCCESS);
|
||||||
qdf_status =
|
qdf_status =
|
||||||
@@ -3174,7 +3174,7 @@ lim_send_deauth_mgmt_frame(tpAniSirGlobal mac,
|
|||||||
} else {
|
} else {
|
||||||
#endif
|
#endif
|
||||||
lim_diag_mgmt_tx_event_report(mac, pMacHdr,
|
lim_diag_mgmt_tx_event_report(mac, pMacHdr,
|
||||||
psessionEntry,
|
pe_session,
|
||||||
QDF_STATUS_SUCCESS,
|
QDF_STATUS_SUCCESS,
|
||||||
QDF_STATUS_SUCCESS);
|
QDF_STATUS_SUCCESS);
|
||||||
/* Queue Disassociation frame in high priority WQ */
|
/* Queue Disassociation frame in high priority WQ */
|
||||||
@@ -3187,7 +3187,7 @@ lim_send_deauth_mgmt_frame(tpAniSirGlobal mac,
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
MTRACE(qdf_trace(QDF_MODULE_ID_PE, TRACE_CODE_TX_COMPLETE,
|
MTRACE(qdf_trace(QDF_MODULE_ID_PE, TRACE_CODE_TX_COMPLETE,
|
||||||
psessionEntry->peSessionId, qdf_status));
|
pe_session->peSessionId, qdf_status));
|
||||||
if (!QDF_IS_STATUS_SUCCESS(qdf_status)) {
|
if (!QDF_IS_STATUS_SUCCESS(qdf_status)) {
|
||||||
pe_err("Failed to send De-Authentication (%X)!",
|
pe_err("Failed to send De-Authentication (%X)!",
|
||||||
qdf_status);
|
qdf_status);
|
||||||
@@ -3214,7 +3214,7 @@ lim_send_deauth_mgmt_frame(tpAniSirGlobal mac,
|
|||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
lim_send_meas_report_frame(tpAniSirGlobal mac,
|
lim_send_meas_report_frame(tpAniSirGlobal mac,
|
||||||
tpSirMacMeasReqActionFrame pMeasReqFrame,
|
tpSirMacMeasReqActionFrame pMeasReqFrame,
|
||||||
tSirMacAddr peer, struct pe_session *psessionEntry)
|
tSirMacAddr peer, struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
tDot11fMeasurementReport frm;
|
tDot11fMeasurementReport frm;
|
||||||
uint8_t *pFrame;
|
uint8_t *pFrame;
|
||||||
@@ -3286,9 +3286,9 @@ lim_send_meas_report_frame(tpAniSirGlobal mac,
|
|||||||
SIR_MAC_MGMT_ACTION, peer);
|
SIR_MAC_MGMT_ACTION, peer);
|
||||||
pMacHdr = (tpSirMacMgmtHdr) pFrame;
|
pMacHdr = (tpSirMacMgmtHdr) pFrame;
|
||||||
|
|
||||||
qdf_mem_copy(pMacHdr->bssId, psessionEntry->bssId, sizeof(tSirMacAddr));
|
qdf_mem_copy(pMacHdr->bssId, pe_session->bssId, sizeof(tSirMacAddr));
|
||||||
|
|
||||||
lim_set_protected_bit(mac, psessionEntry, peer, pMacHdr);
|
lim_set_protected_bit(mac, pe_session, peer, pMacHdr);
|
||||||
|
|
||||||
nStatus = dot11f_pack_measurement_report(mac, &frm, pFrame +
|
nStatus = dot11f_pack_measurement_report(mac, &frm, pFrame +
|
||||||
sizeof(tSirMacMgmtHdr),
|
sizeof(tSirMacMgmtHdr),
|
||||||
@@ -3305,7 +3305,7 @@ lim_send_meas_report_frame(tpAniSirGlobal mac,
|
|||||||
}
|
}
|
||||||
|
|
||||||
MTRACE(qdf_trace(QDF_MODULE_ID_PE, TRACE_CODE_TX_MGMT,
|
MTRACE(qdf_trace(QDF_MODULE_ID_PE, TRACE_CODE_TX_MGMT,
|
||||||
((psessionEntry) ? psessionEntry->
|
((pe_session) ? pe_session->
|
||||||
peSessionId : NO_SESSION), pMacHdr->fc.subType));
|
peSessionId : NO_SESSION), pMacHdr->fc.subType));
|
||||||
qdf_status =
|
qdf_status =
|
||||||
wma_tx_frame(mac, pPacket, (uint16_t) nBytes,
|
wma_tx_frame(mac, pPacket, (uint16_t) nBytes,
|
||||||
@@ -3313,7 +3313,7 @@ lim_send_meas_report_frame(tpAniSirGlobal mac,
|
|||||||
lim_tx_complete, pFrame, 0, 0, RATEID_DEFAULT);
|
lim_tx_complete, pFrame, 0, 0, RATEID_DEFAULT);
|
||||||
MTRACE(qdf_trace
|
MTRACE(qdf_trace
|
||||||
(QDF_MODULE_ID_PE, TRACE_CODE_TX_COMPLETE,
|
(QDF_MODULE_ID_PE, TRACE_CODE_TX_COMPLETE,
|
||||||
((psessionEntry) ? psessionEntry->peSessionId : NO_SESSION),
|
((pe_session) ? pe_session->peSessionId : NO_SESSION),
|
||||||
qdf_status));
|
qdf_status));
|
||||||
if (!QDF_IS_STATUS_SUCCESS(qdf_status)) {
|
if (!QDF_IS_STATUS_SUCCESS(qdf_status)) {
|
||||||
pe_err("Failed to send a Measurement Report (%X)!",
|
pe_err("Failed to send a Measurement Report (%X)!",
|
||||||
@@ -3339,7 +3339,7 @@ lim_send_meas_report_frame(tpAniSirGlobal mac,
|
|||||||
|
|
||||||
void
|
void
|
||||||
lim_send_tpc_request_frame(tpAniSirGlobal mac,
|
lim_send_tpc_request_frame(tpAniSirGlobal mac,
|
||||||
tSirMacAddr peer, struct pe_session *psessionEntry)
|
tSirMacAddr peer, struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
tDot11fTPCRequest frm;
|
tDot11fTPCRequest frm;
|
||||||
uint8_t *pFrame;
|
uint8_t *pFrame;
|
||||||
@@ -3384,9 +3384,9 @@ lim_send_tpc_request_frame(tpAniSirGlobal mac,
|
|||||||
SIR_MAC_MGMT_ACTION, peer);
|
SIR_MAC_MGMT_ACTION, peer);
|
||||||
pMacHdr = (tpSirMacMgmtHdr) pFrame;
|
pMacHdr = (tpSirMacMgmtHdr) pFrame;
|
||||||
|
|
||||||
qdf_mem_copy(pMacHdr->bssId, psessionEntry->bssId, sizeof(tSirMacAddr));
|
qdf_mem_copy(pMacHdr->bssId, pe_session->bssId, sizeof(tSirMacAddr));
|
||||||
|
|
||||||
lim_set_protected_bit(mac, psessionEntry, peer, pMacHdr);
|
lim_set_protected_bit(mac, pe_session, peer, pMacHdr);
|
||||||
|
|
||||||
nStatus = dot11f_pack_tpc_request(mac, &frm, pFrame +
|
nStatus = dot11f_pack_tpc_request(mac, &frm, pFrame +
|
||||||
sizeof(tSirMacMgmtHdr),
|
sizeof(tSirMacMgmtHdr),
|
||||||
@@ -3403,7 +3403,7 @@ lim_send_tpc_request_frame(tpAniSirGlobal mac,
|
|||||||
}
|
}
|
||||||
|
|
||||||
MTRACE(qdf_trace(QDF_MODULE_ID_PE, TRACE_CODE_TX_MGMT,
|
MTRACE(qdf_trace(QDF_MODULE_ID_PE, TRACE_CODE_TX_MGMT,
|
||||||
((psessionEntry) ? psessionEntry->
|
((pe_session) ? pe_session->
|
||||||
peSessionId : NO_SESSION), pMacHdr->fc.subType));
|
peSessionId : NO_SESSION), pMacHdr->fc.subType));
|
||||||
qdf_status =
|
qdf_status =
|
||||||
wma_tx_frame(mac, pPacket, (uint16_t) nBytes,
|
wma_tx_frame(mac, pPacket, (uint16_t) nBytes,
|
||||||
@@ -3411,7 +3411,7 @@ lim_send_tpc_request_frame(tpAniSirGlobal mac,
|
|||||||
lim_tx_complete, pFrame, 0, 0, RATEID_DEFAULT);
|
lim_tx_complete, pFrame, 0, 0, RATEID_DEFAULT);
|
||||||
MTRACE(qdf_trace
|
MTRACE(qdf_trace
|
||||||
(QDF_MODULE_ID_PE, TRACE_CODE_TX_COMPLETE,
|
(QDF_MODULE_ID_PE, TRACE_CODE_TX_COMPLETE,
|
||||||
((psessionEntry) ? psessionEntry->peSessionId : NO_SESSION),
|
((pe_session) ? pe_session->peSessionId : NO_SESSION),
|
||||||
qdf_status));
|
qdf_status));
|
||||||
if (!QDF_IS_STATUS_SUCCESS(qdf_status)) {
|
if (!QDF_IS_STATUS_SUCCESS(qdf_status)) {
|
||||||
pe_err("Failed to send a TPC Request (%X)!",
|
pe_err("Failed to send a TPC Request (%X)!",
|
||||||
@@ -3437,7 +3437,7 @@ lim_send_tpc_request_frame(tpAniSirGlobal mac,
|
|||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
lim_send_tpc_report_frame(tpAniSirGlobal mac,
|
lim_send_tpc_report_frame(tpAniSirGlobal mac,
|
||||||
tpSirMacTpcReqActionFrame pTpcReqFrame,
|
tpSirMacTpcReqActionFrame pTpcReqFrame,
|
||||||
tSirMacAddr peer, struct pe_session *psessionEntry)
|
tSirMacAddr peer, struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
tDot11fTPCReport frm;
|
tDot11fTPCReport frm;
|
||||||
uint8_t *pFrame;
|
uint8_t *pFrame;
|
||||||
@@ -3486,9 +3486,9 @@ lim_send_tpc_report_frame(tpAniSirGlobal mac,
|
|||||||
|
|
||||||
pMacHdr = (tpSirMacMgmtHdr) pFrame;
|
pMacHdr = (tpSirMacMgmtHdr) pFrame;
|
||||||
|
|
||||||
qdf_mem_copy(pMacHdr->bssId, psessionEntry->bssId, sizeof(tSirMacAddr));
|
qdf_mem_copy(pMacHdr->bssId, pe_session->bssId, sizeof(tSirMacAddr));
|
||||||
|
|
||||||
lim_set_protected_bit(mac, psessionEntry, peer, pMacHdr);
|
lim_set_protected_bit(mac, pe_session, peer, pMacHdr);
|
||||||
|
|
||||||
nStatus = dot11f_pack_tpc_report(mac, &frm, pFrame +
|
nStatus = dot11f_pack_tpc_report(mac, &frm, pFrame +
|
||||||
sizeof(tSirMacMgmtHdr),
|
sizeof(tSirMacMgmtHdr),
|
||||||
@@ -3504,7 +3504,7 @@ lim_send_tpc_report_frame(tpAniSirGlobal mac,
|
|||||||
nStatus);
|
nStatus);
|
||||||
|
|
||||||
MTRACE(qdf_trace(QDF_MODULE_ID_PE, TRACE_CODE_TX_MGMT,
|
MTRACE(qdf_trace(QDF_MODULE_ID_PE, TRACE_CODE_TX_MGMT,
|
||||||
((psessionEntry) ? psessionEntry->
|
((pe_session) ? pe_session->
|
||||||
peSessionId : NO_SESSION), pMacHdr->fc.subType));
|
peSessionId : NO_SESSION), pMacHdr->fc.subType));
|
||||||
qdf_status =
|
qdf_status =
|
||||||
wma_tx_frame(mac, pPacket, (uint16_t) nBytes,
|
wma_tx_frame(mac, pPacket, (uint16_t) nBytes,
|
||||||
@@ -3512,7 +3512,7 @@ lim_send_tpc_report_frame(tpAniSirGlobal mac,
|
|||||||
lim_tx_complete, pFrame, 0, 0, RATEID_DEFAULT);
|
lim_tx_complete, pFrame, 0, 0, RATEID_DEFAULT);
|
||||||
MTRACE(qdf_trace
|
MTRACE(qdf_trace
|
||||||
(QDF_MODULE_ID_PE, TRACE_CODE_TX_COMPLETE,
|
(QDF_MODULE_ID_PE, TRACE_CODE_TX_COMPLETE,
|
||||||
((psessionEntry) ? psessionEntry->peSessionId : NO_SESSION),
|
((pe_session) ? pe_session->peSessionId : NO_SESSION),
|
||||||
qdf_status));
|
qdf_status));
|
||||||
if (!QDF_IS_STATUS_SUCCESS(qdf_status)) {
|
if (!QDF_IS_STATUS_SUCCESS(qdf_status)) {
|
||||||
pe_err("Failed to send a TPC Report (%X)!",
|
pe_err("Failed to send a TPC Report (%X)!",
|
||||||
@@ -3550,7 +3550,7 @@ lim_send_channel_switch_mgmt_frame(tpAniSirGlobal mac,
|
|||||||
tSirMacAddr peer,
|
tSirMacAddr peer,
|
||||||
uint8_t nMode,
|
uint8_t nMode,
|
||||||
uint8_t nNewChannel,
|
uint8_t nNewChannel,
|
||||||
uint8_t nCount, struct pe_session *psessionEntry)
|
uint8_t nCount, struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
tDot11fChannelSwitch frm;
|
tDot11fChannelSwitch frm;
|
||||||
uint8_t *pFrame;
|
uint8_t *pFrame;
|
||||||
@@ -3562,11 +3562,11 @@ lim_send_channel_switch_mgmt_frame(tpAniSirGlobal mac,
|
|||||||
|
|
||||||
uint8_t smeSessionId = 0;
|
uint8_t smeSessionId = 0;
|
||||||
|
|
||||||
if (psessionEntry == NULL) {
|
if (pe_session == NULL) {
|
||||||
pe_err("Session entry is NULL!!!");
|
pe_err("Session entry is NULL!!!");
|
||||||
return QDF_STATUS_E_FAILURE;
|
return QDF_STATUS_E_FAILURE;
|
||||||
}
|
}
|
||||||
smeSessionId = psessionEntry->smeSessionId;
|
smeSessionId = pe_session->smeSessionId;
|
||||||
|
|
||||||
qdf_mem_set((uint8_t *) &frm, sizeof(frm), 0);
|
qdf_mem_set((uint8_t *) &frm, sizeof(frm), 0);
|
||||||
|
|
||||||
@@ -3603,12 +3603,12 @@ lim_send_channel_switch_mgmt_frame(tpAniSirGlobal mac,
|
|||||||
/* Next, we fill out the buffer descriptor: */
|
/* Next, we fill out the buffer descriptor: */
|
||||||
lim_populate_mac_header(mac, pFrame, SIR_MAC_MGMT_FRAME,
|
lim_populate_mac_header(mac, pFrame, SIR_MAC_MGMT_FRAME,
|
||||||
SIR_MAC_MGMT_ACTION, peer,
|
SIR_MAC_MGMT_ACTION, peer,
|
||||||
psessionEntry->selfMacAddr);
|
pe_session->selfMacAddr);
|
||||||
pMacHdr = (tpSirMacMgmtHdr) pFrame;
|
pMacHdr = (tpSirMacMgmtHdr) pFrame;
|
||||||
qdf_mem_copy((uint8_t *) pMacHdr->bssId,
|
qdf_mem_copy((uint8_t *) pMacHdr->bssId,
|
||||||
(uint8_t *) psessionEntry->bssId, sizeof(tSirMacAddr));
|
(uint8_t *) pe_session->bssId, sizeof(tSirMacAddr));
|
||||||
|
|
||||||
lim_set_protected_bit(mac, psessionEntry, peer, pMacHdr);
|
lim_set_protected_bit(mac, pe_session, peer, pMacHdr);
|
||||||
|
|
||||||
nStatus = dot11f_pack_channel_switch(mac, &frm, pFrame +
|
nStatus = dot11f_pack_channel_switch(mac, &frm, pFrame +
|
||||||
sizeof(tSirMacMgmtHdr),
|
sizeof(tSirMacMgmtHdr),
|
||||||
@@ -3623,22 +3623,22 @@ lim_send_channel_switch_mgmt_frame(tpAniSirGlobal mac,
|
|||||||
nStatus);
|
nStatus);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((BAND_5G == lim_get_rf_band(psessionEntry->currentOperChannel))
|
if ((BAND_5G == lim_get_rf_band(pe_session->currentOperChannel))
|
||||||
|| (psessionEntry->pePersona == QDF_P2P_CLIENT_MODE) ||
|
|| (pe_session->pePersona == QDF_P2P_CLIENT_MODE) ||
|
||||||
(psessionEntry->pePersona == QDF_P2P_GO_MODE)
|
(pe_session->pePersona == QDF_P2P_GO_MODE)
|
||||||
) {
|
) {
|
||||||
txFlag |= HAL_USE_BD_RATE2_FOR_MANAGEMENT_FRAME;
|
txFlag |= HAL_USE_BD_RATE2_FOR_MANAGEMENT_FRAME;
|
||||||
}
|
}
|
||||||
|
|
||||||
MTRACE(qdf_trace(QDF_MODULE_ID_PE, TRACE_CODE_TX_MGMT,
|
MTRACE(qdf_trace(QDF_MODULE_ID_PE, TRACE_CODE_TX_MGMT,
|
||||||
psessionEntry->peSessionId, pMacHdr->fc.subType));
|
pe_session->peSessionId, pMacHdr->fc.subType));
|
||||||
qdf_status = wma_tx_frame(mac, pPacket, (uint16_t) nBytes,
|
qdf_status = wma_tx_frame(mac, pPacket, (uint16_t) nBytes,
|
||||||
TXRX_FRM_802_11_MGMT,
|
TXRX_FRM_802_11_MGMT,
|
||||||
ANI_TXDIR_TODS,
|
ANI_TXDIR_TODS,
|
||||||
7, lim_tx_complete, pFrame, txFlag,
|
7, lim_tx_complete, pFrame, txFlag,
|
||||||
smeSessionId, 0, RATEID_DEFAULT);
|
smeSessionId, 0, RATEID_DEFAULT);
|
||||||
MTRACE(qdf_trace(QDF_MODULE_ID_PE, TRACE_CODE_TX_COMPLETE,
|
MTRACE(qdf_trace(QDF_MODULE_ID_PE, TRACE_CODE_TX_COMPLETE,
|
||||||
psessionEntry->peSessionId, qdf_status));
|
pe_session->peSessionId, qdf_status));
|
||||||
if (!QDF_IS_STATUS_SUCCESS(qdf_status)) {
|
if (!QDF_IS_STATUS_SUCCESS(qdf_status)) {
|
||||||
pe_err("Failed to send a Channel Switch (%X)!",
|
pe_err("Failed to send a Channel Switch (%X)!",
|
||||||
qdf_status);
|
qdf_status);
|
||||||
@@ -3953,7 +3953,7 @@ lim_p2p_oper_chan_change_confirm_action_frame(tpAniSirGlobal mac_ctx,
|
|||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
lim_send_vht_opmode_notification_frame(tpAniSirGlobal mac,
|
lim_send_vht_opmode_notification_frame(tpAniSirGlobal mac,
|
||||||
tSirMacAddr peer,
|
tSirMacAddr peer,
|
||||||
uint8_t nMode, struct pe_session *psessionEntry)
|
uint8_t nMode, struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
tDot11fOperatingMode frm;
|
tDot11fOperatingMode frm;
|
||||||
uint8_t *pFrame;
|
uint8_t *pFrame;
|
||||||
@@ -3965,11 +3965,11 @@ lim_send_vht_opmode_notification_frame(tpAniSirGlobal mac,
|
|||||||
|
|
||||||
uint8_t smeSessionId = 0;
|
uint8_t smeSessionId = 0;
|
||||||
|
|
||||||
if (psessionEntry == NULL) {
|
if (pe_session == NULL) {
|
||||||
pe_err("Session entry is NULL!!!");
|
pe_err("Session entry is NULL!!!");
|
||||||
return QDF_STATUS_E_FAILURE;
|
return QDF_STATUS_E_FAILURE;
|
||||||
}
|
}
|
||||||
smeSessionId = psessionEntry->smeSessionId;
|
smeSessionId = pe_session->smeSessionId;
|
||||||
|
|
||||||
qdf_mem_set((uint8_t *) &frm, sizeof(frm), 0);
|
qdf_mem_set((uint8_t *) &frm, sizeof(frm), 0);
|
||||||
|
|
||||||
@@ -4004,17 +4004,17 @@ lim_send_vht_opmode_notification_frame(tpAniSirGlobal mac,
|
|||||||
qdf_mem_set(pFrame, nBytes, 0);
|
qdf_mem_set(pFrame, nBytes, 0);
|
||||||
|
|
||||||
/* Next, we fill out the buffer descriptor: */
|
/* Next, we fill out the buffer descriptor: */
|
||||||
if (psessionEntry->pePersona == QDF_SAP_MODE)
|
if (pe_session->pePersona == QDF_SAP_MODE)
|
||||||
lim_populate_mac_header(mac, pFrame, SIR_MAC_MGMT_FRAME,
|
lim_populate_mac_header(mac, pFrame, SIR_MAC_MGMT_FRAME,
|
||||||
SIR_MAC_MGMT_ACTION, peer,
|
SIR_MAC_MGMT_ACTION, peer,
|
||||||
psessionEntry->selfMacAddr);
|
pe_session->selfMacAddr);
|
||||||
else
|
else
|
||||||
lim_populate_mac_header(mac, pFrame, SIR_MAC_MGMT_FRAME,
|
lim_populate_mac_header(mac, pFrame, SIR_MAC_MGMT_FRAME,
|
||||||
SIR_MAC_MGMT_ACTION, psessionEntry->bssId,
|
SIR_MAC_MGMT_ACTION, pe_session->bssId,
|
||||||
psessionEntry->selfMacAddr);
|
pe_session->selfMacAddr);
|
||||||
pMacHdr = (tpSirMacMgmtHdr) pFrame;
|
pMacHdr = (tpSirMacMgmtHdr) pFrame;
|
||||||
qdf_mem_copy((uint8_t *) pMacHdr->bssId,
|
qdf_mem_copy((uint8_t *) pMacHdr->bssId,
|
||||||
(uint8_t *) psessionEntry->bssId, sizeof(tSirMacAddr));
|
(uint8_t *) pe_session->bssId, sizeof(tSirMacAddr));
|
||||||
nStatus = dot11f_pack_operating_mode(mac, &frm, pFrame +
|
nStatus = dot11f_pack_operating_mode(mac, &frm, pFrame +
|
||||||
sizeof(tSirMacMgmtHdr),
|
sizeof(tSirMacMgmtHdr),
|
||||||
nPayload, &nPayload);
|
nPayload, &nPayload);
|
||||||
@@ -4027,22 +4027,22 @@ lim_send_vht_opmode_notification_frame(tpAniSirGlobal mac,
|
|||||||
pe_warn("There were warnings while packing a Operating Mode (0x%08x)",
|
pe_warn("There were warnings while packing a Operating Mode (0x%08x)",
|
||||||
nStatus);
|
nStatus);
|
||||||
}
|
}
|
||||||
if ((BAND_5G == lim_get_rf_band(psessionEntry->currentOperChannel))
|
if ((BAND_5G == lim_get_rf_band(pe_session->currentOperChannel))
|
||||||
|| (psessionEntry->pePersona == QDF_P2P_CLIENT_MODE) ||
|
|| (pe_session->pePersona == QDF_P2P_CLIENT_MODE) ||
|
||||||
(psessionEntry->pePersona == QDF_P2P_GO_MODE)
|
(pe_session->pePersona == QDF_P2P_GO_MODE)
|
||||||
) {
|
) {
|
||||||
txFlag |= HAL_USE_BD_RATE2_FOR_MANAGEMENT_FRAME;
|
txFlag |= HAL_USE_BD_RATE2_FOR_MANAGEMENT_FRAME;
|
||||||
}
|
}
|
||||||
|
|
||||||
MTRACE(qdf_trace(QDF_MODULE_ID_PE, TRACE_CODE_TX_MGMT,
|
MTRACE(qdf_trace(QDF_MODULE_ID_PE, TRACE_CODE_TX_MGMT,
|
||||||
psessionEntry->peSessionId, pMacHdr->fc.subType));
|
pe_session->peSessionId, pMacHdr->fc.subType));
|
||||||
qdf_status = wma_tx_frame(mac, pPacket, (uint16_t) nBytes,
|
qdf_status = wma_tx_frame(mac, pPacket, (uint16_t) nBytes,
|
||||||
TXRX_FRM_802_11_MGMT,
|
TXRX_FRM_802_11_MGMT,
|
||||||
ANI_TXDIR_TODS,
|
ANI_TXDIR_TODS,
|
||||||
7, lim_tx_complete, pFrame, txFlag,
|
7, lim_tx_complete, pFrame, txFlag,
|
||||||
smeSessionId, 0, RATEID_DEFAULT);
|
smeSessionId, 0, RATEID_DEFAULT);
|
||||||
MTRACE(qdf_trace(QDF_MODULE_ID_PE, TRACE_CODE_TX_COMPLETE,
|
MTRACE(qdf_trace(QDF_MODULE_ID_PE, TRACE_CODE_TX_COMPLETE,
|
||||||
psessionEntry->peSessionId, qdf_status));
|
pe_session->peSessionId, qdf_status));
|
||||||
if (!QDF_IS_STATUS_SUCCESS(qdf_status)) {
|
if (!QDF_IS_STATUS_SUCCESS(qdf_status)) {
|
||||||
pe_err("Failed to send a Channel Switch (%X)!",
|
pe_err("Failed to send a Channel Switch (%X)!",
|
||||||
qdf_status);
|
qdf_status);
|
||||||
@@ -4063,7 +4063,7 @@ lim_send_vht_opmode_notification_frame(tpAniSirGlobal mac,
|
|||||||
*
|
*
|
||||||
* \param peer mac address of peer station.
|
* \param peer mac address of peer station.
|
||||||
*
|
*
|
||||||
* \param psessionEntry address of session entry.
|
* \param pe_session address of session entry.
|
||||||
*
|
*
|
||||||
* \return QDF_STATUS_SUCCESS on success, QDF_STATUS_E_FAILURE else
|
* \return QDF_STATUS_SUCCESS on success, QDF_STATUS_E_FAILURE else
|
||||||
*
|
*
|
||||||
@@ -4073,7 +4073,7 @@ lim_send_vht_opmode_notification_frame(tpAniSirGlobal mac,
|
|||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
lim_send_neighbor_report_request_frame(tpAniSirGlobal mac,
|
lim_send_neighbor_report_request_frame(tpAniSirGlobal mac,
|
||||||
tpSirMacNeighborReportReq pNeighborReq,
|
tpSirMacNeighborReportReq pNeighborReq,
|
||||||
tSirMacAddr peer, struct pe_session *psessionEntry)
|
tSirMacAddr peer, struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
QDF_STATUS statusCode = QDF_STATUS_SUCCESS;
|
QDF_STATUS statusCode = QDF_STATUS_SUCCESS;
|
||||||
tDot11fNeighborReportRequest frm;
|
tDot11fNeighborReportRequest frm;
|
||||||
@@ -4085,11 +4085,11 @@ lim_send_neighbor_report_request_frame(tpAniSirGlobal mac,
|
|||||||
uint8_t txFlag = 0;
|
uint8_t txFlag = 0;
|
||||||
uint8_t smeSessionId = 0;
|
uint8_t smeSessionId = 0;
|
||||||
|
|
||||||
if (psessionEntry == NULL) {
|
if (pe_session == NULL) {
|
||||||
pe_err("(psession == NULL) in Request to send Neighbor Report request action frame");
|
pe_err("(psession == NULL) in Request to send Neighbor Report request action frame");
|
||||||
return QDF_STATUS_E_FAILURE;
|
return QDF_STATUS_E_FAILURE;
|
||||||
}
|
}
|
||||||
smeSessionId = psessionEntry->smeSessionId;
|
smeSessionId = pe_session->smeSessionId;
|
||||||
qdf_mem_set((uint8_t *) &frm, sizeof(frm), 0);
|
qdf_mem_set((uint8_t *) &frm, sizeof(frm), 0);
|
||||||
|
|
||||||
frm.Category.category = SIR_MAC_ACTION_RRM;
|
frm.Category.category = SIR_MAC_ACTION_RRM;
|
||||||
@@ -4127,14 +4127,14 @@ lim_send_neighbor_report_request_frame(tpAniSirGlobal mac,
|
|||||||
|
|
||||||
/* Copy necessary info to BD */
|
/* Copy necessary info to BD */
|
||||||
lim_populate_mac_header(mac, pFrame, SIR_MAC_MGMT_FRAME,
|
lim_populate_mac_header(mac, pFrame, SIR_MAC_MGMT_FRAME,
|
||||||
SIR_MAC_MGMT_ACTION, peer, psessionEntry->selfMacAddr);
|
SIR_MAC_MGMT_ACTION, peer, pe_session->selfMacAddr);
|
||||||
|
|
||||||
/* Update A3 with the BSSID */
|
/* Update A3 with the BSSID */
|
||||||
pMacHdr = (tpSirMacMgmtHdr) pFrame;
|
pMacHdr = (tpSirMacMgmtHdr) pFrame;
|
||||||
|
|
||||||
sir_copy_mac_addr(pMacHdr->bssId, psessionEntry->bssId);
|
sir_copy_mac_addr(pMacHdr->bssId, pe_session->bssId);
|
||||||
|
|
||||||
lim_set_protected_bit(mac, psessionEntry, peer, pMacHdr);
|
lim_set_protected_bit(mac, pe_session, peer, pMacHdr);
|
||||||
|
|
||||||
/* Now, we're ready to "pack" the frames */
|
/* Now, we're ready to "pack" the frames */
|
||||||
nStatus = dot11f_pack_neighbor_report_request(mac,
|
nStatus = dot11f_pack_neighbor_report_request(mac,
|
||||||
@@ -4158,15 +4158,15 @@ lim_send_neighbor_report_request_frame(tpAniSirGlobal mac,
|
|||||||
pe_debug("Sending a Neighbor Report Request to");
|
pe_debug("Sending a Neighbor Report Request to");
|
||||||
lim_print_mac_addr(mac, peer, LOGD);
|
lim_print_mac_addr(mac, peer, LOGD);
|
||||||
|
|
||||||
if ((BAND_5G == lim_get_rf_band(psessionEntry->currentOperChannel))
|
if ((BAND_5G == lim_get_rf_band(pe_session->currentOperChannel))
|
||||||
|| (psessionEntry->pePersona == QDF_P2P_CLIENT_MODE) ||
|
|| (pe_session->pePersona == QDF_P2P_CLIENT_MODE) ||
|
||||||
(psessionEntry->pePersona == QDF_P2P_GO_MODE)
|
(pe_session->pePersona == QDF_P2P_GO_MODE)
|
||||||
) {
|
) {
|
||||||
txFlag |= HAL_USE_BD_RATE2_FOR_MANAGEMENT_FRAME;
|
txFlag |= HAL_USE_BD_RATE2_FOR_MANAGEMENT_FRAME;
|
||||||
}
|
}
|
||||||
|
|
||||||
MTRACE(qdf_trace(QDF_MODULE_ID_PE, TRACE_CODE_TX_MGMT,
|
MTRACE(qdf_trace(QDF_MODULE_ID_PE, TRACE_CODE_TX_MGMT,
|
||||||
psessionEntry->peSessionId, pMacHdr->fc.subType));
|
pe_session->peSessionId, pMacHdr->fc.subType));
|
||||||
qdf_status = wma_tx_frame(mac,
|
qdf_status = wma_tx_frame(mac,
|
||||||
pPacket,
|
pPacket,
|
||||||
(uint16_t) nBytes,
|
(uint16_t) nBytes,
|
||||||
@@ -4175,7 +4175,7 @@ lim_send_neighbor_report_request_frame(tpAniSirGlobal mac,
|
|||||||
7, lim_tx_complete, pFrame, txFlag,
|
7, lim_tx_complete, pFrame, txFlag,
|
||||||
smeSessionId, 0, RATEID_DEFAULT);
|
smeSessionId, 0, RATEID_DEFAULT);
|
||||||
MTRACE(qdf_trace(QDF_MODULE_ID_PE, TRACE_CODE_TX_COMPLETE,
|
MTRACE(qdf_trace(QDF_MODULE_ID_PE, TRACE_CODE_TX_COMPLETE,
|
||||||
psessionEntry->peSessionId, qdf_status));
|
pe_session->peSessionId, qdf_status));
|
||||||
if (QDF_STATUS_SUCCESS != qdf_status) {
|
if (QDF_STATUS_SUCCESS != qdf_status) {
|
||||||
pe_err("wma_tx_frame FAILED! Status [%d]", qdf_status);
|
pe_err("wma_tx_frame FAILED! Status [%d]", qdf_status);
|
||||||
statusCode = QDF_STATUS_E_FAILURE;
|
statusCode = QDF_STATUS_E_FAILURE;
|
||||||
@@ -4200,7 +4200,7 @@ returnAfterError:
|
|||||||
*
|
*
|
||||||
* \param peer mac address of peer station.
|
* \param peer mac address of peer station.
|
||||||
*
|
*
|
||||||
* \param psessionEntry address of session entry.
|
* \param pe_session address of session entry.
|
||||||
*
|
*
|
||||||
* \return QDF_STATUS_SUCCESS on success, QDF_STATUS_E_FAILURE else
|
* \return QDF_STATUS_SUCCESS on success, QDF_STATUS_E_FAILURE else
|
||||||
*
|
*
|
||||||
@@ -4210,7 +4210,7 @@ returnAfterError:
|
|||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
lim_send_link_report_action_frame(tpAniSirGlobal mac,
|
lim_send_link_report_action_frame(tpAniSirGlobal mac,
|
||||||
tpSirMacLinkReport pLinkReport,
|
tpSirMacLinkReport pLinkReport,
|
||||||
tSirMacAddr peer, struct pe_session *psessionEntry)
|
tSirMacAddr peer, struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
QDF_STATUS statusCode = QDF_STATUS_SUCCESS;
|
QDF_STATUS statusCode = QDF_STATUS_SUCCESS;
|
||||||
tDot11fLinkMeasurementReport frm;
|
tDot11fLinkMeasurementReport frm;
|
||||||
@@ -4222,7 +4222,7 @@ lim_send_link_report_action_frame(tpAniSirGlobal mac,
|
|||||||
uint8_t txFlag = 0;
|
uint8_t txFlag = 0;
|
||||||
uint8_t smeSessionId = 0;
|
uint8_t smeSessionId = 0;
|
||||||
|
|
||||||
if (psessionEntry == NULL) {
|
if (pe_session == NULL) {
|
||||||
pe_err("(psession == NULL) in Request to send Link Report action frame");
|
pe_err("(psession == NULL) in Request to send Link Report action frame");
|
||||||
return QDF_STATUS_E_FAILURE;
|
return QDF_STATUS_E_FAILURE;
|
||||||
}
|
}
|
||||||
@@ -4274,14 +4274,14 @@ lim_send_link_report_action_frame(tpAniSirGlobal mac,
|
|||||||
|
|
||||||
/* Copy necessary info to BD */
|
/* Copy necessary info to BD */
|
||||||
lim_populate_mac_header(mac, pFrame, SIR_MAC_MGMT_FRAME,
|
lim_populate_mac_header(mac, pFrame, SIR_MAC_MGMT_FRAME,
|
||||||
SIR_MAC_MGMT_ACTION, peer, psessionEntry->selfMacAddr);
|
SIR_MAC_MGMT_ACTION, peer, pe_session->selfMacAddr);
|
||||||
|
|
||||||
/* Update A3 with the BSSID */
|
/* Update A3 with the BSSID */
|
||||||
pMacHdr = (tpSirMacMgmtHdr) pFrame;
|
pMacHdr = (tpSirMacMgmtHdr) pFrame;
|
||||||
|
|
||||||
sir_copy_mac_addr(pMacHdr->bssId, psessionEntry->bssId);
|
sir_copy_mac_addr(pMacHdr->bssId, pe_session->bssId);
|
||||||
|
|
||||||
lim_set_protected_bit(mac, psessionEntry, peer, pMacHdr);
|
lim_set_protected_bit(mac, pe_session, peer, pMacHdr);
|
||||||
|
|
||||||
/* Now, we're ready to "pack" the frames */
|
/* Now, we're ready to "pack" the frames */
|
||||||
nStatus = dot11f_pack_link_measurement_report(mac,
|
nStatus = dot11f_pack_link_measurement_report(mac,
|
||||||
@@ -4304,14 +4304,14 @@ lim_send_link_report_action_frame(tpAniSirGlobal mac,
|
|||||||
pe_warn("Sending a Link Report to");
|
pe_warn("Sending a Link Report to");
|
||||||
lim_print_mac_addr(mac, peer, LOGW);
|
lim_print_mac_addr(mac, peer, LOGW);
|
||||||
|
|
||||||
if ((BAND_5G == lim_get_rf_band(psessionEntry->currentOperChannel))
|
if ((BAND_5G == lim_get_rf_band(pe_session->currentOperChannel))
|
||||||
|| (psessionEntry->pePersona == QDF_P2P_CLIENT_MODE) ||
|
|| (pe_session->pePersona == QDF_P2P_CLIENT_MODE) ||
|
||||||
(psessionEntry->pePersona == QDF_P2P_GO_MODE)) {
|
(pe_session->pePersona == QDF_P2P_GO_MODE)) {
|
||||||
txFlag |= HAL_USE_BD_RATE2_FOR_MANAGEMENT_FRAME;
|
txFlag |= HAL_USE_BD_RATE2_FOR_MANAGEMENT_FRAME;
|
||||||
}
|
}
|
||||||
|
|
||||||
MTRACE(qdf_trace(QDF_MODULE_ID_PE, TRACE_CODE_TX_MGMT,
|
MTRACE(qdf_trace(QDF_MODULE_ID_PE, TRACE_CODE_TX_MGMT,
|
||||||
psessionEntry->peSessionId, pMacHdr->fc.subType));
|
pe_session->peSessionId, pMacHdr->fc.subType));
|
||||||
qdf_status = wma_tx_frame(mac,
|
qdf_status = wma_tx_frame(mac,
|
||||||
pPacket,
|
pPacket,
|
||||||
(uint16_t) nBytes,
|
(uint16_t) nBytes,
|
||||||
@@ -4320,7 +4320,7 @@ lim_send_link_report_action_frame(tpAniSirGlobal mac,
|
|||||||
7, lim_tx_complete, pFrame, txFlag,
|
7, lim_tx_complete, pFrame, txFlag,
|
||||||
smeSessionId, 0, RATEID_DEFAULT);
|
smeSessionId, 0, RATEID_DEFAULT);
|
||||||
MTRACE(qdf_trace(QDF_MODULE_ID_PE, TRACE_CODE_TX_COMPLETE,
|
MTRACE(qdf_trace(QDF_MODULE_ID_PE, TRACE_CODE_TX_COMPLETE,
|
||||||
psessionEntry->peSessionId, qdf_status));
|
pe_session->peSessionId, qdf_status));
|
||||||
if (QDF_STATUS_SUCCESS != qdf_status) {
|
if (QDF_STATUS_SUCCESS != qdf_status) {
|
||||||
pe_err("wma_tx_frame FAILED! Status [%d]", qdf_status);
|
pe_err("wma_tx_frame FAILED! Status [%d]", qdf_status);
|
||||||
statusCode = QDF_STATUS_E_FAILURE;
|
statusCode = QDF_STATUS_E_FAILURE;
|
||||||
@@ -4342,7 +4342,7 @@ lim_send_radio_measure_report_action_frame(tpAniSirGlobal mac,
|
|||||||
bool is_last_frame,
|
bool is_last_frame,
|
||||||
tpSirMacRadioMeasureReport pRRMReport,
|
tpSirMacRadioMeasureReport pRRMReport,
|
||||||
tSirMacAddr peer,
|
tSirMacAddr peer,
|
||||||
struct pe_session *psessionEntry)
|
struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
QDF_STATUS statusCode = QDF_STATUS_SUCCESS;
|
QDF_STATUS statusCode = QDF_STATUS_SUCCESS;
|
||||||
uint8_t *pFrame;
|
uint8_t *pFrame;
|
||||||
@@ -4360,13 +4360,13 @@ lim_send_radio_measure_report_action_frame(tpAniSirGlobal mac,
|
|||||||
if (!frm)
|
if (!frm)
|
||||||
return QDF_STATUS_E_NOMEM;
|
return QDF_STATUS_E_NOMEM;
|
||||||
|
|
||||||
if (psessionEntry == NULL) {
|
if (pe_session == NULL) {
|
||||||
pe_err("(psession == NULL) in Request to send Beacon Report action frame");
|
pe_err("(psession == NULL) in Request to send Beacon Report action frame");
|
||||||
qdf_mem_free(frm);
|
qdf_mem_free(frm);
|
||||||
return QDF_STATUS_E_FAILURE;
|
return QDF_STATUS_E_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
smeSessionId = psessionEntry->smeSessionId;
|
smeSessionId = pe_session->smeSessionId;
|
||||||
|
|
||||||
pe_debug("dialog_token %d num_report %d is_last_frame %d",
|
pe_debug("dialog_token %d num_report %d is_last_frame %d",
|
||||||
dialog_token, num_report, is_last_frame);
|
dialog_token, num_report, is_last_frame);
|
||||||
@@ -4445,14 +4445,14 @@ lim_send_radio_measure_report_action_frame(tpAniSirGlobal mac,
|
|||||||
|
|
||||||
/* Copy necessary info to BD */
|
/* Copy necessary info to BD */
|
||||||
lim_populate_mac_header(mac, pFrame, SIR_MAC_MGMT_FRAME,
|
lim_populate_mac_header(mac, pFrame, SIR_MAC_MGMT_FRAME,
|
||||||
SIR_MAC_MGMT_ACTION, peer, psessionEntry->selfMacAddr);
|
SIR_MAC_MGMT_ACTION, peer, pe_session->selfMacAddr);
|
||||||
|
|
||||||
/* Update A3 with the BSSID */
|
/* Update A3 with the BSSID */
|
||||||
pMacHdr = (tpSirMacMgmtHdr) pFrame;
|
pMacHdr = (tpSirMacMgmtHdr) pFrame;
|
||||||
|
|
||||||
sir_copy_mac_addr(pMacHdr->bssId, psessionEntry->bssId);
|
sir_copy_mac_addr(pMacHdr->bssId, pe_session->bssId);
|
||||||
|
|
||||||
lim_set_protected_bit(mac, psessionEntry, peer, pMacHdr);
|
lim_set_protected_bit(mac, pe_session, peer, pMacHdr);
|
||||||
|
|
||||||
/* Now, we're ready to "pack" the frames */
|
/* Now, we're ready to "pack" the frames */
|
||||||
nStatus = dot11f_pack_radio_measurement_report(mac,
|
nStatus = dot11f_pack_radio_measurement_report(mac,
|
||||||
@@ -4476,15 +4476,15 @@ lim_send_radio_measure_report_action_frame(tpAniSirGlobal mac,
|
|||||||
pe_warn("Sending a Radio Measure Report to");
|
pe_warn("Sending a Radio Measure Report to");
|
||||||
lim_print_mac_addr(mac, peer, LOGW);
|
lim_print_mac_addr(mac, peer, LOGW);
|
||||||
|
|
||||||
if ((BAND_5G == lim_get_rf_band(psessionEntry->currentOperChannel))
|
if ((BAND_5G == lim_get_rf_band(pe_session->currentOperChannel))
|
||||||
|| (psessionEntry->pePersona == QDF_P2P_CLIENT_MODE) ||
|
|| (pe_session->pePersona == QDF_P2P_CLIENT_MODE) ||
|
||||||
(psessionEntry->pePersona == QDF_P2P_GO_MODE)
|
(pe_session->pePersona == QDF_P2P_GO_MODE)
|
||||||
) {
|
) {
|
||||||
txFlag |= HAL_USE_BD_RATE2_FOR_MANAGEMENT_FRAME;
|
txFlag |= HAL_USE_BD_RATE2_FOR_MANAGEMENT_FRAME;
|
||||||
}
|
}
|
||||||
|
|
||||||
MTRACE(qdf_trace(QDF_MODULE_ID_PE, TRACE_CODE_TX_MGMT,
|
MTRACE(qdf_trace(QDF_MODULE_ID_PE, TRACE_CODE_TX_MGMT,
|
||||||
psessionEntry->peSessionId, pMacHdr->fc.subType));
|
pe_session->peSessionId, pMacHdr->fc.subType));
|
||||||
qdf_status = wma_tx_frame(mac,
|
qdf_status = wma_tx_frame(mac,
|
||||||
pPacket,
|
pPacket,
|
||||||
(uint16_t) nBytes,
|
(uint16_t) nBytes,
|
||||||
@@ -4493,7 +4493,7 @@ lim_send_radio_measure_report_action_frame(tpAniSirGlobal mac,
|
|||||||
7, lim_tx_complete, pFrame, txFlag,
|
7, lim_tx_complete, pFrame, txFlag,
|
||||||
smeSessionId, 0, RATEID_DEFAULT);
|
smeSessionId, 0, RATEID_DEFAULT);
|
||||||
MTRACE(qdf_trace(QDF_MODULE_ID_PE, TRACE_CODE_TX_COMPLETE,
|
MTRACE(qdf_trace(QDF_MODULE_ID_PE, TRACE_CODE_TX_COMPLETE,
|
||||||
psessionEntry->peSessionId, qdf_status));
|
pe_session->peSessionId, qdf_status));
|
||||||
if (QDF_STATUS_SUCCESS != qdf_status) {
|
if (QDF_STATUS_SUCCESS != qdf_status) {
|
||||||
pe_err("wma_tx_frame FAILED! Status [%d]", qdf_status);
|
pe_err("wma_tx_frame FAILED! Status [%d]", qdf_status);
|
||||||
statusCode = QDF_STATUS_E_FAILURE;
|
statusCode = QDF_STATUS_E_FAILURE;
|
||||||
@@ -4524,7 +4524,7 @@ returnAfterError:
|
|||||||
*
|
*
|
||||||
* \param peer The Mac address of the station to which this action frame is addressed
|
* \param peer The Mac address of the station to which this action frame is addressed
|
||||||
*
|
*
|
||||||
* \param psessionEntry The PE session entry
|
* \param pe_session The PE session entry
|
||||||
*
|
*
|
||||||
* \return QDF_STATUS_SUCCESS if setup completes successfully
|
* \return QDF_STATUS_SUCCESS if setup completes successfully
|
||||||
* QDF_STATUS_E_FAILURE is some problem is encountered
|
* QDF_STATUS_E_FAILURE is some problem is encountered
|
||||||
@@ -4532,7 +4532,7 @@ returnAfterError:
|
|||||||
|
|
||||||
QDF_STATUS lim_send_sa_query_request_frame(tpAniSirGlobal mac, uint8_t *transId,
|
QDF_STATUS lim_send_sa_query_request_frame(tpAniSirGlobal mac, uint8_t *transId,
|
||||||
tSirMacAddr peer,
|
tSirMacAddr peer,
|
||||||
struct pe_session *psessionEntry)
|
struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
|
|
||||||
tDot11fSaQueryReq frm; /* SA query request action frame */
|
tDot11fSaQueryReq frm; /* SA query request action frame */
|
||||||
@@ -4578,16 +4578,16 @@ QDF_STATUS lim_send_sa_query_request_frame(tpAniSirGlobal mac, uint8_t *transId,
|
|||||||
|
|
||||||
/* Copy necessary info to BD */
|
/* Copy necessary info to BD */
|
||||||
lim_populate_mac_header(mac, pFrame, SIR_MAC_MGMT_FRAME,
|
lim_populate_mac_header(mac, pFrame, SIR_MAC_MGMT_FRAME,
|
||||||
SIR_MAC_MGMT_ACTION, peer, psessionEntry->selfMacAddr);
|
SIR_MAC_MGMT_ACTION, peer, pe_session->selfMacAddr);
|
||||||
|
|
||||||
/* Update A3 with the BSSID */
|
/* Update A3 with the BSSID */
|
||||||
pMacHdr = (tpSirMacMgmtHdr) pFrame;
|
pMacHdr = (tpSirMacMgmtHdr) pFrame;
|
||||||
|
|
||||||
sir_copy_mac_addr(pMacHdr->bssId, psessionEntry->bssId);
|
sir_copy_mac_addr(pMacHdr->bssId, pe_session->bssId);
|
||||||
|
|
||||||
/* Since this is a SA Query Request, set the "protect" (aka WEP) bit */
|
/* Since this is a SA Query Request, set the "protect" (aka WEP) bit */
|
||||||
/* in the FC */
|
/* in the FC */
|
||||||
lim_set_protected_bit(mac, psessionEntry, peer, pMacHdr);
|
lim_set_protected_bit(mac, pe_session, peer, pMacHdr);
|
||||||
|
|
||||||
/* Pack 11w SA Query Request frame */
|
/* Pack 11w SA Query Request frame */
|
||||||
nStatus = dot11f_pack_sa_query_req(mac,
|
nStatus = dot11f_pack_sa_query_req(mac,
|
||||||
@@ -4609,17 +4609,17 @@ QDF_STATUS lim_send_sa_query_request_frame(tpAniSirGlobal mac, uint8_t *transId,
|
|||||||
pe_debug("Sending an SA Query Request to");
|
pe_debug("Sending an SA Query Request to");
|
||||||
lim_print_mac_addr(mac, peer, LOGD);
|
lim_print_mac_addr(mac, peer, LOGD);
|
||||||
pe_debug("Sending an SA Query Request from ");
|
pe_debug("Sending an SA Query Request from ");
|
||||||
lim_print_mac_addr(mac, psessionEntry->selfMacAddr, LOGD);
|
lim_print_mac_addr(mac, pe_session->selfMacAddr, LOGD);
|
||||||
|
|
||||||
if ((BAND_5G == lim_get_rf_band(psessionEntry->currentOperChannel))
|
if ((BAND_5G == lim_get_rf_band(pe_session->currentOperChannel))
|
||||||
#ifdef WLAN_FEATURE_P2P
|
#ifdef WLAN_FEATURE_P2P
|
||||||
|| (psessionEntry->pePersona == QDF_P2P_CLIENT_MODE) ||
|
|| (pe_session->pePersona == QDF_P2P_CLIENT_MODE) ||
|
||||||
(psessionEntry->pePersona == QDF_P2P_GO_MODE)
|
(pe_session->pePersona == QDF_P2P_GO_MODE)
|
||||||
#endif
|
#endif
|
||||||
) {
|
) {
|
||||||
txFlag |= HAL_USE_BD_RATE2_FOR_MANAGEMENT_FRAME;
|
txFlag |= HAL_USE_BD_RATE2_FOR_MANAGEMENT_FRAME;
|
||||||
}
|
}
|
||||||
smeSessionId = psessionEntry->smeSessionId;
|
smeSessionId = pe_session->smeSessionId;
|
||||||
|
|
||||||
qdf_status = wma_tx_frame(mac,
|
qdf_status = wma_tx_frame(mac,
|
||||||
pPacket,
|
pPacket,
|
||||||
@@ -4654,7 +4654,7 @@ returnAfterError:
|
|||||||
*
|
*
|
||||||
* \param peer The Mac address of the AP to which this action frame is addressed
|
* \param peer The Mac address of the AP to which this action frame is addressed
|
||||||
*
|
*
|
||||||
* \param psessionEntry The PE session entry
|
* \param pe_session The PE session entry
|
||||||
*
|
*
|
||||||
* \return QDF_STATUS_SUCCESS if setup completes successfully
|
* \return QDF_STATUS_SUCCESS if setup completes successfully
|
||||||
* QDF_STATUS_E_FAILURE is some problem is encountered
|
* QDF_STATUS_E_FAILURE is some problem is encountered
|
||||||
@@ -4662,7 +4662,7 @@ returnAfterError:
|
|||||||
|
|
||||||
QDF_STATUS lim_send_sa_query_response_frame(tpAniSirGlobal mac,
|
QDF_STATUS lim_send_sa_query_response_frame(tpAniSirGlobal mac,
|
||||||
uint8_t *transId, tSirMacAddr peer,
|
uint8_t *transId, tSirMacAddr peer,
|
||||||
struct pe_session *psessionEntry)
|
struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
|
|
||||||
tDot11fSaQueryRsp frm; /* SA query response action frame */
|
tDot11fSaQueryRsp frm; /* SA query response action frame */
|
||||||
@@ -4675,7 +4675,7 @@ QDF_STATUS lim_send_sa_query_response_frame(tpAniSirGlobal mac,
|
|||||||
uint8_t txFlag = 0;
|
uint8_t txFlag = 0;
|
||||||
uint8_t smeSessionId = 0;
|
uint8_t smeSessionId = 0;
|
||||||
|
|
||||||
smeSessionId = psessionEntry->smeSessionId;
|
smeSessionId = pe_session->smeSessionId;
|
||||||
|
|
||||||
qdf_mem_set((uint8_t *) &frm, sizeof(frm), 0);
|
qdf_mem_set((uint8_t *) &frm, sizeof(frm), 0);
|
||||||
frm.Category.category = SIR_MAC_ACTION_SA_QUERY;
|
frm.Category.category = SIR_MAC_ACTION_SA_QUERY;
|
||||||
@@ -4711,16 +4711,16 @@ QDF_STATUS lim_send_sa_query_response_frame(tpAniSirGlobal mac,
|
|||||||
|
|
||||||
/* Copy necessary info to BD */
|
/* Copy necessary info to BD */
|
||||||
lim_populate_mac_header(mac, pFrame, SIR_MAC_MGMT_FRAME,
|
lim_populate_mac_header(mac, pFrame, SIR_MAC_MGMT_FRAME,
|
||||||
SIR_MAC_MGMT_ACTION, peer, psessionEntry->selfMacAddr);
|
SIR_MAC_MGMT_ACTION, peer, pe_session->selfMacAddr);
|
||||||
|
|
||||||
/* Update A3 with the BSSID */
|
/* Update A3 with the BSSID */
|
||||||
pMacHdr = (tpSirMacMgmtHdr) pFrame;
|
pMacHdr = (tpSirMacMgmtHdr) pFrame;
|
||||||
|
|
||||||
sir_copy_mac_addr(pMacHdr->bssId, psessionEntry->bssId);
|
sir_copy_mac_addr(pMacHdr->bssId, pe_session->bssId);
|
||||||
|
|
||||||
/* Since this is a SA Query Response, set the "protect" (aka WEP) bit */
|
/* Since this is a SA Query Response, set the "protect" (aka WEP) bit */
|
||||||
/* in the FC */
|
/* in the FC */
|
||||||
lim_set_protected_bit(mac, psessionEntry, peer, pMacHdr);
|
lim_set_protected_bit(mac, pe_session, peer, pMacHdr);
|
||||||
|
|
||||||
/* Pack 11w SA query response frame */
|
/* Pack 11w SA query response frame */
|
||||||
nStatus = dot11f_pack_sa_query_rsp(mac,
|
nStatus = dot11f_pack_sa_query_rsp(mac,
|
||||||
@@ -4742,17 +4742,17 @@ QDF_STATUS lim_send_sa_query_response_frame(tpAniSirGlobal mac,
|
|||||||
pe_debug("Sending a SA Query Response to");
|
pe_debug("Sending a SA Query Response to");
|
||||||
lim_print_mac_addr(mac, peer, LOGD);
|
lim_print_mac_addr(mac, peer, LOGD);
|
||||||
|
|
||||||
if ((BAND_5G == lim_get_rf_band(psessionEntry->currentOperChannel))
|
if ((BAND_5G == lim_get_rf_band(pe_session->currentOperChannel))
|
||||||
#ifdef WLAN_FEATURE_P2P
|
#ifdef WLAN_FEATURE_P2P
|
||||||
|| (psessionEntry->pePersona == QDF_P2P_CLIENT_MODE) ||
|
|| (pe_session->pePersona == QDF_P2P_CLIENT_MODE) ||
|
||||||
(psessionEntry->pePersona == QDF_P2P_GO_MODE)
|
(pe_session->pePersona == QDF_P2P_GO_MODE)
|
||||||
#endif
|
#endif
|
||||||
) {
|
) {
|
||||||
txFlag |= HAL_USE_BD_RATE2_FOR_MANAGEMENT_FRAME;
|
txFlag |= HAL_USE_BD_RATE2_FOR_MANAGEMENT_FRAME;
|
||||||
}
|
}
|
||||||
|
|
||||||
MTRACE(qdf_trace(QDF_MODULE_ID_PE, TRACE_CODE_TX_MGMT,
|
MTRACE(qdf_trace(QDF_MODULE_ID_PE, TRACE_CODE_TX_MGMT,
|
||||||
psessionEntry->peSessionId, pMacHdr->fc.subType));
|
pe_session->peSessionId, pMacHdr->fc.subType));
|
||||||
qdf_status = wma_tx_frame(mac,
|
qdf_status = wma_tx_frame(mac,
|
||||||
pPacket,
|
pPacket,
|
||||||
(uint16_t) nBytes,
|
(uint16_t) nBytes,
|
||||||
@@ -4761,7 +4761,7 @@ QDF_STATUS lim_send_sa_query_response_frame(tpAniSirGlobal mac,
|
|||||||
7, lim_tx_complete, pFrame, txFlag,
|
7, lim_tx_complete, pFrame, txFlag,
|
||||||
smeSessionId, 0, RATEID_DEFAULT);
|
smeSessionId, 0, RATEID_DEFAULT);
|
||||||
MTRACE(qdf_trace(QDF_MODULE_ID_PE, TRACE_CODE_TX_COMPLETE,
|
MTRACE(qdf_trace(QDF_MODULE_ID_PE, TRACE_CODE_TX_COMPLETE,
|
||||||
psessionEntry->peSessionId, qdf_status));
|
pe_session->peSessionId, qdf_status));
|
||||||
if (QDF_STATUS_SUCCESS != qdf_status) {
|
if (QDF_STATUS_SUCCESS != qdf_status) {
|
||||||
pe_err("wma_tx_frame FAILED! Status [%d]", qdf_status);
|
pe_err("wma_tx_frame FAILED! Status [%d]", qdf_status);
|
||||||
nSirStatus = QDF_STATUS_E_FAILURE;
|
nSirStatus = QDF_STATUS_E_FAILURE;
|
||||||
|
|||||||
@@ -100,7 +100,7 @@ QDF_STATUS lim_send_cf_params(tpAniSirGlobal mac, uint8_t bssIdx,
|
|||||||
*/
|
*/
|
||||||
QDF_STATUS lim_send_beacon_params(tpAniSirGlobal mac,
|
QDF_STATUS lim_send_beacon_params(tpAniSirGlobal mac,
|
||||||
tpUpdateBeaconParams pUpdatedBcnParams,
|
tpUpdateBeaconParams pUpdatedBcnParams,
|
||||||
struct pe_session *psessionEntry)
|
struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
tpUpdateBeaconParams pBcnParams = NULL;
|
tpUpdateBeaconParams pBcnParams = NULL;
|
||||||
QDF_STATUS retCode = QDF_STATUS_SUCCESS;
|
QDF_STATUS retCode = QDF_STATUS_SUCCESS;
|
||||||
@@ -117,23 +117,23 @@ QDF_STATUS lim_send_beacon_params(tpAniSirGlobal mac,
|
|||||||
msgQ.bodyval = 0;
|
msgQ.bodyval = 0;
|
||||||
pe_debug("Sending WMA_UPDATE_BEACON_IND, paramChangeBitmap in hex: %x",
|
pe_debug("Sending WMA_UPDATE_BEACON_IND, paramChangeBitmap in hex: %x",
|
||||||
pUpdatedBcnParams->paramChangeBitmap);
|
pUpdatedBcnParams->paramChangeBitmap);
|
||||||
if (NULL == psessionEntry) {
|
if (NULL == pe_session) {
|
||||||
qdf_mem_free(pBcnParams);
|
qdf_mem_free(pBcnParams);
|
||||||
MTRACE(mac_trace_msg_tx(mac, NO_SESSION, msgQ.type));
|
MTRACE(mac_trace_msg_tx(mac, NO_SESSION, msgQ.type));
|
||||||
return QDF_STATUS_E_FAILURE;
|
return QDF_STATUS_E_FAILURE;
|
||||||
} else {
|
} else {
|
||||||
MTRACE(mac_trace_msg_tx(mac,
|
MTRACE(mac_trace_msg_tx(mac,
|
||||||
psessionEntry->peSessionId,
|
pe_session->peSessionId,
|
||||||
msgQ.type));
|
msgQ.type));
|
||||||
}
|
}
|
||||||
pBcnParams->smeSessionId = psessionEntry->smeSessionId;
|
pBcnParams->smeSessionId = pe_session->smeSessionId;
|
||||||
retCode = wma_post_ctrl_msg(mac, &msgQ);
|
retCode = wma_post_ctrl_msg(mac, &msgQ);
|
||||||
if (QDF_STATUS_SUCCESS != retCode) {
|
if (QDF_STATUS_SUCCESS != retCode) {
|
||||||
qdf_mem_free(pBcnParams);
|
qdf_mem_free(pBcnParams);
|
||||||
pe_err("Posting WMA_UPDATE_BEACON_IND, reason=%X",
|
pe_err("Posting WMA_UPDATE_BEACON_IND, reason=%X",
|
||||||
retCode);
|
retCode);
|
||||||
}
|
}
|
||||||
lim_send_beacon_ind(mac, psessionEntry, REASON_DEFAULT);
|
lim_send_beacon_ind(mac, pe_session, REASON_DEFAULT);
|
||||||
return retCode;
|
return retCode;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -171,10 +171,10 @@ QDF_STATUS lim_send_switch_chnl_params(tpAniSirGlobal mac,
|
|||||||
{
|
{
|
||||||
tpSwitchChannelParams pChnlParams = NULL;
|
tpSwitchChannelParams pChnlParams = NULL;
|
||||||
struct scheduler_msg msgQ = {0};
|
struct scheduler_msg msgQ = {0};
|
||||||
struct pe_session *pSessionEntry;
|
struct pe_session *pe_session;
|
||||||
|
|
||||||
pSessionEntry = pe_find_session_by_session_id(mac, peSessionId);
|
pe_session = pe_find_session_by_session_id(mac, peSessionId);
|
||||||
if (pSessionEntry == NULL) {
|
if (pe_session == NULL) {
|
||||||
pe_err("Unable to get Session for session Id %d",
|
pe_err("Unable to get Session for session Id %d",
|
||||||
peSessionId);
|
peSessionId);
|
||||||
return QDF_STATUS_E_FAILURE;
|
return QDF_STATUS_E_FAILURE;
|
||||||
@@ -186,17 +186,17 @@ QDF_STATUS lim_send_switch_chnl_params(tpAniSirGlobal mac,
|
|||||||
pChnlParams->ch_center_freq_seg0 = ch_center_freq_seg0;
|
pChnlParams->ch_center_freq_seg0 = ch_center_freq_seg0;
|
||||||
pChnlParams->ch_center_freq_seg1 = ch_center_freq_seg1;
|
pChnlParams->ch_center_freq_seg1 = ch_center_freq_seg1;
|
||||||
pChnlParams->ch_width = ch_width;
|
pChnlParams->ch_width = ch_width;
|
||||||
qdf_mem_copy(pChnlParams->selfStaMacAddr, pSessionEntry->selfMacAddr,
|
qdf_mem_copy(pChnlParams->selfStaMacAddr, pe_session->selfMacAddr,
|
||||||
sizeof(tSirMacAddr));
|
sizeof(tSirMacAddr));
|
||||||
pChnlParams->maxTxPower = maxTxPower;
|
pChnlParams->maxTxPower = maxTxPower;
|
||||||
qdf_mem_copy(pChnlParams->bssId, pSessionEntry->bssId,
|
qdf_mem_copy(pChnlParams->bssId, pe_session->bssId,
|
||||||
sizeof(tSirMacAddr));
|
sizeof(tSirMacAddr));
|
||||||
pChnlParams->peSessionId = peSessionId;
|
pChnlParams->peSessionId = peSessionId;
|
||||||
pChnlParams->vhtCapable = pSessionEntry->vhtCapability;
|
pChnlParams->vhtCapable = pe_session->vhtCapability;
|
||||||
if (lim_is_session_he_capable(pSessionEntry))
|
if (lim_is_session_he_capable(pe_session))
|
||||||
lim_update_chan_he_capable(mac, pChnlParams);
|
lim_update_chan_he_capable(mac, pChnlParams);
|
||||||
pChnlParams->dot11_mode = pSessionEntry->dot11mode;
|
pChnlParams->dot11_mode = pe_session->dot11mode;
|
||||||
pChnlParams->nss = pSessionEntry->nss;
|
pChnlParams->nss = pe_session->nss;
|
||||||
pe_debug("dot11mode: %d, vht_capable: %d nss value: %d",
|
pe_debug("dot11mode: %d, vht_capable: %d nss value: %d",
|
||||||
pChnlParams->dot11_mode, pChnlParams->vhtCapable,
|
pChnlParams->dot11_mode, pChnlParams->vhtCapable,
|
||||||
pChnlParams->nss);
|
pChnlParams->nss);
|
||||||
@@ -249,7 +249,7 @@ QDF_STATUS lim_send_switch_chnl_params(tpAniSirGlobal mac,
|
|||||||
pe_err("Posting CH_SWITCH_REQ to WMA failed");
|
pe_err("Posting CH_SWITCH_REQ to WMA failed");
|
||||||
return QDF_STATUS_E_FAILURE;
|
return QDF_STATUS_E_FAILURE;
|
||||||
}
|
}
|
||||||
pSessionEntry->ch_switch_in_progress = true;
|
pe_session->ch_switch_in_progress = true;
|
||||||
|
|
||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
@@ -469,7 +469,7 @@ QDF_STATUS lim_set_link_state(tpAniSirGlobal mac, tSirLinkState state,
|
|||||||
extern QDF_STATUS lim_set_link_state_ft(tpAniSirGlobal mac, tSirLinkState
|
extern QDF_STATUS lim_set_link_state_ft(tpAniSirGlobal mac, tSirLinkState
|
||||||
state, tSirMacAddr bssId,
|
state, tSirMacAddr bssId,
|
||||||
tSirMacAddr selfMacAddr, int ft,
|
tSirMacAddr selfMacAddr, int ft,
|
||||||
struct pe_session *psessionEntry)
|
struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
struct scheduler_msg msgQ = {0};
|
struct scheduler_msg msgQ = {0};
|
||||||
QDF_STATUS retCode;
|
QDF_STATUS retCode;
|
||||||
@@ -483,17 +483,17 @@ extern QDF_STATUS lim_set_link_state_ft(tpAniSirGlobal mac, tSirLinkState
|
|||||||
sir_copy_mac_addr(pLinkStateParams->bssid, bssId);
|
sir_copy_mac_addr(pLinkStateParams->bssid, bssId);
|
||||||
sir_copy_mac_addr(pLinkStateParams->selfMacAddr, selfMacAddr);
|
sir_copy_mac_addr(pLinkStateParams->selfMacAddr, selfMacAddr);
|
||||||
pLinkStateParams->ft = 1;
|
pLinkStateParams->ft = 1;
|
||||||
pLinkStateParams->session = psessionEntry;
|
pLinkStateParams->session = pe_session;
|
||||||
|
|
||||||
msgQ.type = WMA_SET_LINK_STATE;
|
msgQ.type = WMA_SET_LINK_STATE;
|
||||||
msgQ.reserved = 0;
|
msgQ.reserved = 0;
|
||||||
msgQ.bodyptr = pLinkStateParams;
|
msgQ.bodyptr = pLinkStateParams;
|
||||||
msgQ.bodyval = 0;
|
msgQ.bodyval = 0;
|
||||||
if (NULL == psessionEntry) {
|
if (NULL == pe_session) {
|
||||||
MTRACE(mac_trace_msg_tx(mac, NO_SESSION, msgQ.type));
|
MTRACE(mac_trace_msg_tx(mac, NO_SESSION, msgQ.type));
|
||||||
} else {
|
} else {
|
||||||
MTRACE(mac_trace_msg_tx
|
MTRACE(mac_trace_msg_tx
|
||||||
(mac, psessionEntry->peSessionId, msgQ.type));
|
(mac, pe_session->peSessionId, msgQ.type));
|
||||||
}
|
}
|
||||||
|
|
||||||
retCode = (uint32_t) wma_post_ctrl_msg(mac, &msgQ);
|
retCode = (uint32_t) wma_post_ctrl_msg(mac, &msgQ);
|
||||||
@@ -507,7 +507,7 @@ extern QDF_STATUS lim_set_link_state_ft(tpAniSirGlobal mac, tSirLinkState
|
|||||||
|
|
||||||
QDF_STATUS lim_send_mode_update(tpAniSirGlobal mac,
|
QDF_STATUS lim_send_mode_update(tpAniSirGlobal mac,
|
||||||
tUpdateVHTOpMode *pTempParam,
|
tUpdateVHTOpMode *pTempParam,
|
||||||
struct pe_session *psessionEntry)
|
struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
tUpdateVHTOpMode *pVhtOpMode = NULL;
|
tUpdateVHTOpMode *pVhtOpMode = NULL;
|
||||||
QDF_STATUS retCode = QDF_STATUS_SUCCESS;
|
QDF_STATUS retCode = QDF_STATUS_SUCCESS;
|
||||||
@@ -524,11 +524,11 @@ QDF_STATUS lim_send_mode_update(tpAniSirGlobal mac,
|
|||||||
msgQ.bodyval = 0;
|
msgQ.bodyval = 0;
|
||||||
pe_debug("Sending WMA_UPDATE_OP_MODE, op_mode %d, sta_id %d",
|
pe_debug("Sending WMA_UPDATE_OP_MODE, op_mode %d, sta_id %d",
|
||||||
pVhtOpMode->opMode, pVhtOpMode->staId);
|
pVhtOpMode->opMode, pVhtOpMode->staId);
|
||||||
if (NULL == psessionEntry)
|
if (NULL == pe_session)
|
||||||
MTRACE(mac_trace_msg_tx(mac, NO_SESSION, msgQ.type));
|
MTRACE(mac_trace_msg_tx(mac, NO_SESSION, msgQ.type));
|
||||||
else
|
else
|
||||||
MTRACE(mac_trace_msg_tx(mac,
|
MTRACE(mac_trace_msg_tx(mac,
|
||||||
psessionEntry->peSessionId,
|
pe_session->peSessionId,
|
||||||
msgQ.type));
|
msgQ.type));
|
||||||
retCode = wma_post_ctrl_msg(mac, &msgQ);
|
retCode = wma_post_ctrl_msg(mac, &msgQ);
|
||||||
if (QDF_STATUS_SUCCESS != retCode) {
|
if (QDF_STATUS_SUCCESS != retCode) {
|
||||||
@@ -542,7 +542,7 @@ QDF_STATUS lim_send_mode_update(tpAniSirGlobal mac,
|
|||||||
|
|
||||||
QDF_STATUS lim_send_rx_nss_update(tpAniSirGlobal mac,
|
QDF_STATUS lim_send_rx_nss_update(tpAniSirGlobal mac,
|
||||||
tUpdateRxNss *pTempParam,
|
tUpdateRxNss *pTempParam,
|
||||||
struct pe_session *psessionEntry)
|
struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
tUpdateRxNss *pRxNss = NULL;
|
tUpdateRxNss *pRxNss = NULL;
|
||||||
QDF_STATUS retCode = QDF_STATUS_SUCCESS;
|
QDF_STATUS retCode = QDF_STATUS_SUCCESS;
|
||||||
@@ -557,11 +557,11 @@ QDF_STATUS lim_send_rx_nss_update(tpAniSirGlobal mac,
|
|||||||
msgQ.bodyptr = pRxNss;
|
msgQ.bodyptr = pRxNss;
|
||||||
msgQ.bodyval = 0;
|
msgQ.bodyval = 0;
|
||||||
pe_debug("Sending WMA_UPDATE_RX_NSS");
|
pe_debug("Sending WMA_UPDATE_RX_NSS");
|
||||||
if (NULL == psessionEntry)
|
if (NULL == pe_session)
|
||||||
MTRACE(mac_trace_msg_tx(mac, NO_SESSION, msgQ.type));
|
MTRACE(mac_trace_msg_tx(mac, NO_SESSION, msgQ.type));
|
||||||
else
|
else
|
||||||
MTRACE(mac_trace_msg_tx(mac,
|
MTRACE(mac_trace_msg_tx(mac,
|
||||||
psessionEntry->peSessionId,
|
pe_session->peSessionId,
|
||||||
msgQ.type));
|
msgQ.type));
|
||||||
retCode = wma_post_ctrl_msg(mac, &msgQ);
|
retCode = wma_post_ctrl_msg(mac, &msgQ);
|
||||||
if (QDF_STATUS_SUCCESS != retCode) {
|
if (QDF_STATUS_SUCCESS != retCode) {
|
||||||
@@ -575,7 +575,7 @@ QDF_STATUS lim_send_rx_nss_update(tpAniSirGlobal mac,
|
|||||||
|
|
||||||
QDF_STATUS lim_set_membership(tpAniSirGlobal mac,
|
QDF_STATUS lim_set_membership(tpAniSirGlobal mac,
|
||||||
tUpdateMembership *pTempParam,
|
tUpdateMembership *pTempParam,
|
||||||
struct pe_session *psessionEntry)
|
struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
tUpdateMembership *pMembership = NULL;
|
tUpdateMembership *pMembership = NULL;
|
||||||
QDF_STATUS retCode = QDF_STATUS_SUCCESS;
|
QDF_STATUS retCode = QDF_STATUS_SUCCESS;
|
||||||
@@ -592,11 +592,11 @@ QDF_STATUS lim_set_membership(tpAniSirGlobal mac,
|
|||||||
msgQ.bodyptr = pMembership;
|
msgQ.bodyptr = pMembership;
|
||||||
msgQ.bodyval = 0;
|
msgQ.bodyval = 0;
|
||||||
pe_debug("Sending WMA_UPDATE_MEMBERSHIP");
|
pe_debug("Sending WMA_UPDATE_MEMBERSHIP");
|
||||||
if (NULL == psessionEntry)
|
if (NULL == pe_session)
|
||||||
MTRACE(mac_trace_msg_tx(mac, NO_SESSION, msgQ.type));
|
MTRACE(mac_trace_msg_tx(mac, NO_SESSION, msgQ.type));
|
||||||
else
|
else
|
||||||
MTRACE(mac_trace_msg_tx(mac,
|
MTRACE(mac_trace_msg_tx(mac,
|
||||||
psessionEntry->peSessionId,
|
pe_session->peSessionId,
|
||||||
msgQ.type));
|
msgQ.type));
|
||||||
retCode = wma_post_ctrl_msg(mac, &msgQ);
|
retCode = wma_post_ctrl_msg(mac, &msgQ);
|
||||||
if (QDF_STATUS_SUCCESS != retCode) {
|
if (QDF_STATUS_SUCCESS != retCode) {
|
||||||
@@ -610,7 +610,7 @@ QDF_STATUS lim_set_membership(tpAniSirGlobal mac,
|
|||||||
|
|
||||||
QDF_STATUS lim_set_user_pos(tpAniSirGlobal mac,
|
QDF_STATUS lim_set_user_pos(tpAniSirGlobal mac,
|
||||||
tUpdateUserPos *pTempParam,
|
tUpdateUserPos *pTempParam,
|
||||||
struct pe_session *psessionEntry)
|
struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
tUpdateUserPos *pUserPos = NULL;
|
tUpdateUserPos *pUserPos = NULL;
|
||||||
QDF_STATUS retCode = QDF_STATUS_SUCCESS;
|
QDF_STATUS retCode = QDF_STATUS_SUCCESS;
|
||||||
@@ -626,11 +626,11 @@ QDF_STATUS lim_set_user_pos(tpAniSirGlobal mac,
|
|||||||
msgQ.bodyptr = pUserPos;
|
msgQ.bodyptr = pUserPos;
|
||||||
msgQ.bodyval = 0;
|
msgQ.bodyval = 0;
|
||||||
pe_debug("Sending WMA_UPDATE_USERPOS");
|
pe_debug("Sending WMA_UPDATE_USERPOS");
|
||||||
if (NULL == psessionEntry)
|
if (NULL == pe_session)
|
||||||
MTRACE(mac_trace_msg_tx(mac, NO_SESSION, msgQ.type));
|
MTRACE(mac_trace_msg_tx(mac, NO_SESSION, msgQ.type));
|
||||||
else
|
else
|
||||||
MTRACE(mac_trace_msg_tx(mac,
|
MTRACE(mac_trace_msg_tx(mac,
|
||||||
psessionEntry->peSessionId,
|
pe_session->peSessionId,
|
||||||
msgQ.type));
|
msgQ.type));
|
||||||
retCode = wma_post_ctrl_msg(mac, &msgQ);
|
retCode = wma_post_ctrl_msg(mac, &msgQ);
|
||||||
if (QDF_STATUS_SUCCESS != retCode) {
|
if (QDF_STATUS_SUCCESS != retCode) {
|
||||||
@@ -647,7 +647,7 @@ QDF_STATUS lim_set_user_pos(tpAniSirGlobal mac,
|
|||||||
* lim_send_exclude_unencrypt_ind() - sends WMA_EXCLUDE_UNENCRYPTED_IND to HAL
|
* lim_send_exclude_unencrypt_ind() - sends WMA_EXCLUDE_UNENCRYPTED_IND to HAL
|
||||||
* @mac: mac global context
|
* @mac: mac global context
|
||||||
* @excludeUnenc: true: ignore, false: indicate
|
* @excludeUnenc: true: ignore, false: indicate
|
||||||
* @psessionEntry: session context
|
* @pe_session: session context
|
||||||
*
|
*
|
||||||
* LIM sends a message to HAL to indicate whether to ignore or indicate the
|
* LIM sends a message to HAL to indicate whether to ignore or indicate the
|
||||||
* unprotected packet error.
|
* unprotected packet error.
|
||||||
@@ -656,7 +656,7 @@ QDF_STATUS lim_set_user_pos(tpAniSirGlobal mac,
|
|||||||
*/
|
*/
|
||||||
QDF_STATUS lim_send_exclude_unencrypt_ind(tpAniSirGlobal mac,
|
QDF_STATUS lim_send_exclude_unencrypt_ind(tpAniSirGlobal mac,
|
||||||
bool excludeUnenc,
|
bool excludeUnenc,
|
||||||
struct pe_session *psessionEntry)
|
struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
QDF_STATUS retCode = QDF_STATUS_SUCCESS;
|
QDF_STATUS retCode = QDF_STATUS_SUCCESS;
|
||||||
struct scheduler_msg msgQ = {0};
|
struct scheduler_msg msgQ = {0};
|
||||||
@@ -668,7 +668,7 @@ QDF_STATUS lim_send_exclude_unencrypt_ind(tpAniSirGlobal mac,
|
|||||||
return QDF_STATUS_E_NOMEM;
|
return QDF_STATUS_E_NOMEM;
|
||||||
|
|
||||||
pExcludeUnencryptParam->excludeUnencrypt = excludeUnenc;
|
pExcludeUnencryptParam->excludeUnencrypt = excludeUnenc;
|
||||||
qdf_mem_copy(pExcludeUnencryptParam->bssid.bytes, psessionEntry->bssId,
|
qdf_mem_copy(pExcludeUnencryptParam->bssid.bytes, pe_session->bssId,
|
||||||
QDF_MAC_ADDR_SIZE);
|
QDF_MAC_ADDR_SIZE);
|
||||||
|
|
||||||
msgQ.type = WMA_EXCLUDE_UNENCRYPTED_IND;
|
msgQ.type = WMA_EXCLUDE_UNENCRYPTED_IND;
|
||||||
@@ -676,7 +676,7 @@ QDF_STATUS lim_send_exclude_unencrypt_ind(tpAniSirGlobal mac,
|
|||||||
msgQ.bodyptr = pExcludeUnencryptParam;
|
msgQ.bodyptr = pExcludeUnencryptParam;
|
||||||
msgQ.bodyval = 0;
|
msgQ.bodyval = 0;
|
||||||
pe_debug("Sending WMA_EXCLUDE_UNENCRYPTED_IND");
|
pe_debug("Sending WMA_EXCLUDE_UNENCRYPTED_IND");
|
||||||
MTRACE(mac_trace_msg_tx(mac, psessionEntry->peSessionId, msgQ.type));
|
MTRACE(mac_trace_msg_tx(mac, pe_session->peSessionId, msgQ.type));
|
||||||
retCode = wma_post_ctrl_msg(mac, &msgQ);
|
retCode = wma_post_ctrl_msg(mac, &msgQ);
|
||||||
if (QDF_STATUS_SUCCESS != retCode) {
|
if (QDF_STATUS_SUCCESS != retCode) {
|
||||||
qdf_mem_free(pExcludeUnencryptParam);
|
qdf_mem_free(pExcludeUnencryptParam);
|
||||||
|
|||||||
@@ -38,22 +38,22 @@ QDF_STATUS lim_send_cf_params(tpAniSirGlobal mac, uint8_t bssIdx,
|
|||||||
uint8_t cfpCount, uint8_t cfpPeriod);
|
uint8_t cfpCount, uint8_t cfpPeriod);
|
||||||
QDF_STATUS lim_send_beacon_params(tpAniSirGlobal mac,
|
QDF_STATUS lim_send_beacon_params(tpAniSirGlobal mac,
|
||||||
tpUpdateBeaconParams pUpdatedBcnParams,
|
tpUpdateBeaconParams pUpdatedBcnParams,
|
||||||
struct pe_session *psessionEntry);
|
struct pe_session *pe_session);
|
||||||
/* QDF_STATUS lim_send_beacon_params(tpAniSirGlobal mac, tpUpdateBeaconParams pUpdatedBcnParams); */
|
/* QDF_STATUS lim_send_beacon_params(tpAniSirGlobal mac, tpUpdateBeaconParams pUpdatedBcnParams); */
|
||||||
QDF_STATUS lim_send_mode_update(tpAniSirGlobal mac,
|
QDF_STATUS lim_send_mode_update(tpAniSirGlobal mac,
|
||||||
tUpdateVHTOpMode *tempParam,
|
tUpdateVHTOpMode *tempParam,
|
||||||
struct pe_session *psessionEntry);
|
struct pe_session *pe_session);
|
||||||
QDF_STATUS lim_send_rx_nss_update(tpAniSirGlobal mac,
|
QDF_STATUS lim_send_rx_nss_update(tpAniSirGlobal mac,
|
||||||
tUpdateRxNss *tempParam,
|
tUpdateRxNss *tempParam,
|
||||||
struct pe_session *psessionEntry);
|
struct pe_session *pe_session);
|
||||||
|
|
||||||
QDF_STATUS lim_set_membership(tpAniSirGlobal mac,
|
QDF_STATUS lim_set_membership(tpAniSirGlobal mac,
|
||||||
tUpdateMembership *pTempParam,
|
tUpdateMembership *pTempParam,
|
||||||
struct pe_session *psessionEntry);
|
struct pe_session *pe_session);
|
||||||
|
|
||||||
QDF_STATUS lim_set_user_pos(tpAniSirGlobal mac,
|
QDF_STATUS lim_set_user_pos(tpAniSirGlobal mac,
|
||||||
tUpdateUserPos *pTempParam,
|
tUpdateUserPos *pTempParam,
|
||||||
struct pe_session *psessionEntry);
|
struct pe_session *pe_session);
|
||||||
QDF_STATUS lim_send_switch_chnl_params(tpAniSirGlobal mac,
|
QDF_STATUS lim_send_switch_chnl_params(tpAniSirGlobal mac,
|
||||||
uint8_t chnlNumber,
|
uint8_t chnlNumber,
|
||||||
uint8_t ch_center_freq_seg0,
|
uint8_t ch_center_freq_seg0,
|
||||||
@@ -75,10 +75,10 @@ QDF_STATUS lim_set_link_state(tpAniSirGlobal mac, tSirLinkState state,
|
|||||||
extern QDF_STATUS lim_set_link_state_ft(tpAniSirGlobal mac, tSirLinkState
|
extern QDF_STATUS lim_set_link_state_ft(tpAniSirGlobal mac, tSirLinkState
|
||||||
state, tSirMacAddr bssId,
|
state, tSirMacAddr bssId,
|
||||||
tSirMacAddr selfMacAddr, int ft,
|
tSirMacAddr selfMacAddr, int ft,
|
||||||
struct pe_session *psessionEntry);
|
struct pe_session *pe_session);
|
||||||
void lim_set_active_edca_params(tpAniSirGlobal mac,
|
void lim_set_active_edca_params(tpAniSirGlobal mac,
|
||||||
tSirMacEdcaParamRecord *plocalEdcaParams,
|
tSirMacEdcaParamRecord *plocalEdcaParams,
|
||||||
struct pe_session *psessionEntry);
|
struct pe_session *pe_session);
|
||||||
#define CAPABILITY_FILTER_MASK 0x73CF
|
#define CAPABILITY_FILTER_MASK 0x73CF
|
||||||
#define ERP_FILTER_MASK 0xF8
|
#define ERP_FILTER_MASK 0xF8
|
||||||
#define EDCA_FILTER_MASK 0xF0
|
#define EDCA_FILTER_MASK 0xF0
|
||||||
@@ -92,7 +92,7 @@ void lim_set_active_edca_params(tpAniSirGlobal mac,
|
|||||||
#ifdef WLAN_FEATURE_11W
|
#ifdef WLAN_FEATURE_11W
|
||||||
QDF_STATUS lim_send_exclude_unencrypt_ind(tpAniSirGlobal mac,
|
QDF_STATUS lim_send_exclude_unencrypt_ind(tpAniSirGlobal mac,
|
||||||
bool excludeUnenc,
|
bool excludeUnenc,
|
||||||
struct pe_session *psessionEntry);
|
struct pe_session *pe_session);
|
||||||
#endif
|
#endif
|
||||||
QDF_STATUS lim_send_ht40_obss_scanind(tpAniSirGlobal mac_ctx,
|
QDF_STATUS lim_send_ht40_obss_scanind(tpAniSirGlobal mac_ctx,
|
||||||
struct pe_session *session);
|
struct pe_session *session);
|
||||||
|
|||||||
@@ -603,7 +603,7 @@ lim_send_sme_join_reassoc_rsp(tpAniSirGlobal mac_ctx, uint16_t msg_type,
|
|||||||
void
|
void
|
||||||
lim_send_sme_start_bss_rsp(tpAniSirGlobal mac,
|
lim_send_sme_start_bss_rsp(tpAniSirGlobal mac,
|
||||||
uint16_t msgType, tSirResultCodes resultCode,
|
uint16_t msgType, tSirResultCodes resultCode,
|
||||||
struct pe_session *psessionEntry, uint8_t smesessionId,
|
struct pe_session *pe_session, uint8_t smesessionId,
|
||||||
uint16_t smetransactionId)
|
uint16_t smetransactionId)
|
||||||
{
|
{
|
||||||
|
|
||||||
@@ -618,15 +618,15 @@ lim_send_sme_start_bss_rsp(tpAniSirGlobal mac,
|
|||||||
|
|
||||||
size = sizeof(tSirSmeStartBssRsp);
|
size = sizeof(tSirSmeStartBssRsp);
|
||||||
|
|
||||||
if (psessionEntry == NULL) {
|
if (pe_session == NULL) {
|
||||||
pSirSmeRsp = qdf_mem_malloc(size);
|
pSirSmeRsp = qdf_mem_malloc(size);
|
||||||
if (!pSirSmeRsp)
|
if (!pSirSmeRsp)
|
||||||
return;
|
return;
|
||||||
} else {
|
} else {
|
||||||
/* subtract size of beaconLength + Mac Hdr + Fixed Fields before SSID */
|
/* subtract size of beaconLength + Mac Hdr + Fixed Fields before SSID */
|
||||||
ieOffset = sizeof(tAniBeaconStruct) + SIR_MAC_B_PR_SSID_OFFSET;
|
ieOffset = sizeof(tAniBeaconStruct) + SIR_MAC_B_PR_SSID_OFFSET;
|
||||||
ieLen = psessionEntry->schBeaconOffsetBegin
|
ieLen = pe_session->schBeaconOffsetBegin
|
||||||
+ psessionEntry->schBeaconOffsetEnd - ieOffset;
|
+ pe_session->schBeaconOffsetEnd - ieOffset;
|
||||||
/* calculate the memory size to allocate */
|
/* calculate the memory size to allocate */
|
||||||
size += ieLen;
|
size += ieLen;
|
||||||
|
|
||||||
@@ -637,38 +637,38 @@ lim_send_sme_start_bss_rsp(tpAniSirGlobal mac,
|
|||||||
if (resultCode == eSIR_SME_SUCCESS) {
|
if (resultCode == eSIR_SME_SUCCESS) {
|
||||||
|
|
||||||
sir_copy_mac_addr(pSirSmeRsp->bssDescription.bssId,
|
sir_copy_mac_addr(pSirSmeRsp->bssDescription.bssId,
|
||||||
psessionEntry->bssId);
|
pe_session->bssId);
|
||||||
|
|
||||||
/* Read beacon interval from session */
|
/* Read beacon interval from session */
|
||||||
pSirSmeRsp->bssDescription.beaconInterval =
|
pSirSmeRsp->bssDescription.beaconInterval =
|
||||||
(uint16_t) psessionEntry->beaconParams.
|
(uint16_t) pe_session->beaconParams.
|
||||||
beaconInterval;
|
beaconInterval;
|
||||||
pSirSmeRsp->bssType = psessionEntry->bssType;
|
pSirSmeRsp->bssType = pe_session->bssType;
|
||||||
|
|
||||||
if (cfg_get_capability_info
|
if (cfg_get_capability_info
|
||||||
(mac, &pSirSmeRsp->bssDescription.capabilityInfo,
|
(mac, &pSirSmeRsp->bssDescription.capabilityInfo,
|
||||||
psessionEntry)
|
pe_session)
|
||||||
!= QDF_STATUS_SUCCESS)
|
!= QDF_STATUS_SUCCESS)
|
||||||
pe_err("could not retrieve Capabilities value");
|
pe_err("could not retrieve Capabilities value");
|
||||||
|
|
||||||
lim_get_phy_mode(mac,
|
lim_get_phy_mode(mac,
|
||||||
(uint32_t *) &pSirSmeRsp->bssDescription.
|
(uint32_t *) &pSirSmeRsp->bssDescription.
|
||||||
nwType, psessionEntry);
|
nwType, pe_session);
|
||||||
|
|
||||||
pSirSmeRsp->bssDescription.channelId =
|
pSirSmeRsp->bssDescription.channelId =
|
||||||
psessionEntry->currentOperChannel;
|
pe_session->currentOperChannel;
|
||||||
|
|
||||||
if (!LIM_IS_NDI_ROLE(psessionEntry)) {
|
if (!LIM_IS_NDI_ROLE(pe_session)) {
|
||||||
curLen = psessionEntry->schBeaconOffsetBegin - ieOffset;
|
curLen = pe_session->schBeaconOffsetBegin - ieOffset;
|
||||||
qdf_mem_copy((uint8_t *) &pSirSmeRsp->bssDescription.
|
qdf_mem_copy((uint8_t *) &pSirSmeRsp->bssDescription.
|
||||||
ieFields,
|
ieFields,
|
||||||
psessionEntry->pSchBeaconFrameBegin +
|
pe_session->pSchBeaconFrameBegin +
|
||||||
ieOffset, (uint32_t) curLen);
|
ieOffset, (uint32_t) curLen);
|
||||||
|
|
||||||
qdf_mem_copy(((uint8_t *) &pSirSmeRsp->bssDescription.
|
qdf_mem_copy(((uint8_t *) &pSirSmeRsp->bssDescription.
|
||||||
ieFields) + curLen,
|
ieFields) + curLen,
|
||||||
psessionEntry->pSchBeaconFrameEnd,
|
pe_session->pSchBeaconFrameEnd,
|
||||||
(uint32_t) psessionEntry->
|
(uint32_t) pe_session->
|
||||||
schBeaconOffsetEnd);
|
schBeaconOffsetEnd);
|
||||||
|
|
||||||
pSirSmeRsp->bssDescription.length = (uint16_t)
|
pSirSmeRsp->bssDescription.length = (uint16_t)
|
||||||
@@ -679,25 +679,25 @@ lim_send_sme_start_bss_rsp(tpAniSirGlobal mac,
|
|||||||
size += ieLen - sizeof(uint32_t);
|
size += ieLen - sizeof(uint32_t);
|
||||||
}
|
}
|
||||||
#ifdef FEATURE_WLAN_MCC_TO_SCC_SWITCH
|
#ifdef FEATURE_WLAN_MCC_TO_SCC_SWITCH
|
||||||
if (psessionEntry->cc_switch_mode
|
if (pe_session->cc_switch_mode
|
||||||
!= QDF_MCC_TO_SCC_SWITCH_DISABLE) {
|
!= QDF_MCC_TO_SCC_SWITCH_DISABLE) {
|
||||||
pSirSmeRsp->HTProfile.
|
pSirSmeRsp->HTProfile.
|
||||||
htSupportedChannelWidthSet =
|
htSupportedChannelWidthSet =
|
||||||
psessionEntry->htSupportedChannelWidthSet;
|
pe_session->htSupportedChannelWidthSet;
|
||||||
pSirSmeRsp->HTProfile.htRecommendedTxWidthSet =
|
pSirSmeRsp->HTProfile.htRecommendedTxWidthSet =
|
||||||
psessionEntry->htRecommendedTxWidthSet;
|
pe_session->htRecommendedTxWidthSet;
|
||||||
pSirSmeRsp->HTProfile.htSecondaryChannelOffset =
|
pSirSmeRsp->HTProfile.htSecondaryChannelOffset =
|
||||||
psessionEntry->htSecondaryChannelOffset;
|
pe_session->htSecondaryChannelOffset;
|
||||||
pSirSmeRsp->HTProfile.dot11mode =
|
pSirSmeRsp->HTProfile.dot11mode =
|
||||||
psessionEntry->dot11mode;
|
pe_session->dot11mode;
|
||||||
pSirSmeRsp->HTProfile.htCapability =
|
pSirSmeRsp->HTProfile.htCapability =
|
||||||
psessionEntry->htCapability;
|
pe_session->htCapability;
|
||||||
pSirSmeRsp->HTProfile.vhtCapability =
|
pSirSmeRsp->HTProfile.vhtCapability =
|
||||||
psessionEntry->vhtCapability;
|
pe_session->vhtCapability;
|
||||||
pSirSmeRsp->HTProfile.apCenterChan =
|
pSirSmeRsp->HTProfile.apCenterChan =
|
||||||
psessionEntry->ch_center_freq_seg0;
|
pe_session->ch_center_freq_seg0;
|
||||||
pSirSmeRsp->HTProfile.apChanWidth =
|
pSirSmeRsp->HTProfile.apChanWidth =
|
||||||
psessionEntry->ch_width;
|
pe_session->ch_width;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
@@ -709,22 +709,22 @@ lim_send_sme_start_bss_rsp(tpAniSirGlobal mac,
|
|||||||
pSirSmeRsp->sessionId = smesessionId;
|
pSirSmeRsp->sessionId = smesessionId;
|
||||||
pSirSmeRsp->transactionId = smetransactionId;
|
pSirSmeRsp->transactionId = smetransactionId;
|
||||||
pSirSmeRsp->statusCode = resultCode;
|
pSirSmeRsp->statusCode = resultCode;
|
||||||
if (psessionEntry != NULL)
|
if (pe_session != NULL)
|
||||||
pSirSmeRsp->staId = psessionEntry->staId; /* else it will be always zero smeRsp StaID = 0 */
|
pSirSmeRsp->staId = pe_session->staId; /* else it will be always zero smeRsp StaID = 0 */
|
||||||
|
|
||||||
mmhMsg.type = msgType;
|
mmhMsg.type = msgType;
|
||||||
mmhMsg.bodyptr = pSirSmeRsp;
|
mmhMsg.bodyptr = pSirSmeRsp;
|
||||||
mmhMsg.bodyval = 0;
|
mmhMsg.bodyval = 0;
|
||||||
if (psessionEntry == NULL) {
|
if (pe_session == NULL) {
|
||||||
MTRACE(mac_trace(mac, TRACE_CODE_TX_SME_MSG,
|
MTRACE(mac_trace(mac, TRACE_CODE_TX_SME_MSG,
|
||||||
NO_SESSION, mmhMsg.type));
|
NO_SESSION, mmhMsg.type));
|
||||||
} else {
|
} else {
|
||||||
MTRACE(mac_trace(mac, TRACE_CODE_TX_SME_MSG,
|
MTRACE(mac_trace(mac, TRACE_CODE_TX_SME_MSG,
|
||||||
psessionEntry->peSessionId, mmhMsg.type));
|
pe_session->peSessionId, mmhMsg.type));
|
||||||
}
|
}
|
||||||
#ifdef FEATURE_WLAN_DIAG_SUPPORT_LIM /* FEATURE_WLAN_DIAG_SUPPORT */
|
#ifdef FEATURE_WLAN_DIAG_SUPPORT_LIM /* FEATURE_WLAN_DIAG_SUPPORT */
|
||||||
lim_diag_event_report(mac, WLAN_PE_DIAG_START_BSS_RSP_EVENT,
|
lim_diag_event_report(mac, WLAN_PE_DIAG_START_BSS_RSP_EVENT,
|
||||||
psessionEntry, (uint16_t) resultCode, 0);
|
pe_session, (uint16_t) resultCode, 0);
|
||||||
#endif /* FEATURE_WLAN_DIAG_SUPPORT */
|
#endif /* FEATURE_WLAN_DIAG_SUPPORT */
|
||||||
|
|
||||||
lim_sys_process_mmh_msg_api(mac, &mmhMsg, ePROT);
|
lim_sys_process_mmh_msg_api(mac, &mmhMsg, ePROT);
|
||||||
@@ -780,7 +780,7 @@ lim_send_sme_disassoc_ntf(tpAniSirGlobal mac,
|
|||||||
uint16_t disassocTrigger,
|
uint16_t disassocTrigger,
|
||||||
uint16_t aid,
|
uint16_t aid,
|
||||||
uint8_t smesessionId,
|
uint8_t smesessionId,
|
||||||
uint16_t smetransactionId, struct pe_session *psessionEntry)
|
uint16_t smetransactionId, struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
|
|
||||||
uint8_t *pBuf;
|
uint8_t *pBuf;
|
||||||
@@ -877,7 +877,7 @@ lim_send_sme_disassoc_ntf(tpAniSirGlobal mac,
|
|||||||
#ifdef FEATURE_WLAN_DIAG_SUPPORT_LIM /* FEATURE_WLAN_DIAG_SUPPORT */
|
#ifdef FEATURE_WLAN_DIAG_SUPPORT_LIM /* FEATURE_WLAN_DIAG_SUPPORT */
|
||||||
|
|
||||||
lim_diag_event_report(mac, WLAN_PE_DIAG_DISASSOC_RSP_EVENT,
|
lim_diag_event_report(mac, WLAN_PE_DIAG_DISASSOC_RSP_EVENT,
|
||||||
psessionEntry, (uint16_t) reasonCode, 0);
|
pe_session, (uint16_t) reasonCode, 0);
|
||||||
#endif
|
#endif
|
||||||
pMsg = (uint32_t *) pSirSmeDisassocRsp;
|
pMsg = (uint32_t *) pSirSmeDisassocRsp;
|
||||||
break;
|
break;
|
||||||
@@ -918,14 +918,14 @@ lim_send_sme_disassoc_ntf(tpAniSirGlobal mac,
|
|||||||
lim_copy_u32(pBuf, reasonCode);
|
lim_copy_u32(pBuf, reasonCode);
|
||||||
pBuf += sizeof(tSirResultCodes);
|
pBuf += sizeof(tSirResultCodes);
|
||||||
|
|
||||||
qdf_mem_copy(pBuf, psessionEntry->bssId, sizeof(tSirMacAddr));
|
qdf_mem_copy(pBuf, pe_session->bssId, sizeof(tSirMacAddr));
|
||||||
pBuf += sizeof(tSirMacAddr);
|
pBuf += sizeof(tSirMacAddr);
|
||||||
|
|
||||||
qdf_mem_copy(pBuf, peerMacAddr, sizeof(tSirMacAddr));
|
qdf_mem_copy(pBuf, peerMacAddr, sizeof(tSirMacAddr));
|
||||||
|
|
||||||
#ifdef FEATURE_WLAN_DIAG_SUPPORT_LIM /* FEATURE_WLAN_DIAG_SUPPORT */
|
#ifdef FEATURE_WLAN_DIAG_SUPPORT_LIM /* FEATURE_WLAN_DIAG_SUPPORT */
|
||||||
lim_diag_event_report(mac, WLAN_PE_DIAG_DISASSOC_IND_EVENT,
|
lim_diag_event_report(mac, WLAN_PE_DIAG_DISASSOC_IND_EVENT,
|
||||||
psessionEntry, (uint16_t) reasonCode, 0);
|
pe_session, (uint16_t) reasonCode, 0);
|
||||||
#endif
|
#endif
|
||||||
pMsg = (uint32_t *) pSirSmeDisassocInd;
|
pMsg = (uint32_t *) pSirSmeDisassocInd;
|
||||||
|
|
||||||
@@ -934,8 +934,8 @@ lim_send_sme_disassoc_ntf(tpAniSirGlobal mac,
|
|||||||
|
|
||||||
error:
|
error:
|
||||||
/* Delete the PE session Created */
|
/* Delete the PE session Created */
|
||||||
if ((psessionEntry != NULL) && LIM_IS_STA_ROLE(psessionEntry))
|
if ((pe_session != NULL) && LIM_IS_STA_ROLE(pe_session))
|
||||||
pe_delete_session(mac, psessionEntry);
|
pe_delete_session(mac, pe_session);
|
||||||
|
|
||||||
if (false == failure)
|
if (false == failure)
|
||||||
lim_send_sme_disassoc_deauth_ntf(mac, QDF_STATUS_SUCCESS,
|
lim_send_sme_disassoc_deauth_ntf(mac, QDF_STATUS_SUCCESS,
|
||||||
@@ -956,7 +956,7 @@ error:
|
|||||||
----------------------------------------------------------------- */
|
----------------------------------------------------------------- */
|
||||||
void
|
void
|
||||||
lim_send_sme_disassoc_ind(tpAniSirGlobal mac, tpDphHashNode pStaDs,
|
lim_send_sme_disassoc_ind(tpAniSirGlobal mac, tpDphHashNode pStaDs,
|
||||||
struct pe_session *psessionEntry)
|
struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
struct scheduler_msg mmhMsg = {0};
|
struct scheduler_msg mmhMsg = {0};
|
||||||
tSirSmeDisassocInd *pSirSmeDisassocInd;
|
tSirSmeDisassocInd *pSirSmeDisassocInd;
|
||||||
@@ -968,12 +968,12 @@ lim_send_sme_disassoc_ind(tpAniSirGlobal mac, tpDphHashNode pStaDs,
|
|||||||
pSirSmeDisassocInd->messageType = eWNI_SME_DISASSOC_IND;
|
pSirSmeDisassocInd->messageType = eWNI_SME_DISASSOC_IND;
|
||||||
pSirSmeDisassocInd->length = sizeof(tSirSmeDisassocInd);
|
pSirSmeDisassocInd->length = sizeof(tSirSmeDisassocInd);
|
||||||
|
|
||||||
pSirSmeDisassocInd->sessionId = psessionEntry->smeSessionId;
|
pSirSmeDisassocInd->sessionId = pe_session->smeSessionId;
|
||||||
pSirSmeDisassocInd->transactionId = psessionEntry->transactionId;
|
pSirSmeDisassocInd->transactionId = pe_session->transactionId;
|
||||||
pSirSmeDisassocInd->statusCode = eSIR_SME_DEAUTH_STATUS;
|
pSirSmeDisassocInd->statusCode = eSIR_SME_DEAUTH_STATUS;
|
||||||
pSirSmeDisassocInd->reasonCode = pStaDs->mlmStaContext.disassocReason;
|
pSirSmeDisassocInd->reasonCode = pStaDs->mlmStaContext.disassocReason;
|
||||||
|
|
||||||
qdf_mem_copy(pSirSmeDisassocInd->bssid.bytes, psessionEntry->bssId,
|
qdf_mem_copy(pSirSmeDisassocInd->bssid.bytes, pe_session->bssId,
|
||||||
QDF_MAC_ADDR_SIZE);
|
QDF_MAC_ADDR_SIZE);
|
||||||
|
|
||||||
qdf_mem_copy(pSirSmeDisassocInd->peer_macaddr.bytes, pStaDs->staAddr,
|
qdf_mem_copy(pSirSmeDisassocInd->peer_macaddr.bytes, pStaDs->staAddr,
|
||||||
@@ -986,9 +986,9 @@ lim_send_sme_disassoc_ind(tpAniSirGlobal mac, tpDphHashNode pStaDs,
|
|||||||
mmhMsg.bodyval = 0;
|
mmhMsg.bodyval = 0;
|
||||||
|
|
||||||
MTRACE(mac_trace(mac, TRACE_CODE_TX_SME_MSG,
|
MTRACE(mac_trace(mac, TRACE_CODE_TX_SME_MSG,
|
||||||
psessionEntry->peSessionId, mmhMsg.type));
|
pe_session->peSessionId, mmhMsg.type));
|
||||||
#ifdef FEATURE_WLAN_DIAG_SUPPORT_LIM /* FEATURE_WLAN_DIAG_SUPPORT */
|
#ifdef FEATURE_WLAN_DIAG_SUPPORT_LIM /* FEATURE_WLAN_DIAG_SUPPORT */
|
||||||
lim_diag_event_report(mac, WLAN_PE_DIAG_DISASSOC_IND_EVENT, psessionEntry,
|
lim_diag_event_report(mac, WLAN_PE_DIAG_DISASSOC_IND_EVENT, pe_session,
|
||||||
0, (uint16_t) pStaDs->mlmStaContext.disassocReason);
|
0, (uint16_t) pStaDs->mlmStaContext.disassocReason);
|
||||||
#endif /* FEATURE_WLAN_DIAG_SUPPORT */
|
#endif /* FEATURE_WLAN_DIAG_SUPPORT */
|
||||||
|
|
||||||
@@ -1010,7 +1010,7 @@ lim_send_sme_disassoc_ind(tpAniSirGlobal mac, tpDphHashNode pStaDs,
|
|||||||
----------------------------------------------------------------- */
|
----------------------------------------------------------------- */
|
||||||
void
|
void
|
||||||
lim_send_sme_deauth_ind(tpAniSirGlobal mac, tpDphHashNode pStaDs,
|
lim_send_sme_deauth_ind(tpAniSirGlobal mac, tpDphHashNode pStaDs,
|
||||||
struct pe_session *psessionEntry)
|
struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
struct scheduler_msg mmhMsg = {0};
|
struct scheduler_msg mmhMsg = {0};
|
||||||
tSirSmeDeauthInd *pSirSmeDeauthInd;
|
tSirSmeDeauthInd *pSirSmeDeauthInd;
|
||||||
@@ -1022,9 +1022,9 @@ lim_send_sme_deauth_ind(tpAniSirGlobal mac, tpDphHashNode pStaDs,
|
|||||||
pSirSmeDeauthInd->messageType = eWNI_SME_DEAUTH_IND;
|
pSirSmeDeauthInd->messageType = eWNI_SME_DEAUTH_IND;
|
||||||
pSirSmeDeauthInd->length = sizeof(tSirSmeDeauthInd);
|
pSirSmeDeauthInd->length = sizeof(tSirSmeDeauthInd);
|
||||||
|
|
||||||
pSirSmeDeauthInd->sessionId = psessionEntry->smeSessionId;
|
pSirSmeDeauthInd->sessionId = pe_session->smeSessionId;
|
||||||
pSirSmeDeauthInd->transactionId = psessionEntry->transactionId;
|
pSirSmeDeauthInd->transactionId = pe_session->transactionId;
|
||||||
if (eSIR_INFRA_AP_MODE == psessionEntry->bssType) {
|
if (eSIR_INFRA_AP_MODE == pe_session->bssType) {
|
||||||
pSirSmeDeauthInd->statusCode =
|
pSirSmeDeauthInd->statusCode =
|
||||||
(tSirResultCodes) pStaDs->mlmStaContext.cleanupTrigger;
|
(tSirResultCodes) pStaDs->mlmStaContext.cleanupTrigger;
|
||||||
} else {
|
} else {
|
||||||
@@ -1033,7 +1033,7 @@ lim_send_sme_deauth_ind(tpAniSirGlobal mac, tpDphHashNode pStaDs,
|
|||||||
(tSirResultCodes) pStaDs->mlmStaContext.disassocReason;
|
(tSirResultCodes) pStaDs->mlmStaContext.disassocReason;
|
||||||
}
|
}
|
||||||
/* BSSID */
|
/* BSSID */
|
||||||
qdf_mem_copy(pSirSmeDeauthInd->bssid.bytes, psessionEntry->bssId,
|
qdf_mem_copy(pSirSmeDeauthInd->bssid.bytes, pe_session->bssId,
|
||||||
QDF_MAC_ADDR_SIZE);
|
QDF_MAC_ADDR_SIZE);
|
||||||
/* peerMacAddr */
|
/* peerMacAddr */
|
||||||
qdf_mem_copy(pSirSmeDeauthInd->peer_macaddr.bytes, pStaDs->staAddr,
|
qdf_mem_copy(pSirSmeDeauthInd->peer_macaddr.bytes, pStaDs->staAddr,
|
||||||
@@ -1049,9 +1049,9 @@ lim_send_sme_deauth_ind(tpAniSirGlobal mac, tpDphHashNode pStaDs,
|
|||||||
mmhMsg.bodyptr = pSirSmeDeauthInd;
|
mmhMsg.bodyptr = pSirSmeDeauthInd;
|
||||||
mmhMsg.bodyval = 0;
|
mmhMsg.bodyval = 0;
|
||||||
|
|
||||||
MTRACE(mac_trace_msg_tx(mac, psessionEntry->peSessionId, mmhMsg.type));
|
MTRACE(mac_trace_msg_tx(mac, pe_session->peSessionId, mmhMsg.type));
|
||||||
#ifdef FEATURE_WLAN_DIAG_SUPPORT_LIM /* FEATURE_WLAN_DIAG_SUPPORT */
|
#ifdef FEATURE_WLAN_DIAG_SUPPORT_LIM /* FEATURE_WLAN_DIAG_SUPPORT */
|
||||||
lim_diag_event_report(mac, WLAN_PE_DIAG_DEAUTH_IND_EVENT, psessionEntry,
|
lim_diag_event_report(mac, WLAN_PE_DIAG_DEAUTH_IND_EVENT, pe_session,
|
||||||
0, pStaDs->mlmStaContext.cleanupTrigger);
|
0, pStaDs->mlmStaContext.cleanupTrigger);
|
||||||
#endif /* FEATURE_WLAN_DIAG_SUPPORT */
|
#endif /* FEATURE_WLAN_DIAG_SUPPORT */
|
||||||
|
|
||||||
@@ -1075,19 +1075,19 @@ lim_send_sme_deauth_ind(tpAniSirGlobal mac, tpDphHashNode pStaDs,
|
|||||||
*
|
*
|
||||||
* @param mac - Pointer to global MAC structure
|
* @param mac - Pointer to global MAC structure
|
||||||
* @param pStaDs - Pointer to internal STA Datastructure
|
* @param pStaDs - Pointer to internal STA Datastructure
|
||||||
* @param psessionEntry - Pointer to the session entry
|
* @param pe_session - Pointer to the session entry
|
||||||
* @param reasonCode - Reason for TDLS sta deletion
|
* @param reasonCode - Reason for TDLS sta deletion
|
||||||
* @return None
|
* @return None
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
lim_send_sme_tdls_del_sta_ind(tpAniSirGlobal mac, tpDphHashNode pStaDs,
|
lim_send_sme_tdls_del_sta_ind(tpAniSirGlobal mac, tpDphHashNode pStaDs,
|
||||||
struct pe_session *psessionEntry, uint16_t reasonCode)
|
struct pe_session *pe_session, uint16_t reasonCode)
|
||||||
{
|
{
|
||||||
struct tdls_event_info info;
|
struct tdls_event_info info;
|
||||||
|
|
||||||
pe_debug("Delete TDLS Peer "MAC_ADDRESS_STR "with reason code: %d",
|
pe_debug("Delete TDLS Peer "MAC_ADDRESS_STR "with reason code: %d",
|
||||||
MAC_ADDR_ARRAY(pStaDs->staAddr), reasonCode);
|
MAC_ADDR_ARRAY(pStaDs->staAddr), reasonCode);
|
||||||
info.vdev_id = psessionEntry->smeSessionId;
|
info.vdev_id = pe_session->smeSessionId;
|
||||||
qdf_mem_copy(info.peermac.bytes, pStaDs->staAddr, QDF_MAC_ADDR_SIZE);
|
qdf_mem_copy(info.peermac.bytes, pStaDs->staAddr, QDF_MAC_ADDR_SIZE);
|
||||||
info.message_type = TDLS_PEER_DISCONNECTED;
|
info.message_type = TDLS_PEER_DISCONNECTED;
|
||||||
info.peer_reason = TDLS_DISCONNECTED_PEER_DELETE;
|
info.peer_reason = TDLS_DISCONNECTED_PEER_DELETE;
|
||||||
@@ -1112,7 +1112,7 @@ lim_send_sme_tdls_del_sta_ind(tpAniSirGlobal mac, tpDphHashNode pStaDs,
|
|||||||
* NA
|
* NA
|
||||||
*
|
*
|
||||||
* @param mac - Pointer to global MAC structure
|
* @param mac - Pointer to global MAC structure
|
||||||
* @param psessionEntry - Pointer to the session entry
|
* @param pe_session - Pointer to the session entry
|
||||||
* @param txCompleteStatus - TX Complete Status of Mgmt Frames
|
* @param txCompleteStatus - TX Complete Status of Mgmt Frames
|
||||||
* @return None
|
* @return None
|
||||||
*/
|
*/
|
||||||
@@ -1225,12 +1225,12 @@ lim_send_sme_deauth_ntf(tpAniSirGlobal mac, tSirMacAddr peerMacAddr,
|
|||||||
uint8_t *pBuf;
|
uint8_t *pBuf;
|
||||||
tSirSmeDeauthRsp *pSirSmeDeauthRsp;
|
tSirSmeDeauthRsp *pSirSmeDeauthRsp;
|
||||||
tSirSmeDeauthInd *pSirSmeDeauthInd;
|
tSirSmeDeauthInd *pSirSmeDeauthInd;
|
||||||
struct pe_session *psessionEntry;
|
struct pe_session *pe_session;
|
||||||
uint8_t sessionId;
|
uint8_t sessionId;
|
||||||
uint32_t *pMsg = NULL;
|
uint32_t *pMsg = NULL;
|
||||||
QDF_STATUS status;
|
QDF_STATUS status;
|
||||||
|
|
||||||
psessionEntry = pe_find_session_by_bssid(mac, peerMacAddr, &sessionId);
|
pe_session = pe_find_session_by_bssid(mac, peerMacAddr, &sessionId);
|
||||||
switch (deauthTrigger) {
|
switch (deauthTrigger) {
|
||||||
case eLIM_HOST_DEAUTH:
|
case eLIM_HOST_DEAUTH:
|
||||||
/**
|
/**
|
||||||
@@ -1253,7 +1253,7 @@ lim_send_sme_deauth_ntf(tpAniSirGlobal mac, tSirMacAddr peerMacAddr,
|
|||||||
|
|
||||||
#ifdef FEATURE_WLAN_DIAG_SUPPORT_LIM /* FEATURE_WLAN_DIAG_SUPPORT */
|
#ifdef FEATURE_WLAN_DIAG_SUPPORT_LIM /* FEATURE_WLAN_DIAG_SUPPORT */
|
||||||
lim_diag_event_report(mac, WLAN_PE_DIAG_DEAUTH_RSP_EVENT,
|
lim_diag_event_report(mac, WLAN_PE_DIAG_DEAUTH_RSP_EVENT,
|
||||||
psessionEntry, 0, (uint16_t) reasonCode);
|
pe_session, 0, (uint16_t) reasonCode);
|
||||||
#endif
|
#endif
|
||||||
pMsg = (uint32_t *) pSirSmeDeauthRsp;
|
pMsg = (uint32_t *) pSirSmeDeauthRsp;
|
||||||
|
|
||||||
@@ -1297,7 +1297,7 @@ lim_send_sme_deauth_ntf(tpAniSirGlobal mac, tSirMacAddr peerMacAddr,
|
|||||||
pBuf += sizeof(tSirResultCodes);
|
pBuf += sizeof(tSirResultCodes);
|
||||||
|
|
||||||
/* bssId */
|
/* bssId */
|
||||||
qdf_mem_copy(pBuf, psessionEntry->bssId, sizeof(tSirMacAddr));
|
qdf_mem_copy(pBuf, pe_session->bssId, sizeof(tSirMacAddr));
|
||||||
pBuf += sizeof(tSirMacAddr);
|
pBuf += sizeof(tSirMacAddr);
|
||||||
|
|
||||||
/* peerMacAddr */
|
/* peerMacAddr */
|
||||||
@@ -1306,7 +1306,7 @@ lim_send_sme_deauth_ntf(tpAniSirGlobal mac, tSirMacAddr peerMacAddr,
|
|||||||
|
|
||||||
#ifdef FEATURE_WLAN_DIAG_SUPPORT_LIM /* FEATURE_WLAN_DIAG_SUPPORT */
|
#ifdef FEATURE_WLAN_DIAG_SUPPORT_LIM /* FEATURE_WLAN_DIAG_SUPPORT */
|
||||||
lim_diag_event_report(mac, WLAN_PE_DIAG_DEAUTH_IND_EVENT,
|
lim_diag_event_report(mac, WLAN_PE_DIAG_DEAUTH_IND_EVENT,
|
||||||
psessionEntry, 0, (uint16_t) reasonCode);
|
pe_session, 0, (uint16_t) reasonCode);
|
||||||
#endif /* FEATURE_WLAN_DIAG_SUPPORT */
|
#endif /* FEATURE_WLAN_DIAG_SUPPORT */
|
||||||
pMsg = (uint32_t *) pSirSmeDeauthInd;
|
pMsg = (uint32_t *) pSirSmeDeauthInd;
|
||||||
|
|
||||||
@@ -1314,8 +1314,8 @@ lim_send_sme_deauth_ntf(tpAniSirGlobal mac, tSirMacAddr peerMacAddr,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*Delete the PE session created */
|
/*Delete the PE session created */
|
||||||
if (psessionEntry != NULL) {
|
if (pe_session != NULL) {
|
||||||
pe_delete_session(mac, psessionEntry);
|
pe_delete_session(mac, pe_session);
|
||||||
}
|
}
|
||||||
|
|
||||||
lim_send_sme_disassoc_deauth_ntf(mac, QDF_STATUS_SUCCESS,
|
lim_send_sme_disassoc_deauth_ntf(mac, QDF_STATUS_SUCCESS,
|
||||||
@@ -1424,7 +1424,7 @@ void
|
|||||||
lim_send_sme_set_context_rsp(tpAniSirGlobal mac,
|
lim_send_sme_set_context_rsp(tpAniSirGlobal mac,
|
||||||
struct qdf_mac_addr peer_macaddr, uint16_t aid,
|
struct qdf_mac_addr peer_macaddr, uint16_t aid,
|
||||||
tSirResultCodes resultCode,
|
tSirResultCodes resultCode,
|
||||||
struct pe_session *psessionEntry, uint8_t smesessionId,
|
struct pe_session *pe_session, uint8_t smesessionId,
|
||||||
uint16_t smetransactionId)
|
uint16_t smetransactionId)
|
||||||
{
|
{
|
||||||
struct scheduler_msg mmhMsg = {0};
|
struct scheduler_msg mmhMsg = {0};
|
||||||
@@ -1447,17 +1447,17 @@ lim_send_sme_set_context_rsp(tpAniSirGlobal mac,
|
|||||||
mmhMsg.type = eWNI_SME_SETCONTEXT_RSP;
|
mmhMsg.type = eWNI_SME_SETCONTEXT_RSP;
|
||||||
mmhMsg.bodyptr = pSirSmeSetContextRsp;
|
mmhMsg.bodyptr = pSirSmeSetContextRsp;
|
||||||
mmhMsg.bodyval = 0;
|
mmhMsg.bodyval = 0;
|
||||||
if (NULL == psessionEntry) {
|
if (NULL == pe_session) {
|
||||||
MTRACE(mac_trace(mac, TRACE_CODE_TX_SME_MSG,
|
MTRACE(mac_trace(mac, TRACE_CODE_TX_SME_MSG,
|
||||||
NO_SESSION, mmhMsg.type));
|
NO_SESSION, mmhMsg.type));
|
||||||
} else {
|
} else {
|
||||||
MTRACE(mac_trace(mac, TRACE_CODE_TX_SME_MSG,
|
MTRACE(mac_trace(mac, TRACE_CODE_TX_SME_MSG,
|
||||||
psessionEntry->peSessionId, mmhMsg.type));
|
pe_session->peSessionId, mmhMsg.type));
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef FEATURE_WLAN_DIAG_SUPPORT_LIM /* FEATURE_WLAN_DIAG_SUPPORT */
|
#ifdef FEATURE_WLAN_DIAG_SUPPORT_LIM /* FEATURE_WLAN_DIAG_SUPPORT */
|
||||||
lim_diag_event_report(mac, WLAN_PE_DIAG_SETCONTEXT_RSP_EVENT,
|
lim_diag_event_report(mac, WLAN_PE_DIAG_SETCONTEXT_RSP_EVENT,
|
||||||
psessionEntry, (uint16_t) resultCode, 0);
|
pe_session, (uint16_t) resultCode, 0);
|
||||||
#endif /* FEATURE_WLAN_DIAG_SUPPORT */
|
#endif /* FEATURE_WLAN_DIAG_SUPPORT */
|
||||||
|
|
||||||
mac->lim.sme_msg_callback(mac, &mmhMsg);
|
mac->lim.sme_msg_callback(mac, &mmhMsg);
|
||||||
@@ -1475,7 +1475,7 @@ lim_send_sme_set_context_rsp(tpAniSirGlobal mac,
|
|||||||
----------------------------------------------------------------- */
|
----------------------------------------------------------------- */
|
||||||
void
|
void
|
||||||
lim_send_sme_addts_rsp(tpAniSirGlobal mac, uint8_t rspReqd, uint32_t status,
|
lim_send_sme_addts_rsp(tpAniSirGlobal mac, uint8_t rspReqd, uint32_t status,
|
||||||
struct pe_session *psessionEntry, tSirMacTspecIE tspec,
|
struct pe_session *pe_session, tSirMacTspecIE tspec,
|
||||||
uint8_t smesessionId, uint16_t smetransactionId)
|
uint8_t smesessionId, uint16_t smetransactionId)
|
||||||
{
|
{
|
||||||
tpSirAddtsRsp rsp;
|
tpSirAddtsRsp rsp;
|
||||||
@@ -1499,15 +1499,15 @@ lim_send_sme_addts_rsp(tpAniSirGlobal mac, uint8_t rspReqd, uint32_t status,
|
|||||||
mmhMsg.type = eWNI_SME_ADDTS_RSP;
|
mmhMsg.type = eWNI_SME_ADDTS_RSP;
|
||||||
mmhMsg.bodyptr = rsp;
|
mmhMsg.bodyptr = rsp;
|
||||||
mmhMsg.bodyval = 0;
|
mmhMsg.bodyval = 0;
|
||||||
if (NULL == psessionEntry) {
|
if (NULL == pe_session) {
|
||||||
MTRACE(mac_trace(mac, TRACE_CODE_TX_SME_MSG,
|
MTRACE(mac_trace(mac, TRACE_CODE_TX_SME_MSG,
|
||||||
NO_SESSION, mmhMsg.type));
|
NO_SESSION, mmhMsg.type));
|
||||||
} else {
|
} else {
|
||||||
MTRACE(mac_trace(mac, TRACE_CODE_TX_SME_MSG,
|
MTRACE(mac_trace(mac, TRACE_CODE_TX_SME_MSG,
|
||||||
psessionEntry->peSessionId, mmhMsg.type));
|
pe_session->peSessionId, mmhMsg.type));
|
||||||
}
|
}
|
||||||
#ifdef FEATURE_WLAN_DIAG_SUPPORT_LIM /* FEATURE_WLAN_DIAG_SUPPORT */
|
#ifdef FEATURE_WLAN_DIAG_SUPPORT_LIM /* FEATURE_WLAN_DIAG_SUPPORT */
|
||||||
lim_diag_event_report(mac, WLAN_PE_DIAG_ADDTS_RSP_EVENT, psessionEntry, 0,
|
lim_diag_event_report(mac, WLAN_PE_DIAG_ADDTS_RSP_EVENT, pe_session, 0,
|
||||||
0);
|
0);
|
||||||
#endif /* FEATURE_WLAN_DIAG_SUPPORT */
|
#endif /* FEATURE_WLAN_DIAG_SUPPORT */
|
||||||
|
|
||||||
@@ -1517,7 +1517,7 @@ lim_send_sme_addts_rsp(tpAniSirGlobal mac, uint8_t rspReqd, uint32_t status,
|
|||||||
|
|
||||||
void
|
void
|
||||||
lim_send_sme_delts_rsp(tpAniSirGlobal mac, tpSirDeltsReq delts, uint32_t status,
|
lim_send_sme_delts_rsp(tpAniSirGlobal mac, tpSirDeltsReq delts, uint32_t status,
|
||||||
struct pe_session *psessionEntry, uint8_t smesessionId,
|
struct pe_session *pe_session, uint8_t smesessionId,
|
||||||
uint16_t smetransactionId)
|
uint16_t smetransactionId)
|
||||||
{
|
{
|
||||||
tpSirDeltsRsp rsp;
|
tpSirDeltsRsp rsp;
|
||||||
@@ -1534,7 +1534,7 @@ lim_send_sme_delts_rsp(tpAniSirGlobal mac, tpSirDeltsReq delts, uint32_t status,
|
|||||||
if (!rsp)
|
if (!rsp)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (psessionEntry != NULL) {
|
if (pe_session != NULL) {
|
||||||
|
|
||||||
rsp->aid = delts->aid;
|
rsp->aid = delts->aid;
|
||||||
qdf_copy_macaddr(&rsp->macaddr, &delts->macaddr);
|
qdf_copy_macaddr(&rsp->macaddr, &delts->macaddr);
|
||||||
@@ -1552,15 +1552,15 @@ lim_send_sme_delts_rsp(tpAniSirGlobal mac, tpSirDeltsReq delts, uint32_t status,
|
|||||||
mmhMsg.type = eWNI_SME_DELTS_RSP;
|
mmhMsg.type = eWNI_SME_DELTS_RSP;
|
||||||
mmhMsg.bodyptr = rsp;
|
mmhMsg.bodyptr = rsp;
|
||||||
mmhMsg.bodyval = 0;
|
mmhMsg.bodyval = 0;
|
||||||
if (NULL == psessionEntry) {
|
if (NULL == pe_session) {
|
||||||
MTRACE(mac_trace(mac, TRACE_CODE_TX_SME_MSG,
|
MTRACE(mac_trace(mac, TRACE_CODE_TX_SME_MSG,
|
||||||
NO_SESSION, mmhMsg.type));
|
NO_SESSION, mmhMsg.type));
|
||||||
} else {
|
} else {
|
||||||
MTRACE(mac_trace(mac, TRACE_CODE_TX_SME_MSG,
|
MTRACE(mac_trace(mac, TRACE_CODE_TX_SME_MSG,
|
||||||
psessionEntry->peSessionId, mmhMsg.type));
|
pe_session->peSessionId, mmhMsg.type));
|
||||||
}
|
}
|
||||||
#ifdef FEATURE_WLAN_DIAG_SUPPORT_LIM /* FEATURE_WLAN_DIAG_SUPPORT */
|
#ifdef FEATURE_WLAN_DIAG_SUPPORT_LIM /* FEATURE_WLAN_DIAG_SUPPORT */
|
||||||
lim_diag_event_report(mac, WLAN_PE_DIAG_DELTS_RSP_EVENT, psessionEntry,
|
lim_diag_event_report(mac, WLAN_PE_DIAG_DELTS_RSP_EVENT, pe_session,
|
||||||
(uint16_t) status, 0);
|
(uint16_t) status, 0);
|
||||||
#endif /* FEATURE_WLAN_DIAG_SUPPORT */
|
#endif /* FEATURE_WLAN_DIAG_SUPPORT */
|
||||||
|
|
||||||
@@ -1569,7 +1569,7 @@ lim_send_sme_delts_rsp(tpAniSirGlobal mac, tpSirDeltsReq delts, uint32_t status,
|
|||||||
|
|
||||||
void
|
void
|
||||||
lim_send_sme_delts_ind(tpAniSirGlobal mac, tpSirDeltsReqInfo delts, uint16_t aid,
|
lim_send_sme_delts_ind(tpAniSirGlobal mac, tpSirDeltsReqInfo delts, uint16_t aid,
|
||||||
struct pe_session *psessionEntry)
|
struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
tpSirDeltsRsp rsp;
|
tpSirDeltsRsp rsp;
|
||||||
struct scheduler_msg mmhMsg = {0};
|
struct scheduler_msg mmhMsg = {0};
|
||||||
@@ -1588,15 +1588,15 @@ lim_send_sme_delts_ind(tpAniSirGlobal mac, tpSirDeltsReqInfo delts, uint16_t aid
|
|||||||
|
|
||||||
/* Update SME session Id and SME transaction Id */
|
/* Update SME session Id and SME transaction Id */
|
||||||
|
|
||||||
rsp->sessionId = psessionEntry->smeSessionId;
|
rsp->sessionId = pe_session->smeSessionId;
|
||||||
rsp->transactionId = psessionEntry->transactionId;
|
rsp->transactionId = pe_session->transactionId;
|
||||||
|
|
||||||
mmhMsg.type = eWNI_SME_DELTS_IND;
|
mmhMsg.type = eWNI_SME_DELTS_IND;
|
||||||
mmhMsg.bodyptr = rsp;
|
mmhMsg.bodyptr = rsp;
|
||||||
mmhMsg.bodyval = 0;
|
mmhMsg.bodyval = 0;
|
||||||
MTRACE(mac_trace_msg_tx(mac, psessionEntry->peSessionId, mmhMsg.type));
|
MTRACE(mac_trace_msg_tx(mac, pe_session->peSessionId, mmhMsg.type));
|
||||||
#ifdef FEATURE_WLAN_DIAG_SUPPORT_LIM /* FEATURE_WLAN_DIAG_SUPPORT */
|
#ifdef FEATURE_WLAN_DIAG_SUPPORT_LIM /* FEATURE_WLAN_DIAG_SUPPORT */
|
||||||
lim_diag_event_report(mac, WLAN_PE_DIAG_DELTS_IND_EVENT, psessionEntry, 0,
|
lim_diag_event_report(mac, WLAN_PE_DIAG_DELTS_IND_EVENT, pe_session, 0,
|
||||||
0);
|
0);
|
||||||
#endif /* FEATURE_WLAN_DIAG_SUPPORT */
|
#endif /* FEATURE_WLAN_DIAG_SUPPORT */
|
||||||
|
|
||||||
@@ -2166,12 +2166,12 @@ err:
|
|||||||
|
|
||||||
void lim_handle_delete_bss_rsp(tpAniSirGlobal mac, struct scheduler_msg *MsgQ)
|
void lim_handle_delete_bss_rsp(tpAniSirGlobal mac, struct scheduler_msg *MsgQ)
|
||||||
{
|
{
|
||||||
struct pe_session *psessionEntry;
|
struct pe_session *pe_session;
|
||||||
tpDeleteBssParams pDelBss = (tpDeleteBssParams) (MsgQ->bodyptr);
|
tpDeleteBssParams pDelBss = (tpDeleteBssParams) (MsgQ->bodyptr);
|
||||||
|
|
||||||
psessionEntry =
|
pe_session =
|
||||||
pe_find_session_by_session_id(mac, pDelBss->sessionId);
|
pe_find_session_by_session_id(mac, pDelBss->sessionId);
|
||||||
if (psessionEntry == NULL) {
|
if (pe_session == NULL) {
|
||||||
pe_err("Session Does not exist for given sessionID: %d",
|
pe_err("Session Does not exist for given sessionID: %d",
|
||||||
pDelBss->sessionId);
|
pDelBss->sessionId);
|
||||||
qdf_mem_free(MsgQ->bodyptr);
|
qdf_mem_free(MsgQ->bodyptr);
|
||||||
@@ -2185,15 +2185,15 @@ void lim_handle_delete_bss_rsp(tpAniSirGlobal mac, struct scheduler_msg *MsgQ)
|
|||||||
* to some error conditions so that the next DEL_BSS request does
|
* to some error conditions so that the next DEL_BSS request does
|
||||||
* not take the HO_FAIL path
|
* not take the HO_FAIL path
|
||||||
*/
|
*/
|
||||||
psessionEntry->process_ho_fail = false;
|
pe_session->process_ho_fail = false;
|
||||||
if (LIM_IS_IBSS_ROLE(psessionEntry))
|
if (LIM_IS_IBSS_ROLE(pe_session))
|
||||||
lim_ibss_del_bss_rsp(mac, MsgQ->bodyptr, psessionEntry);
|
lim_ibss_del_bss_rsp(mac, MsgQ->bodyptr, pe_session);
|
||||||
else if (LIM_IS_UNKNOWN_ROLE(psessionEntry))
|
else if (LIM_IS_UNKNOWN_ROLE(pe_session))
|
||||||
lim_process_sme_del_bss_rsp(mac, MsgQ->bodyval, psessionEntry);
|
lim_process_sme_del_bss_rsp(mac, MsgQ->bodyval, pe_session);
|
||||||
else if (LIM_IS_NDI_ROLE(psessionEntry))
|
else if (LIM_IS_NDI_ROLE(pe_session))
|
||||||
lim_ndi_del_bss_rsp(mac, MsgQ->bodyptr, psessionEntry);
|
lim_ndi_del_bss_rsp(mac, MsgQ->bodyptr, pe_session);
|
||||||
else
|
else
|
||||||
lim_process_mlm_del_bss_rsp(mac, MsgQ, psessionEntry);
|
lim_process_mlm_del_bss_rsp(mac, MsgQ, pe_session);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2257,12 +2257,12 @@ void lim_send_sme_max_assoc_exceeded_ntf(tpAniSirGlobal mac, tSirMacAddr peerMac
|
|||||||
that the Channel change has been done to the specified target
|
that the Channel change has been done to the specified target
|
||||||
channel in the Channel change request
|
channel in the Channel change request
|
||||||
\param mac - global mac structure
|
\param mac - global mac structure
|
||||||
\param psessionEntry - session info
|
\param pe_session - session info
|
||||||
\param pChnlParams - Channel switch params
|
\param pChnlParams - Channel switch params
|
||||||
--------------------------------------------------------------------*/
|
--------------------------------------------------------------------*/
|
||||||
void
|
void
|
||||||
lim_send_sme_ap_channel_switch_resp(tpAniSirGlobal mac,
|
lim_send_sme_ap_channel_switch_resp(tpAniSirGlobal mac,
|
||||||
struct pe_session *psessionEntry,
|
struct pe_session *pe_session,
|
||||||
tpSwitchChannelParams pChnlParams)
|
tpSwitchChannelParams pChnlParams)
|
||||||
{
|
{
|
||||||
struct scheduler_msg mmhMsg = {0};
|
struct scheduler_msg mmhMsg = {0};
|
||||||
@@ -2287,7 +2287,7 @@ lim_send_sme_ap_channel_switch_resp(tpAniSirGlobal mac,
|
|||||||
* Pass the sme sessionID to SME instead
|
* Pass the sme sessionID to SME instead
|
||||||
* PE session ID.
|
* PE session ID.
|
||||||
*/
|
*/
|
||||||
pSmeSwithChnlParams->peSessionId = psessionEntry->smeSessionId;
|
pSmeSwithChnlParams->peSessionId = pe_session->smeSessionId;
|
||||||
|
|
||||||
mmhMsg.type = eWNI_SME_CHANNEL_CHANGE_RSP;
|
mmhMsg.type = eWNI_SME_CHANNEL_CHANGE_RSP;
|
||||||
mmhMsg.bodyptr = (void *)pSmeSwithChnlParams;
|
mmhMsg.bodyptr = (void *)pSmeSwithChnlParams;
|
||||||
@@ -2318,15 +2318,15 @@ lim_send_sme_ap_channel_switch_resp(tpAniSirGlobal mac,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!is_ch_dfs) {
|
if (!is_ch_dfs) {
|
||||||
if (channelId == psessionEntry->currentOperChannel) {
|
if (channelId == pe_session->currentOperChannel) {
|
||||||
lim_apply_configuration(mac, psessionEntry);
|
lim_apply_configuration(mac, pe_session);
|
||||||
lim_send_beacon(mac, psessionEntry);
|
lim_send_beacon(mac, pe_session);
|
||||||
} else {
|
} else {
|
||||||
pe_debug("Failed to Transmit Beacons on channel: %d after AP channel change response",
|
pe_debug("Failed to Transmit Beacons on channel: %d after AP channel change response",
|
||||||
psessionEntry->bcnLen);
|
pe_session->bcnLen);
|
||||||
}
|
}
|
||||||
|
|
||||||
lim_obss_send_detection_cfg(mac, psessionEntry, true);
|
lim_obss_send_detection_cfg(mac, pe_session, true);
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -67,7 +67,7 @@ void lim_send_sme_deauth_ntf(tpAniSirGlobal, tSirMacAddr, tSirResultCodes, uint1
|
|||||||
uint16_t, uint8_t, uint16_t);
|
uint16_t, uint8_t, uint16_t);
|
||||||
void lim_send_sme_disassoc_ind(tpAniSirGlobal, tpDphHashNode, struct pe_session *);
|
void lim_send_sme_disassoc_ind(tpAniSirGlobal, tpDphHashNode, struct pe_session *);
|
||||||
void lim_send_sme_deauth_ind(tpAniSirGlobal, tpDphHashNode,
|
void lim_send_sme_deauth_ind(tpAniSirGlobal, tpDphHashNode,
|
||||||
struct pe_session *psessionEntry);
|
struct pe_session *pe_session);
|
||||||
void lim_send_sme_wm_status_change_ntf(tpAniSirGlobal, tSirSmeStatusChangeCode,
|
void lim_send_sme_wm_status_change_ntf(tpAniSirGlobal, tSirSmeStatusChangeCode,
|
||||||
uint32_t *, uint16_t, uint8_t);
|
uint32_t *, uint16_t, uint8_t);
|
||||||
void lim_send_sme_set_context_rsp(tpAniSirGlobal, struct qdf_mac_addr, uint16_t,
|
void lim_send_sme_set_context_rsp(tpAniSirGlobal, struct qdf_mac_addr, uint16_t,
|
||||||
@@ -81,10 +81,10 @@ lim_send_sme_aggr_qos_rsp(tpAniSirGlobal mac, tpSirAggrQosRsp aggrQosRsp,
|
|||||||
uint8_t smesessionId);
|
uint8_t smesessionId);
|
||||||
|
|
||||||
void lim_send_sme_addts_rsp(tpAniSirGlobal mac, uint8_t rspReqd, uint32_t status,
|
void lim_send_sme_addts_rsp(tpAniSirGlobal mac, uint8_t rspReqd, uint32_t status,
|
||||||
struct pe_session *psessionEntry, tSirMacTspecIE tspec,
|
struct pe_session *pe_session, tSirMacTspecIE tspec,
|
||||||
uint8_t smesessionId, uint16_t smetransactionId);
|
uint8_t smesessionId, uint16_t smetransactionId);
|
||||||
void lim_send_sme_delts_rsp(tpAniSirGlobal mac, tpSirDeltsReq delts,
|
void lim_send_sme_delts_rsp(tpAniSirGlobal mac, tpSirDeltsReq delts,
|
||||||
uint32_t status, struct pe_session *psessionEntry,
|
uint32_t status, struct pe_session *pe_session,
|
||||||
uint8_t smessionId, uint16_t smetransactionId);
|
uint8_t smessionId, uint16_t smetransactionId);
|
||||||
void lim_send_sme_delts_ind(tpAniSirGlobal mac, tpSirDeltsReqInfo delts,
|
void lim_send_sme_delts_ind(tpAniSirGlobal mac, tpSirDeltsReqInfo delts,
|
||||||
uint16_t aid, struct pe_session *);
|
uint16_t aid, struct pe_session *);
|
||||||
@@ -110,7 +110,7 @@ void lim_send_sme_max_assoc_exceeded_ntf(tpAniSirGlobal mac, tSirMacAddr peerMac
|
|||||||
uint8_t smesessionId);
|
uint8_t smesessionId);
|
||||||
|
|
||||||
void lim_send_sme_ap_channel_switch_resp(tpAniSirGlobal mac,
|
void lim_send_sme_ap_channel_switch_resp(tpAniSirGlobal mac,
|
||||||
struct pe_session *psessionEntry,
|
struct pe_session *pe_session,
|
||||||
tpSwitchChannelParams pChnlParams);
|
tpSwitchChannelParams pChnlParams);
|
||||||
/*
|
/*
|
||||||
* lim_process_beacon_tx_success_ind() - handle successful beacon transmission
|
* lim_process_beacon_tx_success_ind() - handle successful beacon transmission
|
||||||
|
|||||||
@@ -89,33 +89,33 @@ struct sDphHashNode *pe_get_session_dph_node_array(uint8_t session_id)
|
|||||||
--------------------------------------------------------------------------*/
|
--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
static void pe_init_beacon_params(tpAniSirGlobal mac,
|
static void pe_init_beacon_params(tpAniSirGlobal mac,
|
||||||
struct pe_session *psessionEntry)
|
struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
psessionEntry->beaconParams.beaconInterval = 0;
|
pe_session->beaconParams.beaconInterval = 0;
|
||||||
psessionEntry->beaconParams.fShortPreamble = 0;
|
pe_session->beaconParams.fShortPreamble = 0;
|
||||||
psessionEntry->beaconParams.llaCoexist = 0;
|
pe_session->beaconParams.llaCoexist = 0;
|
||||||
psessionEntry->beaconParams.llbCoexist = 0;
|
pe_session->beaconParams.llbCoexist = 0;
|
||||||
psessionEntry->beaconParams.llgCoexist = 0;
|
pe_session->beaconParams.llgCoexist = 0;
|
||||||
psessionEntry->beaconParams.ht20Coexist = 0;
|
pe_session->beaconParams.ht20Coexist = 0;
|
||||||
psessionEntry->beaconParams.llnNonGFCoexist = 0;
|
pe_session->beaconParams.llnNonGFCoexist = 0;
|
||||||
psessionEntry->beaconParams.fRIFSMode = 0;
|
pe_session->beaconParams.fRIFSMode = 0;
|
||||||
psessionEntry->beaconParams.fLsigTXOPProtectionFullSupport = 0;
|
pe_session->beaconParams.fLsigTXOPProtectionFullSupport = 0;
|
||||||
psessionEntry->beaconParams.gHTObssMode = 0;
|
pe_session->beaconParams.gHTObssMode = 0;
|
||||||
|
|
||||||
/* Number of legacy STAs associated */
|
/* Number of legacy STAs associated */
|
||||||
qdf_mem_set((void *)&psessionEntry->gLim11bParams,
|
qdf_mem_set((void *)&pe_session->gLim11bParams,
|
||||||
sizeof(tLimProtStaParams), 0);
|
sizeof(tLimProtStaParams), 0);
|
||||||
qdf_mem_set((void *)&psessionEntry->gLim11aParams,
|
qdf_mem_set((void *)&pe_session->gLim11aParams,
|
||||||
sizeof(tLimProtStaParams), 0);
|
sizeof(tLimProtStaParams), 0);
|
||||||
qdf_mem_set((void *)&psessionEntry->gLim11gParams,
|
qdf_mem_set((void *)&pe_session->gLim11gParams,
|
||||||
sizeof(tLimProtStaParams), 0);
|
sizeof(tLimProtStaParams), 0);
|
||||||
qdf_mem_set((void *)&psessionEntry->gLimNonGfParams,
|
qdf_mem_set((void *)&pe_session->gLimNonGfParams,
|
||||||
sizeof(tLimProtStaParams), 0);
|
sizeof(tLimProtStaParams), 0);
|
||||||
qdf_mem_set((void *)&psessionEntry->gLimHt20Params,
|
qdf_mem_set((void *)&pe_session->gLimHt20Params,
|
||||||
sizeof(tLimProtStaParams), 0);
|
sizeof(tLimProtStaParams), 0);
|
||||||
qdf_mem_set((void *)&psessionEntry->gLimLsigTxopParams,
|
qdf_mem_set((void *)&pe_session->gLimLsigTxopParams,
|
||||||
sizeof(tLimProtStaParams), 0);
|
sizeof(tLimProtStaParams), 0);
|
||||||
qdf_mem_set((void *)&psessionEntry->gLimOlbcParams,
|
qdf_mem_set((void *)&pe_session->gLimOlbcParams,
|
||||||
sizeof(tLimProtStaParams), 0);
|
sizeof(tLimProtStaParams), 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -123,7 +123,7 @@ static void pe_init_beacon_params(tpAniSirGlobal mac,
|
|||||||
* pe_reset_protection_callback() - resets protection structs so that when an AP
|
* pe_reset_protection_callback() - resets protection structs so that when an AP
|
||||||
* causing use of protection goes away, corresponding protection bit can be
|
* causing use of protection goes away, corresponding protection bit can be
|
||||||
* reset
|
* reset
|
||||||
* @ptr: pointer to pSessionEntry
|
* @ptr: pointer to pe_session
|
||||||
*
|
*
|
||||||
* This function resets protection structs so that when an AP causing use of
|
* This function resets protection structs so that when an AP causing use of
|
||||||
* protection goes away, corresponding protection bit can be reset. This allowes
|
* protection goes away, corresponding protection bit can be reset. This allowes
|
||||||
|
|||||||
@@ -567,7 +567,7 @@ end:
|
|||||||
uint8_t
|
uint8_t
|
||||||
lim_is_sme_disassoc_req_valid(tpAniSirGlobal mac,
|
lim_is_sme_disassoc_req_valid(tpAniSirGlobal mac,
|
||||||
tpSirSmeDisassocReq pDisassocReq,
|
tpSirSmeDisassocReq pDisassocReq,
|
||||||
struct pe_session *psessionEntry)
|
struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
if (qdf_is_macaddr_group(&pDisassocReq->peer_macaddr) &&
|
if (qdf_is_macaddr_group(&pDisassocReq->peer_macaddr) &&
|
||||||
!qdf_is_macaddr_broadcast(&pDisassocReq->peer_macaddr))
|
!qdf_is_macaddr_broadcast(&pDisassocReq->peer_macaddr))
|
||||||
@@ -600,7 +600,7 @@ lim_is_sme_disassoc_req_valid(tpAniSirGlobal mac,
|
|||||||
uint8_t
|
uint8_t
|
||||||
lim_is_sme_disassoc_cnf_valid(tpAniSirGlobal mac,
|
lim_is_sme_disassoc_cnf_valid(tpAniSirGlobal mac,
|
||||||
tpSirSmeDisassocCnf pDisassocCnf,
|
tpSirSmeDisassocCnf pDisassocCnf,
|
||||||
struct pe_session *psessionEntry)
|
struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
if (qdf_is_macaddr_group(&pDisassocCnf->peer_macaddr))
|
if (qdf_is_macaddr_group(&pDisassocCnf->peer_macaddr))
|
||||||
return false;
|
return false;
|
||||||
@@ -630,7 +630,7 @@ lim_is_sme_disassoc_cnf_valid(tpAniSirGlobal mac,
|
|||||||
|
|
||||||
uint8_t
|
uint8_t
|
||||||
lim_is_sme_deauth_req_valid(tpAniSirGlobal mac, tpSirSmeDeauthReq pDeauthReq,
|
lim_is_sme_deauth_req_valid(tpAniSirGlobal mac, tpSirSmeDeauthReq pDeauthReq,
|
||||||
struct pe_session *psessionEntry)
|
struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
if (qdf_is_macaddr_group(&pDeauthReq->peer_macaddr) &&
|
if (qdf_is_macaddr_group(&pDeauthReq->peer_macaddr) &&
|
||||||
!qdf_is_macaddr_broadcast(&pDeauthReq->peer_macaddr))
|
!qdf_is_macaddr_broadcast(&pDeauthReq->peer_macaddr))
|
||||||
|
|||||||
@@ -52,10 +52,10 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
QDF_STATUS lim_get_sta_hash_bssidx(tpAniSirGlobal mac, uint16_t assocId,
|
QDF_STATUS lim_get_sta_hash_bssidx(tpAniSirGlobal mac, uint16_t assocId,
|
||||||
uint8_t *bssidx, struct pe_session *psessionEntry)
|
uint8_t *bssidx, struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
tpDphHashNode pSta =
|
tpDphHashNode pSta =
|
||||||
dph_get_hash_entry(mac, assocId, &psessionEntry->dph.dphHashTable);
|
dph_get_hash_entry(mac, assocId, &pe_session->dph.dphHashTable);
|
||||||
|
|
||||||
if (pSta == NULL) {
|
if (pSta == NULL) {
|
||||||
pe_err("invalid STA: %d", assocId);
|
pe_err("invalid STA: %d", assocId);
|
||||||
|
|||||||
@@ -36,6 +36,6 @@
|
|||||||
#include "lim_types.h"
|
#include "lim_types.h"
|
||||||
|
|
||||||
QDF_STATUS lim_get_sta_hash_bssidx(tpAniSirGlobal mac, uint16_t assocId,
|
QDF_STATUS lim_get_sta_hash_bssidx(tpAniSirGlobal mac, uint16_t assocId,
|
||||||
uint8_t *bssidx, struct pe_session *psessionEntry);
|
uint8_t *bssidx, struct pe_session *pe_session);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -434,7 +434,7 @@ void lim_assoc_failure_timer_handler(void *mac_global, uint32_t param)
|
|||||||
tpAniSirGlobal mac_ctx = (tpAniSirGlobal) mac_global;
|
tpAniSirGlobal mac_ctx = (tpAniSirGlobal) mac_global;
|
||||||
struct pe_session *session = NULL;
|
struct pe_session *session = NULL;
|
||||||
|
|
||||||
session = mac_ctx->lim.pSessionEntry;
|
session = mac_ctx->lim.pe_session;
|
||||||
if (LIM_REASSOC == param && NULL != session
|
if (LIM_REASSOC == param && NULL != session
|
||||||
&& session->limMlmState == eLIM_MLM_WT_FT_REASSOC_RSP_STATE) {
|
&& session->limMlmState == eLIM_MLM_WT_FT_REASSOC_RSP_STATE) {
|
||||||
pe_err("Reassoc timeout happened");
|
pe_err("Reassoc timeout happened");
|
||||||
@@ -889,10 +889,10 @@ lim_deactivate_and_change_per_sta_id_timer(tpAniSirGlobal mac, uint32_t timerId,
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
void lim_activate_cnf_timer(tpAniSirGlobal mac, uint16_t staId,
|
void lim_activate_cnf_timer(tpAniSirGlobal mac, uint16_t staId,
|
||||||
struct pe_session *psessionEntry)
|
struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
mac->lim.limTimers.gpLimCnfWaitTimer[staId].sessionId =
|
mac->lim.limTimers.gpLimCnfWaitTimer[staId].sessionId =
|
||||||
psessionEntry->peSessionId;
|
pe_session->peSessionId;
|
||||||
if (tx_timer_activate(&mac->lim.limTimers.gpLimCnfWaitTimer[staId])
|
if (tx_timer_activate(&mac->lim.limTimers.gpLimCnfWaitTimer[staId])
|
||||||
!= TX_SUCCESS) {
|
!= TX_SUCCESS) {
|
||||||
pe_err("could not activate cnf wait timer");
|
pe_err("could not activate cnf wait timer");
|
||||||
|
|||||||
@@ -100,13 +100,13 @@
|
|||||||
#define LIM_MIN_MEM_ASSOC 4
|
#define LIM_MIN_MEM_ASSOC 4
|
||||||
|
|
||||||
/* / Verifies whether given mac addr matches the CURRENT Bssid */
|
/* / Verifies whether given mac addr matches the CURRENT Bssid */
|
||||||
#define IS_CURRENT_BSSID(mac, addr, psessionEntry) (!qdf_mem_cmp(addr, \
|
#define IS_CURRENT_BSSID(mac, addr, pe_session) (!qdf_mem_cmp(addr, \
|
||||||
psessionEntry->bssId, \
|
pe_session->bssId, \
|
||||||
sizeof(psessionEntry->bssId)))
|
sizeof(pe_session->bssId)))
|
||||||
/* / Verifies whether given addr matches the REASSOC Bssid */
|
/* / Verifies whether given addr matches the REASSOC Bssid */
|
||||||
#define IS_REASSOC_BSSID(mac, addr, psessionEntry) (!qdf_mem_cmp(addr, \
|
#define IS_REASSOC_BSSID(mac, addr, pe_session) (!qdf_mem_cmp(addr, \
|
||||||
psessionEntry->limReAssocbssId, \
|
pe_session->limReAssocbssId, \
|
||||||
sizeof(psessionEntry->limReAssocbssId)))
|
sizeof(pe_session->limReAssocbssId)))
|
||||||
|
|
||||||
#define REQ_TYPE_REGISTRAR (0x2)
|
#define REQ_TYPE_REGISTRAR (0x2)
|
||||||
#define REQ_TYPE_WLAN_MANAGER_REGISTRAR (0x3)
|
#define REQ_TYPE_WLAN_MANAGER_REGISTRAR (0x3)
|
||||||
@@ -434,7 +434,7 @@ void lim_get_random_bssid(tpAniSirGlobal mac, uint8_t *data);
|
|||||||
|
|
||||||
/* Function to handle HT and HT IE CFG parameter intializations */
|
/* Function to handle HT and HT IE CFG parameter intializations */
|
||||||
void handle_ht_capabilityand_ht_info(struct mac_context *mac,
|
void handle_ht_capabilityand_ht_info(struct mac_context *mac,
|
||||||
struct pe_session *psessionEntry);
|
struct pe_session *pe_session);
|
||||||
|
|
||||||
void lim_handle_param_update(tpAniSirGlobal mac, eUpdateIEsType cfgId);
|
void lim_handle_param_update(tpAniSirGlobal mac, eUpdateIEsType cfgId);
|
||||||
|
|
||||||
@@ -470,7 +470,7 @@ QDF_STATUS lim_process_auth_frame_no_session(tpAniSirGlobal mac, uint8_t *,
|
|||||||
|
|
||||||
void lim_process_assoc_req_frame(tpAniSirGlobal, uint8_t *, uint8_t, struct pe_session *);
|
void lim_process_assoc_req_frame(tpAniSirGlobal, uint8_t *, uint8_t, struct pe_session *);
|
||||||
void lim_send_mlm_assoc_ind(tpAniSirGlobal mac, tpDphHashNode pStaDs,
|
void lim_send_mlm_assoc_ind(tpAniSirGlobal mac, tpDphHashNode pStaDs,
|
||||||
struct pe_session *psessionEntry);
|
struct pe_session *pe_session);
|
||||||
|
|
||||||
void lim_process_assoc_rsp_frame(tpAniSirGlobal, uint8_t *, uint8_t, struct pe_session *);
|
void lim_process_assoc_rsp_frame(tpAniSirGlobal, uint8_t *, uint8_t, struct pe_session *);
|
||||||
void lim_process_disassoc_frame(tpAniSirGlobal, uint8_t *, struct pe_session *);
|
void lim_process_disassoc_frame(tpAniSirGlobal, uint8_t *, struct pe_session *);
|
||||||
@@ -533,7 +533,7 @@ void lim_send_auth_mgmt_frame(tpAniSirGlobal, tSirMacAuthFrameBody *, tSirMacAdd
|
|||||||
void lim_send_assoc_req_mgmt_frame(tpAniSirGlobal, tLimMlmAssocReq *, struct pe_session *);
|
void lim_send_assoc_req_mgmt_frame(tpAniSirGlobal, tLimMlmAssocReq *, struct pe_session *);
|
||||||
#ifdef WLAN_FEATURE_HOST_ROAM
|
#ifdef WLAN_FEATURE_HOST_ROAM
|
||||||
void lim_send_reassoc_req_with_ft_ies_mgmt_frame(tpAniSirGlobal mac,
|
void lim_send_reassoc_req_with_ft_ies_mgmt_frame(tpAniSirGlobal mac,
|
||||||
tLimMlmReassocReq *pMlmReassocReq, struct pe_session *psessionEntry);
|
tLimMlmReassocReq *pMlmReassocReq, struct pe_session *pe_session);
|
||||||
void lim_send_reassoc_req_mgmt_frame(tpAniSirGlobal, tLimMlmReassocReq *,
|
void lim_send_reassoc_req_mgmt_frame(tpAniSirGlobal, tLimMlmReassocReq *,
|
||||||
struct pe_session *);
|
struct pe_session *);
|
||||||
/**
|
/**
|
||||||
@@ -550,7 +550,7 @@ void lim_process_rx_scan_handler(struct wlan_objmgr_vdev *vdev,
|
|||||||
#else
|
#else
|
||||||
static inline void lim_send_reassoc_req_with_ft_ies_mgmt_frame(
|
static inline void lim_send_reassoc_req_with_ft_ies_mgmt_frame(
|
||||||
tpAniSirGlobal mac, tLimMlmReassocReq *pMlmReassocReq,
|
tpAniSirGlobal mac, tLimMlmReassocReq *pMlmReassocReq,
|
||||||
struct pe_session *psessionEntry)
|
struct pe_session *pe_session)
|
||||||
{}
|
{}
|
||||||
static inline void lim_send_reassoc_req_mgmt_frame(tpAniSirGlobal mac_ctx,
|
static inline void lim_send_reassoc_req_mgmt_frame(tpAniSirGlobal mac_ctx,
|
||||||
tLimMlmReassocReq *reassoc_req, struct pe_session *pe_session)
|
tLimMlmReassocReq *reassoc_req, struct pe_session *pe_session)
|
||||||
@@ -609,7 +609,7 @@ void lim_send_delts_req_action_frame(tpAniSirGlobal mac, tSirMacAddr peer,
|
|||||||
uint8_t wmmTspecPresent,
|
uint8_t wmmTspecPresent,
|
||||||
tSirMacTSInfo * pTsinfo,
|
tSirMacTSInfo * pTsinfo,
|
||||||
tSirMacTspecIE * pTspecIe,
|
tSirMacTspecIE * pTspecIe,
|
||||||
struct pe_session *psessionEntry);
|
struct pe_session *pe_session);
|
||||||
void lim_send_addts_req_action_frame(tpAniSirGlobal mac, tSirMacAddr peerMacAddr,
|
void lim_send_addts_req_action_frame(tpAniSirGlobal mac, tSirMacAddr peerMacAddr,
|
||||||
tSirAddtsReqInfo *addts, struct pe_session *);
|
tSirAddtsReqInfo *addts, struct pe_session *);
|
||||||
void lim_send_addts_rsp_action_frame(tpAniSirGlobal mac, tSirMacAddr peerMacAddr,
|
void lim_send_addts_rsp_action_frame(tpAniSirGlobal mac, tSirMacAddr peerMacAddr,
|
||||||
@@ -628,7 +628,7 @@ void lim_process_mlm_update_hidden_ssid_rsp(tpAniSirGlobal mac_ctx,
|
|||||||
struct scheduler_msg *msg);
|
struct scheduler_msg *msg);
|
||||||
|
|
||||||
tSirResultCodes lim_mlm_add_bss(tpAniSirGlobal, tLimMlmStartReq *,
|
tSirResultCodes lim_mlm_add_bss(tpAniSirGlobal, tLimMlmStartReq *,
|
||||||
struct pe_session *psessionEntry);
|
struct pe_session *pe_session);
|
||||||
|
|
||||||
QDF_STATUS lim_send_channel_switch_mgmt_frame(tpAniSirGlobal, tSirMacAddr,
|
QDF_STATUS lim_send_channel_switch_mgmt_frame(tpAniSirGlobal, tSirMacAddr,
|
||||||
uint8_t, uint8_t, uint8_t,
|
uint8_t, uint8_t, uint8_t,
|
||||||
@@ -643,7 +643,7 @@ QDF_STATUS lim_p2p_oper_chan_change_confirm_action_frame(
|
|||||||
|
|
||||||
QDF_STATUS lim_send_vht_opmode_notification_frame(tpAniSirGlobal mac,
|
QDF_STATUS lim_send_vht_opmode_notification_frame(tpAniSirGlobal mac,
|
||||||
tSirMacAddr peer, uint8_t nMode,
|
tSirMacAddr peer, uint8_t nMode,
|
||||||
struct pe_session *psessionEntry);
|
struct pe_session *pe_session);
|
||||||
|
|
||||||
QDF_STATUS lim_send_neighbor_report_request_frame(tpAniSirGlobal,
|
QDF_STATUS lim_send_neighbor_report_request_frame(tpAniSirGlobal,
|
||||||
tpSirMacNeighborReportReq,
|
tpSirMacNeighborReportReq,
|
||||||
@@ -659,7 +659,7 @@ QDF_STATUS lim_send_link_report_action_frame(tpAniSirGlobal, tpSirMacLinkReport,
|
|||||||
* @is_last_frame: is the current report last or more reports to follow
|
* @is_last_frame: is the current report last or more reports to follow
|
||||||
* @pRRMReport: Pointer to the RRM report structure
|
* @pRRMReport: Pointer to the RRM report structure
|
||||||
* @peer: MAC address of the peer
|
* @peer: MAC address of the peer
|
||||||
* @psessionEntry: Pointer to the PE session entry
|
* @pe_session: Pointer to the PE session entry
|
||||||
*
|
*
|
||||||
* Return: Ret Status
|
* Return: Ret Status
|
||||||
*/
|
*/
|
||||||
@@ -670,7 +670,7 @@ lim_send_radio_measure_report_action_frame(tpAniSirGlobal mac,
|
|||||||
bool is_last_frame,
|
bool is_last_frame,
|
||||||
tpSirMacRadioMeasureReport pRRMReport,
|
tpSirMacRadioMeasureReport pRRMReport,
|
||||||
tSirMacAddr peer,
|
tSirMacAddr peer,
|
||||||
struct pe_session *psessionEntry);
|
struct pe_session *pe_session);
|
||||||
|
|
||||||
#ifdef FEATURE_WLAN_TDLS
|
#ifdef FEATURE_WLAN_TDLS
|
||||||
void lim_init_tdls_data(tpAniSirGlobal, struct pe_session *);
|
void lim_init_tdls_data(tpAniSirGlobal, struct pe_session *);
|
||||||
@@ -697,7 +697,7 @@ static inline QDF_STATUS lim_delete_tdls_peers(tpAniSirGlobal mac_ctx,
|
|||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
static inline void lim_init_tdls_data(tpAniSirGlobal mac,
|
static inline void lim_init_tdls_data(tpAniSirGlobal mac,
|
||||||
struct pe_session *pSessionEntry)
|
struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -727,23 +727,23 @@ void lim_set_channel(tpAniSirGlobal mac, uint8_t channel,
|
|||||||
#ifdef ANI_SUPPORT_11H
|
#ifdef ANI_SUPPORT_11H
|
||||||
/* / Function that sends Measurement Report action frame */
|
/* / Function that sends Measurement Report action frame */
|
||||||
QDF_STATUS lim_send_meas_report_frame(tpAniSirGlobal, tpSirMacMeasReqActionFrame,
|
QDF_STATUS lim_send_meas_report_frame(tpAniSirGlobal, tpSirMacMeasReqActionFrame,
|
||||||
tSirMacAddr, struct pe_session *psessionEntry);
|
tSirMacAddr, struct pe_session *pe_session);
|
||||||
|
|
||||||
/* / Function that sends TPC Report action frame */
|
/* / Function that sends TPC Report action frame */
|
||||||
QDF_STATUS lim_send_tpc_report_frame(tpAniSirGlobal, tpSirMacTpcReqActionFrame,
|
QDF_STATUS lim_send_tpc_report_frame(tpAniSirGlobal, tpSirMacTpcReqActionFrame,
|
||||||
tSirMacAddr, struct pe_session *psessionEntry);
|
tSirMacAddr, struct pe_session *pe_session);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* / Function that sends TPC Request action frame */
|
/* / Function that sends TPC Request action frame */
|
||||||
void lim_send_tpc_request_frame(tpAniSirGlobal, tSirMacAddr,
|
void lim_send_tpc_request_frame(tpAniSirGlobal, tSirMacAddr,
|
||||||
struct pe_session *psessionEntry);
|
struct pe_session *pe_session);
|
||||||
|
|
||||||
/* Function(s) to handle responses received from HAL */
|
/* Function(s) to handle responses received from HAL */
|
||||||
void lim_process_mlm_add_bss_rsp(tpAniSirGlobal mac,
|
void lim_process_mlm_add_bss_rsp(tpAniSirGlobal mac,
|
||||||
struct scheduler_msg *limMsgQ);
|
struct scheduler_msg *limMsgQ);
|
||||||
void lim_process_mlm_add_sta_rsp(tpAniSirGlobal mac,
|
void lim_process_mlm_add_sta_rsp(tpAniSirGlobal mac,
|
||||||
struct scheduler_msg *limMsgQt,
|
struct scheduler_msg *limMsgQt,
|
||||||
struct pe_session *psessionEntry);
|
struct pe_session *pe_session);
|
||||||
void lim_process_mlm_del_sta_rsp(tpAniSirGlobal mac,
|
void lim_process_mlm_del_sta_rsp(tpAniSirGlobal mac,
|
||||||
struct scheduler_msg *limMsgQ);
|
struct scheduler_msg *limMsgQ);
|
||||||
void lim_process_mlm_del_bss_rsp(tpAniSirGlobal mac,
|
void lim_process_mlm_del_bss_rsp(tpAniSirGlobal mac,
|
||||||
@@ -751,13 +751,13 @@ void lim_process_mlm_del_bss_rsp(tpAniSirGlobal mac,
|
|||||||
struct pe_session *);
|
struct pe_session *);
|
||||||
void lim_process_sta_mlm_add_sta_rsp(tpAniSirGlobal mac,
|
void lim_process_sta_mlm_add_sta_rsp(tpAniSirGlobal mac,
|
||||||
struct scheduler_msg *limMsgQ,
|
struct scheduler_msg *limMsgQ,
|
||||||
struct pe_session *psessionEntry);
|
struct pe_session *pe_session);
|
||||||
void lim_process_sta_mlm_del_sta_rsp(tpAniSirGlobal mac,
|
void lim_process_sta_mlm_del_sta_rsp(tpAniSirGlobal mac,
|
||||||
struct scheduler_msg *limMsgQ,
|
struct scheduler_msg *limMsgQ,
|
||||||
struct pe_session *psessionEntry);
|
struct pe_session *pe_session);
|
||||||
void lim_process_sta_mlm_del_bss_rsp(tpAniSirGlobal mac,
|
void lim_process_sta_mlm_del_bss_rsp(tpAniSirGlobal mac,
|
||||||
struct scheduler_msg *limMsgQ,
|
struct scheduler_msg *limMsgQ,
|
||||||
struct pe_session *psessionEntry);
|
struct pe_session *pe_session);
|
||||||
void lim_process_mlm_set_sta_key_rsp(tpAniSirGlobal mac,
|
void lim_process_mlm_set_sta_key_rsp(tpAniSirGlobal mac,
|
||||||
struct scheduler_msg *limMsgQ);
|
struct scheduler_msg *limMsgQ);
|
||||||
void lim_process_mlm_set_bss_key_rsp(tpAniSirGlobal mac,
|
void lim_process_mlm_set_bss_key_rsp(tpAniSirGlobal mac,
|
||||||
@@ -777,11 +777,11 @@ QDF_STATUS lim_sta_send_down_link(join_params *param);
|
|||||||
/* 11w send SA query request action frame */
|
/* 11w send SA query request action frame */
|
||||||
QDF_STATUS lim_send_sa_query_request_frame(tpAniSirGlobal mac, uint8_t *transId,
|
QDF_STATUS lim_send_sa_query_request_frame(tpAniSirGlobal mac, uint8_t *transId,
|
||||||
tSirMacAddr peer,
|
tSirMacAddr peer,
|
||||||
struct pe_session *psessionEntry);
|
struct pe_session *pe_session);
|
||||||
/* 11w SA query request action frame handler */
|
/* 11w SA query request action frame handler */
|
||||||
QDF_STATUS lim_send_sa_query_response_frame(tpAniSirGlobal mac,
|
QDF_STATUS lim_send_sa_query_response_frame(tpAniSirGlobal mac,
|
||||||
uint8_t *transId, tSirMacAddr peer,
|
uint8_t *transId, tSirMacAddr peer,
|
||||||
struct pe_session *psessionEntry);
|
struct pe_session *pe_session);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Inline functions */
|
/* Inline functions */
|
||||||
@@ -933,17 +933,17 @@ QDF_STATUS lim_send_beacon_ind(tpAniSirGlobal mac_ctx, struct pe_session *sessio
|
|||||||
enum sir_bcn_update_reason reason);
|
enum sir_bcn_update_reason reason);
|
||||||
|
|
||||||
void
|
void
|
||||||
lim_send_vdev_restart(tpAniSirGlobal mac, struct pe_session *psessionEntry,
|
lim_send_vdev_restart(tpAniSirGlobal mac, struct pe_session *pe_session,
|
||||||
uint8_t sessionId);
|
uint8_t sessionId);
|
||||||
|
|
||||||
void lim_get_wpspbc_sessions(tpAniSirGlobal mac, struct qdf_mac_addr addr,
|
void lim_get_wpspbc_sessions(tpAniSirGlobal mac, struct qdf_mac_addr addr,
|
||||||
uint8_t *uuid_e, eWPSPBCOverlap *overlap,
|
uint8_t *uuid_e, eWPSPBCOverlap *overlap,
|
||||||
struct pe_session *psessionEntry);
|
struct pe_session *pe_session);
|
||||||
void limWPSPBCTimeout(tpAniSirGlobal mac, struct pe_session *psessionEntry);
|
void limWPSPBCTimeout(tpAniSirGlobal mac, struct pe_session *pe_session);
|
||||||
void lim_wpspbc_close(tpAniSirGlobal mac, struct pe_session *psessionEntry);
|
void lim_wpspbc_close(tpAniSirGlobal mac, struct pe_session *pe_session);
|
||||||
void lim_remove_pbc_sessions(tpAniSirGlobal mac,
|
void lim_remove_pbc_sessions(tpAniSirGlobal mac,
|
||||||
struct qdf_mac_addr pRemoveMac,
|
struct qdf_mac_addr pRemoveMac,
|
||||||
struct pe_session *psessionEntry);
|
struct pe_session *pe_session);
|
||||||
|
|
||||||
#define LIM_WPS_OVERLAP_TIMER_MS 10000
|
#define LIM_WPS_OVERLAP_TIMER_MS 10000
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -140,7 +140,7 @@ void lim_print_msg_name(tpAniSirGlobal mac, uint16_t logLevel, uint32_t msgType)
|
|||||||
|
|
||||||
extern QDF_STATUS lim_send_set_max_tx_power_req(tpAniSirGlobal mac,
|
extern QDF_STATUS lim_send_set_max_tx_power_req(tpAniSirGlobal mac,
|
||||||
int8_t txPower,
|
int8_t txPower,
|
||||||
struct pe_session *pSessionEntry);
|
struct pe_session *pe_session);
|
||||||
extern uint8_t lim_get_max_tx_power(int8_t regMax, int8_t apTxPower,
|
extern uint8_t lim_get_max_tx_power(int8_t regMax, int8_t apTxPower,
|
||||||
uint8_t iniTxPower);
|
uint8_t iniTxPower);
|
||||||
uint8_t lim_is_addr_bc(tSirMacAddr);
|
uint8_t lim_is_addr_bc(tSirMacAddr);
|
||||||
@@ -153,15 +153,15 @@ uint16_t lim_assign_peer_idx(tpAniSirGlobal, struct pe_session *);
|
|||||||
void lim_enable_overlap11g_protection(tpAniSirGlobal mac,
|
void lim_enable_overlap11g_protection(tpAniSirGlobal mac,
|
||||||
tpUpdateBeaconParams pBeaconParams,
|
tpUpdateBeaconParams pBeaconParams,
|
||||||
tpSirMacMgmtHdr pMh,
|
tpSirMacMgmtHdr pMh,
|
||||||
struct pe_session *psessionEntry);
|
struct pe_session *pe_session);
|
||||||
void lim_update_overlap_sta_param(tpAniSirGlobal mac, tSirMacAddr bssId,
|
void lim_update_overlap_sta_param(tpAniSirGlobal mac, tSirMacAddr bssId,
|
||||||
tpLimProtStaParams pStaParams);
|
tpLimProtStaParams pStaParams);
|
||||||
void lim_update_short_preamble(tpAniSirGlobal mac, tSirMacAddr peerMacAddr,
|
void lim_update_short_preamble(tpAniSirGlobal mac, tSirMacAddr peerMacAddr,
|
||||||
tpUpdateBeaconParams pBeaconParams,
|
tpUpdateBeaconParams pBeaconParams,
|
||||||
struct pe_session *psessionEntry);
|
struct pe_session *pe_session);
|
||||||
void lim_update_short_slot_time(tpAniSirGlobal mac, tSirMacAddr peerMacAddr,
|
void lim_update_short_slot_time(tpAniSirGlobal mac, tSirMacAddr peerMacAddr,
|
||||||
tpUpdateBeaconParams pBeaconParams,
|
tpUpdateBeaconParams pBeaconParams,
|
||||||
struct pe_session *psessionEntry);
|
struct pe_session *pe_session);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* lim_send_sme_mgmt_frame_ind() - Function to send mgmt frame ind to HDD
|
* lim_send_sme_mgmt_frame_ind() - Function to send mgmt frame ind to HDD
|
||||||
@@ -216,7 +216,7 @@ void lim_decide_ap_protection(tpAniSirGlobal mac, tSirMacAddr peerMacAddr,
|
|||||||
void lim_decide_ap_protection_on_delete(tpAniSirGlobal mac,
|
void lim_decide_ap_protection_on_delete(tpAniSirGlobal mac,
|
||||||
tpDphHashNode pStaDs,
|
tpDphHashNode pStaDs,
|
||||||
tpUpdateBeaconParams pBeaconParams,
|
tpUpdateBeaconParams pBeaconParams,
|
||||||
struct pe_session *psessionEntry);
|
struct pe_session *pe_session);
|
||||||
|
|
||||||
extern QDF_STATUS lim_update_11a_protection(tpAniSirGlobal mac,
|
extern QDF_STATUS lim_update_11a_protection(tpAniSirGlobal mac,
|
||||||
uint8_t enable,
|
uint8_t enable,
|
||||||
@@ -227,17 +227,17 @@ extern QDF_STATUS lim_enable11g_protection(tpAniSirGlobal mac,
|
|||||||
uint8_t enable,
|
uint8_t enable,
|
||||||
uint8_t overlap,
|
uint8_t overlap,
|
||||||
tpUpdateBeaconParams pBeaconParams,
|
tpUpdateBeaconParams pBeaconParams,
|
||||||
struct pe_session *psessionEntry);
|
struct pe_session *pe_session);
|
||||||
extern QDF_STATUS lim_enable_ht_protection_from11g(tpAniSirGlobal mac,
|
extern QDF_STATUS lim_enable_ht_protection_from11g(tpAniSirGlobal mac,
|
||||||
uint8_t enable,
|
uint8_t enable,
|
||||||
uint8_t overlap,
|
uint8_t overlap,
|
||||||
tpUpdateBeaconParams
|
tpUpdateBeaconParams
|
||||||
pBeaconParams,
|
pBeaconParams,
|
||||||
struct pe_session *psessionEntry);
|
struct pe_session *pe_session);
|
||||||
extern QDF_STATUS lim_enable_ht20_protection(tpAniSirGlobal mac,
|
extern QDF_STATUS lim_enable_ht20_protection(tpAniSirGlobal mac,
|
||||||
uint8_t enable, uint8_t overlap,
|
uint8_t enable, uint8_t overlap,
|
||||||
tpUpdateBeaconParams pBeaconParams,
|
tpUpdateBeaconParams pBeaconParams,
|
||||||
struct pe_session *sessionEntry);
|
struct pe_session *pe_session);
|
||||||
extern QDF_STATUS lim_enable_ht_non_gf_protection(tpAniSirGlobal mac,
|
extern QDF_STATUS lim_enable_ht_non_gf_protection(tpAniSirGlobal mac,
|
||||||
uint8_t enable, uint8_t overlap,
|
uint8_t enable, uint8_t overlap,
|
||||||
tpUpdateBeaconParams
|
tpUpdateBeaconParams
|
||||||
@@ -246,7 +246,7 @@ extern QDF_STATUS lim_enable_ht_rifs_protection(tpAniSirGlobal mac,
|
|||||||
uint8_t enable, uint8_t overlap,
|
uint8_t enable, uint8_t overlap,
|
||||||
tpUpdateBeaconParams
|
tpUpdateBeaconParams
|
||||||
pBeaconParams,
|
pBeaconParams,
|
||||||
struct pe_session *psessionEntry);
|
struct pe_session *pe_session);
|
||||||
extern QDF_STATUS lim_enable_ht_lsig_txop_protection(tpAniSirGlobal mac,
|
extern QDF_STATUS lim_enable_ht_lsig_txop_protection(tpAniSirGlobal mac,
|
||||||
uint8_t enable,
|
uint8_t enable,
|
||||||
uint8_t overlap,
|
uint8_t overlap,
|
||||||
@@ -255,7 +255,7 @@ extern QDF_STATUS lim_enable_ht_lsig_txop_protection(tpAniSirGlobal mac,
|
|||||||
extern QDF_STATUS lim_enable_short_preamble(tpAniSirGlobal mac,
|
extern QDF_STATUS lim_enable_short_preamble(tpAniSirGlobal mac,
|
||||||
uint8_t enable,
|
uint8_t enable,
|
||||||
tpUpdateBeaconParams pBeaconParams,
|
tpUpdateBeaconParams pBeaconParams,
|
||||||
struct pe_session *psessionEntry);
|
struct pe_session *pe_session);
|
||||||
extern QDF_STATUS lim_enable_ht_obss_protection(tpAniSirGlobal mac,
|
extern QDF_STATUS lim_enable_ht_obss_protection(tpAniSirGlobal mac,
|
||||||
uint8_t enable, uint8_t overlap,
|
uint8_t enable, uint8_t overlap,
|
||||||
tpUpdateBeaconParams
|
tpUpdateBeaconParams
|
||||||
@@ -263,14 +263,14 @@ extern QDF_STATUS lim_enable_ht_obss_protection(tpAniSirGlobal mac,
|
|||||||
void lim_decide_sta_protection(tpAniSirGlobal mac,
|
void lim_decide_sta_protection(tpAniSirGlobal mac,
|
||||||
tpSchBeaconStruct pBeaconStruct,
|
tpSchBeaconStruct pBeaconStruct,
|
||||||
tpUpdateBeaconParams pBeaconParams,
|
tpUpdateBeaconParams pBeaconParams,
|
||||||
struct pe_session *psessionEntry);
|
struct pe_session *pe_session);
|
||||||
void lim_decide_sta_protection_on_assoc(tpAniSirGlobal mac,
|
void lim_decide_sta_protection_on_assoc(tpAniSirGlobal mac,
|
||||||
tpSchBeaconStruct pBeaconStruct,
|
tpSchBeaconStruct pBeaconStruct,
|
||||||
struct pe_session *psessionEntry);
|
struct pe_session *pe_session);
|
||||||
void lim_update_sta_run_time_ht_switch_chnl_params(tpAniSirGlobal mac,
|
void lim_update_sta_run_time_ht_switch_chnl_params(tpAniSirGlobal mac,
|
||||||
tDot11fIEHTInfo *pHTInfo,
|
tDot11fIEHTInfo *pHTInfo,
|
||||||
uint8_t bssIdx,
|
uint8_t bssIdx,
|
||||||
struct pe_session *psessionEntry);
|
struct pe_session *pe_session);
|
||||||
/* Print MAC address utility function */
|
/* Print MAC address utility function */
|
||||||
void lim_print_mac_addr(tpAniSirGlobal, tSirMacAddr, uint8_t);
|
void lim_print_mac_addr(tpAniSirGlobal, tSirMacAddr, uint8_t);
|
||||||
|
|
||||||
@@ -295,13 +295,13 @@ uint8_t lim_is_null_ssid(tSirMacSSid *pSsid);
|
|||||||
void lim_stop_tx_and_switch_channel(tpAniSirGlobal mac, uint8_t sessionId);
|
void lim_stop_tx_and_switch_channel(tpAniSirGlobal mac, uint8_t sessionId);
|
||||||
void lim_process_channel_switch_timeout(tpAniSirGlobal);
|
void lim_process_channel_switch_timeout(tpAniSirGlobal);
|
||||||
QDF_STATUS lim_start_channel_switch(tpAniSirGlobal mac,
|
QDF_STATUS lim_start_channel_switch(tpAniSirGlobal mac,
|
||||||
struct pe_session *psessionEntry);
|
struct pe_session *pe_session);
|
||||||
void lim_update_channel_switch(tpAniSirGlobal, tpSirProbeRespBeacon,
|
void lim_update_channel_switch(tpAniSirGlobal, tpSirProbeRespBeacon,
|
||||||
struct pe_session *psessionEntry);
|
struct pe_session *pe_session);
|
||||||
|
|
||||||
void lim_switch_primary_channel(tpAniSirGlobal, uint8_t, struct pe_session *);
|
void lim_switch_primary_channel(tpAniSirGlobal, uint8_t, struct pe_session *);
|
||||||
void lim_switch_primary_secondary_channel(tpAniSirGlobal mac,
|
void lim_switch_primary_secondary_channel(tpAniSirGlobal mac,
|
||||||
struct pe_session *psessionEntry,
|
struct pe_session *pe_session,
|
||||||
uint8_t newChannel,
|
uint8_t newChannel,
|
||||||
uint8_t ch_center_freq_seg0,
|
uint8_t ch_center_freq_seg0,
|
||||||
uint8_t ch_center_freq_seg1,
|
uint8_t ch_center_freq_seg1,
|
||||||
@@ -313,18 +313,18 @@ void lim_update_sta_run_time_ht_capability(tpAniSirGlobal mac,
|
|||||||
tDot11fIEHTCaps *pHTCaps);
|
tDot11fIEHTCaps *pHTCaps);
|
||||||
void lim_update_sta_run_time_ht_info(struct mac_context *mac,
|
void lim_update_sta_run_time_ht_info(struct mac_context *mac,
|
||||||
tDot11fIEHTInfo *pRcvdHTInfo,
|
tDot11fIEHTInfo *pRcvdHTInfo,
|
||||||
struct pe_session *psessionEntry);
|
struct pe_session *pe_session);
|
||||||
void lim_cancel_dot11h_channel_switch(tpAniSirGlobal mac,
|
void lim_cancel_dot11h_channel_switch(tpAniSirGlobal mac,
|
||||||
struct pe_session *psessionEntry);
|
struct pe_session *pe_session);
|
||||||
bool lim_is_channel_valid_for_channel_switch(tpAniSirGlobal mac,
|
bool lim_is_channel_valid_for_channel_switch(tpAniSirGlobal mac,
|
||||||
uint8_t channel);
|
uint8_t channel);
|
||||||
QDF_STATUS lim_restore_pre_channel_switch_state(tpAniSirGlobal mac,
|
QDF_STATUS lim_restore_pre_channel_switch_state(tpAniSirGlobal mac,
|
||||||
struct pe_session *psessionEntry);
|
struct pe_session *pe_session);
|
||||||
|
|
||||||
void lim_prepare_for11h_channel_switch(tpAniSirGlobal mac,
|
void lim_prepare_for11h_channel_switch(tpAniSirGlobal mac,
|
||||||
struct pe_session *psessionEntry);
|
struct pe_session *pe_session);
|
||||||
void lim_switch_channel_cback(tpAniSirGlobal mac, QDF_STATUS status,
|
void lim_switch_channel_cback(tpAniSirGlobal mac, QDF_STATUS status,
|
||||||
uint32_t *data, struct pe_session *psessionEntry);
|
uint32_t *data, struct pe_session *pe_session);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* lim_get_session_by_macaddr() - api to find session based on MAC
|
* lim_get_session_by_macaddr() - api to find session based on MAC
|
||||||
@@ -353,11 +353,11 @@ static inline enum band_info lim_get_rf_band(uint8_t channel)
|
|||||||
|
|
||||||
static inline QDF_STATUS
|
static inline QDF_STATUS
|
||||||
lim_get_mgmt_staid(tpAniSirGlobal mac, uint16_t *staid,
|
lim_get_mgmt_staid(tpAniSirGlobal mac, uint16_t *staid,
|
||||||
struct pe_session *psessionEntry)
|
struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
if (LIM_IS_AP_ROLE(psessionEntry))
|
if (LIM_IS_AP_ROLE(pe_session))
|
||||||
*staid = 1;
|
*staid = 1;
|
||||||
else if (LIM_IS_STA_ROLE(psessionEntry))
|
else if (LIM_IS_STA_ROLE(pe_session))
|
||||||
*staid = 0;
|
*staid = 0;
|
||||||
else
|
else
|
||||||
return QDF_STATUS_E_FAILURE;
|
return QDF_STATUS_E_FAILURE;
|
||||||
@@ -384,7 +384,7 @@ is_entering_mimo_ps(tSirMacHTMIMOPowerSaveState curState,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static inline int lim_select_cb_mode(tDphHashNode *pStaDs,
|
static inline int lim_select_cb_mode(tDphHashNode *pStaDs,
|
||||||
struct pe_session *psessionEntry, uint8_t channel,
|
struct pe_session *pe_session, uint8_t channel,
|
||||||
uint8_t chan_bw)
|
uint8_t chan_bw)
|
||||||
{
|
{
|
||||||
if (pStaDs->mlmStaContext.vhtCapability && chan_bw) {
|
if (pStaDs->mlmStaContext.vhtCapability && chan_bw) {
|
||||||
@@ -425,9 +425,9 @@ static inline int lim_select_cb_mode(tDphHashNode *pStaDs,
|
|||||||
|
|
||||||
/* ANI peer station count management and associated actions */
|
/* ANI peer station count management and associated actions */
|
||||||
void lim_util_count_sta_add(tpAniSirGlobal mac, tpDphHashNode pSta,
|
void lim_util_count_sta_add(tpAniSirGlobal mac, tpDphHashNode pSta,
|
||||||
struct pe_session *psessionEntry);
|
struct pe_session *pe_session);
|
||||||
void lim_util_count_sta_del(tpAniSirGlobal mac, tpDphHashNode pSta,
|
void lim_util_count_sta_del(tpAniSirGlobal mac, tpDphHashNode pSta,
|
||||||
struct pe_session *psessionEntry);
|
struct pe_session *pe_session);
|
||||||
|
|
||||||
uint8_t lim_get_ht_capability(tpAniSirGlobal, uint32_t, struct pe_session *);
|
uint8_t lim_get_ht_capability(tpAniSirGlobal, uint32_t, struct pe_session *);
|
||||||
QDF_STATUS lim_tx_complete(void *context, qdf_nbuf_t buf, bool free);
|
QDF_STATUS lim_tx_complete(void *context, qdf_nbuf_t buf, bool free);
|
||||||
@@ -435,7 +435,7 @@ QDF_STATUS lim_tx_complete(void *context, qdf_nbuf_t buf, bool free);
|
|||||||
QDF_STATUS lim_validate_delts_req(tpAniSirGlobal mac,
|
QDF_STATUS lim_validate_delts_req(tpAniSirGlobal mac,
|
||||||
tpSirDeltsReq pDeltsReq,
|
tpSirDeltsReq pDeltsReq,
|
||||||
tSirMacAddr peerMacAddr,
|
tSirMacAddr peerMacAddr,
|
||||||
struct pe_session *psessionEntry);
|
struct pe_session *pe_session);
|
||||||
|
|
||||||
void lim_pkt_free(tpAniSirGlobal mac,
|
void lim_pkt_free(tpAniSirGlobal mac,
|
||||||
eFrameType frmType, uint8_t *pBD, void *body);
|
eFrameType frmType, uint8_t *pBD, void *body);
|
||||||
@@ -489,11 +489,11 @@ tSirNwType lim_get_nw_type(tpAniSirGlobal mac, uint8_t channelNum,
|
|||||||
uint32_t type, tpSchBeaconStruct pBeacon);
|
uint32_t type, tpSchBeaconStruct pBeacon);
|
||||||
|
|
||||||
void lim_set_tspec_uapsd_mask_per_session(tpAniSirGlobal mac,
|
void lim_set_tspec_uapsd_mask_per_session(tpAniSirGlobal mac,
|
||||||
struct pe_session *psessionEntry,
|
struct pe_session *pe_session,
|
||||||
tSirMacTSInfo *pTsInfo, uint32_t action);
|
tSirMacTSInfo *pTsInfo, uint32_t action);
|
||||||
|
|
||||||
void lim_handle_heart_beat_timeout_for_session(tpAniSirGlobal mac,
|
void lim_handle_heart_beat_timeout_for_session(tpAniSirGlobal mac,
|
||||||
struct pe_session *psessionEntry);
|
struct pe_session *pe_session);
|
||||||
|
|
||||||
void lim_process_add_sta_rsp(tpAniSirGlobal mac,
|
void lim_process_add_sta_rsp(tpAniSirGlobal mac,
|
||||||
struct scheduler_msg *pMsgQ);
|
struct scheduler_msg *pMsgQ);
|
||||||
@@ -502,14 +502,14 @@ void lim_update_beacon(tpAniSirGlobal mac);
|
|||||||
|
|
||||||
void lim_process_ap_mlm_add_sta_rsp(tpAniSirGlobal mac,
|
void lim_process_ap_mlm_add_sta_rsp(tpAniSirGlobal mac,
|
||||||
struct scheduler_msg *limMsgQ,
|
struct scheduler_msg *limMsgQ,
|
||||||
struct pe_session *psessionEntry);
|
struct pe_session *pe_session);
|
||||||
void lim_process_ap_mlm_del_bss_rsp(tpAniSirGlobal mac,
|
void lim_process_ap_mlm_del_bss_rsp(tpAniSirGlobal mac,
|
||||||
struct scheduler_msg *limMsgQ,
|
struct scheduler_msg *limMsgQ,
|
||||||
struct pe_session *psessionEntry);
|
struct pe_session *pe_session);
|
||||||
|
|
||||||
void lim_process_ap_mlm_del_sta_rsp(tpAniSirGlobal mac,
|
void lim_process_ap_mlm_del_sta_rsp(tpAniSirGlobal mac,
|
||||||
struct scheduler_msg *limMsgQ,
|
struct scheduler_msg *limMsgQ,
|
||||||
struct pe_session *psessionEntry);
|
struct pe_session *pe_session);
|
||||||
|
|
||||||
struct pe_session *lim_is_ibss_session_active(tpAniSirGlobal mac);
|
struct pe_session *lim_is_ibss_session_active(tpAniSirGlobal mac);
|
||||||
struct pe_session *lim_is_ap_session_active(tpAniSirGlobal mac);
|
struct pe_session *lim_is_ap_session_active(tpAniSirGlobal mac);
|
||||||
@@ -527,7 +527,7 @@ uint8_t lim_get_noa_attr_stream_in_mult_p2p_ies(tpAniSirGlobal mac,
|
|||||||
uint8_t *noaStream, uint8_t noaLen,
|
uint8_t *noaStream, uint8_t noaLen,
|
||||||
uint8_t overFlowLen);
|
uint8_t overFlowLen);
|
||||||
uint8_t lim_get_noa_attr_stream(tpAniSirGlobal mac, uint8_t *pNoaStream,
|
uint8_t lim_get_noa_attr_stream(tpAniSirGlobal mac, uint8_t *pNoaStream,
|
||||||
struct pe_session *psessionEntry);
|
struct pe_session *pe_session);
|
||||||
|
|
||||||
uint8_t lim_build_p2p_ie(tpAniSirGlobal mac, uint8_t *ie, uint8_t *data,
|
uint8_t lim_build_p2p_ie(tpAniSirGlobal mac, uint8_t *ie, uint8_t *data,
|
||||||
uint8_t ie_len);
|
uint8_t ie_len);
|
||||||
@@ -538,16 +538,16 @@ uint8_t lim_get_current_operating_channel(tpAniSirGlobal mac);
|
|||||||
uint32_t lim_get_max_rate_flags(tpAniSirGlobal mac_ctx, tpDphHashNode sta_ds);
|
uint32_t lim_get_max_rate_flags(tpAniSirGlobal mac_ctx, tpDphHashNode sta_ds);
|
||||||
|
|
||||||
bool lim_check_vht_op_mode_change(tpAniSirGlobal mac,
|
bool lim_check_vht_op_mode_change(tpAniSirGlobal mac,
|
||||||
struct pe_session *psessionEntry,
|
struct pe_session *pe_session,
|
||||||
uint8_t chanWidth, uint8_t staId,
|
uint8_t chanWidth, uint8_t staId,
|
||||||
uint8_t *peerMac);
|
uint8_t *peerMac);
|
||||||
#ifdef WLAN_FEATURE_11AX_BSS_COLOR
|
#ifdef WLAN_FEATURE_11AX_BSS_COLOR
|
||||||
bool lim_send_he_ie_update(tpAniSirGlobal mac_ctx, struct pe_session *pe_session);
|
bool lim_send_he_ie_update(tpAniSirGlobal mac_ctx, struct pe_session *pe_session);
|
||||||
#endif
|
#endif
|
||||||
bool lim_set_nss_change(tpAniSirGlobal mac, struct pe_session *psessionEntry,
|
bool lim_set_nss_change(tpAniSirGlobal mac, struct pe_session *pe_session,
|
||||||
uint8_t rxNss, uint8_t staId, uint8_t *peerMac);
|
uint8_t rxNss, uint8_t staId, uint8_t *peerMac);
|
||||||
bool lim_check_membership_user_position(tpAniSirGlobal mac,
|
bool lim_check_membership_user_position(tpAniSirGlobal mac,
|
||||||
struct pe_session *psessionEntry,
|
struct pe_session *pe_session,
|
||||||
uint32_t membership, uint32_t userPosition,
|
uint32_t membership, uint32_t userPosition,
|
||||||
uint8_t staId);
|
uint8_t staId);
|
||||||
|
|
||||||
@@ -653,7 +653,7 @@ typedef enum {
|
|||||||
|
|
||||||
#ifdef FEATURE_WLAN_DIAG_SUPPORT
|
#ifdef FEATURE_WLAN_DIAG_SUPPORT
|
||||||
void lim_diag_event_report(tpAniSirGlobal mac, uint16_t eventType,
|
void lim_diag_event_report(tpAniSirGlobal mac, uint16_t eventType,
|
||||||
struct pe_session *pSessionEntry, uint16_t status,
|
struct pe_session *pe_session, uint16_t status,
|
||||||
uint16_t reasonCode);
|
uint16_t reasonCode);
|
||||||
/**
|
/**
|
||||||
* lim_diag_mgmt_tx_event_report() - to log TX event to external application
|
* lim_diag_mgmt_tx_event_report() - to log TX event to external application
|
||||||
@@ -691,7 +691,7 @@ void lim_diag_mgmt_rx_event_report(tpAniSirGlobal mac_ctx, void *mgmt_hdr,
|
|||||||
uint16_t reason_code);
|
uint16_t reason_code);
|
||||||
#else
|
#else
|
||||||
static inline void lim_diag_event_report(tpAniSirGlobal mac, uint16_t
|
static inline void lim_diag_event_report(tpAniSirGlobal mac, uint16_t
|
||||||
eventType, struct pe_session *pSessionEntry, uint16_t status,
|
eventType, struct pe_session *pe_session, uint16_t status,
|
||||||
uint16_t reasonCode) {}
|
uint16_t reasonCode) {}
|
||||||
static inline
|
static inline
|
||||||
void lim_diag_mgmt_tx_event_report(tpAniSirGlobal mac_ctx, void *mgmt_hdr,
|
void lim_diag_mgmt_tx_event_report(tpAniSirGlobal mac_ctx, void *mgmt_hdr,
|
||||||
@@ -707,7 +707,7 @@ void pe_set_resume_channel(tpAniSirGlobal mac, uint16_t channel,
|
|||||||
ePhyChanBondState cbState);
|
ePhyChanBondState cbState);
|
||||||
|
|
||||||
void lim_get_short_slot_from_phy_mode(tpAniSirGlobal mac,
|
void lim_get_short_slot_from_phy_mode(tpAniSirGlobal mac,
|
||||||
struct pe_session *psessionEntry,
|
struct pe_session *pe_session,
|
||||||
uint32_t phyMode, uint8_t *pShortSlotEnable);
|
uint32_t phyMode, uint8_t *pShortSlotEnable);
|
||||||
|
|
||||||
void lim_clean_up_disassoc_deauth_req(tpAniSirGlobal mac, uint8_t *staMac,
|
void lim_clean_up_disassoc_deauth_req(tpAniSirGlobal mac, uint8_t *staMac,
|
||||||
@@ -720,11 +720,11 @@ bool lim_check_disassoc_deauth_ack_pending(tpAniSirGlobal mac,
|
|||||||
void lim_pmf_sa_query_timer_handler(void *pMacGlobal, uint32_t param);
|
void lim_pmf_sa_query_timer_handler(void *pMacGlobal, uint32_t param);
|
||||||
void lim_pmf_comeback_timer_callback(void *context);
|
void lim_pmf_comeback_timer_callback(void *context);
|
||||||
void lim_set_protected_bit(tpAniSirGlobal mac,
|
void lim_set_protected_bit(tpAniSirGlobal mac,
|
||||||
struct pe_session *psessionEntry,
|
struct pe_session *pe_session,
|
||||||
tSirMacAddr peer, tpSirMacMgmtHdr pMacHdr);
|
tSirMacAddr peer, tpSirMacMgmtHdr pMacHdr);
|
||||||
#else
|
#else
|
||||||
static inline void lim_set_protected_bit(tpAniSirGlobal mac,
|
static inline void lim_set_protected_bit(tpAniSirGlobal mac,
|
||||||
struct pe_session *psessionEntry,
|
struct pe_session *pe_session,
|
||||||
tSirMacAddr peer, tpSirMacMgmtHdr pMacHdr) {}
|
tSirMacAddr peer, tpSirMacMgmtHdr pMacHdr) {}
|
||||||
#endif /* WLAN_FEATURE_11W */
|
#endif /* WLAN_FEATURE_11W */
|
||||||
|
|
||||||
|
|||||||
@@ -76,19 +76,19 @@ rrm_get_min_of_max_tx_power(tpAniSirGlobal mac,
|
|||||||
*
|
*
|
||||||
* NOTE:
|
* NOTE:
|
||||||
*
|
*
|
||||||
* @param pSessionEntry session entry.
|
* @param pe_session session entry.
|
||||||
* @return None
|
* @return None
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
rrm_cache_mgmt_tx_power(tpAniSirGlobal mac, int8_t txPower,
|
rrm_cache_mgmt_tx_power(tpAniSirGlobal mac, int8_t txPower,
|
||||||
struct pe_session *pSessionEntry)
|
struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
pe_debug("Cache Mgmt Tx Power: %d", txPower);
|
pe_debug("Cache Mgmt Tx Power: %d", txPower);
|
||||||
|
|
||||||
if (pSessionEntry == NULL)
|
if (pe_session == NULL)
|
||||||
mac->rrm.rrmPEContext.txMgmtPower = txPower;
|
mac->rrm.rrmPEContext.txMgmtPower = txPower;
|
||||||
else
|
else
|
||||||
pSessionEntry->txMgmtPower = txPower;
|
pe_session->txMgmtPower = txPower;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------------------------------- */
|
/* -------------------------------------------------------------------- */
|
||||||
@@ -103,17 +103,17 @@ rrm_cache_mgmt_tx_power(tpAniSirGlobal mac, int8_t txPower,
|
|||||||
*
|
*
|
||||||
* NOTE:
|
* NOTE:
|
||||||
*
|
*
|
||||||
* @param pSessionEntry session entry.
|
* @param pe_session session entry.
|
||||||
* @return txPower
|
* @return txPower
|
||||||
*/
|
*/
|
||||||
int8_t rrm_get_mgmt_tx_power(tpAniSirGlobal mac, struct pe_session *pSessionEntry)
|
int8_t rrm_get_mgmt_tx_power(tpAniSirGlobal mac, struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
if (pSessionEntry == NULL)
|
if (pe_session == NULL)
|
||||||
return mac->rrm.rrmPEContext.txMgmtPower;
|
return mac->rrm.rrmPEContext.txMgmtPower;
|
||||||
|
|
||||||
pe_debug("tx mgmt pwr %d", pSessionEntry->txMgmtPower);
|
pe_debug("tx mgmt pwr %d", pe_session->txMgmtPower);
|
||||||
|
|
||||||
return pSessionEntry->txMgmtPower;
|
return pe_session->txMgmtPower;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------------------------------- */
|
/* -------------------------------------------------------------------- */
|
||||||
@@ -129,18 +129,18 @@ int8_t rrm_get_mgmt_tx_power(tpAniSirGlobal mac, struct pe_session *pSessionEntr
|
|||||||
* NOTE:
|
* NOTE:
|
||||||
*
|
*
|
||||||
* @param txPower txPower to be set.
|
* @param txPower txPower to be set.
|
||||||
* @param pSessionEntry session entry.
|
* @param pe_session session entry.
|
||||||
* @return None
|
* @return None
|
||||||
*/
|
*/
|
||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
rrm_send_set_max_tx_power_req(tpAniSirGlobal mac, int8_t txPower,
|
rrm_send_set_max_tx_power_req(tpAniSirGlobal mac, int8_t txPower,
|
||||||
struct pe_session *pSessionEntry)
|
struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
tpMaxTxPowerParams pMaxTxParams;
|
tpMaxTxPowerParams pMaxTxParams;
|
||||||
QDF_STATUS retCode = QDF_STATUS_SUCCESS;
|
QDF_STATUS retCode = QDF_STATUS_SUCCESS;
|
||||||
struct scheduler_msg msgQ = {0};
|
struct scheduler_msg msgQ = {0};
|
||||||
|
|
||||||
if (pSessionEntry == NULL) {
|
if (pe_session == NULL) {
|
||||||
pe_err("Invalid parameters");
|
pe_err("Invalid parameters");
|
||||||
return QDF_STATUS_E_FAILURE;
|
return QDF_STATUS_E_FAILURE;
|
||||||
}
|
}
|
||||||
@@ -149,10 +149,10 @@ rrm_send_set_max_tx_power_req(tpAniSirGlobal mac, int8_t txPower,
|
|||||||
return QDF_STATUS_E_NOMEM;
|
return QDF_STATUS_E_NOMEM;
|
||||||
/* Allocated memory for pMaxTxParams...will be freed in other module */
|
/* Allocated memory for pMaxTxParams...will be freed in other module */
|
||||||
pMaxTxParams->power = txPower;
|
pMaxTxParams->power = txPower;
|
||||||
qdf_mem_copy(pMaxTxParams->bssId.bytes, pSessionEntry->bssId,
|
qdf_mem_copy(pMaxTxParams->bssId.bytes, pe_session->bssId,
|
||||||
QDF_MAC_ADDR_SIZE);
|
QDF_MAC_ADDR_SIZE);
|
||||||
qdf_mem_copy(pMaxTxParams->selfStaMacAddr.bytes,
|
qdf_mem_copy(pMaxTxParams->selfStaMacAddr.bytes,
|
||||||
pSessionEntry->selfMacAddr,
|
pe_session->selfMacAddr,
|
||||||
QDF_MAC_ADDR_SIZE);
|
QDF_MAC_ADDR_SIZE);
|
||||||
|
|
||||||
msgQ.type = WMA_SET_MAX_TX_POWER_REQ;
|
msgQ.type = WMA_SET_MAX_TX_POWER_REQ;
|
||||||
@@ -163,7 +163,7 @@ rrm_send_set_max_tx_power_req(tpAniSirGlobal mac, int8_t txPower,
|
|||||||
pe_debug("Sending WMA_SET_MAX_TX_POWER_REQ with power(%d) to HAL",
|
pe_debug("Sending WMA_SET_MAX_TX_POWER_REQ with power(%d) to HAL",
|
||||||
txPower);
|
txPower);
|
||||||
|
|
||||||
MTRACE(mac_trace_msg_tx(mac, pSessionEntry->peSessionId, msgQ.type));
|
MTRACE(mac_trace_msg_tx(mac, pe_session->peSessionId, msgQ.type));
|
||||||
retCode = wma_post_ctrl_msg(mac, &msgQ);
|
retCode = wma_post_ctrl_msg(mac, &msgQ);
|
||||||
if (QDF_STATUS_SUCCESS != retCode) {
|
if (QDF_STATUS_SUCCESS != retCode) {
|
||||||
pe_err("Posting WMA_SET_MAX_TX_POWER_REQ to HAL failed, reason=%X",
|
pe_err("Posting WMA_SET_MAX_TX_POWER_REQ to HAL failed, reason=%X",
|
||||||
@@ -187,7 +187,7 @@ rrm_send_set_max_tx_power_req(tpAniSirGlobal mac, int8_t txPower,
|
|||||||
* NOTE:
|
* NOTE:
|
||||||
*
|
*
|
||||||
* @param txPower txPower to be set.
|
* @param txPower txPower to be set.
|
||||||
* @param pSessionEntry session entry.
|
* @param pe_session session entry.
|
||||||
* @return None
|
* @return None
|
||||||
*/
|
*/
|
||||||
QDF_STATUS rrm_set_max_tx_power_rsp(tpAniSirGlobal mac,
|
QDF_STATUS rrm_set_max_tx_power_rsp(tpAniSirGlobal mac,
|
||||||
@@ -195,26 +195,26 @@ QDF_STATUS rrm_set_max_tx_power_rsp(tpAniSirGlobal mac,
|
|||||||
{
|
{
|
||||||
QDF_STATUS retCode = QDF_STATUS_SUCCESS;
|
QDF_STATUS retCode = QDF_STATUS_SUCCESS;
|
||||||
tpMaxTxPowerParams pMaxTxParams = (tpMaxTxPowerParams) limMsgQ->bodyptr;
|
tpMaxTxPowerParams pMaxTxParams = (tpMaxTxPowerParams) limMsgQ->bodyptr;
|
||||||
struct pe_session *pSessionEntry;
|
struct pe_session *pe_session;
|
||||||
uint8_t sessionId, i;
|
uint8_t sessionId, i;
|
||||||
|
|
||||||
if (qdf_is_macaddr_broadcast(&pMaxTxParams->bssId)) {
|
if (qdf_is_macaddr_broadcast(&pMaxTxParams->bssId)) {
|
||||||
for (i = 0; i < mac->lim.maxBssId; i++) {
|
for (i = 0; i < mac->lim.maxBssId; i++) {
|
||||||
if (mac->lim.gpSession[i].valid == true) {
|
if (mac->lim.gpSession[i].valid == true) {
|
||||||
pSessionEntry = &mac->lim.gpSession[i];
|
pe_session = &mac->lim.gpSession[i];
|
||||||
rrm_cache_mgmt_tx_power(mac, pMaxTxParams->power,
|
rrm_cache_mgmt_tx_power(mac, pMaxTxParams->power,
|
||||||
pSessionEntry);
|
pe_session);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
pSessionEntry = pe_find_session_by_bssid(mac,
|
pe_session = pe_find_session_by_bssid(mac,
|
||||||
pMaxTxParams->bssId.bytes,
|
pMaxTxParams->bssId.bytes,
|
||||||
&sessionId);
|
&sessionId);
|
||||||
if (pSessionEntry == NULL) {
|
if (pe_session == NULL) {
|
||||||
retCode = QDF_STATUS_E_FAILURE;
|
retCode = QDF_STATUS_E_FAILURE;
|
||||||
} else {
|
} else {
|
||||||
rrm_cache_mgmt_tx_power(mac, pMaxTxParams->power,
|
rrm_cache_mgmt_tx_power(mac, pMaxTxParams->power,
|
||||||
pSessionEntry);
|
pe_session);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -237,14 +237,14 @@ QDF_STATUS rrm_set_max_tx_power_rsp(tpAniSirGlobal mac,
|
|||||||
*
|
*
|
||||||
* @param pBd pointer to BD to extract RSSI and SNR
|
* @param pBd pointer to BD to extract RSSI and SNR
|
||||||
* @param pLinkReq pointer to the Link request frame structure.
|
* @param pLinkReq pointer to the Link request frame structure.
|
||||||
* @param pSessionEntry session entry.
|
* @param pe_session session entry.
|
||||||
* @return None
|
* @return None
|
||||||
*/
|
*/
|
||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
rrm_process_link_measurement_request(tpAniSirGlobal mac,
|
rrm_process_link_measurement_request(tpAniSirGlobal mac,
|
||||||
uint8_t *pRxPacketInfo,
|
uint8_t *pRxPacketInfo,
|
||||||
tDot11fLinkMeasurementRequest *pLinkReq,
|
tDot11fLinkMeasurementRequest *pLinkReq,
|
||||||
struct pe_session *pSessionEntry)
|
struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
tSirMacLinkReport LinkReport;
|
tSirMacLinkReport LinkReport;
|
||||||
tpSirMacMgmtHdr pHdr;
|
tpSirMacMgmtHdr pHdr;
|
||||||
@@ -252,27 +252,27 @@ rrm_process_link_measurement_request(tpAniSirGlobal mac,
|
|||||||
|
|
||||||
pe_debug("Received Link measurement request");
|
pe_debug("Received Link measurement request");
|
||||||
|
|
||||||
if (pRxPacketInfo == NULL || pLinkReq == NULL || pSessionEntry == NULL) {
|
if (pRxPacketInfo == NULL || pLinkReq == NULL || pe_session == NULL) {
|
||||||
pe_err("Invalid parameters - Ignoring the request");
|
pe_err("Invalid parameters - Ignoring the request");
|
||||||
return QDF_STATUS_E_FAILURE;
|
return QDF_STATUS_E_FAILURE;
|
||||||
}
|
}
|
||||||
pHdr = WMA_GET_RX_MAC_HEADER(pRxPacketInfo);
|
pHdr = WMA_GET_RX_MAC_HEADER(pRxPacketInfo);
|
||||||
|
|
||||||
LinkReport.txPower = lim_get_max_tx_power(pSessionEntry->def_max_tx_pwr,
|
LinkReport.txPower = lim_get_max_tx_power(pe_session->def_max_tx_pwr,
|
||||||
pLinkReq->MaxTxPower.maxTxPower,
|
pLinkReq->MaxTxPower.maxTxPower,
|
||||||
mac->roam.configParam.
|
mac->roam.configParam.
|
||||||
nTxPowerCap);
|
nTxPowerCap);
|
||||||
|
|
||||||
if ((LinkReport.txPower != (uint8_t) (pSessionEntry->maxTxPower)) &&
|
if ((LinkReport.txPower != (uint8_t) (pe_session->maxTxPower)) &&
|
||||||
(QDF_STATUS_SUCCESS == rrm_send_set_max_tx_power_req(mac,
|
(QDF_STATUS_SUCCESS == rrm_send_set_max_tx_power_req(mac,
|
||||||
LinkReport.txPower,
|
LinkReport.txPower,
|
||||||
pSessionEntry))) {
|
pe_session))) {
|
||||||
pe_warn("maxTx power in link report is not same as local..."
|
pe_warn("maxTx power in link report is not same as local..."
|
||||||
" Local: %d Link Request TxPower: %d"
|
" Local: %d Link Request TxPower: %d"
|
||||||
" Link Report TxPower: %d",
|
" Link Report TxPower: %d",
|
||||||
pSessionEntry->maxTxPower, LinkReport.txPower,
|
pe_session->maxTxPower, LinkReport.txPower,
|
||||||
pLinkReq->MaxTxPower.maxTxPower);
|
pLinkReq->MaxTxPower.maxTxPower);
|
||||||
pSessionEntry->maxTxPower =
|
pe_session->maxTxPower =
|
||||||
LinkReport.txPower;
|
LinkReport.txPower;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -296,7 +296,7 @@ rrm_process_link_measurement_request(tpAniSirGlobal mac,
|
|||||||
pe_debug("Sending Link report frame");
|
pe_debug("Sending Link report frame");
|
||||||
|
|
||||||
return lim_send_link_report_action_frame(mac, &LinkReport, pHdr->sa,
|
return lim_send_link_report_action_frame(mac, &LinkReport, pHdr->sa,
|
||||||
pSessionEntry);
|
pe_session);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------------------------------- */
|
/* -------------------------------------------------------------------- */
|
||||||
@@ -312,13 +312,13 @@ rrm_process_link_measurement_request(tpAniSirGlobal mac,
|
|||||||
* NOTE:
|
* NOTE:
|
||||||
*
|
*
|
||||||
* @param pNeighborRep pointer to the Neighbor report frame structure.
|
* @param pNeighborRep pointer to the Neighbor report frame structure.
|
||||||
* @param pSessionEntry session entry.
|
* @param pe_session session entry.
|
||||||
* @return None
|
* @return None
|
||||||
*/
|
*/
|
||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
rrm_process_neighbor_report_response(tpAniSirGlobal mac,
|
rrm_process_neighbor_report_response(tpAniSirGlobal mac,
|
||||||
tDot11fNeighborReportResponse *pNeighborRep,
|
tDot11fNeighborReportResponse *pNeighborRep,
|
||||||
struct pe_session *pSessionEntry)
|
struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
QDF_STATUS status = QDF_STATUS_E_FAILURE;
|
QDF_STATUS status = QDF_STATUS_E_FAILURE;
|
||||||
tpSirNeighborReportInd pSmeNeighborRpt = NULL;
|
tpSirNeighborReportInd pSmeNeighborRpt = NULL;
|
||||||
@@ -326,7 +326,7 @@ rrm_process_neighbor_report_response(tpAniSirGlobal mac,
|
|||||||
uint8_t i;
|
uint8_t i;
|
||||||
struct scheduler_msg mmhMsg = {0};
|
struct scheduler_msg mmhMsg = {0};
|
||||||
|
|
||||||
if (pNeighborRep == NULL || pSessionEntry == NULL) {
|
if (pNeighborRep == NULL || pe_session == NULL) {
|
||||||
pe_err("Invalid parameters");
|
pe_err("Invalid parameters");
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
@@ -401,16 +401,16 @@ rrm_process_neighbor_report_response(tpAniSirGlobal mac,
|
|||||||
|
|
||||||
pSmeNeighborRpt->messageType = eWNI_SME_NEIGHBOR_REPORT_IND;
|
pSmeNeighborRpt->messageType = eWNI_SME_NEIGHBOR_REPORT_IND;
|
||||||
pSmeNeighborRpt->length = length;
|
pSmeNeighborRpt->length = length;
|
||||||
pSmeNeighborRpt->sessionId = pSessionEntry->smeSessionId;
|
pSmeNeighborRpt->sessionId = pe_session->smeSessionId;
|
||||||
pSmeNeighborRpt->numNeighborReports = pNeighborRep->num_NeighborReport;
|
pSmeNeighborRpt->numNeighborReports = pNeighborRep->num_NeighborReport;
|
||||||
qdf_mem_copy(pSmeNeighborRpt->bssId, pSessionEntry->bssId,
|
qdf_mem_copy(pSmeNeighborRpt->bssId, pe_session->bssId,
|
||||||
sizeof(tSirMacAddr));
|
sizeof(tSirMacAddr));
|
||||||
|
|
||||||
/* Send request to SME. */
|
/* Send request to SME. */
|
||||||
mmhMsg.type = pSmeNeighborRpt->messageType;
|
mmhMsg.type = pSmeNeighborRpt->messageType;
|
||||||
mmhMsg.bodyptr = pSmeNeighborRpt;
|
mmhMsg.bodyptr = pSmeNeighborRpt;
|
||||||
MTRACE(mac_trace(mac, TRACE_CODE_TX_SME_MSG,
|
MTRACE(mac_trace(mac, TRACE_CODE_TX_SME_MSG,
|
||||||
pSessionEntry->peSessionId, mmhMsg.type));
|
pe_session->peSessionId, mmhMsg.type));
|
||||||
status = lim_sys_process_mmh_msg_api(mac, &mmhMsg, ePROT);
|
status = lim_sys_process_mmh_msg_api(mac, &mmhMsg, ePROT);
|
||||||
|
|
||||||
return status;
|
return status;
|
||||||
@@ -438,16 +438,16 @@ rrm_process_neighbor_report_req(tpAniSirGlobal mac,
|
|||||||
{
|
{
|
||||||
QDF_STATUS status = QDF_STATUS_SUCCESS;
|
QDF_STATUS status = QDF_STATUS_SUCCESS;
|
||||||
tSirMacNeighborReportReq NeighborReportReq;
|
tSirMacNeighborReportReq NeighborReportReq;
|
||||||
struct pe_session *pSessionEntry;
|
struct pe_session *pe_session;
|
||||||
uint8_t sessionId;
|
uint8_t sessionId;
|
||||||
|
|
||||||
if (pNeighborReq == NULL) {
|
if (pNeighborReq == NULL) {
|
||||||
pe_err("NeighborReq is NULL");
|
pe_err("NeighborReq is NULL");
|
||||||
return QDF_STATUS_E_FAILURE;
|
return QDF_STATUS_E_FAILURE;
|
||||||
}
|
}
|
||||||
pSessionEntry = pe_find_session_by_bssid(mac, pNeighborReq->bssId,
|
pe_session = pe_find_session_by_bssid(mac, pNeighborReq->bssId,
|
||||||
&sessionId);
|
&sessionId);
|
||||||
if (pSessionEntry == NULL) {
|
if (pe_session == NULL) {
|
||||||
pe_err("session does not exist for given bssId");
|
pe_err("session does not exist for given bssId");
|
||||||
return QDF_STATUS_E_FAILURE;
|
return QDF_STATUS_E_FAILURE;
|
||||||
}
|
}
|
||||||
@@ -470,7 +470,7 @@ rrm_process_neighbor_report_req(tpAniSirGlobal mac,
|
|||||||
status =
|
status =
|
||||||
lim_send_neighbor_report_request_frame(mac, &NeighborReportReq,
|
lim_send_neighbor_report_request_frame(mac, &NeighborReportReq,
|
||||||
pNeighborReq->bssId,
|
pNeighborReq->bssId,
|
||||||
pSessionEntry);
|
pe_session);
|
||||||
|
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
@@ -490,14 +490,14 @@ rrm_process_neighbor_report_req(tpAniSirGlobal mac,
|
|||||||
*
|
*
|
||||||
* @param pCurrentReq pointer to the current Req comtext.
|
* @param pCurrentReq pointer to the current Req comtext.
|
||||||
* @param pBeaconReq pointer to the beacon report request IE from the peer.
|
* @param pBeaconReq pointer to the beacon report request IE from the peer.
|
||||||
* @param pSessionEntry session entry.
|
* @param pe_session session entry.
|
||||||
* @return None
|
* @return None
|
||||||
*/
|
*/
|
||||||
static tRrmRetStatus
|
static tRrmRetStatus
|
||||||
rrm_process_beacon_report_req(tpAniSirGlobal mac,
|
rrm_process_beacon_report_req(tpAniSirGlobal mac,
|
||||||
tpRRMReq pCurrentReq,
|
tpRRMReq pCurrentReq,
|
||||||
tDot11fIEMeasurementRequest *pBeaconReq,
|
tDot11fIEMeasurementRequest *pBeaconReq,
|
||||||
struct pe_session *pSessionEntry)
|
struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
struct scheduler_msg mmhMsg = {0};
|
struct scheduler_msg mmhMsg = {0};
|
||||||
tpSirBeaconReportReqInd pSmeBcnReportReq;
|
tpSirBeaconReportReqInd pSmeBcnReportReq;
|
||||||
@@ -533,10 +533,10 @@ rrm_process_beacon_report_req(tpAniSirGlobal mac,
|
|||||||
maxDuration = (1L << ABS(maxDuration));
|
maxDuration = (1L << ABS(maxDuration));
|
||||||
if (!sign)
|
if (!sign)
|
||||||
maxMeasduration =
|
maxMeasduration =
|
||||||
maxDuration * pSessionEntry->beaconParams.beaconInterval;
|
maxDuration * pe_session->beaconParams.beaconInterval;
|
||||||
else
|
else
|
||||||
maxMeasduration =
|
maxMeasduration =
|
||||||
pSessionEntry->beaconParams.beaconInterval / maxDuration;
|
pe_session->beaconParams.beaconInterval / maxDuration;
|
||||||
|
|
||||||
measDuration = pBeaconReq->measurement_request.Beacon.meas_duration;
|
measDuration = pBeaconReq->measurement_request.Beacon.meas_duration;
|
||||||
|
|
||||||
@@ -600,7 +600,7 @@ rrm_process_beacon_report_req(tpAniSirGlobal mac,
|
|||||||
return eRRM_FAILURE;
|
return eRRM_FAILURE;
|
||||||
|
|
||||||
/* Allocated memory for pSmeBcnReportReq....will be freed by other modulea */
|
/* Allocated memory for pSmeBcnReportReq....will be freed by other modulea */
|
||||||
qdf_mem_copy(pSmeBcnReportReq->bssId, pSessionEntry->bssId,
|
qdf_mem_copy(pSmeBcnReportReq->bssId, pe_session->bssId,
|
||||||
sizeof(tSirMacAddr));
|
sizeof(tSirMacAddr));
|
||||||
pSmeBcnReportReq->messageType = eWNI_SME_BEACON_REPORT_REQ_IND;
|
pSmeBcnReportReq->messageType = eWNI_SME_BEACON_REPORT_REQ_IND;
|
||||||
pSmeBcnReportReq->length = sizeof(tSirBeaconReportReqInd);
|
pSmeBcnReportReq->length = sizeof(tSirBeaconReportReqInd);
|
||||||
@@ -657,7 +657,7 @@ rrm_process_beacon_report_req(tpAniSirGlobal mac,
|
|||||||
mmhMsg.type = eWNI_SME_BEACON_REPORT_REQ_IND;
|
mmhMsg.type = eWNI_SME_BEACON_REPORT_REQ_IND;
|
||||||
mmhMsg.bodyptr = pSmeBcnReportReq;
|
mmhMsg.bodyptr = pSmeBcnReportReq;
|
||||||
MTRACE(mac_trace(mac, TRACE_CODE_TX_SME_MSG,
|
MTRACE(mac_trace(mac, TRACE_CODE_TX_SME_MSG,
|
||||||
pSessionEntry->peSessionId, mmhMsg.type));
|
pe_session->peSessionId, mmhMsg.type));
|
||||||
if (QDF_STATUS_SUCCESS !=
|
if (QDF_STATUS_SUCCESS !=
|
||||||
lim_sys_process_mmh_msg_api(mac, &mmhMsg, ePROT))
|
lim_sys_process_mmh_msg_api(mac, &mmhMsg, ePROT))
|
||||||
return eRRM_FAILURE;
|
return eRRM_FAILURE;
|
||||||
@@ -1004,7 +1004,7 @@ end:
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void rrm_process_beacon_request_failure(tpAniSirGlobal mac,
|
static void rrm_process_beacon_request_failure(tpAniSirGlobal mac,
|
||||||
struct pe_session *pSessionEntry,
|
struct pe_session *pe_session,
|
||||||
tSirMacAddr peer,
|
tSirMacAddr peer,
|
||||||
tRrmRetStatus status)
|
tRrmRetStatus status)
|
||||||
{
|
{
|
||||||
@@ -1037,7 +1037,7 @@ static void rrm_process_beacon_request_failure(tpAniSirGlobal mac,
|
|||||||
pCurrentReq->dialog_token,
|
pCurrentReq->dialog_token,
|
||||||
1, true,
|
1, true,
|
||||||
pReport, peer,
|
pReport, peer,
|
||||||
pSessionEntry);
|
pe_session);
|
||||||
|
|
||||||
qdf_mem_free(pReport);
|
qdf_mem_free(pReport);
|
||||||
return;
|
return;
|
||||||
@@ -1297,10 +1297,10 @@ void rrm_get_start_tsf(tpAniSirGlobal mac, uint32_t *pStartTSF)
|
|||||||
*
|
*
|
||||||
* NOTE:
|
* NOTE:
|
||||||
*
|
*
|
||||||
* @param pSessionEntry
|
* @param pe_session
|
||||||
* @return pointer to tRRMCaps
|
* @return pointer to tRRMCaps
|
||||||
*/
|
*/
|
||||||
tpRRMCaps rrm_get_capabilities(tpAniSirGlobal mac, struct pe_session *pSessionEntry)
|
tpRRMCaps rrm_get_capabilities(tpAniSirGlobal mac, struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
return &mac->rrm.rrmPEContext.rrmEnabledCaps;
|
return &mac->rrm.rrmPEContext.rrmEnabledCaps;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -77,7 +77,7 @@ QDF_STATUS sch_post_message(tpAniSirGlobal mac, struct scheduler_msg *pMsg)
|
|||||||
}
|
}
|
||||||
|
|
||||||
QDF_STATUS sch_send_beacon_req(tpAniSirGlobal mac, uint8_t *beaconPayload,
|
QDF_STATUS sch_send_beacon_req(tpAniSirGlobal mac, uint8_t *beaconPayload,
|
||||||
uint16_t size, struct pe_session *psessionEntry,
|
uint16_t size, struct pe_session *pe_session,
|
||||||
enum sir_bcn_update_reason reason)
|
enum sir_bcn_update_reason reason)
|
||||||
{
|
{
|
||||||
struct scheduler_msg msgQ = {0};
|
struct scheduler_msg msgQ = {0};
|
||||||
@@ -87,11 +87,11 @@ QDF_STATUS sch_send_beacon_req(tpAniSirGlobal mac, uint8_t *beaconPayload,
|
|||||||
pe_debug("Indicating HAL to copy the beacon template [%d bytes] to memory, reason %d",
|
pe_debug("Indicating HAL to copy the beacon template [%d bytes] to memory, reason %d",
|
||||||
size, reason);
|
size, reason);
|
||||||
|
|
||||||
if (LIM_IS_AP_ROLE(psessionEntry) &&
|
if (LIM_IS_AP_ROLE(pe_session) &&
|
||||||
(mac->sch.schObject.fBeaconChanged)) {
|
(mac->sch.schObject.fBeaconChanged)) {
|
||||||
retCode = lim_send_probe_rsp_template_to_hal(mac,
|
retCode = lim_send_probe_rsp_template_to_hal(mac,
|
||||||
psessionEntry,
|
pe_session,
|
||||||
&psessionEntry->DefProbeRspIeBitmap[0]);
|
&pe_session->DefProbeRspIeBitmap[0]);
|
||||||
if (QDF_STATUS_SUCCESS != retCode)
|
if (QDF_STATUS_SUCCESS != retCode)
|
||||||
pe_err("FAILED to send probe response template with retCode %d",
|
pe_err("FAILED to send probe response template with retCode %d",
|
||||||
retCode);
|
retCode);
|
||||||
@@ -107,14 +107,14 @@ QDF_STATUS sch_send_beacon_req(tpAniSirGlobal mac, uint8_t *beaconPayload,
|
|||||||
msgQ.reserved = 0;
|
msgQ.reserved = 0;
|
||||||
|
|
||||||
/* Fill in tSendbeaconParams members */
|
/* Fill in tSendbeaconParams members */
|
||||||
qdf_mem_copy(beaconParams->bssId, psessionEntry->bssId,
|
qdf_mem_copy(beaconParams->bssId, pe_session->bssId,
|
||||||
sizeof(psessionEntry->bssId));
|
sizeof(pe_session->bssId));
|
||||||
|
|
||||||
if (LIM_IS_IBSS_ROLE(psessionEntry)) {
|
if (LIM_IS_IBSS_ROLE(pe_session)) {
|
||||||
beaconParams->timIeOffset = 0;
|
beaconParams->timIeOffset = 0;
|
||||||
} else {
|
} else {
|
||||||
beaconParams->timIeOffset = psessionEntry->schBeaconOffsetBegin;
|
beaconParams->timIeOffset = pe_session->schBeaconOffsetBegin;
|
||||||
if (psessionEntry->dfsIncludeChanSwIe) {
|
if (pe_session->dfsIncludeChanSwIe) {
|
||||||
beaconParams->csa_count_offset =
|
beaconParams->csa_count_offset =
|
||||||
mac->sch.schObject.csa_count_offset;
|
mac->sch.schObject.csa_count_offset;
|
||||||
beaconParams->ecsa_count_offset =
|
beaconParams->ecsa_count_offset =
|
||||||
@@ -125,13 +125,13 @@ QDF_STATUS sch_send_beacon_req(tpAniSirGlobal mac, uint8_t *beaconPayload,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
beaconParams->vdev_id = psessionEntry->smeSessionId;
|
beaconParams->vdev_id = pe_session->smeSessionId;
|
||||||
beaconParams->reason = reason;
|
beaconParams->reason = reason;
|
||||||
|
|
||||||
/* p2pIeOffset should be atleast greater than timIeOffset */
|
/* p2pIeOffset should be atleast greater than timIeOffset */
|
||||||
if ((mac->sch.schObject.p2pIeOffset != 0) &&
|
if ((mac->sch.schObject.p2pIeOffset != 0) &&
|
||||||
(mac->sch.schObject.p2pIeOffset <
|
(mac->sch.schObject.p2pIeOffset <
|
||||||
psessionEntry->schBeaconOffsetBegin)) {
|
pe_session->schBeaconOffsetBegin)) {
|
||||||
pe_err("Invalid p2pIeOffset:[%d]",
|
pe_err("Invalid p2pIeOffset:[%d]",
|
||||||
mac->sch.schObject.p2pIeOffset);
|
mac->sch.schObject.p2pIeOffset);
|
||||||
QDF_ASSERT(0);
|
QDF_ASSERT(0);
|
||||||
@@ -159,20 +159,20 @@ QDF_STATUS sch_send_beacon_req(tpAniSirGlobal mac, uint8_t *beaconPayload,
|
|||||||
/* Keep a copy of recent beacon frame sent */
|
/* Keep a copy of recent beacon frame sent */
|
||||||
|
|
||||||
/* free previous copy of the beacon */
|
/* free previous copy of the beacon */
|
||||||
if (psessionEntry->beacon) {
|
if (pe_session->beacon) {
|
||||||
qdf_mem_free(psessionEntry->beacon);
|
qdf_mem_free(pe_session->beacon);
|
||||||
}
|
}
|
||||||
|
|
||||||
psessionEntry->bcnLen = 0;
|
pe_session->bcnLen = 0;
|
||||||
psessionEntry->beacon = NULL;
|
pe_session->beacon = NULL;
|
||||||
|
|
||||||
psessionEntry->beacon = qdf_mem_malloc(size);
|
pe_session->beacon = qdf_mem_malloc(size);
|
||||||
if (psessionEntry->beacon != NULL) {
|
if (pe_session->beacon != NULL) {
|
||||||
qdf_mem_copy(psessionEntry->beacon, beaconPayload, size);
|
qdf_mem_copy(pe_session->beacon, beaconPayload, size);
|
||||||
psessionEntry->bcnLen = size;
|
pe_session->bcnLen = size;
|
||||||
}
|
}
|
||||||
|
|
||||||
MTRACE(mac_trace_msg_tx(mac, psessionEntry->peSessionId, msgQ.type));
|
MTRACE(mac_trace_msg_tx(mac, pe_session->peSessionId, msgQ.type));
|
||||||
retCode = wma_post_ctrl_msg(mac, &msgQ);
|
retCode = wma_post_ctrl_msg(mac, &msgQ);
|
||||||
if (QDF_STATUS_SUCCESS != retCode)
|
if (QDF_STATUS_SUCCESS != retCode)
|
||||||
pe_err("Posting SEND_BEACON_REQ to HAL failed, reason=%X",
|
pe_err("Posting SEND_BEACON_REQ to HAL failed, reason=%X",
|
||||||
@@ -184,12 +184,12 @@ QDF_STATUS sch_send_beacon_req(tpAniSirGlobal mac, uint8_t *beaconPayload,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static uint32_t lim_remove_p2p_ie_from_add_ie(tpAniSirGlobal mac,
|
static uint32_t lim_remove_p2p_ie_from_add_ie(tpAniSirGlobal mac,
|
||||||
struct pe_session *psessionEntry,
|
struct pe_session *pe_session,
|
||||||
uint8_t *addIeWoP2pIe,
|
uint8_t *addIeWoP2pIe,
|
||||||
uint32_t *addnIELenWoP2pIe)
|
uint32_t *addnIELenWoP2pIe)
|
||||||
{
|
{
|
||||||
uint32_t left = psessionEntry->addIeParams.probeRespDataLen;
|
uint32_t left = pe_session->addIeParams.probeRespDataLen;
|
||||||
uint8_t *ptr = psessionEntry->addIeParams.probeRespData_buff;
|
uint8_t *ptr = pe_session->addIeParams.probeRespData_buff;
|
||||||
uint8_t elem_id, elem_len;
|
uint8_t elem_id, elem_len;
|
||||||
uint32_t offset = 0;
|
uint32_t offset = 0;
|
||||||
uint8_t eid = 0xDD;
|
uint8_t eid = 0xDD;
|
||||||
@@ -224,11 +224,11 @@ static uint32_t lim_remove_p2p_ie_from_add_ie(tpAniSirGlobal mac,
|
|||||||
}
|
}
|
||||||
|
|
||||||
uint32_t lim_send_probe_rsp_template_to_hal(tpAniSirGlobal mac,
|
uint32_t lim_send_probe_rsp_template_to_hal(tpAniSirGlobal mac,
|
||||||
struct pe_session *psessionEntry,
|
struct pe_session *pe_session,
|
||||||
uint32_t *IeBitmap)
|
uint32_t *IeBitmap)
|
||||||
{
|
{
|
||||||
struct scheduler_msg msgQ = {0};
|
struct scheduler_msg msgQ = {0};
|
||||||
uint8_t *pFrame2Hal = psessionEntry->pSchProbeRspTemplate;
|
uint8_t *pFrame2Hal = pe_session->pSchProbeRspTemplate;
|
||||||
tpSendProbeRespParams pprobeRespParams = NULL;
|
tpSendProbeRespParams pprobeRespParams = NULL;
|
||||||
uint32_t retCode = QDF_STATUS_E_FAILURE;
|
uint32_t retCode = QDF_STATUS_E_FAILURE;
|
||||||
uint32_t nPayload, nBytes = 0, nStatus;
|
uint32_t nPayload, nBytes = 0, nStatus;
|
||||||
@@ -245,7 +245,7 @@ uint32_t lim_send_probe_rsp_template_to_hal(tpAniSirGlobal mac,
|
|||||||
uint16_t addn_ielen = 0;
|
uint16_t addn_ielen = 0;
|
||||||
|
|
||||||
/* Check if probe response IE is present or not */
|
/* Check if probe response IE is present or not */
|
||||||
addnIEPresent = (psessionEntry->addIeParams.probeRespDataLen != 0);
|
addnIEPresent = (pe_session->addIeParams.probeRespDataLen != 0);
|
||||||
if (addnIEPresent) {
|
if (addnIEPresent) {
|
||||||
/*
|
/*
|
||||||
* probe response template should not have P2P IE.
|
* probe response template should not have P2P IE.
|
||||||
@@ -257,14 +257,14 @@ uint32_t lim_send_probe_rsp_template_to_hal(tpAniSirGlobal mac,
|
|||||||
* by the FW, may also have P2P IE which will fail
|
* by the FW, may also have P2P IE which will fail
|
||||||
* P2P cert case 6.1.3
|
* P2P cert case 6.1.3
|
||||||
*/
|
*/
|
||||||
addIeWoP2pIe = qdf_mem_malloc(psessionEntry->addIeParams.
|
addIeWoP2pIe = qdf_mem_malloc(pe_session->addIeParams.
|
||||||
probeRespDataLen);
|
probeRespDataLen);
|
||||||
if (NULL == addIeWoP2pIe) {
|
if (NULL == addIeWoP2pIe) {
|
||||||
pe_err("FAILED to alloc memory when removing P2P IE");
|
pe_err("FAILED to alloc memory when removing P2P IE");
|
||||||
return QDF_STATUS_E_NOMEM;
|
return QDF_STATUS_E_NOMEM;
|
||||||
}
|
}
|
||||||
|
|
||||||
retStatus = lim_remove_p2p_ie_from_add_ie(mac, psessionEntry,
|
retStatus = lim_remove_p2p_ie_from_add_ie(mac, pe_session,
|
||||||
addIeWoP2pIe, &addnIELenWoP2pIe);
|
addIeWoP2pIe, &addnIELenWoP2pIe);
|
||||||
if (retStatus != QDF_STATUS_SUCCESS) {
|
if (retStatus != QDF_STATUS_SUCCESS) {
|
||||||
qdf_mem_free(addIeWoP2pIe);
|
qdf_mem_free(addIeWoP2pIe);
|
||||||
@@ -310,14 +310,14 @@ uint32_t lim_send_probe_rsp_template_to_hal(tpAniSirGlobal mac,
|
|||||||
* may change the frame size. Therefore, MUST merge ExtCap IE before
|
* may change the frame size. Therefore, MUST merge ExtCap IE before
|
||||||
* dot11f get packed payload size.
|
* dot11f get packed payload size.
|
||||||
*/
|
*/
|
||||||
prb_rsp_frm = &psessionEntry->probeRespFrame;
|
prb_rsp_frm = &pe_session->probeRespFrame;
|
||||||
if (extcap_present)
|
if (extcap_present)
|
||||||
lim_merge_extcap_struct(&prb_rsp_frm->ExtCap,
|
lim_merge_extcap_struct(&prb_rsp_frm->ExtCap,
|
||||||
&extracted_extcap,
|
&extracted_extcap,
|
||||||
true);
|
true);
|
||||||
|
|
||||||
nStatus = dot11f_get_packed_probe_response_size(mac,
|
nStatus = dot11f_get_packed_probe_response_size(mac,
|
||||||
&psessionEntry->probeRespFrame, &nPayload);
|
&pe_session->probeRespFrame, &nPayload);
|
||||||
if (DOT11F_FAILED(nStatus)) {
|
if (DOT11F_FAILED(nStatus)) {
|
||||||
pe_err("Failed to calculate the packed size for a Probe Response (0x%08x)",
|
pe_err("Failed to calculate the packed size for a Probe Response (0x%08x)",
|
||||||
nStatus);
|
nStatus);
|
||||||
@@ -343,16 +343,16 @@ uint32_t lim_send_probe_rsp_template_to_hal(tpAniSirGlobal mac,
|
|||||||
/* Next, we fill out the buffer descriptor: */
|
/* Next, we fill out the buffer descriptor: */
|
||||||
lim_populate_mac_header(mac, pFrame2Hal, SIR_MAC_MGMT_FRAME,
|
lim_populate_mac_header(mac, pFrame2Hal, SIR_MAC_MGMT_FRAME,
|
||||||
SIR_MAC_MGMT_PROBE_RSP,
|
SIR_MAC_MGMT_PROBE_RSP,
|
||||||
psessionEntry->selfMacAddr,
|
pe_session->selfMacAddr,
|
||||||
psessionEntry->selfMacAddr);
|
pe_session->selfMacAddr);
|
||||||
|
|
||||||
pMacHdr = (tpSirMacMgmtHdr) pFrame2Hal;
|
pMacHdr = (tpSirMacMgmtHdr) pFrame2Hal;
|
||||||
|
|
||||||
sir_copy_mac_addr(pMacHdr->bssId, psessionEntry->bssId);
|
sir_copy_mac_addr(pMacHdr->bssId, pe_session->bssId);
|
||||||
|
|
||||||
/* That done, pack the Probe Response: */
|
/* That done, pack the Probe Response: */
|
||||||
nStatus =
|
nStatus =
|
||||||
dot11f_pack_probe_response(mac, &psessionEntry->probeRespFrame,
|
dot11f_pack_probe_response(mac, &pe_session->probeRespFrame,
|
||||||
pFrame2Hal + sizeof(tSirMacMgmtHdr),
|
pFrame2Hal + sizeof(tSirMacMgmtHdr),
|
||||||
nPayload, &nPayload);
|
nPayload, &nPayload);
|
||||||
|
|
||||||
@@ -378,7 +378,7 @@ uint32_t lim_send_probe_rsp_template_to_hal(tpAniSirGlobal mac,
|
|||||||
if (NULL == pprobeRespParams) {
|
if (NULL == pprobeRespParams) {
|
||||||
pe_err("malloc failed for bytes %d", nBytes);
|
pe_err("malloc failed for bytes %d", nBytes);
|
||||||
} else {
|
} else {
|
||||||
sir_copy_mac_addr(pprobeRespParams->bssId, psessionEntry->bssId);
|
sir_copy_mac_addr(pprobeRespParams->bssId, pe_session->bssId);
|
||||||
qdf_mem_copy(pprobeRespParams->probeRespTemplate,
|
qdf_mem_copy(pprobeRespParams->probeRespTemplate,
|
||||||
pFrame2Hal, nBytes);
|
pFrame2Hal, nBytes);
|
||||||
pprobeRespParams->probeRespTemplateLen = nBytes;
|
pprobeRespParams->probeRespTemplateLen = nBytes;
|
||||||
|
|||||||
@@ -650,17 +650,17 @@ sch_set_fixed_beacon_fields(tpAniSirGlobal mac_ctx, struct pe_session *session)
|
|||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
lim_update_probe_rsp_template_ie_bitmap_beacon1(tpAniSirGlobal mac,
|
lim_update_probe_rsp_template_ie_bitmap_beacon1(tpAniSirGlobal mac,
|
||||||
tDot11fBeacon1 *beacon1,
|
tDot11fBeacon1 *beacon1,
|
||||||
struct pe_session *psessionEntry)
|
struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
uint32_t *DefProbeRspIeBitmap;
|
uint32_t *DefProbeRspIeBitmap;
|
||||||
tDot11fProbeResponse *prb_rsp;
|
tDot11fProbeResponse *prb_rsp;
|
||||||
|
|
||||||
if (!psessionEntry) {
|
if (!pe_session) {
|
||||||
pe_debug("PESession is null!");
|
pe_debug("PESession is null!");
|
||||||
return QDF_STATUS_E_FAILURE;
|
return QDF_STATUS_E_FAILURE;
|
||||||
}
|
}
|
||||||
DefProbeRspIeBitmap = &psessionEntry->DefProbeRspIeBitmap[0];
|
DefProbeRspIeBitmap = &pe_session->DefProbeRspIeBitmap[0];
|
||||||
prb_rsp = &psessionEntry->probeRespFrame;
|
prb_rsp = &pe_session->probeRespFrame;
|
||||||
prb_rsp->BeaconInterval = beacon1->BeaconInterval;
|
prb_rsp->BeaconInterval = beacon1->BeaconInterval;
|
||||||
qdf_mem_copy((void *)&prb_rsp->Capabilities,
|
qdf_mem_copy((void *)&prb_rsp->Capabilities,
|
||||||
(void *)&beacon1->Capabilities,
|
(void *)&beacon1->Capabilities,
|
||||||
@@ -670,7 +670,7 @@ lim_update_probe_rsp_template_ie_bitmap_beacon1(tpAniSirGlobal mac,
|
|||||||
if (beacon1->SSID.present) {
|
if (beacon1->SSID.present) {
|
||||||
set_probe_rsp_ie_bitmap(DefProbeRspIeBitmap, SIR_MAC_SSID_EID);
|
set_probe_rsp_ie_bitmap(DefProbeRspIeBitmap, SIR_MAC_SSID_EID);
|
||||||
/* populating it, because probe response has to go with SSID even in hidden case */
|
/* populating it, because probe response has to go with SSID even in hidden case */
|
||||||
populate_dot11f_ssid(mac, &psessionEntry->ssId, &prb_rsp->SSID);
|
populate_dot11f_ssid(mac, &pe_session->ssId, &prb_rsp->SSID);
|
||||||
}
|
}
|
||||||
/* supported rates */
|
/* supported rates */
|
||||||
if (beacon1->SuppRates.present) {
|
if (beacon1->SuppRates.present) {
|
||||||
@@ -894,14 +894,14 @@ void set_probe_rsp_ie_bitmap(uint32_t *IeBitmap, uint32_t pos)
|
|||||||
* @mac: pointer to mac structure
|
* @mac: pointer to mac structure
|
||||||
* @size: Size of the beacon to write to memory
|
* @size: Size of the beacon to write to memory
|
||||||
* @length: Length field of the beacon to write to memory
|
* @length: Length field of the beacon to write to memory
|
||||||
* @psessionEntry: pe session
|
* @pe_session: pe session
|
||||||
* @reason: beacon update reason
|
* @reason: beacon update reason
|
||||||
*
|
*
|
||||||
* return: success: QDF_STATUS_SUCCESS failure: QDF_STATUS_E_FAILURE
|
* return: success: QDF_STATUS_SUCCESS failure: QDF_STATUS_E_FAILURE
|
||||||
*/
|
*/
|
||||||
static QDF_STATUS write_beacon_to_memory(tpAniSirGlobal mac, uint16_t size,
|
static QDF_STATUS write_beacon_to_memory(tpAniSirGlobal mac, uint16_t size,
|
||||||
uint16_t length,
|
uint16_t length,
|
||||||
struct pe_session *psessionEntry,
|
struct pe_session *pe_session,
|
||||||
enum sir_bcn_update_reason reason)
|
enum sir_bcn_update_reason reason)
|
||||||
{
|
{
|
||||||
uint16_t i;
|
uint16_t i;
|
||||||
@@ -910,12 +910,12 @@ static QDF_STATUS write_beacon_to_memory(tpAniSirGlobal mac, uint16_t size,
|
|||||||
|
|
||||||
/* copy end of beacon only if length > 0 */
|
/* copy end of beacon only if length > 0 */
|
||||||
if (length > 0) {
|
if (length > 0) {
|
||||||
for (i = 0; i < psessionEntry->schBeaconOffsetEnd; i++)
|
for (i = 0; i < pe_session->schBeaconOffsetEnd; i++)
|
||||||
psessionEntry->pSchBeaconFrameBegin[size++] =
|
pe_session->pSchBeaconFrameBegin[size++] =
|
||||||
psessionEntry->pSchBeaconFrameEnd[i];
|
pe_session->pSchBeaconFrameEnd[i];
|
||||||
}
|
}
|
||||||
/* Update the beacon length */
|
/* Update the beacon length */
|
||||||
pBeacon = (tpAniBeaconStruct) psessionEntry->pSchBeaconFrameBegin;
|
pBeacon = (tpAniBeaconStruct) pe_session->pSchBeaconFrameBegin;
|
||||||
/* Do not include the beaconLength indicator itself */
|
/* Do not include the beaconLength indicator itself */
|
||||||
if (length == 0) {
|
if (length == 0) {
|
||||||
pBeacon->beaconLength = 0;
|
pBeacon->beaconLength = 0;
|
||||||
@@ -933,8 +933,8 @@ static QDF_STATUS write_beacon_to_memory(tpAniSirGlobal mac, uint16_t size,
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
size = (size + 3) & (~3);
|
size = (size + 3) & (~3);
|
||||||
status = sch_send_beacon_req(mac, psessionEntry->pSchBeaconFrameBegin,
|
status = sch_send_beacon_req(mac, pe_session->pSchBeaconFrameBegin,
|
||||||
size, psessionEntry, reason);
|
size, pe_session, reason);
|
||||||
if (QDF_IS_STATUS_ERROR(status))
|
if (QDF_IS_STATUS_ERROR(status))
|
||||||
pe_err("sch_send_beacon_req() returned an error %d, size %d",
|
pe_err("sch_send_beacon_req() returned an error %d, size %d",
|
||||||
status, size);
|
status, size);
|
||||||
@@ -1002,52 +1002,52 @@ QDF_STATUS sch_process_pre_beacon_ind(tpAniSirGlobal mac,
|
|||||||
{
|
{
|
||||||
tpBeaconGenParams pMsg = (tpBeaconGenParams) limMsg->bodyptr;
|
tpBeaconGenParams pMsg = (tpBeaconGenParams) limMsg->bodyptr;
|
||||||
uint32_t beaconSize;
|
uint32_t beaconSize;
|
||||||
struct pe_session *psessionEntry;
|
struct pe_session *pe_session;
|
||||||
uint8_t sessionId;
|
uint8_t sessionId;
|
||||||
QDF_STATUS status = QDF_STATUS_E_FAILURE;
|
QDF_STATUS status = QDF_STATUS_E_FAILURE;
|
||||||
|
|
||||||
psessionEntry = pe_find_session_by_bssid(mac, pMsg->bssId, &sessionId);
|
pe_session = pe_find_session_by_bssid(mac, pMsg->bssId, &sessionId);
|
||||||
if (!psessionEntry) {
|
if (!pe_session) {
|
||||||
pe_err("session lookup fails");
|
pe_err("session lookup fails");
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
|
|
||||||
beaconSize = psessionEntry->schBeaconOffsetBegin;
|
beaconSize = pe_session->schBeaconOffsetBegin;
|
||||||
|
|
||||||
/* If SME is not in normal mode, no need to generate beacon */
|
/* If SME is not in normal mode, no need to generate beacon */
|
||||||
if (psessionEntry->limSmeState != eLIM_SME_NORMAL_STATE) {
|
if (pe_session->limSmeState != eLIM_SME_NORMAL_STATE) {
|
||||||
pe_debug("PreBeaconInd received in invalid state: %d",
|
pe_debug("PreBeaconInd received in invalid state: %d",
|
||||||
psessionEntry->limSmeState);
|
pe_session->limSmeState);
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (GET_LIM_SYSTEM_ROLE(psessionEntry)) {
|
switch (GET_LIM_SYSTEM_ROLE(pe_session)) {
|
||||||
|
|
||||||
case eLIM_STA_IN_IBSS_ROLE:
|
case eLIM_STA_IN_IBSS_ROLE:
|
||||||
/* generate IBSS parameter set */
|
/* generate IBSS parameter set */
|
||||||
if (psessionEntry->statypeForBss == STA_ENTRY_SELF)
|
if (pe_session->statypeForBss == STA_ENTRY_SELF)
|
||||||
status =
|
status =
|
||||||
write_beacon_to_memory(mac, (uint16_t) beaconSize,
|
write_beacon_to_memory(mac, (uint16_t) beaconSize,
|
||||||
(uint16_t) beaconSize,
|
(uint16_t) beaconSize,
|
||||||
psessionEntry, reason);
|
pe_session, reason);
|
||||||
else
|
else
|
||||||
pe_err("can not send beacon for PEER session entry");
|
pe_err("can not send beacon for PEER session entry");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case eLIM_AP_ROLE: {
|
case eLIM_AP_ROLE: {
|
||||||
uint8_t *ptr =
|
uint8_t *ptr =
|
||||||
&psessionEntry->pSchBeaconFrameBegin[psessionEntry->
|
&pe_session->pSchBeaconFrameBegin[pe_session->
|
||||||
schBeaconOffsetBegin];
|
schBeaconOffsetBegin];
|
||||||
uint16_t timLength = 0;
|
uint16_t timLength = 0;
|
||||||
|
|
||||||
if (psessionEntry->statypeForBss == STA_ENTRY_SELF) {
|
if (pe_session->statypeForBss == STA_ENTRY_SELF) {
|
||||||
sch_generate_tim(mac, &ptr, &timLength,
|
sch_generate_tim(mac, &ptr, &timLength,
|
||||||
psessionEntry->dtimPeriod);
|
pe_session->dtimPeriod);
|
||||||
beaconSize += 2 + timLength;
|
beaconSize += 2 + timLength;
|
||||||
status =
|
status =
|
||||||
write_beacon_to_memory(mac, (uint16_t) beaconSize,
|
write_beacon_to_memory(mac, (uint16_t) beaconSize,
|
||||||
(uint16_t) beaconSize,
|
(uint16_t) beaconSize,
|
||||||
psessionEntry, reason);
|
pe_session, reason);
|
||||||
} else
|
} else
|
||||||
pe_err("can not send beacon for PEER session entry");
|
pe_err("can not send beacon for PEER session entry");
|
||||||
}
|
}
|
||||||
@@ -1055,7 +1055,7 @@ QDF_STATUS sch_process_pre_beacon_ind(tpAniSirGlobal mac,
|
|||||||
|
|
||||||
default:
|
default:
|
||||||
pe_err("Error-PE has Receive PreBeconGenIndication when System is in %d role",
|
pe_err("Error-PE has Receive PreBeconGenIndication when System is in %d role",
|
||||||
GET_LIM_SYSTEM_ROLE(psessionEntry));
|
GET_LIM_SYSTEM_ROLE(pe_session));
|
||||||
}
|
}
|
||||||
|
|
||||||
end:
|
end:
|
||||||
|
|||||||
@@ -284,12 +284,12 @@ static void __sch_beacon_process_no_session(tpAniSirGlobal mac,
|
|||||||
tpSchBeaconStruct pBeacon,
|
tpSchBeaconStruct pBeacon,
|
||||||
uint8_t *pRxPacketInfo)
|
uint8_t *pRxPacketInfo)
|
||||||
{
|
{
|
||||||
struct pe_session *psessionEntry = NULL;
|
struct pe_session *pe_session = NULL;
|
||||||
|
|
||||||
psessionEntry = lim_is_ibss_session_active(mac);
|
pe_session = lim_is_ibss_session_active(mac);
|
||||||
if (psessionEntry != NULL) {
|
if (pe_session != NULL) {
|
||||||
lim_handle_ibss_coalescing(mac, pBeacon, pRxPacketInfo,
|
lim_handle_ibss_coalescing(mac, pBeacon, pRxPacketInfo,
|
||||||
psessionEntry);
|
pe_session);
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ get_wmm_local_params(tpAniSirGlobal mac,
|
|||||||
static void
|
static void
|
||||||
set_sch_edca_params(tpAniSirGlobal mac,
|
set_sch_edca_params(tpAniSirGlobal mac,
|
||||||
uint32_t params[][CFG_EDCA_DATA_LEN],
|
uint32_t params[][CFG_EDCA_DATA_LEN],
|
||||||
struct pe_session *psessionEntry);
|
struct pe_session *pe_session);
|
||||||
|
|
||||||
/* -------------------------------------------------------------------- */
|
/* -------------------------------------------------------------------- */
|
||||||
/**
|
/**
|
||||||
@@ -62,11 +62,11 @@ set_sch_edca_params(tpAniSirGlobal mac,
|
|||||||
* @return None
|
* @return None
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void sch_set_beacon_interval(tpAniSirGlobal mac, struct pe_session *psessionEntry)
|
void sch_set_beacon_interval(tpAniSirGlobal mac, struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
uint32_t bi;
|
uint32_t bi;
|
||||||
|
|
||||||
bi = psessionEntry->beaconParams.beaconInterval;
|
bi = pe_session->beaconParams.beaconInterval;
|
||||||
|
|
||||||
if (bi < SCH_BEACON_INTERVAL_MIN || bi > SCH_BEACON_INTERVAL_MAX) {
|
if (bi < SCH_BEACON_INTERVAL_MIN || bi > SCH_BEACON_INTERVAL_MAX) {
|
||||||
pe_debug("Invalid beacon interval %d (should be [%d,%d]", bi,
|
pe_debug("Invalid beacon interval %d (should be [%d,%d]", bi,
|
||||||
@@ -293,7 +293,7 @@ broadcast_wmm_of_concurrent_sta_session(tpAniSirGlobal mac_ctx,
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void sch_qos_update_broadcast(tpAniSirGlobal mac, struct pe_session *psessionEntry)
|
void sch_qos_update_broadcast(tpAniSirGlobal mac, struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
uint32_t params[4][CFG_EDCA_DATA_LEN];
|
uint32_t params[4][CFG_EDCA_DATA_LEN];
|
||||||
uint32_t cwminidx, cwmaxidx, txopidx;
|
uint32_t cwminidx, cwmaxidx, txopidx;
|
||||||
@@ -306,7 +306,7 @@ void sch_qos_update_broadcast(tpAniSirGlobal mac, struct pe_session *psessionEnt
|
|||||||
pe_debug("QosUpdateBroadcast: failed");
|
pe_debug("QosUpdateBroadcast: failed");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
lim_get_phy_mode(mac, &phyMode, psessionEntry);
|
lim_get_phy_mode(mac, &phyMode, pe_session);
|
||||||
|
|
||||||
pe_debug("QosUpdBcast: mode %d", phyMode);
|
pe_debug("QosUpdBcast: mode %d", phyMode);
|
||||||
|
|
||||||
@@ -326,43 +326,43 @@ void sch_qos_update_broadcast(tpAniSirGlobal mac, struct pe_session *psessionEnt
|
|||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < MAX_NUM_AC; i++) {
|
for (i = 0; i < MAX_NUM_AC; i++) {
|
||||||
if (psessionEntry->gLimEdcaParamsBC[i].aci.acm !=
|
if (pe_session->gLimEdcaParamsBC[i].aci.acm !=
|
||||||
(uint8_t)params[i][CFG_EDCA_PROFILE_ACM_IDX]) {
|
(uint8_t)params[i][CFG_EDCA_PROFILE_ACM_IDX]) {
|
||||||
psessionEntry->gLimEdcaParamsBC[i].aci.acm =
|
pe_session->gLimEdcaParamsBC[i].aci.acm =
|
||||||
(uint8_t)params[i][CFG_EDCA_PROFILE_ACM_IDX];
|
(uint8_t)params[i][CFG_EDCA_PROFILE_ACM_IDX];
|
||||||
updated = true;
|
updated = true;
|
||||||
}
|
}
|
||||||
if (psessionEntry->gLimEdcaParamsBC[i].aci.aifsn !=
|
if (pe_session->gLimEdcaParamsBC[i].aci.aifsn !=
|
||||||
(uint8_t)params[i][CFG_EDCA_PROFILE_AIFSN_IDX]) {
|
(uint8_t)params[i][CFG_EDCA_PROFILE_AIFSN_IDX]) {
|
||||||
psessionEntry->gLimEdcaParamsBC[i].aci.aifsn =
|
pe_session->gLimEdcaParamsBC[i].aci.aifsn =
|
||||||
(uint8_t)params[i][CFG_EDCA_PROFILE_AIFSN_IDX];
|
(uint8_t)params[i][CFG_EDCA_PROFILE_AIFSN_IDX];
|
||||||
updated = true;
|
updated = true;
|
||||||
}
|
}
|
||||||
if (psessionEntry->gLimEdcaParamsBC[i].cw.min !=
|
if (pe_session->gLimEdcaParamsBC[i].cw.min !=
|
||||||
convert_cw(GET_CW(¶ms[i][cwminidx]))) {
|
convert_cw(GET_CW(¶ms[i][cwminidx]))) {
|
||||||
psessionEntry->gLimEdcaParamsBC[i].cw.min =
|
pe_session->gLimEdcaParamsBC[i].cw.min =
|
||||||
convert_cw(GET_CW(¶ms[i][cwminidx]));
|
convert_cw(GET_CW(¶ms[i][cwminidx]));
|
||||||
updated = true;
|
updated = true;
|
||||||
}
|
}
|
||||||
if (psessionEntry->gLimEdcaParamsBC[i].cw.max !=
|
if (pe_session->gLimEdcaParamsBC[i].cw.max !=
|
||||||
convert_cw(GET_CW(¶ms[i][cwmaxidx]))) {
|
convert_cw(GET_CW(¶ms[i][cwmaxidx]))) {
|
||||||
psessionEntry->gLimEdcaParamsBC[i].cw.max =
|
pe_session->gLimEdcaParamsBC[i].cw.max =
|
||||||
convert_cw(GET_CW(¶ms[i][cwmaxidx]));
|
convert_cw(GET_CW(¶ms[i][cwmaxidx]));
|
||||||
updated = true;
|
updated = true;
|
||||||
}
|
}
|
||||||
if (psessionEntry->gLimEdcaParamsBC[i].txoplimit !=
|
if (pe_session->gLimEdcaParamsBC[i].txoplimit !=
|
||||||
(uint16_t)params[i][txopidx]) {
|
(uint16_t)params[i][txopidx]) {
|
||||||
psessionEntry->gLimEdcaParamsBC[i].txoplimit =
|
pe_session->gLimEdcaParamsBC[i].txoplimit =
|
||||||
(uint16_t)params[i][txopidx];
|
(uint16_t)params[i][txopidx];
|
||||||
updated = true;
|
updated = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
pe_debug("QoSUpdateBCast: AC :%d: AIFSN: %d, ACM %d, CWmin %d, CWmax %d, TxOp %d",
|
pe_debug("QoSUpdateBCast: AC :%d: AIFSN: %d, ACM %d, CWmin %d, CWmax %d, TxOp %d",
|
||||||
i, psessionEntry->gLimEdcaParamsBC[i].aci.aifsn,
|
i, pe_session->gLimEdcaParamsBC[i].aci.aifsn,
|
||||||
psessionEntry->gLimEdcaParamsBC[i].aci.acm,
|
pe_session->gLimEdcaParamsBC[i].aci.acm,
|
||||||
psessionEntry->gLimEdcaParamsBC[i].cw.min,
|
pe_session->gLimEdcaParamsBC[i].cw.min,
|
||||||
psessionEntry->gLimEdcaParamsBC[i].cw.max,
|
pe_session->gLimEdcaParamsBC[i].cw.max,
|
||||||
psessionEntry->gLimEdcaParamsBC[i].txoplimit);
|
pe_session->gLimEdcaParamsBC[i].txoplimit);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -371,17 +371,17 @@ void sch_qos_update_broadcast(tpAniSirGlobal mac, struct pe_session *psessionEnt
|
|||||||
* params to broadcast in beacons. WFA Wifi Direct test plan
|
* params to broadcast in beacons. WFA Wifi Direct test plan
|
||||||
* 6.1.14 requirement
|
* 6.1.14 requirement
|
||||||
*/
|
*/
|
||||||
if (broadcast_wmm_of_concurrent_sta_session(mac, psessionEntry))
|
if (broadcast_wmm_of_concurrent_sta_session(mac, pe_session))
|
||||||
updated = true;
|
updated = true;
|
||||||
if (updated)
|
if (updated)
|
||||||
psessionEntry->gLimEdcaParamSetCount++;
|
pe_session->gLimEdcaParamSetCount++;
|
||||||
|
|
||||||
status = sch_set_fixed_beacon_fields(mac, psessionEntry);
|
status = sch_set_fixed_beacon_fields(mac, pe_session);
|
||||||
if (QDF_IS_STATUS_ERROR(status))
|
if (QDF_IS_STATUS_ERROR(status))
|
||||||
pe_err("Unable to set beacon fields!");
|
pe_err("Unable to set beacon fields!");
|
||||||
}
|
}
|
||||||
|
|
||||||
void sch_qos_update_local(tpAniSirGlobal mac, struct pe_session *psessionEntry)
|
void sch_qos_update_local(tpAniSirGlobal mac, struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
|
|
||||||
uint32_t params[4][CFG_EDCA_DATA_LEN];
|
uint32_t params[4][CFG_EDCA_DATA_LEN];
|
||||||
@@ -393,22 +393,22 @@ void sch_qos_update_local(tpAniSirGlobal mac, struct pe_session *psessionEntry)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
set_sch_edca_params(mac, params, psessionEntry);
|
set_sch_edca_params(mac, params, pe_session);
|
||||||
|
|
||||||
/* For AP, the bssID is stored in LIM Global context. */
|
/* For AP, the bssID is stored in LIM Global context. */
|
||||||
lim_send_edca_params(mac, psessionEntry->gLimEdcaParams,
|
lim_send_edca_params(mac, pe_session->gLimEdcaParams,
|
||||||
psessionEntry->bssIdx, false);
|
pe_session->bssIdx, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* sch_set_default_edca_params() - This function sets the gLimEdcaParams to the
|
* sch_set_default_edca_params() - This function sets the gLimEdcaParams to the
|
||||||
* default local wmm profile.
|
* default local wmm profile.
|
||||||
* @mac - Global mac context
|
* @mac - Global mac context
|
||||||
* @psessionEntry - PE session
|
* @pe_session - PE session
|
||||||
*
|
*
|
||||||
* return none
|
* return none
|
||||||
*/
|
*/
|
||||||
void sch_set_default_edca_params(tpAniSirGlobal mac, struct pe_session *psessionEntry)
|
void sch_set_default_edca_params(tpAniSirGlobal mac, struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
uint32_t params[4][CFG_EDCA_DATA_LEN];
|
uint32_t params[4][CFG_EDCA_DATA_LEN];
|
||||||
|
|
||||||
@@ -417,7 +417,7 @@ void sch_set_default_edca_params(tpAniSirGlobal mac, struct pe_session *psession
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
set_sch_edca_params(mac, params, psessionEntry);
|
set_sch_edca_params(mac, params, pe_session);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -425,7 +425,7 @@ void sch_set_default_edca_params(tpAniSirGlobal mac, struct pe_session *psession
|
|||||||
* set_sch_edca_params() - This function fills in the gLimEdcaParams structure
|
* set_sch_edca_params() - This function fills in the gLimEdcaParams structure
|
||||||
* with the given edca params.
|
* with the given edca params.
|
||||||
* @mac - global mac context
|
* @mac - global mac context
|
||||||
* @psessionEntry - PE session
|
* @pe_session - PE session
|
||||||
* @params - EDCA parameters
|
* @params - EDCA parameters
|
||||||
*
|
*
|
||||||
* Return none
|
* Return none
|
||||||
@@ -433,13 +433,13 @@ void sch_set_default_edca_params(tpAniSirGlobal mac, struct pe_session *psession
|
|||||||
static void
|
static void
|
||||||
set_sch_edca_params(tpAniSirGlobal mac,
|
set_sch_edca_params(tpAniSirGlobal mac,
|
||||||
uint32_t params[][CFG_EDCA_DATA_LEN],
|
uint32_t params[][CFG_EDCA_DATA_LEN],
|
||||||
struct pe_session *psessionEntry)
|
struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
uint32_t i;
|
uint32_t i;
|
||||||
uint32_t cwminidx, cwmaxidx, txopidx;
|
uint32_t cwminidx, cwmaxidx, txopidx;
|
||||||
uint32_t phyMode;
|
uint32_t phyMode;
|
||||||
|
|
||||||
lim_get_phy_mode(mac, &phyMode, psessionEntry);
|
lim_get_phy_mode(mac, &phyMode, pe_session);
|
||||||
|
|
||||||
pe_debug("lim_get_phy_mode() = %d", phyMode);
|
pe_debug("lim_get_phy_mode() = %d", phyMode);
|
||||||
/* if (mac->lim.gLimPhyMode == WNI_CFG_PHY_MODE_11G) */
|
/* if (mac->lim.gLimPhyMode == WNI_CFG_PHY_MODE_11G) */
|
||||||
@@ -461,23 +461,23 @@ set_sch_edca_params(tpAniSirGlobal mac,
|
|||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < MAX_NUM_AC; i++) {
|
for (i = 0; i < MAX_NUM_AC; i++) {
|
||||||
psessionEntry->gLimEdcaParams[i].aci.acm =
|
pe_session->gLimEdcaParams[i].aci.acm =
|
||||||
(uint8_t)params[i][CFG_EDCA_PROFILE_ACM_IDX];
|
(uint8_t)params[i][CFG_EDCA_PROFILE_ACM_IDX];
|
||||||
psessionEntry->gLimEdcaParams[i].aci.aifsn =
|
pe_session->gLimEdcaParams[i].aci.aifsn =
|
||||||
(uint8_t)params[i][CFG_EDCA_PROFILE_AIFSN_IDX];
|
(uint8_t)params[i][CFG_EDCA_PROFILE_AIFSN_IDX];
|
||||||
psessionEntry->gLimEdcaParams[i].cw.min =
|
pe_session->gLimEdcaParams[i].cw.min =
|
||||||
convert_cw(GET_CW(¶ms[i][cwminidx]));
|
convert_cw(GET_CW(¶ms[i][cwminidx]));
|
||||||
psessionEntry->gLimEdcaParams[i].cw.max =
|
pe_session->gLimEdcaParams[i].cw.max =
|
||||||
convert_cw(GET_CW(¶ms[i][cwmaxidx]));
|
convert_cw(GET_CW(¶ms[i][cwmaxidx]));
|
||||||
psessionEntry->gLimEdcaParams[i].txoplimit =
|
pe_session->gLimEdcaParams[i].txoplimit =
|
||||||
(uint16_t)params[i][txopidx];
|
(uint16_t)params[i][txopidx];
|
||||||
|
|
||||||
pe_debug("AC :%d: AIFSN: %d, ACM %d, CWmin %d, CWmax %d, TxOp %d",
|
pe_debug("AC :%d: AIFSN: %d, ACM %d, CWmin %d, CWmax %d, TxOp %d",
|
||||||
i, psessionEntry->gLimEdcaParams[i].aci.aifsn,
|
i, pe_session->gLimEdcaParams[i].aci.aifsn,
|
||||||
psessionEntry->gLimEdcaParams[i].aci.acm,
|
pe_session->gLimEdcaParams[i].aci.acm,
|
||||||
psessionEntry->gLimEdcaParams[i].cw.min,
|
pe_session->gLimEdcaParams[i].cw.min,
|
||||||
psessionEntry->gLimEdcaParams[i].cw.max,
|
pe_session->gLimEdcaParams[i].cw.max,
|
||||||
psessionEntry->gLimEdcaParams[i].txoplimit);
|
pe_session->gLimEdcaParams[i].txoplimit);
|
||||||
|
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
@@ -531,12 +531,12 @@ get_wmm_local_params(tpAniSirGlobal mac_ctx,
|
|||||||
*
|
*
|
||||||
* Return none
|
* Return none
|
||||||
*/
|
*/
|
||||||
void sch_edca_profile_update(tpAniSirGlobal mac, struct pe_session *psessionEntry)
|
void sch_edca_profile_update(tpAniSirGlobal mac, struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
if (LIM_IS_AP_ROLE(psessionEntry) ||
|
if (LIM_IS_AP_ROLE(pe_session) ||
|
||||||
LIM_IS_IBSS_ROLE(psessionEntry)) {
|
LIM_IS_IBSS_ROLE(pe_session)) {
|
||||||
sch_qos_update_local(mac, psessionEntry);
|
sch_qos_update_local(mac, pe_session);
|
||||||
sch_qos_update_broadcast(mac, psessionEntry);
|
sch_qos_update_broadcast(mac, pe_session);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -149,12 +149,12 @@ int find_ie_location(tpAniSirGlobal mac, tpSirRSNie pRsnIe, uint8_t EID)
|
|||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
populate_dot11f_capabilities(tpAniSirGlobal mac,
|
populate_dot11f_capabilities(tpAniSirGlobal mac,
|
||||||
tDot11fFfCapabilities *pDot11f,
|
tDot11fFfCapabilities *pDot11f,
|
||||||
struct pe_session *psessionEntry)
|
struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
uint16_t cfg;
|
uint16_t cfg;
|
||||||
QDF_STATUS nSirStatus;
|
QDF_STATUS nSirStatus;
|
||||||
|
|
||||||
nSirStatus = cfg_get_capability_info(mac, &cfg, psessionEntry);
|
nSirStatus = cfg_get_capability_info(mac, &cfg, pe_session);
|
||||||
if (QDF_STATUS_SUCCESS != nSirStatus) {
|
if (QDF_STATUS_SUCCESS != nSirStatus) {
|
||||||
pe_err("Failed to retrieve the Capabilities bitfield from CFG status: %d",
|
pe_err("Failed to retrieve the Capabilities bitfield from CFG status: %d",
|
||||||
nSirStatus);
|
nSirStatus);
|
||||||
@@ -209,12 +209,12 @@ void populate_dot_11_f_ext_chann_switch_ann(tpAniSirGlobal mac_ptr,
|
|||||||
void
|
void
|
||||||
populate_dot11f_chan_switch_ann(tpAniSirGlobal mac,
|
populate_dot11f_chan_switch_ann(tpAniSirGlobal mac,
|
||||||
tDot11fIEChanSwitchAnn *pDot11f,
|
tDot11fIEChanSwitchAnn *pDot11f,
|
||||||
struct pe_session *psessionEntry)
|
struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
pDot11f->switchMode = psessionEntry->gLimChannelSwitch.switchMode;
|
pDot11f->switchMode = pe_session->gLimChannelSwitch.switchMode;
|
||||||
pDot11f->newChannel = psessionEntry->gLimChannelSwitch.primaryChannel;
|
pDot11f->newChannel = pe_session->gLimChannelSwitch.primaryChannel;
|
||||||
pDot11f->switchCount =
|
pDot11f->switchCount =
|
||||||
(uint8_t) psessionEntry->gLimChannelSwitch.switchCount;
|
(uint8_t) pe_session->gLimChannelSwitch.switchCount;
|
||||||
|
|
||||||
pDot11f->present = 1;
|
pDot11f->present = 1;
|
||||||
}
|
}
|
||||||
@@ -264,7 +264,7 @@ populate_dot11_supp_operating_classes(tpAniSirGlobal mac_ptr,
|
|||||||
void
|
void
|
||||||
populate_dot11f_chan_switch_wrapper(tpAniSirGlobal mac,
|
populate_dot11f_chan_switch_wrapper(tpAniSirGlobal mac,
|
||||||
tDot11fIEChannelSwitchWrapper *pDot11f,
|
tDot11fIEChannelSwitchWrapper *pDot11f,
|
||||||
struct pe_session *psessionEntry)
|
struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
const uint8_t *ie_ptr = NULL;
|
const uint8_t *ie_ptr = NULL;
|
||||||
|
|
||||||
@@ -290,11 +290,11 @@ populate_dot11f_chan_switch_wrapper(tpAniSirGlobal mac,
|
|||||||
* Add the Wide Channel Bandwidth Sublement.
|
* Add the Wide Channel Bandwidth Sublement.
|
||||||
*/
|
*/
|
||||||
pDot11f->WiderBWChanSwitchAnn.newChanWidth =
|
pDot11f->WiderBWChanSwitchAnn.newChanWidth =
|
||||||
psessionEntry->gLimWiderBWChannelSwitch.newChanWidth;
|
pe_session->gLimWiderBWChannelSwitch.newChanWidth;
|
||||||
pDot11f->WiderBWChanSwitchAnn.newCenterChanFreq0 =
|
pDot11f->WiderBWChanSwitchAnn.newCenterChanFreq0 =
|
||||||
psessionEntry->gLimWiderBWChannelSwitch.newCenterChanFreq0;
|
pe_session->gLimWiderBWChannelSwitch.newCenterChanFreq0;
|
||||||
pDot11f->WiderBWChanSwitchAnn.newCenterChanFreq1 =
|
pDot11f->WiderBWChanSwitchAnn.newCenterChanFreq1 =
|
||||||
psessionEntry->gLimWiderBWChannelSwitch.newCenterChanFreq1;
|
pe_session->gLimWiderBWChannelSwitch.newCenterChanFreq1;
|
||||||
pDot11f->WiderBWChanSwitchAnn.present = 1;
|
pDot11f->WiderBWChanSwitchAnn.present = 1;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -302,8 +302,8 @@ populate_dot11f_chan_switch_wrapper(tpAniSirGlobal mac,
|
|||||||
*/
|
*/
|
||||||
ie_ptr = wlan_get_ie_ptr_from_eid(
|
ie_ptr = wlan_get_ie_ptr_from_eid(
|
||||||
DOT11F_EID_VHT_TRANSMIT_POWER_ENV,
|
DOT11F_EID_VHT_TRANSMIT_POWER_ENV,
|
||||||
psessionEntry->addIeParams.probeRespBCNData_buff,
|
pe_session->addIeParams.probeRespBCNData_buff,
|
||||||
psessionEntry->addIeParams.probeRespBCNDataLen);
|
pe_session->addIeParams.probeRespBCNDataLen);
|
||||||
if (ie_ptr) {
|
if (ie_ptr) {
|
||||||
/* Ignore EID field */
|
/* Ignore EID field */
|
||||||
pDot11f->vht_transmit_power_env.present = 1;
|
pDot11f->vht_transmit_power_env.present = 1;
|
||||||
@@ -332,27 +332,27 @@ populate_dot11f_avoid_channel_ie(tpAniSirGlobal mac_ctx,
|
|||||||
void
|
void
|
||||||
populate_dot11f_wider_bw_chan_switch_ann(tpAniSirGlobal mac,
|
populate_dot11f_wider_bw_chan_switch_ann(tpAniSirGlobal mac,
|
||||||
tDot11fIEWiderBWChanSwitchAnn *pDot11f,
|
tDot11fIEWiderBWChanSwitchAnn *pDot11f,
|
||||||
struct pe_session *psessionEntry)
|
struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
pDot11f->present = 1;
|
pDot11f->present = 1;
|
||||||
pDot11f->newChanWidth =
|
pDot11f->newChanWidth =
|
||||||
psessionEntry->gLimWiderBWChannelSwitch.newChanWidth;
|
pe_session->gLimWiderBWChannelSwitch.newChanWidth;
|
||||||
pDot11f->newCenterChanFreq0 =
|
pDot11f->newCenterChanFreq0 =
|
||||||
psessionEntry->gLimWiderBWChannelSwitch.newCenterChanFreq0;
|
pe_session->gLimWiderBWChannelSwitch.newCenterChanFreq0;
|
||||||
pDot11f->newCenterChanFreq1 =
|
pDot11f->newCenterChanFreq1 =
|
||||||
psessionEntry->gLimWiderBWChannelSwitch.newCenterChanFreq1;
|
pe_session->gLimWiderBWChannelSwitch.newCenterChanFreq1;
|
||||||
}
|
}
|
||||||
|
|
||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
populate_dot11f_country(tpAniSirGlobal mac,
|
populate_dot11f_country(tpAniSirGlobal mac,
|
||||||
tDot11fIECountry *pDot11f, struct pe_session *psessionEntry)
|
tDot11fIECountry *pDot11f, struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
uint32_t len;
|
uint32_t len;
|
||||||
enum band_info rfBand;
|
enum band_info rfBand;
|
||||||
uint8_t temp[CFG_MAX_STR_LEN], code[3];
|
uint8_t temp[CFG_MAX_STR_LEN], code[3];
|
||||||
|
|
||||||
if (psessionEntry->lim11dEnabled) {
|
if (pe_session->lim11dEnabled) {
|
||||||
lim_get_rf_band_new(mac, &rfBand, psessionEntry);
|
lim_get_rf_band_new(mac, &rfBand, pe_session);
|
||||||
if (rfBand == BAND_5G) {
|
if (rfBand == BAND_5G) {
|
||||||
len = mac->mlme_cfg->power.max_tx_power_5.len;
|
len = mac->mlme_cfg->power.max_tx_power_5.len;
|
||||||
qdf_mem_copy(temp,
|
qdf_mem_copy(temp,
|
||||||
@@ -418,67 +418,67 @@ populate_dot11f_ds_params(tpAniSirGlobal mac_ctx,
|
|||||||
void
|
void
|
||||||
populate_dot11f_edca_param_set(tpAniSirGlobal mac,
|
populate_dot11f_edca_param_set(tpAniSirGlobal mac,
|
||||||
tDot11fIEEDCAParamSet *pDot11f,
|
tDot11fIEEDCAParamSet *pDot11f,
|
||||||
struct pe_session *psessionEntry)
|
struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
|
|
||||||
if (psessionEntry->limQosEnabled) {
|
if (pe_session->limQosEnabled) {
|
||||||
/* change to bitwise operation, after this is fixed in frames. */
|
/* change to bitwise operation, after this is fixed in frames. */
|
||||||
pDot11f->qos =
|
pDot11f->qos =
|
||||||
(uint8_t) (0xf0 &
|
(uint8_t) (0xf0 &
|
||||||
(psessionEntry->gLimEdcaParamSetCount << 4));
|
(pe_session->gLimEdcaParamSetCount << 4));
|
||||||
|
|
||||||
/* Fill each EDCA parameter set in order: be, bk, vi, vo */
|
/* Fill each EDCA parameter set in order: be, bk, vi, vo */
|
||||||
pDot11f->acbe_aifsn =
|
pDot11f->acbe_aifsn =
|
||||||
(0xf &
|
(0xf &
|
||||||
SET_AIFSN(psessionEntry->gLimEdcaParamsBC[0].aci.aifsn));
|
SET_AIFSN(pe_session->gLimEdcaParamsBC[0].aci.aifsn));
|
||||||
pDot11f->acbe_acm =
|
pDot11f->acbe_acm =
|
||||||
(0x1 & psessionEntry->gLimEdcaParamsBC[0].aci.acm);
|
(0x1 & pe_session->gLimEdcaParamsBC[0].aci.acm);
|
||||||
pDot11f->acbe_aci = (0x3 & SIR_MAC_EDCAACI_BESTEFFORT);
|
pDot11f->acbe_aci = (0x3 & SIR_MAC_EDCAACI_BESTEFFORT);
|
||||||
pDot11f->acbe_acwmin =
|
pDot11f->acbe_acwmin =
|
||||||
(0xf & psessionEntry->gLimEdcaParamsBC[0].cw.min);
|
(0xf & pe_session->gLimEdcaParamsBC[0].cw.min);
|
||||||
pDot11f->acbe_acwmax =
|
pDot11f->acbe_acwmax =
|
||||||
(0xf & psessionEntry->gLimEdcaParamsBC[0].cw.max);
|
(0xf & pe_session->gLimEdcaParamsBC[0].cw.max);
|
||||||
pDot11f->acbe_txoplimit =
|
pDot11f->acbe_txoplimit =
|
||||||
psessionEntry->gLimEdcaParamsBC[0].txoplimit;
|
pe_session->gLimEdcaParamsBC[0].txoplimit;
|
||||||
|
|
||||||
pDot11f->acbk_aifsn =
|
pDot11f->acbk_aifsn =
|
||||||
(0xf &
|
(0xf &
|
||||||
SET_AIFSN(psessionEntry->gLimEdcaParamsBC[1].aci.aifsn));
|
SET_AIFSN(pe_session->gLimEdcaParamsBC[1].aci.aifsn));
|
||||||
pDot11f->acbk_acm =
|
pDot11f->acbk_acm =
|
||||||
(0x1 & psessionEntry->gLimEdcaParamsBC[1].aci.acm);
|
(0x1 & pe_session->gLimEdcaParamsBC[1].aci.acm);
|
||||||
pDot11f->acbk_aci = (0x3 & SIR_MAC_EDCAACI_BACKGROUND);
|
pDot11f->acbk_aci = (0x3 & SIR_MAC_EDCAACI_BACKGROUND);
|
||||||
pDot11f->acbk_acwmin =
|
pDot11f->acbk_acwmin =
|
||||||
(0xf & psessionEntry->gLimEdcaParamsBC[1].cw.min);
|
(0xf & pe_session->gLimEdcaParamsBC[1].cw.min);
|
||||||
pDot11f->acbk_acwmax =
|
pDot11f->acbk_acwmax =
|
||||||
(0xf & psessionEntry->gLimEdcaParamsBC[1].cw.max);
|
(0xf & pe_session->gLimEdcaParamsBC[1].cw.max);
|
||||||
pDot11f->acbk_txoplimit =
|
pDot11f->acbk_txoplimit =
|
||||||
psessionEntry->gLimEdcaParamsBC[1].txoplimit;
|
pe_session->gLimEdcaParamsBC[1].txoplimit;
|
||||||
|
|
||||||
pDot11f->acvi_aifsn =
|
pDot11f->acvi_aifsn =
|
||||||
(0xf &
|
(0xf &
|
||||||
SET_AIFSN(psessionEntry->gLimEdcaParamsBC[2].aci.aifsn));
|
SET_AIFSN(pe_session->gLimEdcaParamsBC[2].aci.aifsn));
|
||||||
pDot11f->acvi_acm =
|
pDot11f->acvi_acm =
|
||||||
(0x1 & psessionEntry->gLimEdcaParamsBC[2].aci.acm);
|
(0x1 & pe_session->gLimEdcaParamsBC[2].aci.acm);
|
||||||
pDot11f->acvi_aci = (0x3 & SIR_MAC_EDCAACI_VIDEO);
|
pDot11f->acvi_aci = (0x3 & SIR_MAC_EDCAACI_VIDEO);
|
||||||
pDot11f->acvi_acwmin =
|
pDot11f->acvi_acwmin =
|
||||||
(0xf & psessionEntry->gLimEdcaParamsBC[2].cw.min);
|
(0xf & pe_session->gLimEdcaParamsBC[2].cw.min);
|
||||||
pDot11f->acvi_acwmax =
|
pDot11f->acvi_acwmax =
|
||||||
(0xf & psessionEntry->gLimEdcaParamsBC[2].cw.max);
|
(0xf & pe_session->gLimEdcaParamsBC[2].cw.max);
|
||||||
pDot11f->acvi_txoplimit =
|
pDot11f->acvi_txoplimit =
|
||||||
psessionEntry->gLimEdcaParamsBC[2].txoplimit;
|
pe_session->gLimEdcaParamsBC[2].txoplimit;
|
||||||
|
|
||||||
pDot11f->acvo_aifsn =
|
pDot11f->acvo_aifsn =
|
||||||
(0xf &
|
(0xf &
|
||||||
SET_AIFSN(psessionEntry->gLimEdcaParamsBC[3].aci.aifsn));
|
SET_AIFSN(pe_session->gLimEdcaParamsBC[3].aci.aifsn));
|
||||||
pDot11f->acvo_acm =
|
pDot11f->acvo_acm =
|
||||||
(0x1 & psessionEntry->gLimEdcaParamsBC[3].aci.acm);
|
(0x1 & pe_session->gLimEdcaParamsBC[3].aci.acm);
|
||||||
pDot11f->acvo_aci = (0x3 & SIR_MAC_EDCAACI_VOICE);
|
pDot11f->acvo_aci = (0x3 & SIR_MAC_EDCAACI_VOICE);
|
||||||
pDot11f->acvo_acwmin =
|
pDot11f->acvo_acwmin =
|
||||||
(0xf & psessionEntry->gLimEdcaParamsBC[3].cw.min);
|
(0xf & pe_session->gLimEdcaParamsBC[3].cw.min);
|
||||||
pDot11f->acvo_acwmax =
|
pDot11f->acvo_acwmax =
|
||||||
(0xf & psessionEntry->gLimEdcaParamsBC[3].cw.max);
|
(0xf & pe_session->gLimEdcaParamsBC[3].cw.max);
|
||||||
pDot11f->acvo_txoplimit =
|
pDot11f->acvo_txoplimit =
|
||||||
psessionEntry->gLimEdcaParamsBC[3].txoplimit;
|
pe_session->gLimEdcaParamsBC[3].txoplimit;
|
||||||
|
|
||||||
pDot11f->present = 1;
|
pDot11f->present = 1;
|
||||||
}
|
}
|
||||||
@@ -487,35 +487,35 @@ populate_dot11f_edca_param_set(tpAniSirGlobal mac,
|
|||||||
|
|
||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
populate_dot11f_erp_info(tpAniSirGlobal mac,
|
populate_dot11f_erp_info(tpAniSirGlobal mac,
|
||||||
tDot11fIEERPInfo *pDot11f, struct pe_session *psessionEntry)
|
tDot11fIEERPInfo *pDot11f, struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
uint32_t val;
|
uint32_t val;
|
||||||
enum band_info rfBand = BAND_UNKNOWN;
|
enum band_info rfBand = BAND_UNKNOWN;
|
||||||
|
|
||||||
lim_get_rf_band_new(mac, &rfBand, psessionEntry);
|
lim_get_rf_band_new(mac, &rfBand, pe_session);
|
||||||
if (BAND_2G == rfBand) {
|
if (BAND_2G == rfBand) {
|
||||||
pDot11f->present = 1;
|
pDot11f->present = 1;
|
||||||
|
|
||||||
val = psessionEntry->cfgProtection.fromllb;
|
val = pe_session->cfgProtection.fromllb;
|
||||||
if (!val) {
|
if (!val) {
|
||||||
pe_err("11B protection not enabled. Not populating ERP IE %d",
|
pe_err("11B protection not enabled. Not populating ERP IE %d",
|
||||||
val);
|
val);
|
||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (psessionEntry->gLim11bParams.protectionEnabled) {
|
if (pe_session->gLim11bParams.protectionEnabled) {
|
||||||
pDot11f->non_erp_present = 1;
|
pDot11f->non_erp_present = 1;
|
||||||
pDot11f->use_prot = 1;
|
pDot11f->use_prot = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (psessionEntry->gLimOlbcParams.protectionEnabled) {
|
if (pe_session->gLimOlbcParams.protectionEnabled) {
|
||||||
/* FIXME_PROTECTION: we should be setting non_erp present also. */
|
/* FIXME_PROTECTION: we should be setting non_erp present also. */
|
||||||
/* check the test plan first. */
|
/* check the test plan first. */
|
||||||
pDot11f->use_prot = 1;
|
pDot11f->use_prot = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((psessionEntry->gLimNoShortParams.numNonShortPreambleSta)
|
if ((pe_session->gLimNoShortParams.numNonShortPreambleSta)
|
||||||
|| !psessionEntry->beaconParams.fShortPreamble) {
|
|| !pe_session->beaconParams.fShortPreamble) {
|
||||||
pDot11f->barker_preamble = 1;
|
pDot11f->barker_preamble = 1;
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -527,7 +527,7 @@ populate_dot11f_erp_info(tpAniSirGlobal mac,
|
|||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
populate_dot11f_ext_supp_rates(tpAniSirGlobal mac, uint8_t nChannelNum,
|
populate_dot11f_ext_supp_rates(tpAniSirGlobal mac, uint8_t nChannelNum,
|
||||||
tDot11fIEExtSuppRates *pDot11f,
|
tDot11fIEExtSuppRates *pDot11f,
|
||||||
struct pe_session *psessionEntry)
|
struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
QDF_STATUS nsir_status;
|
QDF_STATUS nsir_status;
|
||||||
qdf_size_t nRates = 0;
|
qdf_size_t nRates = 0;
|
||||||
@@ -538,9 +538,9 @@ populate_dot11f_ext_supp_rates(tpAniSirGlobal mac, uint8_t nChannelNum,
|
|||||||
sending mgmt frames (lile probe req) which need to go out before any session is present.
|
sending mgmt frames (lile probe req) which need to go out before any session is present.
|
||||||
*/
|
*/
|
||||||
if (POPULATE_DOT11F_RATES_OPERATIONAL == nChannelNum) {
|
if (POPULATE_DOT11F_RATES_OPERATIONAL == nChannelNum) {
|
||||||
if (psessionEntry != NULL) {
|
if (pe_session != NULL) {
|
||||||
nRates = psessionEntry->extRateSet.numRates;
|
nRates = pe_session->extRateSet.numRates;
|
||||||
qdf_mem_copy(rates, psessionEntry->extRateSet.rate,
|
qdf_mem_copy(rates, pe_session->extRateSet.rate,
|
||||||
nRates);
|
nRates);
|
||||||
} else {
|
} else {
|
||||||
pe_err("no session context exists while populating Operational Rate Set");
|
pe_err("no session context exists while populating Operational Rate Set");
|
||||||
@@ -606,7 +606,7 @@ populate_dot11f_ext_supp_rates1(tpAniSirGlobal mac,
|
|||||||
|
|
||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
populate_dot11f_ht_caps(tpAniSirGlobal mac,
|
populate_dot11f_ht_caps(tpAniSirGlobal mac,
|
||||||
struct pe_session *psessionEntry, tDot11fIEHTCaps *pDot11f)
|
struct pe_session *pe_session, tDot11fIEHTCaps *pDot11f)
|
||||||
{
|
{
|
||||||
uint32_t nCfgValue;
|
uint32_t nCfgValue;
|
||||||
uint8_t nCfgValue8;
|
uint8_t nCfgValue8;
|
||||||
@@ -630,7 +630,7 @@ populate_dot11f_ht_caps(tpAniSirGlobal mac,
|
|||||||
pDot11f->lsigTXOPProtection = ht_cap_info->l_sig_tx_op_protection;
|
pDot11f->lsigTXOPProtection = ht_cap_info->l_sig_tx_op_protection;
|
||||||
|
|
||||||
/* All sessionized entries will need the check below */
|
/* All sessionized entries will need the check below */
|
||||||
if (psessionEntry == NULL) { /* Only in case of NO session */
|
if (pe_session == NULL) { /* Only in case of NO session */
|
||||||
pDot11f->supportedChannelWidthSet =
|
pDot11f->supportedChannelWidthSet =
|
||||||
ht_cap_info->supported_channel_width_set;
|
ht_cap_info->supported_channel_width_set;
|
||||||
pDot11f->advCodingCap = ht_cap_info->adv_coding_cap;
|
pDot11f->advCodingCap = ht_cap_info->adv_coding_cap;
|
||||||
@@ -639,13 +639,13 @@ populate_dot11f_ht_caps(tpAniSirGlobal mac,
|
|||||||
pDot11f->shortGI20MHz = ht_cap_info->short_gi_20_mhz;
|
pDot11f->shortGI20MHz = ht_cap_info->short_gi_20_mhz;
|
||||||
pDot11f->shortGI40MHz = ht_cap_info->short_gi_40_mhz;
|
pDot11f->shortGI40MHz = ht_cap_info->short_gi_40_mhz;
|
||||||
} else {
|
} else {
|
||||||
pDot11f->advCodingCap = psessionEntry->htConfig.ht_rx_ldpc;
|
pDot11f->advCodingCap = pe_session->htConfig.ht_rx_ldpc;
|
||||||
pDot11f->supportedChannelWidthSet =
|
pDot11f->supportedChannelWidthSet =
|
||||||
psessionEntry->htSupportedChannelWidthSet;
|
pe_session->htSupportedChannelWidthSet;
|
||||||
pDot11f->txSTBC = psessionEntry->htConfig.ht_tx_stbc;
|
pDot11f->txSTBC = pe_session->htConfig.ht_tx_stbc;
|
||||||
pDot11f->rxSTBC = psessionEntry->htConfig.ht_rx_stbc;
|
pDot11f->rxSTBC = pe_session->htConfig.ht_rx_stbc;
|
||||||
pDot11f->shortGI20MHz = psessionEntry->htConfig.ht_sgi20;
|
pDot11f->shortGI20MHz = pe_session->htConfig.ht_sgi20;
|
||||||
pDot11f->shortGI40MHz = psessionEntry->htConfig.ht_sgi40;
|
pDot11f->shortGI40MHz = pe_session->htConfig.ht_sgi40;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Ensure that shortGI40MHz is Disabled if supportedChannelWidthSet is
|
/* Ensure that shortGI40MHz is Disabled if supportedChannelWidthSet is
|
||||||
@@ -671,16 +671,16 @@ populate_dot11f_ht_caps(tpAniSirGlobal mac,
|
|||||||
return nSirStatus;
|
return nSirStatus;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (psessionEntry) {
|
if (pe_session) {
|
||||||
disable_high_ht_mcs_2x2 =
|
disable_high_ht_mcs_2x2 =
|
||||||
mac->mlme_cfg->rates.disable_high_ht_mcs_2x2;
|
mac->mlme_cfg->rates.disable_high_ht_mcs_2x2;
|
||||||
pe_debug("disable HT high MCS INI param[%d]",
|
pe_debug("disable HT high MCS INI param[%d]",
|
||||||
disable_high_ht_mcs_2x2);
|
disable_high_ht_mcs_2x2);
|
||||||
if (psessionEntry->nss == NSS_1x1_MODE) {
|
if (pe_session->nss == NSS_1x1_MODE) {
|
||||||
pDot11f->supportedMCSSet[1] = 0;
|
pDot11f->supportedMCSSet[1] = 0;
|
||||||
} else if (IS_24G_CH(psessionEntry->currentOperChannel) &&
|
} else if (IS_24G_CH(pe_session->currentOperChannel) &&
|
||||||
disable_high_ht_mcs_2x2 &&
|
disable_high_ht_mcs_2x2 &&
|
||||||
(psessionEntry->pePersona == QDF_STA_MODE)) {
|
(pe_session->pePersona == QDF_STA_MODE)) {
|
||||||
pe_debug("Disabling high HT MCS [%d]",
|
pe_debug("Disabling high HT MCS [%d]",
|
||||||
disable_high_ht_mcs_2x2);
|
disable_high_ht_mcs_2x2);
|
||||||
pDot11f->supportedMCSSet[1] =
|
pDot11f->supportedMCSSet[1] =
|
||||||
@@ -692,13 +692,13 @@ populate_dot11f_ht_caps(tpAniSirGlobal mac,
|
|||||||
/* If STA mode, session supported NSS > 1 and
|
/* If STA mode, session supported NSS > 1 and
|
||||||
* SMPS enabled publish HT SMPS IE
|
* SMPS enabled publish HT SMPS IE
|
||||||
*/
|
*/
|
||||||
if (psessionEntry &&
|
if (pe_session &&
|
||||||
LIM_IS_STA_ROLE(psessionEntry) &&
|
LIM_IS_STA_ROLE(pe_session) &&
|
||||||
(psessionEntry->enableHtSmps) &&
|
(pe_session->enableHtSmps) &&
|
||||||
(!psessionEntry->supported_nss_1x1)) {
|
(!pe_session->supported_nss_1x1)) {
|
||||||
pe_debug("Add SM power save IE: %d",
|
pe_debug("Add SM power save IE: %d",
|
||||||
psessionEntry->htSmpsvalue);
|
pe_session->htSmpsvalue);
|
||||||
pDot11f->mimoPowerSave = psessionEntry->htSmpsvalue;
|
pDot11f->mimoPowerSave = pe_session->htSmpsvalue;
|
||||||
}
|
}
|
||||||
|
|
||||||
pDot11f->pco = mac->mlme_cfg->ht_caps.ext_cap_info.pco;
|
pDot11f->pco = mac->mlme_cfg->ht_caps.ext_cap_info.pco;
|
||||||
@@ -850,7 +850,7 @@ static void lim_log_qos_map_set(tpAniSirGlobal mac, tSirQosMapSet *pQosMapSet)
|
|||||||
|
|
||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
populate_dot11f_vht_caps(tpAniSirGlobal mac,
|
populate_dot11f_vht_caps(tpAniSirGlobal mac,
|
||||||
struct pe_session *psessionEntry, tDot11fIEVHTCaps *pDot11f)
|
struct pe_session *pe_session, tDot11fIEVHTCaps *pDot11f)
|
||||||
{
|
{
|
||||||
uint32_t nCfgValue = 0;
|
uint32_t nCfgValue = 0;
|
||||||
struct mlme_vht_capabilities_info vht_cap_info;
|
struct mlme_vht_capabilities_info vht_cap_info;
|
||||||
@@ -871,60 +871,60 @@ populate_dot11f_vht_caps(tpAniSirGlobal mac,
|
|||||||
|
|
||||||
nCfgValue = 0;
|
nCfgValue = 0;
|
||||||
/* With VHT it suffices if we just examine HT */
|
/* With VHT it suffices if we just examine HT */
|
||||||
if (psessionEntry) {
|
if (pe_session) {
|
||||||
if (psessionEntry->htConfig.ht_rx_ldpc)
|
if (pe_session->htConfig.ht_rx_ldpc)
|
||||||
pDot11f->ldpcCodingCap =
|
pDot11f->ldpcCodingCap =
|
||||||
psessionEntry->vht_config.ldpc_coding;
|
pe_session->vht_config.ldpc_coding;
|
||||||
if (psessionEntry->ch_width < CH_WIDTH_80MHZ) {
|
if (pe_session->ch_width < CH_WIDTH_80MHZ) {
|
||||||
pDot11f->shortGI80MHz = 0;
|
pDot11f->shortGI80MHz = 0;
|
||||||
} else {
|
} else {
|
||||||
pDot11f->shortGI80MHz =
|
pDot11f->shortGI80MHz =
|
||||||
psessionEntry->vht_config.shortgi80;
|
pe_session->vht_config.shortgi80;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (psessionEntry->ch_width < CH_WIDTH_160MHZ) {
|
if (pe_session->ch_width < CH_WIDTH_160MHZ) {
|
||||||
pDot11f->shortGI160and80plus80MHz = 0;
|
pDot11f->shortGI160and80plus80MHz = 0;
|
||||||
pDot11f->supportedChannelWidthSet = 0;
|
pDot11f->supportedChannelWidthSet = 0;
|
||||||
} else {
|
} else {
|
||||||
pDot11f->shortGI160and80plus80MHz =
|
pDot11f->shortGI160and80plus80MHz =
|
||||||
psessionEntry->vht_config.shortgi160and80plus80;
|
pe_session->vht_config.shortgi160and80plus80;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (psessionEntry->htConfig.ht_tx_stbc)
|
if (pe_session->htConfig.ht_tx_stbc)
|
||||||
pDot11f->txSTBC = psessionEntry->vht_config.tx_stbc;
|
pDot11f->txSTBC = pe_session->vht_config.tx_stbc;
|
||||||
|
|
||||||
if (psessionEntry->htConfig.ht_rx_stbc)
|
if (pe_session->htConfig.ht_rx_stbc)
|
||||||
pDot11f->rxSTBC = psessionEntry->vht_config.rx_stbc;
|
pDot11f->rxSTBC = pe_session->vht_config.rx_stbc;
|
||||||
|
|
||||||
pDot11f->suBeamformeeCap =
|
pDot11f->suBeamformeeCap =
|
||||||
psessionEntry->vht_config.su_beam_formee;
|
pe_session->vht_config.su_beam_formee;
|
||||||
if (psessionEntry->vht_config.su_beam_formee) {
|
if (pe_session->vht_config.su_beam_formee) {
|
||||||
pDot11f->muBeamformeeCap =
|
pDot11f->muBeamformeeCap =
|
||||||
psessionEntry->vht_config.mu_beam_formee;
|
pe_session->vht_config.mu_beam_formee;
|
||||||
pDot11f->csnofBeamformerAntSup =
|
pDot11f->csnofBeamformerAntSup =
|
||||||
psessionEntry->vht_config.csnof_beamformer_antSup;
|
pe_session->vht_config.csnof_beamformer_antSup;
|
||||||
} else {
|
} else {
|
||||||
pDot11f->muBeamformeeCap = 0;
|
pDot11f->muBeamformeeCap = 0;
|
||||||
}
|
}
|
||||||
pDot11f->suBeamFormerCap =
|
pDot11f->suBeamFormerCap =
|
||||||
psessionEntry->vht_config.su_beam_former;
|
pe_session->vht_config.su_beam_former;
|
||||||
|
|
||||||
pDot11f->vhtTXOPPS = psessionEntry->vht_config.vht_txops;
|
pDot11f->vhtTXOPPS = pe_session->vht_config.vht_txops;
|
||||||
|
|
||||||
pDot11f->numSoundingDim =
|
pDot11f->numSoundingDim =
|
||||||
psessionEntry->vht_config.num_soundingdim;
|
pe_session->vht_config.num_soundingdim;
|
||||||
|
|
||||||
pDot11f->htcVHTCap = psessionEntry->vht_config.htc_vhtcap;
|
pDot11f->htcVHTCap = pe_session->vht_config.htc_vhtcap;
|
||||||
|
|
||||||
pDot11f->rxAntPattern = psessionEntry->vht_config.rx_antpattern;
|
pDot11f->rxAntPattern = pe_session->vht_config.rx_antpattern;
|
||||||
|
|
||||||
pDot11f->txAntPattern = psessionEntry->vht_config.tx_antpattern;
|
pDot11f->txAntPattern = pe_session->vht_config.tx_antpattern;
|
||||||
|
|
||||||
pDot11f->maxAMPDULenExp =
|
pDot11f->maxAMPDULenExp =
|
||||||
psessionEntry->vht_config.max_ampdu_lenexp;
|
pe_session->vht_config.max_ampdu_lenexp;
|
||||||
|
|
||||||
pDot11f->vhtLinkAdaptCap =
|
pDot11f->vhtLinkAdaptCap =
|
||||||
psessionEntry->vht_config.vht_link_adapt;
|
pe_session->vht_config.vht_link_adapt;
|
||||||
} else {
|
} else {
|
||||||
nCfgValue = vht_cap_info.ldpc_coding_cap;
|
nCfgValue = vht_cap_info.ldpc_coding_cap;
|
||||||
pDot11f->ldpcCodingCap = (nCfgValue & 0x0001);
|
pDot11f->ldpcCodingCap = (nCfgValue & 0x0001);
|
||||||
@@ -994,15 +994,15 @@ populate_dot11f_vht_caps(tpAniSirGlobal mac,
|
|||||||
pDot11f->txSupDataRate = (nCfgValue & 0x00001FFF);
|
pDot11f->txSupDataRate = (nCfgValue & 0x00001FFF);
|
||||||
|
|
||||||
pDot11f->reserved3 = 0;
|
pDot11f->reserved3 = 0;
|
||||||
if (psessionEntry) {
|
if (pe_session) {
|
||||||
if (psessionEntry->nss == NSS_1x1_MODE) {
|
if (pe_session->nss == NSS_1x1_MODE) {
|
||||||
pDot11f->txMCSMap |= DISABLE_NSS2_MCS;
|
pDot11f->txMCSMap |= DISABLE_NSS2_MCS;
|
||||||
pDot11f->rxMCSMap |= DISABLE_NSS2_MCS;
|
pDot11f->rxMCSMap |= DISABLE_NSS2_MCS;
|
||||||
pDot11f->txSupDataRate =
|
pDot11f->txSupDataRate =
|
||||||
VHT_TX_HIGHEST_SUPPORTED_DATA_RATE_1_1;
|
VHT_TX_HIGHEST_SUPPORTED_DATA_RATE_1_1;
|
||||||
pDot11f->rxHighSupDataRate =
|
pDot11f->rxHighSupDataRate =
|
||||||
VHT_RX_HIGHEST_SUPPORTED_DATA_RATE_1_1;
|
VHT_RX_HIGHEST_SUPPORTED_DATA_RATE_1_1;
|
||||||
if (!psessionEntry->ch_width &&
|
if (!pe_session->ch_width &&
|
||||||
!vht_cap_info.enable_vht20_mcs9 &&
|
!vht_cap_info.enable_vht20_mcs9 &&
|
||||||
((pDot11f->txMCSMap & VHT_1x1_MCS_MASK) ==
|
((pDot11f->txMCSMap & VHT_1x1_MCS_MASK) ==
|
||||||
VHT_1x1_MCS9_MAP)) {
|
VHT_1x1_MCS9_MAP)) {
|
||||||
@@ -1012,7 +1012,7 @@ populate_dot11f_vht_caps(tpAniSirGlobal mac,
|
|||||||
NSS_1x1_MODE);
|
NSS_1x1_MODE);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (!psessionEntry->ch_width &&
|
if (!pe_session->ch_width &&
|
||||||
!vht_cap_info.enable_vht20_mcs9 &&
|
!vht_cap_info.enable_vht20_mcs9 &&
|
||||||
((pDot11f->txMCSMap & VHT_2x2_MCS_MASK) ==
|
((pDot11f->txMCSMap & VHT_2x2_MCS_MASK) ==
|
||||||
VHT_2x2_MCS9_MAP)) {
|
VHT_2x2_MCS9_MAP)) {
|
||||||
@@ -1029,19 +1029,19 @@ populate_dot11f_vht_caps(tpAniSirGlobal mac,
|
|||||||
|
|
||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
populate_dot11f_vht_operation(tpAniSirGlobal mac,
|
populate_dot11f_vht_operation(tpAniSirGlobal mac,
|
||||||
struct pe_session *psessionEntry,
|
struct pe_session *pe_session,
|
||||||
tDot11fIEVHTOperation *pDot11f)
|
tDot11fIEVHTOperation *pDot11f)
|
||||||
{
|
{
|
||||||
pDot11f->present = 1;
|
pDot11f->present = 1;
|
||||||
|
|
||||||
if (psessionEntry->ch_width > CH_WIDTH_40MHZ) {
|
if (pe_session->ch_width > CH_WIDTH_40MHZ) {
|
||||||
pDot11f->chanWidth = 1;
|
pDot11f->chanWidth = 1;
|
||||||
pDot11f->chanCenterFreqSeg1 =
|
pDot11f->chanCenterFreqSeg1 =
|
||||||
psessionEntry->ch_center_freq_seg0;
|
pe_session->ch_center_freq_seg0;
|
||||||
if (psessionEntry->ch_width == CH_WIDTH_80P80MHZ ||
|
if (pe_session->ch_width == CH_WIDTH_80P80MHZ ||
|
||||||
psessionEntry->ch_width == CH_WIDTH_160MHZ)
|
pe_session->ch_width == CH_WIDTH_160MHZ)
|
||||||
pDot11f->chanCenterFreqSeg2 =
|
pDot11f->chanCenterFreqSeg2 =
|
||||||
psessionEntry->ch_center_freq_seg1;
|
pe_session->ch_center_freq_seg1;
|
||||||
else
|
else
|
||||||
pDot11f->chanCenterFreqSeg2 = 0;
|
pDot11f->chanCenterFreqSeg2 = 0;
|
||||||
} else {
|
} else {
|
||||||
@@ -1062,20 +1062,20 @@ populate_dot11f_vht_operation(tpAniSirGlobal mac,
|
|||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
populate_dot11f_ext_cap(tpAniSirGlobal mac,
|
populate_dot11f_ext_cap(tpAniSirGlobal mac,
|
||||||
bool isVHTEnabled, tDot11fIEExtCap *pDot11f,
|
bool isVHTEnabled, tDot11fIEExtCap *pDot11f,
|
||||||
struct pe_session *psessionEntry)
|
struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
struct s_ext_cap *p_ext_cap;
|
struct s_ext_cap *p_ext_cap;
|
||||||
|
|
||||||
pDot11f->present = 1;
|
pDot11f->present = 1;
|
||||||
|
|
||||||
if (!psessionEntry) {
|
if (!pe_session) {
|
||||||
pe_debug("11MC - enabled for non-SAP cases");
|
pe_debug("11MC - enabled for non-SAP cases");
|
||||||
pDot11f->num_bytes = DOT11F_IE_EXTCAP_MAX_LEN;
|
pDot11f->num_bytes = DOT11F_IE_EXTCAP_MAX_LEN;
|
||||||
} else if (psessionEntry->sap_dot11mc) {
|
} else if (pe_session->sap_dot11mc) {
|
||||||
pe_debug("11MC support enabled");
|
pe_debug("11MC support enabled");
|
||||||
pDot11f->num_bytes = DOT11F_IE_EXTCAP_MAX_LEN;
|
pDot11f->num_bytes = DOT11F_IE_EXTCAP_MAX_LEN;
|
||||||
} else {
|
} else {
|
||||||
if (eLIM_AP_ROLE != psessionEntry->limSystemRole) {
|
if (eLIM_AP_ROLE != pe_session->limSystemRole) {
|
||||||
pe_debug("11MC support enabled");
|
pe_debug("11MC support enabled");
|
||||||
pDot11f->num_bytes = DOT11F_IE_EXTCAP_MAX_LEN;
|
pDot11f->num_bytes = DOT11F_IE_EXTCAP_MAX_LEN;
|
||||||
} else {
|
} else {
|
||||||
@@ -1090,12 +1090,12 @@ populate_dot11f_ext_cap(tpAniSirGlobal mac,
|
|||||||
|
|
||||||
if (mac->mlme_cfg->gen.rtt3_enabled) {
|
if (mac->mlme_cfg->gen.rtt3_enabled) {
|
||||||
uint32_t ftm = ucfg_wifi_pos_get_ftm_cap(mac->psoc);
|
uint32_t ftm = ucfg_wifi_pos_get_ftm_cap(mac->psoc);
|
||||||
if (!psessionEntry || LIM_IS_STA_ROLE(psessionEntry)) {
|
if (!pe_session || LIM_IS_STA_ROLE(pe_session)) {
|
||||||
p_ext_cap->fine_time_meas_initiator =
|
p_ext_cap->fine_time_meas_initiator =
|
||||||
(ftm & WMI_FW_STA_RTT_INITR) ? 1 : 0;
|
(ftm & WMI_FW_STA_RTT_INITR) ? 1 : 0;
|
||||||
p_ext_cap->fine_time_meas_responder =
|
p_ext_cap->fine_time_meas_responder =
|
||||||
(ftm & WMI_FW_STA_RTT_RESPR) ? 1 : 0;
|
(ftm & WMI_FW_STA_RTT_RESPR) ? 1 : 0;
|
||||||
} else if (LIM_IS_AP_ROLE(psessionEntry)) {
|
} else if (LIM_IS_AP_ROLE(pe_session)) {
|
||||||
p_ext_cap->fine_time_meas_initiator =
|
p_ext_cap->fine_time_meas_initiator =
|
||||||
(ftm & WMI_FW_AP_RTT_INITR) ? 1 : 0;
|
(ftm & WMI_FW_AP_RTT_INITR) ? 1 : 0;
|
||||||
p_ext_cap->fine_time_meas_responder =
|
p_ext_cap->fine_time_meas_responder =
|
||||||
@@ -1108,7 +1108,7 @@ populate_dot11f_ext_cap(tpAniSirGlobal mac,
|
|||||||
#endif
|
#endif
|
||||||
p_ext_cap->ext_chan_switch = 1;
|
p_ext_cap->ext_chan_switch = 1;
|
||||||
|
|
||||||
if (psessionEntry && psessionEntry->enable_bcast_probe_rsp)
|
if (pe_session && pe_session->enable_bcast_probe_rsp)
|
||||||
p_ext_cap->fils_capability = 1;
|
p_ext_cap->fils_capability = 1;
|
||||||
|
|
||||||
/* Need to calculate the num_bytes based on bits set */
|
/* Need to calculate the num_bytes based on bits set */
|
||||||
@@ -1130,47 +1130,47 @@ void populate_dot11f_qcn_ie(tDot11fIEQCN_IE *pDot11f)
|
|||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
populate_dot11f_operating_mode(tpAniSirGlobal mac,
|
populate_dot11f_operating_mode(tpAniSirGlobal mac,
|
||||||
tDot11fIEOperatingMode *pDot11f,
|
tDot11fIEOperatingMode *pDot11f,
|
||||||
struct pe_session *psessionEntry)
|
struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
pDot11f->present = 1;
|
pDot11f->present = 1;
|
||||||
|
|
||||||
pDot11f->chanWidth = psessionEntry->gLimOperatingMode.chanWidth;
|
pDot11f->chanWidth = pe_session->gLimOperatingMode.chanWidth;
|
||||||
pDot11f->rxNSS = psessionEntry->gLimOperatingMode.rxNSS;
|
pDot11f->rxNSS = pe_session->gLimOperatingMode.rxNSS;
|
||||||
pDot11f->rxNSSType = psessionEntry->gLimOperatingMode.rxNSSType;
|
pDot11f->rxNSSType = pe_session->gLimOperatingMode.rxNSSType;
|
||||||
|
|
||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
populate_dot11f_ht_info(tpAniSirGlobal mac,
|
populate_dot11f_ht_info(tpAniSirGlobal mac,
|
||||||
tDot11fIEHTInfo *pDot11f, struct pe_session *psessionEntry)
|
tDot11fIEHTInfo *pDot11f, struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
qdf_size_t ncfglen;
|
qdf_size_t ncfglen;
|
||||||
QDF_STATUS nSirStatus;
|
QDF_STATUS nSirStatus;
|
||||||
|
|
||||||
if (NULL == psessionEntry) {
|
if (NULL == pe_session) {
|
||||||
pe_err("Invalid session entry");
|
pe_err("Invalid session entry");
|
||||||
return QDF_STATUS_E_FAILURE;
|
return QDF_STATUS_E_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
pDot11f->primaryChannel = psessionEntry->currentOperChannel;
|
pDot11f->primaryChannel = pe_session->currentOperChannel;
|
||||||
|
|
||||||
pDot11f->secondaryChannelOffset =
|
pDot11f->secondaryChannelOffset =
|
||||||
psessionEntry->htSecondaryChannelOffset;
|
pe_session->htSecondaryChannelOffset;
|
||||||
pDot11f->recommendedTxWidthSet =
|
pDot11f->recommendedTxWidthSet =
|
||||||
psessionEntry->htRecommendedTxWidthSet;
|
pe_session->htRecommendedTxWidthSet;
|
||||||
pDot11f->rifsMode = psessionEntry->beaconParams.fRIFSMode;
|
pDot11f->rifsMode = pe_session->beaconParams.fRIFSMode;
|
||||||
pDot11f->controlledAccessOnly =
|
pDot11f->controlledAccessOnly =
|
||||||
mac->mlme_cfg->ht_caps.info_field_1.controlled_access_only;
|
mac->mlme_cfg->ht_caps.info_field_1.controlled_access_only;
|
||||||
pDot11f->serviceIntervalGranularity =
|
pDot11f->serviceIntervalGranularity =
|
||||||
mac->lim.gHTServiceIntervalGranularity;
|
mac->lim.gHTServiceIntervalGranularity;
|
||||||
|
|
||||||
if (LIM_IS_AP_ROLE(psessionEntry)) {
|
if (LIM_IS_AP_ROLE(pe_session)) {
|
||||||
pDot11f->opMode = psessionEntry->htOperMode;
|
pDot11f->opMode = pe_session->htOperMode;
|
||||||
pDot11f->nonGFDevicesPresent =
|
pDot11f->nonGFDevicesPresent =
|
||||||
psessionEntry->beaconParams.llnNonGFCoexist;
|
pe_session->beaconParams.llnNonGFCoexist;
|
||||||
pDot11f->obssNonHTStaPresent =
|
pDot11f->obssNonHTStaPresent =
|
||||||
psessionEntry->beaconParams.gHTObssMode;
|
pe_session->beaconParams.gHTObssMode;
|
||||||
pDot11f->reserved = 0;
|
pDot11f->reserved = 0;
|
||||||
} else {
|
} else {
|
||||||
pDot11f->opMode = 0;
|
pDot11f->opMode = 0;
|
||||||
@@ -1183,7 +1183,7 @@ populate_dot11f_ht_info(tpAniSirGlobal mac,
|
|||||||
pDot11f->dualCTSProtection = mac->lim.gHTDualCTSProtection;
|
pDot11f->dualCTSProtection = mac->lim.gHTDualCTSProtection;
|
||||||
pDot11f->secondaryBeacon = mac->lim.gHTSecondaryBeacon;
|
pDot11f->secondaryBeacon = mac->lim.gHTSecondaryBeacon;
|
||||||
pDot11f->lsigTXOPProtectionFullSupport =
|
pDot11f->lsigTXOPProtectionFullSupport =
|
||||||
psessionEntry->beaconParams.fLsigTXOPProtectionFullSupport;
|
pe_session->beaconParams.fLsigTXOPProtectionFullSupport;
|
||||||
pDot11f->pcoActive = mac->lim.gHTPCOActive;
|
pDot11f->pcoActive = mac->lim.gHTPCOActive;
|
||||||
pDot11f->pcoPhase = mac->lim.gHTPCOPhase;
|
pDot11f->pcoPhase = mac->lim.gHTPCOPhase;
|
||||||
pDot11f->reserved2 = 0;
|
pDot11f->reserved2 = 0;
|
||||||
@@ -1207,11 +1207,11 @@ populate_dot11f_ht_info(tpAniSirGlobal mac,
|
|||||||
void
|
void
|
||||||
populate_dot11f_ibss_params(tpAniSirGlobal mac,
|
populate_dot11f_ibss_params(tpAniSirGlobal mac,
|
||||||
tDot11fIEIBSSParams *pDot11f,
|
tDot11fIEIBSSParams *pDot11f,
|
||||||
struct pe_session *psessionEntry)
|
struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
uint32_t val = 0;
|
uint32_t val = 0;
|
||||||
|
|
||||||
if (LIM_IS_IBSS_ROLE(psessionEntry)) {
|
if (LIM_IS_IBSS_ROLE(pe_session)) {
|
||||||
if (wlan_cfg_get_int(mac,
|
if (wlan_cfg_get_int(mac,
|
||||||
WNI_CFG_IBSS_ATIM_WIN_SIZE,
|
WNI_CFG_IBSS_ATIM_WIN_SIZE,
|
||||||
&val) != QDF_STATUS_SUCCESS) {
|
&val) != QDF_STATUS_SUCCESS) {
|
||||||
@@ -1272,18 +1272,18 @@ populate_dot11f_measurement_report2(tpAniSirGlobal mac,
|
|||||||
void
|
void
|
||||||
populate_dot11f_power_caps(tpAniSirGlobal mac,
|
populate_dot11f_power_caps(tpAniSirGlobal mac,
|
||||||
tDot11fIEPowerCaps *pCaps,
|
tDot11fIEPowerCaps *pCaps,
|
||||||
uint8_t nAssocType, struct pe_session *psessionEntry)
|
uint8_t nAssocType, struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
if (nAssocType == LIM_REASSOC) {
|
if (nAssocType == LIM_REASSOC) {
|
||||||
pCaps->minTxPower =
|
pCaps->minTxPower =
|
||||||
psessionEntry->pLimReAssocReq->powerCap.minTxPower;
|
pe_session->pLimReAssocReq->powerCap.minTxPower;
|
||||||
pCaps->maxTxPower =
|
pCaps->maxTxPower =
|
||||||
psessionEntry->pLimReAssocReq->powerCap.maxTxPower;
|
pe_session->pLimReAssocReq->powerCap.maxTxPower;
|
||||||
} else {
|
} else {
|
||||||
pCaps->minTxPower =
|
pCaps->minTxPower =
|
||||||
psessionEntry->pLimJoinReq->powerCap.minTxPower;
|
pe_session->pLimJoinReq->powerCap.minTxPower;
|
||||||
pCaps->maxTxPower =
|
pCaps->maxTxPower =
|
||||||
psessionEntry->pLimJoinReq->powerCap.maxTxPower;
|
pe_session->pLimJoinReq->powerCap.maxTxPower;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1307,9 +1307,9 @@ populate_dot11f_power_constraints(tpAniSirGlobal mac,
|
|||||||
|
|
||||||
void
|
void
|
||||||
populate_dot11f_qos_caps_ap(tpAniSirGlobal mac,
|
populate_dot11f_qos_caps_ap(tpAniSirGlobal mac,
|
||||||
tDot11fIEQOSCapsAp *pDot11f, struct pe_session *psessionEntry)
|
tDot11fIEQOSCapsAp *pDot11f, struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
pDot11f->count = psessionEntry->gLimEdcaParamSetCount;
|
pDot11f->count = pe_session->gLimEdcaParamSetCount;
|
||||||
pDot11f->reserved = 0;
|
pDot11f->reserved = 0;
|
||||||
pDot11f->txopreq = 0;
|
pDot11f->txopreq = 0;
|
||||||
pDot11f->qreq = 0;
|
pDot11f->qreq = 0;
|
||||||
@@ -1477,21 +1477,21 @@ populate_dot11f_schedule(tSirMacScheduleIE *pSchedule,
|
|||||||
void
|
void
|
||||||
populate_dot11f_supp_channels(tpAniSirGlobal mac,
|
populate_dot11f_supp_channels(tpAniSirGlobal mac,
|
||||||
tDot11fIESuppChannels *pDot11f,
|
tDot11fIESuppChannels *pDot11f,
|
||||||
uint8_t nAssocType, struct pe_session *psessionEntry)
|
uint8_t nAssocType, struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
uint8_t i;
|
uint8_t i;
|
||||||
uint8_t *p;
|
uint8_t *p;
|
||||||
|
|
||||||
if (nAssocType == LIM_REASSOC) {
|
if (nAssocType == LIM_REASSOC) {
|
||||||
p = (uint8_t *) psessionEntry->pLimReAssocReq->
|
p = (uint8_t *) pe_session->pLimReAssocReq->
|
||||||
supportedChannels.channelList;
|
supportedChannels.channelList;
|
||||||
pDot11f->num_bands =
|
pDot11f->num_bands =
|
||||||
psessionEntry->pLimReAssocReq->supportedChannels.numChnl;
|
pe_session->pLimReAssocReq->supportedChannels.numChnl;
|
||||||
} else {
|
} else {
|
||||||
p = (uint8_t *) psessionEntry->pLimJoinReq->supportedChannels.
|
p = (uint8_t *) pe_session->pLimJoinReq->supportedChannels.
|
||||||
channelList;
|
channelList;
|
||||||
pDot11f->num_bands =
|
pDot11f->num_bands =
|
||||||
psessionEntry->pLimJoinReq->supportedChannels.numChnl;
|
pe_session->pLimJoinReq->supportedChannels.numChnl;
|
||||||
}
|
}
|
||||||
for (i = 0U; i < pDot11f->num_bands; ++i, ++p) {
|
for (i = 0U; i < pDot11f->num_bands; ++i, ++p) {
|
||||||
pDot11f->bands[i][0] = *p;
|
pDot11f->bands[i][0] = *p;
|
||||||
@@ -1505,7 +1505,7 @@ populate_dot11f_supp_channels(tpAniSirGlobal mac,
|
|||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
populate_dot11f_supp_rates(tpAniSirGlobal mac,
|
populate_dot11f_supp_rates(tpAniSirGlobal mac,
|
||||||
uint8_t nChannelNum,
|
uint8_t nChannelNum,
|
||||||
tDot11fIESuppRates *pDot11f, struct pe_session *psessionEntry)
|
tDot11fIESuppRates *pDot11f, struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
QDF_STATUS nsir_status;
|
QDF_STATUS nsir_status;
|
||||||
qdf_size_t nRates;
|
qdf_size_t nRates;
|
||||||
@@ -1520,9 +1520,9 @@ populate_dot11f_supp_rates(tpAniSirGlobal mac,
|
|||||||
CFG_GET_STR(nsir_status, mac, WNI_CFG_OPERATIONAL_RATE_SET,
|
CFG_GET_STR(nsir_status, mac, WNI_CFG_OPERATIONAL_RATE_SET,
|
||||||
rates, nRates, SIR_MAC_MAX_NUMBER_OF_RATES);
|
rates, nRates, SIR_MAC_MAX_NUMBER_OF_RATES);
|
||||||
#endif /* TO SUPPORT BT-AMP */
|
#endif /* TO SUPPORT BT-AMP */
|
||||||
if (psessionEntry != NULL) {
|
if (pe_session != NULL) {
|
||||||
nRates = psessionEntry->rateSet.numRates;
|
nRates = pe_session->rateSet.numRates;
|
||||||
qdf_mem_copy(rates, psessionEntry->rateSet.rate,
|
qdf_mem_copy(rates, pe_session->rateSet.rate,
|
||||||
nRates);
|
nRates);
|
||||||
} else {
|
} else {
|
||||||
pe_err("no session context exists while populating Operational Rate Set");
|
pe_err("no session context exists while populating Operational Rate Set");
|
||||||
@@ -1674,13 +1674,13 @@ populate_dot11f_rates_tdls(tpAniSirGlobal p_mac,
|
|||||||
|
|
||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
populate_dot11f_tpc_report(tpAniSirGlobal mac,
|
populate_dot11f_tpc_report(tpAniSirGlobal mac,
|
||||||
tDot11fIETPCReport *pDot11f, struct pe_session *psessionEntry)
|
tDot11fIETPCReport *pDot11f, struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
uint16_t staid;
|
uint16_t staid;
|
||||||
uint8_t tx_power;
|
uint8_t tx_power;
|
||||||
QDF_STATUS nSirStatus;
|
QDF_STATUS nSirStatus;
|
||||||
|
|
||||||
nSirStatus = lim_get_mgmt_staid(mac, &staid, psessionEntry);
|
nSirStatus = lim_get_mgmt_staid(mac, &staid, pe_session);
|
||||||
if (QDF_STATUS_SUCCESS != nSirStatus) {
|
if (QDF_STATUS_SUCCESS != nSirStatus) {
|
||||||
pe_err("Failed to get the STAID in Populate Dot11fTPCReport; lim_get_mgmt_staid returned status %d",
|
pe_err("Failed to get the STAID in Populate Dot11fTPCReport; lim_get_mgmt_staid returned status %d",
|
||||||
nSirStatus);
|
nSirStatus);
|
||||||
@@ -1689,7 +1689,7 @@ populate_dot11f_tpc_report(tpAniSirGlobal mac,
|
|||||||
/* FramesToDo: This function was "misplaced" in the move to Gen4_TVM... */
|
/* FramesToDo: This function was "misplaced" in the move to Gen4_TVM... */
|
||||||
/* txPower = halGetRateToPwrValue( mac, staid, mac->lim.gLimCurrentChannelId, isBeacon ); */
|
/* txPower = halGetRateToPwrValue( mac, staid, mac->lim.gLimCurrentChannelId, isBeacon ); */
|
||||||
tx_power = cfg_get_regulatory_max_transmit_power(mac,
|
tx_power = cfg_get_regulatory_max_transmit_power(mac,
|
||||||
psessionEntry->currentOperChannel);
|
pe_session->currentOperChannel);
|
||||||
pDot11f->tx_power = tx_power;
|
pDot11f->tx_power = tx_power;
|
||||||
pDot11f->link_margin = 0;
|
pDot11f->link_margin = 0;
|
||||||
pDot11f->present = 1;
|
pDot11f->present = 1;
|
||||||
@@ -1713,22 +1713,22 @@ void populate_dot11f_ts_info(tSirMacTSInfo *pInfo, tDot11fFfTSInfo *pDot11f)
|
|||||||
void populate_dot11f_wmm(tpAniSirGlobal mac,
|
void populate_dot11f_wmm(tpAniSirGlobal mac,
|
||||||
tDot11fIEWMMInfoAp *pInfo,
|
tDot11fIEWMMInfoAp *pInfo,
|
||||||
tDot11fIEWMMParams *pParams,
|
tDot11fIEWMMParams *pParams,
|
||||||
tDot11fIEWMMCaps *pCaps, struct pe_session *psessionEntry)
|
tDot11fIEWMMCaps *pCaps, struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
if (psessionEntry->limWmeEnabled) {
|
if (pe_session->limWmeEnabled) {
|
||||||
if (LIM_IS_IBSS_ROLE(psessionEntry)) {
|
if (LIM_IS_IBSS_ROLE(pe_session)) {
|
||||||
/* if ( ! sirIsPropCapabilityEnabled( mac, SIR_MAC_PROP_CAPABILITY_WME ) ) */
|
/* if ( ! sirIsPropCapabilityEnabled( mac, SIR_MAC_PROP_CAPABILITY_WME ) ) */
|
||||||
{
|
{
|
||||||
populate_dot11f_wmm_info_ap(mac, pInfo,
|
populate_dot11f_wmm_info_ap(mac, pInfo,
|
||||||
psessionEntry);
|
pe_session);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
{
|
{
|
||||||
populate_dot11f_wmm_params(mac, pParams,
|
populate_dot11f_wmm_params(mac, pParams,
|
||||||
psessionEntry);
|
pe_session);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (psessionEntry->limWsmEnabled) {
|
if (pe_session->limWsmEnabled) {
|
||||||
populate_dot11f_wmm_caps(pCaps);
|
populate_dot11f_wmm_caps(pCaps);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1748,13 +1748,13 @@ void populate_dot11f_wmm_caps(tDot11fIEWMMCaps *pCaps)
|
|||||||
#ifdef FEATURE_WLAN_ESE
|
#ifdef FEATURE_WLAN_ESE
|
||||||
void populate_dot11f_re_assoc_tspec(tpAniSirGlobal mac,
|
void populate_dot11f_re_assoc_tspec(tpAniSirGlobal mac,
|
||||||
tDot11fReAssocRequest *pReassoc,
|
tDot11fReAssocRequest *pReassoc,
|
||||||
struct pe_session *psessionEntry)
|
struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
uint8_t numTspecs = 0, idx;
|
uint8_t numTspecs = 0, idx;
|
||||||
tTspecInfo *pTspec = NULL;
|
tTspecInfo *pTspec = NULL;
|
||||||
|
|
||||||
numTspecs = psessionEntry->pLimReAssocReq->eseTspecInfo.numTspecs;
|
numTspecs = pe_session->pLimReAssocReq->eseTspecInfo.numTspecs;
|
||||||
pTspec = &psessionEntry->pLimReAssocReq->eseTspecInfo.tspec[0];
|
pTspec = &pe_session->pLimReAssocReq->eseTspecInfo.tspec[0];
|
||||||
pReassoc->num_WMMTSPEC = numTspecs;
|
pReassoc->num_WMMTSPEC = numTspecs;
|
||||||
if (numTspecs) {
|
if (numTspecs) {
|
||||||
for (idx = 0; idx < numTspecs; idx++) {
|
for (idx = 0; idx < numTspecs; idx++) {
|
||||||
@@ -1802,21 +1802,21 @@ void ese_populate_wmm_tspec(tSirMacTspecIE *source,
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
void populate_dot11f_wmm_info_ap(tpAniSirGlobal mac, tDot11fIEWMMInfoAp *pInfo,
|
void populate_dot11f_wmm_info_ap(tpAniSirGlobal mac, tDot11fIEWMMInfoAp *pInfo,
|
||||||
struct pe_session *psessionEntry)
|
struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
pInfo->version = SIR_MAC_OUI_VERSION_1;
|
pInfo->version = SIR_MAC_OUI_VERSION_1;
|
||||||
|
|
||||||
/* WMM Specification 3.1.3, 3.2.3
|
/* WMM Specification 3.1.3, 3.2.3
|
||||||
* An IBSS station shall always use its default WMM parameters.
|
* An IBSS station shall always use its default WMM parameters.
|
||||||
*/
|
*/
|
||||||
if (LIM_IS_IBSS_ROLE(psessionEntry)) {
|
if (LIM_IS_IBSS_ROLE(pe_session)) {
|
||||||
pInfo->param_set_count = 0;
|
pInfo->param_set_count = 0;
|
||||||
pInfo->uapsd = 0;
|
pInfo->uapsd = 0;
|
||||||
} else {
|
} else {
|
||||||
pInfo->param_set_count =
|
pInfo->param_set_count =
|
||||||
(0xf & psessionEntry->gLimEdcaParamSetCount);
|
(0xf & pe_session->gLimEdcaParamSetCount);
|
||||||
if (LIM_IS_AP_ROLE(psessionEntry)) {
|
if (LIM_IS_AP_ROLE(pe_session)) {
|
||||||
pInfo->uapsd = (0x1 & psessionEntry->apUapsdEnable);
|
pInfo->uapsd = (0x1 & pe_session->apUapsdEnable);
|
||||||
} else
|
} else
|
||||||
pInfo->uapsd = (0x1 & mac->lim.gUapsdEnable);
|
pInfo->uapsd = (0x1 & mac->lim.gUapsdEnable);
|
||||||
}
|
}
|
||||||
@@ -1824,7 +1824,7 @@ void populate_dot11f_wmm_info_ap(tpAniSirGlobal mac, tDot11fIEWMMInfoAp *pInfo,
|
|||||||
}
|
}
|
||||||
|
|
||||||
void populate_dot11f_wmm_info_station_per_session(tpAniSirGlobal mac,
|
void populate_dot11f_wmm_info_station_per_session(tpAniSirGlobal mac,
|
||||||
struct pe_session *psessionEntry,
|
struct pe_session *pe_session,
|
||||||
tDot11fIEWMMInfoStation *pInfo)
|
tDot11fIEWMMInfoStation *pInfo)
|
||||||
{
|
{
|
||||||
uint8_t max_sp_length = 0;
|
uint8_t max_sp_length = 0;
|
||||||
@@ -1832,13 +1832,13 @@ void populate_dot11f_wmm_info_station_per_session(tpAniSirGlobal mac,
|
|||||||
max_sp_length = mac->mlme_cfg->wmm_params.max_sp_length;
|
max_sp_length = mac->mlme_cfg->wmm_params.max_sp_length;
|
||||||
pInfo->version = SIR_MAC_OUI_VERSION_1;
|
pInfo->version = SIR_MAC_OUI_VERSION_1;
|
||||||
pInfo->acvo_uapsd =
|
pInfo->acvo_uapsd =
|
||||||
LIM_UAPSD_GET(ACVO, psessionEntry->gUapsdPerAcBitmask);
|
LIM_UAPSD_GET(ACVO, pe_session->gUapsdPerAcBitmask);
|
||||||
pInfo->acvi_uapsd =
|
pInfo->acvi_uapsd =
|
||||||
LIM_UAPSD_GET(ACVI, psessionEntry->gUapsdPerAcBitmask);
|
LIM_UAPSD_GET(ACVI, pe_session->gUapsdPerAcBitmask);
|
||||||
pInfo->acbk_uapsd =
|
pInfo->acbk_uapsd =
|
||||||
LIM_UAPSD_GET(ACBK, psessionEntry->gUapsdPerAcBitmask);
|
LIM_UAPSD_GET(ACBK, pe_session->gUapsdPerAcBitmask);
|
||||||
pInfo->acbe_uapsd =
|
pInfo->acbe_uapsd =
|
||||||
LIM_UAPSD_GET(ACBE, psessionEntry->gUapsdPerAcBitmask);
|
LIM_UAPSD_GET(ACBE, pe_session->gUapsdPerAcBitmask);
|
||||||
|
|
||||||
pInfo->max_sp_length = max_sp_length;
|
pInfo->max_sp_length = max_sp_length;
|
||||||
pInfo->present = 1;
|
pInfo->present = 1;
|
||||||
@@ -1846,73 +1846,73 @@ void populate_dot11f_wmm_info_station_per_session(tpAniSirGlobal mac,
|
|||||||
|
|
||||||
void populate_dot11f_wmm_params(tpAniSirGlobal mac,
|
void populate_dot11f_wmm_params(tpAniSirGlobal mac,
|
||||||
tDot11fIEWMMParams *pParams,
|
tDot11fIEWMMParams *pParams,
|
||||||
struct pe_session *psessionEntry)
|
struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
pParams->version = SIR_MAC_OUI_VERSION_1;
|
pParams->version = SIR_MAC_OUI_VERSION_1;
|
||||||
|
|
||||||
if (LIM_IS_AP_ROLE(psessionEntry))
|
if (LIM_IS_AP_ROLE(pe_session))
|
||||||
pParams->qosInfo =
|
pParams->qosInfo =
|
||||||
(psessionEntry->
|
(pe_session->
|
||||||
apUapsdEnable << 7) | ((uint8_t) (0x0f & psessionEntry->
|
apUapsdEnable << 7) | ((uint8_t) (0x0f & pe_session->
|
||||||
gLimEdcaParamSetCount));
|
gLimEdcaParamSetCount));
|
||||||
else
|
else
|
||||||
pParams->qosInfo =
|
pParams->qosInfo =
|
||||||
(mac->lim.
|
(mac->lim.
|
||||||
gUapsdEnable << 7) | ((uint8_t) (0x0f & psessionEntry->
|
gUapsdEnable << 7) | ((uint8_t) (0x0f & pe_session->
|
||||||
gLimEdcaParamSetCount));
|
gLimEdcaParamSetCount));
|
||||||
|
|
||||||
/* Fill each EDCA parameter set in order: be, bk, vi, vo */
|
/* Fill each EDCA parameter set in order: be, bk, vi, vo */
|
||||||
pParams->acbe_aifsn =
|
pParams->acbe_aifsn =
|
||||||
(0xf & SET_AIFSN(psessionEntry->gLimEdcaParamsBC[0].aci.aifsn));
|
(0xf & SET_AIFSN(pe_session->gLimEdcaParamsBC[0].aci.aifsn));
|
||||||
pParams->acbe_acm = (0x1 & psessionEntry->gLimEdcaParamsBC[0].aci.acm);
|
pParams->acbe_acm = (0x1 & pe_session->gLimEdcaParamsBC[0].aci.acm);
|
||||||
pParams->acbe_aci = (0x3 & SIR_MAC_EDCAACI_BESTEFFORT);
|
pParams->acbe_aci = (0x3 & SIR_MAC_EDCAACI_BESTEFFORT);
|
||||||
pParams->acbe_acwmin =
|
pParams->acbe_acwmin =
|
||||||
(0xf & psessionEntry->gLimEdcaParamsBC[0].cw.min);
|
(0xf & pe_session->gLimEdcaParamsBC[0].cw.min);
|
||||||
pParams->acbe_acwmax =
|
pParams->acbe_acwmax =
|
||||||
(0xf & psessionEntry->gLimEdcaParamsBC[0].cw.max);
|
(0xf & pe_session->gLimEdcaParamsBC[0].cw.max);
|
||||||
pParams->acbe_txoplimit = psessionEntry->gLimEdcaParamsBC[0].txoplimit;
|
pParams->acbe_txoplimit = pe_session->gLimEdcaParamsBC[0].txoplimit;
|
||||||
|
|
||||||
pParams->acbk_aifsn =
|
pParams->acbk_aifsn =
|
||||||
(0xf & SET_AIFSN(psessionEntry->gLimEdcaParamsBC[1].aci.aifsn));
|
(0xf & SET_AIFSN(pe_session->gLimEdcaParamsBC[1].aci.aifsn));
|
||||||
pParams->acbk_acm = (0x1 & psessionEntry->gLimEdcaParamsBC[1].aci.acm);
|
pParams->acbk_acm = (0x1 & pe_session->gLimEdcaParamsBC[1].aci.acm);
|
||||||
pParams->acbk_aci = (0x3 & SIR_MAC_EDCAACI_BACKGROUND);
|
pParams->acbk_aci = (0x3 & SIR_MAC_EDCAACI_BACKGROUND);
|
||||||
pParams->acbk_acwmin =
|
pParams->acbk_acwmin =
|
||||||
(0xf & psessionEntry->gLimEdcaParamsBC[1].cw.min);
|
(0xf & pe_session->gLimEdcaParamsBC[1].cw.min);
|
||||||
pParams->acbk_acwmax =
|
pParams->acbk_acwmax =
|
||||||
(0xf & psessionEntry->gLimEdcaParamsBC[1].cw.max);
|
(0xf & pe_session->gLimEdcaParamsBC[1].cw.max);
|
||||||
pParams->acbk_txoplimit = psessionEntry->gLimEdcaParamsBC[1].txoplimit;
|
pParams->acbk_txoplimit = pe_session->gLimEdcaParamsBC[1].txoplimit;
|
||||||
|
|
||||||
if (LIM_IS_AP_ROLE(psessionEntry))
|
if (LIM_IS_AP_ROLE(pe_session))
|
||||||
pParams->acvi_aifsn =
|
pParams->acvi_aifsn =
|
||||||
(0xf & psessionEntry->gLimEdcaParamsBC[2].aci.aifsn);
|
(0xf & pe_session->gLimEdcaParamsBC[2].aci.aifsn);
|
||||||
else
|
else
|
||||||
pParams->acvi_aifsn =
|
pParams->acvi_aifsn =
|
||||||
(0xf &
|
(0xf &
|
||||||
SET_AIFSN(psessionEntry->gLimEdcaParamsBC[2].aci.aifsn));
|
SET_AIFSN(pe_session->gLimEdcaParamsBC[2].aci.aifsn));
|
||||||
|
|
||||||
pParams->acvi_acm = (0x1 & psessionEntry->gLimEdcaParamsBC[2].aci.acm);
|
pParams->acvi_acm = (0x1 & pe_session->gLimEdcaParamsBC[2].aci.acm);
|
||||||
pParams->acvi_aci = (0x3 & SIR_MAC_EDCAACI_VIDEO);
|
pParams->acvi_aci = (0x3 & SIR_MAC_EDCAACI_VIDEO);
|
||||||
pParams->acvi_acwmin =
|
pParams->acvi_acwmin =
|
||||||
(0xf & psessionEntry->gLimEdcaParamsBC[2].cw.min);
|
(0xf & pe_session->gLimEdcaParamsBC[2].cw.min);
|
||||||
pParams->acvi_acwmax =
|
pParams->acvi_acwmax =
|
||||||
(0xf & psessionEntry->gLimEdcaParamsBC[2].cw.max);
|
(0xf & pe_session->gLimEdcaParamsBC[2].cw.max);
|
||||||
pParams->acvi_txoplimit = psessionEntry->gLimEdcaParamsBC[2].txoplimit;
|
pParams->acvi_txoplimit = pe_session->gLimEdcaParamsBC[2].txoplimit;
|
||||||
|
|
||||||
if (LIM_IS_AP_ROLE(psessionEntry))
|
if (LIM_IS_AP_ROLE(pe_session))
|
||||||
pParams->acvo_aifsn =
|
pParams->acvo_aifsn =
|
||||||
(0xf & psessionEntry->gLimEdcaParamsBC[3].aci.aifsn);
|
(0xf & pe_session->gLimEdcaParamsBC[3].aci.aifsn);
|
||||||
else
|
else
|
||||||
pParams->acvo_aifsn =
|
pParams->acvo_aifsn =
|
||||||
(0xf &
|
(0xf &
|
||||||
SET_AIFSN(psessionEntry->gLimEdcaParamsBC[3].aci.aifsn));
|
SET_AIFSN(pe_session->gLimEdcaParamsBC[3].aci.aifsn));
|
||||||
|
|
||||||
pParams->acvo_acm = (0x1 & psessionEntry->gLimEdcaParamsBC[3].aci.acm);
|
pParams->acvo_acm = (0x1 & pe_session->gLimEdcaParamsBC[3].aci.acm);
|
||||||
pParams->acvo_aci = (0x3 & SIR_MAC_EDCAACI_VOICE);
|
pParams->acvo_aci = (0x3 & SIR_MAC_EDCAACI_VOICE);
|
||||||
pParams->acvo_acwmin =
|
pParams->acvo_acwmin =
|
||||||
(0xf & psessionEntry->gLimEdcaParamsBC[3].cw.min);
|
(0xf & pe_session->gLimEdcaParamsBC[3].cw.min);
|
||||||
pParams->acvo_acwmax =
|
pParams->acvo_acwmax =
|
||||||
(0xf & psessionEntry->gLimEdcaParamsBC[3].cw.max);
|
(0xf & pe_session->gLimEdcaParamsBC[3].cw.max);
|
||||||
pParams->acvo_txoplimit = psessionEntry->gLimEdcaParamsBC[3].txoplimit;
|
pParams->acvo_txoplimit = pe_session->gLimEdcaParamsBC[3].txoplimit;
|
||||||
|
|
||||||
pParams->present = 1;
|
pParams->present = 1;
|
||||||
|
|
||||||
@@ -5150,12 +5150,12 @@ QDF_STATUS de_populate_dot11f_wsc_registrar_info(tpAniSirGlobal mac,
|
|||||||
|
|
||||||
QDF_STATUS populate_dot11f_probe_res_wpsi_es(tpAniSirGlobal mac,
|
QDF_STATUS populate_dot11f_probe_res_wpsi_es(tpAniSirGlobal mac,
|
||||||
tDot11fIEWscProbeRes *pDot11f,
|
tDot11fIEWscProbeRes *pDot11f,
|
||||||
struct pe_session *psessionEntry)
|
struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
|
|
||||||
tSirWPSProbeRspIE *pSirWPSProbeRspIE;
|
tSirWPSProbeRspIE *pSirWPSProbeRspIE;
|
||||||
|
|
||||||
pSirWPSProbeRspIE = &psessionEntry->APWPSIEs.SirWPSProbeRspIE;
|
pSirWPSProbeRspIE = &pe_session->APWPSIEs.SirWPSProbeRspIE;
|
||||||
|
|
||||||
if (pSirWPSProbeRspIE->FieldPresent & SIR_WPS_PROBRSP_VER_PRESENT) {
|
if (pSirWPSProbeRspIE->FieldPresent & SIR_WPS_PROBRSP_VER_PRESENT) {
|
||||||
pDot11f->present = 1;
|
pDot11f->present = 1;
|
||||||
@@ -5309,11 +5309,11 @@ QDF_STATUS populate_dot11f_probe_res_wpsi_es(tpAniSirGlobal mac,
|
|||||||
|
|
||||||
QDF_STATUS populate_dot11f_assoc_res_wpsi_es(tpAniSirGlobal mac,
|
QDF_STATUS populate_dot11f_assoc_res_wpsi_es(tpAniSirGlobal mac,
|
||||||
tDot11fIEWscAssocRes *pDot11f,
|
tDot11fIEWscAssocRes *pDot11f,
|
||||||
struct pe_session *psessionEntry)
|
struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
tSirWPSProbeRspIE *pSirWPSProbeRspIE;
|
tSirWPSProbeRspIE *pSirWPSProbeRspIE;
|
||||||
|
|
||||||
pSirWPSProbeRspIE = &psessionEntry->APWPSIEs.SirWPSProbeRspIE;
|
pSirWPSProbeRspIE = &pe_session->APWPSIEs.SirWPSProbeRspIE;
|
||||||
|
|
||||||
if (pSirWPSProbeRspIE->FieldPresent & SIR_WPS_PROBRSP_VER_PRESENT) {
|
if (pSirWPSProbeRspIE->FieldPresent & SIR_WPS_PROBRSP_VER_PRESENT) {
|
||||||
pDot11f->present = 1;
|
pDot11f->present = 1;
|
||||||
@@ -5339,12 +5339,12 @@ QDF_STATUS populate_dot11f_assoc_res_wpsi_es(tpAniSirGlobal mac,
|
|||||||
|
|
||||||
QDF_STATUS populate_dot11f_beacon_wpsi_es(tpAniSirGlobal mac,
|
QDF_STATUS populate_dot11f_beacon_wpsi_es(tpAniSirGlobal mac,
|
||||||
tDot11fIEWscBeacon *pDot11f,
|
tDot11fIEWscBeacon *pDot11f,
|
||||||
struct pe_session *psessionEntry)
|
struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
|
|
||||||
tSirWPSBeaconIE *pSirWPSBeaconIE;
|
tSirWPSBeaconIE *pSirWPSBeaconIE;
|
||||||
|
|
||||||
pSirWPSBeaconIE = &psessionEntry->APWPSIEs.SirWPSBeaconIE;
|
pSirWPSBeaconIE = &pe_session->APWPSIEs.SirWPSBeaconIE;
|
||||||
|
|
||||||
if (pSirWPSBeaconIE->FieldPresent & SIR_WPS_PROBRSP_VER_PRESENT) {
|
if (pSirWPSBeaconIE->FieldPresent & SIR_WPS_PROBRSP_VER_PRESENT) {
|
||||||
pDot11f->present = 1;
|
pDot11f->present = 1;
|
||||||
@@ -5728,12 +5728,12 @@ populate_dot11f_beacon_report(tpAniSirGlobal mac,
|
|||||||
|
|
||||||
QDF_STATUS populate_dot11f_rrm_ie(tpAniSirGlobal mac,
|
QDF_STATUS populate_dot11f_rrm_ie(tpAniSirGlobal mac,
|
||||||
tDot11fIERRMEnabledCap *pDot11f,
|
tDot11fIERRMEnabledCap *pDot11f,
|
||||||
struct pe_session *psessionEntry)
|
struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
tpRRMCaps pRrmCaps;
|
tpRRMCaps pRrmCaps;
|
||||||
uint8_t *bytes;
|
uint8_t *bytes;
|
||||||
|
|
||||||
pRrmCaps = rrm_get_capabilities(mac, psessionEntry);
|
pRrmCaps = rrm_get_capabilities(mac, pe_session);
|
||||||
|
|
||||||
pDot11f->LinkMeasurement = pRrmCaps->LinkMeasurement;
|
pDot11f->LinkMeasurement = pRrmCaps->LinkMeasurement;
|
||||||
pDot11f->NeighborRpt = pRrmCaps->NeighborRpt;
|
pDot11f->NeighborRpt = pRrmCaps->NeighborRpt;
|
||||||
|
|||||||
@@ -1967,7 +1967,7 @@ static void csr_send_ese_adjacent_ap_rep_ind(tpAniSirGlobal mac,
|
|||||||
{
|
{
|
||||||
uint32_t roamTS2 = 0;
|
uint32_t roamTS2 = 0;
|
||||||
struct csr_roam_info roamInfo;
|
struct csr_roam_info roamInfo;
|
||||||
struct pe_session *pSessionEntry = NULL;
|
struct pe_session *pe_session = NULL;
|
||||||
uint8_t sessionId = CSR_SESSION_ID_INVALID;
|
uint8_t sessionId = CSR_SESSION_ID_INVALID;
|
||||||
|
|
||||||
if (NULL == pSession) {
|
if (NULL == pSession) {
|
||||||
@@ -1981,15 +1981,15 @@ static void csr_send_ese_adjacent_ap_rep_ind(tpAniSirGlobal mac,
|
|||||||
MAC_ADDR_ARRAY(pSession->connectedProfile.bssid.bytes),
|
MAC_ADDR_ARRAY(pSession->connectedProfile.bssid.bytes),
|
||||||
roamInfo.tsmRoamDelay);
|
roamInfo.tsmRoamDelay);
|
||||||
|
|
||||||
pSessionEntry = pe_find_session_by_bssid(mac,
|
pe_session = pe_find_session_by_bssid(mac,
|
||||||
pSession->connectedProfile.bssid.bytes,
|
pSession->connectedProfile.bssid.bytes,
|
||||||
&sessionId);
|
&sessionId);
|
||||||
if (NULL == pSessionEntry) {
|
if (NULL == pe_session) {
|
||||||
sme_err("session %d not found", sessionId);
|
sme_err("session %d not found", sessionId);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
pSessionEntry->eseContext.tsm.tsmMetrics.RoamingDly
|
pe_session->eseContext.tsm.tsmMetrics.RoamingDly
|
||||||
= roamInfo.tsmRoamDelay;
|
= roamInfo.tsmRoamDelay;
|
||||||
|
|
||||||
csr_roam_call_callback(mac, pSession->sessionId, &roamInfo,
|
csr_roam_call_callback(mac, pSession->sessionId, &roamInfo,
|
||||||
|
|||||||
Reference in New Issue
Block a user