aboutsummaryrefslogtreecommitdiffstats
path: root/dpdk-tests/dpdk_scripts
diff options
context:
space:
mode:
authorFangyin Hu <fangyinx.hu@intel.com>2016-11-25 03:52:22 -0800
committerPeter Mikus <pmikus@cisco.com>2017-01-11 13:21:52 +0000
commitb633f4ebf7878ae968e27b71da69b6cde0265904 (patch)
treec7b8949f4fe5e56ae15e177afd0b2051266ba881 /dpdk-tests/dpdk_scripts
parent6858eef6792e7fae60c7fe2587721e2873bd5fc3 (diff)
Add the DPDK l2fwd performance test cases.
Change-Id: I996847a4871ed994cd9b5edb459fb079ff39c86d Signed-off-by: Fangyin Hu <fangyinx.hu@intel.com>
Diffstat (limited to 'dpdk-tests/dpdk_scripts')
-rwxr-xr-xdpdk-tests/dpdk_scripts/cleanup_dpdk.sh39
-rwxr-xr-xdpdk-tests/dpdk_scripts/init_dpdk.sh17
-rwxr-xr-xdpdk-tests/dpdk_scripts/install_dpdk.sh49
-rwxr-xr-xdpdk-tests/dpdk_scripts/run_l2fwd.sh48
4 files changed, 153 insertions, 0 deletions
diff --git a/dpdk-tests/dpdk_scripts/cleanup_dpdk.sh b/dpdk-tests/dpdk_scripts/cleanup_dpdk.sh
new file mode 100755
index 0000000000..8ab9c6f676
--- /dev/null
+++ b/dpdk-tests/dpdk_scripts/cleanup_dpdk.sh
@@ -0,0 +1,39 @@
+#!/bin/bash
+
+ROOTDIR=/tmp/openvpp-testing
+PWDDIR=$(pwd)
+
+TESTPMD_LOG=/tmp/testpmd.log
+TESTPMD_PID=/tmp/testpmd.pid
+
+port1_driver=$1
+port1_pci=$2
+port2_driver=$3
+port2_pci=$4
+
+#kill the dpdk application
+sudo pkill testpmd
+sudo pkill l2fwd
+sudo pkill l3fwd
+sudo rm -f ${TESTPMD_PID}
+sudo rm -f /dev/hugepages/*
+cat ${TESTPMD_LOG}
+
+sleep 2
+
+cd ${ROOTDIR}/dpdk-16.07/
+./tools/dpdk-devbind.py -b ${port1_driver} ${port1_pci}
+./tools/dpdk-devbind.py -b ${port2_driver} ${port2_pci}
+
+sleep 2
+
+if1_name=`./tools/dpdk-devbind.py --s | grep "${port1_pci}" | sed -n 's/.*if=\(\S\)/\1/p' | awk -F' ' '{print $1}'`
+if2_name=`./tools/dpdk-devbind.py --s | grep "${port2_pci}" | sed -n 's/.*if=\(\S\)/\1/p' | awk -F' ' '{print $1}'`
+
+ifconfig ${if1_name} up
+ifconfig ${if2_name} up
+
+rmmod igb_uio
+rmmod uio
+
+cd ${PWDDIR}
diff --git a/dpdk-tests/dpdk_scripts/init_dpdk.sh b/dpdk-tests/dpdk_scripts/init_dpdk.sh
new file mode 100755
index 0000000000..b0bd426021
--- /dev/null
+++ b/dpdk-tests/dpdk_scripts/init_dpdk.sh
@@ -0,0 +1,17 @@
+#!/bin/bash
+
+ROOTDIR=/tmp/openvpp-testing
+PWDDIR=$(pwd)
+
+cd ${ROOTDIR}/dpdk-16.07/
+modprobe uio
+lsmod | grep igb_uio
+if [ $? -eq 1 ];
+then
+ insmod ./x86_64-native-linuxapp-gcc/kmod/igb_uio.ko || exit 1
+else
+ rmmod igb_uio
+ insmod ./x86_64-native-linuxapp-gcc/kmod/igb_uio.ko || exit 1
+fi
+./tools/dpdk-devbind.py -b igb_uio $1 $2
+cd ${PWDDIR}
diff --git a/dpdk-tests/dpdk_scripts/install_dpdk.sh b/dpdk-tests/dpdk_scripts/install_dpdk.sh
new file mode 100755
index 0000000000..99fa957d59
--- /dev/null
+++ b/dpdk-tests/dpdk_scripts/install_dpdk.sh
@@ -0,0 +1,49 @@
+#!/bin/bash
+
+DPDK_VERSION=16.07
+DPDK_DIR=dpdk-${DPDK_VERSION}
+DPDK_PACKAGE=${DPDK_DIR}.tar.xz
+
+ROOTDIR=/tmp/openvpp-testing
+PWDDIR=$(pwd)
+
+#download the DPDK package
+#compile and install the DPDK
+cd ${ROOTDIR}
+wget -q "fast.dpdk.org/rel/${DPDK_PACKAGE}" || exit 1
+tar xJf ${DPDK_PACKAGE}
+cd ./${DPDK_DIR}
+make install T=x86_64-native-linuxapp-gcc -j || exit 1
+cd ${PWDDIR}
+
+#compile the l3fwd
+export RTE_SDK=${ROOTDIR}/${DPDK_DIR}/
+export RTE_TARGET=x86_64-native-linuxapp-gcc
+cd ${RTE_SDK}/examples/l3fwd
+make -j || exit 1
+cd ${PWDDIR}
+
+#check and setup the hugepages
+SYS_HUGEPAGE=$(cat /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages)
+if [ ${SYS_HUGEPAGE} -lt 4096 ]; then
+ MOUNT=$(mount | grep /mnt/huge)
+ while [ "${MOUNT}" != "" ]
+ do
+ sudo umount /mnt/huge
+ sleep 1
+ MOUNT=$(mount | grep /mnt/huge)
+ done
+
+ echo 2048 | sudo tee /sys/devices/system/node/node0/hugepages/hugepages-2048kB/nr_hugepages
+ echo 2048 | sudo tee /sys/devices/system/node/node1/hugepages/hugepages-2048kB/nr_hugepages
+
+ sudo mkdir -p /mnt/huge
+ sudo mount -t hugetlbfs nodev /mnt/huge/
+ test $? -eq 0 || exit 1
+fi
+
+#check and set the max map count
+SYS_MAP=$(cat /proc/sys/vm/max_map_count)
+if [ ${SYS_MAP} -lt 200000 ]; then
+ echo 200000 | sudo tee /proc/sys/vm/max_map_count
+fi
diff --git a/dpdk-tests/dpdk_scripts/run_l2fwd.sh b/dpdk-tests/dpdk_scripts/run_l2fwd.sh
new file mode 100755
index 0000000000..6df33a1317
--- /dev/null
+++ b/dpdk-tests/dpdk_scripts/run_l2fwd.sh
@@ -0,0 +1,48 @@
+#!/bin/bash
+
+ROOTDIR=/tmp/openvpp-testing
+PWDDIR=$(pwd)
+
+TESTPMD_LOG=/tmp/testpmd.log
+TESTPMD_PID=/tmp/testpmd.pid
+
+cpu_coremask=$1
+nb_cores=$2
+queue_nums=$3
+jumbo_frames=$4
+
+#kill the testpmd
+sudo pkill testpmd
+sudo rm -f ${TESTPMD_PID}
+
+sleep 2
+
+pid=`pgrep testpmd`
+if [ "$pid" != "" ]; then
+ echo "terminate the testpmd failed!"
+ exit 1
+fi
+
+#run the testpmd
+cd ${ROOTDIR}
+if [ "$jumbo_frames" = "yes" ]; then
+#sudo sh -c "screen -dmS DPDK-test ./dpdk-16.07/x86_64-native-linuxapp-gcc/app/testpmd -c ${cpu_coremask} \
+# -n 4 -- --nb-ports=2 --portmask=0x3 --nb-cores=${nb_cores} \
+# --max-pkt-len=9000 --txqflags=0 --forward-mode=io --rxq=${queue_nums} \
+# --txq=${queue_nums} --auto-start"
+tail -f /dev/null | nohup ./dpdk-16.07/x86_64-native-linuxapp-gcc/app/testpmd -c ${cpu_coremask} \
+ -n 4 -- --nb-ports=2 --portmask=0x3 --nb-cores=${nb_cores} \
+ --max-pkt-len=9000 --txqflags=0 --forward-mode=io --rxq=${queue_nums} \
+ --txq=${queue_nums} --auto-start > ${TESTPMD_LOG} 2>&1 &
+echo $! > ${TESTPMD_PID}
+else
+#sudo sh -c "screen -dmS DPDK-test ./dpdk-16.07/x86_64-native-linuxapp-gcc/app/testpmd -c ${cpu_coremask} \
+# -n 4 -- --nb-ports=2 --portmask=0x3 --nb-cores=${nb_cores} \
+# --forward-mode=io --rxq=${queue_nums} --txq=${queue_nums} --auto-start"
+tail -f /dev/null | nohup ./dpdk-16.07/x86_64-native-linuxapp-gcc/app/testpmd -c ${cpu_coremask} \
+ -n 4 -- --nb-ports=2 --portmask=0x3 --nb-cores=${nb_cores} \
+ --forward-mode=io --rxq=${queue_nums} --txq=${queue_nums} --auto-start > ${TESTPMD_LOG} 2>&1 &
+echo $! > ${TESTPMD_PID}
+fi
+
+cd ${PWDDIR}