qcacld-3.0: Set peer staId for management frame.

qcacld-2.0 to qcacld-3.0 propagation

Currently for sta mode while sending management
frames such as auth, assoc, reasssoc,deauth,
diassoc driver sends selfStaId. This results
in frames going on the air with the self data
rate and not the data rate supported by peer.
As a part of fix, make sure that the peerStaId is
used for sending above management frames.

Change-Id: Ia368ff13aed1002600f5fb3ad55c3d20106d586a
CRs-Fixed: 826260
This commit is contained in:
Sushant Kaushik
2015-12-02 16:57:47 +05:30
committato da Akash Patel
parent 1ae6563822
commit 109daae06e

Vedi File

@@ -1930,7 +1930,8 @@ lim_send_assoc_req_mgmt_frame(tpAniSirGlobal mac_ctx,
) )
tx_flag |= HAL_USE_BD_RATE2_FOR_MANAGEMENT_FRAME; tx_flag |= HAL_USE_BD_RATE2_FOR_MANAGEMENT_FRAME;
if (pe_session->pePersona == CDF_P2P_CLIENT_MODE) if (pe_session->pePersona == CDF_P2P_CLIENT_MODE ||
pe_session->pePersona == CDF_STA_MODE)
tx_flag |= HAL_USE_PEER_STA_REQUESTED_MASK; tx_flag |= HAL_USE_PEER_STA_REQUESTED_MASK;
#ifdef FEATURE_WLAN_DIAG_SUPPORT #ifdef FEATURE_WLAN_DIAG_SUPPORT
@@ -2710,9 +2711,9 @@ lim_send_reassoc_req_mgmt_frame(tpAniSirGlobal pMac,
txFlag |= HAL_USE_BD_RATE2_FOR_MANAGEMENT_FRAME; txFlag |= HAL_USE_BD_RATE2_FOR_MANAGEMENT_FRAME;
} }
if (psessionEntry->pePersona == CDF_P2P_CLIENT_MODE) { if (psessionEntry->pePersona == CDF_P2P_CLIENT_MODE ||
psessionEntry->pePersona == CDF_STA_MODE)
txFlag |= HAL_USE_PEER_STA_REQUESTED_MASK; txFlag |= HAL_USE_PEER_STA_REQUESTED_MASK;
}
#ifdef FEATURE_WLAN_DIAG_SUPPORT #ifdef FEATURE_WLAN_DIAG_SUPPORT
lim_diag_event_report(pMac, WLAN_PE_DIAG_REASSOC_START_EVENT, lim_diag_event_report(pMac, WLAN_PE_DIAG_REASSOC_START_EVENT,
@@ -3015,10 +3016,10 @@ lim_send_auth_mgmt_frame(tpAniSirGlobal mac_ctx,
tx_flag |= HAL_USE_BD_RATE2_FOR_MANAGEMENT_FRAME; tx_flag |= HAL_USE_BD_RATE2_FOR_MANAGEMENT_FRAME;
if (session->pePersona == CDF_P2P_CLIENT_MODE) if (session->pePersona == CDF_P2P_CLIENT_MODE ||
session->pePersona == CDF_STA_MODE)
tx_flag |= HAL_USE_PEER_STA_REQUESTED_MASK; tx_flag |= HAL_USE_PEER_STA_REQUESTED_MASK;
MTRACE(cdf_trace(CDF_MODULE_ID_PE, TRACE_CODE_TX_MGMT, MTRACE(cdf_trace(CDF_MODULE_ID_PE, TRACE_CODE_TX_MGMT,
session->peSessionId, mac_hdr->fc.subType)); session->peSessionId, mac_hdr->fc.subType));
/* Queue Authentication frame in high priority WQ */ /* Queue Authentication frame in high priority WQ */
@@ -3345,10 +3346,7 @@ lim_send_disassoc_mgmt_frame(tpAniSirGlobal pMac,
txFlag |= HAL_USE_BD_RATE2_FOR_MANAGEMENT_FRAME; txFlag |= HAL_USE_BD_RATE2_FOR_MANAGEMENT_FRAME;
} }
if ((psessionEntry->pePersona == CDF_P2P_CLIENT_MODE) || txFlag |= HAL_USE_PEER_STA_REQUESTED_MASK;
(psessionEntry->pePersona == CDF_P2P_GO_MODE)) {
txFlag |= HAL_USE_PEER_STA_REQUESTED_MASK;
}
if (waitForAck) { if (waitForAck) {
MTRACE(cdf_trace(CDF_MODULE_ID_PE, TRACE_CODE_TX_MGMT, MTRACE(cdf_trace(CDF_MODULE_ID_PE, TRACE_CODE_TX_MGMT,
@@ -3525,10 +3523,7 @@ lim_send_deauth_mgmt_frame(tpAniSirGlobal pMac,
txFlag |= HAL_USE_BD_RATE2_FOR_MANAGEMENT_FRAME; txFlag |= HAL_USE_BD_RATE2_FOR_MANAGEMENT_FRAME;
} }
if ((psessionEntry->pePersona == CDF_P2P_CLIENT_MODE) || txFlag |= HAL_USE_PEER_STA_REQUESTED_MASK;
(psessionEntry->pePersona == CDF_P2P_GO_MODE)) {
txFlag |= HAL_USE_PEER_STA_REQUESTED_MASK;
}
#ifdef FEATURE_WLAN_TDLS #ifdef FEATURE_WLAN_TDLS
pStaDs = pStaDs =
dph_lookup_hash_entry(pMac, peer, &aid, dph_lookup_hash_entry(pMac, peer, &aid,