On Thu, Sep 11, 2025 at 2:18 PM Beñat Gartzia Arruabarrena
<bgart...@redhat.com> wrote:
>
> Hello,
>
> I am trying to find a solution to an issue related to vhost-vdpa devices
> and random mac addresses being assigned to them, if not set by the user.
>
> vDPA devices are assigned a MAC address the time they are created. That
> happens before creating the VM with qemu or libvirt. If the mac address
> of the vdpa device in the qemu command line does not match the mac
> address that was assigned to the vdpa device at creation time, the
> network traffic will not work.

Note that MAC address is not the only thing that needs to be worried here:

1) MTU
2) queue pairs
3) host_features

etc

>
> If the user does not explicitly configure a mac address for the vdpa
> device in the domain xml, libvirt will generate a random one and use it
> instead in the qemu command line. This leads to an interface that does
> not work.
>
> If I understood correctly, qemu is not able to update the mac address of
> the vdpa device based on the command line configuration, so setting the
> mac address generated by libvirt is not an option. Currently, a patch
> that introduces a set of checks comparing cmdline and device mac
> addresses is under review:
>
>     
> https://lore.kernel.org/qemu-devel/20250417102522.4125379-1-l...@redhat.com/
>
> The implementation also adds the logic to configure the vdpa device mac
> address in the virtio net device if a mac address was not provided in
> the command line.
>
> I was trying to write a patch such that it would allow vdpa devices to
> have an empty mac address in the domain xml as an exception. The draft
> allowed such case in virDomainNetDefParseXML and virDomainNetDefFormat
> and avoided writing an empty mac address in the qemu command line by
> modifying the logic in qemuBuildNicDevProps. However, there are plenty
> of other functions and places that would expect the mac address to be
> there. Guarding against the empty mac addr case in all those places, is
> not desirable, I think.
>
> I'm not sure if libvirt could read the mac address of the device being
> assigned to the VM instead of generating a random mac address in the
> case of vdpa devices. It could probably require some code from qemu
> being duplicated. Could that be an acceptable alternative?  I am also
> looking for any other recommendation on how I could look into this
> issue.

Or maybe introduce an option to not specify any guest visible
attributes via qemu cli.

Thanks

>
> Thanks a lot.
>
> Regards,
> Beñat
>

Reply via email to