Ver código fonte

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
Pavankumar Nandeshwar 5 anos atrás
pai
commit
e6f443f27a
1 arquivos alterados com 181 adições e 1 exclusões
  1. 181 1
      dp/inc/cdp_txrx_cmn_struct.h

+ 181 - 1
dp/inc/cdp_txrx_cmn_struct.h

@@ -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