qcacmn: Add new parameters for dp handles set/gets

Add new parameters for converging multiple set/get
APIs into common psoc/pdev/vdev/peer set/get APIs.

Change-Id: I0802dea028c9e935ef899169cf7d86f2dc7632bc
This commit is contained in:
Pavankumar Nandeshwar
2020-01-09 12:20:24 +05:30
committed by nshrivas
부모 6c83405439
커밋 e6f443f27a

파일 보기

@@ -958,6 +958,17 @@ struct cdp_soc_t {
struct ol_if_ops *ol_ops;
};
/*
* cdp_peer_param_type: different types of parameters
* to set values in peer
* @CDP_CONFIG_NAWDS: Enable nawds mode
* @CDP_CONFIG_NAC: Enable nac
*/
enum cdp_peer_param_type {
CDP_CONFIG_NAWDS,
CDP_CONFIG_NAC,
};
/*
* cdp_pdev_param_type: different types of parameters
* to set values in pdev
@@ -972,6 +983,20 @@ struct cdp_soc_t {
* @CDP_INGRESS_STATS: Accumulate ingress statistics
* @CDP_OSIF_DROP: Accumulate drops in OSIF layer
* @CDP_CONFIG_ENH_RX_CAPTURE: Enable enhanced RX capture
* @CDP_CONFIG_ENH_TX_CAPTURE: Enable enhanced TX capture
* @CDP_CONFIG_HMMC_TID_OVERRIDE: Enable hmmc tid override
* @CDP_CONFIG_HMMC_TID_VALUE: set hmmc tid value
* @CDP_CONFIG_TX_CAPTURE: set tx capture
* @CDP_CHAN_NOISE_FLOOR: set channel noise floor
* @CDP_CONFIG_VOW: set/get vow config
* @CDP_TIDQ_OVERRIDE: set/get tid queue override
* @CDP_TIDMAP_PRTY: set/get tid map prty
* @CDP_TX_PENDING: get tx pending
* @CDP_FILTER_NEIGH_PEERS: filter neighbour peers
* @CDP_FILTER_UCAST_DATA: filter unicast data
* @CDP_FILTER_MCAST_DATA: filter multicast data
* @CDP_FILTER_NO_DATA: filter no data
* @CDP_MONITOR_CHANNEL: monitor channel
*/
enum cdp_pdev_param_type {
CDP_CONFIG_DEBUG_SNIFFER,
@@ -985,9 +1010,135 @@ enum cdp_pdev_param_type {
CDP_INGRESS_STATS,
CDP_OSIF_DROP,
CDP_CONFIG_ENH_RX_CAPTURE,
CDP_CONFIG_ENH_TX_CAPTURE,
CDP_CONFIG_HMMC_TID_OVERRIDE,
CDP_CONFIG_HMMC_TID_VALUE,
CDP_CONFIG_TX_CAPTURE,
CDP_CHAN_NOISE_FLOOR,
CDP_CONFIG_VOW,
CDP_TIDQ_OVERRIDE,
CDP_TIDMAP_PRTY,
CDP_TX_PENDING,
CDP_FILTER_NEIGH_PEERS,
CDP_FILTER_UCAST_DATA,
CDP_FILTER_MCAST_DATA,
CDP_FILTER_NO_DATA,
CDP_MONITOR_CHANNEL,
};
/*
* cdp_config_param_type: union of different types of parameters
* to set values into dp handles.
*
* @cdp_peer_param_nawds: Enable nawds mode
* @cdp_peer_param_nac: Enable nac
*
* @cdp_vdev_param_nawds: set nawds enable/disable
* @cdp_vdev_param_mcast_en: enable/disable multicast enhancement
* @cdp_vdev_param_wds: wds sta
* @cdp_vdev_param_mec: MEC enable flags
* @cdp_vdev_param_proxysta: proxy sta
* @cdp_vdev_param_tdls_flags: tdls link flags
* @cdp_vdev_param_ap_brdg_en: set ap_bridging enable/disable
* @cdp_vdev_param_cipher_en: set cipher type based on security
* @cdp_vdev_param_qwrap_isolation: qwrap isolation mode
* @cdp_vdev_param_tx_encap: tx encap type
* @cdp_vdev_param_rx_decap: rx decap type
* @cdp_vdev_param_mesh_rx_filter: set mesh rx filter
* @cdp_vdev_param_tidmap_prty: set tid vdev prty
* @cdp_vdev_param_tidmap_tbl_id: set tidmap table id
* @cdp_vdev_param_mesh_mode: set mesh mode
* @cdp_vdev_param_safe_mode: set safe mode
* @cdp_vdev_param_drop_unenc: set drop unencrypted flag
*
* @cdp_pdev_param_dbg_snf: Enable debug sniffer feature
* @cdp_pdev_param_bpr_enable: Enable bcast probe feature
* @cdp_pdev_param_primary_radio: Configure radio as primary
* @cdp_pdev_param_en_perpkt_txstats: Enable per packet statistics
* @cdp_pdev_param_igmpmld_override: Override IGMP/MLD
* @cdp_pdev_param_igmpmld_tid: TID value when igmmld_override is set
* @cdp_pdev_param_arp_dbg_conf: Enable ARP debug
* @cdp_pdev_param_cptr_latcy: Capture time latency
* @cdp_pdev_param_ingrs_stats: Accumulate ingress statistics
* @cdp_pdev_param_osif_drop: Accumulate drops in OSIF layer
* @cdp_pdev_param_en_rx_cap: Enable enhanced RX capture
* @cdp_pdev_param_en_tx_cap: Enable enhanced TX capture
* @cdp_pdev_param_hmmc_tid_ovrd: Enable hmmc tid override
* @cdp_pdev_param_hmmc_tid: set hmmc tid value
* @cdp_pdev_param_tx_capture: set tx capture
* @cdp_pdev_param_chn_noise_flr: set channel noise floor
* @cdp_pdev_param_cfg_vow: set/get vow config
* @cdp_pdev_param_tidq_override: set/get tid queue override
* @cdp_pdev_param_tidmap_prty: set/get tid map prty
* @cdp_pdev_param_tx_pending: get tx pending
* @cdp_pdev_param_fltr_neigh_peers: filter neighbour peers
* @cdp_pdev_param_fltr_ucast: filter unicast data
* @cdp_pdev_param_fltr_mcast: filter multicast data
* @cdp_pdev_param_fltr_none: filter no data
* @cdp_pdev_param_monitor_chan: monitor channel
*
* @cdp_psoc_param_en_rate_stats: set rate stats enable/disable
* @cdp_psoc_param_en_nss_cfg: set nss cfg
*/
typedef union cdp_config_param_t {
/* peer params */
bool cdp_peer_param_nawds;
uint8_t cdp_peer_param_nac;
/* vdev params */
bool cdp_vdev_param_wds;
bool cdp_vdev_param_mec;
bool cdp_vdev_param_nawds;
bool cdp_vdev_param_proxysta;
bool cdp_vdev_param_tdls_flags;
bool cdp_vdev_param_ap_brdg_en;
bool cdp_vdev_param_qwrap_isolation;
bool cdp_vdev_param_update_multipass;
uint8_t cdp_vdev_param_da_war;
uint8_t cdp_vdev_param_mcast_en;
uint8_t cdp_vdev_param_tidmap_prty;
uint8_t cdp_vdev_param_tidmap_tbl_id;
uint32_t cdp_vdev_param_aging_tmr;
uint32_t cdp_vdev_param_cipher_en;
uint32_t cdp_vdev_param_tx_encap;
uint32_t cdp_vdev_param_rx_decap;
uint32_t cdp_vdev_param_mesh_rx_filter;
uint32_t cdp_vdev_param_mesh_mode;
uint32_t cdp_vdev_param_safe_mode;
uint32_t cdp_vdev_param_drop_unenc;
/* pdev params */
bool cdp_pdev_param_cptr_latcy;
bool cdp_pdev_param_hmmc_tid_ovrd;
bool cdp_pdev_param_fltr_neigh_peers;
bool cdp_pdev_param_cfg_vow;
bool cdp_pdev_param_fltr_mcast;
bool cdp_pdev_param_fltr_none;
bool cdp_pdev_param_fltr_ucast;
uint8_t cdp_pdev_param_primary_radio;
uint8_t cdp_pdev_param_en_rx_cap;
uint8_t cdp_pdev_param_en_tx_cap;
uint8_t cdp_pdev_param_tx_capture;
uint8_t cdp_pdev_param_hmmc_tid;
uint8_t cdp_pdev_param_tidmap_prty;
uint8_t cdp_pdev_param_igmpmld_override;
uint8_t cdp_pdev_param_igmpmld_tid;
uint8_t cdp_pdev_param_arp_dbg_conf;
uint8_t cdp_pdev_param_tidq_override;
uint16_t cdp_pdev_param_chn_noise_flr;
int cdp_pdev_param_dbg_snf;
int cdp_pdev_param_bpr_enable;
int cdp_pdev_param_monitor_chan;
uint32_t cdp_pdev_param_ingrs_stats;
uint32_t cdp_pdev_param_osif_drop;
uint32_t cdp_pdev_param_en_perpkt_txstats;
uint32_t cdp_pdev_param_tx_pending;
/* psoc params */
bool cdp_psoc_param_en_rate_stats;
int cdp_psoc_param_en_nss_cfg;
} cdp_config_param_type;
/**
* cdp_rx_enh_capture_mode - Rx enhanced capture modes
* @CDP_RX_ENH_CAPTURE_DISABLED: Disable Rx enhance capture
@@ -1047,6 +1198,14 @@ enum cdp_pdev_bpr_param {
* @CDP_ENABLE_AP_BRIDGE: set ap_bridging enable/disable
* @CDP_ENABLE_CIPHER : set cipher type based on security
* @CDP_ENABLE_QWRAP_ISOLATION: qwrap isolation mode
* @CDP_TX_ENCAP_TYPE: tx encap type
* @CDP_RX_DECAP_TYPE: rx decap type
* @CDP_MESH_RX_FILTER: set mesh rx filter
* @CDP_TID_VDEV_PRTY: set tid vdev prty
* @CDP_TIDMAP_TBL_ID: set tidmap table id
* @CDP_MESH_MODE: set mesh mode
* @CDP_SAFEMODE: set safe mode
* @CDP_DROP_UNENC: set drop unencrypted flag
*/
enum cdp_vdev_param_type {
CDP_ENABLE_NAWDS,
@@ -1060,7 +1219,28 @@ enum cdp_vdev_param_type {
CDP_ENABLE_AP_BRIDGE,
CDP_ENABLE_CIPHER,
CDP_ENABLE_QWRAP_ISOLATION,
CDP_UPDATE_MULTIPASS
CDP_UPDATE_MULTIPASS,
CDP_TX_ENCAP_TYPE,
CDP_RX_DECAP_TYPE,
CDP_MESH_RX_FILTER,
CDP_TID_VDEV_PRTY,
CDP_TIDMAP_TBL_ID,
#ifdef MESH_MODE_SUPPORT
CDP_MESH_MODE,
#endif
CDP_SAFEMODE,
CDP_DROP_UNENC,
};
/*
* cdp_psoc_param_type: different types of parameters
* to set values in psoc
* @CDP_ENABLE_RATE_STATS: set rate stats enable/disable
* @CDP_SET_NSS_CFG: set nss cfg
*/
enum cdp_psoc_param_type {
CDP_ENABLE_RATE_STATS,
CDP_SET_NSS_CFG,
};
#define TXRX_FW_STATS_TXSTATS 1