libvirt points to wrong VF -channel, when trying to change MAC -address. libvirt v1 1.0.2 linux driver : ixgbe 3.17.3 Symptom description ---------------------------------- 1.) How the VF channels are seen in the Host ( correct in increasing address order ) command : ls -la /sys/bus/pci/devices/0000\:04\:00.0/ .................. lrwxrwxrwx 1 root root 0 Oct 17 12:25 virtfn0 -> ../0000:04:10.0/ lrwxrwxrwx 1 root root 0 Oct 17 12:25 virtfn1 -> ../0000:04:10.2/ lrwxrwxrwx 1 root root 0 Oct 17 12:25 virtfn10 -> ../0000:04:12.4/ lrwxrwxrwx 1 root root 0 Oct 17 12:25 virtfn11 -> ../0000:04:12.6/ lrwxrwxrwx 1 root root 0 Oct 17 12:25 virtfn12 -> ../0000:04:13.0/ lrwxrwxrwx 1 root root 0 Oct 17 12:25 virtfn13 -> ../0000:04:13.2/ lrwxrwxrwx 1 root root 0 Oct 17 12:25 virtfn2 -> ../0000:04:10.4/ lrwxrwxrwx 1 root root 0 Oct 17 12:25 virtfn3 -> ../0000:04:10.6/ lrwxrwxrwx 1 root root 0 Oct 17 12:25 virtfn4 -> ../0000:04:11.0/ lrwxrwxrwx 1 root root 0 Oct 17 12:25 virtfn5 -> ../0000:04:11.2/ lrwxrwxrwx 1 root root 0 Oct 17 12:25 virtfn6 -> ../0000:04:11.4/ lrwxrwxrwx 1 root root 0 Oct 17 12:25 virtfn7 -> ../0000:04:11.6/ lrwxrwxrwx 1 root root 0 Oct 17 12:25 virtfn8 -> ../0000:04:12.0/ lrwxrwxrwx 1 root root 0 Oct 17 12:25 virtfn9 -> ../0000:04:12.2/ ----------------------- 2.) How the libvirt sees them virsh nodedev-dumpxml pci_0000_04_00_0 <device> <name>pci_0000_04_00_0</name> <parent>pci_0000_00_03_0</parent> <driver> <name>ixgbe</name> </driver> <capability type='pci'> <domain>0</domain> <bus>4</bus> <slot>0</slot> <function>0</function> <product id='0x10fb'>82599EB 10-Gigabit SFI/SFP+ Network Connection</product> <vendor id='0x8086'>Intel Corporation</vendor> <capability type='virt_functions'> <address domain='0x0000' bus='0x04' slot='0x12' function='0x4'/> <address domain='0x0000' bus='0x04' slot='0x12' function='0x6'/> <address domain='0x0000' bus='0x04' slot='0x13' function='0x0'/> <address domain='0x0000' bus='0x04' slot='0x13' function='0x2'/> <address domain='0x0000' bus='0x04' slot='0x10' function='0x0'/> <address domain='0x0000' bus='0x04' slot='0x10' function='0x2'/> <address domain='0x0000' bus='0x04' slot='0x10' function='0x4'/> <address domain='0x0000' bus='0x04' slot='0x10' function='0x6'/> <address domain='0x0000' bus='0x04' slot='0x11' function='0x0'/> <address domain='0x0000' bus='0x04' slot='0x11' function='0x2'/> <address domain='0x0000' bus='0x04' slot='0x11' function='0x4'/> <address domain='0x0000' bus='0x04' slot='0x11' function='0x6'/> <address domain='0x0000' bus='0x04' slot='0x12' function='0x0'/> <address domain='0x0000' bus='0x04' slot='0x12' function='0x2'/> </capability> </capability> </device> 3.) Libvirt sets MAC -address in slot/position 5 instead of 1 ip link show eth10 87: eth10: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 2100 qdisc mq state UP mode DEFAULT qlen 1000 link/ether 00:1b:21:b9:a5:60 brd ff:ff:ff:ff:ff:ff vf 0 MAC 92:e2:6b:53:a7:c2, spoof checking off <------ this is the slot, MAC tried to set vf 1 MAC 0a:04:38:2c:79:35, spoof checking off vf 2 MAC b2:46:b6:91:44:2e, spoof checking off vf 3 MAC de:b6:28:da:20:44, spoof checking off vf 4 MAC 02:00:00:80:00:01, spoof checking off <--------- MAC sets in wrong slot vf 5 MAC 02:00:00:80:00:02, spoof checking off vf 6 MAC 02:00:00:80:00:20, spoof checking off vf 7 MAC 02:00:00:80:00:30, spoof checking off vf 8 MAC 52:54:00:de:f8:08, spoof checking off vf 9 MAC 5e:b0:d0:34:d6:cc, spoof checking off vf 10 MAC d2:88:5c:2d:db:b5, spoof checking off vf 11 MAC 6a:06:8a:9c:31:8b, spoof checking off vf 12 MAC 4a:38:be:8f:b3:bf, spoof checking off vf 13 MAC b6:c1:d4:12:d3:3d, spoof checking off 5.) Question : Why this happens in ixgbe -driver and when we try to use more than 10 VF's/physical port. ? -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list