Generated passthrough_whitelist shall use all the user_configs fields
Earlier, the derived pci passthrough whitelist includes the address, vendor and product details only. This is not sufficient for nova to allocate the VFs to the guests. Now, all the fields of the user_config shall be used in the derived passthrough_whitelist. Only either of 'address' or 'devname' shall be provided in passthrough_whitelist, and since the 'address' fields are must have to specify the induvidual VF's, the 'devname' is removed if present. Change-Id: I5a337a67893241e1443ca2c3721f4c9dd78b95c8
This commit is contained in:
parent
209e70fbbf
commit
d5820dba4a
@ -122,7 +122,7 @@ def get_pci_passthrough_whitelist(user_config, pf, pci_addresses,
|
|||||||
pci_passthrough_list = []
|
pci_passthrough_list = []
|
||||||
|
|
||||||
for pci in pci_addresses:
|
for pci in pci_addresses:
|
||||||
pci_passthrough = {}
|
pci_passthrough = dict(user_config)
|
||||||
address = {}
|
address = {}
|
||||||
pci_params = re.split('[:.]+', pci)
|
pci_params = re.split('[:.]+', pci)
|
||||||
address['domain'] = '.*'
|
address['domain'] = '.*'
|
||||||
@ -130,10 +130,11 @@ def get_pci_passthrough_whitelist(user_config, pf, pci_addresses,
|
|||||||
address['slot'] = pci_params[2]
|
address['slot'] = pci_params[2]
|
||||||
address['function'] = pci_params[3]
|
address['function'] = pci_params[3]
|
||||||
pci_passthrough['address'] = address
|
pci_passthrough['address'] = address
|
||||||
pci_passthrough['vendor_id'] = device_info[pf][0]
|
|
||||||
pci_passthrough['product_id'] = device_info[pf][1]
|
# devname and address fields can't co exist
|
||||||
if 'trusted' in user_config:
|
if 'devname' in pci_passthrough:
|
||||||
pci_passthrough['trusted'] = user_config['trusted']
|
del pci_passthrough['devname']
|
||||||
|
|
||||||
pci_passthrough_list.append(pci_passthrough)
|
pci_passthrough_list.append(pci_passthrough)
|
||||||
return pci_passthrough_list
|
return pci_passthrough_list
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user