Example #1
0
def get_dpdk_devargs(ifname, noop):
    if not noop:
        vendor_id = common.get_vendor_id(ifname)
        device_id = common.get_device_id(ifname)
        if vendor_id == "0x15b3":
            logger.info("Getting devargs for Mellanox cards")
            if device_id == "0x1007":
                # Some NICs (i.e. Mellanox ConnectX-3) have only one PCI
                # address associated with multiple ports. Using a PCI
                # device won’t work. Instead, we should use
                # "class=eth,mac=<MAC>"
                dpdk_devargs = f"class=eth,mac={common.interface_mac(ifname)}"
            elif is_active_nic(ifname):
                # Other Mellanox devices are active and they are not stored
                # in dpdk_mapping.yaml file, so we need to get their pci
                # address with ethtool.
                dpdk_devargs = get_pci_address(ifname, noop)
            elif common.is_vf_by_name(ifname):
                # For Mellanox devices the VFs bound with DPDK shall
                # be treated the same as VFs of other devices
                dpdk_devargs = get_pci_address(ifname, noop)
            else:
                msg = ("Unable to get devargs for interface %s" % ifname)
                raise InvalidInterfaceException(msg)
        else:
            logger.info("Getting stored PCI address as devarg")
            dpdk_devargs = get_stored_pci_address(ifname, noop)
        logger.debug("Devargs found: %s" % (dpdk_devargs))
        return dpdk_devargs
Example #2
0
 def test_get_device_id_exception(self):
     mocked_open = mock.mock_open()
     mocked_open.side_effect = IOError
     with mock.patch('os_net_config.utils.open', mocked_open, create=True):
         device = common.get_device_id('nic2')
         self.assertEqual(None, device)
Example #3
0
 def test_get_device_id_success(self):
     mocked_open = mock.mock_open(read_data='0x1003\n')
     with mock.patch('os_net_config.common.open', mocked_open, create=True):
         device = common.get_device_id('nic2')
         self.assertEqual('0x1003', device)