qcacld-3.0: Do not use cdp API to get local id in wma

Remove usage of cdp APIs to fetch local id and cleanup
few sta index references in wma and lim.

Change-Id: I32633ef7491b3b91ee55dd813a009c4d8010a3f5
CRs-Fixed: 2524506
This commit is contained in:
Yeshwanth Sriram Guntuka
2019-07-16 15:41:08 +05:30
committed by nshrivas
parent 3e1694a888
commit 3f26210aed
30 changed files with 97 additions and 200 deletions

View File

@@ -302,13 +302,14 @@ QDF_STATUS hdd_cfg80211_get_ibss_peer_info_all(struct hdd_adapter *adapter)
{ {
QDF_STATUS status; QDF_STATUS status;
unsigned long rc; unsigned long rc;
struct qdf_mac_addr bcast = QDF_MAC_ADDR_BCAST_INIT;
INIT_COMPLETION(adapter->ibss_peer_info_comp); INIT_COMPLETION(adapter->ibss_peer_info_comp);
status = sme_request_ibss_peer_info(adapter->hdd_ctx->mac_handle, status = sme_request_ibss_peer_info(adapter->hdd_ctx->mac_handle,
adapter, adapter,
hdd_get_ibss_peer_info_cb, hdd_get_ibss_peer_info_cb,
true, 0xFF); true, bcast.bytes);
if (QDF_STATUS_SUCCESS == status) { if (QDF_STATUS_SUCCESS == status) {
rc = wait_for_completion_timeout rc = wait_for_completion_timeout

View File

@@ -3321,12 +3321,13 @@ static QDF_STATUS hdd_wlan_get_ibss_peer_info_all(struct hdd_adapter *adapter)
mac_handle_t mac_handle = adapter->hdd_ctx->mac_handle; mac_handle_t mac_handle = adapter->hdd_ctx->mac_handle;
struct hdd_station_ctx *sta_ctx = WLAN_HDD_GET_STATION_CTX_PTR(adapter); struct hdd_station_ctx *sta_ctx = WLAN_HDD_GET_STATION_CTX_PTR(adapter);
tSirPeerInfoRspParams *peer_info = &sta_ctx->ibss_peer_info; tSirPeerInfoRspParams *peer_info = &sta_ctx->ibss_peer_info;
struct qdf_mac_addr bcast = QDF_MAC_ADDR_BCAST_INIT;
int i; int i;
INIT_COMPLETION(adapter->ibss_peer_info_comp); INIT_COMPLETION(adapter->ibss_peer_info_comp);
status = sme_request_ibss_peer_info(mac_handle, adapter, status = sme_request_ibss_peer_info(mac_handle, adapter,
hdd_get_ibss_peer_info_cb, hdd_get_ibss_peer_info_cb,
true, 0xFF); true, bcast.bytes);
if (QDF_STATUS_SUCCESS == status) { if (QDF_STATUS_SUCCESS == status) {
unsigned long rc; unsigned long rc;

View File

@@ -2649,7 +2649,7 @@ typedef struct sSirDelPeriodicTxPtrn {
*--------------------------------------------------------------------------*/ *--------------------------------------------------------------------------*/
typedef struct { typedef struct {
bool allPeerInfoReqd; /* If set, all IBSS peers stats are reported */ bool allPeerInfoReqd; /* If set, all IBSS peers stats are reported */
uint8_t staIdx; /* If allPeerInfoReqd is not set, only stats */ struct qdf_mac_addr peer_mac;
/* of peer with staIdx is reported */ /* of peer with staIdx is reported */
} tSirIbssGetPeerInfoReqParams, *tpSirIbssGetPeerInfoReqParams; } tSirIbssGetPeerInfoReqParams, *tpSirIbssGetPeerInfoReqParams;

View File

@@ -206,12 +206,6 @@ struct pe_session {
/** BSS Table parameters **/ /** BSS Table parameters **/
/*
* staId: Start BSS: this is the Sta Id for the BSS.
* Join: this is the selfStaId
* In both cases above, the peer STA ID wll be stored in dph hash table.
*/
uint16_t staId;
uint16_t statypeForBss; /* to know session is for PEER or SELF */ uint16_t statypeForBss; /* to know session is for PEER or SELF */
uint8_t shortSlotTimeSupported; uint8_t shortSlotTimeSupported;
uint8_t dtimPeriod; uint8_t dtimPeriod;

View File

@@ -2342,9 +2342,10 @@ lim_add_sta(struct mac_context *mac_ctx,
add_sta_params->vhtCapable = session_entry->vhtCapability; add_sta_params->vhtCapable = session_entry->vhtCapability;
} }
pe_debug("StaIdx: %d updateSta: %d htcapable: %d vhtCapable: %d", pe_debug("updateSta: %d htcapable: %d vhtCapable: %d sta mac"
add_sta_params->staIdx, add_sta_params->updateSta, QDF_MAC_ADDR_STR, add_sta_params->updateSta,
add_sta_params->htCapable, add_sta_params->vhtCapable); add_sta_params->htCapable, add_sta_params->vhtCapable,
QDF_MAC_ADDR_ARRAY(add_sta_params->staMac));
/* /*
* If HT client is connected to SAP DUT and self cap is NSS = 2 then * If HT client is connected to SAP DUT and self cap is NSS = 2 then
@@ -2714,26 +2715,6 @@ lim_del_sta(struct mac_context *mac,
0, VDEV_CMD); 0, VDEV_CMD);
} }
} }
/* */
/* DPH contains the STA index only for "peer" STA entries. */
/* LIM global contains "self" STA index */
/* Thus, */
/* if( STA role ) */
/* get STA index from LIM global */
/* else */
/* get STA index from DPH */
/* */
#ifdef FEATURE_WLAN_TDLS
if (LIM_IS_STA_ROLE(pe_session) &&
(sta->staType != STA_ENTRY_TDLS_PEER))
#else
if (LIM_IS_STA_ROLE(pe_session))
#endif
pDelStaParams->staIdx = pe_session->staId;
else
pDelStaParams->staIdx = sta->staIndex;
pDelStaParams->assocId = sta->assocId; pDelStaParams->assocId = sta->assocId;
sta->valid = 0; sta->valid = 0;
@@ -2841,7 +2822,7 @@ static void lim_set_mbssid_info(struct pe_session *pe_session)
*/ */
QDF_STATUS QDF_STATUS
lim_add_sta_self(struct mac_context *mac, uint16_t staIdx, uint8_t updateSta, lim_add_sta_self(struct mac_context *mac, uint8_t updateSta,
struct pe_session *pe_session) struct pe_session *pe_session)
{ {
tpAddStaParams pAddStaParams = NULL; tpAddStaParams pAddStaParams = NULL;
@@ -2888,8 +2869,6 @@ lim_add_sta_self(struct mac_context *mac, uint16_t staIdx, uint8_t updateSta,
pAddStaParams->maxTxPower = pe_session->maxTxPower; pAddStaParams->maxTxPower = pe_session->maxTxPower;
/* This will indicate HAL to "allocate" a new STA index */
pAddStaParams->staIdx = staIdx;
pAddStaParams->updateSta = updateSta; pAddStaParams->updateSta = updateSta;
lim_set_mbssid_info(pe_session); lim_set_mbssid_info(pe_session);
@@ -2965,8 +2944,8 @@ lim_add_sta_self(struct mac_context *mac, uint16_t staIdx, uint8_t updateSta,
if (QDF_P2P_CLIENT_MODE == pe_session->opmode) if (QDF_P2P_CLIENT_MODE == pe_session->opmode)
pAddStaParams->p2pCapableSta = 1; pAddStaParams->p2pCapableSta = 1;
pe_debug(" StaIdx: %d updateSta = %d htcapable = %d ", pe_debug("updateSta = %d htcapable = %d ",
pAddStaParams->staIdx, pAddStaParams->updateSta, pAddStaParams->updateSta,
pAddStaParams->htCapable); pAddStaParams->htCapable);
pe_debug("htLdpcCapable: %d vhtLdpcCapable: %d " pe_debug("htLdpcCapable: %d vhtLdpcCapable: %d "

View File

@@ -108,7 +108,7 @@ QDF_STATUS lim_populate_matching_rate_set(struct mac_context *mac_ctx,
QDF_STATUS lim_add_sta(struct mac_context *, tpDphHashNode, uint8_t, struct pe_session *); QDF_STATUS lim_add_sta(struct mac_context *, tpDphHashNode, uint8_t, struct pe_session *);
QDF_STATUS lim_del_bss(struct mac_context *, tpDphHashNode, uint16_t, struct pe_session *); QDF_STATUS lim_del_bss(struct mac_context *, tpDphHashNode, uint16_t, struct pe_session *);
QDF_STATUS lim_del_sta(struct mac_context *, tpDphHashNode, bool, struct pe_session *); QDF_STATUS lim_del_sta(struct mac_context *, tpDphHashNode, bool, struct pe_session *);
QDF_STATUS lim_add_sta_self(struct mac_context *, uint16_t, uint8_t, struct pe_session *); QDF_STATUS lim_add_sta_self(struct mac_context *, uint8_t, struct pe_session *);
#ifdef WLAN_FEATURE_HOST_ROAM #ifdef WLAN_FEATURE_HOST_ROAM
void lim_restore_pre_reassoc_state(struct mac_context *, void lim_restore_pre_reassoc_state(struct mac_context *,

View File

@@ -741,7 +741,7 @@ bool lim_process_ft_update_key(struct mac_context *mac, uint32_t *msg_buf)
if (!pe_session->ftPEContext.pAddStaReq) { if (!pe_session->ftPEContext.pAddStaReq) {
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,
pe_session, false); pe_session, false);
pe_session->ftPEContext.PreAuthKeyInfo. pe_session->ftPEContext.PreAuthKeyInfo.
extSetStaKeyParamValid = false; extSetStaKeyParamValid = false;
@@ -763,8 +763,6 @@ bool lim_process_ft_update_key(struct mac_context *mac, uint32_t *msg_buf)
pAddBssParams->extSetStaKeyParamValid, pAddBssParams->extSetStaKeyParamValid,
pAddBssParams->extSetStaKeyParam.key[0].keyLength); pAddBssParams->extSetStaKeyParam.key[0].keyLength);
pAddBssParams->extSetStaKeyParam.staIdx = 0;
pe_debug("BSSID: " QDF_MAC_ADDR_STR, pe_debug("BSSID: " QDF_MAC_ADDR_STR,
QDF_MAC_ADDR_ARRAY(pKeyInfo->bssid.bytes)); QDF_MAC_ADDR_ARRAY(pKeyInfo->bssid.bytes));
@@ -919,7 +917,6 @@ QDF_STATUS lim_process_ft_aggr_qos_req(struct mac_context *mac,
return QDF_STATUS_E_FAILURE; return QDF_STATUS_E_FAILURE;
} }
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;

View File

@@ -1144,7 +1144,6 @@ lim_ibss_add_sta_rsp(struct mac_context *mac, void *msg, struct pe_session *pe_s
return QDF_STATUS_E_FAILURE; return QDF_STATUS_E_FAILURE;
} }
sta->staIndex = pAddStaParams->staIdx;
sta->valid = 1; sta->valid = 1;
sta->mlmStaContext.mlmState = eLIM_MLM_LINK_ESTABLISHED_STATE; sta->mlmStaContext.mlmState = eLIM_MLM_LINK_ESTABLISHED_STATE;

View File

@@ -541,7 +541,7 @@ static void __lim_process_operating_mode_action_frame(struct mac_context *mac_ct
ch_bw = eHT_CHANNEL_WIDTH_20MHZ; ch_bw = eHT_CHANNEL_WIDTH_20MHZ;
} }
lim_check_vht_op_mode_change(mac_ctx, session, ch_bw, lim_check_vht_op_mode_change(mac_ctx, session, ch_bw,
sta_ptr->staIndex, mac_hdr->sa); mac_hdr->sa);
} }
update_nss: update_nss:
@@ -550,7 +550,7 @@ update_nss:
sta_ptr->vhtSupportedRxNss = sta_ptr->vhtSupportedRxNss =
operating_mode_frm->OperatingMode.rxNSS + 1; operating_mode_frm->OperatingMode.rxNSS + 1;
lim_set_nss_change(mac_ctx, session, sta_ptr->vhtSupportedRxNss, lim_set_nss_change(mac_ctx, session, sta_ptr->vhtSupportedRxNss,
sta_ptr->staIndex, mac_hdr->sa); mac_hdr->sa);
} }
end: end:
@@ -648,7 +648,7 @@ static void __lim_process_gid_management_action_frame(struct mac_context *mac_ct
vht_user_position = &gid_mgmt_frame->VhtUserPositionArray; vht_user_position = &gid_mgmt_frame->VhtUserPositionArray;
usr_position = vht_user_position->userPositionArray[membership] & 0x3; usr_position = vht_user_position->userPositionArray[membership] & 0x3;
lim_check_membership_user_position(mac_ctx, session, membership, lim_check_membership_user_position(mac_ctx, session, membership,
usr_position, sta_ptr->staIndex); usr_position);
out: out:
qdf_mem_free(gid_mgmt_frame); qdf_mem_free(gid_mgmt_frame);
return; return;

View File

@@ -458,8 +458,6 @@ void lim_process_sta_mlm_add_bss_rsp_ft(struct mac_context *mac,
pe_session->limMlmState, pe_session->peSessionId); pe_session->limMlmState, pe_session->peSessionId);
/* Success, handle below */ /* Success, handle below */
/* STA Index(genr by HAL) for the BSS entry is stored here */
sta->staIndex = wma_peer_get_peet_id(pe_session->bssId);
pAddStaParams = qdf_mem_malloc(sizeof(tAddStaParams)); pAddStaParams = qdf_mem_malloc(sizeof(tAddStaParams));
if (!pAddStaParams) if (!pAddStaParams)
@@ -477,11 +475,6 @@ void lim_process_sta_mlm_add_bss_rsp_ft(struct mac_context *mac,
pAddStaParams->sessionId = pe_session->peSessionId; pAddStaParams->sessionId = pe_session->peSessionId;
pAddStaParams->smesessionId = pe_session->smeSessionId; pAddStaParams->smesessionId = pe_session->smeSessionId;
/* This will indicate HAL to "allocate" a new STA index */
#ifdef WLAN_FEATURE_ROAM_OFFLOAD
if (pe_session->bRoamSynchInProgress != true)
#endif
pAddStaParams->staIdx = STA_INVALID_IDX;
pAddStaParams->updateSta = false; pAddStaParams->updateSta = false;
lim_populate_peer_rate_set(mac, &pAddStaParams->supportedRates, NULL, lim_populate_peer_rate_set(mac, &pAddStaParams->supportedRates, NULL,

View File

@@ -1573,7 +1573,6 @@ static void
lim_process_mlm_set_keys_req(struct mac_context *mac_ctx, uint32_t *msg_buf) lim_process_mlm_set_keys_req(struct mac_context *mac_ctx, uint32_t *msg_buf)
{ {
uint16_t aid; uint16_t aid;
uint16_t sta_idx = 0;
uint32_t default_key_id = 0; uint32_t default_key_id = 0;
struct qdf_mac_addr curr_bssid; struct qdf_mac_addr curr_bssid;
tpDphHashNode sta_ds; tpDphHashNode sta_ds;
@@ -1671,7 +1670,6 @@ lim_process_mlm_set_keys_req(struct mac_context *mac_ctx, uint32_t *msg_buf)
case eSIR_ED_AES_GMAC_128: case eSIR_ED_AES_GMAC_128:
case eSIR_ED_AES_GMAC_256: case eSIR_ED_AES_GMAC_256:
#endif #endif
sta_idx = session->staId;
break; break;
default: default:
break; break;
@@ -1701,8 +1699,6 @@ lim_process_mlm_set_keys_req(struct mac_context *mac_ctx, uint32_t *msg_buf)
mlm_set_keys_cnf.resultCode = mlm_set_keys_cnf.resultCode =
eSIR_SME_INVALID_PARAMETERS; eSIR_SME_INVALID_PARAMETERS;
goto end; goto end;
} else {
sta_idx = sta_ds->staIndex;
} }
} }
@@ -1727,8 +1723,9 @@ lim_process_mlm_set_keys_req(struct mac_context *mac_ctx, uint32_t *msg_buf)
} else { } else {
default_key_id = 0; default_key_id = 0;
} }
pe_debug("Trying to set keys for STA Index [%d], using default_key_id [%d]", pe_debug("Trying to set keys using default_key_id [%d] sta mac "
sta_idx, default_key_id); QDF_MAC_ADDR_STR, default_key_id,
QDF_MAC_ADDR_ARRAY(mlm_set_keys_req->peer_macaddr.bytes));
if (qdf_is_macaddr_broadcast(&mlm_set_keys_req->peer_macaddr)) { if (qdf_is_macaddr_broadcast(&mlm_set_keys_req->peer_macaddr)) {
session->limPrevMlmState = session->limMlmState; session->limPrevMlmState = session->limMlmState;
@@ -1746,7 +1743,7 @@ lim_process_mlm_set_keys_req(struct mac_context *mac_ctx, uint32_t *msg_buf)
* Package WMA_SET_STAKEY_REQ / WMA_SET_STA_BCASTKEY_REQ message * Package WMA_SET_STAKEY_REQ / WMA_SET_STA_BCASTKEY_REQ message
* parameters * parameters
*/ */
lim_send_set_sta_key_req(mac_ctx, mlm_set_keys_req, sta_idx, lim_send_set_sta_key_req(mac_ctx, mlm_set_keys_req,
(uint8_t) default_key_id, session, (uint8_t) default_key_id, session,
true); true);
return; return;

View File

@@ -1411,9 +1411,9 @@ void lim_process_sta_mlm_add_sta_rsp(struct mac_context *mac_ctx,
if (true == session_entry->fDeauthReceived) { if (true == session_entry->fDeauthReceived) {
pe_err("Received Deauth frame in ADD_STA_RESP state"); pe_err("Received Deauth frame in ADD_STA_RESP state");
if (QDF_STATUS_SUCCESS == add_sta_params->status) { if (QDF_STATUS_SUCCESS == add_sta_params->status) {
pe_err("ADD_STA success, send update result code with eSIR_SME_JOIN_DEAUTH_FROM_AP_DURING_ADD_STA staIdx: %d limMlmState: %d", pe_err("ADD_STA success, send update result code with eSIR_SME_JOIN_DEAUTH_FROM_AP_DURING_ADD_STA limMlmState: %d bssid %pM",
add_sta_params->staIdx, session_entry->limMlmState,
session_entry->limMlmState); add_sta_params->staMac);
if (session_entry->limSmeState == if (session_entry->limSmeState ==
eLIM_SME_WT_REASSOC_STATE) eLIM_SME_WT_REASSOC_STATE)
@@ -1428,7 +1428,6 @@ void lim_process_sta_mlm_add_sta_rsp(struct mac_context *mac_ctx,
eSIR_SME_JOIN_DEAUTH_FROM_AP_DURING_ADD_STA; eSIR_SME_JOIN_DEAUTH_FROM_AP_DURING_ADD_STA;
mlm_assoc_cnf.protStatusCode = mlm_assoc_cnf.protStatusCode =
eSIR_MAC_UNSPEC_FAILURE_STATUS; eSIR_MAC_UNSPEC_FAILURE_STATUS;
session_entry->staId = add_sta_params->staIdx;
goto end; goto end;
} }
} }
@@ -1454,7 +1453,7 @@ void lim_process_sta_mlm_add_sta_rsp(struct mac_context *mac_ctx,
tpLimMlmSetKeysReq pMlmStaKeys = tpLimMlmSetKeysReq pMlmStaKeys =
&ft_ctx->PreAuthKeyInfo.extSetStaKeyParam; &ft_ctx->PreAuthKeyInfo.extSetStaKeyParam;
lim_send_set_sta_key_req(mac_ctx, pMlmStaKeys, lim_send_set_sta_key_req(mac_ctx, pMlmStaKeys,
0, 0, ft_session, false); 0, ft_session, false);
ft_ctx->PreAuthKeyInfo.extSetStaKeyParamValid = ft_ctx->PreAuthKeyInfo.extSetStaKeyParamValid =
false; false;
} }
@@ -1477,14 +1476,6 @@ void lim_process_sta_mlm_add_sta_rsp(struct mac_context *mac_ctx,
MTRACE(mac_trace(mac_ctx, TRACE_CODE_MLM_STATE, MTRACE(mac_trace(mac_ctx, TRACE_CODE_MLM_STATE,
session_entry->peSessionId, session_entry->peSessionId,
session_entry->limMlmState)); session_entry->limMlmState));
/*
* Storing the self StaIndex(Generated by HAL) in
* session context, instead of storing it in DPH Hash
* entry for Self STA.
* DPH entry for the self STA stores the sta index for
* the BSS entry to which the STA is associated
*/
session_entry->staId = add_sta_params->staIdx;
#ifdef WLAN_DEBUG #ifdef WLAN_DEBUG
mac_ctx->lim.gLimNumLinkEsts++; mac_ctx->lim.gLimNumLinkEsts++;
@@ -1914,7 +1905,6 @@ void lim_process_ap_mlm_add_sta_rsp(struct mac_context *mac,
pe_session); pe_session);
goto end; goto end;
} }
sta->staIndex = pAddStaParams->staIdx;
sta->nss = pAddStaParams->nss; sta->nss = pAddStaParams->nss;
/* if the AssocRsp frame is not acknowledged, then keep alive timer will take care of the state */ /* if the AssocRsp frame is not acknowledged, then keep alive timer will take care of the state */
sta->valid = 1; sta->valid = 1;
@@ -2022,7 +2012,6 @@ static void lim_process_ap_mlm_add_bss_rsp(struct mac_context *mac,
&& (isWepEnabled)) && (isWepEnabled))
mac->mlme_cfg->sap_cfg.assoc_sta_limit = mac->mlme_cfg->sap_cfg.assoc_sta_limit =
MAX_SUPPORTED_PEERS_WEP; MAX_SUPPORTED_PEERS_WEP;
pe_session->staId = wma_peer_get_peet_id(pe_session->bssId);
mlmStartCnf.resultCode = eSIR_SME_SUCCESS; mlmStartCnf.resultCode = eSIR_SME_SUCCESS;
} else { } else {
pe_err("WMA_ADD_BSS_REQ failed with status %d", pe_err("WMA_ADD_BSS_REQ failed with status %d",
@@ -2075,8 +2064,6 @@ lim_process_ibss_mlm_add_bss_rsp(struct mac_context *mac,
/* Apply previously set configuration at HW */ /* Apply previously set configuration at HW */
lim_apply_configuration(mac, pe_session); lim_apply_configuration(mac, pe_session);
pe_session->staId =
wma_peer_get_peet_id(pe_session->self_mac_addr);
mlmStartCnf.resultCode = eSIR_SME_SUCCESS; mlmStartCnf.resultCode = eSIR_SME_SUCCESS;
/* If ADD BSS was issued as part of IBSS coalescing, don't send the message to SME, as that is internal to LIM */ /* If ADD BSS was issued as part of IBSS coalescing, don't send the message to SME, as that is internal to LIM */
if (true == mac->lim.gLimIbssCoalescingHappened) { if (true == mac->lim.gLimIbssCoalescingHappened) {
@@ -2154,8 +2141,6 @@ void lim_process_sta_add_bss_rsp_pre_assoc(struct mac_context *mac_ctx,
goto joinFailure; goto joinFailure;
} }
/* Success, handle below */ /* Success, handle below */
/* STA Index(genr by HAL) for the BSS entry is stored here */
sta->staIndex = add_bss_params->staContext.staIdx;
/* Trigger Authentication with AP */ /* Trigger Authentication with AP */
cfgAuthType = mac_ctx->mlme_cfg->wep_params.auth_type; cfgAuthType = mac_ctx->mlme_cfg->wep_params.auth_type;
@@ -2182,8 +2167,6 @@ void lim_process_sta_add_bss_rsp_pre_assoc(struct mac_context *mac_ctx,
pMlmAuthReq->sessionId = session_entry->peSessionId; pMlmAuthReq->sessionId = session_entry->peSessionId;
session_entry->limPrevSmeState = session_entry->limSmeState; session_entry->limPrevSmeState = session_entry->limSmeState;
session_entry->limSmeState = eLIM_SME_WT_AUTH_STATE; session_entry->limSmeState = eLIM_SME_WT_AUTH_STATE;
/* remember staId in case of assoc timeout/failure handling */
session_entry->staId = add_bss_params->staContext.staIdx;
MTRACE(mac_trace(mac_ctx, TRACE_CODE_SME_STATE, MTRACE(mac_trace(mac_ctx, TRACE_CODE_SME_STATE,
session_entry->peSessionId, session_entry->peSessionId,
@@ -2218,7 +2201,6 @@ static void lim_process_sta_mlm_add_bss_rsp(struct mac_context *mac_ctx,
uint32_t msg_type = LIM_MLM_ASSOC_CNF; uint32_t msg_type = LIM_MLM_ASSOC_CNF;
uint32_t sub_type = LIM_ASSOC; uint32_t sub_type = LIM_ASSOC;
tpDphHashNode sta_ds = NULL; tpDphHashNode sta_ds = NULL;
uint16_t sta_idx = STA_INVALID_IDX;
uint8_t update_sta = false; uint8_t update_sta = false;
mlm_assoc_cnf.resultCode = eSIR_SME_SUCCESS; mlm_assoc_cnf.resultCode = eSIR_SME_SUCCESS;
@@ -2238,7 +2220,6 @@ static void lim_process_sta_mlm_add_bss_rsp(struct mac_context *mac_ctx,
*/ */
if (sir_compare_mac_addr(session_entry->bssId, if (sir_compare_mac_addr(session_entry->bssId,
session_entry->limReAssocbssId)) { session_entry->limReAssocbssId)) {
sta_idx = session_entry->staId;
update_sta = true; update_sta = true;
} }
} }
@@ -2274,19 +2255,13 @@ static void lim_process_sta_mlm_add_bss_rsp(struct mac_context *mac_ctx,
(tSirResultCodes) eSIR_SME_REFUSED; (tSirResultCodes) eSIR_SME_REFUSED;
} else { } else {
/* Success, handle below */ /* Success, handle below */
/*
* STA Index(genr by HAL) for the BSS
* entry is stored here
*/
sta_ds->staIndex =
wma_peer_get_peet_id(session_entry->bssId);
/* Downgrade the EDCA parameters if needed */ /* Downgrade the EDCA parameters if needed */
lim_set_active_edca_params(mac_ctx, lim_set_active_edca_params(mac_ctx,
session_entry->gLimEdcaParams, session_entry); session_entry->gLimEdcaParams, session_entry);
lim_send_edca_params(mac_ctx, lim_send_edca_params(mac_ctx,
session_entry->gLimEdcaParamsActive, session_entry->gLimEdcaParamsActive,
session_entry->vdev_id, false); session_entry->vdev_id, false);
if (lim_add_sta_self(mac_ctx, sta_idx, update_sta, if (lim_add_sta_self(mac_ctx, update_sta,
session_entry) != QDF_STATUS_SUCCESS) { session_entry) != QDF_STATUS_SUCCESS) {
/* Add STA context at HW */ /* Add STA context at HW */
pe_err("Session:%d could not Add Self" pe_err("Session:%d could not Add Self"

View File

@@ -3918,7 +3918,6 @@ static void __lim_process_sme_set_ht2040_mode(struct mac_context *mac,
(pe_session->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;
qdf_mem_copy(pHtOpMode->peer_mac, &sta->staAddr, qdf_mem_copy(pHtOpMode->peer_mac, &sta->staAddr,
sizeof(tSirMacAddr)); sizeof(tSirMacAddr));
pHtOpMode->smesessionId = sessionId; pHtOpMode->smesessionId = sessionId;
@@ -3935,11 +3934,11 @@ static void __lim_process_sme_set_ht2040_mode(struct mac_context *mac,
qdf_mem_free(pHtOpMode); qdf_mem_free(pHtOpMode);
return; return;
} }
pe_debug("Notified FW about OP mode: %d for staId=%d", pe_debug("Notified FW about OP mode: %d",
pHtOpMode->opMode, staId); pHtOpMode->opMode);
} else } else
pe_debug("station %d does not support HT40", staId); pe_debug("station does not support HT40");
} }
return; return;

View File

@@ -2722,8 +2722,7 @@ QDF_STATUS lim_process_tdls_add_sta_rsp(struct mac_context *mac, void *msg,
uint16_t aid = 0; uint16_t aid = 0;
SET_LIM_PROCESS_DEFD_MESGS(mac, true); SET_LIM_PROCESS_DEFD_MESGS(mac, true);
pe_debug("staIdx: %d, staMac: "QDF_MAC_ADDR_STR, pe_debug("staMac: "QDF_MAC_ADDR_STR,
pAddStaParams->staIdx,
QDF_MAC_ADDR_ARRAY(pAddStaParams->staMac)); QDF_MAC_ADDR_ARRAY(pAddStaParams->staMac));
if (pAddStaParams->status != QDF_STATUS_SUCCESS) { if (pAddStaParams->status != QDF_STATUS_SUCCESS) {
@@ -2741,7 +2740,6 @@ QDF_STATUS lim_process_tdls_add_sta_rsp(struct mac_context *mac, void *msg,
goto add_sta_error; goto add_sta_error;
} }
sta->staIndex = pAddStaParams->staIdx;
sta->mlmStaContext.mlmState = eLIM_MLM_LINK_ESTABLISHED_STATE; sta->mlmStaContext.mlmState = eLIM_MLM_LINK_ESTABLISHED_STATE;
sta->valid = 1; sta->valid = 1;
add_sta_error: add_sta_error:

View File

@@ -873,7 +873,6 @@ end:
*/ */
void lim_send_set_sta_key_req(struct mac_context *mac, void lim_send_set_sta_key_req(struct mac_context *mac,
tLimMlmSetKeysReq *pMlmSetKeysReq, tLimMlmSetKeysReq *pMlmSetKeysReq,
uint16_t staIdx,
uint8_t defWEPIdx, uint8_t defWEPIdx,
struct pe_session *pe_session, bool sendRsp) struct pe_session *pe_session, bool sendRsp)
{ {
@@ -888,7 +887,6 @@ void lim_send_set_sta_key_req(struct mac_context *mac,
goto fail; goto fail;
/* Update the WMA_SET_STAKEY_REQ parameters */ /* Update the WMA_SET_STAKEY_REQ parameters */
pSetStaKeyParams->staIdx = staIdx;
pSetStaKeyParams->encType = pMlmSetKeysReq->edType; pSetStaKeyParams->encType = pMlmSetKeysReq->edType;
pSetStaKeyParams->singleTidRc = pSetStaKeyParams->singleTidRc =

View File

@@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2011-2015, 2017-2018 The Linux Foundation. All rights reserved. * Copyright (c) 2011-2015, 2017-2019 The Linux Foundation. All rights reserved.
* *
* Permission to use, copy, modify, and/or distribute this software for * Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the * any purpose with or without fee is hereby granted, provided that the
@@ -71,8 +71,8 @@ uint8_t lim_decrypt_auth_frame(struct mac_context *, uint8_t *, uint8_t *, uint8
uint32_t, uint16_t); uint32_t, uint16_t);
void lim_send_set_bss_key_req(struct mac_context *, tLimMlmSetKeysReq *, struct pe_session *); void lim_send_set_bss_key_req(struct mac_context *, tLimMlmSetKeysReq *, struct pe_session *);
void lim_send_set_sta_key_req(struct mac_context *, tLimMlmSetKeysReq *, uint16_t, uint8_t, void lim_send_set_sta_key_req(struct mac_context *, tLimMlmSetKeysReq *,
struct pe_session *, bool sendRsp); uint8_t, struct pe_session *, bool sendRsp);
void lim_post_sme_set_keys_cnf(struct mac_context *, tLimMlmSetKeysReq *, void lim_post_sme_set_keys_cnf(struct mac_context *, tLimMlmSetKeysReq *,
tLimMlmSetKeysCnf *); tLimMlmSetKeysCnf *);

View File

@@ -291,8 +291,8 @@ QDF_STATUS lim_send_mode_update(struct mac_context *mac,
msgQ.reserved = 0; msgQ.reserved = 0;
msgQ.bodyptr = pVhtOpMode; msgQ.bodyptr = pVhtOpMode;
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",
pVhtOpMode->opMode, pVhtOpMode->staId); pVhtOpMode->opMode);
if (!pe_session) if (!pe_session)
MTRACE(mac_trace_msg_tx(mac, NO_SESSION, msgQ.type)); MTRACE(mac_trace_msg_tx(mac, NO_SESSION, msgQ.type));
else else
@@ -481,8 +481,8 @@ QDF_STATUS lim_send_ht40_obss_scanind(struct mac_context *mac_ctx,
if (!ht40_obss_scanind) if (!ht40_obss_scanind)
return QDF_STATUS_E_FAILURE; return QDF_STATUS_E_FAILURE;
QDF_TRACE(QDF_MODULE_ID_PE, QDF_TRACE_LEVEL_ERROR, QDF_TRACE(QDF_MODULE_ID_PE, QDF_TRACE_LEVEL_ERROR,
"OBSS Scan Indication bss_idx- %d staId %d", "OBSS Scan Indication bss_idx- %d bssid " QDF_MAC_ADDR_STR,
session->vdev_id, session->staId); session->bss_idx, QDF_MAC_ADDR_ARRAY(session->bssId));
ht40_obss_scanind->cmd = HT40_OBSS_SCAN_PARAM_START; ht40_obss_scanind->cmd = HT40_OBSS_SCAN_PARAM_START;
ht40_obss_scanind->scan_type = eSIR_ACTIVE_SCAN; ht40_obss_scanind->scan_type = eSIR_ACTIVE_SCAN;
@@ -526,7 +526,6 @@ QDF_STATUS lim_send_ht40_obss_scanind(struct mac_context *mac_ctx,
} }
ht40_obss_scanind->channel_count = channel24gnum; ht40_obss_scanind->channel_count = channel24gnum;
/* FW API requests BSS IDX */ /* FW API requests BSS IDX */
ht40_obss_scanind->self_sta_idx = session->staId;
ht40_obss_scanind->bss_id = session->vdev_id; ht40_obss_scanind->bss_id = session->vdev_id;
ht40_obss_scanind->fortymhz_intolerent = 0; ht40_obss_scanind->fortymhz_intolerent = 0;
ht40_obss_scanind->iefield_len = 0; ht40_obss_scanind->iefield_len = 0;

View File

@@ -598,8 +598,6 @@ void lim_send_sme_start_bss_rsp(struct mac_context *mac,
pSirSmeRsp->length = size; pSirSmeRsp->length = size;
pSirSmeRsp->sessionId = smesessionId; pSirSmeRsp->sessionId = smesessionId;
pSirSmeRsp->status_code = resultCode; pSirSmeRsp->status_code = resultCode;
if (pe_session)
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;

View File

@@ -5154,14 +5154,13 @@ void lim_pmf_sa_query_timer_handler(void *pMacGlobal, uint32_t param)
} }
#endif #endif
bool lim_check_vht_op_mode_change(struct mac_context *mac, struct pe_session *pe_session, bool lim_check_vht_op_mode_change(struct mac_context *mac,
uint8_t chanWidth, uint8_t staId, struct pe_session *pe_session,
uint8_t *peerMac) uint8_t chanWidth, uint8_t *peerMac)
{ {
tUpdateVHTOpMode tempParam; tUpdateVHTOpMode tempParam;
tempParam.opMode = chanWidth; tempParam.opMode = chanWidth;
tempParam.staId = staId;
tempParam.smesessionId = pe_session->smeSessionId; tempParam.smesessionId = pe_session->smeSessionId;
qdf_mem_copy(tempParam.peer_mac, peerMac, sizeof(tSirMacAddr)); qdf_mem_copy(tempParam.peer_mac, peerMac, sizeof(tSirMacAddr));
@@ -5186,7 +5185,7 @@ bool lim_send_he_ie_update(struct mac_context *mac_ctx, struct pe_session *pe_se
#endif #endif
bool lim_set_nss_change(struct mac_context *mac, struct pe_session *pe_session, bool lim_set_nss_change(struct mac_context *mac, struct pe_session *pe_session,
uint8_t rxNss, uint8_t staId, uint8_t *peerMac) uint8_t rxNss, uint8_t *peerMac)
{ {
tUpdateRxNss tempParam; tUpdateRxNss tempParam;
@@ -5196,7 +5195,6 @@ bool lim_set_nss_change(struct mac_context *mac, struct pe_session *pe_session,
} }
tempParam.rxNss = rxNss; tempParam.rxNss = rxNss;
tempParam.staId = staId;
tempParam.smesessionId = pe_session->smeSessionId; tempParam.smesessionId = pe_session->smeSessionId;
qdf_mem_copy(tempParam.peer_mac, peerMac, sizeof(tSirMacAddr)); qdf_mem_copy(tempParam.peer_mac, peerMac, sizeof(tSirMacAddr));
@@ -5207,14 +5205,13 @@ bool lim_set_nss_change(struct mac_context *mac, struct pe_session *pe_session,
bool lim_check_membership_user_position(struct mac_context *mac, bool lim_check_membership_user_position(struct mac_context *mac,
struct pe_session *pe_session, struct pe_session *pe_session,
uint32_t membership, uint32_t userPosition, uint32_t membership,
uint8_t staId) uint32_t userPosition)
{ {
tUpdateMembership tempParamMembership; tUpdateMembership tempParamMembership;
tUpdateUserPos tempParamUserPosition; tUpdateUserPos tempParamUserPosition;
tempParamMembership.membership = membership; tempParamMembership.membership = membership;
tempParamMembership.staId = staId;
tempParamMembership.smesessionId = pe_session->smeSessionId; tempParamMembership.smesessionId = pe_session->smeSessionId;
qdf_mem_copy(tempParamMembership.peer_mac, pe_session->bssId, qdf_mem_copy(tempParamMembership.peer_mac, pe_session->bssId,
sizeof(tSirMacAddr)); sizeof(tSirMacAddr));
@@ -5222,7 +5219,6 @@ bool lim_check_membership_user_position(struct mac_context *mac,
lim_set_membership(mac, &tempParamMembership, pe_session); lim_set_membership(mac, &tempParamMembership, pe_session);
tempParamUserPosition.userPos = userPosition; tempParamUserPosition.userPos = userPosition;
tempParamUserPosition.staId = staId;
tempParamUserPosition.smesessionId = pe_session->smeSessionId; tempParamUserPosition.smesessionId = pe_session->smeSessionId;
qdf_mem_copy(tempParamUserPosition.peer_mac, pe_session->bssId, qdf_mem_copy(tempParamUserPosition.peer_mac, pe_session->bssId,
sizeof(tSirMacAddr)); sizeof(tSirMacAddr));

View File

@@ -595,17 +595,16 @@ uint32_t lim_get_max_rate_flags(struct mac_context *mac_ctx,
bool lim_check_vht_op_mode_change(struct mac_context *mac, bool lim_check_vht_op_mode_change(struct mac_context *mac,
struct pe_session *pe_session, struct pe_session *pe_session,
uint8_t chanWidth, uint8_t staId, uint8_t chanWidth,
uint8_t *peerMac); uint8_t *peerMac);
#ifdef WLAN_FEATURE_11AX_BSS_COLOR #ifdef WLAN_FEATURE_11AX_BSS_COLOR
bool lim_send_he_ie_update(struct mac_context *mac_ctx, struct pe_session *pe_session); bool lim_send_he_ie_update(struct mac_context *mac_ctx, struct pe_session *pe_session);
#endif #endif
bool lim_set_nss_change(struct mac_context *mac, struct pe_session *pe_session, bool lim_set_nss_change(struct mac_context *mac, struct pe_session *pe_session,
uint8_t rxNss, uint8_t staId, uint8_t *peerMac); uint8_t rxNss, uint8_t *peerMac);
bool lim_check_membership_user_position(struct mac_context *mac, bool lim_check_membership_user_position(struct mac_context *mac,
struct pe_session *pe_session, struct pe_session *pe_session,
uint32_t membership, uint32_t userPosition, uint32_t membership, uint32_t userPosition);
uint8_t staId);
/** /**
* enum ack_status - Indicate TX status of ASSOC/AUTH * enum ack_status - Indicate TX status of ASSOC/AUTH

View File

@@ -356,8 +356,6 @@ void lim_process_ndi_mlm_add_bss_rsp(struct mac_context *mac_ctx,
session_entry->vdev_id = add_bss_rsp->vdev_id; session_entry->vdev_id = add_bss_rsp->vdev_id;
session_entry->limSystemRole = eLIM_NDI_ROLE; session_entry->limSystemRole = eLIM_NDI_ROLE;
session_entry->statypeForBss = STA_ENTRY_SELF; session_entry->statypeForBss = STA_ENTRY_SELF;
session_entry->staId =
wma_peer_get_peet_id(session_entry->self_mac_addr);
/* Apply previously set configuration at HW */ /* Apply previously set configuration at HW */
lim_apply_configuration(mac_ctx, session_entry); lim_apply_configuration(mac_ctx, session_entry);
mlm_start_cnf.resultCode = eSIR_SME_SUCCESS; mlm_start_cnf.resultCode = eSIR_SME_SUCCESS;
@@ -443,7 +441,6 @@ static QDF_STATUS lim_send_sme_ndp_add_sta_rsp(struct mac_context *mac_ctx,
qdf_mem_copy(new_peer_ind->peer_mac_addr.bytes, add_sta_rsp->staMac, qdf_mem_copy(new_peer_ind->peer_mac_addr.bytes, add_sta_rsp->staMac,
sizeof(tSirMacAddr)); sizeof(tSirMacAddr));
new_peer_ind->sta_id = add_sta_rsp->staIdx;
ucfg_nan_datapath_event_handler(psoc, vdev, NDP_NEW_PEER, new_peer_ind); ucfg_nan_datapath_event_handler(psoc, vdev, NDP_NEW_PEER, new_peer_ind);
qdf_mem_free(new_peer_ind); qdf_mem_free(new_peer_ind);
@@ -491,7 +488,6 @@ void lim_ndp_add_sta_rsp(struct mac_context *mac_ctx, struct pe_session *session
qdf_mem_free(add_sta_rsp); qdf_mem_free(add_sta_rsp);
return; return;
} }
sta_ds->staIndex = add_sta_rsp->staIdx;
sta_ds->valid = 1; sta_ds->valid = 1;
sta_ds->mlmStaContext.mlmState = eLIM_MLM_LINK_ESTABLISHED_STATE; sta_ds->mlmStaContext.mlmState = eLIM_MLM_LINK_ESTABLISHED_STATE;
lim_send_sme_ndp_add_sta_rsp(mac_ctx, session, add_sta_rsp); lim_send_sme_ndp_add_sta_rsp(mac_ctx, session, add_sta_rsp);

View File

@@ -483,7 +483,7 @@ static void update_nss(struct mac_context *mac_ctx, tpDphHashNode sta_ds,
sta_ds->vhtSupportedRxNss = sta_ds->vhtSupportedRxNss =
beacon->OperatingMode.rxNSS + 1; beacon->OperatingMode.rxNSS + 1;
lim_set_nss_change(mac_ctx, session_entry, lim_set_nss_change(mac_ctx, session_entry,
sta_ds->vhtSupportedRxNss, sta_ds->staIndex, sta_ds->vhtSupportedRxNss,
mgmt_hdr->sa); mgmt_hdr->sa);
} }
} }
@@ -618,7 +618,7 @@ sch_bcn_update_opmode_change(struct mac_context *mac_ctx, tpDphHashNode sta_ds,
ch_width = eHT_CHANNEL_WIDTH_20MHZ; ch_width = eHT_CHANNEL_WIDTH_20MHZ;
} }
lim_check_vht_op_mode_change(mac_ctx, session, lim_check_vht_op_mode_change(mac_ctx, session,
ch_width, sta_ds->staIndex, mac_hdr->sa); ch_width, mac_hdr->sa);
update_nss(mac_ctx, sta_ds, bcn, session, mac_hdr); update_nss(mac_ctx, sta_ds, bcn, session, mac_hdr);
} }
return; return;
@@ -686,7 +686,7 @@ sch_bcn_update_opmode_change(struct mac_context *mac_ctx, tpDphHashNode sta_ds,
} }
} }
lim_check_vht_op_mode_change(mac_ctx, session, ch_width, lim_check_vht_op_mode_change(mac_ctx, session, ch_width,
sta_ds->staIndex, mac_hdr->sa); mac_hdr->sa);
} }
} }
@@ -728,8 +728,7 @@ sch_bcn_process_sta_ibss(struct mac_context *mac_ctx,
/* check for VHT capability */ /* check for VHT capability */
sta = dph_lookup_hash_entry(mac_ctx, pMh->sa, &aid, sta = dph_lookup_hash_entry(mac_ctx, pMh->sa, &aid,
&session->dph.dphHashTable); &session->dph.dphHashTable);
if ((!sta) || ((sta) && if ((!sta))
(STA_INVALID_IDX == sta->staIndex)))
return; return;
sch_bcn_update_opmode_change(mac_ctx, sta, session, bcn, pMh, sch_bcn_update_opmode_change(mac_ctx, sta, session, bcn, pMh,
cb_mode); cb_mode);

View File

@@ -1113,14 +1113,14 @@ QDF_STATUS sme_request_ibss_peer_info(mac_handle_t mac_handle,
void *cb_context, void *cb_context,
ibss_peer_info_cb peer_info_cb, ibss_peer_info_cb peer_info_cb,
bool allPeerInfoReqd, bool allPeerInfoReqd,
uint8_t staIdx); uint8_t *mac_addr);
#else #else
static inline static inline
QDF_STATUS sme_request_ibss_peer_info(mac_handle_t mac_handle, QDF_STATUS sme_request_ibss_peer_info(mac_handle_t mac_handle,
void *cb_context, void *cb_context,
ibss_peer_info_cb peer_info_cb, ibss_peer_info_cb peer_info_cb,
bool allPeerInfoReqd, bool allPeerInfoReqd,
uint8_t staIdx) uint8_t *mac_addr);
{ {
return QDF_STATUS_SUCCESS; return QDF_STATUS_SUCCESS;
} }
@@ -1157,7 +1157,7 @@ int sme_update_ht_config(mac_handle_t mac_handle, uint8_t sessionId,
int16_t sme_get_ht_config(mac_handle_t mac_handle, uint8_t session_id, int16_t sme_get_ht_config(mac_handle_t mac_handle, uint8_t session_id,
uint16_t ht_capab); uint16_t ht_capab);
#ifdef QCA_HT_2040_COEX #ifdef QCA_HT_2040_COEX
QDF_STATUS sme_notify_ht2040_mode(mac_handle_t mac_handle, uint16_t staId, QDF_STATUS sme_notify_ht2040_mode(mac_handle_t mac_handle,
struct qdf_mac_addr macAddrSTA, struct qdf_mac_addr macAddrSTA,
uint8_t sessionId, uint8_t sessionId,
uint8_t channel_type); uint8_t channel_type);

View File

@@ -1831,7 +1831,7 @@ QDF_STATUS sme_ibss_peer_info_response_handler(struct mac_context *mac,
QDF_STATUS sme_request_ibss_peer_info(mac_handle_t mac_handle, void *cb_context, QDF_STATUS sme_request_ibss_peer_info(mac_handle_t mac_handle, void *cb_context,
ibss_peer_info_cb peer_info_cb, ibss_peer_info_cb peer_info_cb,
bool allPeerInfoReqd, uint8_t staIdx) bool allPeerInfoReqd, uint8_t *mac_addr)
{ {
QDF_STATUS status = QDF_STATUS_E_FAILURE; QDF_STATUS status = QDF_STATUS_E_FAILURE;
QDF_STATUS qdf_status = QDF_STATUS_E_FAILURE; QDF_STATUS qdf_status = QDF_STATUS_E_FAILURE;
@@ -1853,7 +1853,8 @@ QDF_STATUS sme_request_ibss_peer_info(mac_handle_t mac_handle, void *cb_context,
return QDF_STATUS_E_NOMEM; return QDF_STATUS_E_NOMEM;
} }
pIbssInfoReqParams->allPeerInfoReqd = allPeerInfoReqd; pIbssInfoReqParams->allPeerInfoReqd = allPeerInfoReqd;
pIbssInfoReqParams->staIdx = staIdx; qdf_mem_copy(pIbssInfoReqParams->peer_mac.bytes, mac_addr,
QDF_MAC_ADDR_SIZE);
message.type = WMA_GET_IBSS_PEER_INFO_REQ; message.type = WMA_GET_IBSS_PEER_INFO_REQ;
message.bodyptr = pIbssInfoReqParams; message.bodyptr = pIbssInfoReqParams;
@@ -8215,7 +8216,7 @@ QDF_STATUS sme_notify_modem_power_state(mac_handle_t mac_handle, uint32_t value)
} }
#ifdef QCA_HT_2040_COEX #ifdef QCA_HT_2040_COEX
QDF_STATUS sme_notify_ht2040_mode(mac_handle_t mac_handle, uint16_t staId, QDF_STATUS sme_notify_ht2040_mode(mac_handle_t mac_handle,
struct qdf_mac_addr macAddrSTA, struct qdf_mac_addr macAddrSTA,
uint8_t sessionId, uint8_t sessionId,
uint8_t channel_type) uint8_t channel_type)
@@ -8248,7 +8249,6 @@ QDF_STATUS sme_notify_ht2040_mode(mac_handle_t mac_handle, uint16_t staId,
return QDF_STATUS_E_FAILURE; return QDF_STATUS_E_FAILURE;
} }
pHtOpMode->staId = staId,
qdf_mem_copy(pHtOpMode->peer_mac, macAddrSTA.bytes, qdf_mem_copy(pHtOpMode->peer_mac, macAddrSTA.bytes,
sizeof(tSirMacAddr)); sizeof(tSirMacAddr));
pHtOpMode->smesessionId = sessionId; pHtOpMode->smesessionId = sessionId;
@@ -8268,8 +8268,8 @@ QDF_STATUS sme_notify_ht2040_mode(mac_handle_t mac_handle, uint16_t staId,
} }
QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG, QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG,
"%s: Notified FW about OP mode: %d for staId=%d", "%s: Notified FW about OP mode: %d",
__func__, pHtOpMode->opMode, staId); __func__, pHtOpMode->opMode);
return QDF_STATUS_SUCCESS; return QDF_STATUS_SUCCESS;
} }

View File

@@ -21804,7 +21804,6 @@ static QDF_STATUS csr_process_roam_sync_callback(struct mac_context *mac_ctx,
conn_profile->vht_channel_width = conn_profile->vht_channel_width =
roam_synch_data->join_rsp->vht_channel_width; roam_synch_data->join_rsp->vht_channel_width;
add_bss_params = (struct bss_params *)roam_synch_data->add_bss_params; add_bss_params = (struct bss_params *)roam_synch_data->add_bss_params;
session->connectedInfo.staId = add_bss_params->staContext.staIdx;
roam_info->staId = session->connectedInfo.staId; roam_info->staId = session->connectedInfo.staId;
roam_info->timingMeasCap = roam_info->timingMeasCap =
roam_synch_data->join_rsp->timingMeasCap; roam_synch_data->join_rsp->timingMeasCap;

View File

@@ -206,10 +206,6 @@ typedef struct {
*/ */
/* The return status of SIR_HAL_ADD_STA_REQ is reported here */ /* The return status of SIR_HAL_ADD_STA_REQ is reported here */
QDF_STATUS status; QDF_STATUS status;
/* Station index; valid only when 'status' field value is
* QDF_STATUS_SUCCESS
*/
uint8_t staIdx;
uint8_t updateSta; uint8_t updateSta;
uint8_t rmfEnabled; uint8_t rmfEnabled;
uint32_t encryptType; uint32_t encryptType;
@@ -297,7 +293,6 @@ typedef struct {
* a new key descriptor is created based on the key field. * a new key descriptor is created based on the key field.
*/ */
typedef struct { typedef struct {
uint16_t staIdx;
tAniEdType encType; tAniEdType encType;
uint8_t defWEPIdx; uint8_t defWEPIdx;
tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS]; tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];
@@ -566,7 +561,6 @@ typedef struct {
*/ */
typedef struct { typedef struct {
uint16_t opMode; uint16_t opMode;
uint16_t staId;
uint16_t smesessionId; uint16_t smesessionId;
tSirMacAddr peer_mac; tSirMacAddr peer_mac;
} tUpdateVHTOpMode, *tpUpdateVHTOpMode; } tUpdateVHTOpMode, *tpUpdateVHTOpMode;
@@ -580,7 +574,6 @@ typedef struct {
*/ */
typedef struct { typedef struct {
uint16_t rxNss; uint16_t rxNss;
uint16_t staId;
uint16_t smesessionId; uint16_t smesessionId;
tSirMacAddr peer_mac; tSirMacAddr peer_mac;
} tUpdateRxNss, *tpUpdateRxNss; } tUpdateRxNss, *tpUpdateRxNss;
@@ -594,7 +587,6 @@ typedef struct {
*/ */
typedef struct { typedef struct {
uint32_t membership; uint32_t membership;
uint16_t staId;
uint16_t smesessionId; uint16_t smesessionId;
tSirMacAddr peer_mac; tSirMacAddr peer_mac;
} tUpdateMembership, *tpUpdateMembership; } tUpdateMembership, *tpUpdateMembership;
@@ -608,7 +600,6 @@ typedef struct {
*/ */
typedef struct { typedef struct {
uint32_t userPos; uint32_t userPos;
uint16_t staId;
uint16_t smesessionId; uint16_t smesessionId;
tSirMacAddr peer_mac; tSirMacAddr peer_mac;
} tUpdateUserPos, *tpUpdateUserPos; } tUpdateUserPos, *tpUpdateUserPos;

View File

@@ -3584,19 +3584,19 @@ static
QDF_STATUS wma_save_bss_params(tp_wma_handle wma, struct bss_params *add_bss) QDF_STATUS wma_save_bss_params(tp_wma_handle wma, struct bss_params *add_bss)
{ {
QDF_STATUS status; QDF_STATUS status;
uint8_t sta_id;
wma_vdev_set_he_config(wma, add_bss->staContext.smesessionId, add_bss); wma_vdev_set_he_config(wma, add_bss->staContext.smesessionId, add_bss);
if (!wma_cdp_find_peer_by_addr(add_bss->bssId, if (!wma_cdp_find_peer_by_addr(add_bss->bssId, &sta_id))
&add_bss->staContext.staIdx))
status = QDF_STATUS_E_FAILURE; status = QDF_STATUS_E_FAILURE;
else else
status = QDF_STATUS_SUCCESS; status = QDF_STATUS_SUCCESS;
qdf_mem_copy(add_bss->staContext.staMac, add_bss->bssId, qdf_mem_copy(add_bss->staContext.staMac, add_bss->bssId,
sizeof(add_bss->staContext.staMac)); sizeof(add_bss->staContext.staMac));
WMA_LOGD("%s: update_bss %d nw_type %d bssid %pM staIdx %d status %d", WMA_LOGD("%s: update_bss %d nw_type %d bssid %pM status %d",
__func__, add_bss->updateBss, add_bss->nwType, add_bss->bssId, __func__, add_bss->updateBss, add_bss->nwType, add_bss->bssId,
add_bss->staContext.staIdx, status); status);
return status; return status;
} }
@@ -3637,9 +3637,7 @@ void wma_add_bss_lfr3(tp_wma_handle wma, struct bss_params *add_bss)
add_bss->bssId); add_bss->bssId);
return; return;
} }
add_bss->staContext.staIdx = peer_id; WMA_LOGD("LFR3:%s: bssid %pM", __func__, add_bss->bssId);
WMA_LOGD("LFR3:%s: bssid %pM staIdx %d", __func__, add_bss->bssId,
add_bss->staContext.staIdx);
} }
@@ -3727,7 +3725,6 @@ QDF_STATUS wma_add_bss_lfr2_vdev_start(struct wlan_objmgr_vdev *vdev,
wma_err("failed, status: %d", status); wma_err("failed, status: %d", status);
goto peer_cleanup; goto peer_cleanup;
} }
status = wma_set_cdp_vdev_pause_reason(wma, vdev_id); status = wma_set_cdp_vdev_pause_reason(wma, vdev_id);
if (QDF_IS_STATUS_ERROR(status)) if (QDF_IS_STATUS_ERROR(status))
goto peer_cleanup; goto peer_cleanup;
@@ -3781,10 +3778,9 @@ QDF_STATUS wma_send_peer_assoc_req(struct bss_params *add_bss)
goto send_resp; goto send_resp;
peer = wma_cdp_find_peer_by_addr(add_bss->bssId, &peer_id); peer = wma_cdp_find_peer_by_addr(add_bss->bssId, &peer_id);
if (add_bss->nonRoamReassoc && peer) { if (add_bss->nonRoamReassoc && peer)
add_bss->staContext.staIdx = peer_id;
goto send_resp; goto send_resp;
}
if (!add_bss->updateBss) if (!add_bss->updateBss)
goto send_resp; goto send_resp;
@@ -4080,7 +4076,6 @@ static void wma_add_sta_req_ap_mode(tp_wma_handle wma, tpAddStaParams add_sta)
__func__, add_sta->staMac, state); __func__, add_sta->staMac, state);
cdp_peer_state_update(soc, pdev, add_sta->staMac, state); cdp_peer_state_update(soc, pdev, add_sta->staMac, state);
add_sta->staIdx = cdp_peer_get_local_peer_id(soc, peer);
add_sta->nss = iface->nss; add_sta->nss = iface->nss;
add_sta->status = QDF_STATUS_SUCCESS; add_sta->status = QDF_STATUS_SUCCESS;
send_rsp: send_rsp:
@@ -4090,9 +4085,9 @@ send_rsp:
return; return;
} }
WMA_LOGD(FL("statype %d vdev_id %d aid %d bssid %pM staIdx %d status %d"), WMA_LOGD(FL("statype %d vdev_id %d aid %d bssid %pM status %d"),
add_sta->staType, add_sta->smesessionId, add_sta->staType, add_sta->smesessionId,
add_sta->assocId, add_sta->bssId, add_sta->staIdx, add_sta->assocId, add_sta->bssId,
add_sta->status); add_sta->status);
wma_send_msg_high_priority(wma, WMA_ADD_STA_RSP, (void *)add_sta, 0); wma_send_msg_high_priority(wma, WMA_ADD_STA_RSP, (void *)add_sta, 0);
} }
@@ -4173,7 +4168,6 @@ static void wma_add_tdls_sta(tp_wma_handle wma, tpAddStaParams add_sta)
goto send_rsp; goto send_rsp;
} }
add_sta->staIdx = cdp_peer_get_local_peer_id(soc, peer);
WMA_LOGD("%s: addSta, after calling cdp_local_peer_id, staMac: %pM", WMA_LOGD("%s: addSta, after calling cdp_local_peer_id, staMac: %pM",
__func__, add_sta->staMac); __func__, add_sta->staMac);
@@ -4316,6 +4310,8 @@ static void wma_add_sta_req_sta_mode(tp_wma_handle wma, tpAddStaParams params)
bool peer_assoc_cnf = false; bool peer_assoc_cnf = false;
int smps_param; int smps_param;
void *soc = cds_get_context(QDF_MODULE_ID_SOC); void *soc = cds_get_context(QDF_MODULE_ID_SOC);
/* Will be removed as a part of cleanup */
uint8_t sta_id;
#ifdef FEATURE_WLAN_TDLS #ifdef FEATURE_WLAN_TDLS
if (STA_ENTRY_TDLS_PEER == params->staType) { if (STA_ENTRY_TDLS_PEER == params->staType) {
@@ -4337,9 +4333,7 @@ static void wma_add_sta_req_sta_mode(tp_wma_handle wma, tpAddStaParams params)
__func__, params->staType); __func__, params->staType);
goto out; goto out;
} }
peer = cdp_peer_find_by_addr(soc, peer = cdp_peer_find_by_addr(soc, pdev, params->bssId, &sta_id);
pdev,
params->bssId, &params->staIdx);
if (!peer) { if (!peer) {
WMA_LOGE("%s: Peer is not present vdev id %d for %pM", __func__, WMA_LOGE("%s: Peer is not present vdev id %d for %pM", __func__,
params->smesessionId, params->bssId); params->smesessionId, params->bssId);
@@ -4554,9 +4548,9 @@ out:
return; return;
params->status = status; params->status = status;
WMA_LOGD(FL("statype %d vdev_id %d aid %d bssid %pM staIdx %d status %d"), WMA_LOGD(FL("statype %d vdev_id %d aid %d sta mac " QDF_MAC_ADDR_STR
params->staType, params->smesessionId, " status %d"), params->staType, params->smesessionId,
params->assocId, params->bssId, params->staIdx, params->assocId, QDF_MAC_ADDR_ARRAY(params->bssId),
params->status); params->status);
/* Don't send a response during roam sync operation */ /* Don't send a response during roam sync operation */
if (!wma_is_roam_synch_in_progress(wma, params->smesessionId)) if (!wma_is_roam_synch_in_progress(wma, params->smesessionId))
@@ -4577,9 +4571,10 @@ static void wma_delete_sta_req_ap_mode(tp_wma_handle wma,
struct cdp_pdev *pdev; struct cdp_pdev *pdev;
void *peer; void *peer;
struct wma_target_req *msg; struct wma_target_req *msg;
uint8_t *peer_mac_addr;
void *soc = cds_get_context(QDF_MODULE_ID_SOC); void *soc = cds_get_context(QDF_MODULE_ID_SOC);
QDF_STATUS qdf_status; QDF_STATUS qdf_status;
/* Will be removed as a part of cleanup */
uint8_t sta_id;
pdev = cds_get_context(QDF_MODULE_ID_TXRX); pdev = cds_get_context(QDF_MODULE_ID_TXRX);
@@ -4589,17 +4584,16 @@ static void wma_delete_sta_req_ap_mode(tp_wma_handle wma,
goto send_del_rsp; goto send_del_rsp;
} }
peer = cdp_peer_find_by_local_id(soc, peer = cdp_peer_find_by_addr(soc, pdev, del_sta->staMac, &sta_id);
pdev, del_sta->staIdx);
if (!peer) { if (!peer) {
WMA_LOGE("%s: Failed to get peer handle using peer id %d", WMA_LOGE("%s: Failed to get peer handle using peer id %d",
__func__, del_sta->staIdx); __func__, del_sta->staIdx);
del_sta->status = QDF_STATUS_E_FAILURE; del_sta->status = QDF_STATUS_E_FAILURE;
goto send_del_rsp; goto send_del_rsp;
} }
peer_mac_addr = cdp_peer_get_peer_mac_addr(soc, peer);
qdf_status = wma_remove_peer(wma, peer_mac_addr, del_sta->smesessionId, qdf_status = wma_remove_peer(wma, del_sta->staMac,
del_sta->smesessionId,
peer, false); peer, false);
if (QDF_IS_STATUS_ERROR(qdf_status)) { if (QDF_IS_STATUS_ERROR(qdf_status)) {
WMA_LOGE(FL("wma_remove_peer failed")); WMA_LOGE(FL("wma_remove_peer failed"));

View File

@@ -2986,11 +2986,12 @@ QDF_STATUS wma_process_get_peer_info_req
uint16_t len; uint16_t len;
wmi_buf_t buf; wmi_buf_t buf;
int32_t vdev_id; int32_t vdev_id;
/* Will be removed in cleanup */
uint8_t sta_id;
struct cdp_pdev *pdev; struct cdp_pdev *pdev;
void *peer; void *peer;
void *soc = cds_get_context(QDF_MODULE_ID_SOC); void *soc = cds_get_context(QDF_MODULE_ID_SOC);
uint8_t peer_mac[QDF_MAC_ADDR_SIZE]; uint8_t peer_mac[QDF_MAC_ADDR_SIZE];
uint8_t *peer_mac_raw;
wmi_peer_info_req_cmd_fixed_param *p_get_peer_info_cmd; wmi_peer_info_req_cmd_fixed_param *p_get_peer_info_cmd;
uint8_t bcast_mac[QDF_MAC_ADDR_SIZE] = { 0xff, 0xff, 0xff, uint8_t bcast_mac[QDF_MAC_ADDR_SIZE] = { 0xff, 0xff, 0xff,
0xff, 0xff, 0xff }; 0xff, 0xff, 0xff };
@@ -3013,30 +3014,23 @@ QDF_STATUS wma_process_get_peer_info_req
return QDF_STATUS_E_FAILURE; return QDF_STATUS_E_FAILURE;
} }
if (0xFF == pReq->staIdx) { if (qdf_is_macaddr_broadcast(&pReq->peer_mac)) {
/*get info for all peers */ /*get info for all peers */
qdf_mem_copy(peer_mac, bcast_mac, QDF_MAC_ADDR_SIZE); qdf_mem_copy(peer_mac, bcast_mac, QDF_MAC_ADDR_SIZE);
} else { } else {
/*get info for a single peer */ /*get info for a single peer */
peer = cdp_peer_find_by_local_id(soc, peer = cdp_peer_find_by_addr(soc, pdev,
pdev, pReq->staIdx); pReq->peer_mac.bytes, &sta_id);
if (!peer) { if (!peer) {
WMA_LOGE("%s: Failed to get peer handle using peer id %d", WMA_LOGE("%s: Failed to get peer handle using peer "
__func__, pReq->staIdx); QDF_MAC_ADDR_STR, __func__,
return QDF_STATUS_E_FAILURE; QDF_MAC_ADDR_ARRAY(pReq->peer_mac.bytes));
}
peer_mac_raw = cdp_peer_get_peer_mac_addr(soc, peer);
if (!peer_mac_raw) {
WMA_LOGE("peer_mac_raw is NULL");
return QDF_STATUS_E_FAILURE; return QDF_STATUS_E_FAILURE;
} }
WMA_LOGE("%s: staIdx %d peer mac: 0x%2x:0x%2x:0x%2x:0x%2x:0x%2x:0x%2x", WMA_LOGE("%s: peer mac: " QDF_MAC_ADDR_STR, __func__,
__func__, pReq->staIdx, peer_mac_raw[0], QDF_MAC_ADDR_ARRAY(pReq->peer_mac.bytes));
peer_mac_raw[1], peer_mac_raw[2], qdf_mem_copy(peer_mac, pReq->peer_mac.bytes, QDF_MAC_ADDR_SIZE);
peer_mac_raw[3], peer_mac_raw[4],
peer_mac_raw[5]);
qdf_mem_copy(peer_mac, peer_mac_raw, QDF_MAC_ADDR_SIZE);
} }
len = sizeof(wmi_peer_info_req_cmd_fixed_param); len = sizeof(wmi_peer_info_req_cmd_fixed_param);

View File

@@ -124,7 +124,6 @@ void wma_add_sta_ndi_mode(tp_wma_handle wma, tpAddStaParams add_sta)
WMA_LOGD(FL("Moving peer %pM to state %d"), add_sta->staMac, state); WMA_LOGD(FL("Moving peer %pM to state %d"), add_sta->staMac, state);
cdp_peer_state_update(soc, pdev, add_sta->staMac, state); cdp_peer_state_update(soc, pdev, add_sta->staMac, state);
add_sta->staIdx = cdp_peer_get_local_peer_id(soc, peer);
add_sta->nss = iface->nss; add_sta->nss = iface->nss;
add_sta->status = QDF_STATUS_SUCCESS; add_sta->status = QDF_STATUS_SUCCESS;
send_rsp: send_rsp:
@@ -148,6 +147,8 @@ void wma_delete_sta_req_ndi_mode(tp_wma_handle wma,
struct cdp_pdev *pdev; struct cdp_pdev *pdev;
void *peer; void *peer;
void *soc = cds_get_context(QDF_MODULE_ID_SOC); void *soc = cds_get_context(QDF_MODULE_ID_SOC);
/* Will be removed as a part of cleanup */
uint8_t sta_id;
pdev = cds_get_context(QDF_MODULE_ID_TXRX); pdev = cds_get_context(QDF_MODULE_ID_TXRX);
if (!pdev) { if (!pdev) {
@@ -156,11 +157,12 @@ void wma_delete_sta_req_ndi_mode(tp_wma_handle wma,
goto send_del_rsp; goto send_del_rsp;
} }
peer = cdp_peer_find_by_local_id(cds_get_context(QDF_MODULE_ID_SOC), peer = cdp_peer_find_by_addr(cds_get_context(QDF_MODULE_ID_SOC),
pdev, del_sta->staIdx); pdev, del_sta->staMac, &sta_id);
if (!peer) { if (!peer) {
WMA_LOGE(FL("Failed to get peer handle using peer id %d"), WMA_LOGE(FL("Failed to get peer handle using peer mac "
del_sta->staIdx); QDF_MAC_ADDR_STR),
QDF_MAC_ADDR_ARRAY(del_sta->staMac));
del_sta->status = QDF_STATUS_E_FAILURE; del_sta->status = QDF_STATUS_E_FAILURE;
goto send_del_rsp; goto send_del_rsp;
} }

View File

@@ -2719,7 +2719,6 @@ wma_roam_update_vdev(tp_wma_handle wma,
add_sta_params->smesessionId = vdev_id; add_sta_params->smesessionId = vdev_id;
qdf_mem_copy(&add_sta_params->bssId, &roam_synch_ind_ptr->bssid.bytes, qdf_mem_copy(&add_sta_params->bssId, &roam_synch_ind_ptr->bssid.bytes,
QDF_MAC_ADDR_SIZE); QDF_MAC_ADDR_SIZE);
add_sta_params->staIdx = STA_INVALID_IDX;
add_sta_params->assocId = roam_synch_ind_ptr->aid; add_sta_params->assocId = roam_synch_ind_ptr->aid;
bssid = wma_get_vdev_bssid(wma->interfaces[vdev_id].vdev); bssid = wma_get_vdev_bssid(wma->interfaces[vdev_id].vdev);