emmericp / MoonGen

MoonGen is a fully scriptable high-speed packet generator built on DPDK and LuaJIT. It can saturate a 10 Gbit/s connection with 64 byte packets on a single CPU core while executing user-provided Lua scripts for each packet. Multi-core support allows for even higher rates. It also features precise and accurate timestamping and rate control.
MIT License
1.04k stars 234 forks source link

Build error #272

Closed immadhavv closed 4 years ago

immadhavv commented 4 years ago

Host Details Linux 5.3.0-40-generic x86_64 Intel(R) Xeon(R) CPU E5-2630 v3 @ 2.40GHz

Created a new docker using docker pull ubuntu

Inside docker, commands used:

apt-get update && apt-get install -y build-essential automake python-pip libcap-ng-dev gawk pciutils linux-headers-$(uname -a | awk '{print $3}') vim kmod
(took this from somewhere as dependancies for dpdk installation)
sudo apt-get install -y build-essential cmake linux-headers-uname -r pciutils libnuma-dev
(from moongen's official github repository as dependancies for Moongen)
apt-get install git
git clone https://github.com/emmericp/MoonGen
cd MoonGen
./build.sh

`root@10ce5f37273b:/home/MoonGen# ./build.sh Submodule 'libmoon' (https://github.com/libmoon/libmoon) registered for path 'libmoon' Cloning into '/home/MoonGen/libmoon'... Submodule path 'libmoon': checked out '606ccdae62a4a2104ad8fc7225407f08235bf309' Build libmoon with MoonGen Submodule 'deps/dpdk' (https://github.com/emmericp/dpdk) registered for path 'deps/dpdk' Submodule 'deps/highwayhash' (https://github.com/google/highwayhash.git) registered for path 'deps/highwayhash' Submodule 'deps/luajit' (https://github.com/emmericp/LuaJIT) registered for path 'deps/luajit' Submodule 'deps/pciids' (https://github.com/emmericp/pciids) registered for path 'deps/pciids' Submodule 'deps/tbb' (https://github.com/01org/tbb.git) registered for path 'deps/tbb' Submodule 'lua/lib/pf' (https://github.com/emmericp/pflua) registered for path 'lua/lib/pf' Submodule 'lua/lib/syscall' (https://github.com/emmericp/ljsyscall) registered for path 'lua/lib/syscall' Submodule 'lua/lib/turbo' (https://github.com/emmericp/turbo) registered for path 'lua/lib/turbo' Cloning into '/home/MoonGen/libmoon/deps/dpdk'... Cloning into '/home/MoonGen/libmoon/deps/highwayhash'... Cloning into '/home/MoonGen/libmoon/deps/luajit'... Cloning into '/home/MoonGen/libmoon/deps/pciids'... Cloning into '/home/MoonGen/libmoon/deps/tbb'... Cloning into '/home/MoonGen/libmoon/lua/lib/pf'... Cloning into '/home/MoonGen/libmoon/lua/lib/syscall'... Cloning into '/home/MoonGen/libmoon/lua/lib/turbo'... Submodule path 'deps/dpdk': checked out '90005150af162cf536e93dd7405774d47a69a479' Submodule path 'deps/highwayhash': checked out '14dedecd1de87cb662f7a882ea1578d2384feb2f' Submodule path 'deps/luajit': checked out '8271c643c21d1b2f344e339f559f2de6f3663191' Submodule path 'deps/pciids': checked out 'eea0f7199045fbaf3800a499e867ef1a4e5d1f9e' Submodule path 'deps/tbb': checked out 'd7e150913467f3c168ba6319c985cf341fd81012' Submodule path 'lua/lib/pf': checked out 'b16b31aed678a3b8ce809391c9e6bcd67f70be0e' Submodule path 'lua/lib/syscall': checked out '2a18b1b62947c597b4e573bb042483ff18434b6f' Submodule path 'lua/lib/turbo': checked out 'd69c85a255a6ceed329813f04e40bd2a9cefcf5e' ==== Building LuaJIT 2.1.0-beta3 ==== make -C src make[1]: Entering directory '/home/MoonGen/libmoon/deps/luajit/src' HOSTCC host/minilua.o HOSTCC host/buildvm_asm.o HOSTCC host/buildvm_peobj.o HOSTCC host/buildvm_lib.o HOSTCC host/buildvm_fold.o CC lj_gc.o CC lj_char.o CC lj_obj.o CC lj_buf.o CC lj_str.o CC lj_tab.o CC lj_func.o CC lj_udata.o CC lj_meta.o CC lj_debug.o CC lj_state.o CC lj_vmevent.o CC lj_vmmath.o CC lj_strscan.o CC lj_strfmt_num.o CC lj_api.o CC lj_strfmt.o CC lj_profile.o CC lj_lex.o CC lj_parse.o CC lj_bcread.o CC lj_bcwrite.o CC lj_load.o CC lj_ir.o CC lj_opt_mem.o CC lj_opt_narrow.o CC lj_opt_dce.o CC lj_opt_loop.o CC lj_opt_split.o CC lj_opt_sink.o CC lj_mcode.o CC lj_snap.o CC lj_asm.o CC lj_trace.o CC lj_gdbjit.o CC lj_ctype.o CC lj_cdata.o CC lj_cconv.o CC lj_ccall.o CC lj_ccallback.o CC lj_carith.o CC lj_clib.o CC lj_cparse.o CC lj_lib.o CC lj_alloc.o CC lib_aux.o CC lib_package.o CC lib_init.o CC luajit.o HOSTLINK host/minilua DYNASM host/buildvm_arch.h HOSTCC host/buildvm.o HOSTLINK host/buildvm BUILDVM lj_vm.S BUILDVM lj_bcdef.h BUILDVM lj_ffdef.h BUILDVM lj_folddef.h BUILDVM lj_libdef.h BUILDVM jit/vmdef.lua BUILDVM lj_recdef.h CC lj_bc.o CC lj_err.o CC lj_dispatch.o CC lj_record.o ASM lj_vm.o CC lj_crecord.o CC lib_base.o CC lib_math.o CC lib_bit.o CC lib_string.o CC lib_table.o CC lib_io.o CC lib_os.o CC lib_debug.o CC lib_jit.o CC lib_ffi.o CC lj_ffrecord.o CC lj_opt_fold.o AR libluajit.a LINK luajit OK Successfully built LuaJIT make[1]: Leaving directory '/home/MoonGen/libmoon/deps/luajit/src' ==== Successfully built LuaJIT 2.1.0-beta3 ==== ==== Installing LuaJIT 2.1.0-beta3 to /usr/local ==== mkdir -p /home/MoonGen/libmoon/deps/luajit/usr/local/bin /home/MoonGen/libmoon/deps/luajit/usr/local/lib /home/MoonGen/libmoon/deps/luajit/usr/local/include/luajit-2.1 /home/MoonGen/libmoon/deps/luajit/usr/local/share/man/man1 /home/MoonGen/libmoon/deps/luajit/usr/local/lib/pkgconfig /home/MoonGen/libmoon/deps/luajit/usr/local/share/luajit-2.1.0-beta3/jit /home/MoonGen/libmoon/deps/luajit/usr/local/share/lua/5.1 /home/MoonGen/libmoon/deps/luajit/usr/local/lib/lua/5.1 cd src && install -m 0755 luajit /home/MoonGen/libmoon/deps/luajit/usr/local/bin/luajit-2.1.0-beta3 cd src && test -f libluajit.a && install -m 0644 libluajit.a /home/MoonGen/libmoon/deps/luajit/usr/local/lib/libluajit-5.1.a || : rm -f /home/MoonGen/libmoon/deps/luajit/usr/local/lib/libluajit-5.1.so.2.1.0 /home/MoonGen/libmoon/deps/luajit/usr/local/lib/libluajit-5.1.so /home/MoonGen/libmoon/deps/luajit/usr/local/lib/libluajit-5.1.so.2 cd src && test -f libluajit.so && install -m 0755 libluajit.so /home/MoonGen/libmoon/deps/luajit/usr/local/lib/libluajit-5.1.so.2.1.0 && ldconfig -n /home/MoonGen/libmoon/deps/luajit/usr/local/lib && ln -sf libluajit-5.1.so.2.1.0 /home/MoonGen/libmoon/deps/luajit/usr/local/lib/libluajit-5.1.so && ln -sf libluajit-5.1.so.2.1.0 /home/MoonGen/libmoon/deps/luajit/usr/local/lib/libluajit-5.1.so.2 || : cd etc && install -m 0644 luajit.1 /home/MoonGen/libmoon/deps/luajit/usr/local/share/man/man1 cd etc && sed -e "s|^prefix=.|prefix=/usr/local|" -e "s|^multilib=.|multilib=lib|" luajit.pc > luajit.pc.tmp && install -m 0644 luajit.pc.tmp /home/MoonGen/libmoon/deps/luajit/usr/local/lib/pkgconfig/luajit.pc && rm -f luajit.pc.tmp cd src && install -m 0644 lua.h lualib.h lauxlib.h luaconf.h lua.hpp luajit.h /home/MoonGen/libmoon/deps/luajit/usr/local/include/luajit-2.1 cd src/jit && install -m 0644 bc.lua bcsave.lua dump.lua p.lua v.lua zone.lua dis_x86.lua dis_x64.lua dis_arm.lua dis_arm64.lua dis_arm64be.lua dis_ppc.lua dis_mips.lua dis_mipsel.lua dis_mips64.lua dis_mips64el.lua vmdef.lua /home/MoonGen/libmoon/deps/luajit/usr/local/share/luajit-2.1.0-beta3/jit ==== Successfully installed LuaJIT 2.1.0-beta3 to /usr/local ====

Note: the development releases deliberately do NOT install a symlink for luajit You can do this now by running this command (with sudo):

ln -sf luajit-2.1.0-beta3 /home/MoonGen/libmoon/deps/luajit/usr/local/bin/luajit

Configuration done using x86_64-native-linuxapp-gcc == Build lib == Build lib/librte_compat == Build lib/librte_eal SYMLINK-FILE include/rte_compat.h == Build lib/librte_eal/common SYMLINK-FILE include/generic/rte_atomic.h SYMLINK-FILE include/generic/rte_byteorder.h SYMLINK-FILE include/generic/rte_cycles.h SYMLINK-FILE include/generic/rte_prefetch.h SYMLINK-FILE include/generic/rte_memcpy.h SYMLINK-FILE include/generic/rte_spinlock.h SYMLINK-FILE include/generic/rte_cpuflags.h SYMLINK-FILE include/generic/rte_rwlock.h SYMLINK-FILE include/generic/rte_pause.h SYMLINK-FILE include/generic/rte_io.h SYMLINK-FILE include/generic/rte_vect.h SYMLINK-FILE include/rte_branch_prediction.h SYMLINK-FILE include/rte_common.h SYMLINK-FILE include/rte_debug.h SYMLINK-FILE include/rte_eal.h SYMLINK-FILE include/rte_errno.h SYMLINK-FILE include/rte_launch.h SYMLINK-FILE include/rte_log.h SYMLINK-FILE include/rte_memory.h SYMLINK-FILE include/rte_lcore.h SYMLINK-FILE include/rte_memzone.h SYMLINK-FILE include/rte_per_lcore.h SYMLINK-FILE include/rte_pci.h SYMLINK-FILE include/rte_random.h SYMLINK-FILE include/rte_tailq.h SYMLINK-FILE include/rte_interrupts.h SYMLINK-FILE include/rte_alarm.h SYMLINK-FILE include/rte_string_fns.h SYMLINK-FILE include/rte_version.h SYMLINK-FILE include/rte_eal_memconfig.h SYMLINK-FILE include/rte_hexdump.h SYMLINK-FILE include/rte_malloc_heap.h SYMLINK-FILE include/rte_devargs.h SYMLINK-FILE include/rte_bus.h SYMLINK-FILE include/rte_dev.h SYMLINK-FILE include/rte_vdev.h SYMLINK-FILE include/rte_pci_dev_feature_defs.h SYMLINK-FILE include/rte_pci_dev_features.h SYMLINK-FILE include/rte_keepalive.h SYMLINK-FILE include/rte_malloc.h SYMLINK-FILE include/rte_time.h SYMLINK-FILE include/rte_service.h SYMLINK-FILE include/rte_rwlock.h SYMLINK-FILE include/rte_service_component.h SYMLINK-FILE include/rte_memcpy.h SYMLINK-FILE include/rte_cycles.h SYMLINK-FILE include/rte_spinlock.h SYMLINK-FILE include/rte_pause.h SYMLINK-FILE include/rte_atomic_32.h SYMLINK-FILE include/rte_vect.h SYMLINK-FILE include/rte_prefetch.h SYMLINK-FILE include/rte_byteorder_32.h SYMLINK-FILE include/rte_atomic_64.h SYMLINK-FILE include/rte_byteorder_64.h SYMLINK-FILE include/rte_rtm.h SYMLINK-FILE include/rte_cpuflags.h SYMLINK-FILE include/rte_atomic.h SYMLINK-FILE include/rte_io.h SYMLINK-FILE include/rte_byteorder.h == Build lib/librte_eal/linuxapp == Build lib/librte_eal/linuxapp/eal == Build lib/librte_eal/linuxapp/igb_uio CC eal.o CC eal_hugepage_info.o CC eal_memory.o CC eal_thread.o CC eal_vfio.o CC eal_log.o CC eal_vfio_mp_sync.o CC eal_pci.o CC eal_pci_uio.o CC eal_pci_vfio.o CC eal_debug.o CC eal_lcore.o CC eal_timer.o CC eal_interrupts.o CC eal_alarm.o CC eal_common_lcore.o CC eal_common_timer.o CC eal_common_memzone.o CC eal_common_log.o CC eal_common_launch.o CC eal_common_vdev.o CC eal_common_pci.o CC eal_common_pci_uio.o CC eal_common_memory.o CC eal_common_tailqs.o CC eal_common_errno.o CC eal_common_cpuflags.o CC eal_common_string_fns.o CC eal_common_hexdump.o CC eal_common_devargs.o CC eal_common_bus.o CC eal_common_dev.o CC eal_common_options.o CC eal_common_thread.o CC eal_common_proc.o CC rte_malloc.o CC malloc_elem.o CC malloc_heap.o CC rte_keepalive.o CC rte_service.o CC rte_cpuflags.o CC rte_spinlock.o SYMLINK-FILE include/exec-env/rte_interrupts.h SYMLINK-FILE include/exec-env/rte_kni_common.h SYMLINK-FILE include/exec-env/rte_dom0_common.h AR librte_eal.a INSTALL-LIB librte_eal.a CC [M] /home/MoonGen/libmoon/deps/dpdk/x86_64-native-linuxapp-gcc/build/lib/librte_eal/linuxapp/igb_uio/igb_uio.o /home/MoonGen/libmoon/deps/dpdk/x86_64-native-linuxapp-gcc/build/lib/librte_eal/linuxapp/igb_uio/igb_uio.c: In function 'igbuio_pci_probe': /home/MoonGen/libmoon/deps/dpdk/x86_64-native-linuxapp-gcc/build/lib/librte_eal/linuxapp/igb_uio/igb_uio.c:429:6: error: this statement may fall through [-Werror=implicit-fallthrough=] if (pci_alloc_irq_vectors(dev, 1, 1, PCI_IRQ_MSIX) == 1) { ^ /home/MoonGen/libmoon/deps/dpdk/x86_64-native-linuxapp-gcc/build/lib/librte_eal/linuxapp/igb_uio/igb_uio.c:437:2: note: here case RTE_INTR_MODE_LEGACY: ^~~~ In file included from /home/MoonGen/libmoon/deps/dpdk/x86_64-native-linuxapp-gcc/build/lib/librte_eal/linuxapp/igb_uio/igb_uio.c:27:0: ./include/linux/device.h:1561:2: error: this statement may fall through [-Werror=implicit-fallthrough=] _dev_notice(dev, dev_fmt(fmt), ##VA_ARGS) ^~~~~~~~~~~~~ /home/MoonGen/libmoon/deps/dpdk/x86_64-native-linuxapp-gcc/build/lib/librte_eal/linuxapp/igb_uio/igb_uio.c:445:3: note: in expansion of macro 'dev_notice' dev_notice(&dev->dev, "PCI INTX mask not supported\n"); ^~~~~~ /home/MoonGen/libmoon/deps/dpdk/x86_64-native-linuxapp-gcc/build/lib/librte_eal/linuxapp/igb_uio/igb_uio.c:447:2: note: here case RTE_INTR_MODE_NONE: ^~~~ cc1: all warnings being treated as errors scripts/Makefile.build:288: recipe for target '/home/MoonGen/libmoon/deps/dpdk/x86_64-native-linuxapp-gcc/build/lib/librte_eal/linuxapp/igb_uio/igb_uio.o' failed make[7]: [/home/MoonGen/libmoon/deps/dpdk/x86_64-native-linuxapp-gcc/build/lib/librte_eal/linuxapp/igb_uio/igb_uio.o] Error 1 Makefile:1655: recipe for target 'module/home/MoonGen/libmoon/deps/dpdk/x86_64-native-linuxapp-gcc/build/lib/librte_eal/linuxapp/igb_uio' failed make[6]: [module/home/MoonGen/libmoon/deps/dpdk/x86_64-native-linuxapp-gcc/build/lib/librte_eal/linuxapp/igb_uio] Error 2 /home/MoonGen/libmoon/deps/dpdk/mk/rte.module.mk:78: recipe for target 'igb_uio.ko' failed make[5]: [igb_uio.ko] Error 2 /home/MoonGen/libmoon/deps/dpdk/mk/rte.subdir.mk:63: recipe for target 'igb_uio' failed make[4]: [igb_uio] Error 2 /home/MoonGen/libmoon/deps/dpdk/mk/rte.subdir.mk:63: recipe for target 'linuxapp' failed make[3]: [linuxapp] Error 2 /home/MoonGen/libmoon/deps/dpdk/mk/rte.subdir.mk:63: recipe for target 'librte_eal' failed make[2]: [librte_eal] Error 2 /home/MoonGen/libmoon/deps/dpdk/mk/rte.sdkbuild.mk:76: recipe for target 'lib' failed make[1]: [lib] Error 2 /home/MoonGen/libmoon/deps/dpdk/mk/rte.sdkroot.mk:128: recipe for target 'all' failed make: [all] Error 2 make -C deps/http-parser library make[1]: Entering directory '/home/MoonGen/libmoon/lua/lib/turbo/deps/http-parser' gcc -I. -fPIC -DHTTP_PARSER_STRICT=0 -O3 -Wall -Wextra -c http_parser.c -o libhttp_parser.o gcc -shared -Wl,-soname=libhttp_parser.so.2.1 -o libhttp_parser.so.2.1 libhttp_parser.o make[1]: Leaving directory '/home/MoonGen/libmoon/lua/lib/turbo/deps/http-parser' gcc -Ideps/http-parser/ -shared -O3 -Wall -g -fPIC deps/http-parser/libhttp_parser.o deps/turbo_ffi_wrap.c -o libtffi_wrap.so -lcrypto -lssl Makefile:87: recipe for target 'all' failed Could not compile Turbo with TLS support, disabling TLS Install libssl-dev and OpenSSL to enable TLS support make -C deps/http-parser library make[1]: Entering directory '/home/MoonGen/libmoon/lua/lib/turbo/deps/http-parser' gcc -shared -Wl,-soname=libhttp_parser.so.2.1 -o libhttp_parser.so.2.1 libhttp_parser.o make[1]: Leaving directory '/home/MoonGen/libmoon/lua/lib/turbo/deps/http-parser' gcc -Ideps/http-parser/ -shared -O3 -Wall -g -fPIC -DTURBO_NO_SSL=1 deps/http-parser/libhttp_parser.o deps/turbo_ffi_wrap.c -o libtffi_wrap.so set -eu; for file in highwayhash/.cc; do target=obj/${file##/}; target=${target%.}.o; [ "$target" = "obj/highwayhash_target.o" ] || [ "$target" = "obj/data_parallel_benchmark.o" ] || [ "$target" = "obj/data_parallel_test.o" ] || g++ -c -I. -std=c++11 -Wall -O3 -fPIC -pthread -DHH_DISABLE_TARGET_SPECIFIC -MM -MT "$target" "$file"; done | sed -e ':b' -e 's-../[^./]/--' -e 'tb' >deps.mk g++ -c -I. -std=c++11 -Wall -O3 -fPIC -pthread highwayhash/profiler_example.cc -o obj/profiler_example.o g++ -c -I. -std=c++11 -Wall -O3 -fPIC -pthread highwayhash/arch_specific.cc -o obj/arch_specific.o g++ -c -I. -std=c++11 -Wall -O3 -fPIC -pthread highwayhash/instruction_sets.cc -o obj/instruction_sets.o g++ -c -I. -std=c++11 -Wall -O3 -fPIC -pthread highwayhash/nanobenchmark.cc -o obj/nanobenchmark.o g++ -c -I. -std=c++11 -Wall -O3 -fPIC -pthread highwayhash/os_specific.cc -o obj/os_specific.o g++ -pthread obj/profiler_example.o obj/arch_specific.o obj/instruction_sets.o obj/nanobenchmark.o obj/os_specific.o -o bin/profiler_example g++ -c -I. -std=c++11 -Wall -O3 -fPIC -pthread highwayhash/nanobenchmark_example.cc -o obj/nanobenchmark_example.o g++ -pthread obj/nanobenchmark_example.o obj/arch_specific.o obj/instruction_sets.o obj/nanobenchmark.o obj/os_specific.o -o bin/nanobenchmark_example g++ -c -I. -std=c++11 -Wall -O3 -fPIC -pthread highwayhash/vector_test.cc -o obj/vector_test.o g++ -c -I. -std=c++11 -Wall -O3 -fPIC -pthread highwayhash/vector_test_portable.cc -o obj/vector_test_portable.o g++ -c -I. -std=c++11 -Wall -O3 -fPIC -pthread -mavx2 highwayhash/vector_test_avx2.cc -o obj/vector_test_avx2.o g++ -c -I. -std=c++11 -Wall -O3 -fPIC -pthread -msse4.1 highwayhash/vector_test_sse41.cc -o obj/vector_test_sse41.o g++ -pthread obj/vector_test.o obj/arch_specific.o obj/instruction_sets.o obj/nanobenchmark.o obj/os_specific.o obj/vector_test_portable.o obj/vector_test_avx2.o obj/vector_test_sse41.o -o bin/vector_test g++ -c -I. -std=c++11 -Wall -O3 -fPIC -pthread highwayhash/sip_hash_test.cc -o obj/sip_hash_test.o g++ -pthread obj/sip_hash_test.o -o bin/sip_hash_test g++ -c -I. -std=c++11 -Wall -O3 -fPIC -pthread highwayhash/highwayhash_test.cc -o obj/highwayhash_test.o g++ -c -I. -std=c++11 -Wall -O3 -fPIC -pthread highwayhash/highwayhash_test_portable.cc -o obj/highwayhash_test_portable.o g++ -c -I. -std=c++11 -Wall -O3 -fPIC -pthread -mavx2 highwayhash/highwayhash_test_avx2.cc -o obj/highwayhash_test_avx2.o g++ -c -I. -std=c++11 -Wall -O3 -fPIC -pthread -msse4.1 highwayhash/highwayhash_test_sse41.cc -o obj/highwayhash_test_sse41.o g++ -pthread obj/highwayhash_test.o obj/arch_specific.o obj/instruction_sets.o obj/nanobenchmark.o obj/os_specific.o obj/highwayhash_test_portable.o obj/highwayhash_test_avx2.o obj/highwayhash_test_sse41.o -o bin/highwayhash_test g++ -c -I. -std=c++11 -Wall -O3 -fPIC -pthread -mavx2 highwayhash/benchmark.cc -o obj/benchmark.o g++ -c -I. -std=c++11 -Wall -O3 -fPIC -pthread highwayhash/sip_hash.cc -o obj/sip_hash.o g++ -c -I. -std=c++11 -Wall -O3 -fPIC -pthread -mavx2 highwayhash/sip_tree_hash.cc -o obj/sip_tree_hash.o g++ -c -I. -std=c++11 -Wall -O3 -fPIC -pthread highwayhash/scalar_sip_tree_hash.cc -o obj/scalar_sip_tree_hash.o g++ -c -I. -std=c++11 -Wall -O3 -fPIC -pthread highwayhash/hh_portable.cc -o obj/hh_portable.o g++ -c -I. -std=c++11 -Wall -O3 -fPIC -pthread -mavx2 highwayhash/hh_avx2.cc -o obj/hh_avx2.o g++ -c -I. -std=c++11 -Wall -O3 -fPIC -pthread -msse4.1 highwayhash/hh_sse41.cc -o obj/hh_sse41.o g++ -pthread obj/benchmark.o obj/arch_specific.o obj/instruction_sets.o obj/nanobenchmark.o obj/os_specific.o obj/highwayhash_test_portable.o obj/highwayhash_test_avx2.o obj/highwayhash_test_sse41.o obj/sip_hash.o obj/sip_tree_hash.o obj/scalar_sip_tree_hash.o obj/hh_portable.o obj/hh_avx2.o obj/hh_sse41.o -o bin/benchmark g++ -c -I. -std=c++11 -Wall -O3 -fPIC -pthread highwayhash/c_bindings.cc -o obj/c_bindings.o ar rcs lib/libhighwayhash.a obj/sip_hash.o obj/sip_tree_hash.o obj/scalar_sip_tree_hash.o obj/arch_specific.o obj/instruction_sets.o obj/nanobenchmark.o obj/os_specific.o obj/hh_portable.o obj/hh_avx2.o obj/hh_sse41.o obj/c_bindings.o Disabled due to false positives; ideally the test instead ensures target-specific modules only export symbols starting with a prefix. ./test_exports.sh obj/sip_hash.o obj/sip_tree_hash.o obj/scalar_sip_tree_hash.o obj/arch_specific.o obj/instruction_sets.o obj/nanobenchmark.o obj/os_specific.o obj/hh_portable.o obj/hh_avx2.o obj/hh_sse41.o obj/c_bindings.o

-- The C compiler identification is GNU 7.5.0 -- The CXX compiler identification is GNU 7.5.0 -- Check for working C compiler: /usr/bin/cc -- Check for working C compiler: /usr/bin/cc -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Detecting C compile features -- Detecting C compile features - done -- Check for working CXX compiler: /usr/bin/c++ -- Check for working CXX compiler: /usr/bin/c++ -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Detecting CXX compile features -- Detecting CXX compile features - done -- Building Intel TBB: /usr/bin/make -j8 tbb_build_prefix=tbb_cmake_build_subdir tbb_build_dir=/home/MoonGen/build/libmoon/tbb_cmake_build compiler=gcc -- Configuring done -- Generating done -- Build files have been written to: /home/MoonGen/build Scanning dependencies of target moon [ 3%] Building CXX object libmoon/CMakeFiles/moon.dir/src/barrier.cpp.o [ 10%] Building C object libmoon/CMakeFiles/moon.dir/src/memory.c.o [ 10%] Building CXX object libmoon/CMakeFiles/moon.dir/src/main.cpp.o [ 13%] Building C object libmoon/CMakeFiles/moon.dir/src/device.c.o [ 17%] Building CXX object libmoon/CMakeFiles/moon.dir/src/task.cpp.o [ 20%] Building C object libmoon/CMakeFiles/moon.dir/src/i40e.c.o [ 27%] Building CXX object libmoon/CMakeFiles/moon.dir/src/lifecycle.cpp.o [ 27%] Building C object libmoon/CMakeFiles/moon.dir/src/util.c.o /home/MoonGen/libmoon/src/memory.c:2:10: fatal error: rte_mbuf.h: No such file or directory

include

^~~~ compilation terminated. /home/MoonGen/libmoon/src/device.c:2:10: fatal error: rte_ethdev.h: No such file or directory

include

^~~~~~ compilation terminated. libmoon/CMakeFiles/moon.dir/build.make:86: recipe for target 'libmoon/CMakeFiles/moon.dir/src/memory.c.o' failed make[2]: *** [libmoon/CMakeFiles/moon.dir/src/memory.c.o] Error 1 /home/MoonGen/libmoon/src/i40e.c:2:10: fatal error: rte_ethdev.h: No such file or directory

include

^~~~~~ make[2]: Waiting for unfinished jobs.... compilation terminated. libmoon/CMakeFiles/moon.dir/build.make:134: recipe for target 'libmoon/CMakeFiles/moon.dir/src/device.c.o' failed make[2]: [libmoon/CMakeFiles/moon.dir/src/device.c.o] Error 1 libmoon/CMakeFiles/moon.dir/build.make:158: recipe for target 'libmoon/CMakeFiles/moon.dir/src/i40e.c.o' failed make[2]: *** [libmoon/CMakeFiles/moon.dir/src/i40e.c.o] Error 1 /home/MoonGen/libmoon/src/util.c:3:10: fatal error: rte_ip.h: No such file or directory

include

^~~~~~ compilation terminated. libmoon/CMakeFiles/moon.dir/build.make:182: recipe for target 'libmoon/CMakeFiles/moon.dir/src/util.c.o' failed make[2]: [libmoon/CMakeFiles/moon.dir/src/util.c.o] Error 1 CMakeFiles/Makefile2:122: recipe for target 'libmoon/CMakeFiles/moon.dir/all' failed make[1]: [libmoon/CMakeFiles/moon.dir/all] Error 2 Makefile:83: recipe for target 'all' failed make: *** [all] Error 2 Trying to bind interfaces, this will fail if you are not root Try sudo ./bind-interfaces.sh if this step fails modprobe: ERROR: ../libkmod/libkmod.c:586 kmod_search_moddep() could not open moddep file '/lib/modules/5.3.0-40-generic/modules.dep.bin' modprobe: FATAL: Module uio not found in directory /lib/modules/5.3.0-40-generic lspci: Unable to load libkmod resources: error -12 Traceback (most recent call last): File "usertools/dpdk-devbind.py", line 717, in main() File "usertools/dpdk-devbind.py", line 710, in main get_device_details(network_devices) File "usertools/dpdk-devbind.py", line 300, in get_device_details route = check_output(["ip", "-o", "route"]) File "usertools/dpdk-devbind.py", line 149, in check_output stderr=stderr).communicate()[0] File "/usr/lib/python2.7/subprocess.py", line 394, in init errread, errwrite) File "/usr/lib/python2.7/subprocess.py", line 1047, in _execute_child raise child_exception OSError: [Errno 2] No such file or directory Could not find any inactive interfaces to bind to DPDK. Note that this script does not bind interfaces that are in use by the OS. Delete IP addresses from interfaces you would like to use with libmoon and run this script again. You can also use the script dpdk-devbind.py in deps/dpdk/usertools manually to manage interfaces used by libmoon and the OS. root@10ce5f37273b:/home/MoonGen# ` I don't know what's the issue here. It worked fine in my laptop but not in the PC. I'm wondering if its some version compatibility issue. But it's the same versions used and same things happening in both the systems, so technically it should work.

I apologize if I've missed something obvious here. Please help me with this.

immadhavv commented 4 years ago

@emmericp

while running the following command in my docker, sudo apt-get install -y build-essential cmake linux-headers-uname -r pciutils libnuma-dev it couldn't find and install linux headers5.3.0-40-generic. maybe that could be the reason. But I'm not sure how to correct it.

I tried installing MoonGen in my VM(Ubuntu 19.10) too, where the dependancies installed perfectly fine, but it gives the same error as I've mentioned in the issue. I really need help on this for my project. Can someone please help me with this as soon as possible?

immadhavv commented 4 years ago

I've somehow found a way to install it in the container. If anyone wants to make use of it, please do let me know.

HypoGump commented 4 years ago

Hi, I've also occurred this problem. Could you please update your solution?

xyxiang7 commented 9 months ago

This DPDK patch should be helpful: https://patches.dpdk.org/project/dpdk/patch/20190729123216.64601-1-ferruh.yigit@intel.com/