def test_ordered_active_nics_with_dpdk_mapping(self): tmpdir = tempfile.mkdtemp() self.stub_out('os_net_config.utils._SYS_CLASS_NET', tmpdir) def test_is_available_nic(interface_name, check_active): return True self.stub_out('os_net_config.utils._is_available_nic', test_is_available_nic) for nic in ['a1', 'em1', 'em2', 'eth2', 'z1', 'enp8s0', 'enp10s0', 'enp1s0f0']: with open(os.path.join(tmpdir, nic), 'w') as f: f.write(nic) 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() self.assertEqual('em1', nics[0]) self.assertEqual('em2', nics[1]) self.assertEqual('eth1', nics[2]) # DPDK bound nic self.assertEqual('eth2', nics[3]) self.assertEqual('a1', nics[4]) self.assertEqual('enp1s0f0', nics[5]) self.assertEqual('enp8s0', nics[6]) self.assertEqual('enp10s0', nics[7]) self.assertEqual('p3p1', nics[8]) # DPDK bound nic self.assertEqual('z1', nics[9]) shutil.rmtree(tmpdir)
def test_ordered_active_nics_with_dpdk_mapping(self): tmpdir = tempfile.mkdtemp() self.stubs.Set(utils, '_SYS_CLASS_NET', tmpdir) def test_is_active_nic(interface_name): return True self.stubs.Set(utils, '_is_active_nic', test_is_active_nic) for nic in ['a1', 'em1', 'em2', 'eth2', 'z1', 'enp8s0', 'enp10s0', 'enp1s0f0']: with open(os.path.join(tmpdir, nic), 'w') as f: f.write(nic) 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() self.assertEqual('em1', nics[0]) self.assertEqual('em2', nics[1]) self.assertEqual('eth1', nics[2]) # DPDK bound nic self.assertEqual('eth2', nics[3]) self.assertEqual('a1', nics[4]) self.assertEqual('enp1s0f0', nics[5]) self.assertEqual('enp8s0', nics[6]) self.assertEqual('enp10s0', nics[7]) self.assertEqual('p3p1', nics[8]) # DPDK bound nic self.assertEqual('z1', nics[9]) shutil.rmtree(tmpdir)
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_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.safe_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(common.DPDK_MAPPING_FILE, dpdk_test) utils._update_dpdk_map('eth1', '0000:03:00.0', '01:02:03:04:05:06', 'vfio-pci') contents = common.get_file_data(common.DPDK_MAPPING_FILE) dpdk_map = yaml.safe_load(contents) if contents else [] self.assertEqual(1, len(dpdk_map)) self.assertListEqual(dpdk_test, dpdk_map)
def test_update_dpdk_map_value_change(self): dpdk_test = [{'name': 'eth1', 'pci_address': '0000:03:00.0', 'driver': 'vfio-pci'}] utils.write_yaml_config(utils._DPDK_MAPPING_FILE, dpdk_test) dpdk_test = [{'name': 'eth1', 'pci_address': '0000:03:00.0', '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: pass dpdk_map = yaml.load(contents) if contents else [] self.assertEqual(1, len(dpdk_map)) self.assertListEqual(dpdk_test, dpdk_map)
def test_update_dpdk_map_value_change(self): dpdk_test = [{'name': 'eth1', 'pci_address': '0000:03:00.0', 'driver': 'vfio-pci'}] utils.write_yaml_config(utils._DPDK_MAPPING_FILE, dpdk_test) dpdk_test = [{'name': 'eth1', 'pci_address': '0000:03:00.0', '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: pass dpdk_map = yaml.safe_load(contents) if contents else [] self.assertEqual(1, len(dpdk_map)) self.assertListEqual(dpdk_test, dpdk_map)
def test_ordered_active_nics_with_dpdk_mapping_of_vf(self): tmpdir = tempfile.mkdtemp() self.stub_out('os_net_config.common.SYS_CLASS_NET', tmpdir) tmp_pci_dir = tempfile.mkdtemp() self.stub_out('os_net_config.common._SYS_BUS_PCI_DEV', tmp_pci_dir) physfn_path = common._SYS_BUS_PCI_DEV + '/0000:05:01.1/physfn' os.makedirs(physfn_path) def test_is_available_nic(interface_name, check_active): return True self.stub_out('os_net_config.utils._is_available_nic', test_is_available_nic) utils._update_dpdk_map('eth2_0', '0000:06:01.1', 'AA:02:03:04:05:FE', 'vfio-pci') utils.update_sriov_vf_map('eth2', 0, 'eth2_0') nics = utils.ordered_active_nics() self.assertEqual(len(nics), 0) shutil.rmtree(tmpdir) shutil.rmtree(tmp_pci_dir)
def test_ordered_active_nics_with_dpdk_mapping(self): tmpdir = tempfile.mkdtemp() self.stub_out('os_net_config.common.SYS_CLASS_NET', tmpdir) tmp_pci_dir = tempfile.mkdtemp() self.stub_out('os_net_config.utils._SYS_BUS_PCI_DEV', tmp_pci_dir) physfn_path = utils._SYS_BUS_PCI_DEV + '/0000:05:01.1/physfn' os.makedirs(physfn_path) def test_is_available_nic(interface_name, check_active): return True self.stub_out('os_net_config.utils._is_available_nic', test_is_available_nic) for nic in [ 'a1', 'em1', 'em2', 'eth2', 'z1', 'enp8s0', 'enp10s0', 'enp1s0f0' ]: with open(os.path.join(tmpdir, nic), 'w') as f: f.write(nic) 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') utils._update_dpdk_map('p3p0_0', '0000:05:01.1', 'AA:02:03:04:05:FF', 'vfio-pci') nics = utils.ordered_active_nics() self.assertEqual('em1', nics[0]) self.assertEqual('em2', nics[1]) self.assertEqual('eth1', nics[2]) # DPDK bound nic self.assertEqual('eth2', nics[3]) self.assertEqual('a1', nics[4]) self.assertEqual('enp1s0f0', nics[5]) self.assertEqual('enp8s0', nics[6]) self.assertEqual('enp10s0', nics[7]) self.assertEqual('p3p1', nics[8]) # DPDK bound nic self.assertEqual('z1', nics[9]) shutil.rmtree(tmpdir) shutil.rmtree(tmp_pci_dir)