On 3/2/22 3:29 AM, Peter Krempa wrote:
On Tue, Mar 01, 2022 at 09:40:30 -0700, Jim Fehlig wrote:
On 2/17/22 04:56, Michal Privoznik wrote:
When I implemented user aliases I've invented this
virDomainDefFeatures flag so that individual drivers can signal
support for user provided aliases. The reasoning was that a
device alias might be part of guest ABI, or used in a different
way then in QEMU. Well, neither applies to the libxl driver, so
it's safe to allow user aliases there.

I suppose it is safe, but does it make sense since aliases are not used by
the driver in any way, and not supported by libxl?

In that case at least the libvirt side user-visible aspect of it does
make sense. Users can pick a stable alias for their device if they care
about that for any reason.

...for example, in the qemu driver, the alias can be used as an index to match when unplugging or updating a device; in the case of an <interface>, in the past you could match the device to unplug/update by looking at the MAC address or PCI address, but the MAC address isn't necessarily unique, and PCI address is usually determined by libvirt, so the management application may not know it. But the management application can just explicitly provide an alias in the <interface> XML when the domain is defined, and then later use that as the key when unplugging/updating.

Matching on alias when searching for an <interface> was added for use by the QEMU driver back in commit 114e3b4232, but fortunately this search is done by virDomainNetFindIdx(), which is also used by the libxl interface update and unplug functions, so libxl will get this functionality for free once Michal's patch is pushed.

(I haven't looked at whether or not other types of devices are using alias in this manner either in the qemu or libxl drivers, but I assume at least some of them are)


In the qemu impl we decided to propagate it to the hypervisor, but that
should be considered an implementation detail as the IDs of objects
(mostly) don't have guest visible meaning.


Reply via email to