diff --git a/src/conf/domain_capabilities.c b/src/conf/domain_capabilities.c
index 6352eda343..a6104920ab 100644
--- a/src/conf/domain_capabilities.c
+++ b/src/conf/domain_capabilities.c
@@ -482,6 +482,7 @@ virDomainCapsDeviceDiskFormat(virBufferPtr buf,
ENUM_PROCESS(disk, diskDevice, virDomainDiskDeviceTypeToString);
ENUM_PROCESS(disk, bus, virDomainDiskBusTypeToString);
+ ENUM_PROCESS(disk, model, virDomainDiskModelTypeToString);
FORMAT_EPILOGUE(disk);
}
diff --git a/src/conf/domain_capabilities.h b/src/conf/domain_capabilities.h
index 15e065359b..b5387916a1 100644
--- a/src/conf/domain_capabilities.h
+++ b/src/conf/domain_capabilities.h
@@ -65,6 +65,7 @@ struct _virDomainCapsDeviceDisk {
bool supported;
virDomainCapsEnum diskDevice; /* Info about virDomainDiskDevice enum values */
virDomainCapsEnum bus; /* Info about virDomainDiskBus enum values */
+ virDomainCapsEnum model; /* Info about virDomainDiskModel enum values */
/* add new fields here */
};
diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index 9f001b3c43..d435bf17ae 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -5024,6 +5024,16 @@ virQEMUCapsFillDomainDeviceDiskCaps(virQEMUCapsPtr qemuCaps,
if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_ICH9_AHCI))
VIR_DOMAIN_CAPS_ENUM_SET(disk->bus, VIR_DOMAIN_DISK_BUS_SATA);
+ /* disk->model values */
+ VIR_DOMAIN_CAPS_ENUM_SET(disk->model, VIR_DOMAIN_DISK_MODEL_VIRTIO);
+ if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_VIRTIO_PCI_DISABLE_LEGACY) ||
+ virQEMUCapsGet(qemuCaps, QEMU_CAPS_VIRTIO_PCI_TRANSITIONAL)) {
+ VIR_DOMAIN_CAPS_ENUM_SET(disk->model,
+ VIR_DOMAIN_DISK_MODEL_VIRTIO_TRANSITIONAL);
+ VIR_DOMAIN_CAPS_ENUM_SET(disk->model,
+ VIR_DOMAIN_DISK_MODEL_VIRTIO_NON_TRANSITIONAL);
+ }
+
return 0;
}
diff --git a/tests/domaincapsschemadata/bhyve_basic.x86_64.xml b/tests/domaincapsschemadata/bhyve_basic.x86_64.xml
index d6ecf061d0..bdf2c4eee8 100644
--- a/tests/domaincapsschemadata/bhyve_basic.x86_64.xml
+++ b/tests/domaincapsschemadata/bhyve_basic.x86_64.xml
@@ -21,6 +21,7 @@
virtio
sata
+
diff --git a/tests/domaincapsschemadata/bhyve_fbuf.x86_64.xml b/tests/domaincapsschemadata/bhyve_fbuf.x86_64.xml
index 1a5aad7bce..f998c457c1 100644
--- a/tests/domaincapsschemadata/bhyve_fbuf.x86_64.xml
+++ b/tests/domaincapsschemadata/bhyve_fbuf.x86_64.xml
@@ -30,6 +30,7 @@
virtio
sata
+
diff --git a/tests/domaincapsschemadata/bhyve_uefi.x86_64.xml b/tests/domaincapsschemadata/bhyve_uefi.x86_64.xml
index b624fd0799..18f90023d5 100644
--- a/tests/domaincapsschemadata/bhyve_uefi.x86_64.xml
+++ b/tests/domaincapsschemadata/bhyve_uefi.x86_64.xml
@@ -30,6 +30,7 @@
virtio
sata
+
diff --git a/tests/domaincapsschemadata/full.xml b/tests/domaincapsschemadata/full.xml
index eafba1ae5b..28263466a4 100644
--- a/tests/domaincapsschemadata/full.xml
+++ b/tests/domaincapsschemadata/full.xml
@@ -51,6 +51,12 @@
sata
sd
+
+ default
+ virtio
+ virtio-transitional
+ virtio-non-transitional
+
diff --git a/tests/domaincapsschemadata/libxl-xenfv.xml b/tests/domaincapsschemadata/libxl-xenfv.xml
index 29fe1f9aa3..4efc137c97 100644
--- a/tests/domaincapsschemadata/libxl-xenfv.xml
+++ b/tests/domaincapsschemadata/libxl-xenfv.xml
@@ -34,6 +34,7 @@
scsi
xen
+
diff --git a/tests/domaincapsschemadata/libxl-xenpv.xml b/tests/domaincapsschemadata/libxl-xenpv.xml
index b9f3ca736b..70e598fe9e 100644
--- a/tests/domaincapsschemadata/libxl-xenpv.xml
+++ b/tests/domaincapsschemadata/libxl-xenpv.xml
@@ -24,6 +24,7 @@
scsi
xen
+
diff --git a/tests/domaincapsschemadata/qemu_1.7.0.x86_64.xml b/tests/domaincapsschemadata/qemu_1.7.0.x86_64.xml
index 3d73133919..497363bbe9 100644
--- a/tests/domaincapsschemadata/qemu_1.7.0.x86_64.xml
+++ b/tests/domaincapsschemadata/qemu_1.7.0.x86_64.xml
@@ -68,6 +68,9 @@
usb
sata
+
+ virtio
+
diff --git a/tests/domaincapsschemadata/qemu_2.12.0-virt.aarch64.xml b/tests/domaincapsschemadata/qemu_2.12.0-virt.aarch64.xml
index 56e403c4c7..7639df44c6 100644
--- a/tests/domaincapsschemadata/qemu_2.12.0-virt.aarch64.xml
+++ b/tests/domaincapsschemadata/qemu_2.12.0-virt.aarch64.xml
@@ -74,6 +74,11 @@
usb
sata
+
+ virtio
+ virtio-transitional
+ virtio-non-transitional
+
diff --git a/tests/domaincapsschemadata/qemu_2.12.0.ppc64.xml b/tests/domaincapsschemadata/qemu_2.12.0.ppc64.xml
index d0b9c3fdef..f10d361359 100644
--- a/tests/domaincapsschemadata/qemu_2.12.0.ppc64.xml
+++ b/tests/domaincapsschemadata/qemu_2.12.0.ppc64.xml
@@ -40,6 +40,11 @@
usb
sata
+
+ virtio
+ virtio-transitional
+ virtio-non-transitional
+
diff --git a/tests/domaincapsschemadata/qemu_2.12.0.s390x.xml b/tests/domaincapsschemadata/qemu_2.12.0.s390x.xml
index 8742dce530..41a81ff02f 100644
--- a/tests/domaincapsschemadata/qemu_2.12.0.s390x.xml
+++ b/tests/domaincapsschemadata/qemu_2.12.0.s390x.xml
@@ -133,6 +133,11 @@
scsi
virtio
+
+ virtio
+ virtio-transitional
+ virtio-non-transitional
+
diff --git a/tests/domaincapsschemadata/qemu_2.12.0.x86_64.xml b/tests/domaincapsschemadata/qemu_2.12.0.x86_64.xml
index a8d6a4d629..5913e7fc63 100644
--- a/tests/domaincapsschemadata/qemu_2.12.0.x86_64.xml
+++ b/tests/domaincapsschemadata/qemu_2.12.0.x86_64.xml
@@ -98,6 +98,11 @@
usb
sata
+
+ virtio
+ virtio-transitional
+ virtio-non-transitional
+
diff --git a/tests/domaincapsschemadata/qemu_2.6.0-virt.aarch64.xml b/tests/domaincapsschemadata/qemu_2.6.0-virt.aarch64.xml
index b3e85de1d3..9ee801092e 100644
--- a/tests/domaincapsschemadata/qemu_2.6.0-virt.aarch64.xml
+++ b/tests/domaincapsschemadata/qemu_2.6.0-virt.aarch64.xml
@@ -71,6 +71,11 @@
usb
sata
+
+ virtio
+ virtio-transitional
+ virtio-non-transitional
+
diff --git a/tests/domaincapsschemadata/qemu_2.6.0.aarch64.xml b/tests/domaincapsschemadata/qemu_2.6.0.aarch64.xml
index 0fcc715940..4dd0b52ed3 100644
--- a/tests/domaincapsschemadata/qemu_2.6.0.aarch64.xml
+++ b/tests/domaincapsschemadata/qemu_2.6.0.aarch64.xml
@@ -71,6 +71,11 @@
usb
sata
+
+ virtio
+ virtio-transitional
+ virtio-non-transitional
+
diff --git a/tests/domaincapsschemadata/qemu_2.6.0.ppc64.xml b/tests/domaincapsschemadata/qemu_2.6.0.ppc64.xml
index f2dff05ff8..aa982d237e 100644
--- a/tests/domaincapsschemadata/qemu_2.6.0.ppc64.xml
+++ b/tests/domaincapsschemadata/qemu_2.6.0.ppc64.xml
@@ -44,6 +44,11 @@
usb
sata
+
+ virtio
+ virtio-transitional
+ virtio-non-transitional
+
diff --git a/tests/domaincapsschemadata/qemu_2.6.0.x86_64.xml b/tests/domaincapsschemadata/qemu_2.6.0.x86_64.xml
index c6d9fd8b37..6aa3f52ee4 100644
--- a/tests/domaincapsschemadata/qemu_2.6.0.x86_64.xml
+++ b/tests/domaincapsschemadata/qemu_2.6.0.x86_64.xml
@@ -72,6 +72,11 @@
usb
sata
+
+ virtio
+ virtio-transitional
+ virtio-non-transitional
+
diff --git a/tests/domaincapsschemadata/qemu_2.7.0.s390x.xml b/tests/domaincapsschemadata/qemu_2.7.0.s390x.xml
index 0c48bd6c75..8daa15ab9d 100644
--- a/tests/domaincapsschemadata/qemu_2.7.0.s390x.xml
+++ b/tests/domaincapsschemadata/qemu_2.7.0.s390x.xml
@@ -38,6 +38,11 @@
scsi
virtio
+
+ virtio
+ virtio-transitional
+ virtio-non-transitional
+
diff --git a/tests/domaincapsschemadata/qemu_2.8.0-tcg.x86_64.xml b/tests/domaincapsschemadata/qemu_2.8.0-tcg.x86_64.xml
index 1cb843d5d1..081805aa4a 100644
--- a/tests/domaincapsschemadata/qemu_2.8.0-tcg.x86_64.xml
+++ b/tests/domaincapsschemadata/qemu_2.8.0-tcg.x86_64.xml
@@ -73,6 +73,11 @@
usb
sata
+
+ virtio
+ virtio-transitional
+ virtio-non-transitional
+
diff --git a/tests/domaincapsschemadata/qemu_2.8.0.s390x.xml b/tests/domaincapsschemadata/qemu_2.8.0.s390x.xml
index 7293d89ae7..62c51e4087 100644
--- a/tests/domaincapsschemadata/qemu_2.8.0.s390x.xml
+++ b/tests/domaincapsschemadata/qemu_2.8.0.s390x.xml
@@ -119,6 +119,11 @@
scsi
virtio
+
+ virtio
+ virtio-transitional
+ virtio-non-transitional
+
diff --git a/tests/domaincapsschemadata/qemu_2.8.0.x86_64.xml b/tests/domaincapsschemadata/qemu_2.8.0.x86_64.xml
index 8391603a3b..1bb034aa4f 100644
--- a/tests/domaincapsschemadata/qemu_2.8.0.x86_64.xml
+++ b/tests/domaincapsschemadata/qemu_2.8.0.x86_64.xml
@@ -73,6 +73,11 @@
usb
sata
+
+ virtio
+ virtio-transitional
+ virtio-non-transitional
+
diff --git a/tests/domaincapsschemadata/qemu_2.9.0-q35.x86_64.xml b/tests/domaincapsschemadata/qemu_2.9.0-q35.x86_64.xml
index c341de3ce2..67c6d5e77e 100644
--- a/tests/domaincapsschemadata/qemu_2.9.0-q35.x86_64.xml
+++ b/tests/domaincapsschemadata/qemu_2.9.0-q35.x86_64.xml
@@ -81,6 +81,11 @@
usb
sata
+
+ virtio
+ virtio-transitional
+ virtio-non-transitional
+
diff --git a/tests/domaincapsschemadata/qemu_2.9.0-tcg.x86_64.xml b/tests/domaincapsschemadata/qemu_2.9.0-tcg.x86_64.xml
index 4336e65dc8..588ef08199 100644
--- a/tests/domaincapsschemadata/qemu_2.9.0-tcg.x86_64.xml
+++ b/tests/domaincapsschemadata/qemu_2.9.0-tcg.x86_64.xml
@@ -105,6 +105,11 @@
usb
sata
+
+ virtio
+ virtio-transitional
+ virtio-non-transitional
+
diff --git a/tests/domaincapsschemadata/qemu_2.9.0.x86_64.xml b/tests/domaincapsschemadata/qemu_2.9.0.x86_64.xml
index 8e842b89fd..598937a971 100644
--- a/tests/domaincapsschemadata/qemu_2.9.0.x86_64.xml
+++ b/tests/domaincapsschemadata/qemu_2.9.0.x86_64.xml
@@ -82,6 +82,11 @@
usb
sata
+
+ virtio
+ virtio-transitional
+ virtio-non-transitional
+
diff --git a/tests/domaincapsschemadata/qemu_3.0.0.s390x.xml b/tests/domaincapsschemadata/qemu_3.0.0.s390x.xml
index 97231e044f..1d97f1f344 100644
--- a/tests/domaincapsschemadata/qemu_3.0.0.s390x.xml
+++ b/tests/domaincapsschemadata/qemu_3.0.0.s390x.xml
@@ -139,6 +139,11 @@
scsi
virtio
+
+ virtio
+ virtio-transitional
+ virtio-non-transitional
+
diff --git a/tests/domaincapsschemadata/qemu_4.0.0.x86_64.xml b/tests/domaincapsschemadata/qemu_4.0.0.x86_64.xml
index 8595f7faf5..df66be9e29 100644
--- a/tests/domaincapsschemadata/qemu_4.0.0.x86_64.xml
+++ b/tests/domaincapsschemadata/qemu_4.0.0.x86_64.xml
@@ -99,6 +99,11 @@
usb
sata
+
+ virtio
+ virtio-transitional
+ virtio-non-transitional
+
diff --git a/tests/domaincapstest.c b/tests/domaincapstest.c
index 86b8429f23..3be2806a48 100644
--- a/tests/domaincapstest.c
+++ b/tests/domaincapstest.c
@@ -94,6 +94,7 @@ fillAllCaps(virDomainCapsPtr domCaps)
disk->supported = true;
SET_ALL_BITS(disk->diskDevice);
SET_ALL_BITS(disk->bus);
+ SET_ALL_BITS(disk->model);
graphics->supported = true;
SET_ALL_BITS(graphics->type);