Merge "NSB: fix trex config to use dpdk port number"
[yardstick.git] / yardstick / network_services / vnf_generic / vnf / tg_rfc2544_ixia.py
index 22aaf6d..47c5a35 100644 (file)
@@ -14,7 +14,6 @@
 
 from __future__ import absolute_import
 
-import json
 import time
 import os
 import logging
@@ -130,39 +129,28 @@ class IxiaResourceHelper(ClientResourceHelper):
 
         self.client.ix_assign_ports()
 
-        ixia_file = find_relative_file("ixia_traffic.cfg",
-                                       self.scenario_helper.scenario_cfg["task_path"])
-
-        static_traffic = {}
-        with open(ixia_file) as stream:
-            try:
-                static_traffic = json.load(stream)
-            except Exception:
-                LOG.exception("")
         mac = {}
-        for vld_id, traffic in static_traffic.items():
-            intfs = self.vnfd_helper.port_pairs.networks.get(vld_id, [])
-            interface = next(iter(intfs), None)
-            if interface:
-                virt_intf = self.vnfd_helper.find_interface(name=interface)["virtual-interface"]
-                # we only know static traffic id by reading the json
-                # this is used by _get_ixia_traffic_profile
-                mac["src_mac_{}".format(traffic["id"])] = virt_intf.get("local_mac", default)
-                mac["dst_mac_{}".format(traffic["id"])] = virt_intf.get("dst_mac", default)
+        for port_name in self.vnfd_helper.port_pairs.all_ports:
+            intf = self.vnfd_helper.find_interface(name=port_name)
+            virt_intf = intf["virtual-interface"]
+            # we only know static traffic id by reading the json
+            # this is used by _get_ixia_trafficrofile
+            port_num = self.vnfd_helper.port_num(intf)
+            mac["src_mac_{}".format(port_num)] = virt_intf.get("local_mac", default)
+            mac["dst_mac_{}".format(port_num)] = virt_intf.get("dst_mac", default)
 
         samples = {}
         # Generate ixia traffic config...
         try:
             while not self._terminated.value:
-                traffic_profile.execute_traffic(self, self.client, mac, ixia_file)
+                traffic_profile.execute_traffic(self, self.client, mac)
                 self.client_started.value = 1
                 time.sleep(WAIT_FOR_TRAFFIC)
                 self.client.ix_stop_traffic()
                 samples = self.generate_samples(traffic_profile.ports)
                 self._queue.put(samples)
                 status, samples = traffic_profile.get_drop_percentage(self, samples, min_tol,
-                                                                      max_tol, self.client, mac,
-                                                                      ixia_file)
+                                                                      max_tol, self.client, mac)
 
                 current = samples['CurrentDropPercentage']
                 if min_tol <= current <= max_tol or status == 'Completed':
@@ -175,13 +163,13 @@ class IxiaResourceHelper(ClientResourceHelper):
                 self._terminated.value = 1
                 return
 
-            traffic_profile.execute_traffic(self, self.client, mac, ixia_file)
+            traffic_profile.execute_traffic(self, self.client, mac)
             for _ in range(5):
                 time.sleep(self.LATENCY_TIME_SLEEP)
                 self.client.ix_stop_traffic()
                 samples = self.generate_samples(traffic_profile.ports, 'latency', {})
                 self._queue.put(samples)
-                traffic_profile.start_ixia_latency(self, self.client, mac, ixia_file)
+                traffic_profile.start_ixia_latency(self, self.client, mac)
                 if self._terminated.value:
                     break