Procházet zdrojové kódy

qcacld-3.0: Fix to send TDLS frames on peer sta index

qcacld-2.0 to qcacld-3.0 propagation

Currently, After p2p disconnection system role changes to
unknown and due to which tx flag uses self station index
which would send TDLS frames on self station index thus
leading to TDLS connection failure after p2p session teardown.
Fix is to use peer station index in tx flag while sending
TDLS frames except TDLS discovery response which should go on
self station index.

Change-Id: I87ea8806a47730b553055e47bb3e7bdf0266b48f
CRs-Fixed: 970761
Selvaraj, Sridhar před 8 roky
rodič
revize
e9199ab7c7
1 změnil soubory, kde provedl 14 přidání a 10 odebrání
  1. 14 10
      core/mac/src/pe/lim/lim_process_tdls.c

+ 14 - 10
core/mac/src/pe/lim/lim_process_tdls.c

@@ -520,14 +520,16 @@ tSirRetStatus lim_send_tdls_dis_req_frame(tpAniSirGlobal pMac,
 		MAC_ADDR_ARRAY(peer_mac.bytes));
 
 	pMac->lim.tdls_frm_session_id = psessionEntry->peSessionId;
-	qdf_status = wma_tx_frameWithTxComplete(pMac, pPacket, (uint16_t) nBytes,
-					      TXRX_FRM_802_11_DATA,
-					      ANI_TXDIR_TODS,
-					      TID_AC_VI,
-					      lim_tx_complete, pFrame,
-					      lim_mgmt_tdls_tx_complete,
-					      HAL_USE_BD_RATE2_FOR_MANAGEMENT_FRAME,
-					      smeSessionId, false, 0);
+	qdf_status = wma_tx_frameWithTxComplete(pMac, pPacket,
+					(uint16_t) nBytes,
+					TXRX_FRM_802_11_DATA,
+					ANI_TXDIR_TODS,
+					TID_AC_VI,
+					lim_tx_complete, pFrame,
+					lim_mgmt_tdls_tx_complete,
+					HAL_USE_BD_RATE2_FOR_MANAGEMENT_FRAME |
+					HAL_USE_PEER_STA_REQUESTED_MASK,
+					smeSessionId, false, 0);
 	if (!QDF_IS_STATUS_SUCCESS(qdf_status)) {
 		pMac->lim.tdls_frm_session_id = NO_SESSION;
 		lim_log(pMac, LOGE,
@@ -935,7 +937,8 @@ wma_tx_frame_with_tx_complete_send(tpAniSirGlobal pMac, void *pPacket,
 					  tid,
 					  lim_tx_complete, pFrame,
 					  lim_mgmt_tdls_tx_complete,
-					  HAL_USE_BD_RATE2_FOR_MANAGEMENT_FRAME,
+					  HAL_USE_BD_RATE2_FOR_MANAGEMENT_FRAME
+					  | HAL_USE_PEER_STA_REQUESTED_MASK,
 					  smeSessionId, flag, 0);
 }
 #else
@@ -954,7 +957,8 @@ wma_tx_frame_with_tx_complete_send(tpAniSirGlobal pMac, void *pPacket,
 					  tid,
 					  lim_tx_complete, pFrame,
 					  lim_mgmt_tdls_tx_complete,
-					  HAL_USE_BD_RATE2_FOR_MANAGEMENT_FRAME,
+					  HAL_USE_BD_RATE2_FOR_MANAGEMENT_FRAME
+					  | HAL_USE_PEER_STA_REQUESTED_MASK,
 					  smeSessionId, false, 0);
 }
 #endif