[PATCH 0/5] qemu: Refresh rx-filters more often
by Michal Privoznik
See the last patch for explanation. I haven't found a gitlab issue for
this nor a bug open. But I remember somebody complaining about problems
during restore from a save file, on IRC perhaps?
Michal Prívozník (5):
processNicRxFilterChangedEvent: Free @guestFilter and @hostFilter
automatically
qemu: Move parts of NIC_RX_FILTER_CHANGED even handling into a
function
qemu: Acquire QUERY job instead of MODIFY when handling
NIC_RX_FILTER_CHANGED event
qemu: Refresh state after restore from a save image
qemu: Refresh rx-filters more often
src/qemu/qemu_domain.c | 254 ++++++++++++++++++++++++++++++++++++++
src/qemu/qemu_domain.h | 5 +
src/qemu/qemu_driver.c | 250 +------------------------------------
src/qemu/qemu_process.c | 27 ++++
src/qemu/qemu_saveimage.c | 2 +
5 files changed, 291 insertions(+), 247 deletions(-)
--
2.37.3
2 years, 1 month
[PATCH v2 0/9] qemu: tpm: Add support for migration across shared storage
by Stefan Berger
This series of patches adds support for migrating vTPMs across hosts whose
storage has been set up to share the directory structure holding the state
of the TPM (swtpm). A new migration flag VIR_MIGRATE_TPM_SHARED_STORAGE is
added to enable this. This flag influences the management of the directory
structure holding the TPM state, which for example is only removed when a
domain is undefined and not when a VM is removed on the migration source
host. Further, when shared storage is used then security labeling on the
destination side is skipped assuming that the labeling was already done on
the source side.
I have tested this with an NFS setup where I had to turn SELinux off on
the hosts since the SELinux MLS range labeling is not supported by NFS.
Shared storage migration requires (upcoming) swtpm v0.8.
Stefan
Stefan Berger (9):
util: Add parsing support for swtpm's cmdarg-migration capability
qemu: Introduced VIR_MIGRATE_TPM_SHARED_STORAGE for TPM migration
qemu: tpm: Conditionally create storage on incoming migration
qemu: tpm: Pass --migration option to swtpm if supported
qemu: tpm: Avoid security labels on incoming migration with shared
storage
qemu: tpm: Require UNDEFINE_TPM to be set to remove TPM state
qemu: tpm: Determine whether to remove TPM state during migration
qemu: tpm: Enable migration with VIR_MIGRATE_TPM_SHARED_STORAGE
virsh: Add support for --tpm-shared-storage flag for migration
docs/manpages/virsh.rst | 6 +++
include/libvirt/libvirt-domain.h | 8 +++
src/conf/domain_conf.h | 1 +
src/qemu/qemu_driver.c | 4 +-
src/qemu/qemu_extdevice.c | 5 +-
src/qemu/qemu_extdevice.h | 3 +-
src/qemu/qemu_migration.c | 23 +++++++--
src/qemu/qemu_migration.h | 1 +
src/qemu/qemu_process.c | 10 ++--
src/qemu/qemu_process.h | 6 ++-
src/qemu/qemu_saveimage.c | 2 +-
src/qemu/qemu_snapshot.c | 4 +-
src/qemu/qemu_tpm.c | 87 ++++++++++++++++++++++++++++----
src/qemu/qemu_tpm.h | 24 ++++++++-
src/util/virtpm.c | 1 +
src/util/virtpm.h | 1 +
tools/virsh-domain.c | 7 +++
17 files changed, 164 insertions(+), 29 deletions(-)
--
2.37.3
2 years, 1 month
[PATCH 0/3] test: Fix regression parsing nested <volume> XML
by Cole Robinson
This adds a couple extensions to the example/ testdriver XML, and
fixes a regression introduced in b3e33a0ef7e
Cole Robinson (3):
examples: testdriver: Add xmlns runstate example
examples: testdriver: Add a nested inline <volume> example
test: Fix parsing nested <volume> XML
examples/xml/test/testnodeinline.xml | 25 ++++++++++++++++++++++++-
src/test/test_driver.c | 2 +-
2 files changed, 25 insertions(+), 2 deletions(-)
--
2.37.3
2 years, 1 month
[PATCH] NEWS: Mention new channel and redirdev devices in domcaps
by Jim Fehlig
Signed-off-by: Jim Fehlig <jfehlig(a)suse.com>
---
NEWS.rst | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/NEWS.rst b/NEWS.rst
index b6bcb5524d..cd297c4fed 100644
--- a/NEWS.rst
+++ b/NEWS.rst
@@ -32,6 +32,11 @@ v8.9.0 (unreleased)
* Improved documentation of CPU ``usable`` attribute in domain capabilities
+ * Report ``channel`` and ``redirdev`` devices in domain capabilities
+
+ The channel and redirect devices supported by the hypervisor are now
+ reported in domain capabilities.
+
* **Bug fixes**
* qemu: Disable all blocker features in CPU baseline
--
2.37.3
2 years, 1 month
[PATCH 00/15] schema: Fix forgotten interleaving of elements (part 1)
by Peter Krempa
Context:
https://listman.redhat.com/archives/libvir-list/2022-October/234860.html
This series fixes the trivial/straightforward cases found by using
Daniel's "fuzzing" script. Note that you have to exclude '-invalid.xml'
files and all output-only XMLs (domaincaps, capabilities).
Best viewed with 'git show -w'.
There's 7 more pathces needed to fix the schema to work with the above
mentioned script but they have more complex interactions and I'll need
to re-consider them.
Peter Krempa (15):
schema: domain: Allow interleaving of character device config elements
schema: domain: Allow interleaving of PCI controller config elements
schema: domain: Allow interleaving of 'tpm' config elements
schema: domain: Allow interleaving of subelements of 'memtune'
schema: domain: Allow interleaving of subelements of disk's 'mirror'
schema: domain: Allow interleaving 'ip' and 'route' sub-elements of
interface
schema: domain: Add the 'type' subelement of the osexe case of 'os'
element to interleave
schema: domain: Allow interleaving of <bootloader> and <os>
schema: domain: Allow interleaving of 'watchdog' subelements
schema: networkport: Allow interleaving of subelements of 'owner'
schema: networkport: Allow interleaving of subelements of 'driver'
subelement of hostdev-pci
schema: nwfilter: Allow interleaving subelements of the top level
'filter' element
schema: nwfilterbinding: Allow interleaving of subelements of 'owner'
element
schema: storagepool: Allow interleaving of per-pool custom namespace
elements
schema: cpu: include 'arch' subelement in interleave definition of
'hostcpu'
src/conf/schemas/cputypes.rng | 6 +-
src/conf/schemas/domaincommon.rng | 813 ++++++++++++++-------------
src/conf/schemas/networkport.rng | 42 +-
src/conf/schemas/nwfilter.rng | 36 +-
src/conf/schemas/nwfilterbinding.rng | 14 +-
src/conf/schemas/storagepool.rng | 12 +-
6 files changed, 476 insertions(+), 447 deletions(-)
--
2.37.3
2 years, 1 month
[libvirt PATCH] docs: formatdomain: fix since tag for TPM PCR banks
by Ján Tomko
Fixes: a5bbe1a8b6321852634817c423695e58518c4f4f
Signed-off-by: Ján Tomko <jtomko(a)redhat.com>
---
Pushed as trivial.
docs/formatdomain.rst | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/formatdomain.rst b/docs/formatdomain.rst
index 34e4906eb4..e28b805009 100644
--- a/docs/formatdomain.rst
+++ b/docs/formatdomain.rst
@@ -7784,7 +7784,7 @@ Example: usage of the TPM Emulator
active PCR banks upon VM start but leave them at their last configuration.
This attribute requires that swtpm_setup v0.7 or later is installed
and may not have any effect otherwise. The selection of PCR banks only works
- with the ``emulator`` backend. since:`Since 7.10.0`
+ with the ``emulator`` backend. :since:`Since 7.10.0`
``encryption``
The ``encryption`` element allows the state of a TPM emulator to be
--
2.37.3
2 years, 1 month
[PATCH v2] capabilities: use g_autofree in capabilities.c
by Jiang Jiacheng
Use g_autofree in capabilities.c for some pointers still using manual cleanup,
and remove unnecessary cleanup.
Signed-off-by: Jiang Jiacheng <jiangjiacheng(a)huawei.com>
---
src/conf/capabilities.c | 38 ++++++++++++--------------------------
1 file changed, 12 insertions(+), 26 deletions(-)
diff --git a/src/conf/capabilities.c b/src/conf/capabilities.c
index 1a7ebf4a13..e498c77efc 100644
--- a/src/conf/capabilities.c
+++ b/src/conf/capabilities.c
@@ -1489,15 +1489,14 @@ virCapabilitiesGetNUMADistances(int node,
virNumaDistance **distancesRet,
int *ndistancesRet)
{
- virNumaDistance *tmp = NULL;
+ g_autofree virNumaDistance *tmp = NULL;
int tmp_size = 0;
- int ret = -1;
- int *distances = NULL;
+ g_autofree int *distances = NULL;
int ndistances = 0;
size_t i;
if (virNumaGetDistances(node, &distances, &ndistances) < 0)
- goto cleanup;
+ return -1;
if (!distances) {
*distancesRet = NULL;
@@ -1521,11 +1520,8 @@ virCapabilitiesGetNUMADistances(int node,
*ndistancesRet = tmp_size;
*distancesRet = g_steal_pointer(&tmp);
tmp_size = 0;
- ret = 0;
- cleanup:
- VIR_FREE(distances);
- VIR_FREE(tmp);
- return ret;
+
+ return 0;
}
static int
@@ -1533,13 +1529,12 @@ virCapabilitiesGetNUMAPagesInfo(int node,
virCapsHostNUMACellPageInfo **pageinfo,
int *npageinfo)
{
- int ret = -1;
- unsigned int *pages_size = NULL;
- unsigned long long *pages_avail = NULL;
+ g_autofree unsigned int *pages_size = NULL;
+ g_autofree unsigned long long *pages_avail = NULL;
size_t npages, i;
if (virNumaGetPages(node, &pages_size, &pages_avail, NULL, &npages) < 0)
- goto cleanup;
+ return -1;
*pageinfo = g_new0(virCapsHostNUMACellPageInfo, npages);
*npageinfo = npages;
@@ -1549,12 +1544,7 @@ virCapabilitiesGetNUMAPagesInfo(int node,
(*pageinfo)[i].avail = pages_avail[i];
}
- ret = 0;
-
- cleanup:
- VIR_FREE(pages_avail);
- VIR_FREE(pages_size);
- return ret;
+ return 0;
}
@@ -2034,22 +2024,18 @@ virCapabilitiesHostNUMANewHost(void)
int
virCapabilitiesInitPages(virCaps *caps)
{
- int ret = -1;
- unsigned int *pages_size = NULL;
+ g_autofree unsigned int *pages_size = NULL;
size_t npages;
if (virNumaGetPages(-1 /* Magic constant for overall info */,
&pages_size, NULL, NULL, &npages) < 0)
- goto cleanup;
+ return -1;
caps->host.pagesSize = g_steal_pointer(&pages_size);
caps->host.nPagesSize = npages;
npages = 0;
- ret = 0;
- cleanup:
- VIR_FREE(pages_size);
- return ret;
+ return 0;
}
--
2.33.0
2 years, 1 month
[libvirt PATCH] virvhba.c: use g_autofree
by ttxine
Change strings to use g_autofree.
Signed-off-by: Maxim Kostin <ttxinee(a)outlook.com>
---
src/util/virvhba.c | 21 +++++++--------------
1 file changed, 7 insertions(+), 14 deletions(-)
diff --git a/src/util/virvhba.c b/src/util/virvhba.c
index a4e88024d1..76c39e5f2b 100644
--- a/src/util/virvhba.c
+++ b/src/util/virvhba.c
@@ -49,7 +49,7 @@ bool
virVHBAPathExists(const char *sysfs_prefix,
int host)
{
- char *sysfs_path = NULL;
+ g_autofree char *sysfs_path = NULL;
bool ret = false;
sysfs_path = g_strdup_printf("%s/host%d",
@@ -58,7 +58,6 @@ virVHBAPathExists(const char *sysfs_prefix,
if (virFileExists(sysfs_path))
ret = true;
- VIR_FREE(sysfs_path);
return ret;
}
@@ -79,8 +78,8 @@ bool
virVHBAIsVportCapable(const char *sysfs_prefix,
int host)
{
- char *scsi_host_path = NULL;
- char *fc_host_path = NULL;
+ g_autofree char *scsi_host_path = NULL;
+ g_autofree char *fc_host_path = NULL;
bool ret = false;
fc_host_path = g_strdup_printf("%s/host%d/%s",
@@ -94,8 +93,6 @@ virVHBAIsVportCapable(const char *sysfs_prefix,
if (virFileExists(fc_host_path) || virFileExists(scsi_host_path))
ret = true;
- VIR_FREE(fc_host_path);
- VIR_FREE(scsi_host_path);
return ret;
}
@@ -115,9 +112,9 @@ virVHBAGetConfig(const char *sysfs_prefix,
int host,
const char *entry)
{
- char *sysfs_path = NULL;
+ g_autofree char *sysfs_path = NULL;
char *p = NULL;
- char *buf = NULL;
+ g_autofree char *buf = NULL;
char *result = NULL;
sysfs_path = g_strdup_printf("%s/host%d/%s",
@@ -140,8 +137,6 @@ virVHBAGetConfig(const char *sysfs_prefix,
result = g_strdup(p);
cleanup:
- VIR_FREE(sysfs_path);
- VIR_FREE(buf);
return result;
}
@@ -315,8 +310,8 @@ vhbaReadCompareWWN(const char *prefix,
const char *f_name,
const char *wwn)
{
- char *path;
- char *buf = NULL;
+ g_autofree char *path = NULL;
+ g_autofree char *buf = NULL;
char *p;
int ret = -1;
@@ -343,8 +338,6 @@ vhbaReadCompareWWN(const char *prefix,
ret = 1;
cleanup:
- VIR_FREE(path);
- VIR_FREE(buf);
return ret;
}
--
2.34.1
2 years, 1 month
Re: [PATCH 2/3] qemu: get the stackManager lock before getting nested lock
by Michal Prívozník
[please keep the list on CC]
On 10/15/22 13:55, Jiang Jiacheng wrote:
> Thanks for your reply.
> In other similar situation, we will get the StacksecurityManager lock
> before get other driver's lock to keep the use of the security drivers
> is internally serialized(in 'virSecurityManagerGenLabel').
>
> In the functions of this patch, we haven't get the StacksecurityManager
> lock but get the lock of other drivers in qemuSecurityGetBaseLabel. I
> think it's the reason of this problem.
>
> And I think 'virSecurityManagerGetNested' is used to get a list of other
> SecurityManager, i'm not sure whether we need a lock here.
Yeah, we might need to rework locking a bit. Or shuffle some code
around, but locking the object from outside does not feel right, since
it's supposed to manage locks itself.
Michal
2 years, 1 month
[PATCH V3] conf: Add channel devices to domain capabilities
by Jim Fehlig
As qemu becomes more modularized, it is important for libvirt to advertise
availability of the modularized functionality through capabilities. This
change adds channel devices to domain capabilities, allowing clients such
as virt-install to avoid using spicevmc channel devices when not supported
by the target qemu.
Signed-off-by: Jim Fehlig <jfehlig(a)suse.com>
---
V2:
https://listman.redhat.com/archives/libvir-list/2022-October/234840.html
New in V3:
- rebased to current master
- use existing QEMU_CAPS_SPICE for spicevmc channel device
docs/formatdomaincaps.rst | 24 +++++++++++++++++++
src/conf/domain_capabilities.c | 13 ++++++++++
src/conf/domain_capabilities.h | 8 +++++++
src/conf/schemas/domaincaps.rng | 10 ++++++++
src/qemu/qemu_capabilities.c | 15 ++++++++++++
src/qemu/qemu_capabilities.h | 3 +++
.../domaincapsdata/qemu_4.2.0-q35.x86_64.xml | 7 ++++++
.../domaincapsdata/qemu_4.2.0-tcg.x86_64.xml | 7 ++++++
.../qemu_4.2.0-virt.aarch64.xml | 6 +++++
tests/domaincapsdata/qemu_4.2.0.aarch64.xml | 6 +++++
tests/domaincapsdata/qemu_4.2.0.ppc64.xml | 6 +++++
tests/domaincapsdata/qemu_4.2.0.s390x.xml | 6 +++++
tests/domaincapsdata/qemu_4.2.0.x86_64.xml | 7 ++++++
.../domaincapsdata/qemu_5.0.0-q35.x86_64.xml | 7 ++++++
.../domaincapsdata/qemu_5.0.0-tcg.x86_64.xml | 7 ++++++
.../qemu_5.0.0-virt.aarch64.xml | 6 +++++
tests/domaincapsdata/qemu_5.0.0.aarch64.xml | 6 +++++
tests/domaincapsdata/qemu_5.0.0.ppc64.xml | 6 +++++
tests/domaincapsdata/qemu_5.0.0.x86_64.xml | 7 ++++++
.../domaincapsdata/qemu_5.1.0-q35.x86_64.xml | 7 ++++++
.../domaincapsdata/qemu_5.1.0-tcg.x86_64.xml | 7 ++++++
tests/domaincapsdata/qemu_5.1.0.sparc.xml | 7 ++++++
tests/domaincapsdata/qemu_5.1.0.x86_64.xml | 7 ++++++
.../domaincapsdata/qemu_5.2.0-q35.x86_64.xml | 7 ++++++
.../domaincapsdata/qemu_5.2.0-tcg.x86_64.xml | 7 ++++++
.../qemu_5.2.0-virt.aarch64.xml | 6 +++++
tests/domaincapsdata/qemu_5.2.0.aarch64.xml | 6 +++++
tests/domaincapsdata/qemu_5.2.0.ppc64.xml | 6 +++++
tests/domaincapsdata/qemu_5.2.0.s390x.xml | 6 +++++
tests/domaincapsdata/qemu_5.2.0.x86_64.xml | 7 ++++++
.../domaincapsdata/qemu_6.0.0-q35.x86_64.xml | 7 ++++++
.../domaincapsdata/qemu_6.0.0-tcg.x86_64.xml | 7 ++++++
.../qemu_6.0.0-virt.aarch64.xml | 6 +++++
tests/domaincapsdata/qemu_6.0.0.aarch64.xml | 6 +++++
tests/domaincapsdata/qemu_6.0.0.s390x.xml | 6 +++++
tests/domaincapsdata/qemu_6.0.0.x86_64.xml | 7 ++++++
.../domaincapsdata/qemu_6.1.0-q35.x86_64.xml | 7 ++++++
.../domaincapsdata/qemu_6.1.0-tcg.x86_64.xml | 7 ++++++
tests/domaincapsdata/qemu_6.1.0.x86_64.xml | 7 ++++++
.../domaincapsdata/qemu_6.2.0-q35.x86_64.xml | 7 ++++++
.../domaincapsdata/qemu_6.2.0-tcg.x86_64.xml | 7 ++++++
.../qemu_6.2.0-virt.aarch64.xml | 7 ++++++
tests/domaincapsdata/qemu_6.2.0.aarch64.xml | 7 ++++++
tests/domaincapsdata/qemu_6.2.0.ppc64.xml | 6 +++++
tests/domaincapsdata/qemu_6.2.0.x86_64.xml | 7 ++++++
.../domaincapsdata/qemu_7.0.0-q35.x86_64.xml | 7 ++++++
.../domaincapsdata/qemu_7.0.0-tcg.x86_64.xml | 7 ++++++
.../qemu_7.0.0-virt.aarch64.xml | 7 ++++++
tests/domaincapsdata/qemu_7.0.0.aarch64.xml | 7 ++++++
tests/domaincapsdata/qemu_7.0.0.ppc64.xml | 6 +++++
tests/domaincapsdata/qemu_7.0.0.x86_64.xml | 7 ++++++
.../domaincapsdata/qemu_7.1.0-q35.x86_64.xml | 7 ++++++
.../domaincapsdata/qemu_7.1.0-tcg.x86_64.xml | 7 ++++++
tests/domaincapsdata/qemu_7.1.0.ppc64.xml | 6 +++++
tests/domaincapsdata/qemu_7.1.0.x86_64.xml | 7 ++++++
55 files changed, 399 insertions(+)
diff --git a/docs/formatdomaincaps.rst b/docs/formatdomaincaps.rst
index 93d36f2702..f95d3a7083 100644
--- a/docs/formatdomaincaps.rst
+++ b/docs/formatdomaincaps.rst
@@ -565,6 +565,30 @@ USB redirdev device capabilities are exposed under the ``redirdev`` element. For
``bus``
Options for the ``bus`` attribute of the ``<redirdev/>`` element.
+Channel device
+^^^^^^^^^^^^^^
+
+Channel device capabilities are exposed under the ``channel`` element. For instance:
+
+::
+
+ <domainCapabilities>
+ ...
+ <devices>
+ <channel supported='yes'>
+ <enum name='type'>
+ <value>pty</value>
+ <value>unix</value>
+ <value>spicevmc</value>
+ </enum>
+ </channel
+ ...
+ </devices>
+ </domainCapabilities>
+
+``type``
+ Options for the ``type`` attribute of the ``<channel/>`` element.
+
Features
~~~~~~~~
diff --git a/src/conf/domain_capabilities.c b/src/conf/domain_capabilities.c
index f8b2f88376..a7f256e4ec 100644
--- a/src/conf/domain_capabilities.c
+++ b/src/conf/domain_capabilities.c
@@ -574,6 +574,18 @@ virDomainCapsDeviceRedirdevFormat(virBuffer *buf,
}
+static void
+virDomainCapsDeviceChannelFormat(virBuffer *buf,
+ const virDomainCapsDeviceChannel *channel)
+{
+ FORMAT_PROLOGUE(channel);
+
+ ENUM_PROCESS(channel, type, virDomainChrTypeToString);
+
+ FORMAT_EPILOGUE(channel);
+}
+
+
/**
* virDomainCapsFeatureGICFormat:
* @buf: target buffer
@@ -688,6 +700,7 @@ virDomainCapsFormat(const virDomainCaps *caps)
virDomainCapsDeviceFilesystemFormat(&buf, &caps->filesystem);
virDomainCapsDeviceTPMFormat(&buf, &caps->tpm);
virDomainCapsDeviceRedirdevFormat(&buf, &caps->redirdev);
+ virDomainCapsDeviceChannelFormat(&buf, &caps->channel);
virBufferAdjustIndent(&buf, -2);
virBufferAddLit(&buf, "</devices>\n");
diff --git a/src/conf/domain_capabilities.h b/src/conf/domain_capabilities.h
index ba7c2a5e42..e0cfa75531 100644
--- a/src/conf/domain_capabilities.h
+++ b/src/conf/domain_capabilities.h
@@ -137,6 +137,13 @@ struct _virDomainCapsDeviceRedirdev {
virDomainCapsEnum bus; /* virDomainRedirdevBus */
};
+STATIC_ASSERT_ENUM(VIR_DOMAIN_CHR_TYPE_LAST);
+typedef struct _virDomainCapsDeviceChannel virDomainCapsDeviceChannel;
+struct _virDomainCapsDeviceChannel {
+ virTristateBool supported;
+ virDomainCapsEnum type; /* virDomainChrType */
+};
+
STATIC_ASSERT_ENUM(VIR_DOMAIN_FS_DRIVER_TYPE_LAST);
typedef struct _virDomainCapsDeviceFilesystem virDomainCapsDeviceFilesystem;
struct _virDomainCapsDeviceFilesystem {
@@ -234,6 +241,7 @@ struct _virDomainCaps {
virDomainCapsDeviceFilesystem filesystem;
virDomainCapsDeviceTPM tpm;
virDomainCapsDeviceRedirdev redirdev;
+ virDomainCapsDeviceChannel channel;
/* add new domain devices here */
virDomainCapsFeatureGIC gic;
diff --git a/src/conf/schemas/domaincaps.rng b/src/conf/schemas/domaincaps.rng
index cf7a1d1d89..a6747b20ef 100644
--- a/src/conf/schemas/domaincaps.rng
+++ b/src/conf/schemas/domaincaps.rng
@@ -201,6 +201,9 @@
<optional>
<ref name="redirdev"/>
</optional>
+ <optional>
+ <ref name="channel"/>
+ </optional>
</element>
</define>
@@ -260,6 +263,13 @@
</element>
</define>
+ <define name="channel">
+ <element name="channel">
+ <ref name="supported"/>
+ <ref name="enum"/>
+ </element>
+ </define>
+
<define name="features">
<element name="features">
<optional>
diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index 40da6f1b50..0f34957998 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -6347,6 +6347,19 @@ virQEMUCapsFillDomainDeviceRedirdevCaps(virQEMUCaps *qemuCaps,
}
+void
+virQEMUCapsFillDomainDeviceChannelCaps(virQEMUCaps *qemuCaps,
+ virDomainCapsDeviceChannel *channel)
+{
+ channel->supported = VIR_TRISTATE_BOOL_YES;
+ channel->type.report = true;
+ VIR_DOMAIN_CAPS_ENUM_SET(channel->type,
+ VIR_DOMAIN_CHR_TYPE_PTY, VIR_DOMAIN_CHR_TYPE_UNIX);
+
+ if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_SPICE))
+ VIR_DOMAIN_CAPS_ENUM_SET(channel->type, VIR_DOMAIN_CHR_TYPE_SPICEVMC);
+}
+
/**
* virQEMUCapsSupportsGICVersion:
@@ -6484,6 +6497,7 @@ virQEMUCapsFillDomainCaps(virQEMUCaps *qemuCaps,
virDomainCapsDeviceFilesystem *filesystem = &domCaps->filesystem;
virDomainCapsDeviceTPM *tpm = &domCaps->tpm;
virDomainCapsDeviceRedirdev *redirdev = &domCaps->redirdev;
+ virDomainCapsDeviceChannel *channel = &domCaps->channel;
virDomainCapsMemoryBacking *memoryBacking = &domCaps->memoryBacking;
virQEMUCapsFillDomainFeaturesFromQEMUCaps(qemuCaps, domCaps);
@@ -6517,6 +6531,7 @@ virQEMUCapsFillDomainCaps(virQEMUCaps *qemuCaps,
virQEMUCapsFillDomainDeviceFSCaps(qemuCaps, filesystem);
virQEMUCapsFillDomainDeviceTPMCaps(qemuCaps, tpm);
virQEMUCapsFillDomainDeviceRedirdevCaps(qemuCaps, redirdev);
+ virQEMUCapsFillDomainDeviceChannelCaps(qemuCaps, channel);
virQEMUCapsFillDomainFeatureGICCaps(qemuCaps, domCaps);
virQEMUCapsFillDomainFeatureSEVCaps(qemuCaps, domCaps);
virQEMUCapsFillDomainFeatureS390PVCaps(qemuCaps, domCaps);
diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
index 051bfbc0a1..4edbb5d40f 100644
--- a/src/qemu/qemu_capabilities.h
+++ b/src/qemu/qemu_capabilities.h
@@ -833,6 +833,9 @@ void virQEMUCapsFillDomainDeviceTPMCaps(virQEMUCaps *qemuCaps,
void virQEMUCapsFillDomainDeviceRedirdevCaps(virQEMUCaps *qemuCaps,
virDomainCapsDeviceRedirdev *redirdev);
+void virQEMUCapsFillDomainDeviceChannelCaps(virQEMUCaps *qemuCaps,
+ virDomainCapsDeviceChannel *channel);
+
bool virQEMUCapsGuestIsNative(virArch host,
virArch guest);
diff --git a/tests/domaincapsdata/qemu_4.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_4.2.0-q35.x86_64.xml
index 5b83883e39..def80fe8cd 100644
--- a/tests/domaincapsdata/qemu_4.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_4.2.0-q35.x86_64.xml
@@ -221,6 +221,13 @@
<value>usb</value>
</enum>
</redirdev>
+ <channel supported='yes'>
+ <enum name='type'>
+ <value>pty</value>
+ <value>unix</value>
+ <value>spicevmc</value>
+ </enum>
+ </channel>
</devices>
<features>
<gic supported='no'/>
diff --git a/tests/domaincapsdata/qemu_4.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_4.2.0-tcg.x86_64.xml
index ab55ec2452..9e920d1ccb 100644
--- a/tests/domaincapsdata/qemu_4.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_4.2.0-tcg.x86_64.xml
@@ -236,6 +236,13 @@
<value>usb</value>
</enum>
</redirdev>
+ <channel supported='yes'>
+ <enum name='type'>
+ <value>pty</value>
+ <value>unix</value>
+ <value>spicevmc</value>
+ </enum>
+ </channel>
</devices>
<features>
<gic supported='no'/>
diff --git a/tests/domaincapsdata/qemu_4.2.0-virt.aarch64.xml b/tests/domaincapsdata/qemu_4.2.0-virt.aarch64.xml
index e0af576d5c..776173e60e 100644
--- a/tests/domaincapsdata/qemu_4.2.0-virt.aarch64.xml
+++ b/tests/domaincapsdata/qemu_4.2.0-virt.aarch64.xml
@@ -166,6 +166,12 @@
</filesystem>
<tpm supported='no'/>
<redirdev supported='no'/>
+ <channel supported='yes'>
+ <enum name='type'>
+ <value>pty</value>
+ <value>unix</value>
+ </enum>
+ </channel>
</devices>
<features>
<gic supported='yes'>
diff --git a/tests/domaincapsdata/qemu_4.2.0.aarch64.xml b/tests/domaincapsdata/qemu_4.2.0.aarch64.xml
index 61839a1983..b6711fc3a4 100644
--- a/tests/domaincapsdata/qemu_4.2.0.aarch64.xml
+++ b/tests/domaincapsdata/qemu_4.2.0.aarch64.xml
@@ -164,6 +164,12 @@
</filesystem>
<tpm supported='no'/>
<redirdev supported='no'/>
+ <channel supported='yes'>
+ <enum name='type'>
+ <value>pty</value>
+ <value>unix</value>
+ </enum>
+ </channel>
</devices>
<features>
<gic supported='no'/>
diff --git a/tests/domaincapsdata/qemu_4.2.0.ppc64.xml b/tests/domaincapsdata/qemu_4.2.0.ppc64.xml
index 1626d9b186..88790451b0 100644
--- a/tests/domaincapsdata/qemu_4.2.0.ppc64.xml
+++ b/tests/domaincapsdata/qemu_4.2.0.ppc64.xml
@@ -137,6 +137,12 @@
</enum>
</tpm>
<redirdev supported='no'/>
+ <channel supported='yes'>
+ <enum name='type'>
+ <value>pty</value>
+ <value>unix</value>
+ </enum>
+ </channel>
</devices>
<features>
<gic supported='no'/>
diff --git a/tests/domaincapsdata/qemu_4.2.0.s390x.xml b/tests/domaincapsdata/qemu_4.2.0.s390x.xml
index ee07f4c274..fa416af038 100644
--- a/tests/domaincapsdata/qemu_4.2.0.s390x.xml
+++ b/tests/domaincapsdata/qemu_4.2.0.s390x.xml
@@ -243,6 +243,12 @@
<value>usb</value>
</enum>
</redirdev>
+ <channel supported='yes'>
+ <enum name='type'>
+ <value>pty</value>
+ <value>unix</value>
+ </enum>
+ </channel>
</devices>
<features>
<gic supported='no'/>
diff --git a/tests/domaincapsdata/qemu_4.2.0.x86_64.xml b/tests/domaincapsdata/qemu_4.2.0.x86_64.xml
index a6eaf7962f..ed9de89dfa 100644
--- a/tests/domaincapsdata/qemu_4.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_4.2.0.x86_64.xml
@@ -221,6 +221,13 @@
<value>usb</value>
</enum>
</redirdev>
+ <channel supported='yes'>
+ <enum name='type'>
+ <value>pty</value>
+ <value>unix</value>
+ <value>spicevmc</value>
+ </enum>
+ </channel>
</devices>
<features>
<gic supported='no'/>
diff --git a/tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml
index 232f1f0e12..af0335eb3a 100644
--- a/tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml
@@ -223,6 +223,13 @@
<value>usb</value>
</enum>
</redirdev>
+ <channel supported='yes'>
+ <enum name='type'>
+ <value>pty</value>
+ <value>unix</value>
+ <value>spicevmc</value>
+ </enum>
+ </channel>
</devices>
<features>
<gic supported='no'/>
diff --git a/tests/domaincapsdata/qemu_5.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_5.0.0-tcg.x86_64.xml
index ce2c08f205..fc09e9ff28 100644
--- a/tests/domaincapsdata/qemu_5.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.0.0-tcg.x86_64.xml
@@ -238,6 +238,13 @@
<value>usb</value>
</enum>
</redirdev>
+ <channel supported='yes'>
+ <enum name='type'>
+ <value>pty</value>
+ <value>unix</value>
+ <value>spicevmc</value>
+ </enum>
+ </channel>
</devices>
<features>
<gic supported='no'/>
diff --git a/tests/domaincapsdata/qemu_5.0.0-virt.aarch64.xml b/tests/domaincapsdata/qemu_5.0.0-virt.aarch64.xml
index 9215371d0c..88bc77f50b 100644
--- a/tests/domaincapsdata/qemu_5.0.0-virt.aarch64.xml
+++ b/tests/domaincapsdata/qemu_5.0.0-virt.aarch64.xml
@@ -178,6 +178,12 @@
</enum>
</tpm>
<redirdev supported='no'/>
+ <channel supported='yes'>
+ <enum name='type'>
+ <value>pty</value>
+ <value>unix</value>
+ </enum>
+ </channel>
</devices>
<features>
<gic supported='yes'>
diff --git a/tests/domaincapsdata/qemu_5.0.0.aarch64.xml b/tests/domaincapsdata/qemu_5.0.0.aarch64.xml
index fcc77ad8db..5e030047d1 100644
--- a/tests/domaincapsdata/qemu_5.0.0.aarch64.xml
+++ b/tests/domaincapsdata/qemu_5.0.0.aarch64.xml
@@ -176,6 +176,12 @@
</enum>
</tpm>
<redirdev supported='no'/>
+ <channel supported='yes'>
+ <enum name='type'>
+ <value>pty</value>
+ <value>unix</value>
+ </enum>
+ </channel>
</devices>
<features>
<gic supported='no'/>
diff --git a/tests/domaincapsdata/qemu_5.0.0.ppc64.xml b/tests/domaincapsdata/qemu_5.0.0.ppc64.xml
index 711ccc2cb0..0c5aaade40 100644
--- a/tests/domaincapsdata/qemu_5.0.0.ppc64.xml
+++ b/tests/domaincapsdata/qemu_5.0.0.ppc64.xml
@@ -143,6 +143,12 @@
</enum>
</tpm>
<redirdev supported='no'/>
+ <channel supported='yes'>
+ <enum name='type'>
+ <value>pty</value>
+ <value>unix</value>
+ </enum>
+ </channel>
</devices>
<features>
<gic supported='no'/>
diff --git a/tests/domaincapsdata/qemu_5.0.0.x86_64.xml b/tests/domaincapsdata/qemu_5.0.0.x86_64.xml
index f52613f584..5b2a0bc83d 100644
--- a/tests/domaincapsdata/qemu_5.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.0.0.x86_64.xml
@@ -223,6 +223,13 @@
<value>usb</value>
</enum>
</redirdev>
+ <channel supported='yes'>
+ <enum name='type'>
+ <value>pty</value>
+ <value>unix</value>
+ <value>spicevmc</value>
+ </enum>
+ </channel>
</devices>
<features>
<gic supported='no'/>
diff --git a/tests/domaincapsdata/qemu_5.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_5.1.0-q35.x86_64.xml
index 542d32b018..fb9f69bb9a 100644
--- a/tests/domaincapsdata/qemu_5.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.1.0-q35.x86_64.xml
@@ -224,6 +224,13 @@
<value>usb</value>
</enum>
</redirdev>
+ <channel supported='yes'>
+ <enum name='type'>
+ <value>pty</value>
+ <value>unix</value>
+ <value>spicevmc</value>
+ </enum>
+ </channel>
</devices>
<features>
<gic supported='no'/>
diff --git a/tests/domaincapsdata/qemu_5.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_5.1.0-tcg.x86_64.xml
index 8bd5c6073c..ea31348ab1 100644
--- a/tests/domaincapsdata/qemu_5.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.1.0-tcg.x86_64.xml
@@ -238,6 +238,13 @@
<value>usb</value>
</enum>
</redirdev>
+ <channel supported='yes'>
+ <enum name='type'>
+ <value>pty</value>
+ <value>unix</value>
+ <value>spicevmc</value>
+ </enum>
+ </channel>
</devices>
<features>
<gic supported='no'/>
diff --git a/tests/domaincapsdata/qemu_5.1.0.sparc.xml b/tests/domaincapsdata/qemu_5.1.0.sparc.xml
index ea4d1d28dd..5bbf4720dc 100644
--- a/tests/domaincapsdata/qemu_5.1.0.sparc.xml
+++ b/tests/domaincapsdata/qemu_5.1.0.sparc.xml
@@ -110,6 +110,13 @@
<value>usb</value>
</enum>
</redirdev>
+ <channel supported='yes'>
+ <enum name='type'>
+ <value>pty</value>
+ <value>unix</value>
+ <value>spicevmc</value>
+ </enum>
+ </channel>
</devices>
<features>
<gic supported='no'/>
diff --git a/tests/domaincapsdata/qemu_5.1.0.x86_64.xml b/tests/domaincapsdata/qemu_5.1.0.x86_64.xml
index 5c48efc8c6..584dad5a89 100644
--- a/tests/domaincapsdata/qemu_5.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.1.0.x86_64.xml
@@ -224,6 +224,13 @@
<value>usb</value>
</enum>
</redirdev>
+ <channel supported='yes'>
+ <enum name='type'>
+ <value>pty</value>
+ <value>unix</value>
+ <value>spicevmc</value>
+ </enum>
+ </channel>
</devices>
<features>
<gic supported='no'/>
diff --git a/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml
index 70c4f3cbd1..f1d20991e9 100644
--- a/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml
@@ -224,6 +224,13 @@
<value>usb</value>
</enum>
</redirdev>
+ <channel supported='yes'>
+ <enum name='type'>
+ <value>pty</value>
+ <value>unix</value>
+ <value>spicevmc</value>
+ </enum>
+ </channel>
</devices>
<features>
<gic supported='no'/>
diff --git a/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml
index 636a84e55f..cec260f56d 100644
--- a/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml
@@ -238,6 +238,13 @@
<value>usb</value>
</enum>
</redirdev>
+ <channel supported='yes'>
+ <enum name='type'>
+ <value>pty</value>
+ <value>unix</value>
+ <value>spicevmc</value>
+ </enum>
+ </channel>
</devices>
<features>
<gic supported='no'/>
diff --git a/tests/domaincapsdata/qemu_5.2.0-virt.aarch64.xml b/tests/domaincapsdata/qemu_5.2.0-virt.aarch64.xml
index 900d10f720..be7262211c 100644
--- a/tests/domaincapsdata/qemu_5.2.0-virt.aarch64.xml
+++ b/tests/domaincapsdata/qemu_5.2.0-virt.aarch64.xml
@@ -178,6 +178,12 @@
</enum>
</tpm>
<redirdev supported='no'/>
+ <channel supported='yes'>
+ <enum name='type'>
+ <value>pty</value>
+ <value>unix</value>
+ </enum>
+ </channel>
</devices>
<features>
<gic supported='yes'>
diff --git a/tests/domaincapsdata/qemu_5.2.0.aarch64.xml b/tests/domaincapsdata/qemu_5.2.0.aarch64.xml
index fcc77ad8db..5e030047d1 100644
--- a/tests/domaincapsdata/qemu_5.2.0.aarch64.xml
+++ b/tests/domaincapsdata/qemu_5.2.0.aarch64.xml
@@ -176,6 +176,12 @@
</enum>
</tpm>
<redirdev supported='no'/>
+ <channel supported='yes'>
+ <enum name='type'>
+ <value>pty</value>
+ <value>unix</value>
+ </enum>
+ </channel>
</devices>
<features>
<gic supported='no'/>
diff --git a/tests/domaincapsdata/qemu_5.2.0.ppc64.xml b/tests/domaincapsdata/qemu_5.2.0.ppc64.xml
index 99c2767276..9367738157 100644
--- a/tests/domaincapsdata/qemu_5.2.0.ppc64.xml
+++ b/tests/domaincapsdata/qemu_5.2.0.ppc64.xml
@@ -143,6 +143,12 @@
</enum>
</tpm>
<redirdev supported='no'/>
+ <channel supported='yes'>
+ <enum name='type'>
+ <value>pty</value>
+ <value>unix</value>
+ </enum>
+ </channel>
</devices>
<features>
<gic supported='no'/>
diff --git a/tests/domaincapsdata/qemu_5.2.0.s390x.xml b/tests/domaincapsdata/qemu_5.2.0.s390x.xml
index bdade9c5bb..adc197648f 100644
--- a/tests/domaincapsdata/qemu_5.2.0.s390x.xml
+++ b/tests/domaincapsdata/qemu_5.2.0.s390x.xml
@@ -245,6 +245,12 @@
<value>usb</value>
</enum>
</redirdev>
+ <channel supported='yes'>
+ <enum name='type'>
+ <value>pty</value>
+ <value>unix</value>
+ </enum>
+ </channel>
</devices>
<features>
<gic supported='no'/>
diff --git a/tests/domaincapsdata/qemu_5.2.0.x86_64.xml b/tests/domaincapsdata/qemu_5.2.0.x86_64.xml
index db22085e31..a3707e6804 100644
--- a/tests/domaincapsdata/qemu_5.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.2.0.x86_64.xml
@@ -224,6 +224,13 @@
<value>usb</value>
</enum>
</redirdev>
+ <channel supported='yes'>
+ <enum name='type'>
+ <value>pty</value>
+ <value>unix</value>
+ <value>spicevmc</value>
+ </enum>
+ </channel>
</devices>
<features>
<gic supported='no'/>
diff --git a/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml
index 395eb3b9eb..7edb84e9bc 100644
--- a/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml
@@ -226,6 +226,13 @@
<value>usb</value>
</enum>
</redirdev>
+ <channel supported='yes'>
+ <enum name='type'>
+ <value>pty</value>
+ <value>unix</value>
+ <value>spicevmc</value>
+ </enum>
+ </channel>
</devices>
<features>
<gic supported='no'/>
diff --git a/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml
index 769a1147b6..cc0bfcac2d 100644
--- a/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml
@@ -240,6 +240,13 @@
<value>usb</value>
</enum>
</redirdev>
+ <channel supported='yes'>
+ <enum name='type'>
+ <value>pty</value>
+ <value>unix</value>
+ <value>spicevmc</value>
+ </enum>
+ </channel>
</devices>
<features>
<gic supported='no'/>
diff --git a/tests/domaincapsdata/qemu_6.0.0-virt.aarch64.xml b/tests/domaincapsdata/qemu_6.0.0-virt.aarch64.xml
index 2f56e36c28..db9b45d74e 100644
--- a/tests/domaincapsdata/qemu_6.0.0-virt.aarch64.xml
+++ b/tests/domaincapsdata/qemu_6.0.0-virt.aarch64.xml
@@ -180,6 +180,12 @@
</enum>
</tpm>
<redirdev supported='no'/>
+ <channel supported='yes'>
+ <enum name='type'>
+ <value>pty</value>
+ <value>unix</value>
+ </enum>
+ </channel>
</devices>
<features>
<gic supported='yes'>
diff --git a/tests/domaincapsdata/qemu_6.0.0.aarch64.xml b/tests/domaincapsdata/qemu_6.0.0.aarch64.xml
index 4639a84c1d..1a65156544 100644
--- a/tests/domaincapsdata/qemu_6.0.0.aarch64.xml
+++ b/tests/domaincapsdata/qemu_6.0.0.aarch64.xml
@@ -178,6 +178,12 @@
</enum>
</tpm>
<redirdev supported='no'/>
+ <channel supported='yes'>
+ <enum name='type'>
+ <value>pty</value>
+ <value>unix</value>
+ </enum>
+ </channel>
</devices>
<features>
<gic supported='no'/>
diff --git a/tests/domaincapsdata/qemu_6.0.0.s390x.xml b/tests/domaincapsdata/qemu_6.0.0.s390x.xml
index 25abcac608..56d87f7a2f 100644
--- a/tests/domaincapsdata/qemu_6.0.0.s390x.xml
+++ b/tests/domaincapsdata/qemu_6.0.0.s390x.xml
@@ -246,6 +246,12 @@
<value>usb</value>
</enum>
</redirdev>
+ <channel supported='yes'>
+ <enum name='type'>
+ <value>pty</value>
+ <value>unix</value>
+ </enum>
+ </channel>
</devices>
<features>
<gic supported='no'/>
diff --git a/tests/domaincapsdata/qemu_6.0.0.x86_64.xml b/tests/domaincapsdata/qemu_6.0.0.x86_64.xml
index 2be8f3e33b..3afab2f4c2 100644
--- a/tests/domaincapsdata/qemu_6.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.0.0.x86_64.xml
@@ -226,6 +226,13 @@
<value>usb</value>
</enum>
</redirdev>
+ <channel supported='yes'>
+ <enum name='type'>
+ <value>pty</value>
+ <value>unix</value>
+ <value>spicevmc</value>
+ </enum>
+ </channel>
</devices>
<features>
<gic supported='no'/>
diff --git a/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml
index f23e758b1a..d0dbadd6d3 100644
--- a/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml
@@ -227,6 +227,13 @@
<value>usb</value>
</enum>
</redirdev>
+ <channel supported='yes'>
+ <enum name='type'>
+ <value>pty</value>
+ <value>unix</value>
+ <value>spicevmc</value>
+ </enum>
+ </channel>
</devices>
<features>
<gic supported='no'/>
diff --git a/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml
index f78abdefc5..52071fc2c5 100644
--- a/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml
@@ -240,6 +240,13 @@
<value>usb</value>
</enum>
</redirdev>
+ <channel supported='yes'>
+ <enum name='type'>
+ <value>pty</value>
+ <value>unix</value>
+ <value>spicevmc</value>
+ </enum>
+ </channel>
</devices>
<features>
<gic supported='no'/>
diff --git a/tests/domaincapsdata/qemu_6.1.0.x86_64.xml b/tests/domaincapsdata/qemu_6.1.0.x86_64.xml
index 9de18c682e..17c30b394d 100644
--- a/tests/domaincapsdata/qemu_6.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.1.0.x86_64.xml
@@ -227,6 +227,13 @@
<value>usb</value>
</enum>
</redirdev>
+ <channel supported='yes'>
+ <enum name='type'>
+ <value>pty</value>
+ <value>unix</value>
+ <value>spicevmc</value>
+ </enum>
+ </channel>
</devices>
<features>
<gic supported='no'/>
diff --git a/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml
index dff92d65aa..c185ae4510 100644
--- a/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml
@@ -227,6 +227,13 @@
<value>usb</value>
</enum>
</redirdev>
+ <channel supported='yes'>
+ <enum name='type'>
+ <value>pty</value>
+ <value>unix</value>
+ <value>spicevmc</value>
+ </enum>
+ </channel>
</devices>
<features>
<gic supported='no'/>
diff --git a/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml
index f027eb25a5..7bebc1f8b2 100644
--- a/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml
@@ -241,6 +241,13 @@
<value>usb</value>
</enum>
</redirdev>
+ <channel supported='yes'>
+ <enum name='type'>
+ <value>pty</value>
+ <value>unix</value>
+ <value>spicevmc</value>
+ </enum>
+ </channel>
</devices>
<features>
<gic supported='no'/>
diff --git a/tests/domaincapsdata/qemu_6.2.0-virt.aarch64.xml b/tests/domaincapsdata/qemu_6.2.0-virt.aarch64.xml
index c572b0481c..3d79cd7486 100644
--- a/tests/domaincapsdata/qemu_6.2.0-virt.aarch64.xml
+++ b/tests/domaincapsdata/qemu_6.2.0-virt.aarch64.xml
@@ -186,6 +186,13 @@
<value>usb</value>
</enum>
</redirdev>
+ <channel supported='yes'>
+ <enum name='type'>
+ <value>pty</value>
+ <value>unix</value>
+ <value>spicevmc</value>
+ </enum>
+ </channel>
</devices>
<features>
<gic supported='yes'>
diff --git a/tests/domaincapsdata/qemu_6.2.0.aarch64.xml b/tests/domaincapsdata/qemu_6.2.0.aarch64.xml
index eb521a0cfa..4ccffb3695 100644
--- a/tests/domaincapsdata/qemu_6.2.0.aarch64.xml
+++ b/tests/domaincapsdata/qemu_6.2.0.aarch64.xml
@@ -184,6 +184,13 @@
<value>usb</value>
</enum>
</redirdev>
+ <channel supported='yes'>
+ <enum name='type'>
+ <value>pty</value>
+ <value>unix</value>
+ <value>spicevmc</value>
+ </enum>
+ </channel>
</devices>
<features>
<gic supported='no'/>
diff --git a/tests/domaincapsdata/qemu_6.2.0.ppc64.xml b/tests/domaincapsdata/qemu_6.2.0.ppc64.xml
index 7797b94cf2..ba7bc17a98 100644
--- a/tests/domaincapsdata/qemu_6.2.0.ppc64.xml
+++ b/tests/domaincapsdata/qemu_6.2.0.ppc64.xml
@@ -142,6 +142,12 @@
</enum>
</tpm>
<redirdev supported='no'/>
+ <channel supported='yes'>
+ <enum name='type'>
+ <value>pty</value>
+ <value>unix</value>
+ </enum>
+ </channel>
</devices>
<features>
<gic supported='no'/>
diff --git a/tests/domaincapsdata/qemu_6.2.0.x86_64.xml b/tests/domaincapsdata/qemu_6.2.0.x86_64.xml
index aff2ee6662..ba40728489 100644
--- a/tests/domaincapsdata/qemu_6.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.2.0.x86_64.xml
@@ -227,6 +227,13 @@
<value>usb</value>
</enum>
</redirdev>
+ <channel supported='yes'>
+ <enum name='type'>
+ <value>pty</value>
+ <value>unix</value>
+ <value>spicevmc</value>
+ </enum>
+ </channel>
</devices>
<features>
<gic supported='no'/>
diff --git a/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml
index e70b0990a7..94c6f3d712 100644
--- a/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml
@@ -228,6 +228,13 @@
<value>usb</value>
</enum>
</redirdev>
+ <channel supported='yes'>
+ <enum name='type'>
+ <value>pty</value>
+ <value>unix</value>
+ <value>spicevmc</value>
+ </enum>
+ </channel>
</devices>
<features>
<gic supported='no'/>
diff --git a/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml
index 03c5411c4e..c6a02b6512 100644
--- a/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml
@@ -242,6 +242,13 @@
<value>usb</value>
</enum>
</redirdev>
+ <channel supported='yes'>
+ <enum name='type'>
+ <value>pty</value>
+ <value>unix</value>
+ <value>spicevmc</value>
+ </enum>
+ </channel>
</devices>
<features>
<gic supported='no'/>
diff --git a/tests/domaincapsdata/qemu_7.0.0-virt.aarch64.xml b/tests/domaincapsdata/qemu_7.0.0-virt.aarch64.xml
index 59f89afd9b..3addb1fc57 100644
--- a/tests/domaincapsdata/qemu_7.0.0-virt.aarch64.xml
+++ b/tests/domaincapsdata/qemu_7.0.0-virt.aarch64.xml
@@ -185,6 +185,13 @@
<value>usb</value>
</enum>
</redirdev>
+ <channel supported='yes'>
+ <enum name='type'>
+ <value>pty</value>
+ <value>unix</value>
+ <value>spicevmc</value>
+ </enum>
+ </channel>
</devices>
<features>
<gic supported='yes'>
diff --git a/tests/domaincapsdata/qemu_7.0.0.aarch64.xml b/tests/domaincapsdata/qemu_7.0.0.aarch64.xml
index 1e6bf544dc..9f07a10a90 100644
--- a/tests/domaincapsdata/qemu_7.0.0.aarch64.xml
+++ b/tests/domaincapsdata/qemu_7.0.0.aarch64.xml
@@ -183,6 +183,13 @@
<value>usb</value>
</enum>
</redirdev>
+ <channel supported='yes'>
+ <enum name='type'>
+ <value>pty</value>
+ <value>unix</value>
+ <value>spicevmc</value>
+ </enum>
+ </channel>
</devices>
<features>
<gic supported='no'/>
diff --git a/tests/domaincapsdata/qemu_7.0.0.ppc64.xml b/tests/domaincapsdata/qemu_7.0.0.ppc64.xml
index 76da1f4f7d..ed6c74aac1 100644
--- a/tests/domaincapsdata/qemu_7.0.0.ppc64.xml
+++ b/tests/domaincapsdata/qemu_7.0.0.ppc64.xml
@@ -147,6 +147,12 @@
<value>usb</value>
</enum>
</redirdev>
+ <channel supported='yes'>
+ <enum name='type'>
+ <value>pty</value>
+ <value>unix</value>
+ </enum>
+ </channel>
</devices>
<features>
<gic supported='no'/>
diff --git a/tests/domaincapsdata/qemu_7.0.0.x86_64.xml b/tests/domaincapsdata/qemu_7.0.0.x86_64.xml
index da23f5703a..5913f44937 100644
--- a/tests/domaincapsdata/qemu_7.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.0.0.x86_64.xml
@@ -228,6 +228,13 @@
<value>usb</value>
</enum>
</redirdev>
+ <channel supported='yes'>
+ <enum name='type'>
+ <value>pty</value>
+ <value>unix</value>
+ <value>spicevmc</value>
+ </enum>
+ </channel>
</devices>
<features>
<gic supported='no'/>
diff --git a/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml
index 05b36ee79e..2d76581915 100644
--- a/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml
@@ -227,6 +227,13 @@
<value>usb</value>
</enum>
</redirdev>
+ <channel supported='yes'>
+ <enum name='type'>
+ <value>pty</value>
+ <value>unix</value>
+ <value>spicevmc</value>
+ </enum>
+ </channel>
</devices>
<features>
<gic supported='no'/>
diff --git a/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml
index 0786cd8430..c0b59c0d44 100644
--- a/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml
@@ -240,6 +240,13 @@
<value>usb</value>
</enum>
</redirdev>
+ <channel supported='yes'>
+ <enum name='type'>
+ <value>pty</value>
+ <value>unix</value>
+ <value>spicevmc</value>
+ </enum>
+ </channel>
</devices>
<features>
<gic supported='no'/>
diff --git a/tests/domaincapsdata/qemu_7.1.0.ppc64.xml b/tests/domaincapsdata/qemu_7.1.0.ppc64.xml
index d430e54caa..a5c2d8e598 100644
--- a/tests/domaincapsdata/qemu_7.1.0.ppc64.xml
+++ b/tests/domaincapsdata/qemu_7.1.0.ppc64.xml
@@ -140,6 +140,12 @@
<value>usb</value>
</enum>
</redirdev>
+ <channel supported='yes'>
+ <enum name='type'>
+ <value>pty</value>
+ <value>unix</value>
+ </enum>
+ </channel>
</devices>
<features>
<gic supported='no'/>
diff --git a/tests/domaincapsdata/qemu_7.1.0.x86_64.xml b/tests/domaincapsdata/qemu_7.1.0.x86_64.xml
index ae67a16947..a419005ee3 100644
--- a/tests/domaincapsdata/qemu_7.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.1.0.x86_64.xml
@@ -227,6 +227,13 @@
<value>usb</value>
</enum>
</redirdev>
+ <channel supported='yes'>
+ <enum name='type'>
+ <value>pty</value>
+ <value>unix</value>
+ <value>spicevmc</value>
+ </enum>
+ </channel>
</devices>
<features>
<gic supported='no'/>
--
2.37.3
2 years, 1 month