From e2c2f29fd171a688cc5bc6a73cdf7fec38aedd67 Mon Sep 17 00:00:00 2001 From: Saravanan KR Date: Wed, 14 Sep 2016 15:55:26 +0530 Subject: Add mac address to the DPDK mapping file When using mapping file with mac address, mapping logic will try to fetch the mac address of the interface, which will fail. Storing the mac address also in the DPDK mapping file so that we can satisfy mapping logic. Closes-Bug: #1619330 Change-Id: I92ba7f589c8d848feb083f07c3f937b50aca388e --- os_net_config/tests/test_utils.py | 49 ++++++++++++++++++++++++++------------- 1 file changed, 33 insertions(+), 16 deletions(-) (limited to 'os_net_config/tests/test_utils.py') diff --git a/os_net_config/tests/test_utils.py b/os_net_config/tests/test_utils.py index a2d5cc4..b766384 100644 --- a/os_net_config/tests/test_utils.py +++ b/os_net_config/tests/test_utils.py @@ -109,7 +109,13 @@ class TestUtils(base.TestCase): return out, None if 'driverctl' in name: return None, None + + def test_get_dpdk_mac_address(name): + return '01:02:03:04:05:06' self.stubs.Set(processutils, 'execute', test_execute) + self.stubs.Set(utils, '_get_dpdk_mac_address', + test_get_dpdk_mac_address) + utils.bind_dpdk_interfaces('nic2', 'vfio-pci', False) def test_bind_dpdk_interfaces_fail(self): @@ -119,34 +125,38 @@ class TestUtils(base.TestCase): return out, None if 'driverctl' in name: return None, 'Error' + + def test_get_dpdk_mac_address(name): + return '01:02:03:04:05:06' self.stubs.Set(processutils, 'execute', test_execute) + self.stubs.Set(utils, '_get_dpdk_mac_address', + test_get_dpdk_mac_address) + self.assertRaises(utils.OvsDpdkBindException, - utils.bind_dpdk_interfaces, 'nic2', 'vfio-pci', + utils.bind_dpdk_interfaces, 'eth1', 'vfio-pci', False) - def test_update_dpdk_map_new(self): - utils._update_dpdk_map('eth1', '0000:03:00.0', 'vfio-pci') - try: - contents = utils.get_file_data(utils._DPDK_MAPPING_FILE) - except IOError: - pass + def test__update_dpdk_map_new(self): + utils._update_dpdk_map('eth1', '0000:03:00.0', '01:02:03:04:05:06', + 'vfio-pci') + contents = utils.get_file_data(utils._DPDK_MAPPING_FILE) dpdk_map = yaml.load(contents) if contents else [] self.assertEqual(1, len(dpdk_map)) dpdk_test = [{'name': 'eth1', 'pci_address': '0000:03:00.0', + 'mac_address': '01:02:03:04:05:06', 'driver': 'vfio-pci'}] self.assertListEqual(dpdk_test, dpdk_map) def test_update_dpdk_map_exist(self): dpdk_test = [{'name': 'eth1', 'pci_address': '0000:03:00.0', + 'mac_address': '01:02:03:04:05:06', 'driver': 'vfio-pci'}] utils.write_yaml_config(utils._DPDK_MAPPING_FILE, dpdk_test) - utils._update_dpdk_map('eth1', '0000:03:00.0', 'vfio-pci') - try: - contents = utils.get_file_data(utils._DPDK_MAPPING_FILE) - except IOError: - pass + utils._update_dpdk_map('eth1', '0000:03:00.0', '01:02:03:04:05:06', + 'vfio-pci') + contents = utils.get_file_data(utils._DPDK_MAPPING_FILE) dpdk_map = yaml.load(contents) if contents else [] self.assertEqual(1, len(dpdk_map)) @@ -158,8 +168,10 @@ class TestUtils(base.TestCase): utils.write_yaml_config(utils._DPDK_MAPPING_FILE, dpdk_test) dpdk_test = [{'name': 'eth1', 'pci_address': '0000:03:00.0', - 'driver': 'igb_uio'}] - utils._update_dpdk_map('eth1', '0000:03:00.0', 'igb_uio') + 'mac_address': '01:02:03:04:05:06', + 'driver': 'vfio-pci'}] + utils._update_dpdk_map('eth1', '0000:03:00.0', '01:02:03:04:05:06', + 'vfio-pci') try: contents = utils.get_file_data(utils._DPDK_MAPPING_FILE) except IOError: @@ -183,8 +195,10 @@ class TestUtils(base.TestCase): with open(os.path.join(tmpdir, nic), 'w') as f: f.write(nic) - utils._update_dpdk_map('eth1', '0000:03:00.0', 'igb_uio') - utils._update_dpdk_map('p3p1', '0000:04:00.0', 'igb_uio') + utils._update_dpdk_map('eth1', '0000:03:00.0', '01:02:03:04:05:06', + 'vfio-pci') + utils._update_dpdk_map('p3p1', '0000:04:00.0', '01:02:03:04:05:07', + 'igb_uio') nics = utils.ordered_active_nics() @@ -200,3 +214,6 @@ class TestUtils(base.TestCase): self.assertEqual('z1', nics[9]) shutil.rmtree(tmpdir) + + def test_interface_mac_raises(self): + self.assertRaises(IOError, utils.interface_mac, 'ens20f2p3') -- cgit 1.2.3-korg