Bug 1459773 - Order of the interfaces is not honored when using virt and SR-IOV interface
Order of the interfaces is not honored when using virt and SR-IOV interface
Status: CLOSED NOTABUG
Product: Red Hat OpenStack
Classification: Red Hat
Component: openstack-nova (Show other bugs)
11.0 (Ocata)
Unspecified Unspecified
unspecified Severity high
: ---
: ---
Assigned To: Eoghan Glynn
Joe H. Rahme
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2017-06-08 03:23 EDT by Itzik Brown
Modified: 2017-06-14 08:28 EDT (History)
10 users (show)

See Also:
Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2017-06-14 08:28:53 EDT
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)


External Trackers
Tracker ID Priority Status Summary Last Updated
Launchpad 1696664 None None None 2017-06-08 03:23 EDT

  None (edit)
Description Itzik Brown 2017-06-08 03:23:04 EDT
Description of problem:
When launching an instance using the following:
# nova boot --flavor m1.small --image <image id> --nic net-id=<net id> --nic port-id=<port id> vm1

Where the first interface is a non SR-IOV port and the second one is SR-IOV port the order is not preserved ,i.e. The first interface of the instance is the SR-IOV port.

Version-Release number of selected component (if applicable):
openstack-nova-compute-15.0.3-3.el7ost.noarch

How reproducible:


Steps to Reproduce:
1.
2.
3.

Actual results:


Expected results:


Additional info:
Comment 1 Stephen Gordon 2017-06-08 09:15:11 EDT
(In reply to Itzik Brown from comment #0)
> Description of problem:
> When launching an instance using the following:
> # nova boot --flavor m1.small --image <image id> --nic net-id=<net id> --nic
> port-id=<port id> vm1
> 
> Where the first interface is a non SR-IOV port and the second one is SR-IOV
> port the order is not preserved ,i.e. The first interface of the instance is
> the SR-IOV port.
> 
> Version-Release number of selected component (if applicable):
> openstack-nova-compute-15.0.3-3.el7ost.noarch
> 
> How reproducible:
> 
> 
> Steps to Reproduce:
> 1.
> 2.
> 3.
> 
> Actual results:
> 
> 
> Expected results:
> 
> 
> Additional info:

I believe this is expected behavior (read: presentation and detection of device order is unpredictable even in physical systems) and a large part of why virt-device-role-tagging exists.
Comment 3 Daniel Berrange 2017-06-14 06:27:35 EDT
(In reply to Itzik Brown from comment #0)
> Description of problem:
> When launching an instance using the following:
> # nova boot --flavor m1.small --image <image id> --nic net-id=<net id> --nic
> port-id=<port id> vm1
> 
> Where the first interface is a non SR-IOV port and the second one is SR-IOV
> port the order is not preserved ,i.e. The first interface of the instance is
> the SR-IOV port.

When libvirt assigns PCI addresses to devices it iterates over each type of device. SRIOV devices are expressed as host-assigned devices, whereas non-SRIOV devices are expressed as NICs. Thus ordering from the nova boot command won't be honoured when assigning device addresses for these different types of NIC. Even if addresses are honoured, you can't assume the guest OS will detect them in device order. As Steve says, this is why you need to use device tagging to identify NICs.

Note You need to log in before you can comment on or make changes to this bug.