Add DPDK 16.07 support (rc3 based)
DPDK vhost-user support is disabled due to significan changes
in the DPDK vhost-user code which are not compatible with current
VPP code.
Change-Id: I3f0d28cb75f6370282ec7e33d57cbfb77e1a3ce1
Signed-off-by: Damjan Marion <damarion@cisco.com>
diff --git a/vnet/vnet/devices/dpdk/dpdk.h b/vnet/vnet/devices/dpdk/dpdk.h
index 00caeaf..830bf10 100644
--- a/vnet/vnet/devices/dpdk/dpdk.h
+++ b/vnet/vnet/devices/dpdk/dpdk.h
@@ -61,6 +61,12 @@
#define always_inline static inline __attribute__ ((__always_inline__))
#endif
+#if RTE_VERSION < RTE_VERSION_NUM(16, 7, 0, 0)
+#define DPDK_VHOST_USER 1
+#else
+#define DPDK_VHOST_USER 0
+#endif
+
#include <vlib/pci/pci.h>
#define NB_MBUF (16<<10)
@@ -131,6 +137,7 @@
u32 total_packet_cnt;
} dpdk_efd_agent_t;
+#if DPDK_VHOST_USER
typedef struct {
int callfd;
int kickfd;
@@ -160,6 +167,7 @@
u32 region_fd[VHOST_MEMORY_MAX_NREGIONS];
u64 region_offset[VHOST_MEMORY_MAX_NREGIONS];
} dpdk_vu_intf_t;
+#endif
typedef void (*dpdk_flowcontrol_callback_t) (vlib_main_t *vm,
u32 hw_if_index,
@@ -225,11 +233,13 @@
struct rte_kni *kni;
u8 kni_port_id;
+#if DPDK_VHOST_USER
/* vhost-user related */
u32 vu_if_id;
struct virtio_net vu_vhost_dev;
u32 vu_is_running;
dpdk_vu_intf_t *vu_intf;
+#endif
/* af_packet */
u8 af_packet_port_id;
@@ -240,8 +250,13 @@
struct rte_eth_stats stats;
struct rte_eth_stats last_stats;
struct rte_eth_stats last_cleared_stats;
+#if RTE_VERSION >= RTE_VERSION_NUM(16, 7, 0, 0)
+ struct rte_eth_xstat * xstats;
+ struct rte_eth_xstat * last_cleared_xstats;
+#else
struct rte_eth_xstats * xstats;
struct rte_eth_xstats * last_cleared_xstats;
+#endif
f64 time_last_stats_update;
dpdk_port_type_t port_type;
@@ -509,10 +524,12 @@
vlib_buffer_t * b0,
struct rte_mbuf *mb);
+#if DPDK_VHOST_USER
/* dpdk vhost-user interrupt management */
u8 dpdk_vhost_user_want_interrupt (dpdk_device_t *xd, int idx);
void dpdk_vhost_user_send_interrupt (vlib_main_t * vm, dpdk_device_t * xd,
int idx);
+#endif
static inline u64 vnet_get_aggregate_rx_packets (void)
@@ -544,6 +561,7 @@
void post_sw_interface_set_flags (vlib_main_t *vm, u32 sw_if_index, u32 flags);
+#if DPDK_VHOST_USER
typedef struct vhost_user_memory vhost_user_memory_t;
void dpdk_vhost_user_process_init (void **ctx);
@@ -568,6 +586,7 @@
u32 sw_if_index);
int dpdk_vhost_user_dump_ifs (vnet_main_t * vnm, vlib_main_t * vm,
vhost_user_intf_details_t **out_vuids);
+#endif
u32 dpdk_get_admin_up_down_in_progress (void);