Przeglądaj źródła

qcacmn: add block ack and ack frame for tx capture feature

Block ack and ack frame is composed and sent to up
layer after a unicast packet to AP is received for
tx capture feature.

Change-Id: I4b6bb35fa093432539d15d09a93f85a8ec700b34
Kai Chen 5 lat temu
rodzic
commit
011b6c668b
2 zmienionych plików z 19 dodań i 0 usunięć
  1. 18 0
      dp/wifi3.0/dp_rx_mon_status.c
  2. 1 0
      hal/wifi3.0/hal_rx.h

+ 18 - 0
dp/wifi3.0/dp_rx_mon_status.c

@@ -53,6 +53,18 @@ dp_rx_mon_enh_capture_process(struct dp_pdev *pdev, uint32_t tlv_status,
 }
 #endif
 
+#ifdef WLAN_TX_PKT_CAPTURE_ENH
+#include "dp_rx_mon_feature.h"
+#else
+static QDF_STATUS
+dp_send_ack_frame_to_stack(struct dp_soc *soc,
+			   struct dp_pdev *pdev,
+			   struct hal_rx_ppdu_info *ppdu_info)
+{
+	return QDF_STATUS_SUCCESS;
+}
+#endif
+
 #ifdef FEATURE_PERPKT_INFO
 static inline void
 dp_rx_populate_rx_rssi_chain(struct hal_rx_ppdu_info *ppdu_info,
@@ -1219,6 +1231,12 @@ dp_rx_mon_status_process_tlv(struct dp_soc *soc, uint32_t mac_id,
 		} else if (tlv_status == HAL_TLV_STATUS_PPDU_DONE) {
 			rx_mon_stats->status_ppdu_done++;
 			dp_rx_mon_handle_mu_ul_info(ppdu_info);
+
+			if (pdev->tx_capture_enabled
+			    != CDP_TX_ENH_CAPTURE_DISABLED)
+				dp_send_ack_frame_to_stack(soc, pdev,
+							   ppdu_info);
+
 			if (pdev->enhanced_stats_en ||
 			    pdev->mcopy_mode || pdev->neighbour_peers_added)
 				dp_rx_handle_ppdu_stats(soc, pdev, ppdu_info);

+ 1 - 0
hal/wifi3.0/hal_rx.h

@@ -1147,6 +1147,7 @@ enum hal_rx_mpdu_info_sw_frame_group_id_type {
 	HAL_MPDU_SW_FRAME_GROUP_UNICAST_DATA,
 	HAL_MPDU_SW_FRAME_GROUP_NULL_DATA,
 	HAL_MPDU_SW_FRAME_GROUP_MGMT,
+	HAL_MPDU_SW_FRAME_GROUP_MGMT_BEACON = 12,
 	HAL_MPDU_SW_FRAME_GROUP_CTRL = 20,
 	HAL_MPDU_SW_FRAME_GROUP_UNSUPPORTED = 36,
 	HAL_MPDU_SW_FRAME_GROUP_MAX = 37,