class NetworkHelper(): """Network setup helper for device coupler""" def __init__(self, trunk_iface, bridge, test_vlans): self._ovs_helper = OvsHelper() self._logger = get_logger('networkhelper') self._trunk_iface = trunk_iface self._bridge = bridge self._test_vlans = list(range(test_vlans[0], test_vlans[1] + 1)) def setup(self): """Setup n/w""" self._logger.info('Setting up device coupler network.') self._setup_ovs_bridge() def cleanup(self): """Clean up n/w""" self._delete_ovs_bridge() self._logger.info('Cleaned up device coupler network.') def _setup_ovs_bridge(self): self._ovs_helper.create_ovs_bridge(self._bridge) self._ovs_helper.add_iface_to_bridge(self._bridge, self._trunk_iface) self._ovs_helper.set_trunk_vlan(self._trunk_iface, self._test_vlans) def _delete_ovs_bridge(self): self._ovs_helper.delete_ovs_bridge(self._bridge) def get_ovs_bridge(self): return self._bridge
def test_ovs_bridge_vlan(self): """Test adding interfaces to OVS bridge with VLANs""" ovs = OvsHelper() bridge = 'test_br' ovs.delete_ovs_bridge(bridge) ovs.create_ovs_bridge(bridge) for index in range(1, 5): self._create_netns_with_veth_pair(index) iface = 'dev%s' % index tag = 200 + index % 2 ovs.add_iface_to_bridge(bridge, iface) ovs.set_native_vlan(iface, tag) retcode, _, _ = ovs._run_shell_no_raise( 'sudo ip netns exec vnet1 ping -c 3 10.1.1.3') self.assertEqual(retcode, 0) retcode, _, _ = ovs._run_shell_no_raise( 'sudo ip netns exec vnet1 ping -c 3 10.1.1.4') self.assertEqual(retcode, 1) for index in range(1, 5): vnet = 'vnet%s' % index self._delete_netns(vnet) ovs.delete_ovs_bridge(bridge)