From 99efa0dce402707823ec6016880c3dcb944cf7fe Mon Sep 17 00:00:00 2001 From: Kai Chen Date: Tue, 20 Aug 2019 17:51:27 -0700 Subject: [PATCH] qcacmn: Enable peer filtering for enhanced RX capture Enable peer filtering for enhanced RX capture. Change-Id: Ic8d27b575721f6fe3bae06ed7d23b1ff300306c9 --- dp/inc/cdp_txrx_cmn_struct.h | 10 ++++++++++ dp/inc/cdp_txrx_ctrl.h | 2 +- dp/inc/cdp_txrx_ops.h | 2 +- dp/wifi3.0/dp_main.c | 2 +- dp/wifi3.0/dp_rx_mon_status.c | 2 +- dp/wifi3.0/dp_types.h | 5 ++++- 6 files changed, 18 insertions(+), 5 deletions(-) diff --git a/dp/inc/cdp_txrx_cmn_struct.h b/dp/inc/cdp_txrx_cmn_struct.h index 818b97ba6460..923c94185e15 100644 --- a/dp/inc/cdp_txrx_cmn_struct.h +++ b/dp/inc/cdp_txrx_cmn_struct.h @@ -914,6 +914,16 @@ enum cdp_rx_enh_capture_mode { CDP_RX_ENH_CAPTURE_MPDU_MSDU, }; +/** + * cdp_rx_enh_capture_peer - Rx enhanced capture peer filtering + * @CDP_RX_ENH_CAPTURE_PEER_DISABLED: Disable Rx ENH capture peer filtering + * @CDP_RX_ENH_CAPTURE_PEER_ENABLED: Enable Rx ENH capture peer filtering + */ +enum cdp_rx_enh_capture_peer { + CDP_RX_ENH_CAPTURE_PEER_DISABLED = 0, + CDP_RX_ENH_CAPTURE_PEER_ENABLED, +}; + /** * cdp_tx_enh_capture_mode - Tx enhanced capture modes * @CDP_TX_ENH_CAPTURE_DISABLED: Disable Tx enhance capture for all peers diff --git a/dp/inc/cdp_txrx_ctrl.h b/dp/inc/cdp_txrx_ctrl.h index 141f4b480443..d79adc21acb3 100644 --- a/dp/inc/cdp_txrx_ctrl.h +++ b/dp/inc/cdp_txrx_ctrl.h @@ -499,7 +499,7 @@ cdp_peer_set_vlan_id(ol_txrx_soc_handle soc, struct cdp_vdev *vdev, static inline QDF_STATUS cdp_txrx_set_pdev_param(ol_txrx_soc_handle soc, struct cdp_pdev *pdev, enum cdp_pdev_param_type type, - uint8_t val) + uint32_t val) { if (!soc || !soc->ops) { QDF_TRACE(QDF_MODULE_ID_CDP, QDF_TRACE_LEVEL_DEBUG, diff --git a/dp/inc/cdp_txrx_ops.h b/dp/inc/cdp_txrx_ops.h index 67dcd8fc715c..9546886f7bf1 100644 --- a/dp/inc/cdp_txrx_ops.h +++ b/dp/inc/cdp_txrx_ops.h @@ -639,7 +639,7 @@ struct cdp_ctrl_ops { */ QDF_STATUS (*txrx_set_pdev_param)(struct cdp_pdev *pdev, enum cdp_pdev_param_type type, - uint8_t val); + uint32_t val); void * (*txrx_get_pldev)(struct cdp_pdev *pdev); #ifdef ATH_SUPPORT_NAC_RSSI diff --git a/dp/wifi3.0/dp_main.c b/dp/wifi3.0/dp_main.c index e4fb859c5364..be7888cc9bd2 100644 --- a/dp/wifi3.0/dp_main.c +++ b/dp/wifi3.0/dp_main.c @@ -7541,7 +7541,7 @@ dp_get_htt_stats(struct cdp_pdev *pdev_handle, void *data, uint32_t data_len) */ static QDF_STATUS dp_set_pdev_param(struct cdp_pdev *pdev_handle, enum cdp_pdev_param_type param, - uint8_t val) + uint32_t val) { struct dp_pdev *pdev = (struct dp_pdev *)pdev_handle; switch (param) { diff --git a/dp/wifi3.0/dp_rx_mon_status.c b/dp/wifi3.0/dp_rx_mon_status.c index b4496fb304ff..c3455ed992e0 100644 --- a/dp/wifi3.0/dp_rx_mon_status.c +++ b/dp/wifi3.0/dp_rx_mon_status.c @@ -908,7 +908,7 @@ dp_rx_process_peer_based_pktlog(struct dp_soc *soc, uint32_t ast_index; ast_index = ppdu_info->rx_status.ast_index; - if (ast_index < (WLAN_UMAC_PSOC_MAX_PEERS * 2)) { + if (ast_index < wlan_cfg_get_max_ast_idx(soc->wlan_cfg_ctx)) { ast_entry = soc->ast_table[ast_index]; if (ast_entry) { peer = ast_entry->peer; diff --git a/dp/wifi3.0/dp_types.h b/dp/wifi3.0/dp_types.h index 7b5bf5b9f811..974a98a3c09f 100644 --- a/dp/wifi3.0/dp_types.h +++ b/dp/wifi3.0/dp_types.h @@ -1503,11 +1503,14 @@ struct dp_pdev { struct msdu_list msdu_list[MAX_MU_USERS]; /* RX enhanced capture mode */ uint8_t rx_enh_capture_mode; + /* Rx per peer enhanced capture mode */ + bool rx_enh_capture_peer; + struct dp_vdev *rx_enh_monitor_vdev; /* RX enhanced capture trailer enable/disable flag */ bool is_rx_enh_capture_trailer_enabled; #ifdef WLAN_RX_PKT_CAPTURE_ENH /* RX per MPDU/PPDU information */ - struct cdp_rx_indication_mpdu mpdu_ind[MAX_MU_USERS]; + struct cdp_rx_indication_mpdu mpdu_ind; #endif /* pool addr for mcast enhance buff */ struct {