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

Error while using MoonGen #280

Open najamsaleem opened 4 years ago

najamsaleem commented 4 years ago

when i try to use Moongen with example like

sudo ./build/MoonGen examples/load-latency.lua 0 1

It is showing me this error.

'sudo: ./build/MoonGen: command not found'

Seems like there is file missing in build directory named 'MoonGen'

najamsaleem commented 4 years ago

This is the output of 'sudo ./build.sh' @emmericp please have a look

Build libmoon with MoonGen fatal: destination path '/home/user/MoonGen/libmoon/deps/dpdk' already exists and is not an empty directory. fatal: clone of 'https://github.com/emmericp/dpdk' into submodule path '/home/user/MoonGen/libmoon/deps/dpdk' failed Failed to clone 'deps/dpdk'. Retry scheduled fatal: destination path '/home/user/MoonGen/libmoon/deps/tbb' already exists and is not an empty directory. fatal: clone of 'https://github.com/01org/tbb.git' into submodule path '/home/user/MoonGen/libmoon/deps/tbb' failed Failed to clone 'deps/tbb'. Retry scheduled fatal: destination path '/home/user/MoonGen/libmoon/lua/lib/pf' already exists and is not an empty directory. fatal: clone of 'https://github.com/emmericp/pflua' into submodule path '/home/user/MoonGen/libmoon/lua/lib/pf' failed Failed to clone 'lua/lib/pf'. Retry scheduled fatal: destination path '/home/user/MoonGen/libmoon/deps/dpdk' already exists and is not an empty directory. fatal: clone of 'https://github.com/emmericp/dpdk' into submodule path '/home/user/MoonGen/libmoon/deps/dpdk' failed Failed to clone 'deps/dpdk' a second time, aborting fatal: destination path '/home/user/MoonGen/libmoon/deps/tbb' already exists and is not an empty directory. fatal: clone of 'https://github.com/01org/tbb.git' into submodule path '/home/user/MoonGen/libmoon/deps/tbb' failed Failed to clone 'deps/tbb' a second time, aborting fatal: destination path '/home/user/MoonGen/libmoon/lua/lib/pf' already exists and is not an empty directory. fatal: clone of 'https://github.com/emmericp/pflua' into submodule path '/home/user/MoonGen/libmoon/lua/lib/pf' failed Failed to clone 'lua/lib/pf' a second time, aborting ==== Building LuaJIT 2.0.4 ==== make -C src make[1]: Entering directory '/home/user/MoonGen/libmoon/deps/luajit/src' make[1]: Nothing to be done for 'default'. make[1]: Leaving directory '/home/user/MoonGen/libmoon/deps/luajit/src' ==== Successfully built LuaJIT 2.0.4 ==== ==== Installing LuaJIT 2.0.4 to /usr/local ==== mkdir -p /home/user/MoonGen/libmoon/deps/luajit/usr/local/bin /home/user/MoonGen/libmoon/deps/luajit/usr/local/lib /home/user/MoonGen/libmoon/deps/luajit/usr/local/include/luajit-2.0 /home/user/MoonGen/libmoon/deps/luajit/usr/local/share/man/man1 /home/user/MoonGen/libmoon/deps/luajit/usr/local/lib/pkgconfig /home/user/MoonGen/libmoon/deps/luajit/usr/local/share/luajit-2.0.4/jit /home/user/MoonGen/libmoon/deps/luajit/usr/local/share/lua/5.1 /home/user/MoonGen/libmoon/deps/luajit/usr/local/lib/lua/5.1 cd src && install -m 0755 luajit /home/user/MoonGen/libmoon/deps/luajit/usr/local/bin/luajit-2.0.4 cd src && test -f libluajit.a && install -m 0644 libluajit.a /home/user/MoonGen/libmoon/deps/luajit/usr/local/lib/libluajit-5.1.a || : rm -f /home/user/MoonGen/libmoon/deps/luajit/usr/local/bin/luajit /home/user/MoonGen/libmoon/deps/luajit/usr/local/lib/libluajit-5.1.so.2.0.4 /home/user/MoonGen/libmoon/deps/luajit/usr/local/lib/libluajit-5.1.so /home/user/MoonGen/libmoon/deps/luajit/usr/local/lib/libluajit-5.1.so.2 cd src && test -f libluajit.so && \ install -m 0755 libluajit.so /home/user/MoonGen/libmoon/deps/luajit/usr/local/lib/libluajit-5.1.so.2.0.4 && \ ldconfig -n /home/user/MoonGen/libmoon/deps/luajit/usr/local/lib && \ ln -sf libluajit-5.1.so.2.0.4 /home/user/MoonGen/libmoon/deps/luajit/usr/local/lib/libluajit-5.1.so && \ ln -sf libluajit-5.1.so.2.0.4 /home/user/MoonGen/libmoon/deps/luajit/usr/local/lib/libluajit-5.1.so.2 || : cd etc && install -m 0644 luajit.1 /home/user/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/user/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/user/MoonGen/libmoon/deps/luajit/usr/local/include/luajit-2.0 cd src/jit && install -m 0644 bc.lua v.lua dump.lua dis_x86.lua dis_x64.lua dis_arm.lua dis_ppc.lua dis_mips.lua dis_mipsel.lua bcsave.lua vmdef.lua /home/user/MoonGen/libmoon/deps/luajit/usr/local/share/luajit-2.0.4/jit ln -sf luajit-2.0.4 /home/user/MoonGen/libmoon/deps/luajit/usr/local/bin/luajit ==== Successfully installed LuaJIT 2.0.4 to /usr/local ==== Configuration done using x86_64-native-linuxapp-gcc == Build lib == Build lib/librte_kvargs == Build lib/librte_cfgfile == Build lib/librte_eal /home/user/MoonGen/libmoon/deps/dpdk/mk/toolchain/gcc/rte.toolchain-compat.mk:37: AVX512 support disabled because of binutils 2.31. See Bug 249 == Build lib/librte_eal/common == Build lib/librte_eal/linux == Build lib/librte_eal/linux/eal == Build lib/librte_pci == Build lib/librte_ring == Build lib/librte_stack == Build lib/librte_timer == Build lib/librte_cmdline == Build lib/librte_meter == Build lib/librte_acl == Build lib/librte_jobstats == Build lib/librte_metrics == Build lib/librte_rcu == Build lib/librte_mempool == Build lib/librte_hash == Build lib/librte_power == Build lib/librte_efd == Build lib/librte_lpm == Build lib/librte_member == Build lib/librte_mbuf == Build lib/librte_net == Build lib/librte_bbdev == Build lib/librte_cryptodev == Build lib/librte_compressdev == Build lib/librte_reorder == Build lib/librte_ethdev == Build lib/librte_sched == Build lib/librte_security == Build lib/librte_eventdev == Build lib/librte_rawdev == Build lib/librte_vhost == Build lib/librte_ip_frag == Build lib/librte_gro == Build lib/librte_bitratestats == Build lib/librte_latencystats == Build lib/librte_kni == Build lib/librte_distributor == Build lib/librte_pdump == Build lib/librte_gso == Build lib/librte_bpf == Build lib/librte_ipsec == Build lib/librte_port == Build lib/librte_table == Build lib/librte_flow_classify == Build lib/librte_pipeline == Build buildtools == Build kernel == Build kernel/linux == Build buildtools/pmdinfogen == Build kernel/linux/igb_uio == Build kernel/linux/kni == Build drivers == Build drivers/common == Build drivers/common/cpt == Build drivers/common/octeontx == Build drivers/common/dpaax == Build drivers/bus == Build drivers/bus/dpaa == Build drivers/bus/fslmc == Build drivers/bus/ifpga == Build drivers/bus/pci == Build drivers/bus/vdev == Build drivers/bus/vmbus == Build drivers/mempool == Build drivers/mempool/bucket == Build drivers/mempool/dpaa == Build drivers/mempool/dpaa2 Building modules, stage 2. == Build drivers/mempool/ring == Build drivers/mempool/stack == Build drivers/mempool/octeontx Building modules, stage 2. MODPOST 1 modules MODPOST 1 modules == Build drivers/net == Build drivers/baseband == Build drivers/crypto == Build drivers/common/qat == Build drivers/compress == Build drivers/net/af_packet == Build drivers/net/ark == Build drivers/net/atlantic == Build drivers/net/avp == Build drivers/net/axgbe == Build drivers/net/bonding == Build drivers/net/cxgbe == Build drivers/net/dpaa == Build drivers/baseband/null == Build drivers/crypto/octeontx == Build drivers/compress/octeontx == Build drivers/crypto/scheduler == Build drivers/net/dpaa2 == Build drivers/crypto/null == Build drivers/crypto/dpaa2_sec == Build drivers/net/e1000 == Build drivers/net/ena == Build drivers/net/enetc == Build drivers/net/enic == Build drivers/crypto/dpaa_sec == Build drivers/crypto/caam_jr == Build drivers/crypto/virtio == Build drivers/net/failsafe == Build drivers/net/fm10k == Build drivers/net/i40e == Build drivers/net/iavf == Build drivers/net/ice == Build drivers/net/ipn3ke == Build drivers/net/ixgbe == Build drivers/net/liquidio == Build drivers/net/memif == Build drivers/net/netvsc == Build drivers/net/nfp == Build drivers/net/bnxt == Build drivers/net/null == Build drivers/net/octeontx == Build drivers/net/qede == Build drivers/net/ring == Build drivers/net/sfc == Build drivers/net/tap == Build drivers/net/thunderx == Build drivers/net/vdev_netvsc == Build drivers/net/virtio == Build drivers/net/vmxnet3 == Build drivers/net/kni == Build drivers/net/softnic == Build drivers/net/vhost == Build drivers/net/ifc == Build drivers/event == Build drivers/event/skeleton == Build drivers/event/sw == Build drivers/event/dsw == Build drivers/event/octeontx == Build drivers/event/dpaa == Build drivers/event/dpaa2 == Build drivers/event/opdl == Build drivers/raw == Build drivers/raw/skeleton_rawdev == Build drivers/raw/dpaa2_cmdif == Build drivers/raw/dpaa2_qdma == Build drivers/raw/ifpga_rawdev == Build app == Build app/test == Build app/test-pmd == Build app/proc-info == Build app/pdump == Build app/test-acl == Build app/test-cmdline == Build app/test-pipeline == Build app/test-bbdev == Build app/test-compress-perf == Build app/test-crypto-perf == Build app/test-eventdev Build complete [x86_64-native-linuxapp-gcc] make -C deps/http-parser library make[1]: Entering directory '/home/user/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/user/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 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/user/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/user/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 make: Nothing to be done for 'all'. -- Building Intel TBB: /usr/bin/make -j12 tbb_build_prefix=tbb_cmake_build_subdir tbb_build_dir=/home/user/MoonGen/build/libmoon/tbb_cmake_build compiler=gcc -- Configuring done -- Generating done -- Build files have been written to: /home/user/MoonGen/build [ 3%] Building C object libmoon/CMakeFiles/moon.dir/src/i40e.c.o [ 6%] Building C object libmoon/CMakeFiles/moon.dir/src/util.c.o [ 10%] Building C object libmoon/CMakeFiles/moon.dir/src/timestamping_i40e.c.o [ 13%] Building C object libmoon/CMakeFiles/moon.dir/src/device.c.o [ 17%] Building C object libmoon/CMakeFiles/moon.dir/src/kni.c.o /home/user/MoonGen/libmoon/src/util.c:11:10: error: redefinition of ‘rte_rdtsc’ uint64_t rte_rdtsc() { ^~~~~ In file included from /home/user/MoonGen/libmoon/deps/dpdk/x86_64-native-linuxapp-gcc/include/rte_spinlock.h:18, from /home/user/MoonGen/libmoon/deps/dpdk/x86_64-native-linuxapp-gcc/include/rte_mempool.h:44, from /home/user/MoonGen/libmoon/deps/dpdk/x86_64-native-linuxapp-gcc/include/rte_mbuf.h:38, from /home/user/MoonGen/libmoon/deps/dpdk/x86_64-native-linuxapp-gcc/include/rte_ip.h:22, from /home/user/MoonGen/libmoon/src/util.c:3: /home/user/MoonGen/libmoon/deps/dpdk/x86_64-native-linuxapp-gcc/include/rte_cycles.h:24:1: note: previous definition of ‘rte_rdtsc’ was here rte_rdtsc(void) ^~~~~ /home/user/MoonGen/libmoon/src/util.c:30:49: warning: ‘struct ipv4_hdr’ declared inside parameter list will not be visible outside of this definition or declaration static inline uint16_t get_ipv4_psd_sum (struct ipv4_hdr* ip_hdr) { ^~~~ /home/user/MoonGen/libmoon/src/util.c: In function ‘get_ipv4_psd_sum’: /home/user/MoonGen/libmoon/src/util.c:31:23: error: dereferencing pointer to incomplete type ‘struct ipv4_hdr’ uint16_t len = ip_hdr->total_length; ^~ In file included from /home/user/MoonGen/libmoon/deps/dpdk/x86_64-native-linuxapp-gcc/include/rte_ip.h:21, from /home/user/MoonGen/libmoon/src/util.c:3: /home/user/MoonGen/libmoon/src/util.c:38:58: error: invalid application of ‘sizeof’ to incomplete type ‘struct ipv4_hdr’ len = rte_bswap16((uint16_t)(rte_bswap16(len) - sizeof(struct ipv4_hdr))); ^~ /home/user/MoonGen/libmoon/deps/dpdk/x86_64-native-linuxapp-gcc/include/rte_byteorder.h:51:57: note: in definition of macro ‘rte_bswap16’

