From 08c7960416d66185a8c46436310a119ccebc795e Mon Sep 17 00:00:00 2001 From: Deepak S Date: Sun, 27 Aug 2017 19:11:59 -0700 Subject: Fix all the exception while genereating the latency traffic Change-Id: I0b25e704b29fc68678eaa29d9e1d1eb04ee94e3e Signed-off-by: Deepak S Signed-off-by: Ross Brattain --- .../traffic_profile/test_rfc2544.py | 7 +++-- .../network_services/traffic_profile/rfc2544.py | 35 ++++++++++------------ 2 files changed, 19 insertions(+), 23 deletions(-) diff --git a/tests/unit/network_services/traffic_profile/test_rfc2544.py b/tests/unit/network_services/traffic_profile/test_rfc2544.py index b63a805f3..2366b8124 100644 --- a/tests/unit/network_services/traffic_profile/test_rfc2544.py +++ b/tests/unit/network_services/traffic_profile/test_rfc2544.py @@ -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) diff --git a/yardstick/network_services/traffic_profile/rfc2544.py b/yardstick/network_services/traffic_profile/rfc2544.py index 6a0ecaf99..3dc08df69 100644 --- a/yardstick/network_services/traffic_profile/rfc2544.py +++ b/yardstick/network_services/traffic_profile/rfc2544.py @@ -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): -- cgit 1.2.3-korg