Verification successful on xenial-proposed. 
Updated verification tags.

Steps
=====

Setup 1) Enable xenial-proposed and install the iproute2 package:
---

$ echo 'deb http://archive.ubuntu.com/ubuntu xenial-proposed main restricted' | 
sudo tee /etc/apt/sources.list.d/xenial-proposed.list
deb http://archive.ubuntu.com/ubuntu xenial-proposed main restricted

$ sudo apt-get update

$ apt-cache madison iproute2 | grep xenial-proposed
  iproute2 | 4.3.0-1ubuntu3.16.04.4 | http://archive.ubuntu.com/ubuntu 
xenial-proposed/main amd64 Packages

$ sudo apt-get install -y iproute2

$  dpkg -s iproute2 | grep Version
Version: 4.3.0-1ubuntu3.16.04.4


Setup 2) Configure 2 VFs in the ixgbe driver:
---

# lspci -s 08:00
08:00.0 Ethernet controller: Intel Corporation 82599 10 Gigabit TN Network 
Connection (rev 01)
08:00.1 Ethernet controller: Intel Corporation 82599 10 Gigabit TN Network 
Connection (rev 01)

# echo 2 > /sys/bus/pci/devices/0000\:08\:00.0/sriov_numvfs

# dmesg | grep Virtual
[  817.815245] ixgbevf: Intel(R) 10 Gigabit PCI Express Virtual Function 
Network Driver - version 2.12.1-k
[  818.825923] ixgbevf 0000:08:10.0: Intel(R) 82599 Virtual Function
[  818.837931] ixgbevf 0000:08:10.2: Intel(R) 82599 Virtual Function

# lspci -s 08:10
08:10.0 Ethernet controller: Intel Corporation 82599 Ethernet Controller 
Virtual Function (rev 01)
08:10.2 Ethernet controller: Intel Corporation 82599 Ethernet Controller 
Virtual Function (rev 01)


Verification 1) Check for 'trust' in 'ip link help':
---

# ip link help 2>&1 | grep trust
                                   [ trust { on | off} ] ]


Verification 2) Check for 'trust' in 'ip link show'
---

# ip link show dev eth0
6: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc mq state UP mode 
DEFAULT group default qlen 1000
    link/ether 68:05:ca:28:ff:9a brd ff:ff:ff:ff:ff:ff
    vf 0 MAC 00:00:00:00:00:00, spoof checking on, link-state auto, trust off
    vf 1 MAC aa:fd:21:3f:93:1b, spoof checking on, link-state auto, trust off


Verification 3) Set 'trust' on/off in the VFs
---

Trust setting is off by default:

# ip link show dev eth0 | grep trust
    vf 0 MAC 00:00:00:00:00:00, spoof checking on, link-state auto, trust off
    vf 1 MAC aa:fd:21:3f:93:1b, spoof checking on, link-state auto, trust off

Enable trust setting on vf0:

# ip link set eth0 vf 0 trust on
# ip link show dev eth0 | grep trust
    vf 0 MAC 00:00:00:00:00:00, spoof checking on, link-state auto, trust on
    vf 1 MAC aa:fd:21:3f:93:1b, spoof checking on, link-state auto, trust off

Enable trust setting on vf1:

# ip link set eth0 vf 1 trust on
# ip link show dev eth0 | grep trust
    vf 0 MAC 00:00:00:00:00:00, spoof checking on, link-state auto, trust on
    vf 1 MAC aa:fd:21:3f:93:1b, spoof checking on, link-state auto, trust on

Disable trust setting on vf0:

# ip link set eth0 vf 0 trust off
# ip link show dev eth0 | grep trust
    vf 0 MAC 00:00:00:00:00:00, spoof checking on, link-state auto, trust off
    vf 1 MAC aa:fd:21:3f:93:1b, spoof checking on, link-state auto, trust on

Disable trust setting on vf1:

# ip link set eth0 vf 1 trust off
# ip link show dev eth0 | grep trust
    vf 0 MAC 00:00:00:00:00:00, spoof checking on, link-state auto, trust off
    vf 1 MAC aa:fd:21:3f:93:1b, spoof checking on, link-state auto, trust off

