Closed markc0303 closed 7 years ago
Hi mark! You must use DPDK 1.8 (you can download it from here: http://dpdk.org/browse/dpdk/snapshot/dpdk-1.8.0.tar.gz).
Hi sir,
i reinstall dpdk-1.8.0 and install dpdk-replay as well.
but another error comes, when i enter " sudo ./build/dpdk-replay -c 0X3 -n 2 -- -f /home/mark/DPDK-Replay/tmp_PCAP/fake.pcap" command, i got "EAL: Error - exiting with code: 1".
can you kindly advise!! thanks mark
error log below:
mark@Dell-T110:~/DPDK-Replay$ ./install-dpdk.sh [sudo] password for mark:
0000:01:00.0 '82599ES 10-Gigabit SFI/SFP+ Network Connection' drv=igb_uio unused= 0000:01:00.1 '82599ES 10-Gigabit SFI/SFP+ Network Connection' drv=igb_uio unused=
0000:02:00.0 '82571EB Gigabit Ethernet Controller' if=p1p1 drv=e1000e unused=igb_uio 0000:02:00.1 '82571EB Gigabit Ethernet Controller' if=p1p2 drv=e1000e unused=igb_uio 0000:03:00.0 '82571EB Gigabit Ethernet Controller' if=p3p1 drv=e1000e unused=igb_uio 0000:03:00.1 '82571EB Gigabit Ethernet Controller' if=p3p2 drv=e1000e unused=igb_uio 0000:04:00.0 'NetXtreme BCM5722 Gigabit Ethernet PCI Express' if=em1 drv=tg3 unused=igb_uio 0000:05:00.0 '82574L Gigabit Network Connection' if=p4p1 drv=e1000e unused=igb_uio Active
To have best performance, the default buffer size is 2GB. If you don't have enough RAM or you didn't allocate enough hugepages, the program will not execute. To solve this there are two ways:
adjust huge pages size to 4096, and works well. :)
one more question, can i play pcap repeatedly? i tried -t or -T options, doesn't work.
Thanks mark
Currently it is not possible. the "-t" option is to repeat each packet inside a trace multiple times. It could be one of the future features ;)
hi,
i'm trying to install dpdk-replay in ubuntu 14.0.4 (3.16.0-49-generic), i following steps, but got error when enter "make" command.
can you please kindly tell? log below.
BR,
Mark
mark@Dell-T110:~/DPDK-Replay$ more complie.sh
!/bin/sh
export RTE_SDK=${HOME}/handson/dpdk-2.0.0 export RTE_TARGET=x86_64-native-linuxapp-gcc make
mark@Dell-T110:~/DPDK-Replay$ vim complie.sh mark@Dell-T110:~/DPDK-Replay$ ./complie.sh CC src/main_replay_copy_2_cores.o In file included from /home/mark/DPDK-Replay/src/main_replay_copy_2_cores.c:17:0: /home/mark/DPDK-Replay/src/main.h:113:15: error: ‘ETH_RSS_IPV4_TCP’ undeclared here (not in a function) .rss_hf = (ETH_RSS_IPV4_TCP | ETH_RSSUDP) , /* Set the mask of protocols RSS will be applied to / ^ In file included from /home/mark/DPDK-Replay/src/main_replay_copy_2_cores.c:17:0: /home/mark/DPDK-Replay/src/main_replay_copy_2_cores.c: In function ‘main’: /home/mark/DPDK-Replay/src/main_replay_copy_2_cores.c:93:225: error: ‘E_RTE_NO_TAILQ’ undeclared (first use in this function) if (pktmbuf_pool == NULL) FATAL_ERROR("Cannot create cluster_mem_pool. Errno: %d [ENOMEM: %d, ENOSPC: %d, E_RTE_NO_TAILQ: %d, E_RTE_NO_CONFIG: %d, E_RTE_SECONDARY: %d, EINVAL: %d, EEXIST: %d]\n", rte_errno, ENOMEM, ENOSPC, E_RTE_NO_TAILQ, E_RTE_NO_CONFIG, E_RTE_SECONDARY, EINVAL, EEXIST ); ^ /home/mark/DPDK-Replay/src/main.h:64:76: note: in definition of macro ‘FATAL_ERROR’
define FATAL_ERROR(fmt, args...) rte_exit(EXIT_FAILURE, fmt "\n", ##args)
/home/mark/DPDK-Replay/src/main_replay_copy_2_cores.c:93:225: note: each undeclared identifier is reported only once for each function it appears in if (pktmbuf_pool == NULL) FATAL_ERROR("Cannot create cluster_mem_pool. Errno: %d [ENOMEM: %d, ENOSPC: %d, E_RTE_NO_TAILQ: %d, E_RTE_NO_CONFIG: %d, E_RTE_SECONDARY: %d, EINVAL: %d, EEXIST: %d]\n", rte_errno, ENOMEM, ENOSPC, E_RTE_NO_TAILQ, E_RTE_NO_CONFIG, E_RTE_SECONDARY, EINVAL, EEXIST ); ^ /home/mark/DPDK-Replay/src/main.h:64:76: note: in definition of macro ‘FATAL_ERROR’
define FATAL_ERROR(fmt, args...) rte_exit(EXIT_FAILURE, fmt "\n", ##args)
/home/mark/DPDK-Replay/src/main_replay_copy_2_cores.c: In function ‘print_stats’: /home/mark/DPDK-Replay/src/main_replay_copy_2_cores.c:315:2: warning: too many arguments for format [-Wformat-extra-args] printf("Packets read speed: %8.3fus\n", (double)avg/nb/rte_get_timer_hz()_1000000, max); ^ make[1]: * [src/main_replay_copy_2_cores.o] Error 1 make: * [all] Error 2