- Solved
- Urgent
Reproduce -
Enable sr-iov and add vfs in the driver properly per the instructions.
Note that no ip commands work on virtual function devices, they don't show in `ip link show` correctly, and attaching a vm to them results in errors or non-operable interfaces.
Example -
# lspci | grep X-4
83:00.0 Ethernet controller: Mellanox Technologies MT27710 Family [ConnectX-4 Lx]
83:00.1 Ethernet controller: Mellanox Technologies MT27710 Family [ConnectX-4 Lx Virtual Function]
# ip link show eth1
15: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
link/ether 98:03:9b:94:8d:30 brd ff:ff:ff:ff:ff:ff
Note that the VF does not show under eth1 as a vf, it shows as eth2:
# ip link show eth2 79: eth2: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000 link/ether 56:17:3a:18:05:d6 brd ff:ff:ff:ff:ff:ff
If I unbind the vf via `/sys/bus/pci/drivers/mlx5_core/unbind` it does not show at all under `ip link`.
With the vf bound _or_ unbound I get the following when trying to do _any_ ip link set operations on it -
# ip link set eth2 vf 0 mac 52:54:00:96:19:c1
RTNETLINK answers: Operation not supported
Another interesting point is that if I try to use it in kvm with an `<interface>` element I get this error when trying to start the vm - `error: internal error: missing IFLA_VF_INFO in netlink response`.
If I use a `<hostdev>` element I can start the vm and it seems to recognize it but network traffic does not work.
This all works fine in ubuntu -
If you need a diagnostics file I can send it in DM. Not comfortable uploading all that info to the public.