浏览代码

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
Sushant Kaushik 9 年之前
父节点
当前提交
109daae06e
共有 1 个文件被更改,包括 8 次插入13 次删除
  1. 8 13
      core/mac/src/pe/lim/lim_send_management_frames.c

+ 8 - 13
core/mac/src/pe/lim/lim_send_management_frames.c

@@ -1930,7 +1930,8 @@ lim_send_assoc_req_mgmt_frame(tpAniSirGlobal mac_ctx,
 	    )
 		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;
 
 #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;
 	}
 
-	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;
-	}
 
 #ifdef FEATURE_WLAN_DIAG_SUPPORT
 	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;
 
 
-	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;
 
-
 	MTRACE(cdf_trace(CDF_MODULE_ID_PE, TRACE_CODE_TX_MGMT,
 			 session->peSessionId, mac_hdr->fc.subType));
 	/* 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;
 	}
 
-	if ((psessionEntry->pePersona == CDF_P2P_CLIENT_MODE) ||
-	    (psessionEntry->pePersona == CDF_P2P_GO_MODE)) {
-		txFlag |= HAL_USE_PEER_STA_REQUESTED_MASK;
-	}
+	txFlag |= HAL_USE_PEER_STA_REQUESTED_MASK;
 
 	if (waitForAck) {
 		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;
 	}
 
-	if ((psessionEntry->pePersona == CDF_P2P_CLIENT_MODE) ||
-	    (psessionEntry->pePersona == CDF_P2P_GO_MODE)) {
-		txFlag |= HAL_USE_PEER_STA_REQUESTED_MASK;
-	}
+	txFlag |= HAL_USE_PEER_STA_REQUESTED_MASK;
 #ifdef FEATURE_WLAN_TDLS
 	pStaDs =
 		dph_lookup_hash_entry(pMac, peer, &aid,