Merge "Error when adding SR-IOV interfaces in SR-IOV context"
[yardstick.git] / yardstick / network_services / vnf_generic / vnf / tg_rfc2544_trex.py
index d94a9a6..4e9f4bd 100644 (file)
@@ -18,9 +18,7 @@ from __future__ import print_function
 import time
 import logging
 from collections import Mapping
-from itertools import chain
 
-from yardstick.network_services.helpers.samplevnf_helper import MultiPortConfig
 from yardstick.network_services.vnf_generic.vnf.tg_trex import TrexTrafficGen
 from yardstick.network_services.vnf_generic.vnf.sample_vnf import Rfc2544ResourceHelper
 from yardstick.network_services.vnf_generic.vnf.tg_trex import TrexResourceHelper
@@ -47,23 +45,15 @@ class TrexRfcResourceHelper(TrexResourceHelper):
             rfc_helper_type = TrexRfc2544ResourceHelper
 
         self.rfc2544_helper = rfc_helper_type(self.scenario_helper)
-        # self.tg_port_pairs = []
-
-    def _build_ports(self):
-        self.tg_port_pairs, self.networks = MultiPortConfig.get_port_pairs(
-            self.vnfd_helper.interfaces)
-        self.priv_ports = [int(x[0][2:]) for x in self.tg_port_pairs]
-        self.pub_ports = [int(x[1][2:]) for x in self.tg_port_pairs]
-        self.my_ports = list(set(chain(self.priv_ports, self.pub_ports)))
 
     def _run_traffic_once(self, traffic_profile):
         if self._terminated.value:
             return
 
-        traffic_profile.execute(self)
+        traffic_profile.execute_traffic(self)
         self.client_started.value = 1
         time.sleep(self.RUN_DURATION)
-        self.client.stop(self.my_ports)
+        self.client.stop(traffic_profile.ports)
         time.sleep(self.WAIT_TIME)
         samples = traffic_profile.get_drop_percentage(self)
         self._queue.put(samples)
@@ -71,34 +61,34 @@ class TrexRfcResourceHelper(TrexResourceHelper):
         if not self.rfc2544_helper.is_done():
             return
 
-        self.client.stop(self.my_ports)
-        self.client.reset(ports=self.my_ports)
-        self.client.remove_all_streams(self.my_ports)
-        traffic_profile.execute_latency(samples=samples)
+        self.client.stop(traffic_profile.ports)
+        self.client.reset(ports=traffic_profile.ports)
+        self.client.remove_all_streams(traffic_profile.ports)
+        traffic_profile.execute_traffic_latency(samples=samples)
         multiplier = traffic_profile.calculate_pps(samples)[1]
         for _ in range(5):
             time.sleep(self.LATENCY_TIME_SLEEP)
-            self.client.stop(self.my_ports)
+            self.client.stop(traffic_profile.ports)
             time.sleep(self.WAIT_TIME)
-            last_res = self.client.get_stats(self.my_ports)
+            last_res = self.client.get_stats(traffic_profile.ports)
             if not isinstance(last_res, Mapping):
                 self._terminated.value = 1
                 continue
-            self.generate_samples('latency', {})
+            self.generate_samples(traffic_profile.ports, 'latency', {})
             self._queue.put(samples)
             self.client.start(mult=str(multiplier),
-                              ports=self.my_ports,
+                              ports=traffic_profile.ports,
                               duration=120, force=True)
 
-    def start_client(self, mult, duration, force=True):
-        self.client.start(ports=self.my_ports, mult=mult, duration=duration, force=force)
+    def start_client(self, ports, mult=None, duration=None, force=True):
+        self.client.start(ports=ports, mult=mult, duration=duration, force=force)
 
-    def clear_client_stats(self):
-        self.client.clear_stats(ports=self.my_ports)
+    def clear_client_stats(self, ports):
+        self.client.clear_stats(ports=ports)
 
     def collect_kpi(self):
         self.rfc2544_helper.iteration.value += 1
-        super(TrexRfcResourceHelper, self).collect_kpi()
+        return super(TrexRfcResourceHelper, self).collect_kpi()
 
 
 class TrexTrafficGenRFC(TrexTrafficGen):