@@ -12,3 +12,5 @@ GPATH
GRTAGS
tags
TAGS
+build
+x86_64-native-linuxapp-gcc
new file mode 100644
@@ -0,0 +1 @@
+subdir('test-pmd')
new file mode 100644
@@ -0,0 +1,20 @@
+executable('dpdk-testpmd',
+ sources: [
+ 'cmdline.c',
+ 'cmdline_flow.c',
+ 'config.c',
+ 'csumonly.c',
+ 'flowgen.c',
+ 'icmpecho.c',
+ 'ieee1588fwd.c',
+ 'iofwd.c',
+ 'macfwd.c',
+ 'macswap.c',
+ 'parameters.c',
+ 'rxonly.c',
+ 'testpmd.c',
+ 'txonly.c'
+ ],
+ dependencies: [rte_eal, rte_ring, rte_mempool, rte_cmdline,
+ rte_mbuf, rte_net, rte_ether, rte_acl, rte_metrics],
+ install: true)
new file mode 100644
@@ -0,0 +1,5 @@
+dpdk_conf.set('RTE_EAL_PMD_PATH',
+ '"@0@/dpdk/drivers"'.format(get_option('prefix')))
+
+configure_file(output: 'rte_build_config.h',
+ configuration: dpdk_conf)
new file mode 100644
@@ -0,0 +1,20 @@
+#include <rte_build_config.h>
+
+#define RTE_CACHE_LINE_SIZE 64
+#define RTE_MAX_LCORE 128
+#define RTE_MAX_NUMA_NODES 8
+#define RTE_MAX_MEMSEG 256
+#define RTE_MAX_MEMZONE 2048
+#define RTE_MAX_TAILQ 32
+#define RTE_LOG_LEVEL RTE_LOG_INFO
+#define RTE_MEMPOOL_CACHE_MAX_SIZE 512
+#define RTE_PKTMBUF_HEADROOM 128
+#define RTE_MBUF_DEFAULT_MEMPOOL_OPS "ring_mp_mc"
+#define RTE_ETHDEV_QUEUE_STAT_CNTRS 16
+#define RTE_MAX_QUEUES_PER_PORT 1024
+#define RTE_MAX_ETHPORTS 32
+#define RTE_EAL_VFIO 1
+#define RTE_LIBRTE_I40E_ITR_INTERVAL -1
+#define RTE_LIBRTE_I40E_QUEUE_NUM_PER_VM 4
+#define RTE_LIBRTE_I40E_QUEUE_NUM_PER_PF 64
+#define RTE_LIBRTE_I40E_QUEUE_NUM_PER_VF 4
new file mode 100644
@@ -0,0 +1,2 @@
+subdir('ring')
+subdir('stack')
new file mode 100644
@@ -0,0 +1,9 @@
+
+sources = ['rte_mempool_ring.c']
+
+mempool_ring_lib = library('rte_mempool_ring', sources,
+ dependencies: [rte_eal, rte_mempool, rte_ring],
+ install: true,
+ install_dir: 'dpdk/drivers')
+rte_mempool_ring = declare_dependency(link_with: mempool_ring_lib,
+ include_directories: include_directories('.'))
new file mode 100644
@@ -0,0 +1,9 @@
+
+sources = ['rte_mempool_stack.c']
+
+mempool_stack_lib = library('rte_mempool_stack', sources,
+ dependencies: [rte_eal, rte_mempool, rte_ring],
+ install: true,
+ install_dir: 'dpdk/drivers')
+rte_mempool_stack = declare_dependency(link_with: mempool_stack_lib,
+ include_directories: include_directories('.'))
new file mode 100644
@@ -0,0 +1,2 @@
+subdir('mempool')
+subdir('net')
new file mode 100644
@@ -0,0 +1,61 @@
+i40e_cflags = ['-DPF_DRIVER',
+ '-DVF_DRIVER',
+ '-DINTEGRATED_VF',
+ '-DX722_A0_SUPPORT']
+
+sources = [
+ 'i40e_ethdev.c',
+ 'i40e_rxtx.c',
+ 'i40e_ethdev_vf.c',
+ 'i40e_pf.c',
+ 'i40e_fdir.c',
+ 'i40e_flow.c',
+ 'rte_pmd_i40e.c'
+ ]
+
+base_sources = [
+ 'base/i40e_adminq.c',
+ 'base/i40e_common.c',
+ 'base/i40e_dcb.c',
+ 'base/i40e_diag.c',
+ 'base/i40e_hmc.c',
+ 'base/i40e_lan_hmc.c',
+ 'base/i40e_nvm.c'
+ ]
+
+objs = []
+
+if (host_machine.cpu_family() == 'x86') or (host_machine.cpu_family() == 'x86_64')
+ if dpdk_conf.has('RTE_MACHINE_CPUFLAG_SSE4_1')
+ sources += 'i40e_rxtx_vec_sse.c'
+ else
+ sse_tmplib = static_library('sse_tmp',
+ 'i40e_rxtx_vec_sse.c',
+ dependencies: rte_eal,
+ c_args: '-msse4.1')
+ objs += sse_tmplib.extract_objects('i40e_rxtx_vec_sse.c')
+ endif
+endif
+
+install_headers('rte_pmd_i40e.h')
+
+base_lib = static_library('i40e_base', base_sources,
+ dependencies: rte_eal,
+ c_args: [i40e_cflags, '-Wno-sign-compare',
+ '-Wno-unused-value',
+ '-Wno-format',
+ '-Wno-unused-but-set-variable'])
+
+i40e_lib = library('rte_pmd_i40e', sources,
+ include_directories: include_directories('base'),
+ objects: objs,
+ dependencies: [rte_eal, rte_net,
+ rte_mbuf, rte_ether,
+ rte_mempool, rte_ring,
+ rte_hash, rte_kvargs],
+ link_with: base_lib,
+ c_args: i40e_cflags,
+ install: true,
+ install_dir: 'dpdk/drivers')
+i40e_pmd = declare_dependency(link_with: ring_lib,
+ include_directories: include_directories('.'))
new file mode 100644
@@ -0,0 +1 @@
+subdir('i40e')
new file mode 100644
@@ -0,0 +1,44 @@
+sources = ['tb_mem.c',
+ 'rte_acl.c',
+ 'acl_bld.c',
+ 'acl_gen.c',
+ 'acl_run_scalar.c']
+
+objs = []
+flags = ''
+
+if (host_machine.cpu_family() == 'x86') or (host_machine.cpu_family() == 'x86_64')
+
+ if dpdk_conf.has('RTE_MACHINE_CPUFLAG_SSE4_2')
+ sources += 'acl_run_sse.c'
+ else
+ sse_tmplib = static_library('sse_tmp',
+ 'acl_run_sse.c',
+ dependencies: rte_eal,
+ c_args: '-msse4.2')
+ objs += sse_tmplib.extract_objects('acl_run_sse.c')
+ endif
+
+ if dpdk_conf.has('RTE_MACHINE_CPUFLAG_AVX2')
+ sources += 'acl_run_avx2.c'
+ flags += '-DCC_AVX2_SUPPORT'
+ elif cc.has_argument('-mavx2')
+ avx2_tmplib = static_library('avx2_tmp',
+ 'acl_run_avx2.c',
+ dependencies: rte_eal,
+ c_args: '-mavx2')
+ objs += avx2_tmplib.extract_objects('acl_run_avx2.c')
+ flags += '-DCC_AVX2_SUPPORT'
+ endif
+endif
+
+install_headers('rte_acl.h', 'rte_acl_osdep.h')
+
+acl_lib = library('rte_acl', sources,
+ objects: objs,
+ c_args: flags,
+ dependencies: rte_eal,
+ install: true)
+
+rte_acl = declare_dependency(link_with: acl_lib,
+ include_directories: include_directories('.'))
new file mode 100644
@@ -0,0 +1,30 @@
+sources = [ 'cmdline.c',
+ 'cmdline_cirbuf.c',
+ 'cmdline_parse.c',
+ 'cmdline_parse_etheraddr.c',
+ 'cmdline_parse_ipaddr.c',
+ 'cmdline_parse_num.c',
+ 'cmdline_parse_portlist.c',
+ 'cmdline_parse_string.c',
+ 'cmdline_rdline.c',
+ 'cmdline_socket.c',
+ 'cmdline_vt100.c']
+
+install_headers('cmdline.h',
+ 'cmdline_parse.h',
+ 'cmdline_parse_num.h',
+ 'cmdline_parse_ipaddr.h',
+ 'cmdline_parse_etheraddr.h',
+ 'cmdline_parse_string.h',
+ 'cmdline_rdline.h',
+ 'cmdline_vt100.h',
+ 'cmdline_socket.h',
+ 'cmdline_cirbuf.h',
+ 'cmdline_parse_portlist.h')
+
+cmdline_lib = library('rte_cmdline', sources, dependencies: rte_eal,
+ install: true)
+rte_cmdline = declare_dependency(link_with: cmdline_lib,
+ include_directories: include_directories('.'))
+
+dpdk_conf.set('RTE_LIBRTE_CMDLINE', 1)
new file mode 100644
@@ -0,0 +1,4 @@
+
+install_headers('rte_compat.h')
+
+rte_compat = declare_dependency(include_directories: include_directories('.'))
new file mode 100644
@@ -0,0 +1 @@
+arch_common = files('rte_spinlock.c', 'rte_cpuflags.c')
new file mode 120000
@@ -0,0 +1 @@
+x86/
\ No newline at end of file
@@ -33,6 +33,7 @@
#include <stdio.h>
+#include <rte_config.h>
#include <rte_common.h>
#include <rte_cpuflags.h>
new file mode 100644
@@ -0,0 +1,16 @@
+install_headers(
+ 'rte_atomic_32.h',
+ 'rte_atomic_64.h',
+ 'rte_atomic.h',
+ 'rte_byteorder_32.h',
+ 'rte_byteorder_64.h',
+ 'rte_byteorder.h',
+ 'rte_cpuflags.h',
+ 'rte_cycles.h',
+ 'rte_io.h',
+ 'rte_memcpy.h',
+ 'rte_prefetch.h',
+ 'rte_rtm.h',
+ 'rte_rwlock.h',
+ 'rte_spinlock.h',
+ 'rte_vect.h')
new file mode 120000
@@ -0,0 +1 @@
+x86/
\ No newline at end of file
new file mode 100644
@@ -0,0 +1,36 @@
+common_headers = [
+ 'rte_alarm.h',
+ 'rte_branch_prediction.h',
+ 'rte_bus.h',
+ 'rte_common.h',
+ 'rte_debug.h',
+ 'rte_devargs.h',
+ 'rte_dev.h',
+ 'rte_eal.h',
+ 'rte_eal_memconfig.h',
+ 'rte_errno.h',
+ 'rte_hexdump.h',
+ 'rte_interrupts.h',
+ 'rte_keepalive.h',
+ 'rte_launch.h',
+ 'rte_lcore.h',
+ 'rte_log.h',
+ 'rte_malloc.h',
+ 'rte_malloc_heap.h',
+ 'rte_memory.h',
+ 'rte_memzone.h',
+ 'rte_pci_dev_feature_defs.h',
+ 'rte_pci_dev_features.h',
+ 'rte_pci.h',
+ 'rte_per_lcore.h',
+ 'rte_random.h',
+ 'rte_string_fns.h',
+ 'rte_tailq.h',
+ 'rte_time.h',
+ 'rte_vdev.h',
+ 'rte_version.h']
+
+install_headers(common_headers)
+install_subdir('generic', install_dir : 'include')
+
+subdir('arch/@0@'.format(host_machine.cpu_family()))
@@ -50,6 +50,7 @@ extern "C" {
#include <ctype.h>
#include <errno.h>
#include <limits.h>
+#include <rte_config.h>
#ifndef typeof
#define typeof __typeof__
@@ -43,8 +43,8 @@
#include <stdint.h>
#include <sched.h>
-#include <rte_per_lcore.h>
#include <rte_config.h>
+#include <rte_per_lcore.h>
#ifdef __cplusplus
extern "C" {
@@ -50,9 +50,6 @@
#include <sys/mman.h>
#include <sys/queue.h>
#include <sys/stat.h>
-#if defined(RTE_ARCH_X86)
-#include <sys/io.h>
-#endif
#include <rte_common.h>
#include <rte_debug.h>
@@ -78,6 +75,9 @@
#include <rte_version.h>
#include <rte_atomic.h>
#include <malloc_heap.h>
+#if defined(RTE_ARCH_X86)
+#include <sys/io.h>
+#endif
#include "eal_private.h"
#include "eal_thread.h"
@@ -41,16 +41,17 @@
#include <sys/sysmacros.h>
#include <linux/pci_regs.h>
-#if defined(RTE_ARCH_X86)
-#include <sys/io.h>
-#endif
-
+#include <rte_config.h>
#include <rte_log.h>
#include <rte_pci.h>
#include <rte_eal_memconfig.h>
#include <rte_common.h>
#include <rte_malloc.h>
+#if defined(RTE_ARCH_X86)
+#include <sys/io.h>
+#endif
+
#include "eal_filesystem.h"
#include "eal_pci_init.h"
new file mode 100644
@@ -0,0 +1,57 @@
+local_inc = include_directories('include')
+
+sources = ['eal_alarm.c',
+ 'eal_debug.c',
+ 'eal_hugepage_info.c',
+ 'eal_interrupts.c',
+ 'eal_lcore.c',
+ 'eal_log.c',
+ 'eal_pci_uio.c',
+ 'eal_pci_vfio.c',
+ 'eal_thread.c',
+ 'eal_timer.c',
+ 'eal_vfio.c',
+ 'eal_vfio_mp_sync.c',
+ 'eal.c',
+ 'eal_memory.c',
+ 'eal_pci.c',
+ '../../common/eal_common_bus.c',
+ '../../common/eal_common_cpuflags.c',
+ '../../common/eal_common_devargs.c',
+ '../../common/eal_common_dev.c',
+ '../../common/eal_common_errno.c',
+ '../../common/eal_common_hexdump.c',
+ '../../common/eal_common_launch.c',
+ '../../common/eal_common_lcore.c',
+ '../../common/eal_common_log.c',
+ '../../common/eal_common_memory.c',
+ '../../common/eal_common_memzone.c',
+ '../../common/eal_common_options.c',
+ '../../common/eal_common_pci.c',
+ '../../common/eal_common_pci_uio.c',
+ '../../common/eal_common_proc.c',
+ '../../common/eal_common_string_fns.c',
+ '../../common/eal_common_tailqs.c',
+ '../../common/eal_common_thread.c',
+ '../../common/eal_common_timer.c',
+ '../../common/eal_common_vdev.c',
+ '../../common/malloc_elem.c',
+ '../../common/malloc_heap.c',
+ '../../common/rte_keepalive.c',
+ '../../common/rte_malloc.c',
+ arch_common
+]
+
+if dpdk_conf.has('LIB_LIBRTE_EAL_XEN_DOM')
+ sources += ['eal_xen_memory.c']
+endif
+
+eal_lib = library('rte_eal', sources,
+ dependencies: dependency('threads'),
+ include_directories : [global_inc, eal_inc, local_inc],
+ c_args: '-D_GNU_SOURCE',
+ link_args: '-ldl',
+ install: true
+)
+
+rte_eal = declare_dependency(link_with: eal_lib, include_directories: [global_inc, eal_inc, local_inc])
new file mode 100644
@@ -0,0 +1 @@
+subdir('eal')
new file mode 100644
@@ -0,0 +1,10 @@
+eal_inc = include_directories('common', 'common/include', 'common/include/arch/@0@'.format(host_machine.cpu_family()))
+
+# build architecture specific code
+subdir('common/arch/@0@'.format(host_machine.cpu_family()))
+
+# build linuxapp or bsdapp code
+subdir('@0@app'.format(host_machine.system().to_lower()))
+
+# add headers to "install" target
+subdir('common/include')
new file mode 100644
@@ -0,0 +1,16 @@
+
+sources = ['rte_ethdev.c', 'rte_flow.c']
+
+install_headers('rte_ethdev.h',
+ 'rte_ethdev_pci.h',
+ 'rte_ethdev_vdev.h',
+ 'rte_eth_ctrl.h',
+ 'rte_dev_info.h',
+ 'rte_flow.h',
+ 'rte_flow_driver.h')
+
+ether_lib = library('rte_ether', sources,
+ dependencies: [rte_eal, rte_ring, rte_mempool, rte_net, rte_mbuf],
+ install: true)
+rte_ether = declare_dependency(link_with: ether_lib,
+ include_directories: include_directories('.'))
new file mode 100644
@@ -0,0 +1,21 @@
+
+sources = ['rte_cuckoo_hash.c', 'rte_fbk_hash.c']
+
+headers = ['rte_cmp_arm64.h',
+ 'rte_cmp_x86.h',
+ 'rte_crc_arm64.h',
+ 'rte_cuckoo_hash.h',
+ 'rte_cuckoo_hash_x86.h',
+ 'rte_fbk_hash.h',
+ 'rte_hash_crc.h',
+ 'rte_hash.h',
+ 'rte_jhash.h',
+ 'rte_thash.h']
+
+install_headers(headers)
+
+hash_lib = library('rte_hash', sources,
+ dependencies: [rte_eal, rte_ring, rte_compat],
+ install: true)
+rte_hash = declare_dependency(link_with: hash_lib,
+ include_directories: include_directories('.'))
new file mode 100644
@@ -0,0 +1,10 @@
+
+sources = ['rte_kvargs.c']
+
+install_headers('rte_kvargs.h')
+
+kvargs_lib = library('rte_kvargs', sources,
+ dependencies: rte_eal,
+ install: true)
+rte_kvargs = declare_dependency(link_with: kvargs_lib,
+ include_directories: include_directories('.'))
new file mode 100644
@@ -0,0 +1,10 @@
+
+sources = ['rte_mbuf.c', 'rte_mbuf_ptype.c']
+
+install_headers('rte_mbuf.h', 'rte_mbuf_ptype.h')
+
+mbuf_lib = library('rte_mbuf', sources,
+ dependencies: [rte_eal, rte_mempool, rte_ring],
+ install: true)
+rte_mbuf = declare_dependency(link_with: mbuf_lib,
+ include_directories: include_directories('.'))
@@ -61,6 +61,7 @@
*/
#include <stdint.h>
+#include <rte_config.h>
#include <rte_common.h>
#include <rte_mempool.h>
#include <rte_memory.h>
new file mode 100644
@@ -0,0 +1,10 @@
+
+sources = ['rte_mempool.c', 'rte_mempool_ops.c']
+
+install_headers('rte_mempool.h')
+
+mempool_lib = library('rte_mempool', sources,
+ dependencies: [rte_eal, rte_ring],
+ install: true)
+rte_mempool = declare_dependency(link_with: mempool_lib,
+ include_directories: include_directories('.'))
new file mode 100644
@@ -0,0 +1,10 @@
+
+sources = ['rte_metrics.c']
+
+install_headers('rte_metrics.h')
+
+metrics_lib = library('rte_metrics', sources,
+ dependencies: rte_eal,
+ install: true)
+rte_metrics = declare_dependency(link_with: metrics_lib,
+ include_directories: include_directories('.'))
new file mode 100644
@@ -0,0 +1,19 @@
+
+sources = ['rte_net.c', 'rte_net_crc.c']
+
+install_headers('rte_ip.h',
+ 'rte_tcp.h',
+ 'rte_udp.h',
+ 'rte_sctp.h',
+ 'rte_icmp.h',
+ 'rte_arp.h',
+ 'rte_ether.h',
+ 'rte_gre.h',
+ 'rte_net.h',
+ 'rte_net_crc.h')
+
+net_lib = library('rte_net', sources,
+ dependencies: [rte_eal, rte_mbuf, rte_ring, rte_mempool],
+ install: true)
+rte_net = declare_dependency(link_with: net_lib,
+ include_directories: include_directories('.'))
new file mode 100644
@@ -0,0 +1,10 @@
+
+sources = ['rte_ring.c']
+
+install_headers('rte_ring.h')
+
+ring_lib = library('rte_ring', sources,
+ dependencies: rte_eal,
+ install: true)
+rte_ring = declare_dependency(link_with: ring_lib,
+ include_directories: include_directories('.'))
new file mode 100644
@@ -0,0 +1,12 @@
+subdir('librte_eal')
+subdir('librte_ring')
+subdir('librte_mempool')
+subdir('librte_acl')
+subdir('librte_cmdline')
+subdir('librte_mbuf')
+subdir('librte_net')
+subdir('librte_ether')
+subdir('librte_compat')
+subdir('librte_hash')
+subdir('librte_kvargs')
+subdir('librte_metrics')
new file mode 100644
@@ -0,0 +1,70 @@
+project('DPDK', 'C',
+ version: '17.02.0',
+ license: 'BSD')
+
+error_opts = ['-Wall', '-Wextra', '-Werror', '-Wfatal-errors',
+ '-Wno-unused-result']
+add_project_arguments(error_opts, language: 'c')
+
+optimization_opts = ['-O3']
+add_project_arguments(optimization_opts, language: 'c')
+
+rte_machine = get_option('machine')
+march_opt = '-march=@0@'.format(rte_machine)
+add_project_arguments(march_opt, language: 'c')
+
+global_inc = include_directories('config')
+
+dpdk_conf = configuration_data()
+dpdk_conf.set('RTE_MACHINE', rte_machine)
+if get_option('enable-xen-dom0')
+ dpdk_conf.set('RTE_LIBRTE_XEN_DOM0', 1)
+endif
+
+cc = meson.get_compiler('c')
+compile_time_cpuflags = []
+if (host_machine.cpu_family() == 'x86') or (host_machine.cpu_family() == 'x86_64')
+ dpdk_conf.set('RTE_ARCH_X86', 1)
+ if (host_machine.cpu_family() == 'x86_64')
+ dpdk_conf.set('RTE_ARCH_X86_64', 1)
+ dpdk_conf.set('RTE_ARCH', 'x86_64')
+ dpdk_conf.set('RTE_ARCH_64', 1)
+ else
+ dpdk_conf.set('RTE_ARCH_I686', 1)
+ dpdk_conf.set('RTE_ARCH', 'i686')
+ endif
+
+ if cc.get_define('__SSE4_1__', args: march_opt) != ''
+ dpdk_conf.set('RTE_MACHINE_CPUFLAG_SSE4_1', 1)
+ compile_time_cpuflags += ['RTE_CPUFLAG_SSE4_1']
+ endif
+ if cc.get_define('__SSE4_2__', args: march_opt) != ''
+ dpdk_conf.set('RTE_MACHINE_CPUFLAG_SSE4_2', 1)
+ compile_time_cpuflags += ['RTE_CPUFLAG_SSE4_2']
+ endif
+ if cc.get_define('__AES__', args: march_opt) != ''
+ dpdk_conf.set('RTE_MACHINE_CPUFLAG_AES', 1)
+ compile_time_cpuflags += ['RTE_CPUFLAG_AES']
+ endif
+ if cc.get_define('__PCLMUL__', args: march_opt) != ''
+ dpdk_conf.set('RTE_MACHINE_CPUFLAG_PCLMULQDQ', 1)
+ compile_time_cpuflags += ['RTE_CPUFLAG_PCLMULQDQ']
+ endif
+ if cc.get_define('__AVX__', args: march_opt) != ''
+ dpdk_conf.set('RTE_MACHINE_CPUFLAG_AVX', 1)
+ compile_time_cpuflags += ['RTE_CPUFLAG_AVX']
+ endif
+ if cc.get_define('__AVX2__', args: march_opt) != ''
+ dpdk_conf.set('RTE_MACHINE_CPUFLAG_AVX2', 1)
+ compile_time_cpuflags += ['RTE_CPUFLAG_AVX2']
+ endif
+endif
+dpdk_conf.set('RTE_COMPILE_TIME_CPUFLAGS', ','.join(compile_time_cpuflags))
+
+subdir('lib')
+subdir('drivers')
+subdir('test')
+subdir('app')
+
+# should be last to write out all config values set when parsing other meson files
+subdir('config')
new file mode 100644
@@ -0,0 +1,2 @@
+option('enable-xen-dom0', type : 'boolean', value : false, description : 'enable Xen Dom0 Support')
+option('machine', type : 'string', value : 'native', description : 'set the target machine type')
new file mode 100644
@@ -0,0 +1 @@
+subdir('test')
new file mode 100644
@@ -0,0 +1,23 @@
+executable('dpdk-test',
+ sources: [
+ 'commands.c',
+ 'packet_burst_generator.c',
+ 'test.c',
+ 'test_acl.c',
+ 'test_cmdline.c',
+ 'test_cmdline_cirbuf.c',
+ 'test_cmdline_etheraddr.c',
+ 'test_cmdline_ipaddr.c',
+ 'test_cmdline_lib.c',
+ 'test_cmdline_num.c',
+ 'test_cmdline_portlist.c',
+ 'test_cmdline_string.c',
+ 'test_cpuflags.c',
+ 'test_mp_secondary.c',
+ 'test_pmd_perf.c',
+ 'test_ring.c',
+ 'test_ring_perf.c'
+ ],
+ dependencies: [rte_eal, rte_ring, rte_mempool, rte_cmdline,
+ rte_mbuf, rte_net, rte_ether, rte_acl],
+ install: true)
@@ -41,14 +41,7 @@
#include <ctype.h>
#include <sys/queue.h>
-#ifdef RTE_LIBRTE_CMDLINE
-#include <cmdline_rdline.h>
-#include <cmdline_parse.h>
-#include <cmdline_socket.h>
-#include <cmdline.h>
-extern cmdline_parse_ctx_t main_ctx[];
-#endif
-
+#include <rte_config.h>
#include <rte_memory.h>
#include <rte_memzone.h>
#include <rte_eal.h>
@@ -58,6 +51,14 @@ extern cmdline_parse_ctx_t main_ctx[];
#ifdef RTE_LIBRTE_TIMER
#include <rte_timer.h>
#endif
+#ifdef RTE_LIBRTE_CMDLINE
+#include <cmdline_rdline.h>
+#include <cmdline_parse.h>
+#include <cmdline_socket.h>
+#include <cmdline.h>
+extern cmdline_parse_ctx_t main_ctx[];
+#endif
+
#include "test.h"