PCI-Passthrough documentation is incorrect while trying to pass through a NIC

Bug #1768917 reported by Swaminathan Vasudevan
12
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OpenStack Compute (nova)
Invalid
Low
Unassigned

Bug Description

As per the documentation shown below

https://docs.openstack.org/nova/pike/admin/pci-passthrough.html

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_id":"154d", "device_type":"type-PF", "name":"a1" }

Create a Flavor:
[pci]
alias = { "vendor_id":"8086", "product_id":"154d", "device_type":"type-PF", "name":"a1" }

Add a whitelist:
[pci]
passthrough_whitelist = { "address": "0000:41:00.0" }

Create a Server with the Flavor:

# openstack server create --flavor m1.large --image cirros-0.3.5-x86_64-uec --wait test-pci

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'='direct-physical' without this information the sriov mechanism driver is not able to bind the port.

Not sure if there is any way to specify the info in the flavor.

Tags: pci docs
Revision history for this message
sean mooney (sean-k-mooney) wrote :

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"
        | }'

Changed in nova:
importance: Undecided → Low
status: New → Invalid
tags: added: docs
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.