NFVBENCH-118 VxLAN fixed rate: Trex far end port Rx counters are incorrect
[nfvbench.git] / nfvbench / chaining.py
index fe79d88..ed379bc 100644 (file)
@@ -287,11 +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 = {
                 'subnet': {'name': network_config.subnet,
@@ -304,7 +303,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 +894,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 +991,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 +1014,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 +1121,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.