← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1468332] [NEW] sriov agent causes incorrect port state if sriov driver doesn't support 'ip link vf state' setting

 

Public bug reported:

Some devices doesn't seem to support link state setting:

ubuntu@devstack1:~$ ip l sh p2p1
189: p2p1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether 0c:c4:7a:1e:ac:0e brd ff:ff:ff:ff:ff:ff
    vf 0 MAC 00:00:00:00:00:00, spoof checking on, link-state auto
    vf 1 MAC 00:00:00:00:00:00, spoof checking on, link-state auto
    vf 2 MAC 00:00:00:00:00:00, spoof checking on, link-state auto
    vf 3 MAC 00:00:00:00:00:00, spoof checking on, link-state auto
    vf 4 MAC 00:00:00:00:00:00, spoof checking on, link-state auto
    vf 5 MAC 00:00:00:00:00:00, spoof checking on, link-state auto
    vf 6 MAC 00:00:00:00:00:00, spoof checking on, link-state auto
ubuntu@devstack1:~$

ubuntu@devstack1:~$ sudo ip l set dev p2p1 vf 6 state disable
RTNETLINK answers: Operation not supported
ubuntu@devstack1:~$

ubuntu@devstack1:~$ ls -all /sys/class/net/p2p1/device/driver/module
lrwxrwxrwx 1 root root 0 Jun 24 14:30 /sys/class/net/p2p1/device/driver/module -> ../../../../module/ixgbe
ubuntu@devstack1:~$

As you can see, this happens with the 'ixgbe' driver.

This confuses sriov agent:

In neutron/plugins/sriovnicagent/sriov_nic_agent.py there's a
'treat_device' method that's called after port binding for example. The
sriov agent tries to set VF state to UP and fails, so the code doesn't
reach self.plugin_rpc.update_device_up() and the port ends up hanging in
BUILD state.

** Affects: neutron
     Importance: Undecided
     Assignee: Roman Bogorodskiy (novel)
         Status: In Progress

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1468332

Title:
  sriov agent causes incorrect port state if sriov driver doesn't
  support 'ip link vf state' setting

Status in OpenStack Neutron (virtual network service):
  In Progress

Bug description:
  Some devices doesn't seem to support link state setting:

  ubuntu@devstack1:~$ ip l sh p2p1
  189: p2p1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
      link/ether 0c:c4:7a:1e:ac:0e brd ff:ff:ff:ff:ff:ff
      vf 0 MAC 00:00:00:00:00:00, spoof checking on, link-state auto
      vf 1 MAC 00:00:00:00:00:00, spoof checking on, link-state auto
      vf 2 MAC 00:00:00:00:00:00, spoof checking on, link-state auto
      vf 3 MAC 00:00:00:00:00:00, spoof checking on, link-state auto
      vf 4 MAC 00:00:00:00:00:00, spoof checking on, link-state auto
      vf 5 MAC 00:00:00:00:00:00, spoof checking on, link-state auto
      vf 6 MAC 00:00:00:00:00:00, spoof checking on, link-state auto
  ubuntu@devstack1:~$

  ubuntu@devstack1:~$ sudo ip l set dev p2p1 vf 6 state disable
  RTNETLINK answers: Operation not supported
  ubuntu@devstack1:~$

  ubuntu@devstack1:~$ ls -all /sys/class/net/p2p1/device/driver/module
  lrwxrwxrwx 1 root root 0 Jun 24 14:30 /sys/class/net/p2p1/device/driver/module -> ../../../../module/ixgbe
  ubuntu@devstack1:~$

  As you can see, this happens with the 'ixgbe' driver.

  This confuses sriov agent:

  In neutron/plugins/sriovnicagent/sriov_nic_agent.py there's a
  'treat_device' method that's called after port binding for example.
  The sriov agent tries to set VF state to UP and fails, so the code
  doesn't reach self.plugin_rpc.update_device_up() and the port ends up
  hanging in BUILD state.

To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1468332/+subscriptions


Follow ups

References