Эх сурвалжийг харах

qcacld-3.0: Set AMSDU support in ADDBA if peer supports

Set AMSDU in AMPDU support in addba response frames only
if supports the feature.

Change-Id: Ibdb51e9055199b688f494f31fd484b246ec11163
CRs-Fixed: 2211374
Kiran Kumar Lokere 7 жил өмнө
parent
commit
aee823af05

+ 2 - 1
core/mac/src/pe/lim/lim_process_action_frame.c

@@ -1698,7 +1698,8 @@ static void lim_process_addba_req(tpAniSirGlobal mac_ctx, uint8_t *rx_pkt_info,
 	if (QDF_STATUS_SUCCESS == qdf_status) {
 		lim_send_addba_response_frame(mac_ctx, mac_hdr->sa,
 			addba_req->addba_param_set.tid, session,
-			addba_req->addba_extn_element.present);
+			addba_req->addba_extn_element.present,
+			addba_req->addba_param_set.amsdu_supp);
 	} else {
 		pe_err("Failed to process addba request");
 	}

+ 4 - 2
core/mac/src/pe/lim/lim_send_management_frames.c

@@ -4726,6 +4726,7 @@ returnAfterError:
  * @tid: TID for which addba response is being sent
  * @session: PE session entry
  * @addba_extn_present: ADDBA extension present flag
+ * @amsdu_support: amsdu in ampdu support
  *
  * This function is called when ADDBA request is successful. ADDBA response is
  * setup by calling addba_response_setup API and frame is then sent out OTA.
@@ -4734,7 +4735,8 @@ returnAfterError:
  */
 QDF_STATUS lim_send_addba_response_frame(tpAniSirGlobal mac_ctx,
 		tSirMacAddr peer_mac, uint16_t tid,
-		tpPESession session, uint8_t addba_extn_present)
+		tpPESession session, uint8_t addba_extn_present,
+		uint8_t amsdu_support)
 {
 
 	tDot11faddba_rsp frm;
@@ -4784,7 +4786,7 @@ QDF_STATUS lim_send_addba_response_frame(tpAniSirGlobal mac_ctx,
 	frm.addba_param_set.buff_size = SIR_MAC_BA_DEFAULT_BUFF_SIZE;
 	if (mac_ctx->usr_cfg_ba_buff_size)
 		frm.addba_param_set.buff_size = mac_ctx->usr_cfg_ba_buff_size;
-	frm.addba_param_set.amsdu_supp = SIR_MAC_BA_AMSDU_SUPPORTED;
+	frm.addba_param_set.amsdu_supp = amsdu_support;
 	frm.addba_param_set.policy = SIR_MAC_BA_POLICY_IMMEDIATE;
 	frm.ba_timeout.timeout = batimeout;
 	if (addba_extn_present) {

+ 4 - 2
core/mac/src/pe/lim/lim_types.h

@@ -1021,8 +1021,10 @@ enum {
 };
 
 QDF_STATUS lim_send_addba_response_frame(tpAniSirGlobal mac_ctx,
-		tSirMacAddr peer_mac, uint16_t tid,
-		tpPESession session, uint8_t addba_extn_present);
+					 tSirMacAddr peer_mac, uint16_t tid,
+					 tpPESession session,
+					 uint8_t addba_extn_present,
+					 uint8_t amsdu_support);
 /**
  * lim_process_join_failure_timeout() - This function is called to process
  * JoinFailureTimeout