2
0
mirror of https://github.com/openvswitch/ovs synced 2025-08-27 20:37:42 +00:00
ovs/lib/netdev-dpdk.h
Daniele Di Proietto d5c199ea7f netdev-dpdk: Properly support non pmd threads.
We used to reserve DPDK lcore 0 for non pmd operations, making it
difficult to use core 0 for packet processing.
DPDK 2.0 properly support non EAL threads with lcore LCORE_ID_ANY.

Using non EAL threads for non pmd threads, we do not need to reserve
any core for non pmd operations

Signed-off-by: Daniele Di Proietto <diproiettod@vmware.com>
Signed-off-by: Ethan Jackson <ethan@nicira.com>
Acked-by: Ethan Jackson <ethan@nicira.com>
2015-05-22 11:28:19 -07:00

65 lines
1.1 KiB
C

#ifndef NETDEV_DPDK_H
#define NETDEV_DPDK_H
#include <config.h>
struct dp_packet;
#ifdef DPDK_NETDEV
#include <rte_config.h>
#include <rte_eal.h>
#include <rte_debug.h>
#include <rte_ethdev.h>
#include <rte_eth_ring.h>
#include <rte_errno.h>
#include <rte_memzone.h>
#include <rte_memcpy.h>
#include <rte_cycles.h>
#include <rte_spinlock.h>
#include <rte_launch.h>
#include <rte_malloc.h>
#define NON_PMD_CORE_ID LCORE_ID_ANY
int dpdk_init(int argc, char **argv);
void netdev_dpdk_register(void);
void free_dpdk_buf(struct dp_packet *);
int pmd_thread_setaffinity_cpu(unsigned cpu);
#else
#define NON_PMD_CORE_ID UINT32_MAX
#include "util.h"
static inline int
dpdk_init(int argc, char **argv)
{
if (argc >= 2 && !strcmp(argv[1], "--dpdk")) {
ovs_fatal(0, "DPDK support not built into this copy of Open vSwitch.");
}
return 0;
}
static inline void
netdev_dpdk_register(void)
{
/* Nothing */
}
static inline void
free_dpdk_buf(struct dp_packet *buf OVS_UNUSED)
{
/* Nothing */
}
static inline int
pmd_thread_setaffinity_cpu(unsigned cpu OVS_UNUSED)
{
return 0;
}
#endif /* DPDK_NETDEV */
#endif