Implement USB controller extra spec for libvirt.

This is the implementation for the USB controller extra spec as
desired by the new libvirt spice-direct console mode. USB device
redirection support is a frequently requested feature for VDI users.

Change-Id: I71edd03b5c63a8028c23a746c01c59d303994144
Signed-off-by: Michael Still <mikal@stillhq.com>
This commit is contained in:
Michael Still
2025-07-26 16:05:49 +10:00
parent ed984eb756
commit 3eea2d58a9
10 changed files with 238 additions and 11 deletions
@@ -1,11 +1,12 @@
---
features:
- |
The `hw:sound_model` flavor extra spec and the matching `hw_sound_model`
image property were added to allow the configuration of a sound device
within an instance. This is useful with the new spice-direct console
type. The default remains no sound device, but when using the libvirt
hypervisor driver you can select from `sb16`, `es1370`, `pcspk`, `ac97`,
`ich6`, `ich9`, `usb`, and `virtio`. For most use-cases `usb` is
likely to be the best choice unless you have at least libvirt 8.2.0 and
libvirt 10.4.0.
The ``hw:sound_model`` flavor extra spec and the matching
``hw_sound_model`` image property were added to allow the
configuration of a sound device within an instance. This is useful
with the new spice-direct console type. The default remains no sound
device, but when using the libvirt hypervisor driver you can select
from ``sb16``, ``es1370``, ``pcspk``, ``ac97``, ``ich6``, ``ich9``,
``usb``, and ``virtio``. For most use-cases ``usb`` is likely to be
the best choice unless you have at least libvirt 8.2.0 and libvirt
10.4.0.
@@ -0,0 +1,13 @@
---
features:
- |
The ``hw:usb_model`` flavor extra spec and the matching ``hw_usb_model``
image property were added to allow the configuration of a USB controller
within an instance. This is useful with the new spice-direct console
type which supports passing through USB devices from the client to the
instance, such as a smart card reader. There is also an additional
``hw:redirected_usb_ports`` / ``hw_redirected_usb_ports`` pair which
controls how many ports the USB controller has. This number will
vary based on the USB controller selected. The default remains no
USB controller, but when using the libvirt hypervisor driver you can
now also select from ``qemu_xhci`` and ``nec_xhci``.