CSIT-517: DPDK initialization and teardown 13/5013/5
authorTibor Frank <tifrank@cisco.com>
Fri, 3 Feb 2017 10:26:37 +0000 (11:26 +0100)
committerPeter Mikus <pmikus@cisco.com>
Tue, 7 Feb 2017 09:18:18 +0000 (09:18 +0000)
Change-Id: Iff42549e3be610c88b7a7d5518ef2cbb88c75ed2
Signed-off-by: Tibor Frank <tifrank@cisco.com>
dpdk-tests/dpdk_scripts/cleanup_dpdk.sh
dpdk-tests/dpdk_scripts/run_l2fwd.sh
dpdk-tests/perf/40ge2p1xl710-eth-l2xcbase-ndrdisc.robot [moved from dpdk-tests/perf/40ge2p1x1710-eth-l2xcbase-ndrdisc.robot with 98% similarity]
resources/libraries/python/DPDK/DPDKTools.py

index 8ab9c6f..915d383 100755 (executable)
@@ -12,15 +12,28 @@ port2_driver=$3
 port2_pci=$4
 
 #kill the dpdk application
 port2_pci=$4
 
 #kill the dpdk application
-sudo pkill testpmd
-sudo pkill l2fwd
-sudo pkill l3fwd
+sudo pgrep testpmd
+if [ $? -eq "0" ]; then
+    success=false
+    sudo pkill testpmd
+    for attempt in {1..5}; do
+        sudo pgrep testpmd
+        if [ $? -eq "1" ]; then
+            success=true
+            break
+        fi
+        sleep 1
+    done
+    if [ ${success} -eq false ]; then
+        echo "The command sudo pkill testpmd failed"
+        exit 1
+    fi
+fi
+
 sudo rm -f ${TESTPMD_PID}
 sudo rm -f /dev/hugepages/*
 cat ${TESTPMD_LOG}
 
 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}
 cd ${ROOTDIR}/dpdk-16.07/
 ./tools/dpdk-devbind.py -b ${port1_driver} ${port1_pci}
 ./tools/dpdk-devbind.py -b ${port2_driver} ${port2_pci}
index 6df33a1..dedabe1 100755 (executable)
@@ -12,17 +12,26 @@ queue_nums=$3
 jumbo_frames=$4
 
 #kill the testpmd
 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
+sudo pgrep testpmd
+if [ $? -eq "0" ]; then
+    success=false
+    sudo pkill testpmd
+    for attempt in {1..5}; do
+        sudo pgrep testpmd
+        if [ $? -eq "1" ]; then
+            success=true
+            break
+        fi
+        sleep 1
+    done
+    if [ ${success} -eq false ]; then
+        echo "The command sudo pkill testpmd failed"
+        exit 1
+    fi
 fi
 
 fi
 
+sudo rm -f ${TESTPMD_PID}
+
 #run the testpmd
 cd ${ROOTDIR}
 if [ "$jumbo_frames" = "yes" ]; then
 #run the testpmd
 cd ${ROOTDIR}
 if [ "$jumbo_frames" = "yes" ]; then
@@ -56,7 +56,7 @@
 | | [Documentation]
 | | ... | [Cfg] DUT runs L2 frame forwarding config with 1 thread, 1 phy core,\
 | | ... | 1 receive queue per NIC port.
 | | [Documentation]
 | | ... | [Cfg] DUT runs L2 frame forwarding config with 1 thread, 1 phy core,\
 | | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
+| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 40GE\
 | | ... | linerate, step 100kpps.
 | | ...
 | | [Tags] | 1T1C | STHREAD | NDRDISC
 | | ... | linerate, step 100kpps.
 | | ...
 | | [Tags] | 1T1C | STHREAD | NDRDISC
@@ -76,7 +76,7 @@
 | | [Documentation]
 | | ... | [Cfg] DUT runs L2 frame forwarding config with 1 thread, 1 phy core,\
 | | ... | 1 receive queue per NIC port.
 | | [Documentation]
 | | ... | [Cfg] DUT runs L2 frame forwarding config with 1 thread, 1 phy core,\
 | | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
+| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 40GE\
 | | ... | linerate, step 100kpps, LT=0.5%.
 | | ...
 | | [Tags] | 1T1C | STHREAD | PDRDISC | SKIP_PATCH
 | | ... | linerate, step 100kpps, LT=0.5%.
 | | ...
 | | [Tags] | 1T1C | STHREAD | PDRDISC | SKIP_PATCH
@@ -96,7 +96,7 @@
 | | [Documentation]
 | | ... | [Cfg] DUT runs L2 frame forwarding config with 1 thread, 1 phy core,\
 | | ... | 1 receive queue per NIC port.
 | | [Documentation]
 | | ... | [Cfg] DUT runs L2 frame forwarding config with 1 thread, 1 phy core,\
 | | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
+| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 40GE\
 | | ... | linerate, step 10kpps.
 | | ...
 | | [Tags] | 1T1C | STHREAD | NDRDISC
 | | ... | linerate, step 10kpps.
 | | ...
 | | [Tags] | 1T1C | STHREAD | NDRDISC
 | | [Documentation]
 | | ... | [Cfg] DUT runs L2 frame forwarding config with 1 thread, 1 phy core,\
 | | ... | 1 receive queue per NIC port.
 | | [Documentation]
 | | ... | [Cfg] DUT runs L2 frame forwarding config with 1 thread, 1 phy core,\
 | | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
+| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 40GE\
 | | ... | linerate, step 10kpps, LT=0.5%.
 | | ...
 | | [Tags] | 1T1C | STHREAD | PDRDISC | SKIP_PATCH
 | | ... | linerate, step 10kpps, LT=0.5%.
 | | ...
 | | [Tags] | 1T1C | STHREAD | PDRDISC | SKIP_PATCH
 | | [Documentation]
 | | ... | [Cfg] DUT runs L2 frame forwarding config with 1 thread, 1 phy core,\
 | | ... | 1 receive queue per NIC port.
 | | [Documentation]
 | | ... | [Cfg] DUT runs L2 frame forwarding config with 1 thread, 1 phy core,\
 | | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 9000 Byte frames using binary search start at 10GE\
+| | ... | [Ver] Find NDR for 9000 Byte frames using binary search start at 40GE\
 | | ... | linerate, step 10kpps.
 | | ...
 | | [Tags] | 1T1C | STHREAD | NDRDISC
 | | ... | linerate, step 10kpps.
 | | ...
 | | [Tags] | 1T1C | STHREAD | NDRDISC
 | | [Documentation]
 | | ... | [Cfg] DUT runs L2 frame forwarding config with 1 thread, 1 phy core,\
 | | ... | 1 receive queue per NIC port.
 | | [Documentation]
 | | ... | [Cfg] DUT runs L2 frame forwarding config with 1 thread, 1 phy core,\
 | | ... | 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 9000 Byte frames using binary search start at 10GE\
+| | ... | [Ver] Find PDR for 9000 Byte frames using binary search start at 40GE\
 | | ... | linerate, step 10kpps, LT=0.5%.
 | | ...
 | | [Tags] | 1T1C | STHREAD | PDRDISC | SKIP_PATCH
 | | ... | linerate, step 10kpps, LT=0.5%.
 | | ...
 | | [Tags] | 1T1C | STHREAD | PDRDISC | SKIP_PATCH
 | | [Documentation]
 | | ... | [Cfg] DUT runs L2 frame forwarding config with 2 threads, 2 phy\
 | | ... | cores, 1 receive queue per NIC port.
 | | [Documentation]
 | | ... | [Cfg] DUT runs L2 frame forwarding config with 2 threads, 2 phy\
 | | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
+| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 40GE\
 | | ... | linerate, step 100kpps.
 | | ...
 | | [Tags] | 2T2C | MTHREAD | NDRDISC
 | | ... | linerate, step 100kpps.
 | | ...
 | | [Tags] | 2T2C | MTHREAD | NDRDISC
 | | [Documentation]
 | | ... | [Cfg] DUT runs L2 frame forwarding config with 2 threads, 2 phy\
 | | ... | cores, 1 receive queue per NIC port.
 | | [Documentation]
 | | ... | [Cfg] DUT runs L2 frame forwarding config with 2 threads, 2 phy\
 | | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
+| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 40GE\
 | | ... | linerate, step 100kpps, LT=0.5%.
 | | ...
 | | [Tags] | 2T2C | MTHREAD | PDRDISC | SKIP_PATCH
 | | ... | linerate, step 100kpps, LT=0.5%.
 | | ...
 | | [Tags] | 2T2C | MTHREAD | PDRDISC | SKIP_PATCH
 | | [Documentation]
 | | ... | [Cfg] DUT runs L2 frame forwarding config with 2 threads, 2 phy\
 | | ... | cores, 1 receive queue per NIC port.
 | | [Documentation]
 | | ... | [Cfg] DUT runs L2 frame forwarding config with 2 threads, 2 phy\
 | | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
+| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 40GE\
 | | ... | linerate, step 10kpps.
 | | ...
 | | [Tags] | 2T2C | MTHREAD | NDRDISC | SKIP_PATCH
 | | ... | linerate, step 10kpps.
 | | ...
 | | [Tags] | 2T2C | MTHREAD | NDRDISC | SKIP_PATCH
 | | [Documentation]
 | | ... | [Cfg] DUT runs L2 frame forwarding config with 2 threads, 2 phy\
 | | ... | cores, 1 receive queue per NIC port.
 | | [Documentation]
 | | ... | [Cfg] DUT runs L2 frame forwarding config with 2 threads, 2 phy\
 | | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
+| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 40GE\
 | | ... | linerate, step 10kpps, LT=0.5%.
 | | ...
 | | [Tags] | 2T2C | MTHREAD | PDRDISC | SKIP_PATCH
 | | ... | linerate, step 10kpps, LT=0.5%.
 | | ...
 | | [Tags] | 2T2C | MTHREAD | PDRDISC | SKIP_PATCH
 | | [Documentation]
 | | ... | [Cfg] DUT runs L2 frame forwarding config with 2 threads, 2 phy\
 | | ... | cores, 1 receive queue per NIC port.
 | | [Documentation]
 | | ... | [Cfg] DUT runs L2 frame forwarding config with 2 threads, 2 phy\
 | | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find NDR for 9000 Byte frames using binary search start at 10GE\
+| | ... | [Ver] Find NDR for 9000 Byte frames using binary search start at 40GE\
 | | ... | linerate, step 10kpps.
 | | ...
 | | [Tags] | 2T2C | MTHREAD | NDRDISC | SKIP_PATCH
 | | ... | linerate, step 10kpps.
 | | ...
 | | [Tags] | 2T2C | MTHREAD | NDRDISC | SKIP_PATCH
 | | [Documentation]
 | | ... | [Cfg] DUT runs L2 frame forwarding config with 2 threads, 2 phy\
 | | ... | cores, 1 receive queue per NIC port.
 | | [Documentation]
 | | ... | [Cfg] DUT runs L2 frame forwarding config with 2 threads, 2 phy\
 | | ... | cores, 1 receive queue per NIC port.
-| | ... | [Ver] Find PDR for 9000 Byte frames using binary search start at 10GE\
+| | ... | [Ver] Find PDR for 9000 Byte frames using binary search start at 40GE\
 | | ... | linerate, step 10kpps, LT=0.5%.
 | | ...
 | | [Tags] | 2T2C | MTHREAD | PDRDISC | SKIP_PATCH
 | | ... | linerate, step 10kpps, LT=0.5%.
 | | ...
 | | [Tags] | 2T2C | MTHREAD | PDRDISC | SKIP_PATCH
 | | [Documentation]
 | | ... | [Cfg] DUT runs L2 frame forwarding config with 4 threads, 4 phy\
 | | ... | cores, 2 receive queues per NIC port.
 | | [Documentation]
 | | ... | [Cfg] DUT runs L2 frame forwarding config with 4 threads, 4 phy\
 | | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\
+| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 40GE\
 | | ... | linerate, step 100kpps.
 | | ...
 | | [Tags] | 4T4C | MTHREAD | NDRDISC
 | | ... | linerate, step 100kpps.
 | | ...
 | | [Tags] | 4T4C | MTHREAD | NDRDISC
 | | [Documentation]
 | | ... | [Cfg] DUT runs L2 frame forwarding config with 4 threads, 4 phy\
 | | ... | cores, 2 receive queues per NIC port.
 | | [Documentation]
 | | ... | [Cfg] DUT runs L2 frame forwarding config with 4 threads, 4 phy\
 | | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\
+| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 40GE\
 | | ... | linerate, step 100kpps, LT=0.5%.
 | | ...
 | | [Tags] | 4T4C | MTHREAD | PDRDISC | SKIP_PATCH
 | | ... | linerate, step 100kpps, LT=0.5%.
 | | ...
 | | [Tags] | 4T4C | MTHREAD | PDRDISC | SKIP_PATCH
 | | [Documentation]
 | | ... | [Cfg] DUT runs L2 frame forwarding config with 4 threads, 4 phy\
 | | ... | cores, 2 receive queues per NIC port.
 | | [Documentation]
 | | ... | [Cfg] DUT runs L2 frame forwarding config with 4 threads, 4 phy\
 | | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\
+| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 40GE\
 | | ... | linerate, step 10kpps.
 | | ...
 | | [Tags] | 4T4C | MTHREAD | NDRDISC | SKIP_PATCH
 | | ... | linerate, step 10kpps.
 | | ...
 | | [Tags] | 4T4C | MTHREAD | NDRDISC | SKIP_PATCH
 | | [Documentation]
 | | ... | [Cfg] DUT runs L2 frame forwarding config with 4 threads, 4 phy\
 | | ... | cores, 2 receive queues per NIC port.
 | | [Documentation]
 | | ... | [Cfg] DUT runs L2 frame forwarding config with 4 threads, 4 phy\
 | | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\
+| | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 40GE\
 | | ... | linerate, step 10kpps, LT=0.5%.
 | | ...
 | | [Tags] | 4T4C | MTHREAD | PDRDISC | SKIP_PATCH
 | | ... | linerate, step 10kpps, LT=0.5%.
 | | ...
 | | [Tags] | 4T4C | MTHREAD | PDRDISC | SKIP_PATCH
 | | [Documentation]
 | | ... | [Cfg] DUT runs L2 frame forwarding config with 4 threads, 4 phy\
 | | ... | cores, 2 receive queues per NIC port.
 | | [Documentation]
 | | ... | [Cfg] DUT runs L2 frame forwarding config with 4 threads, 4 phy\
 | | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find NDR for 9000 Byte frames using binary search start at 10GE\
+| | ... | [Ver] Find NDR for 9000 Byte frames using binary search start at 40GE\
 | | ... | linerate, step 10kpps.
 | | ...
 | | [Tags] | 4T4C | MTHREAD | NDRDISC | SKIP_PATCH
 | | ... | linerate, step 10kpps.
 | | ...
 | | [Tags] | 4T4C | MTHREAD | NDRDISC | SKIP_PATCH
 | | [Documentation]
 | | ... | [Cfg] DUT runs L2 frame forwarding config with 4 threads, 4 phy\
 | | ... | cores, 2 receive queues per NIC port.
 | | [Documentation]
 | | ... | [Cfg] DUT runs L2 frame forwarding config with 4 threads, 4 phy\
 | | ... | cores, 2 receive queues per NIC port.
-| | ... | [Ver] Find PDR for 9000 Byte frames using binary search start at 10GE\
+| | ... | [Ver] Find PDR for 9000 Byte frames using binary search start at 40GE\
 | | ... | linerate, step 5kpps, LT=0.5%.
 | | ...
 | | [Tags] | 4T4C | MTHREAD | PDRDISC | SKIP_PATCH
 | | ... | linerate, step 5kpps, LT=0.5%.
 | | ...
 | | [Tags] | 4T4C | MTHREAD | PDRDISC | SKIP_PATCH
index e7fa2f4..1785623 100644 (file)
 # limitations under the License.
 
 
 # limitations under the License.
 
 
-"""
-This module exists to provide the init DPDK.
-"""
+"""This module implements initialization and cleanup of DPDK environment."""
 
 from resources.libraries.python.ssh import SSH
 from resources.libraries.python.constants import Constants as con
 from resources.libraries.python.topology import Topology
 
 
 from resources.libraries.python.ssh import SSH
 from resources.libraries.python.constants import Constants as con
 from resources.libraries.python.topology import Topology
 
+
 class DPDKTools(object):
 class DPDKTools(object):
-    """Test the DPDK l2fwd performance."""
+    """This class implements:
+    - Initialization of DPDK environment,
+    - Cleanup of DPDK environment.
+    """
 
     @staticmethod
     def initialize_dpdk_environment(dut_node, dut_if1, dut_if2):
 
     @staticmethod
     def initialize_dpdk_environment(dut_node, dut_if1, dut_if2):
@@ -36,6 +38,7 @@ class DPDKTools(object):
         :type dut_if1: str
         :type dut_if2: str
         :returns: none
         :type dut_if1: str
         :type dut_if2: str
         :returns: none
+        :raises RuntimeError: If it fails to bind the interfaces to igb_uio.
         """
         pci_address1 = Topology.get_interface_pci_addr(dut_node, dut_if1)
         pci_address2 = Topology.get_interface_pci_addr(dut_node, dut_if2)
         """
         pci_address1 = Topology.get_interface_pci_addr(dut_node, dut_if1)
         pci_address2 = Topology.get_interface_pci_addr(dut_node, dut_if2)
@@ -48,8 +51,8 @@ class DPDKTools(object):
 
         (ret_code, _, _) = ssh.exec_command(cmd, timeout=600)
         if ret_code != 0:
 
         (ret_code, _, _) = ssh.exec_command(cmd, timeout=600)
         if ret_code != 0:
-            raise Exception('Failed to bind the interfaces to igb_uio ' \
-                            'at node {0}'.format(dut_node['host']))
+            raise RuntimeError('Failed to bind the interfaces to igb_uio at '
+                               'node {0}'.format(dut_node['host']))
 
     @staticmethod
     def cleanup_dpdk_environment(dut_node, dut_if1, dut_if2):
 
     @staticmethod
     def cleanup_dpdk_environment(dut_node, dut_if1, dut_if2):
@@ -64,6 +67,7 @@ class DPDKTools(object):
         :type dut_if1: str
         :type dut_if2: str
         :returns: none
         :type dut_if1: str
         :type dut_if2: str
         :returns: none
+        :raises RuntimeError: If it fails to cleanup the dpdk.
         """
         pci_address1 = Topology.get_interface_pci_addr(dut_node, dut_if1)
         if1_driver = Topology.get_interface_driver(dut_node, dut_if1)
         """
         pci_address1 = Topology.get_interface_pci_addr(dut_node, dut_if1)
         if1_driver = Topology.get_interface_driver(dut_node, dut_if1)
@@ -74,10 +78,10 @@ class DPDKTools(object):
         ssh.connect(dut_node)
 
         cmd = 'cd {0}/dpdk-tests/dpdk_scripts/ && sudo ./cleanup_dpdk.sh ' \
         ssh.connect(dut_node)
 
         cmd = 'cd {0}/dpdk-tests/dpdk_scripts/ && sudo ./cleanup_dpdk.sh ' \
-              '{1} {2} {3} {4}'.format(con.REMOTE_FW_DIR, if1_driver, \
-              pci_address1, if2_driver, pci_address2)
+              '{1} {2} {3} {4}'.format(con.REMOTE_FW_DIR, if1_driver,
+                                       pci_address1, if2_driver, pci_address2)
 
         (ret_code, _, _) = ssh.exec_command(cmd, timeout=600)
         if ret_code != 0:
 
         (ret_code, _, _) = ssh.exec_command(cmd, timeout=600)
         if ret_code != 0:
-            raise Exception('Failed to cleanup the dpdk at node {0}'
-                            .format(dut_node['host']))
+            raise RuntimeError('Failed to cleanup the dpdk at node {0}'
+                               .format(dut_node['host']))