[PATCH RFC 0/3] Reflect MAC change in live domain XML

Martin Kletzander mkletzan at redhat.com
Wed Jul 26 14:39:41 UTC 2023


On Wed, Jun 28, 2023 at 12:53:34PM +0200, Michal Privoznik wrote:
>These are RFC patches. I'd like to start a discussion on the following
>problem:
>

We need to decide if we want to inform users in the live XML that the
MAC changed (no matter the setting of trustGuestRxFilters), idea below.

We could then add a flag to virDomainInterfaceAddresses() that switches
to the other MAC address.

>A mgmt application has info tied to an <interface/> (stored elsewhere,
>not important right now). And they use basically the only piece of
>information that's visible in both host and guest: MAC address. No, user
>aliases are not visible in the guest. Therefore, when they query the
>guest-agent (e.g. via 'virsh domifaddr --source agent') they can
>reconstruct their knowledge on NICs.
>
>But there's a catch - if user decides to change MAC address form inside
>of the VM. Then the only link between host and guest is broken.
>
>Now, we could make the guest-agent report both current and permanent MAC
>address. But unfortunately, libvirt's virDomainInterfaceAddresses() is
>not prepared for that.
>
>Now, I don't recall why we decided to not update MAC address in the live
>XML on change, but maybe somebody else does. Or we can pass the event
>from QEMU to the mgmt application so that it can update its state.
>

Could that be that referring to the interface would be troublesome?  Can
we add something like "current MAC address" in case it was changed?

>Michal Prívozník (3):
>  qemu: Reflect MAC address change in live domain XML
>  Introduce NIC_MAC_CHANGE event
>  qemu: Emit NIC_MAC_CHANGE event
>
> examples/c/misc/event-test.c        | 14 +++++
> include/libvirt/libvirt-domain.h    | 28 +++++++++
> src/conf/domain_event.c             | 93 +++++++++++++++++++++++++++++
> src/conf/domain_event.h             | 12 ++++
> src/libvirt_private.syms            |  2 +
> src/qemu/qemu_domain.c              | 34 ++++++++++-
> src/qemu/qemu_domain.h              |  3 +-
> src/qemu/qemu_driver.c              | 11 ++--
> src/qemu/qemu_process.c             |  2 +-
> src/remote/remote_daemon_dispatch.c | 32 ++++++++++
> src/remote/remote_driver.c          | 34 +++++++++++
> src/remote/remote_protocol.x        | 17 +++++-
> tools/virsh-domain-event.c          | 20 +++++++
> 13 files changed, 294 insertions(+), 8 deletions(-)
>
>-- 
>2.39.3
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20230726/f9c2b232/attachment.sig>


More information about the libvir-list mailing list