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 #define I40E_DEV_ID_SFP_XL710 0x1572 27 #define I40E_DEV_ID_QSFP_A 0x1583 28 #define I40E_DEV_ID_QSFP_B 0x1584 29 #define I40E_DEV_ID_QSFP_C 0x1585 30 #define I40E_DEV_ID_10G_BASE_T 0x1586 31 #define I40E_DEV_ID_VF 0x154C 34 #define foreach_eal_double_hyphen_predicate_arg \ 40 #define foreach_eal_single_hyphen_mandatory_arg \ 44 #define foreach_eal_single_hyphen_arg \ 46 _(mem-alloc-request, m) \ 50 #define foreach_eal_double_hyphen_arg \ 72 _vec_len (xd->
xstats) = len;
85 u64 rxerrors, last_rxerrors;
102 xd->
stats.rx_nombuf -
116 rxerrors = xd->
stats.ierrors;
125 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
#define DPDK_DEVICE_FLAG_PMD
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)