Merge "Add "YARDSTICK_REPO_DIR" into tests path"
[yardstick.git] / yardstick / network_services / traffic_profile / prox_profile.py
index 896384d..343ef1d 100644 (file)
@@ -28,9 +28,23 @@ class ProxProfile(TrafficProfile):
     This profile adds a single stream at the beginning of the traffic session
     """
 
+    @staticmethod
+    def sort_vpci(traffic_gen):
+        """Return the list of external interfaces ordered by vpci and name
+
+        :param traffic_gen: (ProxTrafficGen) traffic generator
+        :return: list of ordered interfaces
+        """
+        def key_func(interface):
+            return interface['virtual-interface']['vpci'], interface['name']
+
+        return sorted(traffic_gen.vnfd_helper['vdu'][0]['external-interface'],
+                      key=key_func)
+
     @staticmethod
     def fill_samples(samples, traffic_gen):
-        for vpci_idx, intf in enumerate(traffic_gen.vpci_if_name_ascending):
+        vpci_if_name_ascending = ProxProfile.sort_vpci(traffic_gen)
+        for vpci_idx, intf in enumerate(vpci_if_name_ascending):
             name = intf[1]
             # TODO: VNFDs KPIs values needs to be mapped to TRex structure
             xe_port = traffic_gen.resource_helper.sut.port_stats([vpci_idx])
@@ -67,6 +81,7 @@ class ProxProfile(TrafficProfile):
     def init(self, queue):
         self.pkt_size_iterator = iter(self.pkt_sizes)
         self.queue = queue
+        self.queue.cancel_join_thread()
 
     def bounds_iterator(self, logger=None):
         if logger: