I don’t think this merge really fixed the underlying problem as I see it… I rebooted my server and when the SR-IOV VFs were initialized on start of the first VM, the VFs are still all assigned completely randow hwaddr’s…
ip link show dev enp9s0f0
...
vf 50 link/ether 72:b9:e0:42:f9:de brd ff:ff:ff:ff:ff:ff, spoof checking on, link-state auto, trust on
vf 51 link/ether ea:94:02:af:c8:ad brd ff:ff:ff:ff:ff:ff, spoof checking on, link-state auto, trust on
vf 52 link/ether a6:1a:01:95:94:44 brd ff:ff:ff:ff:ff:ff, spoof checking on, link-state auto, trust on
vf 53 link/ether 8e:90:e3:2b:71:b3 brd ff:ff:ff:ff:ff:ff, spoof checking on, link-state auto, trust on
vf 54 link/ether b6:16:b8:e1:b4:cf brd ff:ff:ff:ff:ff:ff, spoof checking on, link-state auto, trust on
vf 55 link/ether 52:c1:dd:2d:bb:8d brd ff:ff:ff:ff:ff:ff, spoof checking on, link-state auto, trust on
vf 56 link/ether fe:69:c2:eb:48:ff brd ff:ff:ff:ff:ff:ff, spoof checking on, link-state auto, trust on
vf 57 link/ether 02:9c:61:a9:4f:86 brd ff:ff:ff:ff:ff:ff, spoof checking on, link-state auto, trust on
vf 58 link/ether 3e:9a:5a:df:35:3f brd ff:ff:ff:ff:ff:ff, spoof checking on, link-state auto, trust on
vf 59 link/ether 76:c4:91:cb:40:96 brd ff:ff:ff:ff:ff:ff, spoof checking on, link-state auto, trust on
vf 60 link/ether 4a:f3:27:d7:2e:05 brd ff:ff:ff:ff:ff:ff, spoof checking on, link-state auto, trust on
vf 61 link/ether 66:ae:a8:ea:4d:f6 brd ff:ff:ff:ff:ff:ff, spoof checking on, link-state auto, trust on
vf 62 link/ether e6:8d:8b:aa:fd:58 brd ff:ff:ff:ff:ff:ff, spoof checking on, link-state auto, trust on
vf 63 link/ether 06:5e:0a:6a:fd:a3 brd ff:ff:ff:ff:ff:ff, spoof checking on, link-state auto, trust on
None are set with a vendor prefix of 00:16:3e as I would expect, so I still have to make sure to use the "incus device override … " to set hwaddr’s on each new VM after creation if I don’t want something completely random to be used and stored in the volatile state config.
I also have to manually turn on trust mode for the i40e driver (Intel x710 based card) to allow for the hwaddr’s to be changed prior to starting any VMs otherwise networking just doesn’t work. I get messages in the kernel log like:
i40e 0000:09:00.0: VF attempting to override administratively set MAC address, bring down and up the VF interface to resume normal operation
So to fix that, I do this and it’s happy to allow MAC changes on VM startup:
# for i in {0..63}; do ip link set dev enp9s0f0 vf $i spoof on trust on; done