Reviewed: https://review.openstack.org/499203 Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=b184558ab6a61571160346818dcf220d925c5b30 Submitter: Jenkins Branch: master
commit b184558ab6a61571160346818dcf220d925c5b30 Author: Moshe Levi <mosh...@mellanox.com> Date: Wed Aug 30 18:35:48 2017 +0300 ovs mech: bind only if user request switchdev In I77650be5f04775a72e2bdf694f93988825a84b72 we added vnic_type direct to the ovs mechanism drivers supported vnic_types. This cause problems when working with ovs and sriovnicswitch mechanism drivers in that order. In this case the ovs will bind the direct port instead of the sriovnicswitch. This change make ovs mech driver to bind the direct port only if user requested --binding-profile '{"capabilities": ["switchdev"]}' in the direct port if a user don't request this capability the SR-IOV legacy NIC mode is used. When enable-sriov-nic-features will be implemented in nova and libvirt will expose the switchdev capability then nova will be able to select a host which supports SR-IOV nic with switchdev mode. [1] - https://review.openstack.org/#/c/435954/11/specs/pike/approved/enable-sriov-nic-features.rst [2] - https://www.redhat.com/archives/libvir-list/2017-August/msg00583.html Closes-Bug: #1713590 Change-Id: I0b5f062bcbf02381bdf4f694fc039f9bb17a2db5 ** Changed in: neutron Status: In Progress => Fix Released -- You received this bug notification because you are a member of Yahoo! Engineering Team, which is subscribed to neutron. https://bugs.launchpad.net/bugs/1713590 Title: Plugging VFs no longer works without a readable phys_switch_id Status in neutron: Fix Released Bug description: Attempting to plug a VF fails with the following stack trace in the nova compute logs: 2017-08-28 17:50:34.716 2843 ERROR os_vif [req-9fe05e3e-f7ae-4b2d-be27-90d81fe0b9fd 66e36d5620c24020ac6fa6fb8e580b6c df21f729c47347b299783a4c1f83e774 - default default] Failed to plug vif VIFHostDevice(active=False,address=fa:16:3e:de:b2:7d,dev_address=0000:0b:11.0,dev_type='ethernet',has_traffic_filtering=True,id=b5858ca0-c315-4b2a-b1a9-82a5b508bf2f,network=Network(19c75cc1-a553-4d3d-9a1a-9ad010102e31),plugin='ovs',port_profile=VIFPortProfileOVSRepresentor,preserve_on_delete=True): PciDeviceNotFoundById: PCI device 0000:0b:11.0 not found 2017-08-28 17:50:34.716 2843 ERROR os_vif Traceback (most recent call last): 2017-08-28 17:50:34.716 2843 ERROR os_vif File "/usr/lib/python2.7/site-packages/os_vif/__init__.py", line 77, in plug 2017-08-28 17:50:34.716 2843 ERROR os_vif plugin.plug(vif, instance_info) 2017-08-28 17:50:34.716 2843 ERROR os_vif File "/usr/lib/python2.7/site-packages/vif_plug_ovs/ovs.py", line 191, in plug 2017-08-28 17:50:34.716 2843 ERROR os_vif self._plug_vf_passthrough(vif, instance_info) 2017-08-28 17:50:34.716 2843 ERROR os_vif File "/usr/lib/python2.7/site-packages/vif_plug_ovs/ovs.py", line 163, in _plug_vf_passthrough 2017-08-28 17:50:34.716 2843 ERROR os_vif pci_slot, pf_interface=True, switchdev=True) 2017-08-28 17:50:34.716 2843 ERROR os_vif File "/usr/lib/python2.7/site-packages/vif_plug_ovs/linux_net.py", line 373, in get_ifname_by_pci_address 2017-08-28 17:50:34.716 2843 ERROR os_vif raise exception.PciDeviceNotFoundById(id=pci_addr) 2017-08-28 17:50:34.716 2843 ERROR os_vif PciDeviceNotFoundById: PCI device 0000:0b:11.0 not found 2017-08-28 17:50:34.716 2843 ERROR os_vif It appears that patch https://review.openstack.org/#/c/484051/ altered get_ifname_by_pci_address() always run a new helper function _is_switchdev() (it appears that it is assumed that switchdev should always be True). This causes plugging VFs on systems with drivers that do not support a readable phys_switch_id to fail. I ran the code interactively on the host system to determine the actual exception: >>> f = open('/sys/class/net/enp11s17/phys_switch_id', 'r') >>> print f.readline() Traceback (most recent call last): File "<stdin>", line 1, in <module> IOError: [Errno 95] Operation not supported From what I can tell, this should also cause plugging to fail on systems that have no phys_switch_id file at all. To manage notifications about this bug go to: https://bugs.launchpad.net/neutron/+bug/1713590/+subscriptions -- Mailing list: https://launchpad.net/~yahoo-eng-team Post to : yahoo-eng-team@lists.launchpad.net Unsubscribe : https://launchpad.net/~yahoo-eng-team More help : https://help.launchpad.net/ListHelp