From ec2838ac4db38a9ba8b0c4041ca867f3acd51a63 Mon Sep 17 00:00:00 2001 From: Jeevan Kukkalli Date: Fri, 6 May 2022 00:17:53 +0530 Subject: [PATCH] qcacmn: Make lite mon enum generic -Some of the lite monitor enums can be used outside of lite monitor feature, make such enums generic. -Some enums are redundant, remove such enums and make use of existing ones Change-Id: I5125384ac5c4c55a57998fb5be5ee1ecb3e61147 CRs-Fixed: 3190754 --- dp/inc/cdp_txrx_mon_struct.h | 37 ++++------------------ dp/wifi3.0/monitor/2.0/dp_mon_2.0.h | 24 ++++++++++++++ dp/wifi3.0/monitor/2.0/dp_mon_filter_2.0.c | 24 +++++++------- 3 files changed, 43 insertions(+), 42 deletions(-) diff --git a/dp/inc/cdp_txrx_mon_struct.h b/dp/inc/cdp_txrx_mon_struct.h index 741626f1ab..f78608ade6 100644 --- a/dp/inc/cdp_txrx_mon_struct.h +++ b/dp/inc/cdp_txrx_mon_struct.h @@ -30,6 +30,9 @@ #define CDP_LITE_MON_PEER_MAX 16 +#define CDP_MON_FRM_TYPE_MAX 3 +#define CDP_MON_FRM_FILTER_MODE_MAX 4 + #define CDP_LITE_MON_LEN_64B 0x40 #define CDP_LITE_MON_LEN_128B 0x80 #define CDP_LITE_MON_LEN_256B 0x100 @@ -40,20 +43,6 @@ /* This should align with nac mac type enumerations in ieee80211_ioctl.h */ #define CDP_LITE_MON_PEER_MAC_TYPE_CLIENT 2 -/* lite mon filter modes */ -enum cdp_lite_mon_filter_mode { - /* mode filter pass */ - CDP_LITE_MON_MODE_FP = 0, - /* mode monitor direct */ - CDP_LITE_MON_MODE_MD = 1, - /* mode monitor other */ - CDP_LITE_MON_MODE_MO = 2, - /* mode filter pass monitor other */ - CDP_LITE_MON_MODE_FP_MO = 3, - /* max filter modes */ - CDP_LITE_MON_MODE_MAX = 4, -}; - /* lite mon frame levels */ enum cdp_lite_mon_level { /* level invalid */ @@ -66,18 +55,6 @@ enum cdp_lite_mon_level { CDP_LITE_MON_LEVEL_PPDU = 3, }; -/* lite mon frame types */ -enum cdp_lite_mon_frm_type { - /* frm type mgmt */ - CDP_LITE_MON_FRM_TYPE_MGMT = 0, - /* frm type ctrl */ - CDP_LITE_MON_FRM_TYPE_CTRL = 1, - /* frm type data */ - CDP_LITE_MON_FRM_TYPE_DATA = 2, - /* max frame types */ - CDP_LITE_MON_FRM_TYPE_MAX = 3, -}; - /* lite mon peer action */ enum cdp_lite_mon_peer_action { /* peer add */ @@ -472,10 +449,10 @@ struct cdp_lite_mon_filter_config { uint8_t disable; uint8_t level; uint8_t metadata; - uint16_t mgmt_filter[CDP_LITE_MON_MODE_MAX]; - uint16_t ctrl_filter[CDP_LITE_MON_MODE_MAX]; - uint16_t data_filter[CDP_LITE_MON_MODE_MAX]; - uint16_t len[CDP_LITE_MON_FRM_TYPE_MAX]; + uint16_t mgmt_filter[CDP_MON_FRM_FILTER_MODE_MAX]; + uint16_t ctrl_filter[CDP_MON_FRM_FILTER_MODE_MAX]; + uint16_t data_filter[CDP_MON_FRM_FILTER_MODE_MAX]; + uint16_t len[CDP_MON_FRM_TYPE_MAX]; uint8_t debug; uint8_t vdev_id; }; diff --git a/dp/wifi3.0/monitor/2.0/dp_mon_2.0.h b/dp/wifi3.0/monitor/2.0/dp_mon_2.0.h index 43f697ceb9..b8ba9a2308 100644 --- a/dp/wifi3.0/monitor/2.0/dp_mon_2.0.h +++ b/dp/wifi3.0/monitor/2.0/dp_mon_2.0.h @@ -35,6 +35,30 @@ #define DP_MON_MSDU_LOGGING 0 #define DP_MON_MPDU_LOGGING 1 +/* monitor frame filter modes */ +enum dp_mon_frm_filter_mode { + /* mode filter pass */ + DP_MON_FRM_FILTER_MODE_FP = 0, + /* mode monitor direct */ + DP_MON_FRM_FILTER_MODE_MD = 1, + /* mode monitor other */ + DP_MON_FRM_FILTER_MODE_MO = 2, + /* mode filter pass monitor other */ + DP_MON_FRM_FILTER_MODE_FP_MO = 3, +}; + +/* mpdu filter categories */ +enum dp_mpdu_filter_category { + /* category filter pass */ + DP_MPDU_FILTER_CATEGORY_FP = 0, + /* category monitor direct */ + DP_MPDU_FILTER_CATEGORY_MD = 1, + /* category monitor other */ + DP_MPDU_FILTER_CATEGORY_MO = 2, + /* category filter pass monitor override */ + DP_MPDU_FILTER_CATEGORY_FP_MO = 3, +}; + /** * struct dp_mon_filter_be - Monitor TLV filter * @rx_tlv_filter: Rx MON TLV filter diff --git a/dp/wifi3.0/monitor/2.0/dp_mon_filter_2.0.c b/dp/wifi3.0/monitor/2.0/dp_mon_filter_2.0.c index 39254dfc28..e9785c5868 100644 --- a/dp/wifi3.0/monitor/2.0/dp_mon_filter_2.0.c +++ b/dp/wifi3.0/monitor/2.0/dp_mon_filter_2.0.c @@ -2304,38 +2304,38 @@ dp_mon_filter_setup_rx_lite_mon(struct dp_mon_pdev_be *be_mon_pdev) if (config->rx_config.fp_enabled) { rx_tlv_filter->tlv_filter.enable_fp = 1; rx_tlv_filter->tlv_filter.fp_mgmt_filter = - config->rx_config.mgmt_filter[CDP_LITE_MON_MODE_FP]; + config->rx_config.mgmt_filter[DP_MON_FRM_FILTER_MODE_FP]; rx_tlv_filter->tlv_filter.fp_ctrl_filter = - config->rx_config.ctrl_filter[CDP_LITE_MON_MODE_FP]; + config->rx_config.ctrl_filter[DP_MON_FRM_FILTER_MODE_FP]; rx_tlv_filter->tlv_filter.fp_data_filter = - config->rx_config.data_filter[CDP_LITE_MON_MODE_FP]; + config->rx_config.data_filter[DP_MON_FRM_FILTER_MODE_FP]; } /* configure md filters if enabled */ if (config->rx_config.md_enabled) { rx_tlv_filter->tlv_filter.enable_md = 1; rx_tlv_filter->tlv_filter.md_mgmt_filter = - config->rx_config.mgmt_filter[CDP_LITE_MON_MODE_MD]; + config->rx_config.mgmt_filter[DP_MON_FRM_FILTER_MODE_MD]; rx_tlv_filter->tlv_filter.md_ctrl_filter = - config->rx_config.ctrl_filter[CDP_LITE_MON_MODE_MD]; + config->rx_config.ctrl_filter[DP_MON_FRM_FILTER_MODE_MD]; rx_tlv_filter->tlv_filter.md_data_filter = - config->rx_config.data_filter[CDP_LITE_MON_MODE_MD]; + config->rx_config.data_filter[DP_MON_FRM_FILTER_MODE_MD]; } /* configure mo filters if enabled */ if (config->rx_config.mo_enabled) { rx_tlv_filter->tlv_filter.enable_mo = 1; rx_tlv_filter->tlv_filter.mo_mgmt_filter = - config->rx_config.mgmt_filter[CDP_LITE_MON_MODE_MO]; + config->rx_config.mgmt_filter[DP_MON_FRM_FILTER_MODE_MO]; rx_tlv_filter->tlv_filter.mo_ctrl_filter = - config->rx_config.ctrl_filter[CDP_LITE_MON_MODE_MO]; + config->rx_config.ctrl_filter[DP_MON_FRM_FILTER_MODE_MO]; rx_tlv_filter->tlv_filter.mo_data_filter = - config->rx_config.data_filter[CDP_LITE_MON_MODE_MO]; + config->rx_config.data_filter[DP_MON_FRM_FILTER_MODE_MO]; } - mgmt_len = config->rx_config.len[CDP_LITE_MON_FRM_TYPE_MGMT]; - ctrl_len = config->rx_config.len[CDP_LITE_MON_FRM_TYPE_CTRL]; - data_len = config->rx_config.len[CDP_LITE_MON_FRM_TYPE_DATA]; + mgmt_len = config->rx_config.len[WLAN_FC0_TYPE_MGMT]; + ctrl_len = config->rx_config.len[WLAN_FC0_TYPE_CTRL]; + data_len = config->rx_config.len[WLAN_FC0_TYPE_DATA]; /* if full len is configured for any of the types, subscribe * for full dma length else set it to min dma length(fw sets * full length by default) to avoid unnecessary dma since we