CSIT-517: DPDK initialization and teardown
[csit.git] / dpdk-tests / dpdk_scripts / cleanup_dpdk.sh
1 #!/bin/bash
2
3 ROOTDIR=/tmp/openvpp-testing
4 PWDDIR=$(pwd)
5
6 TESTPMD_LOG=/tmp/testpmd.log
7 TESTPMD_PID=/tmp/testpmd.pid
8
9 port1_driver=$1
10 port1_pci=$2
11 port2_driver=$3
12 port2_pci=$4
13
14 #kill the dpdk application
15 sudo pgrep testpmd
16 if [ $? -eq "0" ]; then
17     success=false
18     sudo pkill testpmd
19     for attempt in {1..5}; do
20         sudo pgrep testpmd
21         if [ $? -eq "1" ]; then
22             success=true
23             break
24         fi
25         sleep 1
26     done
27     if [ ${success} -eq false ]; then
28         echo "The command sudo pkill testpmd failed"
29         exit 1
30     fi
31 fi
32
33 sudo rm -f ${TESTPMD_PID}
34 sudo rm -f /dev/hugepages/*
35 cat ${TESTPMD_LOG}
36
37 cd ${ROOTDIR}/dpdk-16.07/
38 ./tools/dpdk-devbind.py -b ${port1_driver} ${port1_pci}
39 ./tools/dpdk-devbind.py -b ${port2_driver} ${port2_pci}
40
41 sleep 2
42
43 if1_name=`./tools/dpdk-devbind.py --s | grep "${port1_pci}" | sed -n 's/.*if=\(\S\)/\1/p' | awk -F' ' '{print $1}'`
44 if2_name=`./tools/dpdk-devbind.py --s | grep "${port2_pci}" | sed -n 's/.*if=\(\S\)/\1/p' | awk -F' ' '{print $1}'`
45
46 ifconfig ${if1_name} up
47 ifconfig ${if2_name} up
48
49 rmmod igb_uio
50 rmmod uio
51
52 cd ${PWDDIR}