#ifndef _PFE_VWD_H_
#define _PFE_VWD_H_

#include <linux/cdev.h>
#include <linux/interrupt.h>
#include "pfe_tso.h"


#define PFE_VWD_TX_STATS
#define PFE_VWD_LRO_STATS
#define PFE_VWD_NAPI_STATS
#define VWD_DEBUG_STATS
#define VWD_TXQ_CNT	16
#define VWD_RXQ_CNT	3

#define PFE_WIFI_PKT_HEADROOM   96 /*PFE inserts this headroom for WiFi tx packets only in lro mode */

#define VWD_MINOR               0
#define VWD_MINOR_COUNT         1
#define VWD_DRV_NAME            "vwd"
#define VWD_DEV_COUNT           1
#define VWD_RX_POLL_WEIGHT	HIF_RX_POLL_WEIGHT - 16

struct vap_desc_s {
	struct	kobject *vap_kobj;
	struct net_device *dev;
	struct net_device *wifi_dev;
	const struct ethtool_ops *wifi_ethtool_ops;
	struct pfe_vwd_priv_s *priv;
	unsigned int	ifindex;
	unsigned int	diff_hw_features;
	struct hif_client_s client;
	struct net_device	dummy_dev;
	struct napi_struct	low_napi;
	struct napi_struct	high_napi;
	struct napi_struct	lro_napi;
	spinlock_t tx_lock[VWD_TXQ_CNT];
	struct sk_buff *skb_inflight[VWD_RXQ_CNT + 6];
	struct pfe_eth_fast_timer fast_tx_timeout[VWD_TXQ_CNT];
	struct net_device_stats	stats;
	int cpu_id;
	unsigned char  ifname[12];
	unsigned char  macaddr[6];
	unsigned short vapid;
        unsigned short programmed;
        unsigned short bridged;
	unsigned short  direct_rx_path;          /* Direct path support from offload device=>VWD */
	unsigned short  direct_tx_path;          /* Direct path support from offload VWD=>device */
	unsigned short  custom_skb;   	      /* Customized skb model from VWD=>offload_device */
#ifdef PFE_VWD_TX_STATS
	unsigned int stop_queue_total[VWD_TXQ_CNT];
	unsigned int stop_queue_hif[VWD_TXQ_CNT];
	unsigned int stop_queue_hif_client[VWD_TXQ_CNT];
	unsigned int clean_fail[VWD_TXQ_CNT];
	unsigned int was_stopped[VWD_TXQ_CNT];
#endif
};



struct vap_cmd_s {
	int 		action;
#define 	ADD 	0
#define 	REMOVE	1
#define 	UPDATE	2
#define 	RESET	3
	int     	ifindex;
	unsigned short	vapid;
	unsigned short  cmd_flags;
#define VAP_CMD_ENABLE_DIRECT_PATH_RX (1 << 0)
#define VAP_CMD_ENABLE_DIRECT_PATH_TX (1 << 1)
#define VAP_CMD_MAC_VALID             (1 << 2)
	unsigned char	ifname[12];
	unsigned char	macaddr[6];
};



struct pfe_vwd_priv_s {

	struct pfe 		*pfe;
	unsigned char name[12];

	struct cdev char_dev;
	int char_devno;

	struct vap_desc_s *vaps[MAX_VAP_SUPPORT];
	char conf_vap_names[MAX_VAP_SUPPORT][IFNAMSIZ];
	int vap_count;
	int vap_programmed_count;
	int vap_bridged_count;
	spinlock_t vaplock;
	spinlock_t conf_lock;
	struct timer_list tx_timer;
	struct tso_cb_s 	tso;
	struct workqueue_struct *event_queue;
	struct work_struct event;

#ifdef PFE_VWD_LRO_STATS
	unsigned int lro_len_counters[LRO_LEN_COUNT_MAX];
	unsigned int lro_nb_counters[LRO_NB_COUNT_MAX]; //TODO change to exact max number when RX scatter done
#endif
#ifdef PFE_VWD_NAPI_STATS
	unsigned int napi_counters[NAPI_MAX_COUNT];
#endif
	int fast_path_enable;
	int fast_bridging_enable;
	int fast_routing_enable;
	int tso_hook_enable;

#ifdef VWD_DEBUG_STATS
	u32 pkts_local_tx_sgs;
	u32 pkts_total_local_tx;
	u32 pkts_local_tx_csum;
	u32 pkts_transmitted;
	u32 pkts_slow_forwarded[VWD_RXQ_CNT];
	u32 pkts_tx_dropped;
	u32 pkts_rx_fast_forwarded[VWD_RXQ_CNT];
	u32 rx_skb_alloc_fail;
	u32 rx_csum_correct;
#endif

	u32 msg_enable;

};


int pfe_vwd_init(struct pfe *pfe);
void pfe_vwd_exit(struct pfe *pfe);

#endif /* _PFE_VWD_H_ */
