qcacmn: Add Advance monitor filter support

Added advance monitor filter support for mon v2
in cfg80211tool.

Change-Id: Iee0a3c10f4281dd6d7f9b59efa7a5807c0fb234e
CRs-Fixed: 3380845
这个提交包含在:
Aniruddha Mishra
2023-01-05 18:38:47 +05:30
提交者 Madan Koyyalamudi
父节点 b17c727a41
当前提交 099d29726b
修改 4 个文件,包含 69 行新增3 行删除

查看文件

@@ -827,6 +827,7 @@ struct dp_mon_ops {
void (*mon_lite_mon_vdev_delete)(struct dp_pdev *pdev,
struct dp_vdev *vdev);
void (*mon_lite_mon_disable_rx)(struct dp_pdev *pdev);
bool (*mon_lite_mon_is_rx_adv_filter_enable)(struct dp_pdev *pdev);
/* Print advanced monitor stats */
void (*mon_rx_print_advanced_stats)
(struct dp_soc *soc, struct dp_pdev *pdev);
@@ -4260,6 +4261,34 @@ dp_monitor_lite_mon_disable_rx(struct dp_pdev *pdev)
return monitor_ops->mon_lite_mon_disable_rx(pdev);
}
/*
* dp_monitor_lite_mon_is_rx_adv_filter_enable()
* - check if advance mon filter is already applied
* @pdev: dp pdev
*
* Return: bool
*/
static inline bool
dp_monitor_lite_mon_is_rx_adv_filter_enable(struct dp_pdev *pdev)
{
struct dp_mon_ops *monitor_ops;
struct dp_mon_soc *mon_soc = pdev->soc->monitor_soc;
if (!mon_soc) {
dp_mon_debug("monitor soc is NULL");
return false;
}
monitor_ops = mon_soc->mon_ops;
if (!monitor_ops ||
!monitor_ops->mon_lite_mon_disable_rx) {
dp_mon_debug("callback not registered");
return false;
}
return monitor_ops->mon_lite_mon_is_rx_adv_filter_enable(pdev);
}
#ifndef QCA_SUPPORT_LITE_MONITOR
static inline void
dp_lite_mon_disable_rx(struct dp_pdev *pdev)
@@ -4271,6 +4300,30 @@ dp_lite_mon_disable_tx(struct dp_pdev *pdev)
{
}
static inline bool
dp_lite_mon_is_rx_adv_filter_enable(struct dp_pdev *pdev)
{
return false;
}
static inline bool
dp_lite_mon_get_filter_ucast_data(struct cdp_pdev *pdev_handle)
{
return false;
}
static inline bool
dp_lite_mon_get_filter_mcast_data(struct cdp_pdev *pdev_handle)
{
return false;
}
static inline bool
dp_lite_mon_get_filter_non_data(struct cdp_pdev *pdev_handle)
{
return false;
}
static inline int
dp_lite_mon_is_level_msdu(struct dp_mon_pdev *mon_pdev)
{