16 #define DPDK_NB_RX_DESC_DEFAULT 512 17 #define DPDK_NB_TX_DESC_DEFAULT 512 18 #define DPDK_NB_RX_DESC_VIRTIO 256 19 #define DPDK_NB_TX_DESC_VIRTIO 256 20 #define DPDK_NB_RX_DESC_10GE 1024 21 #define DPDK_NB_TX_DESC_10GE 1024 22 #define DPDK_NB_RX_DESC_40GE 1024 23 #define DPDK_NB_TX_DESC_40GE 1024 24 #define DPDK_NB_RX_DESC_ENIC 1024 26 #if RTE_VERSION >= RTE_VERSION_NUM(16, 7, 0, 0) 27 #define I40E_DEV_ID_SFP_XL710 0x1572 28 #define I40E_DEV_ID_QSFP_A 0x1583 29 #define I40E_DEV_ID_QSFP_B 0x1584 30 #define I40E_DEV_ID_QSFP_C 0x1585 31 #define I40E_DEV_ID_10G_BASE_T 0x1586 32 #define I40E_DEV_ID_VF 0x154C 36 #define foreach_eal_double_hyphen_predicate_arg \ 43 #define foreach_eal_single_hyphen_mandatory_arg \ 47 #define foreach_eal_single_hyphen_arg \ 49 _(mem-alloc-request, m) \ 53 #define foreach_eal_double_hyphen_arg \ 75 _vec_len (xd->
xstats) = len;
88 u64 rxerrors, last_rxerrors;
113 xd->
stats.rx_nombuf -
127 rxerrors = xd->
stats.ierrors;
136 rxerrors - last_rxerrors);
#define vec_validate(V, I)
Make sure vector is long enough for given index (no header, unspecified alignment) ...
static void vlib_increment_simple_counter(vlib_simple_counter_main_t *cm, u32 cpu_index, u32 index, u32 increment)
Increment a simple counter.
struct rte_eth_stats last_stats
vnet_interface_main_t interface_main
struct rte_eth_xstat * last_cleared_xstats
struct rte_eth_stats stats
vnet_main_t * vnet_get_main(void)
#define vec_elt_at_index(v, i)
Get vector value at index i checking that i is in bounds.
A collection of simple counters.
static void dpdk_get_xstats(dpdk_device_t *xd)
f64 time_last_stats_update
uword os_get_cpu_number(void)
vlib_simple_counter_main_t * sw_if_counters
static void dpdk_update_counters(dpdk_device_t *xd, f64 now)
#define clib_memcpy(a, b, c)
struct rte_eth_xstat * xstats
#define vec_len(v)
Number of elements in vector (rvalue-only, NULL tolerant)
dpdk_device_type_t dev_type