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
这个提交包含在:
@@ -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;
|
||||
|
文件差异内容过多而无法显示
加载差异
@@ -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)
|
||||
{
|
||||
|
@@ -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 */
|
||||
|
在新工单中引用
屏蔽一个用户