PCI-Passthrough documentation is incorrect while trying to pass through a NIC
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Compute (nova) |
Invalid
|
Low
|
Unassigned |
Bug Description
As per the documentation shown below
https:/
In order to achieve PCI passthrough of a network device, it states that we should create a 'flavor' based on the alias and then associate a flavor to the server create function.
Steps to follow:
Create an Alias:
[pci]
alias = { "vendor_id":"8086", "product_
Create a Flavor:
[pci]
alias = { "vendor_id":"8086", "product_
Add a whitelist:
[pci]
passthrough_
Create a Server with the Flavor:
# openstack server create --flavor m1.large --image cirros-
With the above command, the VM creation errors out and we see a PortBindingFailure.
The reason for the PortBindingFailure is the 'vif_type' is always set to 'BINDING_FAILED".
The reason being, flavor does not mention about the 'vnic_type'
Not sure if there is any way to specify the info in the flavor.
you are conflating two different things
alias are not used for neutron based sriov networking
and nic that are pastthoyhg via flaovr aliase are not managed by neutorn or the sriov nic agent.
the documentation in https:/ /docs.openstack .org/nova/ pike/admin/ pci-passthrough .html
describe how to do generic pci pasthoh of a host pci device not neutron sriov driect-phyical passthough.
to give a PF to a vm that is managed by neutron you create a port with vnic_type= direct- physical.
in that scenario when whitelisting the nic you also need to add the physical_network in the whitelist.
the flavor and alias based approach described in https:/ /docs.openstack .org/nova/ pike/admin/ pci-passthrough .html
is intened for passing through device like gpus or acllerator cards like intel qat devices.
the docs use the vendor and product ids of an intel niantic simple because that is what we tested
this functionality with when it was implemented but we could have used a QAT device in the example which
not work with neturon sriov.
| [pci]
| alias = '{
| "name": "QuickAssist",
| "product_id": "0443",
| "vendor_id": "8086",
| "device_type": "type-PCI",
| "numa_policy": "legacy"
| }'