diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index 62a112456012db2d0f132d10c3e94598a0476c71..49f5f75027ef54a7bcdf2dd916e1c8d7d8e37a79 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -269,6 +269,7 @@ VIR_ENUM_IMPL(virQEMUCaps, QEMU_CAPS_LAST,
"splash-timeout", /* 175 */
"iothread",
+ "migrate-rdma",
);
@@ -993,9 +994,9 @@ virCapsPtr virQEMUCapsInit(virQEMUCapsCachePtr cache)
if (virQEMUCapsInitPages(caps) < 0)
VIR_WARN("Failed to get pages info");
- /* Add domain migration transport URI */
- virCapabilitiesAddHostMigrateTransport(caps,
- "tcp");
+ /* Add domain migration transport URIs */
+ virCapabilitiesAddHostMigrateTransport(caps, "tcp");
+ virCapabilitiesAddHostMigrateTransport(caps, "rdma");
/* QEMU can support pretty much every arch that exists,
* so just probe for them all - we gracefully fail
@@ -1435,6 +1436,10 @@ struct virQEMUCapsStringFlags virQEMUCapsCommands[] = {
{ "rtc-reset-reinjection", QEMU_CAPS_RTC_RESET_REINJECTION },
};
+struct virQEMUCapsStringFlags virQEMUCapsMigration[] = {
+ { "rdma-pin-all", QEMU_CAPS_MIGRATE_RDMA },
+};
+
struct virQEMUCapsStringFlags virQEMUCapsEvents[] = {
{ "BALLOON_CHANGE", QEMU_CAPS_BALLOON_EVENT },
{ "SPICE_MIGRATE_COMPLETED", QEMU_CAPS_SEAMLESS_MIGRATION },
@@ -2476,6 +2481,25 @@ virQEMUCapsProbeQMPCommandLine(virQEMUCapsPtr qemuCaps,
return 0;
}
+static int
+virQEMUCapsProbeQMPMigrationCapabilities(virQEMUCapsPtr qemuCaps,
+ qemuMonitorPtr mon)
+{
+ char **caps = NULL;
+ int ncaps;
+
+ if ((ncaps = qemuMonitorGetMigrationCapabilities(mon, &caps)) < 0)
+ return -1;
+
+ virQEMUCapsProcessStringFlags(qemuCaps,
+ ARRAY_CARDINALITY(virQEMUCapsMigration),
+ virQEMUCapsMigration,
+ ncaps, caps);
+ virQEMUCapsFreeStringList(ncaps, caps);
+
+ return 0;
+}
+
int virQEMUCapsProbeQMP(virQEMUCapsPtr qemuCaps,
qemuMonitorPtr mon)
{
@@ -3168,6 +3192,8 @@ virQEMUCapsInitQMPMonitor(virQEMUCapsPtr qemuCaps,
goto cleanup;
if (virQEMUCapsProbeQMPCommandLine(qemuCaps, mon) < 0)
goto cleanup;
+ if (virQEMUCapsProbeQMPMigrationCapabilities(qemuCaps, mon) < 0)
+ goto cleanup;
ret = 0;
cleanup:
diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
index 483b397e909fe66b32e1b45e36008e65d869bd7b..a0bb5d3ff5a15a8c57c5a1a4b836746455f7580c 100644
--- a/src/qemu/qemu_capabilities.h
+++ b/src/qemu/qemu_capabilities.h
@@ -216,6 +216,7 @@ typedef enum {
QEMU_CAPS_RTC_RESET_REINJECTION = 174, /* rtc-reset-reinjection monitor command */
QEMU_CAPS_SPLASH_TIMEOUT = 175, /* -boot splash-time */
QEMU_CAPS_OBJECT_IOTHREAD = 176, /* -object iothread */
+ QEMU_CAPS_MIGRATE_RDMA = 177, /* have rdma migration */
QEMU_CAPS_LAST, /* this must always be the last item */
} virQEMUCapsFlags;
diff --git a/src/qemu/qemu_monitor.c b/src/qemu/qemu_monitor.c
index 371475030e4f5b400806eb925f487bfef47528ac..c25f00208e0c90c2f8e5f238a3fec24ae900868f 100644
--- a/src/qemu/qemu_monitor.c
+++ b/src/qemu/qemu_monitor.c
@@ -121,7 +121,7 @@ VIR_ENUM_IMPL(qemuMonitorMigrationStatus,
VIR_ENUM_IMPL(qemuMonitorMigrationCaps,
QEMU_MONITOR_MIGRATION_CAPS_LAST,
- "xbzrle", "auto-converge")
+ "xbzrle", "auto-converge", "rdma-pin-all")
VIR_ENUM_IMPL(qemuMonitorVMStatus,
QEMU_MONITOR_VM_STATUS_LAST,
@@ -3788,6 +3788,26 @@ char *qemuMonitorGetTargetArch(qemuMonitorPtr mon)
}
+int
+qemuMonitorGetMigrationCapabilities(qemuMonitorPtr mon,
+ char ***capabilities)
+{
+ VIR_DEBUG("mon=%p", mon);
+
+ if (!mon) {
+ virReportError(VIR_ERR_INVALID_ARG, "%s",
+ _("monitor must not be NULL"));
+ return -1;
+ }
+
+ /* No capability is supported without JSON monitor */
+ if (!mon->json)
+ return 0;
+
+ return qemuMonitorJSONGetMigrationCapabilities(mon, capabilities);
+}
+
+
/**
* Returns 1 if @capability is supported, 0 if it's not, or -1 on error.
*/
diff --git a/src/qemu/qemu_monitor.h b/src/qemu/qemu_monitor.h
index a23a97477f81f2e910ccd22e8d152ee1ac507723..6b91e299085d0e1e2fa3b74cd5251220902f3c99 100644
--- a/src/qemu/qemu_monitor.h
+++ b/src/qemu/qemu_monitor.h
@@ -481,12 +481,15 @@ int qemuMonitorGetSpiceMigrationStatus(qemuMonitorPtr mon,
typedef enum {
QEMU_MONITOR_MIGRATION_CAPS_XBZRLE,
QEMU_MONITOR_MIGRATION_CAPS_AUTO_CONVERGE,
+ QEMU_MONITOR_MIGRATION_CAPS_RDMA_PIN_ALL,
QEMU_MONITOR_MIGRATION_CAPS_LAST
} qemuMonitorMigrationCaps;
VIR_ENUM_DECL(qemuMonitorMigrationCaps);
+int qemuMonitorGetMigrationCapabilities(qemuMonitorPtr mon,
+ char ***capabilities);
int qemuMonitorGetMigrationCapability(qemuMonitorPtr mon,
qemuMonitorMigrationCaps capability);
int qemuMonitorSetMigrationCapability(qemuMonitorPtr mon,
diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c
index 39dc8cd3d8e507c009657c60d52c26d6a021975d..a3d7c2c7900fc5c8b4c0c98d23a736508303829d 100644
--- a/src/qemu/qemu_monitor_json.c
+++ b/src/qemu/qemu_monitor_json.c
@@ -5214,14 +5214,18 @@ qemuMonitorJSONGetTargetArch(qemuMonitorPtr mon)
int
-qemuMonitorJSONGetMigrationCapability(qemuMonitorPtr mon,
- qemuMonitorMigrationCaps capability)
+qemuMonitorJSONGetMigrationCapabilities(qemuMonitorPtr mon,
+ char ***capabilities)
{
int ret;
virJSONValuePtr cmd;
virJSONValuePtr reply = NULL;
virJSONValuePtr caps;
+ char **list = NULL;
size_t i;
+ int n;
+
+ *capabilities = NULL;
if (!(cmd = qemuMonitorJSONMakeCommand("query-migrate-capabilities",
NULL)))
@@ -5240,14 +5244,17 @@ qemuMonitorJSONGetMigrationCapability(qemuMonitorPtr mon,
ret = -1;
- caps = virJSONValueObjectGet(reply, "return");
- if (!caps || caps->type != VIR_JSON_TYPE_ARRAY) {
+ if (!(caps = virJSONValueObjectGet(reply, "return")) ||
+ (n = virJSONValueArraySize(caps)) < 0) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
_("missing migration capabilities"));
goto cleanup;
}
- for (i = 0; i < virJSONValueArraySize(caps); i++) {
+ if (VIR_ALLOC_N(list, n + 1) < 0)
+ goto cleanup;
+
+ for (i = 0; i < n; i++) {
virJSONValuePtr cap = virJSONValueArrayGet(caps, i);
const char *name;
@@ -5263,21 +5270,40 @@ qemuMonitorJSONGetMigrationCapability(qemuMonitorPtr mon,
goto cleanup;
}
- if (qemuMonitorMigrationCapsTypeFromString(name) == capability) {
- ret = 1;
+ if (VIR_STRDUP(list[i], name) < 1)
goto cleanup;
- }
}
- ret = 0;
+ ret = n;
+ *capabilities = list;
cleanup:
+ if (ret < 0)
+ virStringFreeList(list);
virJSONValueFree(cmd);
virJSONValueFree(reply);
return ret;
}
+int
+qemuMonitorJSONGetMigrationCapability(qemuMonitorPtr mon,
+ qemuMonitorMigrationCaps capability)
+{
+ int ret;
+ char **capsList = NULL;
+ const char *cap = qemuMonitorMigrationCapsTypeToString(capability);
+
+ if (qemuMonitorJSONGetMigrationCapabilities(mon, &capsList) < 0)
+ return -1;
+
+ ret = virStringArrayHasString(capsList, cap);
+
+ virStringFreeList(capsList);
+ return ret;
+}
+
+
int
qemuMonitorJSONSetMigrationCapability(qemuMonitorPtr mon,
qemuMonitorMigrationCaps capability)
diff --git a/src/qemu/qemu_monitor_json.h b/src/qemu/qemu_monitor_json.h
index 3daa7598b026fa6772dae477eb2e15d383df73b9..d366179ea8bcb3a7fd55995002d270651e57c0e0 100644
--- a/src/qemu/qemu_monitor_json.h
+++ b/src/qemu/qemu_monitor_json.h
@@ -137,6 +137,8 @@ int qemuMonitorJSONSetMigrationCacheSize(qemuMonitorPtr mon,
int qemuMonitorJSONGetMigrationStatus(qemuMonitorPtr mon,
qemuMonitorMigrationStatusPtr status);
+int qemuMonitorJSONGetMigrationCapabilities(qemuMonitorPtr mon,
+ char ***capabilities);
int qemuMonitorJSONGetMigrationCapability(qemuMonitorPtr mon,
qemuMonitorMigrationCaps capability);
int qemuMonitorJSONSetMigrationCapability(qemuMonitorPtr mon,
diff --git a/tests/qemucapabilitiesdata/caps_1.2.2-1.replies b/tests/qemucapabilitiesdata/caps_1.2.2-1.replies
index 345c32bf823da8e1b96c5e78e51b80ce656fd80e..4fce9d70247c72a24b05e6b2b85575ce1d86015d 100644
--- a/tests/qemucapabilitiesdata/caps_1.2.2-1.replies
+++ b/tests/qemucapabilitiesdata/caps_1.2.2-1.replies
@@ -1555,3 +1555,13 @@
"desc": "The command query-command-line-options has not been found"
}
}
+
+{
+ "return": [
+ {
+ "capability": "xbzrle",
+ "state": false
+ }
+ ],
+ "id": "libvirt-32"
+}
diff --git a/tests/qemucapabilitiesdata/caps_1.3.1-1.replies b/tests/qemucapabilitiesdata/caps_1.3.1-1.replies
index 04d21410b35a94d342eefc516f2146af0f43b9a2..43713b20495ab4dd8ceeb0d5bb78578224189600 100644
--- a/tests/qemucapabilitiesdata/caps_1.3.1-1.replies
+++ b/tests/qemucapabilitiesdata/caps_1.3.1-1.replies
@@ -1735,3 +1735,13 @@
"desc": "The command query-command-line-options has not been found"
}
}
+
+{
+ "return": [
+ {
+ "capability": "xbzrle",
+ "state": false
+ }
+ ],
+ "id": "libvirt-34"
+}
diff --git a/tests/qemucapabilitiesdata/caps_1.4.2-1.replies b/tests/qemucapabilitiesdata/caps_1.4.2-1.replies
index aef359c0f12f9369af01d47bafae134d8656b543..34384f8ce2daec68baa347a9ab0a826d762b388b 100644
--- a/tests/qemucapabilitiesdata/caps_1.4.2-1.replies
+++ b/tests/qemucapabilitiesdata/caps_1.4.2-1.replies
@@ -1785,3 +1785,13 @@
"desc": "The command query-command-line-options has not been found"
}
}
+
+{
+ "return": [
+ {
+ "capability": "xbzrle",
+ "state": false
+ }
+ ],
+ "id": "libvirt-34"
+}
diff --git a/tests/qemucapabilitiesdata/caps_1.5.3-1.replies b/tests/qemucapabilitiesdata/caps_1.5.3-1.replies
index 1f84bb6556e2e4e63d8d9e3374656d768dd8c242..4613472c139665f8fe023b90571bbdbe8194d60c 100644
--- a/tests/qemucapabilitiesdata/caps_1.5.3-1.replies
+++ b/tests/qemucapabilitiesdata/caps_1.5.3-1.replies
@@ -2539,3 +2539,13 @@
],
"id": "libvirt-33"
}
+
+{
+ "return": [
+ {
+ "capability": "xbzrle",
+ "state": false
+ }
+ ],
+ "id": "libvirt-34"
+}
diff --git a/tests/qemucapabilitiesdata/caps_1.6.0-1.replies b/tests/qemucapabilitiesdata/caps_1.6.0-1.replies
index c9dc29b106afbf2e823dbdfa4c1373646f932a57..4205c89237f1115ae2d2b60aa8c93d42b97ce8f4 100644
--- a/tests/qemucapabilitiesdata/caps_1.6.0-1.replies
+++ b/tests/qemucapabilitiesdata/caps_1.6.0-1.replies
@@ -2519,3 +2519,25 @@
],
"id": "libvirt-33"
}
+
+{
+ "return": [
+ {
+ "capability": "xbzrle",
+ "state": false
+ },
+ {
+ "capability": "x-rdma-pin-all",
+ "state": false
+ },
+ {
+ "capability": "auto-converge",
+ "state": false
+ },
+ {
+ "capability": "zero-blocks",
+ "state": false
+ }
+ ],
+ "id": "libvirt-34"
+}
diff --git a/tests/qemucapabilitiesdata/caps_1.6.50-1.replies b/tests/qemucapabilitiesdata/caps_1.6.50-1.replies
index ec7451f52736a380140f7f144dd4ccf54e32444c..75823855c70bf9c17d4fb513ee996656630b12d6 100644
--- a/tests/qemucapabilitiesdata/caps_1.6.50-1.replies
+++ b/tests/qemucapabilitiesdata/caps_1.6.50-1.replies
@@ -2501,3 +2501,25 @@
],
"id": "libvirt-33"
}
+
+{
+ "return": [
+ {
+ "capability": "xbzrle",
+ "state": false
+ },
+ {
+ "capability": "x-rdma-pin-all",
+ "state": false
+ },
+ {
+ "capability": "auto-converge",
+ "state": false
+ },
+ {
+ "capability": "zero-blocks",
+ "state": false
+ }
+ ],
+ "id": "libvirt-34"
+}
diff --git a/tests/qemucapabilitiesdata/caps_2.1.1-1.caps b/tests/qemucapabilitiesdata/caps_2.1.1-1.caps
new file mode 100644
index 0000000000000000000000000000000000000000..71d24590bd0ac61865c03af423c1f17d30d85e0c
--- /dev/null
+++ b/tests/qemucapabilitiesdata/caps_2.1.1-1.caps
@@ -0,0 +1,162 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/qemucapabilitiesdata/caps_2.1.1-1.replies b/tests/qemucapabilitiesdata/caps_2.1.1-1.replies
new file mode 100644
index 0000000000000000000000000000000000000000..74d09dca8ae95352efa8685c45a345d929c3bd07
--- /dev/null
+++ b/tests/qemucapabilitiesdata/caps_2.1.1-1.replies
@@ -0,0 +1,3264 @@
+{
+ "QMP": {
+ "version": {
+ "qemu": {
+ "micro": 1,
+ "minor": 1,
+ "major": 2
+ },
+ "package": ""
+ },
+ "capabilities": [
+ ]
+ }
+}
+
+{
+ "return": {
+ },
+ "id": "libvirt-1"
+}
+
+{
+ "return": {
+ "qemu": {
+ "micro": 1,
+ "minor": 1,
+ "major": 2
+ },
+ "package": ""
+ },
+ "id": "libvirt-2"
+}
+
+{
+ "return": {
+ "arch": "x86_64"
+ },
+ "id": "libvirt-3"
+}
+
+{
+ "return": [
+ {
+ "name": "rtc-reset-reinjection"
+ },
+ {
+ "name": "query-acpi-ospm-status"
+ },
+ {
+ "name": "query-memory-devices"
+ },
+ {
+ "name": "query-memdev"
+ },
+ {
+ "name": "query-named-block-nodes"
+ },
+ {
+ "name": "blockdev-add"
+ },
+ {
+ "name": "query-rx-filter"
+ },
+ {
+ "name": "chardev-remove"
+ },
+ {
+ "name": "chardev-add"
+ },
+ {
+ "name": "query-tpm-types"
+ },
+ {
+ "name": "query-tpm-models"
+ },
+ {
+ "name": "query-tpm"
+ },
+ {
+ "name": "query-target"
+ },
+ {
+ "name": "query-cpu-definitions"
+ },
+ {
+ "name": "query-machines"
+ },
+ {
+ "name": "device-list-properties"
+ },
+ {
+ "name": "qom-list-types"
+ },
+ {
+ "name": "change-vnc-password"
+ },
+ {
+ "name": "nbd-server-stop"
+ },
+ {
+ "name": "nbd-server-add"
+ },
+ {
+ "name": "nbd-server-start"
+ },
+ {
+ "name": "qom-get"
+ },
+ {
+ "name": "qom-set"
+ },
+ {
+ "name": "qom-list"
+ },
+ {
+ "name": "query-block-jobs"
+ },
+ {
+ "name": "query-balloon"
+ },
+ {
+ "name": "query-migrate-capabilities"
+ },
+ {
+ "name": "migrate-set-capabilities"
+ },
+ {
+ "name": "query-migrate"
+ },
+ {
+ "name": "query-command-line-options"
+ },
+ {
+ "name": "query-uuid"
+ },
+ {
+ "name": "query-name"
+ },
+ {
+ "name": "query-spice"
+ },
+ {
+ "name": "query-vnc"
+ },
+ {
+ "name": "query-mice"
+ },
+ {
+ "name": "query-status"
+ },
+ {
+ "name": "query-kvm"
+ },
+ {
+ "name": "query-pci"
+ },
+ {
+ "name": "query-iothreads"
+ },
+ {
+ "name": "query-cpus"
+ },
+ {
+ "name": "query-blockstats"
+ },
+ {
+ "name": "query-block"
+ },
+ {
+ "name": "query-chardev-backends"
+ },
+ {
+ "name": "query-chardev"
+ },
+ {
+ "name": "query-events"
+ },
+ {
+ "name": "query-commands"
+ },
+ {
+ "name": "query-version"
+ },
+ {
+ "name": "human-monitor-command"
+ },
+ {
+ "name": "qmp_capabilities"
+ },
+ {
+ "name": "add_client"
+ },
+ {
+ "name": "expire_password"
+ },
+ {
+ "name": "set_password"
+ },
+ {
+ "name": "block_set_io_throttle"
+ },
+ {
+ "name": "block_passwd"
+ },
+ {
+ "name": "query-fdsets"
+ },
+ {
+ "name": "remove-fd"
+ },
+ {
+ "name": "add-fd"
+ },
+ {
+ "name": "closefd"
+ },
+ {
+ "name": "getfd"
+ },
+ {
+ "name": "set_link"
+ },
+ {
+ "name": "balloon"
+ },
+ {
+ "name": "change-backing-file"
+ },
+ {
+ "name": "drive-mirror"
+ },
+ {
+ "name": "blockdev-snapshot-delete-internal-sync"
+ },
+ {
+ "name": "blockdev-snapshot-internal-sync"
+ },
+ {
+ "name": "blockdev-snapshot-sync"
+ },
+ {
+ "name": "transaction"
+ },
+ {
+ "name": "block-job-complete"
+ },
+ {
+ "name": "block-job-resume"
+ },
+ {
+ "name": "block-job-pause"
+ },
+ {
+ "name": "block-job-cancel"
+ },
+ {
+ "name": "block-job-set-speed"
+ },
+ {
+ "name": "drive-backup"
+ },
+ {
+ "name": "block-commit"
+ },
+ {
+ "name": "block-stream"
+ },
+ {
+ "name": "block_resize"
+ },
+ {
+ "name": "object-del"
+ },
+ {
+ "name": "object-add"
+ },
+ {
+ "name": "netdev_del"
+ },
+ {
+ "name": "netdev_add"
+ },
+ {
+ "name": "query-dump-guest-memory-capability"
+ },
+ {
+ "name": "dump-guest-memory"
+ },
+ {
+ "name": "client_migrate_info"
+ },
+ {
+ "name": "migrate_set_downtime"
+ },
+ {
+ "name": "migrate_set_speed"
+ },
+ {
+ "name": "query-migrate-cache-size"
+ },
+ {
+ "name": "migrate-set-cache-size"
+ },
+ {
+ "name": "migrate_cancel"
+ },
+ {
+ "name": "migrate"
+ },
+ {
+ "name": "xen-set-global-dirty-log"
+ },
+ {
+ "name": "xen-save-devices-state"
+ },
+ {
+ "name": "ringbuf-read"
+ },
+ {
+ "name": "ringbuf-write"
+ },
+ {
+ "name": "inject-nmi"
+ },
+ {
+ "name": "pmemsave"
+ },
+ {
+ "name": "memsave"
+ },
+ {
+ "name": "cpu-add"
+ },
+ {
+ "name": "cpu"
+ },
+ {
+ "name": "send-key"
+ },
+ {
+ "name": "device_del"
+ },
+ {
+ "name": "device_add"
+ },
+ {
+ "name": "system_powerdown"
+ },
+ {
+ "name": "system_reset"
+ },
+ {
+ "name": "system_wakeup"
+ },
+ {
+ "name": "cont"
+ },
+ {
+ "name": "stop"
+ },
+ {
+ "name": "screendump"
+ },
+ {
+ "name": "change"
+ },
+ {
+ "name": "eject"
+ },
+ {
+ "name": "quit"
+ }
+ ],
+ "id": "libvirt-4"
+}
+
+{
+ "return": {
+ "fd": 10,
+ "fdset-id": 0
+ },
+ "id": "libvirt-5"
+}
+
+{
+ "id": "libvirt-6",
+ "error": {
+ "class": "DeviceNotFound",
+ "desc": "Device 'bogus' not found"
+ }
+}
+
+{
+ "return": [
+ {
+ "name": "VSERPORT_CHANGE"
+ },
+ {
+ "name": "QUORUM_REPORT_BAD"
+ },
+ {
+ "name": "QUORUM_FAILURE"
+ },
+ {
+ "name": "GUEST_PANICKED"
+ },
+ {
+ "name": "BALLOON_CHANGE"
+ },
+ {
+ "name": "ACPI_DEVICE_OST"
+ },
+ {
+ "name": "SPICE_MIGRATE_COMPLETED"
+ },
+ {
+ "name": "SPICE_DISCONNECTED"
+ },
+ {
+ "name": "SPICE_INITIALIZED"
+ },
+ {
+ "name": "SPICE_CONNECTED"
+ },
+ {
+ "name": "VNC_DISCONNECTED"
+ },
+ {
+ "name": "VNC_INITIALIZED"
+ },
+ {
+ "name": "VNC_CONNECTED"
+ },
+ {
+ "name": "NIC_RX_FILTER_CHANGED"
+ },
+ {
+ "name": "DEVICE_DELETED"
+ },
+ {
+ "name": "WATCHDOG"
+ },
+ {
+ "name": "RTC_CHANGE"
+ },
+ {
+ "name": "WAKEUP"
+ },
+ {
+ "name": "SUSPEND_DISK"
+ },
+ {
+ "name": "SUSPEND"
+ },
+ {
+ "name": "RESUME"
+ },
+ {
+ "name": "STOP"
+ },
+ {
+ "name": "RESET"
+ },
+ {
+ "name": "POWERDOWN"
+ },
+ {
+ "name": "SHUTDOWN"
+ },
+ {
+ "name": "DEVICE_TRAY_MOVED"
+ },
+ {
+ "name": "BLOCK_JOB_READY"
+ },
+ {
+ "name": "BLOCK_JOB_ERROR"
+ },
+ {
+ "name": "BLOCK_JOB_CANCELLED"
+ },
+ {
+ "name": "BLOCK_JOB_COMPLETED"
+ },
+ {
+ "name": "BLOCK_IO_ERROR"
+ },
+ {
+ "name": "BLOCK_IMAGE_CORRUPTED"
+ }
+ ],
+ "id": "libvirt-7"
+}
+
+{
+ "return": [
+ {
+ "name": "pc-0.13-machine"
+ },
+ {
+ "name": "fw_cfg"
+ },
+ {
+ "name": "i82551"
+ },
+ {
+ "name": "i82550"
+ },
+ {
+ "name": "Westmere-x86_64-cpu"
+ },
+ {
+ "name": "xlnx,ps7-usb"
+ },
+ {
+ "name": "e1000-82540em"
+ },
+ {
+ "name": "pci-serial-4x"
+ },
+ {
+ "name": "Penryn-x86_64-cpu"
+ },
+ {
+ "name": "Haswell-x86_64-cpu"
+ },
+ {
+ "name": "iothread"
+ },
+ {
+ "name": "icc-bridge"
+ },
+ {
+ "name": "cfi.pflash01"
+ },
+ {
+ "name": "Opteron_G3-x86_64-cpu"
+ },
+ {
+ "name": "Broadwell-x86_64-cpu"
+ },
+ {
+ "name": "piix3-ide"
+ },
+ {
+ "name": "isa-parallel"
+ },
+ {
+ "name": "i2c-bus"
+ },
+ {
+ "name": "megasas"
+ },
+ {
+ "name": "usb-braille"
+ },
+ {
+ "name": "exynos4210-ehci-usb"
+ },
+ {
+ "name": "vmware-svga"
+ },
+ {
+ "name": "pc-i440fx-2.0-machine"
+ },
+ {
+ "name": "PIIX3-xen"
+ },
+ {
+ "name": "ccid-bus"
+ },
+ {
+ "name": "scsi-cd"
+ },
+ {
+ "name": "isa-serial"
+ },
+ {
+ "name": "usb-ehci"
+ },
+ {
+ "name": "user-creatable"
+ },
+ {
+ "name": "container"
+ },
+ {
+ "name": "host-x86_64-cpu"
+ },
+ {
+ "name": "pci-serial-2x"
+ },
+ {
+ "name": "piix4-ide"
+ },
+ {
+ "name": "scsi-generic"
+ },
+ {
+ "name": "pc-1.0-machine"
+ },
+ {
+ "name": "virtio-net-pci"
+ },
+ {
+ "name": "pc-dimm"
+ },
+ {
+ "name": "pc-i440fx-2.1-machine"
+ },
+ {
+ "name": "isa-debugcon"
+ },
+ {
+ "name": "ide-hd"
+ },
+ {
+ "name": "qemu64-x86_64-cpu"
+ },
+ {
+ "name": "pc-q35-1.7-machine"
+ },
+ {
+ "name": "rng-egd"
+ },
+ {
+ "name": "isa-pcspk"
+ },
+ {
+ "name": "isa-pit"
+ },
+ {
+ "name": "pc-1.1-machine"
+ },
+ {
+ "name": "ich9-usb-ehci2"
+ },
+ {
+ "name": "ich9-usb-ehci1"
+ },
+ {
+ "name": "irq"
+ },
+ {
+ "name": "cirrus-vga"
+ },
+ {
+ "name": "virtconsole"
+ },
+ {
+ "name": "virtio-rng-pci"
+ },
+ {
+ "name": "PCIE"
+ },
+ {
+ "name": "pentium3-x86_64-cpu"
+ },
+ {
+ "name": "qxl-vga"
+ },
+ {
+ "name": "ioapic"
+ },
+ {
+ "name": "kvm-pit"
+ },
+ {
+ "name": "pc-0.14-machine"
+ },
+ {
+ "name": "xen-apic"
+ },
+ {
+ "name": "pc-q35-2.0-machine"
+ },
+ {
+ "name": "usb-host"
+ },
+ {
+ "name": "usb-bus"
+ },
+ {
+ "name": "pc-i440fx-1.4-machine"
+ },
+ {
+ "name": "vhost-scsi-pci"
+ },
+ {
+ "name": "usb-kbd"
+ },
+ {
+ "name": "486-x86_64-cpu"
+ },
+ {
+ "name": "ES1370"
+ },
+ {
+ "name": "gus"
+ },
+ {
+ "name": "isa-applesmc"
+ },
+ {
+ "name": "PIIX3"
+ },
+ {
+ "name": "kvm-pci-assign"
+ },
+ {
+ "name": "xen-pci-passthrough"
+ },
+ {
+ "name": "i82559er"
+ },
+ {
+ "name": "e1000-82545em"
+ },
+ {
+ "name": "q35-pcihost"
+ },
+ {
+ "name": "tegra2-ehci-usb"
+ },
+ {
+ "name": "pc-i440fx-1.5-machine"
+ },
+ {
+ "name": "usb-bt-dongle"
+ },
+ {
+ "name": "AC97"
+ },
+ {
+ "name": "i6300esb"
+ },
+ {
+ "name": "mc146818rtc"
+ },
+ {
+ "name": "e1000-82544gc"
+ },
+ {
+ "name": "PIIX4_PM"
+ },
+ {
+ "name": "piix4-usb-uhci"
+ },
+ {
+ "name": "sysbus-ahci"
+ },
+ {
+ "name": "kvm-ioapic"
+ },
+ {
+ "name": "pvpanic"
+ },
+ {
+ "name": "core2duo-x86_64-cpu"
+ },
+ {
+ "name": "virtio-9p-pci"
+ },
+ {
+ "name": "scsi-disk"
+ },
+ {
+ "name": "acpi-device-interface"
+ },
+ {
+ "name": "sb16"
+ },
+ {
+ "name": "pc-0.15-machine"
+ },
+ {
+ "name": "xenfv-machine"
+ },
+ {
+ "name": "usb-mouse"
+ },
+ {
+ "name": "piix3-usb-uhci"
+ },
+ {
+ "name": "virtio-scsi-device"
+ },
+ {
+ "name": "virtio-blk-pci"
+ },
+ {
+ "name": "virtio-9p-device"
+ },
+ {
+ "name": "hda-output"
+ },
+ {
+ "name": "SUNW,fdtwo"
+ },
+ {
+ "name": "tpci200"
+ },
+ {
+ "name": "Opteron_G4-x86_64-cpu"
+ },
+ {
+ "name": "pc-q35-1.4-machine"
+ },
+ {
+ "name": "virtio-mmio"
+ },
+ {
+ "name": "qemu-console"
+ },
+ {
+ "name": "isa-i8259"
+ },
+ {
+ "name": "System"
+ },
+ {
+ "name": "pvscsi"
+ },
+ {
+ "name": "virtio-net-device"
+ },
+ {
+ "name": "usb-hub"
+ },
+ {
+ "name": "hda-duplex"
+ },
+ {
+ "name": "isapc-machine"
+ },
+ {
+ "name": "ipoctal232"
+ },
+ {
+ "name": "pc-1.2-machine"
+ },
+ {
+ "name": "xio3130-downstream"
+ },
+ {
+ "name": "ide-cd"
+ },
+ {
+ "name": "apic"
+ },
+ {
+ "name": "isabus-bridge"
+ },
+ {
+ "name": "memory-backend-file"
+ },
+ {
+ "name": "isa-ide"
+ },
+ {
+ "name": "isa-vga"
+ },
+ {
+ "name": "qemu:memory-region"
+ },
+ {
+ "name": "kvm-i8259"
+ },
+ {
+ "name": "rng-random"
+ },
+ {
+ "name": "hotplug-handler"
+ },
+ {
+ "name": "pci-ohci"
+ },
+ {
+ "name": "i440FX-pcihost"
+ },
+ {
+ "name": "qemu32-x86_64-cpu"
+ },
+ {
+ "name": "tpm-tis"
+ },
+ {
+ "name": "tpm-passthrough"
+ },
+ {
+ "name": "nec-usb-xhci"
+ },
+ {
+ "name": "isa-debug-exit"
+ },
+ {
+ "name": "pc-0.10-machine"
+ },
+ {
+ "name": "pc-testdev"
+ },
+ {
+ "name": "sga"
+ },
+ {
+ "name": "Opteron_G1-x86_64-cpu"
+ },
+ {
+ "name": "xen-pvdevice"
+ },
+ {
+ "name": "pcnet"
+ },
+ {
+ "name": "ivshmem"
+ },
+ {
+ "name": "hpet"
+ },
+ {
+ "name": "adlib"
+ },
+ {
+ "name": "lsi53c895a"
+ },
+ {
+ "name": "usb-audio"
+ },
+ {
+ "name": "usb-wacom-tablet"
+ },
+ {
+ "name": "pc-0.11-machine"
+ },
+ {
+ "name": "kvm-apic"
+ },
+ {
+ "name": "phenom-x86_64-cpu"
+ },
+ {
+ "name": "ioh3420"
+ },
+ {
+ "name": "cs4231a"
+ },
+ {
+ "name": "dc390"
+ },
+ {
+ "name": "nvme"
+ },
+ {
+ "name": "i82801b11-bridge"
+ },
+ {
+ "name": "kvmvapic"
+ },
+ {
+ "name": "pc-q35-2.1-machine"
+ },
+ {
+ "name": "fw-path-provider"
+ },
+ {
+ "name": "usb-net"
+ },
+ {
+ "name": "mch"
+ },
+ {
+ "name": "usb-tablet"
+ },
+ {
+ "name": "vhost-scsi"
+ },
+ {
+ "name": "usb-ccid"
+ },
+ {
+ "name": "pc-i440fx-1.7-machine"
+ },
+ {
+ "name": "virtio-mmio-bus"
+ },
+ {
+ "name": "usb-bot"
+ },
+ {
+ "name": "ICH9-LPC"
+ },
+ {
+ "name": "pci-bridge"
+ },
+ {
+ "name": "pc-i440fx-1.6-machine"
+ },
+ {
+ "name": "kvmclock"
+ },
+ {
+ "name": "lsi53c810"
+ },
+ {
+ "name": "isa-cirrus-vga"
+ },
+ {
+ "name": "virtio-serial-bus"
+ },
+ {
+ "name": "ICH9 SMB"
+ },
+ {
+ "name": "SandyBridge-x86_64-cpu"
+ },
+ {
+ "name": "esp"
+ },
+ {
+ "name": "virtio-balloon-device"
+ },
+ {
+ "name": "ccid-card-passthru"
+ },
+ {
+ "name": "qxl"
+ },
+ {
+ "name": "intel-hda"
+ },
+ {
+ "name": "vmxnet3"
+ },
+ {
+ "name": "virtio-serial-device"
+ },
+ {
+ "name": "pci-testdev"
+ },
+ {
+ "name": "ich9-usb-uhci6"
+ },
+ {
+ "name": "ib700"
+ },
+ {
+ "name": "ich9-usb-uhci4"
+ },
+ {
+ "name": "piix3-ide-xen"
+ },
+ {
+ "name": "ich9-usb-uhci5"
+ },
+ {
+ "name": "icc-bus"
+ },
+ {
+ "name": "IDE"
+ },
+ {
+ "name": "VGA"
+ },
+ {
+ "name": "ich9-usb-uhci3"
+ },
+ {
+ "name": "ich9-usb-uhci2"
+ },
+ {
+ "name": "ich9-usb-uhci1"
+ },
+ {
+ "name": "x3130-upstream"
+ },
+ {
+ "name": "none-machine"
+ },
+ {
+ "name": "sysbus-fdc"
+ },
+ {
+ "name": "SCSI"
+ },
+ {
+ "name": "n270-x86_64-cpu"
+ },
+ {
+ "name": "pci-serial"
+ },
+ {
+ "name": "xenpv-machine"
+ },
+ {
+ "name": "athlon-x86_64-cpu"
+ },
+ {
+ "name": "ISA"
+ },
+ {
+ "name": "i8042"
+ },
+ {
+ "name": "ccid-card-emulated"
+ },
+ {
+ "name": "i82559c"
+ },
+ {
+ "name": "i82559b"
+ },
+ {
+ "name": "i82559a"
+ },
+ {
+ "name": "scsi-hd"
+ },
+ {
+ "name": "pc-q35-1.5-machine"
+ },
+ {
+ "name": "virtio-balloon-pci"
+ },
+ {
+ "name": "hda-micro"
+ },
+ {
+ "name": "scsi-block"
+ },
+ {
+ "name": "virtio-scsi-pci"
+ },
+ {
+ "name": "rtl8139"
+ },
+ {
+ "name": "vmmouse"
+ },
+ {
+ "name": "ich9-intel-hda"
+ },
+ {
+ "name": "usb-mtp"
+ },
+ {
+ "name": "ide-drive"
+ },
+ {
+ "name": "PCI"
+ },
+ {
+ "name": "Opteron_G5-x86_64-cpu"
+ },
+ {
+ "name": "vmport"
+ },
+ {
+ "name": "coreduo-x86_64-cpu"
+ },
+ {
+ "name": "virtio-serial-pci"
+ },
+ {
+ "name": "pc-q35-1.6-machine"
+ },
+ {
+ "name": "xen-platform"
+ },
+ {
+ "name": "pentium2-x86_64-cpu"
+ },
+ {
+ "name": "i82558b"
+ },
+ {
+ "name": "i82558a"
+ },
+ {
+ "name": "pc-0.12-machine"
+ },
+ {
+ "name": "kvm64-x86_64-cpu"
+ },
+ {
+ "name": "port92"
+ },
+ {
+ "name": "virtio-pci-bus"
+ },
+ {
+ "name": "am53c974"
+ },
+ {
+ "name": "e1000"
+ },
+ {
+ "name": "Conroe-x86_64-cpu"
+ },
+ {
+ "name": "ne2k_isa"
+ },
+ {
+ "name": "HDA"
+ },
+ {
+ "name": "usb-storage"
+ },
+ {
+ "name": "pc-1.3-machine"
+ },
+ {
+ "name": "usb-serial"
+ },
+ {
+ "name": "sysbus-ohci"
+ },
+ {
+ "name": "usb-redir"
+ },
+ {
+ "name": "i82801"
+ },
+ {
+ "name": "usb-uas"
+ },
+ {
+ "name": "i82557b"
+ },
+ {
+ "name": "i82557c"
+ },
+ {
+ "name": "Nehalem-x86_64-cpu"
+ },
+ {
+ "name": "memory-backend-ram"
+ },
+ {
+ "name": "i82557a"
+ },
+ {
+ "name": "virtserialport"
+ },
+ {
+ "name": "i440FX"
+ },
+ {
+ "name": "ne2k_pci"
+ },
+ {
+ "name": "smbus-eeprom"
+ },
+ {
+ "name": "i82562"
+ },
+ {
+ "name": "ich9-ahci"
+ },
+ {
+ "name": "isa-fdc"
+ },
+ {
+ "name": "kvm32-x86_64-cpu"
+ },
+ {
+ "name": "Opteron_G2-x86_64-cpu"
+ },
+ {
+ "name": "virtio-rng-device"
+ },
+ {
+ "name": "IndustryPack"
+ },
+ {
+ "name": "vfio-pci"
+ },
+ {
+ "name": "vt82c686b-usb-uhci"
+ },
+ {
+ "name": "secondary-vga"
+ },
+ {
+ "name": "pentium-x86_64-cpu"
+ },
+ {
+ "name": "virtio-blk-device"
+ },
+ {
+ "name": "fusbh200-ehci-usb"
+ }
+ ],
+ "id": "libvirt-8"
+}
+
+{
+ "return": [
+ {
+ "name": "iothread",
+ "type": "link"
+ },
+ {
+ "name": "x-data-plane",
+ "type": "bool"
+ },
+ {
+ "name": "scsi",
+ "type": "bool"
+ },
+ {
+ "name": "config-wce",
+ "type": "bool"
+ },
+ {
+ "name": "serial",
+ "type": "str"
+ },
+ {
+ "name": "secs",
+ "type": "uint32"
+ },
+ {
+ "name": "heads",
+ "type": "uint32"
+ },
+ {
+ "name": "cyls",
+ "type": "uint32"
+ },
+ {
+ "name": "discard_granularity",
+ "type": "uint32"
+ },
+ {
+ "name": "bootindex",
+ "type": "int32"
+ },
+ {
+ "name": "opt_io_size",
+ "type": "uint32"
+ },
+ {
+ "name": "min_io_size",
+ "type": "uint16"
+ },
+ {
+ "name": "physical_block_size",
+ "type": "uint16"
+ },
+ {
+ "name": "logical_block_size",
+ "type": "uint16"
+ },
+ {
+ "name": "drive",
+ "type": "str"
+ },
+ {
+ "name": "virtio-backend",
+ "type": "child"
+ },
+ {
+ "name": "command_serr_enable",
+ "type": "on/off"
+ },
+ {
+ "name": "multifunction",
+ "type": "on/off"
+ },
+ {
+ "name": "rombar",
+ "type": "uint32"
+ },
+ {
+ "name": "romfile",
+ "type": "str"
+ },
+ {
+ "name": "addr",
+ "type": "pci-devfn"
+ },
+ {
+ "name": "event_idx",
+ "type": "on/off"
+ },
+ {
+ "name": "indirect_desc",
+ "type": "on/off"
+ },
+ {
+ "name": "vectors",
+ "type": "uint32"
+ },
+ {
+ "name": "ioeventfd",
+ "type": "on/off"
+ },
+ {
+ "name": "class",
+ "type": "uint32"
+ }
+ ],
+ "id": "libvirt-9"
+}
+
+{
+ "return": [
+ {
+ "name": "virtio-backend",
+ "type": "child"
+ },
+ {
+ "name": "command_serr_enable",
+ "type": "on/off"
+ },
+ {
+ "name": "multifunction",
+ "type": "on/off"
+ },
+ {
+ "name": "rombar",
+ "type": "uint32"
+ },
+ {
+ "name": "romfile",
+ "type": "str"
+ },
+ {
+ "name": "addr",
+ "type": "pci-devfn"
+ },
+ {
+ "name": "event_idx",
+ "type": "on/off"
+ },
+ {
+ "name": "indirect_desc",
+ "type": "on/off"
+ },
+ {
+ "name": "tx",
+ "type": "str"
+ },
+ {
+ "name": "x-txburst",
+ "type": "int32"
+ },
+ {
+ "name": "x-txtimer",
+ "type": "uint32"
+ },
+ {
+ "name": "bootindex",
+ "type": "int32"
+ },
+ {
+ "name": "netdev",
+ "type": "netdev"
+ },
+ {
+ "name": "vlan",
+ "type": "vlan"
+ },
+ {
+ "name": "mac",
+ "type": "macaddr"
+ },
+ {
+ "name": "mq",
+ "type": "on/off"
+ },
+ {
+ "name": "ctrl_guest_offloads",
+ "type": "on/off"
+ },
+ {
+ "name": "ctrl_mac_addr",
+ "type": "on/off"
+ },
+ {
+ "name": "ctrl_rx_extra",
+ "type": "on/off"
+ },
+ {
+ "name": "ctrl_vlan",
+ "type": "on/off"
+ },
+ {
+ "name": "ctrl_rx",
+ "type": "on/off"
+ },
+ {
+ "name": "ctrl_vq",
+ "type": "on/off"
+ },
+ {
+ "name": "status",
+ "type": "on/off"
+ },
+ {
+ "name": "mrg_rxbuf",
+ "type": "on/off"
+ },
+ {
+ "name": "host_ufo",
+ "type": "on/off"
+ },
+ {
+ "name": "host_ecn",
+ "type": "on/off"
+ },
+ {
+ "name": "host_tso6",
+ "type": "on/off"
+ },
+ {
+ "name": "host_tso4",
+ "type": "on/off"
+ },
+ {
+ "name": "guest_announce",
+ "type": "on/off"
+ },
+ {
+ "name": "guest_ufo",
+ "type": "on/off"
+ },
+ {
+ "name": "guest_ecn",
+ "type": "on/off"
+ },
+ {
+ "name": "guest_tso6",
+ "type": "on/off"
+ },
+ {
+ "name": "guest_tso4",
+ "type": "on/off"
+ },
+ {
+ "name": "gso",
+ "type": "on/off"
+ },
+ {
+ "name": "guest_csum",
+ "type": "on/off"
+ },
+ {
+ "name": "csum",
+ "type": "on/off"
+ },
+ {
+ "name": "any_layout",
+ "type": "on/off"
+ },
+ {
+ "name": "vectors",
+ "type": "uint32"
+ },
+ {
+ "name": "ioeventfd",
+ "type": "on/off"
+ }
+ ],
+ "id": "libvirt-10"
+}
+
+{
+ "id": "libvirt-11",
+ "error": {
+ "class": "DeviceNotFound",
+ "desc": "Device 'virtio-blk-ccw' not found"
+ }
+}
+
+{
+ "id": "libvirt-12",
+ "error": {
+ "class": "DeviceNotFound",
+ "desc": "Device 'virtio-net-ccw' not found"
+ }
+}
+
+{
+ "id": "libvirt-13",
+ "error": {
+ "class": "DeviceNotFound",
+ "desc": "Device 'virtio-blk-s390' not found"
+ }
+}
+
+{
+ "id": "libvirt-14",
+ "error": {
+ "class": "DeviceNotFound",
+ "desc": "Device 'virtio-net-s390' not found"
+ }
+}
+
+{
+ "id": "libvirt-15",
+ "error": {
+ "class": "DeviceNotFound",
+ "desc": "Device 'pci-assign' not found"
+ }
+}
+
+{
+ "return": [
+ {
+ "name": "command_serr_enable",
+ "type": "on/off"
+ },
+ {
+ "name": "multifunction",
+ "type": "on/off"
+ },
+ {
+ "name": "rombar",
+ "type": "uint32"
+ },
+ {
+ "name": "romfile",
+ "type": "str"
+ },
+ {
+ "name": "addr",
+ "type": "pci-devfn"
+ },
+ {
+ "name": "configfd",
+ "type": "str"
+ },
+ {
+ "name": "bootindex",
+ "type": "int32"
+ },
+ {
+ "name": "share_intx",
+ "type": "on/off"
+ },
+ {
+ "name": "prefer_msi",
+ "type": "on/off"
+ },
+ {
+ "name": "host",
+ "type": "pci-host-devaddr"
+ }
+ ],
+ "id": "libvirt-16"
+}
+
+{
+ "return": [
+ {
+ "name": "command_serr_enable",
+ "type": "on/off"
+ },
+ {
+ "name": "multifunction",
+ "type": "on/off"
+ },
+ {
+ "name": "rombar",
+ "type": "uint32"
+ },
+ {
+ "name": "romfile",
+ "type": "str"
+ },
+ {
+ "name": "addr",
+ "type": "pci-devfn"
+ },
+ {
+ "name": "bootindex",
+ "type": "int32"
+ },
+ {
+ "name": "x-vga",
+ "type": "on/off"
+ },
+ {
+ "name": "x-intx-mmap-timeout-ms",
+ "type": "uint32"
+ },
+ {
+ "name": "host",
+ "type": "pci-host-devaddr"
+ }
+ ],
+ "id": "libvirt-17"
+}
+
+{
+ "return": [
+ {
+ "name": "lun",
+ "type": "uint32"
+ },
+ {
+ "name": "scsi-id",
+ "type": "uint32"
+ },
+ {
+ "name": "channel",
+ "type": "uint32"
+ },
+ {
+ "name": "max_unmap_size",
+ "type": "uint64"
+ },
+ {
+ "name": "port_index",
+ "type": "uint16"
+ },
+ {
+ "name": "port_wwn",
+ "type": "uint64"
+ },
+ {
+ "name": "wwn",
+ "type": "uint64"
+ },
+ {
+ "name": "dpofua",
+ "type": "on/off"
+ },
+ {
+ "name": "removable",
+ "type": "on/off"
+ },
+ {
+ "name": "product",
+ "type": "str"
+ },
+ {
+ "name": "vendor",
+ "type": "str"
+ },
+ {
+ "name": "serial",
+ "type": "str"
+ },
+ {
+ "name": "ver",
+ "type": "str"
+ },
+ {
+ "name": "discard_granularity",
+ "type": "uint32"
+ },
+ {
+ "name": "bootindex",
+ "type": "int32"
+ },
+ {
+ "name": "opt_io_size",
+ "type": "uint32"
+ },
+ {
+ "name": "min_io_size",
+ "type": "uint16"
+ },
+ {
+ "name": "physical_block_size",
+ "type": "blocksize"
+ },
+ {
+ "name": "logical_block_size",
+ "type": "blocksize"
+ },
+ {
+ "name": "drive",
+ "type": "drive"
+ }
+ ],
+ "id": "libvirt-18"
+}
+
+{
+ "return": [
+ {
+ "name": "unit",
+ "type": "uint32"
+ },
+ {
+ "name": "model",
+ "type": "str"
+ },
+ {
+ "name": "serial",
+ "type": "str"
+ },
+ {
+ "name": "wwn",
+ "type": "uint64"
+ },
+ {
+ "name": "ver",
+ "type": "str"
+ },
+ {
+ "name": "discard_granularity",
+ "type": "uint32"
+ },
+ {
+ "name": "bootindex",
+ "type": "int32"
+ },
+ {
+ "name": "opt_io_size",
+ "type": "uint32"
+ },
+ {
+ "name": "min_io_size",
+ "type": "uint16"
+ },
+ {
+ "name": "physical_block_size",
+ "type": "blocksize"
+ },
+ {
+ "name": "logical_block_size",
+ "type": "blocksize"
+ },
+ {
+ "name": "drive",
+ "type": "drive"
+ }
+ ],
+ "id": "libvirt-19"
+}
+
+{
+ "return": [
+ {
+ "name": "command_serr_enable",
+ "type": "on/off"
+ },
+ {
+ "name": "multifunction",
+ "type": "on/off"
+ },
+ {
+ "name": "rombar",
+ "type": "uint32"
+ },
+ {
+ "name": "romfile",
+ "type": "str"
+ },
+ {
+ "name": "addr",
+ "type": "pci-devfn"
+ },
+ {
+ "name": "memory-hotplug-support",
+ "type": "bool"
+ },
+ {
+ "name": "acpi-pci-hotplug-with-bridge-support",
+ "type": "bool"
+ },
+ {
+ "name": "s4_val",
+ "type": "uint8"
+ },
+ {
+ "name": "disable_s4",
+ "type": "uint8"
+ },
+ {
+ "name": "disable_s3",
+ "type": "uint8"
+ },
+ {
+ "name": "smb_io_base",
+ "type": "uint32"
+ }
+ ],
+ "id": "libvirt-20"
+}
+
+{
+ "return": [
+ {
+ "name": "msos-desc",
+ "type": "on/off"
+ },
+ {
+ "name": "full-path",
+ "type": "on/off"
+ },
+ {
+ "name": "serial",
+ "type": "str"
+ },
+ {
+ "name": "port",
+ "type": "str"
+ },
+ {
+ "name": "bootindex",
+ "type": "int32"
+ },
+ {
+ "name": "filter",
+ "type": "str"
+ },
+ {
+ "name": "debug",
+ "type": "uint8"
+ },
+ {
+ "name": "chardev",
+ "type": "chr"
+ }
+ ],
+ "id": "libvirt-21"
+}
+
+{
+ "return": [
+ {
+ "name": "msos-desc",
+ "type": "on/off"
+ },
+ {
+ "name": "full-path",
+ "type": "on/off"
+ },
+ {
+ "name": "serial",
+ "type": "str"
+ },
+ {
+ "name": "port",
+ "type": "str"
+ },
+ {
+ "name": "pipeline",
+ "type": "on/off"
+ },
+ {
+ "name": "loglevel",
+ "type": "uint32"
+ },
+ {
+ "name": "bootindex",
+ "type": "int32"
+ },
+ {
+ "name": "isobsize",
+ "type": "uint32"
+ },
+ {
+ "name": "isobufs",
+ "type": "uint32"
+ },
+ {
+ "name": "productid",
+ "type": "uint32"
+ },
+ {
+ "name": "vendorid",
+ "type": "uint32"
+ },
+ {
+ "name": "hostport",
+ "type": "str"
+ },
+ {
+ "name": "hostaddr",
+ "type": "uint32"
+ },
+ {
+ "name": "hostbus",
+ "type": "uint32"
+ }
+ ],
+ "id": "libvirt-22"
+}
+
+{
+ "return": [
+ {
+ "name": "lun",
+ "type": "uint32"
+ },
+ {
+ "name": "scsi-id",
+ "type": "uint32"
+ },
+ {
+ "name": "channel",
+ "type": "uint32"
+ },
+ {
+ "name": "bootindex",
+ "type": "int32"
+ },
+ {
+ "name": "drive",
+ "type": "drive"
+ }
+ ],
+ "id": "libvirt-23"
+}
+
+{
+ "return": [
+ {
+ "name": "pci-hole64-end",
+ "type": "int"
+ },
+ {
+ "name": "pci-hole64-start",
+ "type": "int"
+ },
+ {
+ "name": "pci-hole-end",
+ "type": "int"
+ },
+ {
+ "name": "pci-hole-start",
+ "type": "int"
+ },
+ {
+ "name": "pci-conf-data[0]",
+ "type": "child"
+ },
+ {
+ "name": "pci-conf-idx[0]",
+ "type": "child"
+ },
+ {
+ "name": "short_root_bus",
+ "type": "uint32"
+ },
+ {
+ "name": "pci-hole64-size",
+ "type": "size"
+ }
+ ],
+ "id": "libvirt-24"
+}
+
+{
+ "return": [
+ {
+ "name": "mcfg_size",
+ "type": "int"
+ },
+ {
+ "name": "pci-hole64-end",
+ "type": "int"
+ },
+ {
+ "name": "pci-hole64-start",
+ "type": "int"
+ },
+ {
+ "name": "pci-hole-end",
+ "type": "int"
+ },
+ {
+ "name": "pci-hole-start",
+ "type": "int"
+ },
+ {
+ "name": "mch",
+ "type": "child"
+ },
+ {
+ "name": "pci-conf-data[0]",
+ "type": "child"
+ },
+ {
+ "name": "pci-conf-idx[0]",
+ "type": "child"
+ },
+ {
+ "name": "short_root_bus",
+ "type": "uint32"
+ },
+ {
+ "name": "pci-hole64-size",
+ "type": "size"
+ },
+ {
+ "name": "MCFG",
+ "type": "uint64"
+ }
+ ],
+ "id": "libvirt-25"
+}
+
+{
+ "return": [
+ {
+ "name": "msos-desc",
+ "type": "on/off"
+ },
+ {
+ "name": "full-path",
+ "type": "on/off"
+ },
+ {
+ "name": "serial",
+ "type": "str"
+ },
+ {
+ "name": "port",
+ "type": "str"
+ },
+ {
+ "name": "removable",
+ "type": "on/off"
+ },
+ {
+ "name": "discard_granularity",
+ "type": "uint32"
+ },
+ {
+ "name": "bootindex",
+ "type": "int32"
+ },
+ {
+ "name": "opt_io_size",
+ "type": "uint32"
+ },
+ {
+ "name": "min_io_size",
+ "type": "uint16"
+ },
+ {
+ "name": "physical_block_size",
+ "type": "blocksize"
+ },
+ {
+ "name": "logical_block_size",
+ "type": "blocksize"
+ },
+ {
+ "name": "drive",
+ "type": "drive"
+ }
+ ],
+ "id": "libvirt-26"
+}
+
+{
+ "return": [
+ {
+ "name": "lost_tick_policy",
+ "type": "LostTickPolicy"
+ },
+ {
+ "name": "iobase",
+ "type": "uint32"
+ }
+ ],
+ "id": "libvirt-27"
+}
+
+{
+ "return": [
+ {
+ "name": "pc-1.3",
+ "cpu-max": 255
+ },
+ {
+ "name": "pc-0.12",
+ "cpu-max": 255
+ },
+ {
+ "name": "pc-q35-1.6",
+ "cpu-max": 255
+ },
+ {
+ "name": "pc-q35-1.5",
+ "cpu-max": 255
+ },
+ {
+ "name": "xenpv",
+ "cpu-max": 1
+ },
+ {
+ "name": "none",
+ "cpu-max": 1
+ },
+ {
+ "name": "pc-i440fx-1.6",
+ "cpu-max": 255
+ },
+ {
+ "name": "pc-i440fx-1.7",
+ "cpu-max": 255
+ },
+ {
+ "name": "pc-q35-2.1",
+ "cpu-max": 255,
+ "alias": "q35"
+ },
+ {
+ "name": "pc-0.11",
+ "cpu-max": 255
+ },
+ {
+ "name": "pc-0.10",
+ "cpu-max": 255
+ },
+ {
+ "name": "pc-1.2",
+ "cpu-max": 255
+ },
+ {
+ "name": "isapc",
+ "cpu-max": 1
+ },
+ {
+ "name": "pc-q35-1.4",
+ "cpu-max": 255
+ },
+ {
+ "name": "xenfv",
+ "cpu-max": 128
+ },
+ {
+ "name": "pc-0.15",
+ "cpu-max": 255
+ },
+ {
+ "name": "pc-i440fx-1.5",
+ "cpu-max": 255
+ },
+ {
+ "name": "pc-i440fx-1.4",
+ "cpu-max": 255
+ },
+ {
+ "name": "pc-q35-2.0",
+ "cpu-max": 255
+ },
+ {
+ "name": "pc-0.14",
+ "cpu-max": 255
+ },
+ {
+ "name": "pc-1.1",
+ "cpu-max": 255
+ },
+ {
+ "name": "pc-q35-1.7",
+ "cpu-max": 255
+ },
+ {
+ "name": "pc-i440fx-2.1",
+ "is-default": true,
+ "cpu-max": 255,
+ "alias": "pc"
+ },
+ {
+ "name": "pc-1.0",
+ "cpu-max": 255
+ },
+ {
+ "name": "pc-i440fx-2.0",
+ "cpu-max": 255
+ },
+ {
+ "name": "pc-0.13",
+ "cpu-max": 255
+ }
+ ],
+ "id": "libvirt-28"
+}
+
+{
+ "return": [
+ {
+ "name": "Opteron_G5"
+ },
+ {
+ "name": "Opteron_G4"
+ },
+ {
+ "name": "Opteron_G3"
+ },
+ {
+ "name": "Opteron_G2"
+ },
+ {
+ "name": "Opteron_G1"
+ },
+ {
+ "name": "Broadwell"
+ },
+ {
+ "name": "Haswell"
+ },
+ {
+ "name": "SandyBridge"
+ },
+ {
+ "name": "Westmere"
+ },
+ {
+ "name": "Nehalem"
+ },
+ {
+ "name": "Penryn"
+ },
+ {
+ "name": "Conroe"
+ },
+ {
+ "name": "n270"
+ },
+ {
+ "name": "athlon"
+ },
+ {
+ "name": "pentium3"
+ },
+ {
+ "name": "pentium2"
+ },
+ {
+ "name": "pentium"
+ },
+ {
+ "name": "486"
+ },
+ {
+ "name": "coreduo"
+ },
+ {
+ "name": "kvm32"
+ },
+ {
+ "name": "qemu32"
+ },
+ {
+ "name": "kvm64"
+ },
+ {
+ "name": "core2duo"
+ },
+ {
+ "name": "phenom"
+ },
+ {
+ "name": "qemu64"
+ }
+ ],
+ "id": "libvirt-29"
+}
+
+{
+ "return": {
+ "enabled": false,
+ "present": true
+ },
+ "id": "libvirt-30"
+}
+
+{
+ "return": [
+ "tpm-tis"
+ ],
+ "id": "libvirt-31"
+}
+
+{
+ "return": [
+ "passthrough"
+ ],
+ "id": "libvirt-32"
+}
+
+{
+ "return": [
+ {
+ "parameters": [
+ {
+ "name": "initiator-name",
+ "help": "Initiator iqn name to use when connecting",
+ "type": "string"
+ },
+ {
+ "name": "header-digest",
+ "help": "HeaderDigest setting. {CRC32C|CRC32C-NONE|NONE-CRC32C|NONE}",
+ "type": "string"
+ },
+ {
+ "name": "password",
+ "help": "password for CHAP authentication to target",
+ "type": "string"
+ },
+ {
+ "name": "user",
+ "help": "username for CHAP authentication to target",
+ "type": "string"
+ }
+ ],
+ "option": "iscsi"
+ },
+ {
+ "parameters": [
+ {
+ "name": "seamless-migration",
+ "type": "boolean"
+ },
+ {
+ "name": "playback-compression",
+ "type": "boolean"
+ },
+ {
+ "name": "agent-mouse",
+ "type": "boolean"
+ },
+ {
+ "name": "streaming-video",
+ "type": "string"
+ },
+ {
+ "name": "zlib-glz-wan-compression",
+ "type": "string"
+ },
+ {
+ "name": "jpeg-wan-compression",
+ "type": "string"
+ },
+ {
+ "name": "image-compression",
+ "type": "string"
+ },
+ {
+ "name": "plaintext-channel",
+ "type": "string"
+ },
+ {
+ "name": "tls-channel",
+ "type": "string"
+ },
+ {
+ "name": "tls-ciphers",
+ "type": "string"
+ },
+ {
+ "name": "x509-dh-key-file",
+ "type": "string"
+ },
+ {
+ "name": "x509-cacert-file",
+ "type": "string"
+ },
+ {
+ "name": "x509-cert-file",
+ "type": "string"
+ },
+ {
+ "name": "x509-key-password",
+ "type": "string"
+ },
+ {
+ "name": "x509-key-file",
+ "type": "string"
+ },
+ {
+ "name": "x509-dir",
+ "type": "string"
+ },
+ {
+ "name": "sasl",
+ "type": "boolean"
+ },
+ {
+ "name": "disable-agent-file-xfer",
+ "type": "boolean"
+ },
+ {
+ "name": "disable-copy-paste",
+ "type": "boolean"
+ },
+ {
+ "name": "disable-ticketing",
+ "type": "boolean"
+ },
+ {
+ "name": "password",
+ "type": "string"
+ },
+ {
+ "name": "ipv6",
+ "type": "boolean"
+ },
+ {
+ "name": "ipv4",
+ "type": "boolean"
+ },
+ {
+ "name": "addr",
+ "type": "string"
+ },
+ {
+ "name": "tls-port",
+ "type": "number"
+ },
+ {
+ "name": "port",
+ "type": "number"
+ }
+ ],
+ "option": "spice"
+ },
+ {
+ "parameters": [
+ ],
+ "option": "acpi"
+ },
+ {
+ "parameters": [
+ {
+ "name": "sock_fd",
+ "type": "number"
+ },
+ {
+ "name": "socket",
+ "type": "string"
+ },
+ {
+ "name": "readonly",
+ "type": "boolean"
+ },
+ {
+ "name": "writeout",
+ "type": "string"
+ },
+ {
+ "name": "security_model",
+ "type": "string"
+ },
+ {
+ "name": "mount_tag",
+ "type": "string"
+ },
+ {
+ "name": "path",
+ "type": "string"
+ },
+ {
+ "name": "fsdriver",
+ "type": "string"
+ }
+ ],
+ "option": "virtfs"
+ },
+ {
+ "parameters": [
+ {
+ "name": "sock_fd",
+ "type": "number"
+ },
+ {
+ "name": "socket",
+ "type": "string"
+ },
+ {
+ "name": "readonly",
+ "type": "boolean"
+ },
+ {
+ "name": "writeout",
+ "type": "string"
+ },
+ {
+ "name": "security_model",
+ "type": "string"
+ },
+ {
+ "name": "path",
+ "type": "string"
+ },
+ {
+ "name": "fsdriver",
+ "type": "string"
+ }
+ ],
+ "option": "fsdev"
+ },
+ {
+ "parameters": [
+ ],
+ "option": "smbios"
+ },
+ {
+ "parameters": [
+ ],
+ "option": "numa"
+ },
+ {
+ "parameters": [
+ {
+ "name": "debug-threads",
+ "help": "When enabled, name the individual threads; defaults off.\nNOTE: The thread names are for debugging and not a\nstable API.",
+ "type": "boolean"
+ },
+ {
+ "name": "process",
+ "help": "Sets the name of the QEMU process, as shown in top etc",
+ "type": "string"
+ },
+ {
+ "name": "guest",
+ "help": "Sets the name of the guest.\nThis name will be displayed in the SDL window caption.\nThe name will also be used for the VNC server",
+ "type": "string"
+ }
+ ],
+ "option": "name"
+ },
+ {
+ "parameters": [
+ {
+ "name": "timestamp",
+ "type": "boolean"
+ }
+ ],
+ "option": "msg"
+ },
+ {
+ "parameters": [
+ {
+ "name": "mlock",
+ "type": "boolean"
+ }
+ ],
+ "option": "realtime"
+ },
+ {
+ "parameters": [
+ ],
+ "option": "tpmdev"
+ },
+ {
+ "parameters": [
+ ],
+ "option": "object"
+ },
+ {
+ "parameters": [
+ {
+ "name": "opaque",
+ "help": "free-form string used to describe fd",
+ "type": "string"
+ },
+ {
+ "name": "set",
+ "help": "ID of the fd set to add fd to",
+ "type": "number"
+ },
+ {
+ "name": "fd",
+ "help": "file descriptor of which a duplicate is added to fd set",
+ "type": "number"
+ }
+ ],
+ "option": "add-fd"
+ },
+ {
+ "parameters": [
+ {
+ "name": "enable",
+ "type": "boolean"
+ }
+ ],
+ "option": "sandbox"
+ },
+ {
+ "parameters": [
+ {
+ "name": "strict",
+ "type": "boolean"
+ },
+ {
+ "name": "reboot-timeout",
+ "type": "string"
+ },
+ {
+ "name": "splash-time",
+ "type": "string"
+ },
+ {
+ "name": "splash",
+ "type": "string"
+ },
+ {
+ "name": "menu",
+ "type": "boolean"
+ },
+ {
+ "name": "once",
+ "type": "string"
+ },
+ {
+ "name": "order",
+ "type": "string"
+ }
+ ],
+ "option": "boot-opts"
+ },
+ {
+ "parameters": [
+ {
+ "name": "maxcpus",
+ "type": "number"
+ },
+ {
+ "name": "threads",
+ "type": "number"
+ },
+ {
+ "name": "cores",
+ "type": "number"
+ },
+ {
+ "name": "sockets",
+ "type": "number"
+ },
+ {
+ "name": "cpus",
+ "type": "number"
+ }
+ ],
+ "option": "smp-opts"
+ },
+ {
+ "parameters": [
+ {
+ "name": "maxmem",
+ "type": "size"
+ },
+ {
+ "name": "slots",
+ "type": "number"
+ },
+ {
+ "name": "size",
+ "type": "size"
+ }
+ ],
+ "option": "memory"
+ },
+ {
+ "parameters": [
+ {
+ "name": "max-ram-below-4g",
+ "help": "maximum ram below the 4G boundary (32bit boundary)",
+ "type": "size"
+ },
+ {
+ "name": "kvm-type",
+ "help": "Specifies the KVM virtualization mode (HV, PR)",
+ "type": "string"
+ },
+ {
+ "name": "firmware",
+ "help": "firmware image",
+ "type": "string"
+ },
+ {
+ "name": "usb",
+ "help": "Set on/off to enable/disable usb",
+ "type": "boolean"
+ },
+ {
+ "name": "mem-merge",
+ "help": "enable/disable memory merge support",
+ "type": "boolean"
+ },
+ {
+ "name": "dump-guest-core",
+ "help": "Include guest memory in a core dump",
+ "type": "boolean"
+ },
+ {
+ "name": "dt_compatible",
+ "help": "Overrides the \"compatible\" property of the dt root node",
+ "type": "string"
+ },
+ {
+ "name": "phandle_start",
+ "help": "The first phandle ID we may generate dynamically",
+ "type": "number"
+ },
+ {
+ "name": "dumpdtb",
+ "help": "Dump current dtb to a file and quit",
+ "type": "string"
+ },
+ {
+ "name": "dtb",
+ "help": "Linux kernel device tree file",
+ "type": "string"
+ },
+ {
+ "name": "append",
+ "help": "Linux kernel command line",
+ "type": "string"
+ },
+ {
+ "name": "initrd",
+ "help": "Linux initial ramdisk file",
+ "type": "string"
+ },
+ {
+ "name": "kernel",
+ "help": "Linux kernel image file",
+ "type": "string"
+ },
+ {
+ "name": "kvm_shadow_mem",
+ "help": "KVM shadow MMU size",
+ "type": "size"
+ },
+ {
+ "name": "kernel_irqchip",
+ "help": "use KVM in-kernel irqchip",
+ "type": "boolean"
+ },
+ {
+ "name": "accel",
+ "help": "accelerator list",
+ "type": "string"
+ },
+ {
+ "name": "type",
+ "help": "emulated machine",
+ "type": "string"
+ }
+ ],
+ "option": "machine"
+ },
+ {
+ "parameters": [
+ {
+ "name": "romfile",
+ "type": "string"
+ },
+ {
+ "name": "bootindex",
+ "type": "number"
+ }
+ ],
+ "option": "option-rom"
+ },
+ {
+ "parameters": [
+ {
+ "name": "file",
+ "type": "string"
+ },
+ {
+ "name": "events",
+ "type": "string"
+ }
+ ],
+ "option": "trace"
+ },
+ {
+ "parameters": [
+ {
+ "name": "pretty",
+ "type": "boolean"
+ },
+ {
+ "name": "default",
+ "type": "boolean"
+ },
+ {
+ "name": "chardev",
+ "type": "string"
+ },
+ {
+ "name": "mode",
+ "type": "string"
+ }
+ ],
+ "option": "mon"
+ },
+ {
+ "parameters": [
+ {
+ "name": "value",
+ "type": "string"
+ },
+ {
+ "name": "property",
+ "type": "string"
+ },
+ {
+ "name": "driver",
+ "type": "string"
+ }
+ ],
+ "option": "global"
+ },
+ {
+ "parameters": [
+ {
+ "name": "driftfix",
+ "type": "string"
+ },
+ {
+ "name": "clock",
+ "type": "string"
+ },
+ {
+ "name": "base",
+ "type": "string"
+ }
+ ],
+ "option": "rtc"
+ },
+ {
+ "parameters": [
+ ],
+ "option": "net"
+ },
+ {
+ "parameters": [
+ ],
+ "option": "netdev"
+ },
+ {
+ "parameters": [
+ ],
+ "option": "device"
+ },
+ {
+ "parameters": [
+ {
+ "name": "chardev",
+ "type": "string"
+ },
+ {
+ "name": "size",
+ "type": "size"
+ },
+ {
+ "name": "debug",
+ "type": "number"
+ },
+ {
+ "name": "name",
+ "type": "string"
+ },
+ {
+ "name": "signal",
+ "type": "boolean"
+ },
+ {
+ "name": "mux",
+ "type": "boolean"
+ },
+ {
+ "name": "rows",
+ "type": "number"
+ },
+ {
+ "name": "cols",
+ "type": "number"
+ },
+ {
+ "name": "height",
+ "type": "number"
+ },
+ {
+ "name": "width",
+ "type": "number"
+ },
+ {
+ "name": "telnet",
+ "type": "boolean"
+ },
+ {
+ "name": "delay",
+ "type": "boolean"
+ },
+ {
+ "name": "server",
+ "type": "boolean"
+ },
+ {
+ "name": "wait",
+ "type": "boolean"
+ },
+ {
+ "name": "ipv6",
+ "type": "boolean"
+ },
+ {
+ "name": "ipv4",
+ "type": "boolean"
+ },
+ {
+ "name": "to",
+ "type": "number"
+ },
+ {
+ "name": "localport",
+ "type": "string"
+ },
+ {
+ "name": "localaddr",
+ "type": "string"
+ },
+ {
+ "name": "port",
+ "type": "string"
+ },
+ {
+ "name": "host",
+ "type": "string"
+ },
+ {
+ "name": "path",
+ "type": "string"
+ },
+ {
+ "name": "backend",
+ "type": "string"
+ }
+ ],
+ "option": "chardev"
+ },
+ {
+ "parameters": [
+ {
+ "name": "copy-on-read",
+ "help": "copy read data from backing file into image file",
+ "type": "boolean"
+ },
+ {
+ "name": "werror",
+ "help": "write error action",
+ "type": "string"
+ },
+ {
+ "name": "rerror",
+ "help": "read error action",
+ "type": "string"
+ },
+ {
+ "name": "read-only",
+ "help": "open drive file as read-only",
+ "type": "boolean"
+ },
+ {
+ "name": "file",
+ "help": "file name",
+ "type": "string"
+ },
+ {
+ "name": "serial",
+ "help": "disk serial number",
+ "type": "string"
+ },
+ {
+ "name": "addr",
+ "help": "pci address (virtio only)",
+ "type": "string"
+ },
+ {
+ "name": "boot",
+ "help": "(deprecated, ignored)",
+ "type": "boolean"
+ },
+ {
+ "name": "trans",
+ "help": "chs translation (auto, lba, none)",
+ "type": "string"
+ },
+ {
+ "name": "secs",
+ "help": "number of sectors (ide disk geometry)",
+ "type": "number"
+ },
+ {
+ "name": "heads",
+ "help": "number of heads (ide disk geometry)",
+ "type": "number"
+ },
+ {
+ "name": "cyls",
+ "help": "number of cylinders (ide disk geometry)",
+ "type": "number"
+ },
+ {
+ "name": "if",
+ "help": "interface (ide, scsi, sd, mtd, floppy, pflash, virtio)",
+ "type": "string"
+ },
+ {
+ "name": "media",
+ "help": "media type (disk, cdrom)",
+ "type": "string"
+ },
+ {
+ "name": "index",
+ "help": "index number",
+ "type": "number"
+ },
+ {
+ "name": "unit",
+ "help": "unit number (i.e. lun for scsi)",
+ "type": "number"
+ },
+ {
+ "name": "bus",
+ "help": "bus number",
+ "type": "number"
+ },
+ {
+ "name": "detect-zeroes",
+ "help": "try to optimize zero writes (off, on, unmap)",
+ "type": "string"
+ },
+ {
+ "name": "throttling.iops-size",
+ "help": "when limiting by iops max size of an I/O in bytes",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-write-max",
+ "help": "total bytes write burst",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-read-max",
+ "help": "total bytes read burst",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-total-max",
+ "help": "total bytes burst",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-write-max",
+ "help": "I/O operations write burst",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-read-max",
+ "help": "I/O operations read burst",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-total-max",
+ "help": "I/O operations burst",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-write",
+ "help": "limit write bytes per second",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-read",
+ "help": "limit read bytes per second",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-total",
+ "help": "limit total bytes per second",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-write",
+ "help": "limit write operations per second",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-read",
+ "help": "limit read operations per second",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-total",
+ "help": "limit total I/O operations per second",
+ "type": "number"
+ },
+ {
+ "name": "werror",
+ "help": "write error action",
+ "type": "string"
+ },
+ {
+ "name": "format",
+ "help": "disk format (raw, qcow2, ...)",
+ "type": "string"
+ },
+ {
+ "name": "aio",
+ "help": "host AIO implementation (threads, native)",
+ "type": "string"
+ },
+ {
+ "name": "cache.no-flush",
+ "help": "ignore any flush requests for the device",
+ "type": "boolean"
+ },
+ {
+ "name": "cache.direct",
+ "help": "enables use of O_DIRECT (bypass the host page cache)",
+ "type": "boolean"
+ },
+ {
+ "name": "cache.writeback",
+ "help": "enables writeback mode for any caches",
+ "type": "boolean"
+ },
+ {
+ "name": "discard",
+ "help": "discard operation (ignore/off, unmap/on)",
+ "type": "string"
+ },
+ {
+ "name": "snapshot",
+ "help": "enable/disable snapshot mode",
+ "type": "boolean"
+ }
+ ],
+ "option": "drive"
+ }
+ ],
+ "id": "libvirt-33"
+}
+
+{
+ "return": [
+ {
+ "state": false,
+ "capability": "xbzrle"
+ },
+ {
+ "state": false,
+ "capability": "rdma-pin-all"
+ },
+ {
+ "state": false,
+ "capability": "auto-converge"
+ },
+ {
+ "state": false,
+ "capability": "zero-blocks"
+ }
+ ],
+ "id": "libvirt-34"
+}
diff --git a/tests/qemucapabilitiestest.c b/tests/qemucapabilitiestest.c
index 2f2b73db85b473c7427af5a008ed5dd99bd41d99..0fbc43c90a4fbad99a6af3d3b7a66143d37a9a85 100644
--- a/tests/qemucapabilitiestest.c
+++ b/tests/qemucapabilitiestest.c
@@ -189,6 +189,7 @@ mymain(void)
DO_TEST("caps_1.5.3-1");
DO_TEST("caps_1.6.0-1");
DO_TEST("caps_1.6.50-1");
+ DO_TEST("caps_2.1.1-1");
virObjectUnref(xmlopt);
return (ret == 0) ? EXIT_SUCCESS : EXIT_FAILURE;