** Tags removed: verification-needed verification-needed-xenial
** Tags added: verification-done verification-done-xenial

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to iproute2 in Ubuntu.
https://bugs.launchpad.net/bugs/1800877

Title:
  iproute2/xenial: Add support for the VF Trust setting (fix IPv6
  multicast under SR-IOV on Mellanox adapters)

Status in iproute2 package in Ubuntu:
  Fix Released
Status in iproute2 source package in Xenial:
  Fix Committed

Bug description:
  [Impact]

   * An VM's VF cannot receive IPv6 multicast traffic
     from other VMs' VFs in the same Mellanox adapter
     _if_ its VF trust setting is not enabled, and on
     Xenial currently iproute2 _cannot_ enable it.

   * This breaks IPv6 NDP (Neighbor Discovery Protocol)
     in that scenario.

   * This upload adds three iproute2 upstream commits
     to enable/disable the VF setting, which resolves
     that problem/limitation.

  [Test Case]

   * Check 'ip link help' for the 'trust' option:

     Before:

       # ip link help 2>&1 | grep trust
       <nothing>

     After:

       # ip link help 2>&1 | grep trust
       [ trust { on | off} ] ]

   * Check 'ip link show dev PF' for 'trust on|off' field in VFs.

     Before: (trust field _is not_ present)

       # ip link show dev ens1f0
       ...
       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

     After: (trust field _is_ present)

       # ip link show dev ens1f0
       ...
       vf 0 MAC 00:00:00:00:00:00, spoof checking on, link-state auto, trust off
       vf 1 MAC 00:00:00:00:00:00, spoof checking on, link-state auto, trust off

   * Set the VF trust on/off and check it:

       Set VF 0 trust on:

       # ip link set ens1f0 vf 0 trust on
       # ip link show dev ens1f0 | grep trust
       vf 0 MAC 00:00:00:00:00:00, spoof checking on, link-state auto, trust on
       vf 1 MAC 00:00:00:00:00:00, spoof checking on, link-state auto, trust off

       Set VF 0 trust off:

       # ip link set ens1f0 vf 0 trust off
       # ip link show dev ens1f0 | grep trust
       vf 0 MAC 00:00:00:00:00:00, spoof checking on, link-state auto, trust off
       vf 1 MAC 00:00:00:00:00:00, spoof checking on, link-state auto, trust off

  [Regression Potential]

   * Regression potential is low because the commits just add the
     netlink attribute for the userspace-kernel interface and the
     ways to set/clear it, and show the current value to the user.

   * Regressions could happen _if_ the user turns the setting on
     (it's disabled by default) and there's a problem/bug likely
     in _other_ component that depends on that setting (which is
     something to fix on such component).

  [Other Info]

   * The users that reported this problem have verified
     the test package with these changes, and confirmed
     that it now works correctly for IPv6 NDP/multicast.

   * Upstream commits:
   
https://git.kernel.org/pub/scm/network/iproute2/iproute2.git/commit/?id=dddf1b44126e
  
https://git.kernel.org/pub/scm/network/iproute2/iproute2.git/commit/?id=fe9322781e63
  
https://git.kernel.org/pub/scm/network/iproute2/iproute2.git/commit/?id=b6d77d9ee312

   * Only affect Xenial release :

   # rmadison iproute2
   iproute2 | 4.3.0-1ubuntu3.16.04.3 | xenial-updates
   iproute2 | 4.15.0-2ubuntu1        | bionic         
   iproute2 | 4.18.0-1ubuntu2        | cosmic        
   iproute2 | 4.18.0-1ubuntu2        | disco  

   # iproute2 upstream vcs

   $ git describe --contains dddf1b44126e
   v4.4.0~67

   $ git describe --contains b6d77d9ee312
   v4.5.0~47

   $ git describe --contains fe9322781e63
   v4.6.0~32

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/iproute2/+bug/1800877/+subscriptions

-- 
Mailing list: https://launchpad.net/~touch-packages
Post to     : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to