Merge "Add network elements as a dict in Kubernetes context"
[yardstick.git] / yardstick / benchmark / scenarios / networking / pktgen_dpdk.py
index ce8a7f4..efb7d8b 100644 (file)
@@ -70,39 +70,42 @@ class PktgenDPDKLatency(base.Scenario):
     def run(self, result):
         """execute the benchmark"""
 
+        options = self.scenario_cfg['options']
+        eth1 = options.get("eth1", "ens4")
+        eth2 = options.get("eth2", "ens5")
         if not self.setup_done:
             self.setup()
 
         if not self.testpmd_args:
-            self.testpmd_args = utils.get_port_mac(self.client, 'eth2')
+            self.testpmd_args = utils.get_port_mac(self.client, eth2)
 
         if not self.pktgen_args:
-            server_rev_mac = utils.get_port_mac(self.server, 'eth1')
-            server_send_mac = utils.get_port_mac(self.server, 'eth2')
-            client_src_ip = utils.get_port_ip(self.client, 'eth1')
-            client_dst_ip = utils.get_port_ip(self.client, 'eth2')
+            server_rev_mac = utils.get_port_mac(self.server, eth1)
+            server_send_mac = utils.get_port_mac(self.server, eth2)
+            client_src_ip = utils.get_port_ip(self.client, eth1)
+            client_dst_ip = utils.get_port_ip(self.client, eth2)
 
             self.pktgen_args = [client_src_ip, client_dst_ip,
                                 server_rev_mac, server_send_mac]
 
-        options = self.scenario_cfg['options']
         packetsize = options.get("packetsize", 64)
         rate = options.get("rate", 100)
 
-        cmd = "screen sudo -E bash ~/testpmd_fwd.sh %s " % (self.testpmd_args)
+        cmd = "screen sudo -E bash ~/testpmd_fwd.sh %s %s %s" % \
+            (self.testpmd_args, eth1, eth2)
         LOG.debug("Executing command: %s", cmd)
         self.server.send_command(cmd)
 
         time.sleep(1)
 
-        cmd = "screen sudo -E bash ~/pktgen_dpdk.sh %s %s %s %s %s %s" % \
+        cmd = "screen sudo -E bash ~/pktgen_dpdk.sh %s %s %s %s %s %s %s %s" % \
             (self.pktgen_args[0], self.pktgen_args[1], self.pktgen_args[2],
-             self.pktgen_args[3], rate, packetsize)
+             self.pktgen_args[3], rate, packetsize, eth1, eth2)
         LOG.debug("Executing command: %s", cmd)
         self.client.send_command(cmd)
 
         # wait for finishing test
-        time.sleep(1)
+        time.sleep(60)
 
         cmd = r"""\
 cat ~/result.log -vT \
@@ -110,10 +113,7 @@ cat ~/result.log -vT \
 {print substr($0,RSTART,RLENGTH)}' \
 |grep -v ^$ |awk '{if ($2 != 0) print $2}'\
 """
-        client_status, client_stdout, client_stderr = self.client.execute(cmd)
-
-        if client_status:
-            raise RuntimeError(client_stderr)
+        _, client_stdout, _ = self.client.execute(cmd, raise_on_error=True)
 
         avg_latency = 0
         if client_stdout:
@@ -132,4 +132,4 @@ cat ~/result.log -vT \
             LOG.info("sla_max_latency: %d", sla_max_latency)
             debug_info = "avg_latency %d > sla_max_latency %d" \
                 % (avg_latency, sla_max_latency)
-            assert avg_latency <= sla_max_latency, debug_info
+            self.verify_SLA(avg_latency <= sla_max_latency, debug_info)