define rte_bswap16(x) ((uint16_t)(__builtin_constant_p(x) ? \

                                                     ^

/home/user/MoonGen/libmoon/src/util.c:38:58: error: invalid application of ‘sizeof’ to incomplete type ‘struct ipv4_hdr’ len = rte_bswap16((uint16_t)(rte_bswap16(len) - sizeof(struct ipv4_hdr))); ^~ /home/user/MoonGen/libmoon/deps/dpdk/x86_64-native-linuxapp-gcc/include/rte_byteorder.h:52:29: note: in definition of macro ‘rte_bswap16’ rte_constant_bswap16(x) : \ ^ /home/user/MoonGen/libmoon/src/util.c:38:58: error: invalid application of ‘sizeof’ to incomplete type ‘struct ipv4_hdr’ len = rte_bswap16((uint16_t)(rte_bswap16(len) - sizeof(struct ipv4_hdr))); ^~ /home/user/MoonGen/libmoon/deps/dpdk/x86_64-native-linuxapp-gcc/include/rte_byteorder.h:53:25: note: in definition of macro ‘rte_bswap16’ rte_arch_bswap16(x))) ^ /home/user/MoonGen/libmoon/src/util.c:41:30: error: invalid application of ‘sizeof’ to incomplete type ‘struct ipv4_hdr’ len = ((len >> 8) - sizeof(struct ipv4_hdr)) << 8; ^~ /home/user/MoonGen/libmoon/src/util.c: In function ‘calc_ipv4_pseudo_header_checksum’: /home/user/MoonGen/libmoon/src/util.c:58:35: warning: passing argument 1 of ‘get_ipv4_psd_sum’ from incompatible pointer type [-Wincompatible-pointer-types] uint16_t csum = get_ipv4_psd_sum((struct ipv4_hdr) ((uint8_t)data + 14)); ^~~~~~~~~~~~ /home/user/MoonGen/libmoon/src/util.c:30:59: note: expected ‘struct ipv4_hdr ’ but argument is of type ‘struct ipv4_hdr ’ static inline uint16_t get_ipv4_psd_sum (struct ipv4_hdr* ip_hdr) {


/home/user/MoonGen/libmoon/src/util.c: At top level:
/home/user/MoonGen/libmoon/src/util.c:89:49: warning: ‘struct ipv6_hdr’ declared inside parameter list will not be visible outside of this definition or declaration
 static inline uint16_t get_ipv6_psd_sum (struct ipv6_hdr * ip_hdr)
                                                 ^~~~~~~~
/home/user/MoonGen/libmoon/src/util.c: In function ‘get_ipv6_psd_sum’:
/home/user/MoonGen/libmoon/src/util.c:103:38: error: dereferencing pointer to incomplete type ‘struct ipv6_hdr’
  rte_memcpy(&psd_hdr.src_addr, ip_hdr->src_addr,
                                      ^~
/home/user/MoonGen/libmoon/src/util.c: In function ‘calc_ipv6_pseudo_header_checksum’:
/home/user/MoonGen/libmoon/src/util.c:114:35: warning: passing argument 1 of ‘get_ipv6_psd_sum’ from incompatible pointer type [-Wincompatible-pointer-types]
  uint16_t csum = get_ipv6_psd_sum((struct ipv6_hdr*) ((uint8_t*)data + 14));
                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/user/MoonGen/libmoon/src/util.c:89:60: note: expected ‘struct ipv6_hdr *’ but argument is of type ‘struct ipv6_hdr *’
 static inline uint16_t get_ipv6_psd_sum (struct ipv6_hdr * ip_hdr)
                                          ~~~~~~~~~~~~~~~~~~^~~~~~
make[2]: *** [libmoon/CMakeFiles/moon.dir/build.make:128: libmoon/CMakeFiles/moon.dir/src/util.c.o] Error 1
make[2]: *** Waiting for unfinished jobs....
/home/user/MoonGen/libmoon/src/device.c: In function ‘dpdk_configure_device’:
/home/user/MoonGen/libmoon/src/device.c:119:5: error: ‘struct rte_eth_rxmode’ has no member named ‘header_split’
    .header_split = 0,
     ^~~~~~~~~~~~
/home/user/MoonGen/libmoon/src/device.c:120:5: error: ‘struct rte_eth_rxmode’ has no member named ‘hw_ip_checksum’
    .hw_ip_checksum = !cfg->disable_offloads,
     ^~~~~~~~~~~~~~
/home/user/MoonGen/libmoon/src/device.c:120:22: warning: excess elements in struct initializer
    .hw_ip_checksum = !cfg->disable_offloads,
                      ^
/home/user/MoonGen/libmoon/src/device.c:120:22: note: (near initialization for ‘port_conf.rxmode’)
/home/user/MoonGen/libmoon/src/device.c:121:5: error: ‘struct rte_eth_rxmode’ has no member named ‘hw_vlan_filter’
    .hw_vlan_filter = 0,
     ^~~~~~~~~~~~~~
/home/user/MoonGen/libmoon/src/device.c:121:22: warning: excess elements in struct initializer
    .hw_vlan_filter = 0,
                      ^
/home/user/MoonGen/libmoon/src/device.c:121:22: note: (near initialization for ‘port_conf.rxmode’)
/home/user/MoonGen/libmoon/src/device.c:122:5: error: ‘struct rte_eth_rxmode’ has no member named ‘jumbo_frame’
    .jumbo_frame = 0,
     ^~~~~~~~~~~
/home/user/MoonGen/libmoon/src/device.c:122:19: warning: excess elements in struct initializer
    .jumbo_frame = 0,
                   ^
/home/user/MoonGen/libmoon/src/device.c:122:19: note: (near initialization for ‘port_conf.rxmode’)
/home/user/MoonGen/libmoon/src/device.c:123:5: error: ‘struct rte_eth_rxmode’ has no member named ‘hw_strip_crc’
    .hw_strip_crc = 1,
     ^~~~~~~~~~~~
/home/user/MoonGen/libmoon/src/device.c:123:20: warning: excess elements in struct initializer
    .hw_strip_crc = 1,
                    ^
/home/user/MoonGen/libmoon/src/device.c:123:20: note: (near initialization for ‘port_conf.rxmode’)
/home/user/MoonGen/libmoon/src/device.c:124:5: error: ‘struct rte_eth_rxmode’ has no member named ‘hw_vlan_strip’
    .hw_vlan_strip = cfg->strip_vlan ? 1 : 0,
     ^~~~~~~~~~~~~
/home/user/MoonGen/libmoon/src/device.c:124:21: warning: excess elements in struct initializer
    .hw_vlan_strip = cfg->strip_vlan ? 1 : 0,
                     ^~~
/home/user/MoonGen/libmoon/src/device.c:124:21: note: (near initialization for ‘port_conf.rxmode’)
/home/user/MoonGen/libmoon/src/device.c:146:4: error: ‘struct rte_eth_txconf’ has no member named ‘txq_flags’
   .txq_flags = ETH_TXQ_FLAGS_NOMULTSEGS | (cfg->disable_offloads ? ETH_TXQ_FLAGS_NOOFFLOADS : 0),
    ^~~~~~~~~
/home/user/MoonGen/libmoon/src/device.c:146:16: error: ‘ETH_TXQ_FLAGS_NOMULTSEGS’ undeclared (first use in this function); did you mean ‘RTE_CPUFLAG_NUMFLAGS’?
   .txq_flags = ETH_TXQ_FLAGS_NOMULTSEGS | (cfg->disable_offloads ? ETH_TXQ_FLAGS_NOOFFLOADS : 0),
                ^~~~~~~~~~~~~~~~~~~~~~~~
                RTE_CPUFLAG_NUMFLAGS
/home/user/MoonGen/libmoon/src/device.c:146:16: note: each undeclared identifier is reported only once for each function it appears in
/home/user/MoonGen/libmoon/src/device.c:146:68: error: ‘ETH_TXQ_FLAGS_NOOFFLOADS’ undeclared (first use in this function); did you mean ‘ETH_VLAN_FILTER_OFFLOAD’?
   .txq_flags = ETH_TXQ_FLAGS_NOMULTSEGS | (cfg->disable_offloads ? ETH_TXQ_FLAGS_NOOFFLOADS : 0),
                                                                    ^~~~~~~~~~~~~~~~~~~~~~~~
                                                                    ETH_VLAN_FILTER_OFFLOAD
/home/user/MoonGen/libmoon/src/device.c:172:14: error: ‘struct rte_eth_dev_info’ has no member named ‘pci_dev’
  if (dev_info.pci_dev) {
              ^
/home/user/MoonGen/libmoon/src/device.c:173:45: error: ‘struct rte_eth_dev_info’ has no member named ‘pci_dev’
   registers[cfg->port] = (uint8_t*) dev_info.pci_dev->mem_resource[0].addr;
                                             ^
/home/user/MoonGen/libmoon/src/device.c: In function ‘dpdk_get_pci_function’:
/home/user/MoonGen/libmoon/src/device.c:187:14: error: ‘struct rte_eth_dev_info’ has no member named ‘pci_dev’
  if (dev_info.pci_dev) {
              ^
/home/user/MoonGen/libmoon/src/device.c:188:18: error: ‘struct rte_eth_dev_info’ has no member named ‘pci_dev’
   return dev_info.pci_dev->addr.function;
                  ^
/home/user/MoonGen/libmoon/src/device.c: In function ‘dpdk_get_mac_addr’:
/home/user/MoonGen/libmoon/src/device.c:201:20: error: storage size of ‘addr’ isn’t known
  struct ether_addr addr;
                    ^~~~
/home/user/MoonGen/libmoon/src/device.c:201:20: warning: unused variable ‘addr’ [-Wunused-variable]
/home/user/MoonGen/libmoon/src/device.c: In function ‘dpdk_get_pci_id’:
/home/user/MoonGen/libmoon/src/device.c:212:15: error: ‘struct rte_eth_dev_info’ has no member named ‘pci_dev’
  if (!dev_info.pci_dev) {
               ^
/home/user/MoonGen/libmoon/src/device.c:215:17: error: ‘struct rte_eth_dev_info’ has no member named ‘pci_dev’
  return dev_info.pci_dev->id.vendor_id << 16 | dev_info.pci_dev->id.device_id;
                 ^
/home/user/MoonGen/libmoon/src/device.c:215:56: error: ‘struct rte_eth_dev_info’ has no member named ‘pci_dev’
  return dev_info.pci_dev->id.vendor_id << 16 | dev_info.pci_dev->id.device_id;
                                                        ^
/home/user/MoonGen/libmoon/src/device.c: In function ‘dpdk_get_socket’:
/home/user/MoonGen/libmoon/src/device.c:221:15: error: ‘struct rte_eth_dev_info’ has no member named ‘pci_dev’
  if (!dev_info.pci_dev) {
               ^
/home/user/MoonGen/libmoon/src/device.c:224:21: error: ‘struct rte_eth_dev_info’ has no member named ‘pci_dev’
  int node = dev_info.pci_dev->device.numa_node;
                     ^
/home/user/MoonGen/libmoon/src/kni.c: In function ‘mg_create_kni’:
/home/user/MoonGen/libmoon/src/kni.c:45:23: error: ‘struct rte_eth_dev_info’ has no member named ‘pci_dev’
   conf.addr = dev_info.pci_dev->addr;
                       ^
/home/user/MoonGen/libmoon/src/kni.c:47:21: error: ‘struct rte_eth_dev_info’ has no member named ‘pci_dev’
   conf.id = dev_info.pci_dev->id;
                     ^
/home/user/MoonGen/libmoon/src/kni.c:56:18: warning: assignment to ‘int (*)(uint16_t,  unsigned int)’ {aka ‘int (*)(short unsigned int,  unsigned int)’} from incompatible pointer type ‘int (*)(uint8_t,  unsigned int)’ {aka ‘int (*)(unsigned char,  unsigned int)’} [-Wincompatible-pointer-types]
   ops.change_mtu = kni_change_mtu;
                  ^
/home/user/MoonGen/libmoon/src/kni.c:58:25: warning: assignment to ‘int (*)(uint16_t,  uint8_t)’ {aka ‘int (*)(short unsigned int,  unsigned char)’} from incompatible pointer type ‘int (*)(uint8_t,  uint8_t)’ {aka ‘int (*)(unsigned char,  unsigned char)’} [-Wincompatible-pointer-types]
   ops.config_network_if = kni_config_network_interface;
                         ^
In file included from /home/user/MoonGen/libmoon/src/i40e.c:11:
/home/user/MoonGen/libmoon/deps/dpdk/drivers/net/i40e/i40e_ethdev.h:896:42: error: ‘I40E_PFQF_HKEY_MAX_INDEX’ undeclared here (not in a function); did you mean ‘I40E_VFQF_HKEY_MAX_INDEX’?
  uint8_t key[(I40E_VFQF_HKEY_MAX_INDEX > I40E_PFQF_HKEY_MAX_INDEX ?
                                          ^~~~~~~~~~~~~~~~~~~~~~~~
                                          I40E_VFQF_HKEY_MAX_INDEX
/home/user/MoonGen/libmoon/src/device.c: In function ‘dpdk_get_pci_function’:
/home/user/MoonGen/libmoon/src/device.c:192:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^
/home/user/MoonGen/libmoon/src/device.c: In function ‘dpdk_get_mac_addr’:
/home/user/MoonGen/libmoon/src/device.c:207:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^
/home/user/MoonGen/libmoon/src/device.c: In function ‘dpdk_get_pci_id’:
/home/user/MoonGen/libmoon/src/device.c:216:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^
make[2]: *** [libmoon/CMakeFiles/moon.dir/build.make:232: libmoon/CMakeFiles/moon.dir/src/kni.c.o] Error 1
make[2]: *** [libmoon/CMakeFiles/moon.dir/build.make:115: libmoon/CMakeFiles/moon.dir/src/i40e.c.o] Error 1
make[2]: *** [libmoon/CMakeFiles/moon.dir/build.make:102: libmoon/CMakeFiles/moon.dir/src/device.c.o] Error 1
In file included from /home/user/MoonGen/libmoon/src/timestamping_i40e.c:14:
/home/user/MoonGen/libmoon/deps/dpdk/drivers/net/i40e/i40e_ethdev.h:896:42: error: ‘I40E_PFQF_HKEY_MAX_INDEX’ undeclared here (not in a function); did you mean ‘I40E_VFQF_HKEY_MAX_INDEX’?
  uint8_t key[(I40E_VFQF_HKEY_MAX_INDEX > I40E_PFQF_HKEY_MAX_INDEX ?
                                          ^~~~~~~~~~~~~~~~~~~~~~~~
                                          I40E_VFQF_HKEY_MAX_INDEX
make[2]: *** [libmoon/CMakeFiles/moon.dir/build.make:284: libmoon/CMakeFiles/moon.dir/src/timestamping_i40e.c.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:128: libmoon/CMakeFiles/moon.dir/all] Error 2
make: *** [Makefile:84: all] Error 2
Trying to bind interfaces, this will fail if you are not root
Try sudo ./bind-interfaces.sh if this step fails
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.