#include <rte_ethdev.h>
#include <rte_version.h>
#include <rte_net.h>
+#if RTE_VERSION >= RTE_VERSION_NUM(22, 11, 0, 0)
+#include <rte_bus.h>
+#include <rte_pci.h>
+#include <ctype.h>
+
+#include <bus_driver.h>
+#include <bus_pci_driver.h>
+#include <bus_vmbus_driver.h>
+#endif
#include <vnet/devices/devices.h>
{
CLIB_CACHE_LINE_ALIGN_MARK (cacheline0);
clib_spinlock_t lock;
+ u32 queue_index;
} dpdk_tx_queue_t;
typedef struct
u8 *default_mac_address;
/* maximum supported max frame size */
- u16 max_supported_frame_size;
+ u32 max_supported_frame_size;
/* due to lack of API to get ethernet max_frame_size we store information
* deducted from device info */
};
dpdk_device_addr_type_t dev_addr_type;
u8 *name;
+ u8 *tag;
u8 is_blacklisted;
#define _(x) uword x;
u8 **eal_init_args;
u8 *eal_init_args_str;
u8 *uio_driver_name;
+ u8 uio_bind_force;
u8 enable_telemetry;
u16 max_simd_bitwidth;
void dpdk_update_link_state (dpdk_device_t * xd, f64 now);
#define foreach_dpdk_rss_hf \
- _ (0, ETH_RSS_FRAG_IPV4, "ipv4-frag") \
- _ (1, ETH_RSS_NONFRAG_IPV4_TCP, "ipv4-tcp") \
- _ (2, ETH_RSS_NONFRAG_IPV4_UDP, "ipv4-udp") \
- _ (3, ETH_RSS_NONFRAG_IPV4_SCTP, "ipv4-sctp") \
- _ (4, ETH_RSS_NONFRAG_IPV4_OTHER, "ipv4-other") \
- _ (5, ETH_RSS_IPV4, "ipv4") \
- _ (6, ETH_RSS_IPV6_TCP_EX, "ipv6-tcp-ex") \
- _ (7, ETH_RSS_IPV6_UDP_EX, "ipv6-udp-ex") \
- _ (8, ETH_RSS_FRAG_IPV6, "ipv6-frag") \
- _ (9, ETH_RSS_NONFRAG_IPV6_TCP, "ipv6-tcp") \
- _ (10, ETH_RSS_NONFRAG_IPV6_UDP, "ipv6-udp") \
- _ (11, ETH_RSS_NONFRAG_IPV6_SCTP, "ipv6-sctp") \
- _ (12, ETH_RSS_NONFRAG_IPV6_OTHER, "ipv6-other") \
- _ (13, ETH_RSS_IPV6_EX, "ipv6-ex") \
- _ (14, ETH_RSS_IPV6, "ipv6") \
- _ (15, ETH_RSS_L2_PAYLOAD, "l2-payload") \
- _ (16, ETH_RSS_PORT, "port") \
- _ (17, ETH_RSS_VXLAN, "vxlan") \
- _ (18, ETH_RSS_GENEVE, "geneve") \
- _ (19, ETH_RSS_NVGRE, "nvgre") \
- _ (20, ETH_RSS_GTPU, "gtpu") \
- _ (21, ETH_RSS_ESP, "esp") \
- _ (60, ETH_RSS_L4_DST_ONLY, "l4-dst-only") \
- _ (61, ETH_RSS_L4_SRC_ONLY, "l4-src-only") \
- _ (62, ETH_RSS_L3_DST_ONLY, "l3-dst-only") \
- _ (63, ETH_RSS_L3_SRC_ONLY, "l3-src-only")
+ _ (0, RTE_ETH_RSS_FRAG_IPV4, "ipv4-frag") \
+ _ (1, RTE_ETH_RSS_NONFRAG_IPV4_TCP, "ipv4-tcp") \
+ _ (2, RTE_ETH_RSS_NONFRAG_IPV4_UDP, "ipv4-udp") \
+ _ (3, RTE_ETH_RSS_NONFRAG_IPV4_SCTP, "ipv4-sctp") \
+ _ (4, RTE_ETH_RSS_NONFRAG_IPV4_OTHER, "ipv4-other") \
+ _ (5, RTE_ETH_RSS_IPV4, "ipv4") \
+ _ (6, RTE_ETH_RSS_IPV6_TCP_EX, "ipv6-tcp-ex") \
+ _ (7, RTE_ETH_RSS_IPV6_UDP_EX, "ipv6-udp-ex") \
+ _ (8, RTE_ETH_RSS_FRAG_IPV6, "ipv6-frag") \
+ _ (9, RTE_ETH_RSS_NONFRAG_IPV6_TCP, "ipv6-tcp") \
+ _ (10, RTE_ETH_RSS_NONFRAG_IPV6_UDP, "ipv6-udp") \
+ _ (11, RTE_ETH_RSS_NONFRAG_IPV6_SCTP, "ipv6-sctp") \
+ _ (12, RTE_ETH_RSS_NONFRAG_IPV6_OTHER, "ipv6-other") \
+ _ (13, RTE_ETH_RSS_IPV6_EX, "ipv6-ex") \
+ _ (14, RTE_ETH_RSS_IPV6, "ipv6") \
+ _ (15, RTE_ETH_RSS_L2_PAYLOAD, "l2-payload") \
+ _ (16, RTE_ETH_RSS_PORT, "port") \
+ _ (17, RTE_ETH_RSS_VXLAN, "vxlan") \
+ _ (18, RTE_ETH_RSS_GENEVE, "geneve") \
+ _ (19, RTE_ETH_RSS_NVGRE, "nvgre") \
+ _ (20, RTE_ETH_RSS_GTPU, "gtpu") \
+ _ (21, RTE_ETH_RSS_ESP, "esp") \
+ _ (60, RTE_ETH_RSS_L4_DST_ONLY, "l4-dst-only") \
+ _ (61, RTE_ETH_RSS_L4_SRC_ONLY, "l4-src-only") \
+ _ (62, RTE_ETH_RSS_L3_DST_ONLY, "l3-dst-only") \
+ _ (63, RTE_ETH_RSS_L3_SRC_ONLY, "l3-src-only")
format_function_t format_dpdk_device_name;
format_function_t format_dpdk_device;