Dear Team,

I am reaching out regarding an issue I encountered with libvirt and MAC address conflicts. Below is a summary of the situation:

  1. Initially, the vNIC's MAC address was different from the target VM's MAC address.
  2. After modifying the vNIC's MAC address to match the VM's MAC address, the network was interrupted.
  3. After rebooting the VM, the vNIC's MAC address was automatically modified again.

I have observed the following kernel logs during this process:

Dec 24 16:59:40 zstack-manager kernel: br_enp2s0: port 14(vnic43.0) entered disabled state Dec 24 16:59:40 zstack-manager kernel: device vnic43.0 left promiscuous mode Dec 24 16:59:40 zstack-manager kernel: br_enp2s0: port 14(vnic43.0) entered disabled state Dec 24 17:00:11 zstack-manager kernel: br_enp2s0: port 14(vnic43.0) entered blocking state Dec 24 17:00:11 zstack-manager kernel: br_enp2s0: port 14(vnic43.0) entered disabled state Dec 24 17:00:11 zstack-manager kernel: device vnic43.0 entered promiscuous mode Dec 24 17:00:11 zstack-manager kernel: br_enp2s0: port 14(vnic43.0) entered blocking state Dec 24 17:00:11 zstack-manager kernel: br_enp2s0: port 14(vnic43.0) entered forwarding state

I am looking to understand the underlying code that handles the automatic modification of the vNIC's MAC address after the conflict and how the network interruption occurs. Can you help direct me to the relevant code segment or provide any insights into this behavior?

Thank you for your assistance.

Best regards,