From 8eaf1fcc4b2b3678d62ddb081f0d912fdc92bc20 Mon Sep 17 00:00:00 2001 From: ahothan Date: Wed, 5 Dec 2018 16:12:29 -0800 Subject: NFVBENCH-117 Streamline VxLAN vni config and use auto-indexing Change-Id: Ie57d4c38ee22a4032991c282af526e0b28ce7a83 Signed-off-by: ahothan --- nfvbench/chaining.py | 63 +++++++++------------------------------------------- 1 file changed, 11 insertions(+), 52 deletions(-) (limited to 'nfvbench/chaining.py') diff --git a/nfvbench/chaining.py b/nfvbench/chaining.py index fe79d88..ce1b5ce 100644 --- a/nfvbench/chaining.py +++ b/nfvbench/chaining.py @@ -287,10 +287,10 @@ class ChainNetwork(object): } if network_config.network_type: body['network']['provider:network_type'] = network_config.network_type - if self.segmentation_id: - body['network']['provider:segmentation_id'] = self.segmentation_id - if self.physical_network: - body['network']['provider:physical_network'] = self.physical_network + if self.segmentation_id: + body['network']['provider:segmentation_id'] = self.segmentation_id + if self.physical_network: + body['network']['provider:physical_network'] = self.physical_network self.network = self.manager.neutron_client.create_network(body)['network'] body = { @@ -304,7 +304,7 @@ class ChainNetwork(object): subnet = self.manager.neutron_client.create_subnet(body)['subnet'] # add subnet id to the network dict since it has just been added self.network['subnets'] = [subnet['id']] - LOG.info('Created network: %s.', self.name) + LOG.info('Created network: %s', self.name) def get_uuid(self): """ @@ -895,11 +895,7 @@ class ChainManager(object): self.vlans = [self._check_list('vlans[0]', config.vlans[0], re_vlan), self._check_list('vlans[1]', config.vlans[1], re_vlan)] if config.vxlan: - # make sure there are 2 entries - if len(config.vnis) != 2: - raise ChainException('The config vnis property must be a list with 2 VNIs') - self.vnis = [self._check_list('vnis[0]', config.vnis[0], re_vlan), - self._check_list('vnis[1]', config.vnis[1], re_vlan)] + raise ChainException('VxLAN is only supported with OpenStack') def _get_dest_macs_from_config(self): re_mac = "[0-9a-fA-F]{2}([-:])[0-9a-fA-F]{2}(\\1[0-9a-fA-F]{2}){4}$" @@ -996,39 +992,6 @@ class ChainManager(object): if initial_instance_count: LOG.info('All instances are active') - def _get_vxlan_net_cfg(self, chain_id): - int_nets = self.config.internal_networks - net_left = int_nets.left - net_right = int_nets.right - vnis = self.generator_config.vnis - chain_id += 1 - seg_id_left = vnis[0] - if self.config.service_chain == ChainType.PVP: - if chain_id > 1: - seg_id_left = ((chain_id - 1) * 2) + seg_id_left - seg_id_right = seg_id_left + 1 - if (seg_id_left and seg_id_right) > vnis[1]: - raise Exception('Segmentation ID is more than allowed ' - 'value: {}'.format(vnis[1])) - net_left['segmentation_id'] = seg_id_left - net_right['segmentation_id'] = seg_id_right - net_cfg = [net_left, net_right] - else: - # PVVP - net_middle = int_nets.middle - if chain_id > 1: - seg_id_left = ((chain_id - 1) * 3) + seg_id_left - seg_id_middle = seg_id_left + 1 - seg_id_right = seg_id_left + 2 - if (seg_id_left and seg_id_right and seg_id_middle) > vnis[1]: - raise Exception('Segmentation ID is more than allowed ' - 'value: {}'.format(vnis[1])) - net_left['segmentation_id'] = seg_id_left - net_middle['segmentation_id'] = seg_id_middle - net_right['segmentation_id'] = seg_id_right - net_cfg = [net_left, net_middle, net_right] - return net_cfg - def get_networks(self, chain_id=None): """Get the networks for given EXT, PVP or PVVP chain. @@ -1052,15 +1015,11 @@ class ChainManager(object): else: lookup_only = False int_nets = self.config.internal_networks - network_type = set([int_nets[net].get('network_type') for net in int_nets]) - if self.config.vxlan and 'vxlan' in network_type: - net_cfg = self._get_vxlan_net_cfg(chain_id) + # VLAN and VxLAN + if self.config.service_chain == ChainType.PVP: + net_cfg = [int_nets.left, int_nets.right] else: - # VLAN - if self.config.service_chain == ChainType.PVP: - net_cfg = [int_nets.left, int_nets.right] - else: - net_cfg = [int_nets.left, int_nets.middle, int_nets.right] + net_cfg = [int_nets.left, int_nets.middle, int_nets.right] networks = [] try: for cfg in net_cfg: @@ -1163,7 +1122,7 @@ class ChainManager(object): return [self.chains[chain_index].get_vxlan(port_index) for chain_index in range(self.chain_count)] # no openstack - return self.vnis[port_index] + raise ChainException('VxLAN is only supported with OpenStack') def get_dest_macs(self, port_index): """Get the list of per chain dest MACs on a given port. -- cgit 1.2.3-korg