Fix all the exception while genereating the latency traffic 65/40365/3
authorDeepak S <deepak.s@linux.intel.com>
Mon, 28 Aug 2017 02:11:59 +0000 (19:11 -0700)
committerRoss Brattain <ross.b.brattain@intel.com>
Mon, 18 Sep 2017 05:50:46 +0000 (22:50 -0700)
Change-Id: I0b25e704b29fc68678eaa29d9e1d1eb04ee94e3e
Signed-off-by: Deepak S <deepak.s@linux.intel.com>
Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
tests/unit/network_services/traffic_profile/test_rfc2544.py
yardstick/network_services/traffic_profile/rfc2544.py

index b63a805..2366b81 100644 (file)
@@ -258,9 +258,10 @@ class TestRFC2544Profile(unittest.TestCase):
 
     def test_execute_latency(self):
         traffic_generator = mock.Mock(autospec=TrexProfile)
-        traffic_generator.my_ports = [0, 1]
-        traffic_generator.priv_ports = [-1]
-        traffic_generator.pub_ports = [1]
+        traffic_generator.networks = {
+            "private_0": ["xe0"],
+            "public_0": ["xe1"],
+        }
         traffic_generator.client = \
             mock.Mock(return_value=True)
         r_f_c2544_profile = RFC2544Profile(self.TRAFFIC_PROFILE)
index 6a0ecaf..3dc08df 100644 (file)
@@ -151,34 +151,29 @@ class RFC2544Profile(TrexProfile):
         return samples
 
     def execute_latency(self, generator=None, samples=None):
-        if generator is None:
-            generator = self.generator
+        if generator is not None and self.generator is None:
+            self.generator = generator
 
         if samples is None:
-            samples = generator.generate_samples()
+            samples = self.generator.generate_samples()
 
         self.pps, multiplier = self.calculate_pps(samples)
         self.ports = []
         self.pg_id = self.params['traffic_profile'].get('pg_id', 1)
-        priv_ports = generator.priv_ports
-        pub_ports = generator.pub_ports
-        for index, (priv_port, pub_port) in enumerate(zip(priv_ports, pub_ports), 1):
-            profile_data = self.params.get('private_{}'.format(index), '')
-            self.ports.append(priv_port)
-            generator.client.add_streams(self.get_streams(profile_data),
-                                         ports=priv_port)
-
-            profile_data = self.params.get('public_{}'.format(index), '')
-            if not profile_data or generator.correlated_traffic:
+        for vld_id, intfs in sorted(self.generator.networks.items()):
+            profile_data = self.params.get(vld_id)
+            if not profile_data:
                 continue
+            # correlated traffic doesn't use public traffic?
+            if vld_id.startswith("public") and self.generator.rfc2544_helper.correlated_traffic:
+                continue
+            for intf in intfs:
+                port = self.generator.vnfd_helper.port_num(intf)
+                self.ports.append(port)
+                self.generator.client.add_streams(self.get_streams(profile_data), ports=port)
 
-            pub_port = generator.pub_ports[index]
-            self.ports.append(pub_port)
-            generator.client.add_streams(self.get_streams(profile_data),
-                                         ports=pub_port)
-
-        generator.start_client(ports=self.ports, mult=str(multiplier),
-                               duration=120, force=True)
+        self.generator.start_client(ports=self.ports, mult=str(multiplier),
+                                    duration=120, force=True)
         self.first_run = False
 
     def calculate_pps(self, samples):