Prechádzať zdrojové kódy

qcacmn: Introduce monitor 2.0 packet processing flag

QCA_MONITOR_2_0_PKT_SUPPORT is introduced for packet
processing code.

Change-Id: Ib4de57e3e74ca9161d0cb7e3507f9c28d06b8654
CRs-Fixed: 3647037
Amir Patel 1 rok pred
rodič
commit
136b01ad6b

+ 4 - 2
dp/wifi3.0/monitor/2.0/dp_mon_2.0.h

@@ -255,6 +255,7 @@ struct dp_mon_desc_pool {
  * @rx_mon_free_queue: RxMON ppdu info free element queue
  * @ppdu_info_lock: RxPPDU ppdu info queue lock
  * @rx_mon_queue_depth: RxMON queue depth
+ * @ppdu_info_cache: PPDU info cache
  * @desc_count: reaped status desc count
  * @status: reaped status buffer per ppdu
  * @lite_mon_rx_config: rx litemon config
@@ -263,7 +264,6 @@ struct dp_mon_desc_pool {
  * @prev_rxmon_cookie: prev rxmon cookie
  * @prev_rxmon_pkt_desc: prev packet buff desc
  * @prev_rxmon_pkt_cookie: prev packet buff desc cookie
- * @ppdu_info_cache: PPDU info cache
  * @total_free_elem: total free element in queue
  * @rx_tlv_logger: Rx TLV logger struct
  */
@@ -276,6 +276,7 @@ struct dp_mon_pdev_be {
 	struct dp_pdev_tx_monitor_be tx_monitor_be;
 	struct dp_tx_monitor_drop_stats tx_stats;
 #endif
+#if defined(WLAN_PKT_CAPTURE_RX_2_0) && defined(QCA_MONITOR_2_0_PKT_SUPPORT)
 	qdf_spinlock_t rx_mon_wq_lock;
 	qdf_workqueue_t *rx_mon_workqueue;
 	qdf_work_t rx_mon_work;
@@ -283,6 +284,8 @@ struct dp_mon_pdev_be {
 	TAILQ_HEAD(, hal_rx_ppdu_info) rx_mon_queue;
 	TAILQ_HEAD(, hal_rx_ppdu_info) rx_mon_free_queue;
 	qdf_spinlock_t ppdu_info_lock;
+	qdf_kmem_cache_t ppdu_info_cache;
+#endif
 	uint16_t rx_mon_queue_depth;
 	uint16_t desc_count;
 	struct dp_mon_desc *status[DP_MON_MAX_STATUS_BUF];
@@ -294,7 +297,6 @@ struct dp_mon_pdev_be {
 	uint32_t prev_rxmon_cookie;
 	void *prev_rxmon_pkt_desc;
 	uint32_t prev_rxmon_pkt_cookie;
-	qdf_kmem_cache_t ppdu_info_cache;
 	uint32_t total_free_elem;
 #ifdef MONITOR_TLV_RECORDING_ENABLE
 	struct dp_mon_tlv_logger *rx_tlv_log;

Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 975 - 424
dp/wifi3.0/monitor/2.0/dp_rx_mon_2.0.c


+ 81 - 0
dp/wifi3.0/monitor/2.0/dp_rx_mon_2.0.h

@@ -20,6 +20,7 @@
 
 #include <qdf_nbuf_frag.h>
 #include <hal_be_api_mon.h>
+#include <dp_mon_2.0.h>
 
 #define DP_RX_MON_PACKET_OFFSET 8
 #define DP_RX_MON_RX_HDR_OFFSET 8
@@ -81,6 +82,7 @@ static inline void dp_rx_mon_ppdu_info_cache_destroy(struct dp_pdev *pdev)
 static inline struct hal_rx_ppdu_info*
 dp_rx_mon_get_ppdu_info(struct dp_mon_pdev *mon_pdev)
 {
+	qdf_mem_zero(&mon_pdev->ppdu_info, sizeof(struct hal_rx_ppdu_info));
 	return &mon_pdev->ppdu_info;
 }
 
@@ -202,6 +204,85 @@ dp_rx_mon_populate_ppdu_info_2_0(struct hal_rx_ppdu_info *hal_ppdu_info,
 QDF_STATUS dp_rx_mon_soc_attach_2_0(struct dp_soc *soc, int lmac_id);
 void  dp_rx_mon_soc_detach_2_0(struct dp_soc *soc, int lmac_id);
 void dp_rx_mon_soc_deinit_2_0(struct dp_soc *soc, uint32_t lmac_id);
+
+#ifndef QCA_MONITOR_2_0_PKT_SUPPORT
+static inline QDF_STATUS dp_rx_mon_init_wq_sm(struct dp_pdev *pdev)
+{
+	return QDF_STATUS_SUCCESS;
+}
+
+static inline QDF_STATUS dp_rx_mon_deinit_wq_sm(struct dp_pdev *pdev)
+{
+	return QDF_STATUS_SUCCESS;
+}
+
+static inline QDF_STATUS
+dp_rx_mon_add_ppdu_info_to_wq(struct dp_pdev *pdev,
+			      struct hal_rx_ppdu_info *ppdu_info)
+{
+	return QDF_STATUS_SUCCESS;
+}
+
+static inline int
+dp_rx_mon_flush_packet_tlv(struct dp_pdev *pdev, void *buf, uint16_t end_offset,
+			   union dp_mon_desc_list_elem_t **desc_list,
+			   union dp_mon_desc_list_elem_t **tail)
+{
+	return 0;
+}
+
+static inline void
+dp_rx_mon_handle_rx_hdr(struct dp_pdev *pdev,
+			struct hal_rx_ppdu_info *ppdu_info,
+			void *status_frag)
+{
+}
+
+static inline uint16_t
+dp_rx_mon_handle_mon_buf_addr(struct dp_pdev *pdev,
+			      struct hal_rx_ppdu_info *ppdu_info,
+			      union dp_mon_desc_list_elem_t **desc_list,
+			      union dp_mon_desc_list_elem_t **tail)
+{
+	return 0;
+}
+
+static inline void
+dp_rx_mon_handle_msdu_end(struct dp_pdev *pdev,
+			  struct hal_rx_ppdu_info *ppdu_info)
+{
+}
+
+static inline void
+dp_rx_mon_reset_mpdu_q(struct hal_rx_ppdu_info *ppdu_info)
+{
+}
+
+static inline void
+dp_rx_mon_handle_mpdu_start(struct hal_rx_ppdu_info *ppdu_info)
+{
+}
+
+static inline void
+dp_rx_mon_handle_mpdu_end(struct hal_rx_ppdu_info *ppdu_info)
+{
+}
+
+static inline QDF_STATUS
+dp_rx_mon_nbuf_add_rx_frag(qdf_nbuf_t nbuf, qdf_frag_t *frag,
+			   uint16_t frag_len, uint16_t offset,
+			   uint16_t buf_size, bool frag_ref)
+{
+	return 0;
+}
+
+static inline void
+dp_rx_mon_pf_tag_to_buf_headroom_2_0(void *nbuf,
+				     struct hal_rx_ppdu_info *ppdu_info,
+				     struct dp_pdev *pdev, struct dp_soc *soc)
+{
+}
+#endif
 #else
 static inline QDF_STATUS dp_mon_pdev_ext_init_2_0(struct dp_pdev *pdev)
 {

+ 2 - 2
hal/wifi3.0/hal_api_mon.h

@@ -1311,16 +1311,16 @@ struct hal_rx_ppdu_info {
 	struct hal_rx_mon_mpdu_info mpdu_info[HAL_MAX_UL_MU_USERS];
 	 /* placeholder to hold packet buffer info */
 	struct hal_mon_packet_info packet_info;
-#ifdef WLAN_PKT_CAPTURE_RX_2_0
+#if defined(WLAN_PKT_CAPTURE_RX_2_0) && defined(QCA_MONITOR_2_0_PKT_SUPPORT)
 	 /* per user per MPDU queue */
 	qdf_nbuf_queue_t mpdu_q[HAL_MAX_UL_MU_USERS];
-#endif
 	 /* ppdu info list element */
 	TAILQ_ENTRY(hal_rx_ppdu_info) ppdu_list_elem;
 	 /* ppdu info free list element */
 	TAILQ_ENTRY(hal_rx_ppdu_info) ppdu_free_list_elem;
 	/* placeholder to track if RX_HDR is received */
 	uint8_t rx_hdr_rcvd[HAL_MAX_UL_MU_USERS];
+#endif
 	/* Per user BAR and NDPA bit flag */
 	struct hal_rx_user_ctrl_frm_info ctrl_frm_info[HAL_MAX_UL_MU_USERS];
 	/* PPDU end user stats count */

Niektoré súbory nie sú zobrazené, pretože je v týchto rozdielových dátach zmenené mnoho súborov