← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1713590] Re: Plugging VFs no longer works without a readable phys_switch_id

 

** Project changed: os-vif => neutron

-- 
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:
  Triaged

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