diff options
author | mklyus <mklyus@cisco.com> | 2019-10-11 08:35:51 +0300 |
---|---|---|
committer | mklyus <mklyus@cisco.com> | 2020-01-31 11:20:59 +0300 |
commit | 423f360415e2834dd8de065434023b822e2ca3f8 (patch) | |
tree | d7a85ebdc6c4b4be982288f5c6ba2f925919f334 /nfvbench/chain_runner.py | |
parent | ae838f98fa020d0ad0aa37ab58e02456889c3375 (diff) |
MPLS support + loop_vm_arp test fix4.1.0
Change-Id: I17b1b2a97f0bc185d3906250d5f91b4c8fcb9686
Signed-off-by: Max Klyus <mklyus@cisco.com>
Diffstat (limited to 'nfvbench/chain_runner.py')
-rw-r--r-- | nfvbench/chain_runner.py | 25 |
1 files changed, 20 insertions, 5 deletions
diff --git a/nfvbench/chain_runner.py b/nfvbench/chain_runner.py index bb35426..62a3751 100644 --- a/nfvbench/chain_runner.py +++ b/nfvbench/chain_runner.py @@ -96,6 +96,22 @@ class ChainRunner(object): gen_config.set_vxlan_endpoints(1, src_vteps[1], dst_vtep) self.config['vxlan_gen_config'] = gen_config + if config.mpls: + # MPLS VPN is discovered from the networks + src_vteps = gen_config.gen_config.src_vteps + vtep_gateway_ips = gen_config.gen_config.vtep_gateway_ips + gen_config.set_mpls_inner_labels(0, self.chain_manager.get_chain_mpls_inner_labels(0)) + gen_config.set_mpls_inner_labels(1, self.chain_manager.get_chain_mpls_inner_labels(1)) + outer_mpls_labels_left = self.config.internal_networks.left.mpls_transport_labels + outer_mpls_labels_right = self.config.internal_networks.right.mpls_transport_labels + if outer_mpls_labels_left or outer_mpls_labels_right: + gen_config.set_mpls_outer_labels(0, outer_mpls_labels_left) + gen_config.set_mpls_outer_labels(1, outer_mpls_labels_right) + # Configuring source an remote VTEPs on TREx interfaces + gen_config.set_mpls_peers(0, src_vteps[0], vtep_gateway_ips[0]) + gen_config.set_mpls_peers(1, src_vteps[1], vtep_gateway_ips[1]) + self.config['mpls_gen_config'] = gen_config + # get an instance of the stats manager self.stats_manager = StatsManager(self) LOG.info('ChainRunner initialized') @@ -103,8 +119,8 @@ class ChainRunner(object): def __setup_traffic(self): self.traffic_client.setup() if not self.config.no_traffic: - # ARP is needed for EXT chain or VxLAN overlay unless disabled explicitly - if (self.config.service_chain == ChainType.EXT or + # ARP is needed for EXT chain or VxLAN overlay or MPLS unless disabled explicitly + if (self.config.service_chain == ChainType.EXT or self.config.mpls or self.config.vxlan or self.config.l3_router or self.config.loop_vm_arp)\ and not self.config.no_arp: self.traffic_client.ensure_arp_successful() @@ -167,10 +183,9 @@ class ChainRunner(object): LOG.info('Starting %dx%s benchmark...', self.config.service_chain_count, self.chain_name) self.stats_manager.create_worker() - if self.config.vxlan: - # Configure vxlan tunnels + if self.config.vxlan or self.config.mpls: + # Configure vxlan or mpls tunnels self.stats_manager.worker.config_interfaces() - self.__setup_traffic() results[self.chain_name] = {'result': self.__get_chain_result()} |