Skip to content

Traffic generation

valebru edited this page Jun 8, 2018 · 3 revisions

We used two traffic generators:

  • Dpdk pktgen
  • MoonGen

DPDK pktgen

The majority of the lua scripts in vpp-bench are meant to be used with DPDK pktgen, except where specified differently.

MoonGen

In addition to DPDK pktgen, MoonGen allows us to perform some advanced measurements such as latency, and some interesting traffic setup such as Poisson arrivals.


To setup DPDK in your environment

cd $RTE_SDK/usertools
./dpdk-setup.sh

------------------------------------------------------------------------------
 RTE_SDK exported as /tmp/dpdk/dpdk-17.02
------------------------------------------------------------------------------
----------------------------------------------------------
 Step 1: Select the DPDK environment to build
----------------------------------------------------------
[1] arm64-armv8a-linuxapp-gcc
[2] arm64-dpaa2-linuxapp-gcc
[3] arm64-thunderx-linuxapp-gcc
[4] arm64-xgene1-linuxapp-gcc
[5] arm-armv7a-linuxapp-gcc
[6] i686-native-linuxapp-gcc
[7] i686-native-linuxapp-icc
[8] ppc_64-power8-linuxapp-gcc
[9] tile-tilegx-linuxapp-gcc
[10] x86_64-native-bsdapp-clang
[11] x86_64-native-bsdapp-gcc
[12] x86_64-native-linuxapp-clang
[13] x86_64-native-linuxapp-gcc
[14] x86_64-native-linuxapp-icc
[15] x86_x32-native-linuxapp-gcc

----------------------------------------------------------
 Step 2: Setup linuxapp environment
----------------------------------------------------------
[16] Insert IGB UIO module
[17] Insert VFIO module
[18] Insert KNI module
[19] Setup hugepage mappings for non-NUMA systems
[20] Setup hugepage mappings for NUMA systems
[21] Display current Ethernet/Crypto device settings
[22] Bind Ethernet/Crypto device to IGB UIO module
[23] Bind Ethernet/Crypto device to VFIO module
[24] Setup VFIO permissions

----------------------------------------------------------
 Step 3: Run test application for linuxapp environment
----------------------------------------------------------
[25] Run test application ($RTE_TARGET/app/test)
[26] Run testpmd application in interactive mode ($RTE_TARGET/app/testpmd)

----------------------------------------------------------
 Step 4: Other tools
----------------------------------------------------------
[27] List hugepage info from /proc/meminfo

----------------------------------------------------------
 Step 5: Uninstall and system cleanup
----------------------------------------------------------
[28] Unbind devices from IGB UIO or VFIO driver
[29] Remove IGB UIO module
[30] Remove VFIO module
[31] Remove KNI module
[32] Remove hugepage mappings

[33] Exit Script

Option:

thus, you should run these three options in this order:

  1. (if it is the first time) [13] x86_64-native-linuxapp-gcc
  2. [28] Unbind devices from IGB UIO or VFIO driver
  3. [16] Insert IGB UIO module
  4. [22] Bind Ethernet/Crypto device to IGB UIO module
Clone this wiki locally