From nobody Fri May 3 17:44:32 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1504293361728871.3237612624429; Fri, 1 Sep 2017 12:16:01 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id B9D5B285B9; Fri, 1 Sep 2017 19:15:58 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 7CC90600CD; Fri, 1 Sep 2017 19:15:57 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 2B5C84EBDB; Fri, 1 Sep 2017 19:15:54 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id v81HA77L021704 for ; Fri, 1 Sep 2017 13:10:07 -0400 Received: by smtp.corp.redhat.com (Postfix) id A186B7821A; Fri, 1 Sep 2017 17:10:07 +0000 (UTC) Received: from localhost.localdomain.com (ovpn-116-88.phx2.redhat.com [10.3.116.88]) by smtp.corp.redhat.com (Postfix) with ESMTP id EA6E878352; Fri, 1 Sep 2017 17:10:03 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com B9D5B285B9 Authentication-Results: ext-mx06.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx06.extmail.prod.ext.phx2.redhat.com; spf=fail smtp.mailfrom=libvir-list-bounces@redhat.com From: John Ferlan To: libvir-list@redhat.com Date: Fri, 1 Sep 2017 13:09:45 -0400 Message-Id: <20170901170955.20281-2-jferlan@redhat.com> In-Reply-To: <20170901170955.20281-1-jferlan@redhat.com> References: <20170901170955.20281-1-jferlan@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-loop: libvir-list@redhat.com X-Mailman-Approved-At: Fri, 01 Sep 2017 14:51:06 -0400 Cc: ashmit602@gmail.com Subject: [libvirt] [PATCH v7 01/11] qemu: Add QEMU 2.10 x86_64 the generated capabilities X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.30]); Fri, 01 Sep 2017 19:16:00 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" For reference, these were generated by updating a local qemu git repository to the latest upstream, making sure the latest dependencies were met via "dnf builddep qemu" from my sufficiently privileged root account, checking out the v2.10.0 tag, and building in order to generate an "x86_64-softmmu/qemu-system-x86_64" image. Then using a clean libvirt tree updated to master and built, the image was then provided as input: tests/qemucapsprobe /path/to/x86_64-softmmu/qemu-system-x86_64 > \ tests/qemucapabilitiesdata/caps_2.10.0.x86_64.replies With the .replies file in place and the DO_TEST line added and build, then running the following commands: touch tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml VIR_TEST_REGENERATE_OUTPUT=3D1 ./tests/qemucapabilitiestest to generate tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml and both were added to the commit. Signed-off-by: John Ferlan Reviewed-by: Pavel Hrdina --- .../caps_2.10.0.x86_64.replies | 18144 +++++++++++++++= ++++ tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml | 798 + tests/qemucapabilitiestest.c | 1 + 3 files changed, 18943 insertions(+) create mode 100644 tests/qemucapabilitiesdata/caps_2.10.0.x86_64.replies create mode 100644 tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml diff --git a/tests/qemucapabilitiesdata/caps_2.10.0.x86_64.replies b/tests/= qemucapabilitiesdata/caps_2.10.0.x86_64.replies new file mode 100644 index 0000000..5ddaa03 --- /dev/null +++ b/tests/qemucapabilitiesdata/caps_2.10.0.x86_64.replies @@ -0,0 +1,18144 @@ +{ + "QMP": { + "version": { + "qemu": { + "micro": 0, + "minor": 10, + "major": 2 + }, + "package": " (v2.10.0)" + }, + "capabilities": [ + ] + } +} + +{ + "return": { + }, + "id": "libvirt-1" +} + +{ + "return": { + "qemu": { + "micro": 0, + "minor": 10, + "major": 2 + }, + "package": " (v2.10.0)" + }, + "id": "libvirt-2" +} + +{ + "return": { + "arch": "x86_64" + }, + "id": "libvirt-3" +} + +{ + "return": [ + { + "name": "netdev_add" + }, + { + "name": "device_add" + }, + { + "name": "query-qmp-schema" + }, + { + "name": "xen-set-replication" + }, + { + "name": "xen-set-global-dirty-log" + }, + { + "name": "xen-save-devices-state" + }, + { + "name": "xen-load-devices-state" + }, + { + "name": "xen-colo-do-checkpoint" + }, + { + "name": "x-debug-block-dirty-bitmap-sha256" + }, + { + "name": "x-colo-lost-heartbeat" + }, + { + "name": "x-blockdev-remove-medium" + }, + { + "name": "x-blockdev-insert-medium" + }, + { + "name": "x-blockdev-change" + }, + { + "name": "transaction" + }, + { + "name": "trace-event-set-state" + }, + { + "name": "trace-event-get-state" + }, + { + "name": "system_wakeup" + }, + { + "name": "system_reset" + }, + { + "name": "system_powerdown" + }, + { + "name": "stop" + }, + { + "name": "set_password" + }, + { + "name": "set_link" + }, + { + "name": "send-key" + }, + { + "name": "screendump" + }, + { + "name": "rtc-reset-reinjection" + }, + { + "name": "ringbuf-write" + }, + { + "name": "ringbuf-read" + }, + { + "name": "remove-fd" + }, + { + "name": "quit" + }, + { + "name": "query-xen-replication-status" + }, + { + "name": "query-vnc-servers" + }, + { + "name": "query-vnc" + }, + { + "name": "query-vm-generation-id" + }, + { + "name": "query-version" + }, + { + "name": "query-uuid" + }, + { + "name": "query-tpm-types" + }, + { + "name": "query-tpm-models" + }, + { + "name": "query-tpm" + }, + { + "name": "query-target" + }, + { + "name": "query-status" + }, + { + "name": "query-spice" + }, + { + "name": "query-rx-filter" + }, + { + "name": "query-rocker-ports" + }, + { + "name": "query-rocker-of-dpa-groups" + }, + { + "name": "query-rocker-of-dpa-flows" + }, + { + "name": "query-rocker" + }, + { + "name": "query-pci" + }, + { + "name": "query-named-block-nodes" + }, + { + "name": "query-name" + }, + { + "name": "query-migrate-parameters" + }, + { + "name": "query-migrate-capabilities" + }, + { + "name": "query-migrate-cache-size" + }, + { + "name": "query-migrate" + }, + { + "name": "query-mice" + }, + { + "name": "query-memory-devices" + }, + { + "name": "query-memdev" + }, + { + "name": "query-machines" + }, + { + "name": "query-kvm" + }, + { + "name": "query-iothreads" + }, + { + "name": "query-hotpluggable-cpus" + }, + { + "name": "query-fdsets" + }, + { + "name": "query-events" + }, + { + "name": "query-dump-guest-memory-capability" + }, + { + "name": "query-dump" + }, + { + "name": "query-cpus" + }, + { + "name": "query-cpu-model-expansion" + }, + { + "name": "query-cpu-definitions" + }, + { + "name": "query-commands" + }, + { + "name": "query-command-line-options" + }, + { + "name": "query-chardev-backends" + }, + { + "name": "query-chardev" + }, + { + "name": "query-blockstats" + }, + { + "name": "query-block-jobs" + }, + { + "name": "query-block" + }, + { + "name": "query-balloon" + }, + { + "name": "query-acpi-ospm-status" + }, + { + "name": "qom-set" + }, + { + "name": "qom-list-types" + }, + { + "name": "qom-list" + }, + { + "name": "qom-get" + }, + { + "name": "qmp_capabilities" + }, + { + "name": "pmemsave" + }, + { + "name": "object-del" + }, + { + "name": "object-add" + }, + { + "name": "netdev_del" + }, + { + "name": "nbd-server-stop" + }, + { + "name": "nbd-server-start" + }, + { + "name": "nbd-server-add" + }, + { + "name": "migrate_set_speed" + }, + { + "name": "migrate_set_downtime" + }, + { + "name": "migrate_cancel" + }, + { + "name": "migrate-start-postcopy" + }, + { + "name": "migrate-set-parameters" + }, + { + "name": "migrate-set-capabilities" + }, + { + "name": "migrate-set-cache-size" + }, + { + "name": "migrate-incoming" + }, + { + "name": "migrate" + }, + { + "name": "memsave" + }, + { + "name": "input-send-event" + }, + { + "name": "inject-nmi" + }, + { + "name": "human-monitor-command" + }, + { + "name": "getfd" + }, + { + "name": "expire_password" + }, + { + "name": "eject" + }, + { + "name": "dump-guest-memory" + }, + { + "name": "drive-mirror" + }, + { + "name": "drive-backup" + }, + { + "name": "device_del" + }, + { + "name": "device-list-properties" + }, + { + "name": "cpu-add" + }, + { + "name": "cpu" + }, + { + "name": "cont" + }, + { + "name": "closefd" + }, + { + "name": "client_migrate_info" + }, + { + "name": "chardev-send-break" + }, + { + "name": "chardev-remove" + }, + { + "name": "chardev-change" + }, + { + "name": "chardev-add" + }, + { + "name": "change-vnc-password" + }, + { + "name": "change-backing-file" + }, + { + "name": "change" + }, + { + "name": "blockdev-snapshot-sync" + }, + { + "name": "blockdev-snapshot-internal-sync" + }, + { + "name": "blockdev-snapshot-delete-internal-sync" + }, + { + "name": "blockdev-snapshot" + }, + { + "name": "blockdev-open-tray" + }, + { + "name": "blockdev-mirror" + }, + { + "name": "blockdev-del" + }, + { + "name": "blockdev-close-tray" + }, + { + "name": "blockdev-change-medium" + }, + { + "name": "blockdev-backup" + }, + { + "name": "blockdev-add" + }, + { + "name": "block_set_io_throttle" + }, + { + "name": "block_resize" + }, + { + "name": "block_passwd" + }, + { + "name": "block-stream" + }, + { + "name": "block-set-write-threshold" + }, + { + "name": "block-job-set-speed" + }, + { + "name": "block-job-resume" + }, + { + "name": "block-job-pause" + }, + { + "name": "block-job-complete" + }, + { + "name": "block-job-cancel" + }, + { + "name": "block-dirty-bitmap-remove" + }, + { + "name": "block-dirty-bitmap-clear" + }, + { + "name": "block-dirty-bitmap-add" + }, + { + "name": "block-commit" + }, + { + "name": "balloon" + }, + { + "name": "add_client" + }, + { + "name": "add-fd" + } + ], + "id": "libvirt-4" +} + +{ + "return": { + "fd": 15, + "fdset-id": 0 + }, + "id": "libvirt-5" +} + +{ + "id": "libvirt-6", + "error": { + "class": "DeviceNotFound", + "desc": "Device 'bogus' not found" + } +} + +{ + "return": { + "enabled": true, + "present": true + }, + "id": "libvirt-7" +} + +{ + "return": [ + { + "name": "WATCHDOG" + }, + { + "name": "WAKEUP" + }, + { + "name": "VSERPORT_CHANGE" + }, + { + "name": "VNC_INITIALIZED" + }, + { + "name": "VNC_DISCONNECTED" + }, + { + "name": "VNC_CONNECTED" + }, + { + "name": "SUSPEND_DISK" + }, + { + "name": "SUSPEND" + }, + { + "name": "STOP" + }, + { + "name": "SPICE_MIGRATE_COMPLETED" + }, + { + "name": "SPICE_INITIALIZED" + }, + { + "name": "SPICE_DISCONNECTED" + }, + { + "name": "SPICE_CONNECTED" + }, + { + "name": "SHUTDOWN" + }, + { + "name": "RTC_CHANGE" + }, + { + "name": "RESUME" + }, + { + "name": "RESET" + }, + { + "name": "QUORUM_REPORT_BAD" + }, + { + "name": "QUORUM_FAILURE" + }, + { + "name": "POWERDOWN" + }, + { + "name": "NIC_RX_FILTER_CHANGED" + }, + { + "name": "MIGRATION_PASS" + }, + { + "name": "MIGRATION" + }, + { + "name": "MEM_UNPLUG_ERROR" + }, + { + "name": "GUEST_PANICKED" + }, + { + "name": "DUMP_COMPLETED" + }, + { + "name": "DEVICE_TRAY_MOVED" + }, + { + "name": "DEVICE_DELETED" + }, + { + "name": "BLOCK_WRITE_THRESHOLD" + }, + { + "name": "BLOCK_JOB_READY" + }, + { + "name": "BLOCK_JOB_ERROR" + }, + { + "name": "BLOCK_JOB_COMPLETED" + }, + { + "name": "BLOCK_JOB_CANCELLED" + }, + { + "name": "BLOCK_IO_ERROR" + }, + { + "name": "BLOCK_IMAGE_CORRUPTED" + }, + { + "name": "BALLOON_CHANGE" + }, + { + "name": "ACPI_DEVICE_OST" + } + ], + "id": "libvirt-8" +} + +{ + "return": [ + { + "name": "vhost-vsock-pci", + "parent": "virtio-pci" + }, + { + "name": "xen-sysdev", + "parent": "sys-bus-device" + }, + { + "name": "pc-q35-2.10-machine", + "parent": "generic-pc-machine" + }, + { + "name": "generic-sdhci", + "parent": "sys-bus-device" + }, + { + "name": "pc-0.13-machine", + "parent": "generic-pc-machine" + }, + { + "name": "cfi.pflash01", + "parent": "sys-bus-device" + }, + { + "name": "i82551", + "parent": "pci-device" + }, + { + "name": "i82550", + "parent": "pci-device" + }, + { + "name": "Westmere-x86_64-cpu", + "parent": "x86_64-cpu" + }, + { + "name": "pci-serial-4x", + "parent": "pci-device" + }, + { + "name": "cryptodev-backend", + "parent": "object" + }, + { + "name": "Penryn-x86_64-cpu", + "parent": "x86_64-cpu" + }, + { + "name": "Haswell-x86_64-cpu", + "parent": "x86_64-cpu" + }, + { + "name": "iothread", + "parent": "object" + }, + { + "name": "pc-i440fx-2.9-machine", + "parent": "generic-pc-machine" + }, + { + "name": "Skylake-Client-x86_64-cpu", + "parent": "x86_64-cpu" + }, + { + "name": "virtio-gpu-device", + "parent": "virtio-device" + }, + { + "name": "Opteron_G3-x86_64-cpu", + "parent": "x86_64-cpu" + }, + { + "name": "floppy-bus", + "parent": "bus" + }, + { + "name": "e1000e", + "parent": "pci-device" + }, + { + "name": "Broadwell-x86_64-cpu", + "parent": "x86_64-cpu" + }, + { + "name": "piix3-ide", + "parent": "pci-ide" + }, + { + "name": "secret", + "parent": "object" + }, + { + "name": "amd-iommu-iommu-memory-region", + "parent": "qemu:iommu-memory-region" + }, + { + "name": "base-x86_64-cpu", + "parent": "x86_64-cpu" + }, + { + "name": "isa-parallel", + "parent": "isa-device" + }, + { + "name": "megasas", + "parent": "megasas-base" + }, + { + "name": "i2c-bus", + "parent": "bus" + }, + { + "name": "pc-q35-2.4-machine", + "parent": "generic-pc-machine" + }, + { + "name": "vhost-vsock-device", + "parent": "virtio-device" + }, + { + "name": "usb-braille", + "parent": "usb-serial-dev" + }, + { + "name": "mptsas1068", + "parent": "pci-device" + }, + { + "name": "vmware-svga", + "parent": "pci-device" + }, + { + "name": "qio-channel-tls", + "parent": "qio-channel" + }, + { + "name": "filter-buffer", + "parent": "netfilter" + }, + { + "name": "PIIX3-xen", + "parent": "pci-piix3" + }, + { + "name": "ccid-bus", + "parent": "bus" + }, + { + "name": "scsi-cd", + "parent": "scsi-disk-base" + }, + { + "name": "pc-i440fx-2.0-machine", + "parent": "generic-pc-machine" + }, + { + "name": "isa-serial", + "parent": "isa-device" + }, + { + "name": "usb-ehci", + "parent": "pci-ehci-usb" + }, + { + "name": "container", + "parent": "object" + }, + { + "name": "qio-channel-rdma", + "parent": "qio-channel" + }, + { + "name": "chardev-null", + "parent": "chardev" + }, + { + "name": "host-x86_64-cpu", + "parent": "max-x86_64-cpu" + }, + { + "name": "qemu64-x86_64-cpu", + "parent": "x86_64-cpu" + }, + { + "name": "pci-serial-2x", + "parent": "pci-device" + }, + { + "name": "piix4-ide", + "parent": "pci-ide" + }, + { + "name": "scsi-generic", + "parent": "scsi-device" + }, + { + "name": "isa-ipmi-bt", + "parent": "isa-device" + }, + { + "name": "pc-1.0-machine", + "parent": "generic-pc-machine" + }, + { + "name": "virtio-net-pci", + "parent": "virtio-pci" + }, + { + "name": "hyperv-testdev", + "parent": "isa-device" + }, + { + "name": "pc-dimm", + "parent": "device" + }, + { + "name": "pc-q35-2.8-machine", + "parent": "generic-pc-machine" + }, + { + "name": "Haswell-noTSX-x86_64-cpu", + "parent": "x86_64-cpu" + }, + { + "name": "pc-i440fx-2.1-machine", + "parent": "generic-pc-machine" + }, + { + "name": "virtio-mouse-pci", + "parent": "virtio-input-hid-pci" + }, + { + "name": "virtio-mouse-device", + "parent": "virtio-input-hid-device" + }, + { + "name": "isa-debugcon", + "parent": "isa-device" + }, + { + "name": "intel-iommu-iommu-memory-region", + "parent": "qemu:iommu-memory-region" + }, + { + "name": "AMDVI-PCI", + "parent": "pci-device" + }, + { + "name": "ide-hd", + "parent": "ide-device" + }, + { + "name": "virtio-vga", + "parent": "virtio-pci" + }, + { + "name": "rng-egd", + "parent": "rng-backend" + }, + { + "name": "isa-pcspk", + "parent": "isa-device" + }, + { + "name": "isa-pit", + "parent": "pit-common" + }, + { + "name": "pc-1.1-machine", + "parent": "generic-pc-machine" + }, + { + "name": "ich9-usb-ehci2", + "parent": "pci-ehci-usb" + }, + { + "name": "ich9-usb-ehci1", + "parent": "pci-ehci-usb" + }, + { + "name": "pxb-host", + "parent": "pci-host-bridge" + }, + { + "name": "pc-q35-2.9-machine", + "parent": "generic-pc-machine" + }, + { + "name": "intel-iommu", + "parent": "x86-iommu" + }, + { + "name": "irq", + "parent": "object" + }, + { + "name": "qio-dns-resolver", + "parent": "object" + }, + { + "name": "ipmi-bmc-sim", + "parent": "ipmi-bmc" + }, + { + "name": "cirrus-vga", + "parent": "pci-device" + }, + { + "name": "virtconsole", + "parent": "virtserialport" + }, + { + "name": "chardev-serial", + "parent": "chardev-fd" + }, + { + "name": "virtio-rng-pci", + "parent": "virtio-pci" + }, + { + "name": "PCIE", + "parent": "PCI" + }, + { + "name": "qio-channel-buffer", + "parent": "qio-channel" + }, + { + "name": "chardev-pty", + "parent": "chardev" + }, + { + "name": "qio-channel-file", + "parent": "qio-channel" + }, + { + "name": "pentium3-x86_64-cpu", + "parent": "x86_64-cpu" + }, + { + "name": "qxl-vga", + "parent": "pci-qxl" + }, + { + "name": "xen-sysbus", + "parent": "bus" + }, + { + "name": "ioapic", + "parent": "ioapic-common" + }, + { + "name": "kvm-pit", + "parent": "pit-common" + }, + { + "name": "chardev-memory", + "parent": "chardev-ringbuf" + }, + { + "name": "pc-i440fx-2.5-machine", + "parent": "generic-pc-machine" + }, + { + "name": "filter-rewriter", + "parent": "netfilter" + }, + { + "name": "pcie-root-port", + "parent": "pcie-root-port-base" + }, + { + "name": "vhost-scsi-pci", + "parent": "virtio-pci" + }, + { + "name": "usb-kbd", + "parent": "usb-hid" + }, + { + "name": "usb-host", + "parent": "usb-device" + }, + { + "name": "xen-apic", + "parent": "apic-common" + }, + { + "name": "usb-ccid", + "parent": "usb-device" + }, + { + "name": "usb-bus", + "parent": "bus" + }, + { + "name": "Skylake-Server-x86_64-cpu", + "parent": "x86_64-cpu" + }, + { + "name": "pc-i440fx-1.4-machine", + "parent": "generic-pc-machine" + }, + { + "name": "PIIX3", + "parent": "pci-piix3" + }, + { + "name": "486-x86_64-cpu", + "parent": "x86_64-cpu" + }, + { + "name": "ES1370", + "parent": "pci-device" + }, + { + "name": "gus", + "parent": "isa-device" + }, + { + "name": "kvm-pci-assign", + "parent": "pci-device" + }, + { + "name": "isa-applesmc", + "parent": "isa-device" + }, + { + "name": "pc-i440fx-2.6-machine", + "parent": "generic-pc-machine" + }, + { + "name": "xen-pci-passthrough", + "parent": "pci-device" + }, + { + "name": "i82559er", + "parent": "pci-device" + }, + { + "name": "q35-pcihost", + "parent": "pcie-host-bridge" + }, + { + "name": "usb-bt-dongle", + "parent": "usb-device" + }, + { + "name": "e1000-82545em", + "parent": "e1000-base" + }, + { + "name": "e1000-82544gc", + "parent": "e1000-base" + }, + { + "name": "i6300esb", + "parent": "pci-device" + }, + { + "name": "pc-i440fx-1.5-machine", + "parent": "generic-pc-machine" + }, + { + "name": "tls-creds-x509", + "parent": "tls-creds" + }, + { + "name": "or-irq", + "parent": "device" + }, + { + "name": "pc-0.14-machine", + "parent": "generic-pc-machine" + }, + { + "name": "mc146818rtc", + "parent": "isa-device" + }, + { + "name": "AC97", + "parent": "pci-device" + }, + { + "name": "PIIX4_PM", + "parent": "pci-device" + }, + { + "name": "piix4-usb-uhci", + "parent": "pci-uhci-usb" + }, + { + "name": "sysbus-ahci", + "parent": "sys-bus-device" + }, + { + "name": "virtio-tablet-device", + "parent": "virtio-input-hid-device" + }, + { + "name": "filter-redirector", + "parent": "netfilter" + }, + { + "name": "kvm-ioapic", + "parent": "ioapic-common" + }, + { + "name": "chardev-pipe", + "parent": "chardev-fd" + }, + { + "name": "unimplemented-device", + "parent": "sys-bus-device" + }, + { + "name": "pvpanic", + "parent": "isa-device" + }, + { + "name": "core2duo-x86_64-cpu", + "parent": "x86_64-cpu" + }, + { + "name": "qio-channel-command", + "parent": "qio-channel" + }, + { + "name": "virtio-9p-pci", + "parent": "virtio-pci" + }, + { + "name": "scsi-disk", + "parent": "scsi-disk-base" + }, + { + "name": "vfio-pci-igd-lpc-bridge", + "parent": "pci-device" + }, + { + "name": "chardev-ringbuf", + "parent": "chardev" + }, + { + "name": "sb16", + "parent": "isa-device" + }, + { + "name": "chardev-socket", + "parent": "chardev" + }, + { + "name": "qemu-console", + "parent": "object" + }, + { + "name": "pc-0.15-machine", + "parent": "generic-pc-machine" + }, + { + "name": "filter-replay", + "parent": "netfilter" + }, + { + "name": "usb-mouse", + "parent": "usb-hid" + }, + { + "name": "virtio-blk-pci", + "parent": "virtio-pci" + }, + { + "name": "xenfv-machine", + "parent": "generic-pc-machine" + }, + { + "name": "filter-dump", + "parent": "netfilter" + }, + { + "name": "virtio-keyboard-pci", + "parent": "virtio-input-hid-pci" + }, + { + "name": "chardev-stdio", + "parent": "chardev-fd" + }, + { + "name": "piix3-usb-uhci", + "parent": "pci-uhci-usb" + }, + { + "name": "virtio-scsi-device", + "parent": "virtio-scsi-common" + }, + { + "name": "tpci200", + "parent": "pci-device" + }, + { + "name": "chardev-file", + "parent": "chardev-fd" + }, + { + "name": "virtio-9p-device", + "parent": "virtio-device" + }, + { + "name": "pc-q35-2.5-machine", + "parent": "generic-pc-machine" + }, + { + "name": "SUNW,fdtwo", + "parent": "base-sysbus-fdc" + }, + { + "name": "hda-output", + "parent": "hda-audio" + }, + { + "name": "i8257", + "parent": "isa-device" + }, + { + "name": "filter-mirror", + "parent": "netfilter" + }, + { + "name": "Opteron_G4-x86_64-cpu", + "parent": "x86_64-cpu" + }, + { + "name": "virtio-mmio", + "parent": "sys-bus-device" + }, + { + "name": "vhost-user-scsi", + "parent": "vhost-scsi-common" + }, + { + "name": "isa-i8259", + "parent": "pic-common" + }, + { + "name": "System", + "parent": "bus" + }, + { + "name": "pvscsi", + "parent": "pci-device" + }, + { + "name": "amd-iommu", + "parent": "x86-iommu" + }, + { + "name": "virtio-net-device", + "parent": "virtio-device" + }, + { + "name": "input-linux", + "parent": "object" + }, + { + "name": "colo-compare", + "parent": "object" + }, + { + "name": "sd-bus", + "parent": "bus" + }, + { + "name": "xen-accel", + "parent": "accel" + }, + { + "name": "usb-hub", + "parent": "usb-device" + }, + { + "name": "chardev-testdev", + "parent": "chardev" + }, + { + "name": "IvyBridge-x86_64-cpu", + "parent": "x86_64-cpu" + }, + { + "name": "hda-duplex", + "parent": "hda-audio" + }, + { + "name": "igd-passthrough-i440FX", + "parent": "i440FX" + }, + { + "name": "ccid-card-passthru", + "parent": "ccid-card" + }, + { + "name": "chardev-hci", + "parent": "chardev" + }, + { + "name": "igd-passthrough-isa-bridge", + "parent": "pci-device" + }, + { + "name": "rocker", + "parent": "pci-device" + }, + { + "name": "nec-usb-xhci", + "parent": "base-xhci" + }, + { + "name": "megasas-gen2", + "parent": "megasas-base" + }, + { + "name": "pci-ohci", + "parent": "pci-device" + }, + { + "name": "ib700", + "parent": "isa-device" + }, + { + "name": "xio3130-downstream", + "parent": "pcie-slot" + }, + { + "name": "chardev-vc", + "parent": "chardev" + }, + { + "name": "isapc-machine", + "parent": "generic-pc-machine" + }, + { + "name": "ipoctal232", + "parent": "ipack-device" + }, + { + "name": "ide-cd", + "parent": "ide-device" + }, + { + "name": "tls-creds-anon", + "parent": "tls-creds" + }, + { + "name": "pc-i440fx-2.2-machine", + "parent": "generic-pc-machine" + }, + { + "name": "isabus-bridge", + "parent": "sys-bus-device" + }, + { + "name": "isa-ipmi-kcs", + "parent": "isa-device" + }, + { + "name": "memory-backend-file", + "parent": "memory-backend" + }, + { + "name": "virtio-crypto-pci", + "parent": "virtio-pci" + }, + { + "name": "qemu:memory-region", + "parent": "object" + }, + { + "name": "isa-vga", + "parent": "isa-device" + }, + { + "name": "isa-ide", + "parent": "isa-device" + }, + { + "name": "virtio-keyboard-device", + "parent": "virtio-input-hid-device" + }, + { + "name": "ipmi-bmc-extern", + "parent": "ipmi-bmc" + }, + { + "name": "rng-random", + "parent": "rng-backend" + }, + { + "name": "kvm-i8259", + "parent": "pic-common" + }, + { + "name": "i440FX-pcihost", + "parent": "pci-host-bridge" + }, + { + "name": "sga", + "parent": "isa-device" + }, + { + "name": "tpm-tis", + "parent": "isa-device" + }, + { + "name": "tpm-passthrough", + "parent": "tpm-backend" + }, + { + "name": "pc-1.2-machine", + "parent": "generic-pc-machine" + }, + { + "name": "isa-debug-exit", + "parent": "isa-device" + }, + { + "name": "Opteron_G1-x86_64-cpu", + "parent": "x86_64-cpu" + }, + { + "name": "pc-testdev", + "parent": "isa-device" + }, + { + "name": "pc-0.10-machine", + "parent": "generic-pc-machine" + }, + { + "name": "pc-i440fx-2.3-machine", + "parent": "generic-pc-machine" + }, + { + "name": "xen-pvdevice", + "parent": "pci-device" + }, + { + "name": "qemu32-x86_64-cpu", + "parent": "x86_64-cpu" + }, + { + "name": "pcnet", + "parent": "pci-device" + }, + { + "name": "apic", + "parent": "apic-common" + }, + { + "name": "ivshmem", + "parent": "ivshmem-common" + }, + { + "name": "ich9-usb-uhci2", + "parent": "pci-uhci-usb" + }, + { + "name": "hpet", + "parent": "sys-bus-device" + }, + { + "name": "adlib", + "parent": "isa-device" + }, + { + "name": "chardev-gdb", + "parent": "chardev" + }, + { + "name": "virtio-pci-bus", + "parent": "virtio-bus" + }, + { + "name": "vhost-user-scsi-pci", + "parent": "virtio-pci" + }, + { + "name": "lsi53c895a", + "parent": "pci-device" + }, + { + "name": "usb-audio", + "parent": "usb-device" + }, + { + "name": "chardev-udp", + "parent": "chardev" + }, + { + "name": "chardev-mux", + "parent": "chardev" + }, + { + "name": "pxb-bus", + "parent": "PCI" + }, + { + "name": "dc390", + "parent": "am53c974" + }, + { + "name": "usb-wacom-tablet", + "parent": "usb-device" + }, + { + "name": "virtio-mmio-bus", + "parent": "virtio-bus" + }, + { + "name": "pc-0.11-machine", + "parent": "generic-pc-machine" + }, + { + "name": "kvm-apic", + "parent": "apic-common" + }, + { + "name": "phenom-x86_64-cpu", + "parent": "x86_64-cpu" + }, + { + "name": "fw_cfg_io", + "parent": "fw_cfg" + }, + { + "name": "usb-net", + "parent": "usb-device" + }, + { + "name": "ioh3420", + "parent": "pcie-root-port-base" + }, + { + "name": "virtio-crypto-device", + "parent": "virtio-device" + }, + { + "name": "cs4231a", + "parent": "isa-device" + }, + { + "name": "chardev-braille", + "parent": "chardev" + }, + { + "name": "nvme", + "parent": "pci-device" + }, + { + "name": "chardev-wctablet", + "parent": "chardev" + }, + { + "name": "i82801b11-bridge", + "parent": "base-pci-bridge" + }, + { + "name": "kvmvapic", + "parent": "sys-bus-device" + }, + { + "name": "usb-tablet", + "parent": "usb-hid" + }, + { + "name": "pc-i440fx-2.10-machine", + "parent": "generic-pc-machine" + }, + { + "name": "sdhci-bus", + "parent": "sd-bus" + }, + { + "name": "pci-bridge-seat", + "parent": "pci-bridge" + }, + { + "name": "mch", + "parent": "pci-device" + }, + { + "name": "pc-i440fx-2.7-machine", + "parent": "generic-pc-machine" + }, + { + "name": "vhost-scsi", + "parent": "vhost-scsi-common" + }, + { + "name": "virtio-balloon-pci", + "parent": "virtio-pci" + }, + { + "name": "tcg-accel", + "parent": "accel" + }, + { + "name": "usb-bot", + "parent": "usb-storage-dev" + }, + { + "name": "mmio_interface", + "parent": "device" + }, + { + "name": "esp", + "parent": "sys-bus-device" + }, + { + "name": "ICH9-LPC", + "parent": "pci-device" + }, + { + "name": "edu", + "parent": "pci-device" + }, + { + "name": "accel", + "parent": "object" + }, + { + "name": "isa-cirrus-vga", + "parent": "isa-device" + }, + { + "name": "pxb-pcie-bus", + "parent": "PCIE" + }, + { + "name": "pc-i440fx-1.6-machine", + "parent": "generic-pc-machine" + }, + { + "name": "lsi53c810", + "parent": "lsi53c895a" + }, + { + "name": "kvmclock", + "parent": "sys-bus-device" + }, + { + "name": "loader", + "parent": "device" + }, + { + "name": "migration", + "parent": "device" + }, + { + "name": "pc-i440fx-2.8-machine", + "parent": "generic-pc-machine" + }, + { + "name": "ich9-usb-uhci4", + "parent": "pci-uhci-usb" + }, + { + "name": "virtio-serial-bus", + "parent": "bus" + }, + { + "name": "nvdimm", + "parent": "pc-dimm" + }, + { + "name": "x3130-upstream", + "parent": "pcie-port" + }, + { + "name": "ich9-usb-uhci6", + "parent": "pci-uhci-usb" + }, + { + "name": "SandyBridge-x86_64-cpu", + "parent": "x86_64-cpu" + }, + { + "name": "chardev-spiceport", + "parent": "chardev-spice" + }, + { + "name": "virtio-balloon-device", + "parent": "virtio-device" + }, + { + "name": "qxl", + "parent": "pci-qxl" + }, + { + "name": "chardev-spicevmc", + "parent": "chardev-spice" + }, + { + "name": "intel-hda", + "parent": "intel-hda-generic" + }, + { + "name": "pc-i440fx-1.7-machine", + "parent": "generic-pc-machine" + }, + { + "name": "max-x86_64-cpu", + "parent": "x86_64-cpu" + }, + { + "name": "virtio-serial-device", + "parent": "virtio-device" + }, + { + "name": "ich9-usb-uhci3", + "parent": "pci-uhci-usb" + }, + { + "name": "ICH9 SMB", + "parent": "pci-device" + }, + { + "name": "ich9-usb-uhci5", + "parent": "pci-uhci-usb" + }, + { + "name": "pxb-pcie", + "parent": "pci-device" + }, + { + "name": "piix3-ide-xen", + "parent": "pci-ide" + }, + { + "name": "virtio-input-host-device", + "parent": "virtio-input-device" + }, + { + "name": "vmxnet3", + "parent": "pci-device" + }, + { + "name": "IDE", + "parent": "bus" + }, + { + "name": "VGA", + "parent": "pci-vga" + }, + { + "name": "pci-testdev", + "parent": "pci-device" + }, + { + "name": "ich9-usb-uhci1", + "parent": "pci-uhci-usb" + }, + { + "name": "xenpv-machine", + "parent": "machine" + }, + { + "name": "pci-bridge", + "parent": "base-pci-bridge" + }, + { + "name": "SCSI", + "parent": "bus" + }, + { + "name": "none-machine", + "parent": "machine" + }, + { + "name": "sysbus-fdc", + "parent": "base-sysbus-fdc" + }, + { + "name": "allwinner-ahci", + "parent": "sysbus-ahci" + }, + { + "name": "n270-x86_64-cpu", + "parent": "x86_64-cpu" + }, + { + "name": "pci-serial", + "parent": "pci-device" + }, + { + "name": "pc-q35-2.6-machine", + "parent": "generic-pc-machine" + }, + { + "name": "athlon-x86_64-cpu", + "parent": "x86_64-cpu" + }, + { + "name": "virtio-rng-device", + "parent": "virtio-device" + }, + { + "name": "ccid-card-emulated", + "parent": "ccid-card" + }, + { + "name": "am53c974", + "parent": "pci-device" + }, + { + "name": "ISA", + "parent": "bus" + }, + { + "name": "i8042", + "parent": "isa-device" + }, + { + "name": "kvm-accel", + "parent": "accel" + }, + { + "name": "i82559c", + "parent": "pci-device" + }, + { + "name": "floppy", + "parent": "device" + }, + { + "name": "i82559b", + "parent": "pci-device" + }, + { + "name": "i82559a", + "parent": "pci-device" + }, + { + "name": "scsi-hd", + "parent": "scsi-disk-base" + }, + { + "name": "qtest-accel", + "parent": "accel" + }, + { + "name": "virtio-scsi-pci", + "parent": "virtio-pci" + }, + { + "name": "hda-micro", + "parent": "hda-audio" + }, + { + "name": "scsi-block", + "parent": "scsi-disk-base" + }, + { + "name": "ich9-intel-hda", + "parent": "intel-hda-generic" + }, + { + "name": "rtl8139", + "parent": "pci-device" + }, + { + "name": "vmmouse", + "parent": "isa-device" + }, + { + "name": "pc-q35-2.7-machine", + "parent": "generic-pc-machine" + }, + { + "name": "usb-mtp", + "parent": "usb-device" + }, + { + "name": "ide-drive", + "parent": "ide-device" + }, + { + "name": "qio-channel-websock", + "parent": "qio-channel" + }, + { + "name": "fw_cfg_mem", + "parent": "fw_cfg" + }, + { + "name": "PCI", + "parent": "bus" + }, + { + "name": "Opteron_G5-x86_64-cpu", + "parent": "x86_64-cpu" + }, + { + "name": "vmport", + "parent": "isa-device" + }, + { + "name": "coreduo-x86_64-cpu", + "parent": "x86_64-cpu" + }, + { + "name": "xen-backend", + "parent": "xen-sysdev" + }, + { + "name": "usb-redir", + "parent": "usb-device" + }, + { + "name": "virtio-serial-pci", + "parent": "virtio-pci" + }, + { + "name": "xen-platform", + "parent": "pci-device" + }, + { + "name": "virtio-input-host-pci", + "parent": "virtio-input-pci" + }, + { + "name": "pentium2-x86_64-cpu", + "parent": "x86_64-cpu" + }, + { + "name": "i82558b", + "parent": "pci-device" + }, + { + "name": "cryptodev-backend-builtin", + "parent": "cryptodev-backend" + }, + { + "name": "i82558a", + "parent": "pci-device" + }, + { + "name": "qemu,register", + "parent": "device" + }, + { + "name": "ne2k_isa", + "parent": "isa-device" + }, + { + "name": "sdhci-pci", + "parent": "pci-device" + }, + { + "name": "chardev-parallel", + "parent": "chardev" + }, + { + "name": "qemu-xhci", + "parent": "base-xhci" + }, + { + "name": "pxb", + "parent": "pci-device" + }, + { + "name": "port92", + "parent": "isa-device" + }, + { + "name": "e1000", + "parent": "e1000-base" + }, + { + "name": "Conroe-x86_64-cpu", + "parent": "x86_64-cpu" + }, + { + "name": "kvm64-x86_64-cpu", + "parent": "x86_64-cpu" + }, + { + "name": "usb-storage", + "parent": "usb-storage-dev" + }, + { + "name": "vt82c686b-usb-uhci", + "parent": "pci-uhci-usb" + }, + { + "name": "HDA", + "parent": "bus" + }, + { + "name": "vmgenid", + "parent": "device" + }, + { + "name": "pc-1.3-machine", + "parent": "generic-pc-machine" + }, + { + "name": "usb-serial", + "parent": "usb-serial-dev" + }, + { + "name": "i82801", + "parent": "pci-device" + }, + { + "name": "sysbus-ohci", + "parent": "sys-bus-device" + }, + { + "name": "chardev-msmouse", + "parent": "chardev" + }, + { + "name": "pc-i440fx-2.4-machine", + "parent": "generic-pc-machine" + }, + { + "name": "i82557b", + "parent": "pci-device" + }, + { + "name": "usb-uas", + "parent": "usb-device" + }, + { + "name": "Broadwell-noTSX-x86_64-cpu", + "parent": "x86_64-cpu" + }, + { + "name": "i82557c", + "parent": "pci-device" + }, + { + "name": "Nehalem-x86_64-cpu", + "parent": "x86_64-cpu" + }, + { + "name": "memory-backend-ram", + "parent": "memory-backend" + }, + { + "name": "i82557a", + "parent": "pci-device" + }, + { + "name": "virtserialport", + "parent": "virtio-serial-port" + }, + { + "name": "i440FX", + "parent": "pci-device" + }, + { + "name": "ne2k_pci", + "parent": "pci-device" + }, + { + "name": "smbus-eeprom", + "parent": "smbus-device" + }, + { + "name": "i82562", + "parent": "pci-device" + }, + { + "name": "ich9-ahci", + "parent": "pci-device" + }, + { + "name": "isa-fdc", + "parent": "isa-device" + }, + { + "name": "sd-card", + "parent": "device" + }, + { + "name": "pc-0.12-machine", + "parent": "generic-pc-machine" + }, + { + "name": "kvm32-x86_64-cpu", + "parent": "x86_64-cpu" + }, + { + "name": "Opteron_G2-x86_64-cpu", + "parent": "x86_64-cpu" + }, + { + "name": "vfio-pci", + "parent": "pci-device" + }, + { + "name": "IndustryPack", + "parent": "bus" + }, + { + "name": "virtio-gpu-pci", + "parent": "virtio-pci" + }, + { + "name": "ivshmem-plain", + "parent": "ivshmem-common" + }, + { + "name": "secondary-vga", + "parent": "pci-vga" + }, + { + "name": "ivshmem-doorbell", + "parent": "ivshmem-common" + }, + { + "name": "qio-channel-socket", + "parent": "qio-channel" + }, + { + "name": "pentium-x86_64-cpu", + "parent": "x86_64-cpu" + }, + { + "name": "virtio-blk-device", + "parent": "virtio-device" + }, + { + "name": "virtio-tablet-pci", + "parent": "virtio-input-hid-pci" + } + ], + "id": "libvirt-9" +} + +{ + "return": [ + { + "name": "secs", + "type": "uint32" + }, + { + "name": "request-merging", + "description": "on/off", + "type": "bool" + }, + { + "name": "min_io_size", + "type": "uint16" + }, + { + "name": "event_idx", + "description": "on/off", + "type": "bool" + }, + { + "name": "serial", + "type": "str" + }, + { + "name": "heads", + "type": "uint32" + }, + { + "name": "ioeventfd", + "description": "on/off", + "type": "bool" + }, + { + "name": "multifunction", + "description": "on/off", + "type": "bool" + }, + { + "name": "rombar", + "type": "uint32" + }, + { + "name": "scsi", + "description": "on/off", + "type": "bool" + }, + { + "name": "cyls", + "type": "uint32" + }, + { + "name": "x-disable-pcie", + "description": "on/off", + "type": "bool" + }, + { + "name": "logical_block_size", + "description": "A power of two between 512 and 32768", + "type": "uint16" + }, + { + "name": "indirect_desc", + "description": "on/off", + "type": "bool" + }, + { + "name": "iothread", + "type": "link" + }, + { + "name": "disable-modern", + "type": "bool" + }, + { + "name": "drive", + "description": "Node name or ID of a block device to use as a backen= d", + "type": "str" + }, + { + "name": "disable-legacy", + "description": "on/off/auto", + "type": "OnOffAuto" + }, + { + "name": "command_serr_enable", + "description": "on/off", + "type": "bool" + }, + { + "name": "x-pcie-lnkctl-init", + "description": "on/off", + "type": "bool" + }, + { + "name": "werror", + "description": "Error handling policy, report/ignore/enospc/stop/aut= o", + "type": "BlockdevOnError" + }, + { + "name": "bootindex", + "type": "int32" + }, + { + "name": "discard_granularity", + "type": "uint32" + }, + { + "name": "rerror", + "description": "Error handling policy, report/ignore/enospc/stop/aut= o", + "type": "BlockdevOnError" + }, + { + "name": "page-per-vq", + "description": "on/off", + "type": "bool" + }, + { + "name": "x-pcie-deverr-init", + "description": "on/off", + "type": "bool" + }, + { + "name": "x-pcie-pm-init", + "description": "on/off", + "type": "bool" + }, + { + "name": "any_layout", + "description": "on/off", + "type": "bool" + }, + { + "name": "x-pcie-lnksta-dllla", + "description": "on/off", + "type": "bool" + }, + { + "name": "share-rw", + "type": "bool" + }, + { + "name": "physical_block_size", + "description": "A power of two between 512 and 32768", + "type": "uint16" + }, + { + "name": "config-wce", + "description": "on/off", + "type": "bool" + }, + { + "name": "class", + "type": "uint32" + }, + { + "name": "addr", + "description": "Slot and optional function number, example: 06.0 or = 06", + "type": "int32" + }, + { + "name": "migrate-extra", + "description": "on/off", + "type": "bool" + }, + { + "name": "modern-pio-notify", + "description": "on/off", + "type": "bool" + }, + { + "name": "vectors", + "type": "uint32" + }, + { + "name": "iommu_platform", + "description": "on/off", + "type": "bool" + }, + { + "name": "x-pcie-extcap-init", + "description": "on/off", + "type": "bool" + }, + { + "name": "virtio-backend", + "type": "child" + }, + { + "name": "x-ignore-backend-features", + "type": "bool" + }, + { + "name": "notify_on_empty", + "description": "on/off", + "type": "bool" + }, + { + "name": "write-cache", + "description": "on/off/auto", + "type": "OnOffAuto" + }, + { + "name": "num-queues", + "type": "uint16" + }, + { + "name": "opt_io_size", + "type": "uint32" + }, + { + "name": "ats", + "description": "on/off", + "type": "bool" + }, + { + "name": "virtio-pci-bus-master-bug-migration", + "description": "on/off", + "type": "bool" + }, + { + "name": "romfile", + "type": "str" + } + ], + "id": "libvirt-10" +} + +{ + "return": [ + { + "name": "ctrl_mac_addr", + "description": "on/off", + "type": "bool" + }, + { + "name": "romfile", + "type": "str" + }, + { + "name": "x-pcie-lnksta-dllla", + "description": "on/off", + "type": "bool" + }, + { + "name": "status", + "description": "on/off", + "type": "bool" + }, + { + "name": "notify_on_empty", + "description": "on/off", + "type": "bool" + }, + { + "name": "command_serr_enable", + "description": "on/off", + "type": "bool" + }, + { + "name": "x-pcie-pm-init", + "description": "on/off", + "type": "bool" + }, + { + "name": "indirect_desc", + "description": "on/off", + "type": "bool" + }, + { + "name": "guest_csum", + "description": "on/off", + "type": "bool" + }, + { + "name": "ctrl_rx", + "description": "on/off", + "type": "bool" + }, + { + "name": "ctrl_vq", + "description": "on/off", + "type": "bool" + }, + { + "name": "bootindex", + "type": "int32" + }, + { + "name": "multifunction", + "description": "on/off", + "type": "bool" + }, + { + "name": "disable-modern", + "type": "bool" + }, + { + "name": "mrg_rxbuf", + "description": "on/off", + "type": "bool" + }, + { + "name": "host_tso6", + "description": "on/off", + "type": "bool" + }, + { + "name": "x-txtimer", + "type": "uint32" + }, + { + "name": "host_tso4", + "description": "on/off", + "type": "bool" + }, + { + "name": "rombar", + "type": "uint32" + }, + { + "name": "ctrl_rx_extra", + "description": "on/off", + "type": "bool" + }, + { + "name": "gso", + "description": "on/off", + "type": "bool" + }, + { + "name": "page-per-vq", + "description": "on/off", + "type": "bool" + }, + { + "name": "x-disable-pcie", + "description": "on/off", + "type": "bool" + }, + { + "name": "x-ignore-backend-features", + "type": "bool" + }, + { + "name": "vlan", + "description": "Integer VLAN id to connect to", + "type": "int32" + }, + { + "name": "x-txburst", + "type": "int32" + }, + { + "name": "iommu_platform", + "description": "on/off", + "type": "bool" + }, + { + "name": "x-pcie-lnkctl-init", + "description": "on/off", + "type": "bool" + }, + { + "name": "host_mtu", + "type": "uint16" + }, + { + "name": "ctrl_vlan", + "description": "on/off", + "type": "bool" + }, + { + "name": "virtio-backend", + "type": "child" + }, + { + "name": "event_idx", + "description": "on/off", + "type": "bool" + }, + { + "name": "vectors", + "type": "uint32" + }, + { + "name": "guest_announce", + "description": "on/off", + "type": "bool" + }, + { + "name": "host_ecn", + "description": "on/off", + "type": "bool" + }, + { + "name": "addr", + "description": "Slot and optional function number, example: 06.0 or = 06", + "type": "int32" + }, + { + "name": "ats", + "description": "on/off", + "type": "bool" + }, + { + "name": "host_ufo", + "description": "on/off", + "type": "bool" + }, + { + "name": "guest_tso4", + "description": "on/off", + "type": "bool" + }, + { + "name": "guest_tso6", + "description": "on/off", + "type": "bool" + }, + { + "name": "ctrl_guest_offloads", + "description": "on/off", + "type": "bool" + }, + { + "name": "csum", + "description": "on/off", + "type": "bool" + }, + { + "name": "modern-pio-notify", + "description": "on/off", + "type": "bool" + }, + { + "name": "ioeventfd", + "description": "on/off", + "type": "bool" + }, + { + "name": "mq", + "description": "on/off", + "type": "bool" + }, + { + "name": "any_layout", + "description": "on/off", + "type": "bool" + }, + { + "name": "guest_ecn", + "description": "on/off", + "type": "bool" + }, + { + "name": "guest_ufo", + "description": "on/off", + "type": "bool" + }, + { + "name": "virtio-pci-bus-master-bug-migration", + "description": "on/off", + "type": "bool" + }, + { + "name": "mac", + "description": "Ethernet 6-byte MAC Address, example: 52:54:00:12:34= :56", + "type": "str" + }, + { + "name": "tx_queue_size", + "type": "uint16" + }, + { + "name": "disable-legacy", + "description": "on/off/auto", + "type": "OnOffAuto" + }, + { + "name": "tx", + "type": "str" + }, + { + "name": "x-pcie-extcap-init", + "description": "on/off", + "type": "bool" + }, + { + "name": "x-mtu-bypass-backend", + "type": "bool" + }, + { + "name": "x-pcie-deverr-init", + "description": "on/off", + "type": "bool" + }, + { + "name": "netdev", + "description": "ID of a netdev to use as a backend", + "type": "str" + }, + { + "name": "migrate-extra", + "description": "on/off", + "type": "bool" + }, + { + "name": "rx_queue_size", + "type": "uint16" + } + ], + "id": "libvirt-11" +} + +{ + "return": [ + { + "name": "event_idx", + "description": "on/off", + "type": "bool" + }, + { + "name": "ioeventfd", + "description": "on/off", + "type": "bool" + }, + { + "name": "multifunction", + "description": "on/off", + "type": "bool" + }, + { + "name": "rombar", + "type": "uint32" + }, + { + "name": "x-disable-pcie", + "description": "on/off", + "type": "bool" + }, + { + "name": "indirect_desc", + "description": "on/off", + "type": "bool" + }, + { + "name": "cmd_per_lun", + "type": "uint32" + }, + { + "name": "disable-modern", + "type": "bool" + }, + { + "name": "num_queues", + "type": "uint32" + }, + { + "name": "disable-legacy", + "description": "on/off/auto", + "type": "OnOffAuto" + }, + { + "name": "command_serr_enable", + "description": "on/off", + "type": "bool" + }, + { + "name": "x-pcie-lnkctl-init", + "description": "on/off", + "type": "bool" + }, + { + "name": "hotplug", + "description": "on/off", + "type": "bool" + }, + { + "name": "page-per-vq", + "description": "on/off", + "type": "bool" + }, + { + "name": "x-pcie-deverr-init", + "description": "on/off", + "type": "bool" + }, + { + "name": "x-pcie-pm-init", + "description": "on/off", + "type": "bool" + }, + { + "name": "x-pcie-lnksta-dllla", + "description": "on/off", + "type": "bool" + }, + { + "name": "max_sectors", + "type": "uint32" + }, + { + "name": "param_change", + "description": "on/off", + "type": "bool" + }, + { + "name": "any_layout", + "description": "on/off", + "type": "bool" + }, + { + "name": "iothread", + "type": "link" + }, + { + "name": "addr", + "description": "Slot and optional function number, example: 06.0 or = 06", + "type": "int32" + }, + { + "name": "migrate-extra", + "description": "on/off", + "type": "bool" + }, + { + "name": "modern-pio-notify", + "description": "on/off", + "type": "bool" + }, + { + "name": "vectors", + "type": "uint32" + }, + { + "name": "x-pcie-extcap-init", + "description": "on/off", + "type": "bool" + }, + { + "name": "virtio-backend", + "type": "child" + }, + { + "name": "x-ignore-backend-features", + "type": "bool" + }, + { + "name": "notify_on_empty", + "description": "on/off", + "type": "bool" + }, + { + "name": "iommu_platform", + "description": "on/off", + "type": "bool" + }, + { + "name": "ats", + "description": "on/off", + "type": "bool" + }, + { + "name": "virtio-pci-bus-master-bug-migration", + "description": "on/off", + "type": "bool" + }, + { + "name": "romfile", + "type": "str" + } + ], + "id": "libvirt-12" +} + +{ + "id": "libvirt-13", + "error": { + "class": "DeviceNotFound", + "desc": "Device 'virtio-blk-ccw' not found" + } +} + +{ + "id": "libvirt-14", + "error": { + "class": "DeviceNotFound", + "desc": "Device 'virtio-net-ccw' not found" + } +} + +{ + "id": "libvirt-15", + "error": { + "class": "DeviceNotFound", + "desc": "Device 'virtio-scsi-ccw' not found" + } +} + +{ + "id": "libvirt-16", + "error": { + "class": "DeviceNotFound", + "desc": "Device 'virtio-blk-s390' not found" + } +} + +{ + "id": "libvirt-17", + "error": { + "class": "DeviceNotFound", + "desc": "Device 'virtio-net-s390' not found" + } +} + +{ + "id": "libvirt-18", + "error": { + "class": "DeviceNotFound", + "desc": "Device 'pci-assign' not found" + } +} + +{ + "return": [ + { + "name": "share_intx", + "description": "on/off", + "type": "bool" + }, + { + "name": "rombar", + "type": "uint32" + }, + { + "name": "x-pcie-lnksta-dllla", + "description": "on/off", + "type": "bool" + }, + { + "name": "bootindex", + "type": "int32" + }, + { + "name": "multifunction", + "description": "on/off", + "type": "bool" + }, + { + "name": "host", + "description": "Address (bus/device/function) of the host device, ex= ample: 04:10.0", + "type": "str" + }, + { + "name": "romfile", + "type": "str" + }, + { + "name": "configfd", + "type": "str" + }, + { + "name": "x-pcie-extcap-init", + "description": "on/off", + "type": "bool" + }, + { + "name": "command_serr_enable", + "description": "on/off", + "type": "bool" + }, + { + "name": "addr", + "description": "Slot and optional function number, example: 06.0 or = 06", + "type": "int32" + }, + { + "name": "prefer_msi", + "description": "on/off", + "type": "bool" + } + ], + "id": "libvirt-19" +} + +{ + "return": [ + { + "name": "x-pci-sub-device-id", + "type": "uint32" + }, + { + "name": "x-no-kvm-msi", + "type": "bool" + }, + { + "name": "rombar", + "type": "uint32" + }, + { + "name": "x-pcie-lnksta-dllla", + "description": "on/off", + "type": "bool" + }, + { + "name": "x-igd-opregion", + "description": "on/off", + "type": "bool" + }, + { + "name": "x-vga", + "description": "on/off", + "type": "bool" + }, + { + "name": "x-pci-vendor-id", + "type": "uint32" + }, + { + "name": "multifunction", + "description": "on/off", + "type": "bool" + }, + { + "name": "bootindex", + "type": "int32" + }, + { + "name": "x-req", + "description": "on/off", + "type": "bool" + }, + { + "name": "x-igd-gms", + "type": "uint32" + }, + { + "name": "romfile", + "type": "str" + }, + { + "name": "x-no-kvm-intx", + "type": "bool" + }, + { + "name": "x-pci-device-id", + "type": "uint32" + }, + { + "name": "host", + "description": "Address (bus/device/function) of the host device, ex= ample: 04:10.0", + "type": "str" + }, + { + "name": "x-no-kvm-msix", + "type": "bool" + }, + { + "name": "x-intx-mmap-timeout-ms", + "type": "uint32" + }, + { + "name": "command_serr_enable", + "description": "on/off", + "type": "bool" + }, + { + "name": "x-pcie-extcap-init", + "description": "on/off", + "type": "bool" + }, + { + "name": "addr", + "description": "Slot and optional function number, example: 06.0 or = 06", + "type": "int32" + }, + { + "name": "x-pci-sub-vendor-id", + "type": "uint32" + }, + { + "name": "sysfsdev", + "type": "str" + }, + { + "name": "x-no-mmap", + "type": "bool" + } + ], + "id": "libvirt-20" +} + +{ + "return": [ + { + "name": "serial", + "type": "str" + }, + { + "name": "port_index", + "type": "uint16" + }, + { + "name": "dpofua", + "description": "on/off", + "type": "bool" + }, + { + "name": "bootindex", + "type": "int32" + }, + { + "name": "logical_block_size", + "description": "A power of two between 512 and 32768", + "type": "uint16" + }, + { + "name": "discard_granularity", + "type": "uint32" + }, + { + "name": "lun", + "type": "uint32" + }, + { + "name": "max_unmap_size", + "type": "uint64" + }, + { + "name": "drive", + "description": "Node name or ID of a block device to use as a backen= d", + "type": "str" + }, + { + "name": "port_wwn", + "type": "uint64" + }, + { + "name": "write-cache", + "description": "on/off/auto", + "type": "OnOffAuto" + }, + { + "name": "share-rw", + "type": "bool" + }, + { + "name": "opt_io_size", + "type": "uint32" + }, + { + "name": "min_io_size", + "type": "uint16" + }, + { + "name": "product", + "type": "str" + }, + { + "name": "scsi-id", + "type": "uint32" + }, + { + "name": "channel", + "type": "uint32" + }, + { + "name": "vendor", + "type": "str" + }, + { + "name": "wwn", + "type": "uint64" + }, + { + "name": "werror", + "description": "Error handling policy, report/ignore/enospc/stop/aut= o", + "type": "BlockdevOnError" + }, + { + "name": "removable", + "description": "on/off", + "type": "bool" + }, + { + "name": "rerror", + "description": "Error handling policy, report/ignore/enospc/stop/aut= o", + "type": "BlockdevOnError" + }, + { + "name": "ver", + "type": "str" + }, + { + "name": "physical_block_size", + "description": "A power of two between 512 and 32768", + "type": "uint16" + }, + { + "name": "max_io_size", + "type": "uint64" + } + ], + "id": "libvirt-21" +} + +{ + "return": [ + { + "name": "serial", + "type": "str" + }, + { + "name": "logical_block_size", + "description": "A power of two between 512 and 32768", + "type": "uint16" + }, + { + "name": "discard_granularity", + "type": "uint32" + }, + { + "name": "drive", + "description": "Node name or ID of a block device to use as a backen= d", + "type": "str" + }, + { + "name": "bootindex", + "type": "int32" + }, + { + "name": "write-cache", + "description": "on/off/auto", + "type": "OnOffAuto" + }, + { + "name": "share-rw", + "type": "bool" + }, + { + "name": "opt_io_size", + "type": "uint32" + }, + { + "name": "min_io_size", + "type": "uint16" + }, + { + "name": "unit", + "type": "uint32" + }, + { + "name": "wwn", + "type": "uint64" + }, + { + "name": "werror", + "description": "Error handling policy, report/ignore/enospc/stop/aut= o", + "type": "BlockdevOnError" + }, + { + "name": "model", + "type": "str" + }, + { + "name": "rerror", + "description": "Error handling policy, report/ignore/enospc/stop/aut= o", + "type": "BlockdevOnError" + }, + { + "name": "ver", + "type": "str" + }, + { + "name": "physical_block_size", + "description": "A power of two between 512 and 32768", + "type": "uint16" + } + ], + "id": "libvirt-22" +} + +{ + "return": [ + { + "name": "memory-hotplug-support", + "type": "bool" + }, + { + "name": "rombar", + "type": "uint32" + }, + { + "name": "x-pcie-lnksta-dllla", + "description": "on/off", + "type": "bool" + }, + { + "name": "acpi-pci-hotplug-with-bridge-support", + "type": "bool" + }, + { + "name": "multifunction", + "description": "on/off", + "type": "bool" + }, + { + "name": "romfile", + "type": "str" + }, + { + "name": "disable_s4", + "type": "uint8" + }, + { + "name": "disable_s3", + "type": "uint8" + }, + { + "name": "x-pcie-extcap-init", + "description": "on/off", + "type": "bool" + }, + { + "name": "command_serr_enable", + "description": "on/off", + "type": "bool" + }, + { + "name": "s4_val", + "type": "uint8" + }, + { + "name": "smb_io_base", + "type": "uint32" + }, + { + "name": "addr", + "description": "Slot and optional function number, example: 06.0 or = 06", + "type": "int32" + } + ], + "id": "libvirt-23" +} + +{ + "return": [ + { + "name": "filter", + "type": "str" + }, + { + "name": "msos-desc", + "description": "on/off", + "type": "bool" + }, + { + "name": "serial", + "type": "str" + }, + { + "name": "bootindex", + "type": "int32" + }, + { + "name": "port", + "type": "str" + }, + { + "name": "debug", + "type": "uint8" + }, + { + "name": "streams", + "type": "bool" + }, + { + "name": "chardev", + "description": "ID of a chardev to use as a backend", + "type": "str" + }, + { + "name": "full-path", + "description": "on/off", + "type": "bool" + }, + { + "name": "attached", + "type": "bool" + } + ], + "id": "libvirt-24" +} + +{ + "return": [ + { + "name": "isobufs", + "type": "uint32" + }, + { + "name": "hostaddr", + "type": "uint32" + }, + { + "name": "msos-desc", + "description": "on/off", + "type": "bool" + }, + { + "name": "productid", + "type": "uint32" + }, + { + "name": "serial", + "type": "str" + }, + { + "name": "bootindex", + "type": "int32" + }, + { + "name": "isobsize", + "type": "uint32" + }, + { + "name": "port", + "type": "str" + }, + { + "name": "vendorid", + "type": "uint32" + }, + { + "name": "pipeline", + "description": "on/off", + "type": "bool" + }, + { + "name": "attached", + "type": "bool" + }, + { + "name": "hostport", + "type": "str" + }, + { + "name": "full-path", + "description": "on/off", + "type": "bool" + }, + { + "name": "loglevel", + "type": "uint32" + }, + { + "name": "hostbus", + "type": "uint32" + } + ], + "id": "libvirt-25" +} + +{ + "return": [ + { + "name": "bootindex", + "type": "int32" + }, + { + "name": "drive", + "description": "Node name or ID of a block device to use as a backen= d", + "type": "str" + }, + { + "name": "lun", + "type": "uint32" + }, + { + "name": "channel", + "type": "uint32" + }, + { + "name": "scsi-id", + "type": "uint32" + } + ], + "id": "libvirt-26" +} + +{ + "return": [ + { + "name": "short_root_bus", + "type": "uint32" + }, + { + "name": "pci-conf-idx[0]", + "type": "child" + }, + { + "name": "pci-hole64-end", + "type": "uint64" + }, + { + "name": "pci-hole-end", + "type": "uint32" + }, + { + "name": "pci-hole-start", + "type": "uint32" + }, + { + "name": "pci-hole64-start", + "type": "uint64" + }, + { + "name": "pci-hole64-size", + "type": "size" + }, + { + "name": "pci-conf-data[0]", + "type": "child" + } + ], + "id": "libvirt-27" +} + +{ + "return": [ + { + "name": "short_root_bus", + "type": "uint32" + }, + { + "name": "system-mem", + "type": "link" + }, + { + "name": "pci-conf-idx[0]", + "type": "child" + }, + { + "name": "pcie-mmcfg-mmio[0]", + "type": "child" + }, + { + "name": "pci-hole64-start", + "type": "uint64" + }, + { + "name": "io-mem", + "type": "link" + }, + { + "name": "pci-hole64-end", + "type": "uint64" + }, + { + "name": "pci-hole-end", + "type": "uint32" + }, + { + "name": "above-4g-mem-size", + "type": "size" + }, + { + "name": "below-4g-mem-size", + "type": "size" + }, + { + "name": "ram-mem", + "type": "link" + }, + { + "name": "pci-hole-start", + "type": "uint32" + }, + { + "name": "MCFG", + "type": "uint64" + }, + { + "name": "mch", + "type": "child" + }, + { + "name": "pci-hole64-size", + "type": "size" + }, + { + "name": "pci-mem", + "type": "link" + }, + { + "name": "pci-conf-data[0]", + "type": "child" + }, + { + "name": "mcfg_size", + "type": "uint64" + } + ], + "id": "libvirt-28" +} + +{ + "return": [ + { + "name": "serial", + "type": "str" + }, + { + "name": "msos-desc", + "description": "on/off", + "type": "bool" + }, + { + "name": "logical_block_size", + "description": "A power of two between 512 and 32768", + "type": "uint16" + }, + { + "name": "discard_granularity", + "type": "uint32" + }, + { + "name": "drive", + "description": "Node name or ID of a block device to use as a backen= d", + "type": "str" + }, + { + "name": "bootindex", + "type": "int32" + }, + { + "name": "write-cache", + "description": "on/off/auto", + "type": "OnOffAuto" + }, + { + "name": "share-rw", + "type": "bool" + }, + { + "name": "opt_io_size", + "type": "uint32" + }, + { + "name": "min_io_size", + "type": "uint16" + }, + { + "name": "port", + "type": "str" + }, + { + "name": "attached", + "type": "bool" + }, + { + "name": "full-path", + "description": "on/off", + "type": "bool" + }, + { + "name": "removable", + "description": "on/off", + "type": "bool" + }, + { + "name": "physical_block_size", + "description": "A power of two between 512 and 32768", + "type": "uint16" + } + ], + "id": "libvirt-29" +} + +{ + "return": [ + { + "name": "iobase", + "type": "uint32" + }, + { + "name": "lost_tick_policy", + "type": "LostTickPolicy" + } + ], + "id": "libvirt-30" +} + +{ + "return": [ + { + "name": "rombar", + "type": "uint32" + }, + { + "name": "x-pcie-lnksta-dllla", + "description": "on/off", + "type": "bool" + }, + { + "name": "mmio", + "description": "on/off", + "type": "bool" + }, + { + "name": "multifunction", + "description": "on/off", + "type": "bool" + }, + { + "name": "qemu-extended-regs", + "description": "on/off", + "type": "bool" + }, + { + "name": "big-endian-framebuffer", + "type": "bool" + }, + { + "name": "romfile", + "type": "str" + }, + { + "name": "vgamem_mb", + "type": "uint32" + }, + { + "name": "x-pcie-extcap-init", + "description": "on/off", + "type": "bool" + }, + { + "name": "command_serr_enable", + "description": "on/off", + "type": "bool" + }, + { + "name": "addr", + "description": "Slot and optional function number, example: 06.0 or = 06", + "type": "int32" + } + ], + "id": "libvirt-31" +} + +{ + "return": [ + { + "name": "rombar", + "type": "uint32" + }, + { + "name": "x-pcie-lnksta-dllla", + "description": "on/off", + "type": "bool" + }, + { + "name": "multifunction", + "description": "on/off", + "type": "bool" + }, + { + "name": "romfile", + "type": "str" + }, + { + "name": "vgamem_mb", + "type": "uint32" + }, + { + "name": "x-pcie-extcap-init", + "description": "on/off", + "type": "bool" + }, + { + "name": "command_serr_enable", + "description": "on/off", + "type": "bool" + }, + { + "name": "addr", + "description": "Slot and optional function number, example: 06.0 or = 06", + "type": "int32" + } + ], + "id": "libvirt-32" +} + +{ + "return": [ + { + "name": "rombar", + "type": "uint32" + }, + { + "name": "x-pcie-lnksta-dllla", + "description": "on/off", + "type": "bool" + }, + { + "name": "yres", + "type": "uint32" + }, + { + "name": "ram_size_mb", + "type": "uint32" + }, + { + "name": "command_serr_enable", + "description": "on/off", + "type": "bool" + }, + { + "name": "multifunction", + "description": "on/off", + "type": "bool" + }, + { + "name": "vgamem_mb", + "type": "uint32" + }, + { + "name": "romfile", + "type": "str" + }, + { + "name": "x-pcie-extcap-init", + "description": "on/off", + "type": "bool" + }, + { + "name": "addr", + "description": "Slot and optional function number, example: 06.0 or = 06", + "type": "int32" + }, + { + "name": "debug", + "type": "uint32" + }, + { + "name": "vram_size_mb", + "type": "uint32" + }, + { + "name": "revision", + "type": "uint32" + }, + { + "name": "ram_size", + "type": "uint32" + }, + { + "name": "vram64_size_mb", + "type": "uint32" + }, + { + "name": "guestdebug", + "type": "uint32" + }, + { + "name": "vram_size", + "type": "uint64" + }, + { + "name": "surfaces", + "type": "int32" + }, + { + "name": "max_outputs", + "type": "uint16" + }, + { + "name": "xres", + "type": "uint32" + }, + { + "name": "cmdlog", + "type": "uint32" + } + ], + "id": "libvirt-33" +} + +{ + "return": [ + { + "name": "event_idx", + "description": "on/off", + "type": "bool" + }, + { + "name": "yres", + "type": "uint32" + }, + { + "name": "ioeventfd", + "description": "on/off", + "type": "bool" + }, + { + "name": "multifunction", + "description": "on/off", + "type": "bool" + }, + { + "name": "rombar", + "type": "uint32" + }, + { + "name": "xres", + "type": "uint32" + }, + { + "name": "x-disable-pcie", + "description": "on/off", + "type": "bool" + }, + { + "name": "indirect_desc", + "description": "on/off", + "type": "bool" + }, + { + "name": "disable-modern", + "type": "bool" + }, + { + "name": "disable-legacy", + "description": "on/off/auto", + "type": "OnOffAuto" + }, + { + "name": "command_serr_enable", + "description": "on/off", + "type": "bool" + }, + { + "name": "x-pcie-lnkctl-init", + "description": "on/off", + "type": "bool" + }, + { + "name": "page-per-vq", + "description": "on/off", + "type": "bool" + }, + { + "name": "x-pcie-deverr-init", + "description": "on/off", + "type": "bool" + }, + { + "name": "x-pcie-pm-init", + "description": "on/off", + "type": "bool" + }, + { + "name": "max_outputs", + "type": "uint32" + }, + { + "name": "x-pcie-lnksta-dllla", + "description": "on/off", + "type": "bool" + }, + { + "name": "any_layout", + "description": "on/off", + "type": "bool" + }, + { + "name": "addr", + "description": "Slot and optional function number, example: 06.0 or = 06", + "type": "int32" + }, + { + "name": "migrate-extra", + "description": "on/off", + "type": "bool" + }, + { + "name": "modern-pio-notify", + "description": "on/off", + "type": "bool" + }, + { + "name": "vectors", + "type": "uint32" + }, + { + "name": "iommu_platform", + "description": "on/off", + "type": "bool" + }, + { + "name": "x-pcie-extcap-init", + "description": "on/off", + "type": "bool" + }, + { + "name": "virtio-backend", + "type": "child" + }, + { + "name": "max_hostmem", + "type": "size" + }, + { + "name": "x-ignore-backend-features", + "type": "bool" + }, + { + "name": "stats", + "description": "on/off", + "type": "bool" + }, + { + "name": "notify_on_empty", + "description": "on/off", + "type": "bool" + }, + { + "name": "virtio-pci-bus-master-bug-migration", + "description": "on/off", + "type": "bool" + }, + { + "name": "ats", + "description": "on/off", + "type": "bool" + }, + { + "name": "virgl", + "description": "on/off", + "type": "bool" + }, + { + "name": "romfile", + "type": "str" + } + ], + "id": "libvirt-34" +} + +{ + "return": [ + { + "name": "notify_on_empty", + "description": "on/off", + "type": "bool" + }, + { + "name": "any_layout", + "description": "on/off", + "type": "bool" + }, + { + "name": "indirect_desc", + "description": "on/off", + "type": "bool" + }, + { + "name": "event_idx", + "description": "on/off", + "type": "bool" + }, + { + "name": "yres", + "type": "uint32" + }, + { + "name": "stats", + "description": "on/off", + "type": "bool" + }, + { + "name": "iommu_platform", + "description": "on/off", + "type": "bool" + }, + { + "name": "xres", + "type": "uint32" + }, + { + "name": "max_outputs", + "type": "uint32" + }, + { + "name": "virgl", + "description": "on/off", + "type": "bool" + }, + { + "name": "max_hostmem", + "type": "size" + } + ], + "id": "libvirt-35" +} + +{ + "return": [ + { + "name": "memory-hotplug-support", + "type": "bool" + }, + { + "name": "rombar", + "type": "uint32" + }, + { + "name": "sci_int", + "type": "uint32" + }, + { + "name": "x-pcie-lnksta-dllla", + "description": "on/off", + "type": "bool" + }, + { + "name": "gpe0_blk_len", + "type": "uint32" + }, + { + "name": "pm_io_base", + "type": "uint32" + }, + { + "name": "noreboot", + "type": "bool" + }, + { + "name": "multifunction", + "description": "on/off", + "type": "bool" + }, + { + "name": "cpu-hotplug-legacy", + "type": "bool" + }, + { + "name": "acpi_disable_cmd", + "type": "uint8" + }, + { + "name": "x-smi-broadcast", + "description": "on/off", + "type": "bool" + }, + { + "name": "disable_s3", + "type": "uint8" + }, + { + "name": "romfile", + "type": "str" + }, + { + "name": "acpi_enable_cmd", + "type": "uint8" + }, + { + "name": "s4_val", + "type": "uint8" + }, + { + "name": "x-pcie-extcap-init", + "description": "on/off", + "type": "bool" + }, + { + "name": "command_serr_enable", + "description": "on/off", + "type": "bool" + }, + { + "name": "addr", + "description": "Slot and optional function number, example: 06.0 or = 06", + "type": "int32" + }, + { + "name": "enable_tco", + "type": "bool" + }, + { + "name": "disable_s4", + "type": "uint8" + }, + { + "name": "gpe0_blk", + "type": "uint32" + } + ], + "id": "libvirt-36" +} + +{ + "return": [ + { + "name": "guest-stats-polling-interval", + "type": "int" + }, + { + "name": "event_idx", + "description": "on/off", + "type": "bool" + }, + { + "name": "rombar", + "type": "uint32" + }, + { + "name": "multifunction", + "description": "on/off", + "type": "bool" + }, + { + "name": "x-disable-pcie", + "description": "on/off", + "type": "bool" + }, + { + "name": "indirect_desc", + "description": "on/off", + "type": "bool" + }, + { + "name": "disable-modern", + "type": "bool" + }, + { + "name": "disable-legacy", + "description": "on/off/auto", + "type": "OnOffAuto" + }, + { + "name": "command_serr_enable", + "description": "on/off", + "type": "bool" + }, + { + "name": "x-pcie-lnkctl-init", + "description": "on/off", + "type": "bool" + }, + { + "name": "guest-stats", + "type": "guest statistics" + }, + { + "name": "deflate-on-oom", + "description": "on/off", + "type": "bool" + }, + { + "name": "page-per-vq", + "description": "on/off", + "type": "bool" + }, + { + "name": "x-pcie-deverr-init", + "description": "on/off", + "type": "bool" + }, + { + "name": "x-pcie-pm-init", + "description": "on/off", + "type": "bool" + }, + { + "name": "x-pcie-lnksta-dllla", + "description": "on/off", + "type": "bool" + }, + { + "name": "any_layout", + "description": "on/off", + "type": "bool" + }, + { + "name": "class", + "type": "uint32" + }, + { + "name": "addr", + "description": "Slot and optional function number, example: 06.0 or = 06", + "type": "int32" + }, + { + "name": "migrate-extra", + "description": "on/off", + "type": "bool" + }, + { + "name": "modern-pio-notify", + "description": "on/off", + "type": "bool" + }, + { + "name": "x-pcie-extcap-init", + "description": "on/off", + "type": "bool" + }, + { + "name": "virtio-backend", + "type": "child" + }, + { + "name": "x-ignore-backend-features", + "type": "bool" + }, + { + "name": "notify_on_empty", + "description": "on/off", + "type": "bool" + }, + { + "name": "iommu_platform", + "description": "on/off", + "type": "bool" + }, + { + "name": "ats", + "description": "on/off", + "type": "bool" + }, + { + "name": "virtio-pci-bus-master-bug-migration", + "description": "on/off", + "type": "bool" + }, + { + "name": "romfile", + "type": "str" + } + ], + "id": "libvirt-37" +} + +{ + "id": "libvirt-38", + "error": { + "class": "DeviceNotFound", + "desc": "Device 'virtio-balloon-ccw' not found" + } +} + +{ + "return": [ + { + "name": "notify_on_empty", + "description": "on/off", + "type": "bool" + }, + { + "name": "any_layout", + "description": "on/off", + "type": "bool" + }, + { + "name": "indirect_desc", + "description": "on/off", + "type": "bool" + }, + { + "name": "guest-stats", + "type": "guest statistics" + }, + { + "name": "guest-stats-polling-interval", + "type": "int" + }, + { + "name": "event_idx", + "description": "on/off", + "type": "bool" + }, + { + "name": "iommu_platform", + "description": "on/off", + "type": "bool" + }, + { + "name": "deflate-on-oom", + "description": "on/off", + "type": "bool" + } + ], + "id": "libvirt-39" +} + +{ + "return": [ + { + "name": "rombar", + "type": "uint32" + }, + { + "name": "intrs", + "type": "uint32" + }, + { + "name": "x-pcie-lnksta-dllla", + "description": "on/off", + "type": "bool" + }, + { + "name": "msix", + "description": "on/off/auto", + "type": "OnOffAuto" + }, + { + "name": "multifunction", + "description": "on/off", + "type": "bool" + }, + { + "name": "msi", + "description": "on/off/auto", + "type": "OnOffAuto" + }, + { + "name": "superspeed-ports-first", + "description": "on/off", + "type": "bool" + }, + { + "name": "streams", + "description": "on/off", + "type": "bool" + }, + { + "name": "romfile", + "type": "str" + }, + { + "name": "force-pcie-endcap", + "description": "on/off", + "type": "bool" + }, + { + "name": "command_serr_enable", + "description": "on/off", + "type": "bool" + }, + { + "name": "x-pcie-extcap-init", + "description": "on/off", + "type": "bool" + }, + { + "name": "addr", + "description": "Slot and optional function number, example: 06.0 or = 06", + "type": "int32" + }, + { + "name": "p3", + "type": "uint32" + }, + { + "name": "p2", + "type": "uint32" + }, + { + "name": "slots", + "type": "uint32" + } + ], + "id": "libvirt-40" +} + +{ + "return": [ + { + "name": "eim", + "description": "on/off/auto", + "type": "OnOffAuto" + }, + { + "name": "caching-mode", + "type": "bool" + }, + { + "name": "x-buggy-eim", + "type": "bool" + }, + { + "name": "intremap", + "type": "bool" + }, + { + "name": "version", + "type": "uint32" + }, + { + "name": "pt", + "type": "bool" + }, + { + "name": "device-iotlb", + "type": "bool" + } + ], + "id": "libvirt-41" +} + +{ + "return": [ + { + "hotpluggable-cpus": true, + "name": "pc-0.12", + "cpu-max": 255 + }, + { + "hotpluggable-cpus": true, + "name": "pc-i440fx-2.4", + "cpu-max": 255 + }, + { + "hotpluggable-cpus": true, + "name": "pc-1.3", + "cpu-max": 255 + }, + { + "hotpluggable-cpus": true, + "name": "pc-q35-2.7", + "cpu-max": 255 + }, + { + "hotpluggable-cpus": true, + "name": "pc-q35-2.6", + "cpu-max": 255 + }, + { + "hotpluggable-cpus": false, + "name": "none", + "cpu-max": 1 + }, + { + "hotpluggable-cpus": false, + "name": "xenpv", + "cpu-max": 1 + }, + { + "hotpluggable-cpus": true, + "name": "pc-i440fx-1.7", + "cpu-max": 255 + }, + { + "hotpluggable-cpus": true, + "name": "pc-i440fx-2.8", + "cpu-max": 255 + }, + { + "hotpluggable-cpus": true, + "name": "pc-i440fx-1.6", + "cpu-max": 255 + }, + { + "hotpluggable-cpus": true, + "name": "pc-i440fx-2.7", + "cpu-max": 255 + }, + { + "hotpluggable-cpus": true, + "name": "pc-i440fx-2.10", + "is-default": true, + "cpu-max": 255, + "alias": "pc" + }, + { + "hotpluggable-cpus": true, + "name": "pc-0.11", + "cpu-max": 255 + }, + { + "hotpluggable-cpus": true, + "name": "pc-i440fx-2.3", + "cpu-max": 255 + }, + { + "hotpluggable-cpus": true, + "name": "pc-0.10", + "cpu-max": 255 + }, + { + "hotpluggable-cpus": true, + "name": "pc-1.2", + "cpu-max": 255 + }, + { + "hotpluggable-cpus": true, + "name": "pc-i440fx-2.2", + "cpu-max": 255 + }, + { + "hotpluggable-cpus": true, + "name": "isapc", + "cpu-max": 1 + }, + { + "hotpluggable-cpus": true, + "name": "pc-q35-2.5", + "cpu-max": 255 + }, + { + "hotpluggable-cpus": true, + "name": "xenfv", + "cpu-max": 128 + }, + { + "hotpluggable-cpus": true, + "name": "pc-0.15", + "cpu-max": 255 + }, + { + "hotpluggable-cpus": true, + "name": "pc-0.14", + "cpu-max": 255 + }, + { + "hotpluggable-cpus": true, + "name": "pc-i440fx-1.5", + "cpu-max": 255 + }, + { + "hotpluggable-cpus": true, + "name": "pc-i440fx-2.6", + "cpu-max": 255 + }, + { + "hotpluggable-cpus": true, + "name": "pc-i440fx-1.4", + "cpu-max": 255 + }, + { + "hotpluggable-cpus": true, + "name": "pc-i440fx-2.5", + "cpu-max": 255 + }, + { + "hotpluggable-cpus": true, + "name": "pc-q35-2.9", + "cpu-max": 288 + }, + { + "hotpluggable-cpus": true, + "name": "pc-1.1", + "cpu-max": 255 + }, + { + "hotpluggable-cpus": true, + "name": "pc-i440fx-2.1", + "cpu-max": 255 + }, + { + "hotpluggable-cpus": true, + "name": "pc-q35-2.8", + "cpu-max": 288 + }, + { + "hotpluggable-cpus": true, + "name": "pc-1.0", + "cpu-max": 255 + }, + { + "hotpluggable-cpus": true, + "name": "pc-i440fx-2.0", + "cpu-max": 255 + }, + { + "hotpluggable-cpus": true, + "name": "pc-q35-2.4", + "cpu-max": 255 + }, + { + "hotpluggable-cpus": true, + "name": "pc-i440fx-2.9", + "cpu-max": 255 + }, + { + "hotpluggable-cpus": true, + "name": "pc-0.13", + "cpu-max": 255 + }, + { + "hotpluggable-cpus": true, + "name": "pc-q35-2.10", + "cpu-max": 288, + "alias": "q35" + } + ], + "id": "libvirt-42" +} + +{ + "return": [ + { + "name": "max", + "typename": "max-x86_64-cpu", + "unavailable-features": [ + ], + "static": false, + "migration-safe": false + }, + { + "name": "host", + "typename": "host-x86_64-cpu", + "unavailable-features": [ + ], + "static": false, + "migration-safe": false + }, + { + "name": "base", + "typename": "base-x86_64-cpu", + "unavailable-features": [ + ], + "static": true, + "migration-safe": true + }, + { + "name": "qemu64", + "typename": "qemu64-x86_64-cpu", + "unavailable-features": [ + ], + "static": false, + "migration-safe": true + }, + { + "name": "qemu32", + "typename": "qemu32-x86_64-cpu", + "unavailable-features": [ + ], + "static": false, + "migration-safe": true + }, + { + "name": "phenom", + "typename": "phenom-x86_64-cpu", + "unavailable-features": [ + "mmxext", + "fxsr-opt", + "3dnowext", + "3dnow", + "sse4a", + "npt" + ], + "static": false, + "migration-safe": true + }, + { + "name": "pentium3", + "typename": "pentium3-x86_64-cpu", + "unavailable-features": [ + ], + "static": false, + "migration-safe": true + }, + { + "name": "pentium2", + "typename": "pentium2-x86_64-cpu", + "unavailable-features": [ + ], + "static": false, + "migration-safe": true + }, + { + "name": "pentium", + "typename": "pentium-x86_64-cpu", + "unavailable-features": [ + ], + "static": false, + "migration-safe": true + }, + { + "name": "n270", + "typename": "n270-x86_64-cpu", + "unavailable-features": [ + ], + "static": false, + "migration-safe": true + }, + { + "name": "kvm64", + "typename": "kvm64-x86_64-cpu", + "unavailable-features": [ + ], + "static": false, + "migration-safe": true + }, + { + "name": "kvm32", + "typename": "kvm32-x86_64-cpu", + "unavailable-features": [ + ], + "static": false, + "migration-safe": true + }, + { + "name": "coreduo", + "typename": "coreduo-x86_64-cpu", + "unavailable-features": [ + ], + "static": false, + "migration-safe": true + }, + { + "name": "core2duo", + "typename": "core2duo-x86_64-cpu", + "unavailable-features": [ + ], + "static": false, + "migration-safe": true + }, + { + "name": "athlon", + "typename": "athlon-x86_64-cpu", + "unavailable-features": [ + "mmxext", + "3dnowext", + "3dnow" + ], + "static": false, + "migration-safe": true + }, + { + "name": "Westmere", + "typename": "Westmere-x86_64-cpu", + "unavailable-features": [ + ], + "static": false, + "migration-safe": true + }, + { + "name": "Skylake-Server", + "typename": "Skylake-Server-x86_64-cpu", + "unavailable-features": [ + "hle", + "rtm", + "mpx", + "avx512f", + "avx512dq", + "rdseed", + "adx", + "smap", + "clwb", + "avx512cd", + "avx512bw", + "avx512vl", + "3dnowprefetch", + "xsavec", + "xgetbv1", + "mpx", + "mpx", + "avx512f", + "avx512f", + "avx512f" + ], + "static": false, + "migration-safe": true + }, + { + "name": "Skylake-Client", + "typename": "Skylake-Client-x86_64-cpu", + "unavailable-features": [ + "hle", + "rtm", + "mpx", + "rdseed", + "adx", + "smap", + "3dnowprefetch", + "xsavec", + "xgetbv1", + "mpx", + "mpx" + ], + "static": false, + "migration-safe": true + }, + { + "name": "SandyBridge", + "typename": "SandyBridge-x86_64-cpu", + "unavailable-features": [ + ], + "static": false, + "migration-safe": true + }, + { + "name": "Penryn", + "typename": "Penryn-x86_64-cpu", + "unavailable-features": [ + ], + "static": false, + "migration-safe": true + }, + { + "name": "Opteron_G5", + "typename": "Opteron_G5-x86_64-cpu", + "unavailable-features": [ + "sse4a", + "misalignsse", + "3dnowprefetch", + "xop", + "fma4", + "tbm" + ], + "static": false, + "migration-safe": true + }, + { + "name": "Opteron_G4", + "typename": "Opteron_G4-x86_64-cpu", + "unavailable-features": [ + "sse4a", + "misalignsse", + "3dnowprefetch", + "xop", + "fma4" + ], + "static": false, + "migration-safe": true + }, + { + "name": "Opteron_G3", + "typename": "Opteron_G3-x86_64-cpu", + "unavailable-features": [ + "sse4a", + "misalignsse" + ], + "static": false, + "migration-safe": true + }, + { + "name": "Opteron_G2", + "typename": "Opteron_G2-x86_64-cpu", + "unavailable-features": [ + ], + "static": false, + "migration-safe": true + }, + { + "name": "Opteron_G1", + "typename": "Opteron_G1-x86_64-cpu", + "unavailable-features": [ + ], + "static": false, + "migration-safe": true + }, + { + "name": "Nehalem", + "typename": "Nehalem-x86_64-cpu", + "unavailable-features": [ + ], + "static": false, + "migration-safe": true + }, + { + "name": "IvyBridge", + "typename": "IvyBridge-x86_64-cpu", + "unavailable-features": [ + ], + "static": false, + "migration-safe": true + }, + { + "name": "Haswell", + "typename": "Haswell-x86_64-cpu", + "unavailable-features": [ + "hle", + "rtm" + ], + "static": false, + "migration-safe": true + }, + { + "name": "Haswell-noTSX", + "typename": "Haswell-noTSX-x86_64-cpu", + "unavailable-features": [ + ], + "static": false, + "migration-safe": true + }, + { + "name": "Conroe", + "typename": "Conroe-x86_64-cpu", + "unavailable-features": [ + ], + "static": false, + "migration-safe": true + }, + { + "name": "Broadwell", + "typename": "Broadwell-x86_64-cpu", + "unavailable-features": [ + "hle", + "rtm", + "rdseed", + "adx", + "smap", + "3dnowprefetch" + ], + "static": false, + "migration-safe": true + }, + { + "name": "Broadwell-noTSX", + "typename": "Broadwell-noTSX-x86_64-cpu", + "unavailable-features": [ + "rdseed", + "adx", + "smap", + "3dnowprefetch" + ], + "static": false, + "migration-safe": true + }, + { + "name": "486", + "typename": "486-x86_64-cpu", + "unavailable-features": [ + ], + "static": false, + "migration-safe": true + } + ], + "id": "libvirt-43" +} + +{ + "return": [ + "tpm-tis" + ], + "id": "libvirt-44" +} + +{ + "return": [ + "passthrough" + ], + "id": "libvirt-45" +} + +{ + "return": [ + { + "parameters": [ + { + "name": "timeout", + "help": "Request timeout in seconds (default 0 =3D no timeout)", + "type": "number" + }, + { + "name": "initiator-name", + "help": "Initiator iqn name to use when connecting", + "type": "string" + }, + { + "name": "header-digest", + "help": "HeaderDigest setting. {CRC32C|CRC32C-NONE|NONE-CRC32C|N= ONE}", + "type": "string" + }, + { + "name": "password-secret", + "help": "ID of the secret providing password for CHAP authentica= tion to target", + "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": "non-adaptive", + "type": "boolean" + }, + { + "name": "lossy", + "type": "boolean" + }, + { + "name": "acl", + "type": "boolean" + }, + { + "name": "x509verify", + "type": "string" + }, + { + "name": "tls", + "type": "boolean" + }, + { + "name": "sasl", + "type": "boolean" + }, + { + "name": "key-delay-ms", + "type": "number" + }, + { + "name": "lock-key-sync", + "type": "boolean" + }, + { + "name": "reverse", + "type": "boolean" + }, + { + "name": "password", + "type": "boolean" + }, + { + "name": "ipv6", + "type": "boolean" + }, + { + "name": "ipv4", + "type": "boolean" + }, + { + "name": "to", + "type": "number" + }, + { + "name": "connections", + "type": "number" + }, + { + "name": "head", + "type": "number" + }, + { + "name": "display", + "type": "string" + }, + { + "name": "share", + "type": "string" + }, + { + "name": "x509", + "type": "string" + }, + { + "name": "tls-creds", + "type": "string" + }, + { + "name": "websocket", + "type": "string" + }, + { + "name": "vnc", + "type": "string" + } + ], + "option": "vnc" + }, + { + "parameters": [ + { + "name": "rendernode", + "type": "string" + }, + { + "name": "gl", + "type": "boolean" + }, + { + "name": "head", + "type": "number" + }, + { + "name": "display", + "type": "string" + }, + { + "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": "unix", + "type": "boolean" + }, + { + "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": "smbios" + }, + { + "parameters": [ + ], + "option": "acpi" + }, + { + "parameters": [ + { + "name": "dmode", + "type": "number" + }, + { + "name": "fmode", + "type": "number" + }, + { + "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": "throttling.iops-size", + "help": "when limiting by iops max size of an I/O in bytes", + "type": "number" + }, + { + "name": "throttling.bps-write-max-length", + "help": "length of the bps-write-max burst period, in seconds", + "type": "number" + }, + { + "name": "throttling.bps-read-max-length", + "help": "length of the bps-read-max burst period, in seconds", + "type": "number" + }, + { + "name": "throttling.bps-total-max-length", + "help": "length of the bps-total-max burst period, in seconds", + "type": "number" + }, + { + "name": "throttling.iops-write-max-length", + "help": "length of the iops-write-max burst period, in seconds", + "type": "number" + }, + { + "name": "throttling.iops-read-max-length", + "help": "length of the iops-read-max burst period, in seconds", + "type": "number" + }, + { + "name": "throttling.iops-total-max-length", + "help": "length of the iops-total-max burst period, in seconds", + "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": "dmode", + "type": "number" + }, + { + "name": "fmode", + "type": "number" + }, + { + "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": [ + { + "name": "string", + "help": "Sets content of the blob to be inserted from a string", + "type": "string" + }, + { + "name": "file", + "help": "Sets the name of the file from which\nthe fw_cfg blob w= ill be loaded", + "type": "string" + }, + { + "name": "name", + "help": "Sets the fw_cfg name of the blob to be inserted", + "type": "string" + } + ], + "option": "fw_cfg" + }, + { + "parameters": [ + { + "name": "arg", + "type": "string" + }, + { + "name": "target", + "type": "string" + }, + { + "name": "enable", + "type": "boolean" + } + ], + "option": "semihosting-config" + }, + { + "parameters": [ + { + "name": "rrsnapshot", + "type": "string" + }, + { + "name": "rrfile", + "type": "string" + }, + { + "name": "rr", + "type": "string" + }, + { + "name": "sleep", + "type": "boolean" + }, + { + "name": "align", + "type": "boolean" + }, + { + "name": "shift", + "type": "string" + } + ], + "option": "icount" + }, + { + "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 displaye= d 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": "thread", + "help": "Enable/disable multi-threaded TCG", + "type": "string" + }, + { + "name": "accel", + "help": "Select the type of accelerator", + "type": "string" + } + ], + "option": "accel" + }, + { + "parameters": [ + { + "name": "loadparm", + "help": "Up to 8 chars in set of [A-Za-z0-9. ](lower case chars = converted to upper case) to pass to machine loader, boot manager, and guest= kernel", + "type": "string" + }, + { + "name": "dea-key-wrap", + "help": "enable/disable DEA key wrapping using the CPACF wrappin= g key", + "type": "boolean" + }, + { + "name": "aes-key-wrap", + "help": "enable/disable AES key wrapping using the CPACF wrappin= g key", + "type": "boolean" + }, + { + "name": "suppress-vmdesc", + "help": "Set on to disable self-describing migration", + "type": "boolean" + }, + { + "name": "iommu", + "help": "Set on/off to enable/disable Intel IOMMU (VT-d)", + "type": "boolean" + }, + { + "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 no= de", + "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" + }, + { + "name": "enable", + "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": "logappend", + "type": "boolean" + }, + { + "name": "logfile", + "type": "string" + }, + { + "name": "append", + "type": "boolean" + }, + { + "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": "tls-creds", + "type": "string" + }, + { + "name": "tn3270", + "type": "boolean" + }, + { + "name": "telnet", + "type": "boolean" + }, + { + "name": "reconnect", + "type": "number" + }, + { + "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": "stats-account-failed", + "help": "whether to account for failed I/O operations in the sta= tistics", + "type": "boolean" + }, + { + "name": "stats-account-invalid", + "help": "whether to account for invalid I/O operations in the st= atistics", + "type": "boolean" + }, + { + "name": "detect-zeroes", + "help": "try to optimize zero writes (off, on, unmap)", + "type": "string" + }, + { + "name": "throttling.group", + "help": "name of the block throttling group", + "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-length", + "help": "length of the bps-write-max burst period, in seconds", + "type": "number" + }, + { + "name": "throttling.bps-read-max-length", + "help": "length of the bps-read-max burst period, in seconds", + "type": "number" + }, + { + "name": "throttling.bps-total-max-length", + "help": "length of the bps-total-max burst period, in seconds", + "type": "number" + }, + { + "name": "throttling.iops-write-max-length", + "help": "length of the iops-write-max burst period, in seconds", + "type": "number" + }, + { + "name": "throttling.iops-read-max-length", + "help": "length of the iops-read-max burst period, in seconds", + "type": "number" + }, + { + "name": "throttling.iops-total-max-length", + "help": "length of the iops-total-max burst period, in seconds", + "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": "cache.writeback", + "help": "Enable writeback mode", + "type": "boolean" + }, + { + "name": "aio", + "help": "host AIO implementation (threads, native)", + "type": "string" + }, + { + "name": "snapshot", + "help": "enable/disable snapshot mode", + "type": "boolean" + }, + { + "name": "force-share", + "help": "always accept other writers (default: off)", + "type": "boolean" + }, + { + "name": "discard", + "help": "discard operation (ignore/off, unmap/on)", + "type": "string" + }, + { + "name": "read-only", + "help": "Node is opened in read-only mode", + "type": "boolean" + }, + { + "name": "cache.no-flush", + "help": "Ignore flush requests", + "type": "boolean" + }, + { + "name": "cache.direct", + "help": "Bypass software writeback cache on the host", + "type": "boolean" + }, + { + "name": "driver", + "help": "Block driver to use for the node", + "type": "string" + }, + { + "name": "node-name", + "help": "Node name of the block device node", + "type": "string" + } + ], + "option": "drive" + } + ], + "id": "libvirt-46" +} + +{ + "return": [ + { + "state": false, + "capability": "xbzrle" + }, + { + "state": false, + "capability": "rdma-pin-all" + }, + { + "state": false, + "capability": "auto-converge" + }, + { + "state": false, + "capability": "zero-blocks" + }, + { + "state": false, + "capability": "compress" + }, + { + "state": false, + "capability": "events" + }, + { + "state": false, + "capability": "postcopy-ram" + }, + { + "state": false, + "capability": "x-colo" + }, + { + "state": false, + "capability": "release-ram" + }, + { + "state": false, + "capability": "block" + }, + { + "state": false, + "capability": "return-path" + } + ], + "id": "libvirt-47" +} + +{ + "return": [ + { + "name": "ACPI_DEVICE_OST", + "meta-type": "event", + "arg-type": "0" + }, + { + "name": "BALLOON_CHANGE", + "meta-type": "event", + "arg-type": "1" + }, + { + "name": "BLOCK_IMAGE_CORRUPTED", + "meta-type": "event", + "arg-type": "2" + }, + { + "name": "BLOCK_IO_ERROR", + "meta-type": "event", + "arg-type": "3" + }, + { + "name": "BLOCK_JOB_CANCELLED", + "meta-type": "event", + "arg-type": "4" + }, + { + "name": "BLOCK_JOB_COMPLETED", + "meta-type": "event", + "arg-type": "5" + }, + { + "name": "BLOCK_JOB_ERROR", + "meta-type": "event", + "arg-type": "6" + }, + { + "name": "BLOCK_JOB_READY", + "meta-type": "event", + "arg-type": "7" + }, + { + "name": "BLOCK_WRITE_THRESHOLD", + "meta-type": "event", + "arg-type": "8" + }, + { + "name": "DEVICE_DELETED", + "meta-type": "event", + "arg-type": "9" + }, + { + "name": "DEVICE_TRAY_MOVED", + "meta-type": "event", + "arg-type": "10" + }, + { + "name": "DUMP_COMPLETED", + "meta-type": "event", + "arg-type": "11" + }, + { + "name": "GUEST_PANICKED", + "meta-type": "event", + "arg-type": "12" + }, + { + "name": "MEM_UNPLUG_ERROR", + "meta-type": "event", + "arg-type": "13" + }, + { + "name": "MIGRATION", + "meta-type": "event", + "arg-type": "14" + }, + { + "name": "MIGRATION_PASS", + "meta-type": "event", + "arg-type": "15" + }, + { + "name": "NIC_RX_FILTER_CHANGED", + "meta-type": "event", + "arg-type": "16" + }, + { + "name": "POWERDOWN", + "meta-type": "event", + "arg-type": "17" + }, + { + "name": "QUORUM_FAILURE", + "meta-type": "event", + "arg-type": "18" + }, + { + "name": "QUORUM_REPORT_BAD", + "meta-type": "event", + "arg-type": "19" + }, + { + "name": "RESET", + "meta-type": "event", + "arg-type": "20" + }, + { + "name": "RESUME", + "meta-type": "event", + "arg-type": "17" + }, + { + "name": "RTC_CHANGE", + "meta-type": "event", + "arg-type": "21" + }, + { + "name": "SHUTDOWN", + "meta-type": "event", + "arg-type": "22" + }, + { + "name": "SPICE_CONNECTED", + "meta-type": "event", + "arg-type": "23" + }, + { + "name": "SPICE_DISCONNECTED", + "meta-type": "event", + "arg-type": "24" + }, + { + "name": "SPICE_INITIALIZED", + "meta-type": "event", + "arg-type": "25" + }, + { + "name": "SPICE_MIGRATE_COMPLETED", + "meta-type": "event", + "arg-type": "17" + }, + { + "name": "STOP", + "meta-type": "event", + "arg-type": "17" + }, + { + "name": "SUSPEND", + "meta-type": "event", + "arg-type": "17" + }, + { + "name": "SUSPEND_DISK", + "meta-type": "event", + "arg-type": "17" + }, + { + "name": "VNC_CONNECTED", + "meta-type": "event", + "arg-type": "26" + }, + { + "name": "VNC_DISCONNECTED", + "meta-type": "event", + "arg-type": "27" + }, + { + "name": "VNC_INITIALIZED", + "meta-type": "event", + "arg-type": "28" + }, + { + "name": "VSERPORT_CHANGE", + "meta-type": "event", + "arg-type": "29" + }, + { + "name": "WAKEUP", + "meta-type": "event", + "arg-type": "17" + }, + { + "name": "WATCHDOG", + "meta-type": "event", + "arg-type": "30" + }, + { + "name": "add-fd", + "ret-type": "32", + "meta-type": "command", + "arg-type": "31" + }, + { + "name": "add_client", + "ret-type": "17", + "meta-type": "command", + "arg-type": "33" + }, + { + "name": "balloon", + "ret-type": "17", + "meta-type": "command", + "arg-type": "34" + }, + { + "name": "block-commit", + "ret-type": "17", + "meta-type": "command", + "arg-type": "35" + }, + { + "name": "block-dirty-bitmap-add", + "ret-type": "17", + "meta-type": "command", + "arg-type": "36" + }, + { + "name": "block-dirty-bitmap-clear", + "ret-type": "17", + "meta-type": "command", + "arg-type": "37" + }, + { + "name": "block-dirty-bitmap-remove", + "ret-type": "17", + "meta-type": "command", + "arg-type": "37" + }, + { + "name": "block-job-cancel", + "ret-type": "17", + "meta-type": "command", + "arg-type": "38" + }, + { + "name": "block-job-complete", + "ret-type": "17", + "meta-type": "command", + "arg-type": "39" + }, + { + "name": "block-job-pause", + "ret-type": "17", + "meta-type": "command", + "arg-type": "40" + }, + { + "name": "block-job-resume", + "ret-type": "17", + "meta-type": "command", + "arg-type": "41" + }, + { + "name": "block-job-set-speed", + "ret-type": "17", + "meta-type": "command", + "arg-type": "42" + }, + { + "name": "block-set-write-threshold", + "ret-type": "17", + "meta-type": "command", + "arg-type": "43" + }, + { + "name": "block-stream", + "ret-type": "17", + "meta-type": "command", + "arg-type": "44" + }, + { + "name": "block_passwd", + "ret-type": "17", + "meta-type": "command", + "arg-type": "45" + }, + { + "name": "block_resize", + "ret-type": "17", + "meta-type": "command", + "arg-type": "46" + }, + { + "name": "block_set_io_throttle", + "ret-type": "17", + "meta-type": "command", + "arg-type": "47" + }, + { + "name": "blockdev-add", + "ret-type": "17", + "meta-type": "command", + "arg-type": "48" + }, + { + "name": "blockdev-backup", + "ret-type": "17", + "meta-type": "command", + "arg-type": "49" + }, + { + "name": "blockdev-change-medium", + "ret-type": "17", + "meta-type": "command", + "arg-type": "50" + }, + { + "name": "blockdev-close-tray", + "ret-type": "17", + "meta-type": "command", + "arg-type": "51" + }, + { + "name": "blockdev-del", + "ret-type": "17", + "meta-type": "command", + "arg-type": "52" + }, + { + "name": "blockdev-mirror", + "ret-type": "17", + "meta-type": "command", + "arg-type": "53" + }, + { + "name": "blockdev-open-tray", + "ret-type": "17", + "meta-type": "command", + "arg-type": "54" + }, + { + "name": "blockdev-snapshot", + "ret-type": "17", + "meta-type": "command", + "arg-type": "55" + }, + { + "name": "blockdev-snapshot-delete-internal-sync", + "ret-type": "57", + "meta-type": "command", + "arg-type": "56" + }, + { + "name": "blockdev-snapshot-internal-sync", + "ret-type": "17", + "meta-type": "command", + "arg-type": "58" + }, + { + "name": "blockdev-snapshot-sync", + "ret-type": "17", + "meta-type": "command", + "arg-type": "59" + }, + { + "name": "change", + "ret-type": "17", + "meta-type": "command", + "arg-type": "60" + }, + { + "name": "change-backing-file", + "ret-type": "17", + "meta-type": "command", + "arg-type": "61" + }, + { + "name": "change-vnc-password", + "ret-type": "17", + "meta-type": "command", + "arg-type": "62" + }, + { + "name": "chardev-add", + "ret-type": "64", + "meta-type": "command", + "arg-type": "63" + }, + { + "name": "chardev-change", + "ret-type": "64", + "meta-type": "command", + "arg-type": "65" + }, + { + "name": "chardev-remove", + "ret-type": "17", + "meta-type": "command", + "arg-type": "66" + }, + { + "name": "chardev-send-break", + "ret-type": "17", + "meta-type": "command", + "arg-type": "67" + }, + { + "name": "client_migrate_info", + "ret-type": "17", + "meta-type": "command", + "arg-type": "68" + }, + { + "name": "closefd", + "ret-type": "17", + "meta-type": "command", + "arg-type": "69" + }, + { + "name": "cont", + "ret-type": "17", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "cpu", + "ret-type": "17", + "meta-type": "command", + "arg-type": "70" + }, + { + "name": "cpu-add", + "ret-type": "17", + "meta-type": "command", + "arg-type": "71" + }, + { + "name": "device-list-properties", + "ret-type": "[73]", + "meta-type": "command", + "arg-type": "72" + }, + { + "name": "device_add", + "ret-type": "17", + "meta-type": "command", + "arg-type": "74" + }, + { + "name": "device_del", + "ret-type": "17", + "meta-type": "command", + "arg-type": "75" + }, + { + "name": "drive-backup", + "ret-type": "17", + "meta-type": "command", + "arg-type": "76" + }, + { + "name": "drive-mirror", + "ret-type": "17", + "meta-type": "command", + "arg-type": "77" + }, + { + "name": "dump-guest-memory", + "ret-type": "17", + "meta-type": "command", + "arg-type": "78" + }, + { + "name": "dump-skeys", + "ret-type": "17", + "meta-type": "command", + "arg-type": "79" + }, + { + "name": "eject", + "ret-type": "17", + "meta-type": "command", + "arg-type": "80" + }, + { + "name": "expire_password", + "ret-type": "17", + "meta-type": "command", + "arg-type": "81" + }, + { + "name": "getfd", + "ret-type": "17", + "meta-type": "command", + "arg-type": "82" + }, + { + "name": "human-monitor-command", + "ret-type": "str", + "meta-type": "command", + "arg-type": "83" + }, + { + "name": "inject-nmi", + "ret-type": "17", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "input-send-event", + "ret-type": "17", + "meta-type": "command", + "arg-type": "84" + }, + { + "name": "memsave", + "ret-type": "17", + "meta-type": "command", + "arg-type": "85" + }, + { + "name": "migrate", + "ret-type": "17", + "meta-type": "command", + "arg-type": "86" + }, + { + "name": "migrate-incoming", + "ret-type": "17", + "meta-type": "command", + "arg-type": "87" + }, + { + "name": "migrate-set-cache-size", + "ret-type": "17", + "meta-type": "command", + "arg-type": "88" + }, + { + "name": "migrate-set-capabilities", + "ret-type": "17", + "meta-type": "command", + "arg-type": "89" + }, + { + "name": "migrate-set-parameters", + "ret-type": "17", + "meta-type": "command", + "arg-type": "90" + }, + { + "name": "migrate-start-postcopy", + "ret-type": "17", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "migrate_cancel", + "ret-type": "17", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "migrate_set_downtime", + "ret-type": "17", + "meta-type": "command", + "arg-type": "91" + }, + { + "name": "migrate_set_speed", + "ret-type": "17", + "meta-type": "command", + "arg-type": "92" + }, + { + "name": "nbd-server-add", + "ret-type": "17", + "meta-type": "command", + "arg-type": "93" + }, + { + "name": "nbd-server-start", + "ret-type": "17", + "meta-type": "command", + "arg-type": "94" + }, + { + "name": "nbd-server-stop", + "ret-type": "17", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "netdev_add", + "ret-type": "17", + "meta-type": "command", + "arg-type": "95" + }, + { + "name": "netdev_del", + "ret-type": "17", + "meta-type": "command", + "arg-type": "96" + }, + { + "name": "object-add", + "ret-type": "17", + "meta-type": "command", + "arg-type": "97" + }, + { + "name": "object-del", + "ret-type": "17", + "meta-type": "command", + "arg-type": "98" + }, + { + "name": "pmemsave", + "ret-type": "17", + "meta-type": "command", + "arg-type": "99" + }, + { + "name": "qmp_capabilities", + "ret-type": "17", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "qom-get", + "ret-type": "any", + "meta-type": "command", + "arg-type": "100" + }, + { + "name": "qom-list", + "ret-type": "[102]", + "meta-type": "command", + "arg-type": "101" + }, + { + "name": "qom-list-types", + "ret-type": "[104]", + "meta-type": "command", + "arg-type": "103" + }, + { + "name": "qom-set", + "ret-type": "17", + "meta-type": "command", + "arg-type": "105" + }, + { + "name": "query-acpi-ospm-status", + "ret-type": "[106]", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-balloon", + "ret-type": "107", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-block", + "ret-type": "[108]", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-block-jobs", + "ret-type": "[109]", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-blockstats", + "ret-type": "[111]", + "meta-type": "command", + "arg-type": "110" + }, + { + "name": "query-chardev", + "ret-type": "[112]", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-chardev-backends", + "ret-type": "[113]", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-command-line-options", + "ret-type": "[115]", + "meta-type": "command", + "arg-type": "114" + }, + { + "name": "query-commands", + "ret-type": "[116]", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-cpu-definitions", + "ret-type": "[117]", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-cpu-model-baseline", + "ret-type": "119", + "meta-type": "command", + "arg-type": "118" + }, + { + "name": "query-cpu-model-comparison", + "ret-type": "121", + "meta-type": "command", + "arg-type": "120" + }, + { + "name": "query-cpu-model-expansion", + "ret-type": "123", + "meta-type": "command", + "arg-type": "122" + }, + { + "name": "query-cpus", + "ret-type": "[124]", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-dump", + "ret-type": "125", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-dump-guest-memory-capability", + "ret-type": "126", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-events", + "ret-type": "[127]", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-fdsets", + "ret-type": "[128]", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-gic-capabilities", + "ret-type": "[129]", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-hotpluggable-cpus", + "ret-type": "[130]", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-iothreads", + "ret-type": "[131]", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-kvm", + "ret-type": "132", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-machines", + "ret-type": "[133]", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-memdev", + "ret-type": "[134]", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-memory-devices", + "ret-type": "[135]", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-mice", + "ret-type": "[136]", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-migrate", + "ret-type": "137", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-migrate-cache-size", + "ret-type": "int", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-migrate-capabilities", + "ret-type": "[138]", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-migrate-parameters", + "ret-type": "139", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-name", + "ret-type": "140", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-named-block-nodes", + "ret-type": "[141]", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-pci", + "ret-type": "[142]", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-qmp-schema", + "ret-type": "[143]", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-rocker", + "ret-type": "145", + "meta-type": "command", + "arg-type": "144" + }, + { + "name": "query-rocker-of-dpa-flows", + "ret-type": "[147]", + "meta-type": "command", + "arg-type": "146" + }, + { + "name": "query-rocker-of-dpa-groups", + "ret-type": "[149]", + "meta-type": "command", + "arg-type": "148" + }, + { + "name": "query-rocker-ports", + "ret-type": "[151]", + "meta-type": "command", + "arg-type": "150" + }, + { + "name": "query-rx-filter", + "ret-type": "[153]", + "meta-type": "command", + "arg-type": "152" + }, + { + "name": "query-spice", + "ret-type": "154", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-status", + "ret-type": "155", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-target", + "ret-type": "156", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-tpm", + "ret-type": "[157]", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-tpm-models", + "ret-type": "[158]", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-tpm-types", + "ret-type": "[159]", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-uuid", + "ret-type": "160", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-version", + "ret-type": "161", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-vm-generation-id", + "ret-type": "162", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-vnc", + "ret-type": "163", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-vnc-servers", + "ret-type": "[164]", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-xen-replication-status", + "ret-type": "165", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "quit", + "ret-type": "17", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "remove-fd", + "ret-type": "17", + "meta-type": "command", + "arg-type": "166" + }, + { + "name": "ringbuf-read", + "ret-type": "str", + "meta-type": "command", + "arg-type": "167" + }, + { + "name": "ringbuf-write", + "ret-type": "17", + "meta-type": "command", + "arg-type": "168" + }, + { + "name": "rtc-reset-reinjection", + "ret-type": "17", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "screendump", + "ret-type": "17", + "meta-type": "command", + "arg-type": "169" + }, + { + "name": "send-key", + "ret-type": "17", + "meta-type": "command", + "arg-type": "170" + }, + { + "name": "set_link", + "ret-type": "17", + "meta-type": "command", + "arg-type": "171" + }, + { + "name": "set_password", + "ret-type": "17", + "meta-type": "command", + "arg-type": "172" + }, + { + "name": "stop", + "ret-type": "17", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "system_powerdown", + "ret-type": "17", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "system_reset", + "ret-type": "17", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "system_wakeup", + "ret-type": "17", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "trace-event-get-state", + "ret-type": "[174]", + "meta-type": "command", + "arg-type": "173" + }, + { + "name": "trace-event-set-state", + "ret-type": "17", + "meta-type": "command", + "arg-type": "175" + }, + { + "name": "transaction", + "ret-type": "17", + "meta-type": "command", + "arg-type": "176" + }, + { + "name": "x-blockdev-change", + "ret-type": "17", + "meta-type": "command", + "arg-type": "177" + }, + { + "name": "x-blockdev-insert-medium", + "ret-type": "17", + "meta-type": "command", + "arg-type": "178" + }, + { + "name": "x-blockdev-remove-medium", + "ret-type": "17", + "meta-type": "command", + "arg-type": "179" + }, + { + "name": "x-colo-lost-heartbeat", + "ret-type": "17", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "x-debug-block-dirty-bitmap-sha256", + "ret-type": "180", + "meta-type": "command", + "arg-type": "37" + }, + { + "name": "xen-colo-do-checkpoint", + "ret-type": "17", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "xen-load-devices-state", + "ret-type": "17", + "meta-type": "command", + "arg-type": "181" + }, + { + "name": "xen-save-devices-state", + "ret-type": "17", + "meta-type": "command", + "arg-type": "182" + }, + { + "name": "xen-set-global-dirty-log", + "ret-type": "17", + "meta-type": "command", + "arg-type": "183" + }, + { + "name": "xen-set-replication", + "ret-type": "17", + "meta-type": "command", + "arg-type": "184" + }, + { + "name": "0", + "members": [ + { + "name": "info", + "type": "106" + } + ], + "meta-type": "object" + }, + { + "name": "1", + "members": [ + { + "name": "actual", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "2", + "members": [ + { + "name": "device", + "type": "str" + }, + { + "name": "node-name", + "default": null, + "type": "str" + }, + { + "name": "msg", + "type": "str" + }, + { + "name": "offset", + "default": null, + "type": "int" + }, + { + "name": "size", + "default": null, + "type": "int" + }, + { + "name": "fatal", + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "3", + "members": [ + { + "name": "device", + "type": "str" + }, + { + "name": "node-name", + "type": "str" + }, + { + "name": "operation", + "type": "185" + }, + { + "name": "action", + "type": "186" + }, + { + "name": "nospace", + "default": null, + "type": "bool" + }, + { + "name": "reason", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "4", + "members": [ + { + "name": "type", + "type": "187" + }, + { + "name": "device", + "type": "str" + }, + { + "name": "len", + "type": "int" + }, + { + "name": "offset", + "type": "int" + }, + { + "name": "speed", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "5", + "members": [ + { + "name": "type", + "type": "187" + }, + { + "name": "device", + "type": "str" + }, + { + "name": "len", + "type": "int" + }, + { + "name": "offset", + "type": "int" + }, + { + "name": "speed", + "type": "int" + }, + { + "name": "error", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "6", + "members": [ + { + "name": "device", + "type": "str" + }, + { + "name": "operation", + "type": "185" + }, + { + "name": "action", + "type": "186" + } + ], + "meta-type": "object" + }, + { + "name": "7", + "members": [ + { + "name": "type", + "type": "187" + }, + { + "name": "device", + "type": "str" + }, + { + "name": "len", + "type": "int" + }, + { + "name": "offset", + "type": "int" + }, + { + "name": "speed", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "8", + "members": [ + { + "name": "node-name", + "type": "str" + }, + { + "name": "amount-exceeded", + "type": "int" + }, + { + "name": "write-threshold", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "9", + "members": [ + { + "name": "device", + "default": null, + "type": "str" + }, + { + "name": "path", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "10", + "members": [ + { + "name": "device", + "type": "str" + }, + { + "name": "id", + "type": "str" + }, + { + "name": "tray-open", + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "11", + "members": [ + { + "name": "result", + "type": "125" + }, + { + "name": "error", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "12", + "members": [ + { + "name": "action", + "type": "188" + }, + { + "name": "info", + "default": null, + "type": "189" + } + ], + "meta-type": "object" + }, + { + "name": "13", + "members": [ + { + "name": "device", + "type": "str" + }, + { + "name": "msg", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "14", + "members": [ + { + "name": "status", + "type": "190" + } + ], + "meta-type": "object" + }, + { + "name": "15", + "members": [ + { + "name": "pass", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "16", + "members": [ + { + "name": "name", + "default": null, + "type": "str" + }, + { + "name": "path", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "17", + "members": [ + ], + "meta-type": "object" + }, + { + "name": "18", + "members": [ + { + "name": "reference", + "type": "str" + }, + { + "name": "sector-num", + "type": "int" + }, + { + "name": "sectors-count", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "19", + "members": [ + { + "name": "type", + "type": "191" + }, + { + "name": "error", + "default": null, + "type": "str" + }, + { + "name": "node-name", + "type": "str" + }, + { + "name": "sector-num", + "type": "int" + }, + { + "name": "sectors-count", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "20", + "members": [ + { + "name": "guest", + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "21", + "members": [ + { + "name": "offset", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "22", + "members": [ + { + "name": "guest", + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "23", + "members": [ + { + "name": "server", + "type": "192" + }, + { + "name": "client", + "type": "192" + } + ], + "meta-type": "object" + }, + { + "name": "24", + "members": [ + { + "name": "server", + "type": "192" + }, + { + "name": "client", + "type": "192" + } + ], + "meta-type": "object" + }, + { + "name": "25", + "members": [ + { + "name": "server", + "type": "193" + }, + { + "name": "client", + "type": "194" + } + ], + "meta-type": "object" + }, + { + "name": "26", + "members": [ + { + "name": "server", + "type": "195" + }, + { + "name": "client", + "type": "196" + } + ], + "meta-type": "object" + }, + { + "name": "27", + "members": [ + { + "name": "server", + "type": "195" + }, + { + "name": "client", + "type": "197" + } + ], + "meta-type": "object" + }, + { + "name": "28", + "members": [ + { + "name": "server", + "type": "195" + }, + { + "name": "client", + "type": "197" + } + ], + "meta-type": "object" + }, + { + "name": "29", + "members": [ + { + "name": "id", + "type": "str" + }, + { + "name": "open", + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "30", + "members": [ + { + "name": "action", + "type": "198" + } + ], + "meta-type": "object" + }, + { + "name": "31", + "members": [ + { + "name": "fdset-id", + "default": null, + "type": "int" + }, + { + "name": "opaque", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "32", + "members": [ + { + "name": "fdset-id", + "type": "int" + }, + { + "name": "fd", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "33", + "members": [ + { + "name": "protocol", + "type": "str" + }, + { + "name": "fdname", + "type": "str" + }, + { + "name": "skipauth", + "default": null, + "type": "bool" + }, + { + "name": "tls", + "default": null, + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "34", + "members": [ + { + "name": "value", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "35", + "members": [ + { + "name": "job-id", + "default": null, + "type": "str" + }, + { + "name": "device", + "type": "str" + }, + { + "name": "base", + "default": null, + "type": "str" + }, + { + "name": "top", + "default": null, + "type": "str" + }, + { + "name": "backing-file", + "default": null, + "type": "str" + }, + { + "name": "speed", + "default": null, + "type": "int" + }, + { + "name": "filter-node-name", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "36", + "members": [ + { + "name": "node", + "type": "str" + }, + { + "name": "name", + "type": "str" + }, + { + "name": "granularity", + "default": null, + "type": "int" + }, + { + "name": "persistent", + "default": null, + "type": "bool" + }, + { + "name": "autoload", + "default": null, + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "37", + "members": [ + { + "name": "node", + "type": "str" + }, + { + "name": "name", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "38", + "members": [ + { + "name": "device", + "type": "str" + }, + { + "name": "force", + "default": null, + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "39", + "members": [ + { + "name": "device", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "40", + "members": [ + { + "name": "device", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "41", + "members": [ + { + "name": "device", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "42", + "members": [ + { + "name": "device", + "type": "str" + }, + { + "name": "speed", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "43", + "members": [ + { + "name": "node-name", + "type": "str" + }, + { + "name": "write-threshold", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "44", + "members": [ + { + "name": "job-id", + "default": null, + "type": "str" + }, + { + "name": "device", + "type": "str" + }, + { + "name": "base", + "default": null, + "type": "str" + }, + { + "name": "base-node", + "default": null, + "type": "str" + }, + { + "name": "backing-file", + "default": null, + "type": "str" + }, + { + "name": "speed", + "default": null, + "type": "int" + }, + { + "name": "on-error", + "default": null, + "type": "199" + } + ], + "meta-type": "object" + }, + { + "name": "45", + "members": [ + { + "name": "device", + "default": null, + "type": "str" + }, + { + "name": "node-name", + "default": null, + "type": "str" + }, + { + "name": "password", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "46", + "members": [ + { + "name": "device", + "default": null, + "type": "str" + }, + { + "name": "node-name", + "default": null, + "type": "str" + }, + { + "name": "size", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "47", + "members": [ + { + "name": "device", + "default": null, + "type": "str" + }, + { + "name": "id", + "default": null, + "type": "str" + }, + { + "name": "bps", + "type": "int" + }, + { + "name": "bps_rd", + "type": "int" + }, + { + "name": "bps_wr", + "type": "int" + }, + { + "name": "iops", + "type": "int" + }, + { + "name": "iops_rd", + "type": "int" + }, + { + "name": "iops_wr", + "type": "int" + }, + { + "name": "bps_max", + "default": null, + "type": "int" + }, + { + "name": "bps_rd_max", + "default": null, + "type": "int" + }, + { + "name": "bps_wr_max", + "default": null, + "type": "int" + }, + { + "name": "iops_max", + "default": null, + "type": "int" + }, + { + "name": "iops_rd_max", + "default": null, + "type": "int" + }, + { + "name": "iops_wr_max", + "default": null, + "type": "int" + }, + { + "name": "bps_max_length", + "default": null, + "type": "int" + }, + { + "name": "bps_rd_max_length", + "default": null, + "type": "int" + }, + { + "name": "bps_wr_max_length", + "default": null, + "type": "int" + }, + { + "name": "iops_max_length", + "default": null, + "type": "int" + }, + { + "name": "iops_rd_max_length", + "default": null, + "type": "int" + }, + { + "name": "iops_wr_max_length", + "default": null, + "type": "int" + }, + { + "name": "iops_size", + "default": null, + "type": "int" + }, + { + "name": "group", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "48", + "tag": "driver", + "variants": [ + { + "case": "blkdebug", + "type": "204" + }, + { + "case": "blkverify", + "type": "205" + }, + { + "case": "bochs", + "type": "206" + }, + { + "case": "cloop", + "type": "206" + }, + { + "case": "dmg", + "type": "206" + }, + { + "case": "file", + "type": "207" + }, + { + "case": "ftp", + "type": "208" + }, + { + "case": "ftps", + "type": "209" + }, + { + "case": "gluster", + "type": "210" + }, + { + "case": "host_cdrom", + "type": "207" + }, + { + "case": "host_device", + "type": "207" + }, + { + "case": "http", + "type": "211" + }, + { + "case": "https", + "type": "212" + }, + { + "case": "iscsi", + "type": "213" + }, + { + "case": "luks", + "type": "214" + }, + { + "case": "nbd", + "type": "215" + }, + { + "case": "nfs", + "type": "216" + }, + { + "case": "null-aio", + "type": "217" + }, + { + "case": "null-co", + "type": "217" + }, + { + "case": "parallels", + "type": "206" + }, + { + "case": "qcow2", + "type": "218" + }, + { + "case": "qcow", + "type": "219" + }, + { + "case": "qed", + "type": "220" + }, + { + "case": "quorum", + "type": "221" + }, + { + "case": "raw", + "type": "222" + }, + { + "case": "rbd", + "type": "223" + }, + { + "case": "replication", + "type": "224" + }, + { + "case": "sheepdog", + "type": "225" + }, + { + "case": "ssh", + "type": "226" + }, + { + "case": "vdi", + "type": "206" + }, + { + "case": "vhdx", + "type": "206" + }, + { + "case": "vmdk", + "type": "220" + }, + { + "case": "vpc", + "type": "206" + }, + { + "case": "vvfat", + "type": "227" + }, + { + "case": "vxhs", + "type": "228" + } + ], + "members": [ + { + "name": "driver", + "type": "200" + }, + { + "name": "node-name", + "default": null, + "type": "str" + }, + { + "name": "discard", + "default": null, + "type": "201" + }, + { + "name": "cache", + "default": null, + "type": "202" + }, + { + "name": "read-only", + "default": null, + "type": "bool" + }, + { + "name": "force-share", + "default": null, + "type": "bool" + }, + { + "name": "detect-zeroes", + "default": null, + "type": "203" + } + ], + "meta-type": "object" + }, + { + "name": "49", + "members": [ + { + "name": "job-id", + "default": null, + "type": "str" + }, + { + "name": "device", + "type": "str" + }, + { + "name": "target", + "type": "str" + }, + { + "name": "sync", + "type": "229" + }, + { + "name": "speed", + "default": null, + "type": "int" + }, + { + "name": "compress", + "default": null, + "type": "bool" + }, + { + "name": "on-source-error", + "default": null, + "type": "199" + }, + { + "name": "on-target-error", + "default": null, + "type": "199" + } + ], + "meta-type": "object" + }, + { + "name": "50", + "members": [ + { + "name": "device", + "default": null, + "type": "str" + }, + { + "name": "id", + "default": null, + "type": "str" + }, + { + "name": "filename", + "type": "str" + }, + { + "name": "format", + "default": null, + "type": "str" + }, + { + "name": "read-only-mode", + "default": null, + "type": "230" + } + ], + "meta-type": "object" + }, + { + "name": "51", + "members": [ + { + "name": "device", + "default": null, + "type": "str" + }, + { + "name": "id", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "52", + "members": [ + { + "name": "node-name", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "53", + "members": [ + { + "name": "job-id", + "default": null, + "type": "str" + }, + { + "name": "device", + "type": "str" + }, + { + "name": "target", + "type": "str" + }, + { + "name": "replaces", + "default": null, + "type": "str" + }, + { + "name": "sync", + "type": "229" + }, + { + "name": "speed", + "default": null, + "type": "int" + }, + { + "name": "granularity", + "default": null, + "type": "int" + }, + { + "name": "buf-size", + "default": null, + "type": "int" + }, + { + "name": "on-source-error", + "default": null, + "type": "199" + }, + { + "name": "on-target-error", + "default": null, + "type": "199" + }, + { + "name": "filter-node-name", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "54", + "members": [ + { + "name": "device", + "default": null, + "type": "str" + }, + { + "name": "id", + "default": null, + "type": "str" + }, + { + "name": "force", + "default": null, + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "55", + "members": [ + { + "name": "node", + "type": "str" + }, + { + "name": "overlay", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "56", + "members": [ + { + "name": "device", + "type": "str" + }, + { + "name": "id", + "default": null, + "type": "str" + }, + { + "name": "name", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "57", + "members": [ + { + "name": "id", + "type": "str" + }, + { + "name": "name", + "type": "str" + }, + { + "name": "vm-state-size", + "type": "int" + }, + { + "name": "date-sec", + "type": "int" + }, + { + "name": "date-nsec", + "type": "int" + }, + { + "name": "vm-clock-sec", + "type": "int" + }, + { + "name": "vm-clock-nsec", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "58", + "members": [ + { + "name": "device", + "type": "str" + }, + { + "name": "name", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "59", + "members": [ + { + "name": "device", + "default": null, + "type": "str" + }, + { + "name": "node-name", + "default": null, + "type": "str" + }, + { + "name": "snapshot-file", + "type": "str" + }, + { + "name": "snapshot-node-name", + "default": null, + "type": "str" + }, + { + "name": "format", + "default": null, + "type": "str" + }, + { + "name": "mode", + "default": null, + "type": "231" + } + ], + "meta-type": "object" + }, + { + "name": "60", + "members": [ + { + "name": "device", + "type": "str" + }, + { + "name": "target", + "type": "str" + }, + { + "name": "arg", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "61", + "members": [ + { + "name": "device", + "type": "str" + }, + { + "name": "image-node-name", + "type": "str" + }, + { + "name": "backing-file", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "62", + "members": [ + { + "name": "password", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "63", + "members": [ + { + "name": "id", + "type": "str" + }, + { + "name": "backend", + "type": "232" + } + ], + "meta-type": "object" + }, + { + "name": "64", + "members": [ + { + "name": "pty", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "65", + "members": [ + { + "name": "id", + "type": "str" + }, + { + "name": "backend", + "type": "232" + } + ], + "meta-type": "object" + }, + { + "name": "66", + "members": [ + { + "name": "id", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "67", + "members": [ + { + "name": "id", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "68", + "members": [ + { + "name": "protocol", + "type": "str" + }, + { + "name": "hostname", + "type": "str" + }, + { + "name": "port", + "default": null, + "type": "int" + }, + { + "name": "tls-port", + "default": null, + "type": "int" + }, + { + "name": "cert-subject", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "69", + "members": [ + { + "name": "fdname", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "70", + "members": [ + { + "name": "index", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "71", + "members": [ + { + "name": "id", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "72", + "members": [ + { + "name": "typename", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "[73]", + "element-type": "73", + "meta-type": "array" + }, + { + "name": "73", + "members": [ + { + "name": "name", + "type": "str" + }, + { + "name": "type", + "type": "str" + }, + { + "name": "description", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "74", + "members": [ + { + "name": "driver", + "type": "str" + }, + { + "name": "bus", + "default": null, + "type": "str" + }, + { + "name": "id", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "75", + "members": [ + { + "name": "id", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "76", + "members": [ + { + "name": "job-id", + "default": null, + "type": "str" + }, + { + "name": "device", + "type": "str" + }, + { + "name": "target", + "type": "str" + }, + { + "name": "format", + "default": null, + "type": "str" + }, + { + "name": "sync", + "type": "229" + }, + { + "name": "mode", + "default": null, + "type": "231" + }, + { + "name": "speed", + "default": null, + "type": "int" + }, + { + "name": "bitmap", + "default": null, + "type": "str" + }, + { + "name": "compress", + "default": null, + "type": "bool" + }, + { + "name": "on-source-error", + "default": null, + "type": "199" + }, + { + "name": "on-target-error", + "default": null, + "type": "199" + } + ], + "meta-type": "object" + }, + { + "name": "77", + "members": [ + { + "name": "job-id", + "default": null, + "type": "str" + }, + { + "name": "device", + "type": "str" + }, + { + "name": "target", + "type": "str" + }, + { + "name": "format", + "default": null, + "type": "str" + }, + { + "name": "node-name", + "default": null, + "type": "str" + }, + { + "name": "replaces", + "default": null, + "type": "str" + }, + { + "name": "sync", + "type": "229" + }, + { + "name": "mode", + "default": null, + "type": "231" + }, + { + "name": "speed", + "default": null, + "type": "int" + }, + { + "name": "granularity", + "default": null, + "type": "int" + }, + { + "name": "buf-size", + "default": null, + "type": "int" + }, + { + "name": "on-source-error", + "default": null, + "type": "199" + }, + { + "name": "on-target-error", + "default": null, + "type": "199" + }, + { + "name": "unmap", + "default": null, + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "78", + "members": [ + { + "name": "paging", + "type": "bool" + }, + { + "name": "protocol", + "type": "str" + }, + { + "name": "detach", + "default": null, + "type": "bool" + }, + { + "name": "begin", + "default": null, + "type": "int" + }, + { + "name": "length", + "default": null, + "type": "int" + }, + { + "name": "format", + "default": null, + "type": "233" + } + ], + "meta-type": "object" + }, + { + "name": "79", + "members": [ + { + "name": "filename", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "80", + "members": [ + { + "name": "device", + "default": null, + "type": "str" + }, + { + "name": "id", + "default": null, + "type": "str" + }, + { + "name": "force", + "default": null, + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "81", + "members": [ + { + "name": "protocol", + "type": "str" + }, + { + "name": "time", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "82", + "members": [ + { + "name": "fdname", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "83", + "members": [ + { + "name": "command-line", + "type": "str" + }, + { + "name": "cpu-index", + "default": null, + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "str", + "json-type": "string", + "meta-type": "builtin" + }, + { + "name": "84", + "members": [ + { + "name": "device", + "default": null, + "type": "str" + }, + { + "name": "head", + "default": null, + "type": "int" + }, + { + "name": "events", + "type": "[234]" + } + ], + "meta-type": "object" + }, + { + "name": "85", + "members": [ + { + "name": "val", + "type": "int" + }, + { + "name": "size", + "type": "int" + }, + { + "name": "filename", + "type": "str" + }, + { + "name": "cpu-index", + "default": null, + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "86", + "members": [ + { + "name": "uri", + "type": "str" + }, + { + "name": "blk", + "default": null, + "type": "bool" + }, + { + "name": "inc", + "default": null, + "type": "bool" + }, + { + "name": "detach", + "default": null, + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "87", + "members": [ + { + "name": "uri", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "88", + "members": [ + { + "name": "value", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "89", + "members": [ + { + "name": "capabilities", + "type": "[138]" + } + ], + "meta-type": "object" + }, + { + "name": "90", + "members": [ + { + "name": "compress-level", + "default": null, + "type": "int" + }, + { + "name": "compress-threads", + "default": null, + "type": "int" + }, + { + "name": "decompress-threads", + "default": null, + "type": "int" + }, + { + "name": "cpu-throttle-initial", + "default": null, + "type": "int" + }, + { + "name": "cpu-throttle-increment", + "default": null, + "type": "int" + }, + { + "name": "tls-creds", + "default": null, + "type": "235" + }, + { + "name": "tls-hostname", + "default": null, + "type": "235" + }, + { + "name": "max-bandwidth", + "default": null, + "type": "int" + }, + { + "name": "downtime-limit", + "default": null, + "type": "int" + }, + { + "name": "x-checkpoint-delay", + "default": null, + "type": "int" + }, + { + "name": "block-incremental", + "default": null, + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "91", + "members": [ + { + "name": "value", + "type": "number" + } + ], + "meta-type": "object" + }, + { + "name": "92", + "members": [ + { + "name": "value", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "93", + "members": [ + { + "name": "device", + "type": "str" + }, + { + "name": "writable", + "default": null, + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "94", + "members": [ + { + "name": "addr", + "type": "236" + }, + { + "name": "tls-creds", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "95", + "members": [ + { + "name": "type", + "type": "str" + }, + { + "name": "id", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "96", + "members": [ + { + "name": "id", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "97", + "members": [ + { + "name": "qom-type", + "type": "str" + }, + { + "name": "id", + "type": "str" + }, + { + "name": "props", + "default": null, + "type": "any" + } + ], + "meta-type": "object" + }, + { + "name": "98", + "members": [ + { + "name": "id", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "99", + "members": [ + { + "name": "val", + "type": "int" + }, + { + "name": "size", + "type": "int" + }, + { + "name": "filename", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "100", + "members": [ + { + "name": "path", + "type": "str" + }, + { + "name": "property", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "any", + "json-type": "value", + "meta-type": "builtin" + }, + { + "name": "101", + "members": [ + { + "name": "path", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "[102]", + "element-type": "102", + "meta-type": "array" + }, + { + "name": "102", + "members": [ + { + "name": "name", + "type": "str" + }, + { + "name": "type", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "103", + "members": [ + { + "name": "implements", + "default": null, + "type": "str" + }, + { + "name": "abstract", + "default": null, + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "[104]", + "element-type": "104", + "meta-type": "array" + }, + { + "name": "104", + "members": [ + { + "name": "name", + "type": "str" + }, + { + "name": "abstract", + "default": null, + "type": "bool" + }, + { + "name": "parent", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "105", + "members": [ + { + "name": "path", + "type": "str" + }, + { + "name": "property", + "type": "str" + }, + { + "name": "value", + "type": "any" + } + ], + "meta-type": "object" + }, + { + "name": "[106]", + "element-type": "106", + "meta-type": "array" + }, + { + "name": "106", + "members": [ + { + "name": "device", + "default": null, + "type": "str" + }, + { + "name": "slot", + "type": "str" + }, + { + "name": "slot-type", + "type": "237" + }, + { + "name": "source", + "type": "int" + }, + { + "name": "status", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "107", + "members": [ + { + "name": "actual", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "[108]", + "element-type": "108", + "meta-type": "array" + }, + { + "name": "108", + "members": [ + { + "name": "device", + "type": "str" + }, + { + "name": "qdev", + "default": null, + "type": "str" + }, + { + "name": "type", + "type": "str" + }, + { + "name": "removable", + "type": "bool" + }, + { + "name": "locked", + "type": "bool" + }, + { + "name": "inserted", + "default": null, + "type": "141" + }, + { + "name": "tray_open", + "default": null, + "type": "bool" + }, + { + "name": "io-status", + "default": null, + "type": "238" + }, + { + "name": "dirty-bitmaps", + "default": null, + "type": "[239]" + } + ], + "meta-type": "object" + }, + { + "name": "[109]", + "element-type": "109", + "meta-type": "array" + }, + { + "name": "109", + "members": [ + { + "name": "type", + "type": "str" + }, + { + "name": "device", + "type": "str" + }, + { + "name": "len", + "type": "int" + }, + { + "name": "offset", + "type": "int" + }, + { + "name": "busy", + "type": "bool" + }, + { + "name": "paused", + "type": "bool" + }, + { + "name": "speed", + "type": "int" + }, + { + "name": "io-status", + "type": "238" + }, + { + "name": "ready", + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "110", + "members": [ + { + "name": "query-nodes", + "default": null, + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "[111]", + "element-type": "111", + "meta-type": "array" + }, + { + "name": "111", + "members": [ + { + "name": "device", + "default": null, + "type": "str" + }, + { + "name": "node-name", + "default": null, + "type": "str" + }, + { + "name": "stats", + "type": "240" + }, + { + "name": "parent", + "default": null, + "type": "111" + }, + { + "name": "backing", + "default": null, + "type": "111" + } + ], + "meta-type": "object" + }, + { + "name": "[112]", + "element-type": "112", + "meta-type": "array" + }, + { + "name": "112", + "members": [ + { + "name": "label", + "type": "str" + }, + { + "name": "filename", + "type": "str" + }, + { + "name": "frontend-open", + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "[113]", + "element-type": "113", + "meta-type": "array" + }, + { + "name": "113", + "members": [ + { + "name": "name", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "114", + "members": [ + { + "name": "option", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "[115]", + "element-type": "115", + "meta-type": "array" + }, + { + "name": "115", + "members": [ + { + "name": "option", + "type": "str" + }, + { + "name": "parameters", + "type": "[241]" + } + ], + "meta-type": "object" + }, + { + "name": "[116]", + "element-type": "116", + "meta-type": "array" + }, + { + "name": "116", + "members": [ + { + "name": "name", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "[117]", + "element-type": "117", + "meta-type": "array" + }, + { + "name": "117", + "members": [ + { + "name": "name", + "type": "str" + }, + { + "name": "migration-safe", + "default": null, + "type": "bool" + }, + { + "name": "static", + "type": "bool" + }, + { + "name": "unavailable-features", + "default": null, + "type": "[str]" + }, + { + "name": "typename", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "118", + "members": [ + { + "name": "modela", + "type": "242" + }, + { + "name": "modelb", + "type": "242" + } + ], + "meta-type": "object" + }, + { + "name": "119", + "members": [ + { + "name": "model", + "type": "242" + } + ], + "meta-type": "object" + }, + { + "name": "120", + "members": [ + { + "name": "modela", + "type": "242" + }, + { + "name": "modelb", + "type": "242" + } + ], + "meta-type": "object" + }, + { + "name": "121", + "members": [ + { + "name": "result", + "type": "243" + }, + { + "name": "responsible-properties", + "type": "[str]" + } + ], + "meta-type": "object" + }, + { + "name": "122", + "members": [ + { + "name": "type", + "type": "244" + }, + { + "name": "model", + "type": "242" + } + ], + "meta-type": "object" + }, + { + "name": "123", + "members": [ + { + "name": "model", + "type": "242" + } + ], + "meta-type": "object" + }, + { + "name": "[124]", + "element-type": "124", + "meta-type": "array" + }, + { + "name": "124", + "tag": "arch", + "variants": [ + { + "case": "x86", + "type": "247" + }, + { + "case": "sparc", + "type": "248" + }, + { + "case": "ppc", + "type": "249" + }, + { + "case": "mips", + "type": "250" + }, + { + "case": "tricore", + "type": "251" + }, + { + "case": "other", + "type": "252" + } + ], + "members": [ + { + "name": "CPU", + "type": "int" + }, + { + "name": "current", + "type": "bool" + }, + { + "name": "halted", + "type": "bool" + }, + { + "name": "qom_path", + "type": "str" + }, + { + "name": "thread_id", + "type": "int" + }, + { + "name": "props", + "default": null, + "type": "245" + }, + { + "name": "arch", + "type": "246" + } + ], + "meta-type": "object" + }, + { + "name": "125", + "members": [ + { + "name": "status", + "type": "253" + }, + { + "name": "completed", + "type": "int" + }, + { + "name": "total", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "126", + "members": [ + { + "name": "formats", + "type": "[233]" + } + ], + "meta-type": "object" + }, + { + "name": "[127]", + "element-type": "127", + "meta-type": "array" + }, + { + "name": "127", + "members": [ + { + "name": "name", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "[128]", + "element-type": "128", + "meta-type": "array" + }, + { + "name": "128", + "members": [ + { + "name": "fdset-id", + "type": "int" + }, + { + "name": "fds", + "type": "[254]" + } + ], + "meta-type": "object" + }, + { + "name": "[129]", + "element-type": "129", + "meta-type": "array" + }, + { + "name": "129", + "members": [ + { + "name": "version", + "type": "int" + }, + { + "name": "emulated", + "type": "bool" + }, + { + "name": "kernel", + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "[130]", + "element-type": "130", + "meta-type": "array" + }, + { + "name": "130", + "members": [ + { + "name": "type", + "type": "str" + }, + { + "name": "vcpus-count", + "type": "int" + }, + { + "name": "props", + "type": "245" + }, + { + "name": "qom-path", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "[131]", + "element-type": "131", + "meta-type": "array" + }, + { + "name": "131", + "members": [ + { + "name": "id", + "type": "str" + }, + { + "name": "thread-id", + "type": "int" + }, + { + "name": "poll-max-ns", + "type": "int" + }, + { + "name": "poll-grow", + "type": "int" + }, + { + "name": "poll-shrink", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "132", + "members": [ + { + "name": "enabled", + "type": "bool" + }, + { + "name": "present", + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "[133]", + "element-type": "133", + "meta-type": "array" + }, + { + "name": "133", + "members": [ + { + "name": "name", + "type": "str" + }, + { + "name": "alias", + "default": null, + "type": "str" + }, + { + "name": "is-default", + "default": null, + "type": "bool" + }, + { + "name": "cpu-max", + "type": "int" + }, + { + "name": "hotpluggable-cpus", + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "[134]", + "element-type": "134", + "meta-type": "array" + }, + { + "name": "134", + "members": [ + { + "name": "id", + "default": null, + "type": "str" + }, + { + "name": "size", + "type": "int" + }, + { + "name": "merge", + "type": "bool" + }, + { + "name": "dump", + "type": "bool" + }, + { + "name": "prealloc", + "type": "bool" + }, + { + "name": "host-nodes", + "type": "[int]" + }, + { + "name": "policy", + "type": "255" + } + ], + "meta-type": "object" + }, + { + "name": "[135]", + "element-type": "135", + "meta-type": "array" + }, + { + "name": "135", + "tag": "type", + "variants": [ + { + "case": "dimm", + "type": "257" + } + ], + "members": [ + { + "name": "type", + "type": "256" + } + ], + "meta-type": "object" + }, + { + "name": "[136]", + "element-type": "136", + "meta-type": "array" + }, + { + "name": "136", + "members": [ + { + "name": "name", + "type": "str" + }, + { + "name": "index", + "type": "int" + }, + { + "name": "current", + "type": "bool" + }, + { + "name": "absolute", + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "137", + "members": [ + { + "name": "status", + "default": null, + "type": "190" + }, + { + "name": "ram", + "default": null, + "type": "258" + }, + { + "name": "disk", + "default": null, + "type": "258" + }, + { + "name": "xbzrle-cache", + "default": null, + "type": "259" + }, + { + "name": "total-time", + "default": null, + "type": "int" + }, + { + "name": "expected-downtime", + "default": null, + "type": "int" + }, + { + "name": "downtime", + "default": null, + "type": "int" + }, + { + "name": "setup-time", + "default": null, + "type": "int" + }, + { + "name": "cpu-throttle-percentage", + "default": null, + "type": "int" + }, + { + "name": "error-desc", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "int", + "json-type": "int", + "meta-type": "builtin" + }, + { + "name": "[138]", + "element-type": "138", + "meta-type": "array" + }, + { + "name": "138", + "members": [ + { + "name": "capability", + "type": "260" + }, + { + "name": "state", + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "139", + "members": [ + { + "name": "compress-level", + "default": null, + "type": "int" + }, + { + "name": "compress-threads", + "default": null, + "type": "int" + }, + { + "name": "decompress-threads", + "default": null, + "type": "int" + }, + { + "name": "cpu-throttle-initial", + "default": null, + "type": "int" + }, + { + "name": "cpu-throttle-increment", + "default": null, + "type": "int" + }, + { + "name": "tls-creds", + "default": null, + "type": "str" + }, + { + "name": "tls-hostname", + "default": null, + "type": "str" + }, + { + "name": "max-bandwidth", + "default": null, + "type": "int" + }, + { + "name": "downtime-limit", + "default": null, + "type": "int" + }, + { + "name": "x-checkpoint-delay", + "default": null, + "type": "int" + }, + { + "name": "block-incremental", + "default": null, + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "140", + "members": [ + { + "name": "name", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "[141]", + "element-type": "141", + "meta-type": "array" + }, + { + "name": "141", + "members": [ + { + "name": "file", + "type": "str" + }, + { + "name": "node-name", + "default": null, + "type": "str" + }, + { + "name": "ro", + "type": "bool" + }, + { + "name": "drv", + "type": "str" + }, + { + "name": "backing_file", + "default": null, + "type": "str" + }, + { + "name": "backing_file_depth", + "type": "int" + }, + { + "name": "encrypted", + "type": "bool" + }, + { + "name": "encryption_key_missing", + "type": "bool" + }, + { + "name": "detect_zeroes", + "type": "203" + }, + { + "name": "bps", + "type": "int" + }, + { + "name": "bps_rd", + "type": "int" + }, + { + "name": "bps_wr", + "type": "int" + }, + { + "name": "iops", + "type": "int" + }, + { + "name": "iops_rd", + "type": "int" + }, + { + "name": "iops_wr", + "type": "int" + }, + { + "name": "image", + "type": "261" + }, + { + "name": "bps_max", + "default": null, + "type": "int" + }, + { + "name": "bps_rd_max", + "default": null, + "type": "int" + }, + { + "name": "bps_wr_max", + "default": null, + "type": "int" + }, + { + "name": "iops_max", + "default": null, + "type": "int" + }, + { + "name": "iops_rd_max", + "default": null, + "type": "int" + }, + { + "name": "iops_wr_max", + "default": null, + "type": "int" + }, + { + "name": "bps_max_length", + "default": null, + "type": "int" + }, + { + "name": "bps_rd_max_length", + "default": null, + "type": "int" + }, + { + "name": "bps_wr_max_length", + "default": null, + "type": "int" + }, + { + "name": "iops_max_length", + "default": null, + "type": "int" + }, + { + "name": "iops_rd_max_length", + "default": null, + "type": "int" + }, + { + "name": "iops_wr_max_length", + "default": null, + "type": "int" + }, + { + "name": "iops_size", + "default": null, + "type": "int" + }, + { + "name": "group", + "default": null, + "type": "str" + }, + { + "name": "cache", + "type": "262" + }, + { + "name": "write_threshold", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "[142]", + "element-type": "142", + "meta-type": "array" + }, + { + "name": "142", + "members": [ + { + "name": "bus", + "type": "int" + }, + { + "name": "devices", + "type": "[263]" + } + ], + "meta-type": "object" + }, + { + "name": "[143]", + "element-type": "143", + "meta-type": "array" + }, + { + "name": "143", + "tag": "meta-type", + "variants": [ + { + "case": "builtin", + "type": "265" + }, + { + "case": "enum", + "type": "266" + }, + { + "case": "array", + "type": "267" + }, + { + "case": "object", + "type": "268" + }, + { + "case": "alternate", + "type": "269" + }, + { + "case": "command", + "type": "270" + }, + { + "case": "event", + "type": "271" + } + ], + "members": [ + { + "name": "name", + "type": "str" + }, + { + "name": "meta-type", + "type": "264" + } + ], + "meta-type": "object" + }, + { + "name": "144", + "members": [ + { + "name": "name", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "145", + "members": [ + { + "name": "name", + "type": "str" + }, + { + "name": "id", + "type": "int" + }, + { + "name": "ports", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "146", + "members": [ + { + "name": "name", + "type": "str" + }, + { + "name": "tbl-id", + "default": null, + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "[147]", + "element-type": "147", + "meta-type": "array" + }, + { + "name": "147", + "members": [ + { + "name": "cookie", + "type": "int" + }, + { + "name": "hits", + "type": "int" + }, + { + "name": "key", + "type": "272" + }, + { + "name": "mask", + "type": "273" + }, + { + "name": "action", + "type": "274" + } + ], + "meta-type": "object" + }, + { + "name": "148", + "members": [ + { + "name": "name", + "type": "str" + }, + { + "name": "type", + "default": null, + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "[149]", + "element-type": "149", + "meta-type": "array" + }, + { + "name": "149", + "members": [ + { + "name": "id", + "type": "int" + }, + { + "name": "type", + "type": "int" + }, + { + "name": "vlan-id", + "default": null, + "type": "int" + }, + { + "name": "pport", + "default": null, + "type": "int" + }, + { + "name": "index", + "default": null, + "type": "int" + }, + { + "name": "out-pport", + "default": null, + "type": "int" + }, + { + "name": "group-id", + "default": null, + "type": "int" + }, + { + "name": "set-vlan-id", + "default": null, + "type": "int" + }, + { + "name": "pop-vlan", + "default": null, + "type": "int" + }, + { + "name": "group-ids", + "default": null, + "type": "[int]" + }, + { + "name": "set-eth-src", + "default": null, + "type": "str" + }, + { + "name": "set-eth-dst", + "default": null, + "type": "str" + }, + { + "name": "ttl-check", + "default": null, + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "150", + "members": [ + { + "name": "name", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "[151]", + "element-type": "151", + "meta-type": "array" + }, + { + "name": "151", + "members": [ + { + "name": "name", + "type": "str" + }, + { + "name": "enabled", + "type": "bool" + }, + { + "name": "link-up", + "type": "bool" + }, + { + "name": "speed", + "type": "int" + }, + { + "name": "duplex", + "type": "275" + }, + { + "name": "autoneg", + "type": "276" + } + ], + "meta-type": "object" + }, + { + "name": "152", + "members": [ + { + "name": "name", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "[153]", + "element-type": "153", + "meta-type": "array" + }, + { + "name": "153", + "members": [ + { + "name": "name", + "type": "str" + }, + { + "name": "promiscuous", + "type": "bool" + }, + { + "name": "multicast", + "type": "277" + }, + { + "name": "unicast", + "type": "277" + }, + { + "name": "vlan", + "type": "277" + }, + { + "name": "broadcast-allowed", + "type": "bool" + }, + { + "name": "multicast-overflow", + "type": "bool" + }, + { + "name": "unicast-overflow", + "type": "bool" + }, + { + "name": "main-mac", + "type": "str" + }, + { + "name": "vlan-table", + "type": "[int]" + }, + { + "name": "unicast-table", + "type": "[str]" + }, + { + "name": "multicast-table", + "type": "[str]" + } + ], + "meta-type": "object" + }, + { + "name": "154", + "members": [ + { + "name": "enabled", + "type": "bool" + }, + { + "name": "migrated", + "type": "bool" + }, + { + "name": "host", + "default": null, + "type": "str" + }, + { + "name": "port", + "default": null, + "type": "int" + }, + { + "name": "tls-port", + "default": null, + "type": "int" + }, + { + "name": "auth", + "default": null, + "type": "str" + }, + { + "name": "compiled-version", + "default": null, + "type": "str" + }, + { + "name": "mouse-mode", + "type": "278" + }, + { + "name": "channels", + "default": null, + "type": "[194]" + } + ], + "meta-type": "object" + }, + { + "name": "155", + "members": [ + { + "name": "running", + "type": "bool" + }, + { + "name": "singlestep", + "type": "bool" + }, + { + "name": "status", + "type": "279" + } + ], + "meta-type": "object" + }, + { + "name": "156", + "members": [ + { + "name": "arch", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "[157]", + "element-type": "157", + "meta-type": "array" + }, + { + "name": "157", + "members": [ + { + "name": "id", + "type": "str" + }, + { + "name": "model", + "type": "158" + }, + { + "name": "options", + "type": "280" + } + ], + "meta-type": "object" + }, + { + "name": "[158]", + "element-type": "158", + "meta-type": "array" + }, + { + "name": "158", + "meta-type": "enum", + "values": [ + "tpm-tis" + ] + }, + { + "name": "[159]", + "element-type": "159", + "meta-type": "array" + }, + { + "name": "159", + "meta-type": "enum", + "values": [ + "passthrough" + ] + }, + { + "name": "160", + "members": [ + { + "name": "UUID", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "161", + "members": [ + { + "name": "qemu", + "type": "281" + }, + { + "name": "package", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "162", + "members": [ + { + "name": "guid", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "163", + "members": [ + { + "name": "enabled", + "type": "bool" + }, + { + "name": "host", + "default": null, + "type": "str" + }, + { + "name": "family", + "default": null, + "type": "282" + }, + { + "name": "service", + "default": null, + "type": "str" + }, + { + "name": "auth", + "default": null, + "type": "str" + }, + { + "name": "clients", + "default": null, + "type": "[197]" + } + ], + "meta-type": "object" + }, + { + "name": "[164]", + "element-type": "164", + "meta-type": "array" + }, + { + "name": "164", + "members": [ + { + "name": "id", + "type": "str" + }, + { + "name": "server", + "type": "[283]" + }, + { + "name": "clients", + "type": "[197]" + }, + { + "name": "auth", + "type": "284" + }, + { + "name": "vencrypt", + "default": null, + "type": "285" + }, + { + "name": "display", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "165", + "members": [ + { + "name": "error", + "type": "bool" + }, + { + "name": "desc", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "166", + "members": [ + { + "name": "fdset-id", + "type": "int" + }, + { + "name": "fd", + "default": null, + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "167", + "members": [ + { + "name": "device", + "type": "str" + }, + { + "name": "size", + "type": "int" + }, + { + "name": "format", + "default": null, + "type": "286" + } + ], + "meta-type": "object" + }, + { + "name": "168", + "members": [ + { + "name": "device", + "type": "str" + }, + { + "name": "data", + "type": "str" + }, + { + "name": "format", + "default": null, + "type": "286" + } + ], + "meta-type": "object" + }, + { + "name": "169", + "members": [ + { + "name": "filename", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "170", + "members": [ + { + "name": "keys", + "type": "[287]" + }, + { + "name": "hold-time", + "default": null, + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "171", + "members": [ + { + "name": "name", + "type": "str" + }, + { + "name": "up", + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "172", + "members": [ + { + "name": "protocol", + "type": "str" + }, + { + "name": "password", + "type": "str" + }, + { + "name": "connected", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "173", + "members": [ + { + "name": "name", + "type": "str" + }, + { + "name": "vcpu", + "default": null, + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "[174]", + "element-type": "174", + "meta-type": "array" + }, + { + "name": "174", + "members": [ + { + "name": "name", + "type": "str" + }, + { + "name": "state", + "type": "288" + }, + { + "name": "vcpu", + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "175", + "members": [ + { + "name": "name", + "type": "str" + }, + { + "name": "enable", + "type": "bool" + }, + { + "name": "ignore-unavailable", + "default": null, + "type": "bool" + }, + { + "name": "vcpu", + "default": null, + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "176", + "members": [ + { + "name": "actions", + "type": "[289]" + }, + { + "name": "properties", + "default": null, + "type": "290" + } + ], + "meta-type": "object" + }, + { + "name": "177", + "members": [ + { + "name": "parent", + "type": "str" + }, + { + "name": "child", + "default": null, + "type": "str" + }, + { + "name": "node", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "178", + "members": [ + { + "name": "device", + "default": null, + "type": "str" + }, + { + "name": "id", + "default": null, + "type": "str" + }, + { + "name": "node-name", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "179", + "members": [ + { + "name": "device", + "default": null, + "type": "str" + }, + { + "name": "id", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "180", + "members": [ + { + "name": "sha256", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "181", + "members": [ + { + "name": "filename", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "182", + "members": [ + { + "name": "filename", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "183", + "members": [ + { + "name": "enable", + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "184", + "members": [ + { + "name": "enable", + "type": "bool" + }, + { + "name": "primary", + "type": "bool" + }, + { + "name": "failover", + "default": null, + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "bool", + "json-type": "boolean", + "meta-type": "builtin" + }, + { + "name": "185", + "meta-type": "enum", + "values": [ + "read", + "write" + ] + }, + { + "name": "186", + "meta-type": "enum", + "values": [ + "ignore", + "report", + "stop" + ] + }, + { + "name": "187", + "meta-type": "enum", + "values": [ + "commit", + "stream", + "mirror", + "backup" + ] + }, + { + "name": "188", + "meta-type": "enum", + "values": [ + "pause", + "poweroff" + ] + }, + { + "name": "189", + "tag": "type", + "variants": [ + { + "case": "hyper-v", + "type": "292" + } + ], + "members": [ + { + "name": "type", + "type": "291" + } + ], + "meta-type": "object" + }, + { + "name": "190", + "meta-type": "enum", + "values": [ + "none", + "setup", + "cancelling", + "cancelled", + "active", + "postcopy-active", + "completed", + "failed", + "colo" + ] + }, + { + "name": "191", + "meta-type": "enum", + "values": [ + "read", + "write", + "flush" + ] + }, + { + "name": "192", + "members": [ + { + "name": "host", + "type": "str" + }, + { + "name": "port", + "type": "str" + }, + { + "name": "family", + "type": "282" + } + ], + "meta-type": "object" + }, + { + "name": "193", + "members": [ + { + "name": "host", + "type": "str" + }, + { + "name": "port", + "type": "str" + }, + { + "name": "family", + "type": "282" + }, + { + "name": "auth", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "194", + "members": [ + { + "name": "host", + "type": "str" + }, + { + "name": "port", + "type": "str" + }, + { + "name": "family", + "type": "282" + }, + { + "name": "connection-id", + "type": "int" + }, + { + "name": "channel-type", + "type": "int" + }, + { + "name": "channel-id", + "type": "int" + }, + { + "name": "tls", + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "195", + "members": [ + { + "name": "host", + "type": "str" + }, + { + "name": "service", + "type": "str" + }, + { + "name": "family", + "type": "282" + }, + { + "name": "websocket", + "type": "bool" + }, + { + "name": "auth", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "196", + "members": [ + { + "name": "host", + "type": "str" + }, + { + "name": "service", + "type": "str" + }, + { + "name": "family", + "type": "282" + }, + { + "name": "websocket", + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "197", + "members": [ + { + "name": "host", + "type": "str" + }, + { + "name": "service", + "type": "str" + }, + { + "name": "family", + "type": "282" + }, + { + "name": "websocket", + "type": "bool" + }, + { + "name": "x509_dname", + "default": null, + "type": "str" + }, + { + "name": "sasl_username", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "198", + "meta-type": "enum", + "values": [ + "reset", + "shutdown", + "poweroff", + "pause", + "debug", + "none", + "inject-nmi" + ] + }, + { + "name": "199", + "meta-type": "enum", + "values": [ + "report", + "ignore", + "enospc", + "stop", + "auto" + ] + }, + { + "name": "200", + "meta-type": "enum", + "values": [ + "blkdebug", + "blkverify", + "bochs", + "cloop", + "dmg", + "file", + "ftp", + "ftps", + "gluster", + "host_cdrom", + "host_device", + "http", + "https", + "iscsi", + "luks", + "nbd", + "nfs", + "null-aio", + "null-co", + "parallels", + "qcow", + "qcow2", + "qed", + "quorum", + "raw", + "rbd", + "replication", + "sheepdog", + "ssh", + "vdi", + "vhdx", + "vmdk", + "vpc", + "vvfat", + "vxhs" + ] + }, + { + "name": "201", + "meta-type": "enum", + "values": [ + "ignore", + "unmap" + ] + }, + { + "name": "202", + "members": [ + { + "name": "direct", + "default": null, + "type": "bool" + }, + { + "name": "no-flush", + "default": null, + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "203", + "meta-type": "enum", + "values": [ + "off", + "on", + "unmap" + ] + }, + { + "name": "204", + "members": [ + { + "name": "image", + "type": "293" + }, + { + "name": "config", + "default": null, + "type": "str" + }, + { + "name": "align", + "default": null, + "type": "int" + }, + { + "name": "max-transfer", + "default": null, + "type": "int" + }, + { + "name": "opt-write-zero", + "default": null, + "type": "int" + }, + { + "name": "max-write-zero", + "default": null, + "type": "int" + }, + { + "name": "opt-discard", + "default": null, + "type": "int" + }, + { + "name": "max-discard", + "default": null, + "type": "int" + }, + { + "name": "inject-error", + "default": null, + "type": "[294]" + }, + { + "name": "set-state", + "default": null, + "type": "[295]" + } + ], + "meta-type": "object" + }, + { + "name": "205", + "members": [ + { + "name": "test", + "type": "293" + }, + { + "name": "raw", + "type": "293" + } + ], + "meta-type": "object" + }, + { + "name": "206", + "members": [ + { + "name": "file", + "type": "293" + } + ], + "meta-type": "object" + }, + { + "name": "207", + "members": [ + { + "name": "filename", + "type": "str" + }, + { + "name": "locking", + "default": null, + "type": "296" + }, + { + "name": "aio", + "default": null, + "type": "297" + } + ], + "meta-type": "object" + }, + { + "name": "208", + "members": [ + { + "name": "url", + "type": "str" + }, + { + "name": "readahead", + "default": null, + "type": "int" + }, + { + "name": "timeout", + "default": null, + "type": "int" + }, + { + "name": "username", + "default": null, + "type": "str" + }, + { + "name": "password-secret", + "default": null, + "type": "str" + }, + { + "name": "proxy-username", + "default": null, + "type": "str" + }, + { + "name": "proxy-password-secret", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "209", + "members": [ + { + "name": "url", + "type": "str" + }, + { + "name": "readahead", + "default": null, + "type": "int" + }, + { + "name": "timeout", + "default": null, + "type": "int" + }, + { + "name": "username", + "default": null, + "type": "str" + }, + { + "name": "password-secret", + "default": null, + "type": "str" + }, + { + "name": "proxy-username", + "default": null, + "type": "str" + }, + { + "name": "proxy-password-secret", + "default": null, + "type": "str" + }, + { + "name": "sslverify", + "default": null, + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "210", + "members": [ + { + "name": "volume", + "type": "str" + }, + { + "name": "path", + "type": "str" + }, + { + "name": "server", + "type": "[298]" + }, + { + "name": "debug", + "default": null, + "type": "int" + }, + { + "name": "logfile", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "211", + "members": [ + { + "name": "url", + "type": "str" + }, + { + "name": "readahead", + "default": null, + "type": "int" + }, + { + "name": "timeout", + "default": null, + "type": "int" + }, + { + "name": "username", + "default": null, + "type": "str" + }, + { + "name": "password-secret", + "default": null, + "type": "str" + }, + { + "name": "proxy-username", + "default": null, + "type": "str" + }, + { + "name": "proxy-password-secret", + "default": null, + "type": "str" + }, + { + "name": "cookie", + "default": null, + "type": "str" + }, + { + "name": "cookie-secret", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "212", + "members": [ + { + "name": "url", + "type": "str" + }, + { + "name": "readahead", + "default": null, + "type": "int" + }, + { + "name": "timeout", + "default": null, + "type": "int" + }, + { + "name": "username", + "default": null, + "type": "str" + }, + { + "name": "password-secret", + "default": null, + "type": "str" + }, + { + "name": "proxy-username", + "default": null, + "type": "str" + }, + { + "name": "proxy-password-secret", + "default": null, + "type": "str" + }, + { + "name": "cookie", + "default": null, + "type": "str" + }, + { + "name": "sslverify", + "default": null, + "type": "bool" + }, + { + "name": "cookie-secret", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "213", + "members": [ + { + "name": "transport", + "type": "299" + }, + { + "name": "portal", + "type": "str" + }, + { + "name": "target", + "type": "str" + }, + { + "name": "lun", + "default": null, + "type": "int" + }, + { + "name": "user", + "default": null, + "type": "str" + }, + { + "name": "password-secret", + "default": null, + "type": "str" + }, + { + "name": "initiator-name", + "default": null, + "type": "str" + }, + { + "name": "header-digest", + "default": null, + "type": "300" + }, + { + "name": "timeout", + "default": null, + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "214", + "members": [ + { + "name": "file", + "type": "293" + }, + { + "name": "key-secret", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "215", + "members": [ + { + "name": "server", + "type": "298" + }, + { + "name": "export", + "default": null, + "type": "str" + }, + { + "name": "tls-creds", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "216", + "members": [ + { + "name": "server", + "type": "301" + }, + { + "name": "path", + "type": "str" + }, + { + "name": "user", + "default": null, + "type": "int" + }, + { + "name": "group", + "default": null, + "type": "int" + }, + { + "name": "tcp-syn-count", + "default": null, + "type": "int" + }, + { + "name": "readahead-size", + "default": null, + "type": "int" + }, + { + "name": "page-cache-size", + "default": null, + "type": "int" + }, + { + "name": "debug", + "default": null, + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "217", + "members": [ + { + "name": "size", + "default": null, + "type": "int" + }, + { + "name": "latency-ns", + "default": null, + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "218", + "members": [ + { + "name": "file", + "type": "293" + }, + { + "name": "backing", + "default": null, + "type": "302" + }, + { + "name": "lazy-refcounts", + "default": null, + "type": "bool" + }, + { + "name": "pass-discard-request", + "default": null, + "type": "bool" + }, + { + "name": "pass-discard-snapshot", + "default": null, + "type": "bool" + }, + { + "name": "pass-discard-other", + "default": null, + "type": "bool" + }, + { + "name": "overlap-check", + "default": null, + "type": "303" + }, + { + "name": "cache-size", + "default": null, + "type": "int" + }, + { + "name": "l2-cache-size", + "default": null, + "type": "int" + }, + { + "name": "refcount-cache-size", + "default": null, + "type": "int" + }, + { + "name": "cache-clean-interval", + "default": null, + "type": "int" + }, + { + "name": "encrypt", + "default": null, + "type": "304" + } + ], + "meta-type": "object" + }, + { + "name": "219", + "members": [ + { + "name": "file", + "type": "293" + }, + { + "name": "backing", + "default": null, + "type": "302" + }, + { + "name": "encrypt", + "default": null, + "type": "305" + } + ], + "meta-type": "object" + }, + { + "name": "220", + "members": [ + { + "name": "file", + "type": "293" + }, + { + "name": "backing", + "default": null, + "type": "302" + } + ], + "meta-type": "object" + }, + { + "name": "221", + "members": [ + { + "name": "blkverify", + "default": null, + "type": "bool" + }, + { + "name": "children", + "type": "[293]" + }, + { + "name": "vote-threshold", + "type": "int" + }, + { + "name": "rewrite-corrupted", + "default": null, + "type": "bool" + }, + { + "name": "read-pattern", + "default": null, + "type": "306" + } + ], + "meta-type": "object" + }, + { + "name": "222", + "members": [ + { + "name": "file", + "type": "293" + }, + { + "name": "offset", + "default": null, + "type": "int" + }, + { + "name": "size", + "default": null, + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "223", + "members": [ + { + "name": "pool", + "type": "str" + }, + { + "name": "image", + "type": "str" + }, + { + "name": "conf", + "default": null, + "type": "str" + }, + { + "name": "snapshot", + "default": null, + "type": "str" + }, + { + "name": "user", + "default": null, + "type": "str" + }, + { + "name": "server", + "default": null, + "type": "[307]" + } + ], + "meta-type": "object" + }, + { + "name": "224", + "members": [ + { + "name": "file", + "type": "293" + }, + { + "name": "mode", + "type": "308" + }, + { + "name": "top-id", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "225", + "members": [ + { + "name": "server", + "type": "298" + }, + { + "name": "vdi", + "type": "str" + }, + { + "name": "snap-id", + "default": null, + "type": "int" + }, + { + "name": "tag", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "226", + "members": [ + { + "name": "server", + "type": "309" + }, + { + "name": "path", + "type": "str" + }, + { + "name": "user", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "227", + "members": [ + { + "name": "dir", + "type": "str" + }, + { + "name": "fat-type", + "default": null, + "type": "int" + }, + { + "name": "floppy", + "default": null, + "type": "bool" + }, + { + "name": "label", + "default": null, + "type": "str" + }, + { + "name": "rw", + "default": null, + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "228", + "members": [ + { + "name": "vdisk-id", + "type": "str" + }, + { + "name": "server", + "type": "307" + }, + { + "name": "tls-creds", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "229", + "meta-type": "enum", + "values": [ + "top", + "full", + "none", + "incremental" + ] + }, + { + "name": "230", + "meta-type": "enum", + "values": [ + "retain", + "read-only", + "read-write" + ] + }, + { + "name": "231", + "meta-type": "enum", + "values": [ + "existing", + "absolute-paths" + ] + }, + { + "name": "232", + "tag": "type", + "variants": [ + { + "case": "file", + "type": "311" + }, + { + "case": "serial", + "type": "312" + }, + { + "case": "parallel", + "type": "312" + }, + { + "case": "pipe", + "type": "312" + }, + { + "case": "socket", + "type": "313" + }, + { + "case": "udp", + "type": "314" + }, + { + "case": "pty", + "type": "315" + }, + { + "case": "null", + "type": "315" + }, + { + "case": "mux", + "type": "316" + }, + { + "case": "msmouse", + "type": "315" + }, + { + "case": "wctablet", + "type": "315" + }, + { + "case": "braille", + "type": "315" + }, + { + "case": "testdev", + "type": "315" + }, + { + "case": "stdio", + "type": "317" + }, + { + "case": "console", + "type": "315" + }, + { + "case": "spicevmc", + "type": "318" + }, + { + "case": "spiceport", + "type": "319" + }, + { + "case": "vc", + "type": "320" + }, + { + "case": "ringbuf", + "type": "321" + }, + { + "case": "memory", + "type": "321" + } + ], + "members": [ + { + "name": "type", + "type": "310" + } + ], + "meta-type": "object" + }, + { + "name": "233", + "meta-type": "enum", + "values": [ + "elf", + "kdump-zlib", + "kdump-lzo", + "kdump-snappy" + ] + }, + { + "name": "[234]", + "element-type": "234", + "meta-type": "array" + }, + { + "name": "234", + "tag": "type", + "variants": [ + { + "case": "key", + "type": "323" + }, + { + "case": "btn", + "type": "324" + }, + { + "case": "rel", + "type": "325" + }, + { + "case": "abs", + "type": "325" + } + ], + "members": [ + { + "name": "type", + "type": "322" + } + ], + "meta-type": "object" + }, + { + "name": "235", + "members": [ + { + "type": "str" + }, + { + "type": "null" + } + ], + "meta-type": "alternate" + }, + { + "name": "number", + "json-type": "number", + "meta-type": "builtin" + }, + { + "name": "236", + "tag": "type", + "variants": [ + { + "case": "inet", + "type": "327" + }, + { + "case": "unix", + "type": "328" + }, + { + "case": "vsock", + "type": "329" + }, + { + "case": "fd", + "type": "330" + } + ], + "members": [ + { + "name": "type", + "type": "326" + } + ], + "meta-type": "object" + }, + { + "name": "237", + "meta-type": "enum", + "values": [ + "DIMM", + "CPU" + ] + }, + { + "name": "238", + "meta-type": "enum", + "values": [ + "ok", + "failed", + "nospace" + ] + }, + { + "name": "[239]", + "element-type": "239", + "meta-type": "array" + }, + { + "name": "239", + "members": [ + { + "name": "name", + "default": null, + "type": "str" + }, + { + "name": "count", + "type": "int" + }, + { + "name": "granularity", + "type": "int" + }, + { + "name": "status", + "type": "331" + } + ], + "meta-type": "object" + }, + { + "name": "240", + "members": [ + { + "name": "rd_bytes", + "type": "int" + }, + { + "name": "wr_bytes", + "type": "int" + }, + { + "name": "rd_operations", + "type": "int" + }, + { + "name": "wr_operations", + "type": "int" + }, + { + "name": "flush_operations", + "type": "int" + }, + { + "name": "flush_total_time_ns", + "type": "int" + }, + { + "name": "wr_total_time_ns", + "type": "int" + }, + { + "name": "rd_total_time_ns", + "type": "int" + }, + { + "name": "wr_highest_offset", + "type": "int" + }, + { + "name": "rd_merged", + "type": "int" + }, + { + "name": "wr_merged", + "type": "int" + }, + { + "name": "idle_time_ns", + "default": null, + "type": "int" + }, + { + "name": "failed_rd_operations", + "type": "int" + }, + { + "name": "failed_wr_operations", + "type": "int" + }, + { + "name": "failed_flush_operations", + "type": "int" + }, + { + "name": "invalid_rd_operations", + "type": "int" + }, + { + "name": "invalid_wr_operations", + "type": "int" + }, + { + "name": "invalid_flush_operations", + "type": "int" + }, + { + "name": "account_invalid", + "type": "bool" + }, + { + "name": "account_failed", + "type": "bool" + }, + { + "name": "timed_stats", + "type": "[332]" + } + ], + "meta-type": "object" + }, + { + "name": "[241]", + "element-type": "241", + "meta-type": "array" + }, + { + "name": "241", + "members": [ + { + "name": "name", + "type": "str" + }, + { + "name": "type", + "type": "333" + }, + { + "name": "help", + "default": null, + "type": "str" + }, + { + "name": "default", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "[str]", + "element-type": "str", + "meta-type": "array" + }, + { + "name": "242", + "members": [ + { + "name": "name", + "type": "str" + }, + { + "name": "props", + "default": null, + "type": "any" + } + ], + "meta-type": "object" + }, + { + "name": "243", + "meta-type": "enum", + "values": [ + "incompatible", + "identical", + "superset", + "subset" + ] + }, + { + "name": "244", + "meta-type": "enum", + "values": [ + "static", + "full" + ] + }, + { + "name": "245", + "members": [ + { + "name": "node-id", + "default": null, + "type": "int" + }, + { + "name": "socket-id", + "default": null, + "type": "int" + }, + { + "name": "core-id", + "default": null, + "type": "int" + }, + { + "name": "thread-id", + "default": null, + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "246", + "meta-type": "enum", + "values": [ + "x86", + "sparc", + "ppc", + "mips", + "tricore", + "other" + ] + }, + { + "name": "247", + "members": [ + { + "name": "pc", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "248", + "members": [ + { + "name": "pc", + "type": "int" + }, + { + "name": "npc", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "249", + "members": [ + { + "name": "nip", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "250", + "members": [ + { + "name": "PC", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "251", + "members": [ + { + "name": "PC", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "252", + "members": [ + ], + "meta-type": "object" + }, + { + "name": "253", + "meta-type": "enum", + "values": [ + "none", + "active", + "completed", + "failed" + ] + }, + { + "name": "[233]", + "element-type": "233", + "meta-type": "array" + }, + { + "name": "[254]", + "element-type": "254", + "meta-type": "array" + }, + { + "name": "254", + "members": [ + { + "name": "fd", + "type": "int" + }, + { + "name": "opaque", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "[int]", + "element-type": "int", + "meta-type": "array" + }, + { + "name": "255", + "meta-type": "enum", + "values": [ + "default", + "preferred", + "bind", + "interleave" + ] + }, + { + "name": "256", + "meta-type": "enum", + "values": [ + "dimm" + ] + }, + { + "name": "257", + "members": [ + { + "name": "data", + "type": "334" + } + ], + "meta-type": "object" + }, + { + "name": "258", + "members": [ + { + "name": "transferred", + "type": "int" + }, + { + "name": "remaining", + "type": "int" + }, + { + "name": "total", + "type": "int" + }, + { + "name": "duplicate", + "type": "int" + }, + { + "name": "skipped", + "type": "int" + }, + { + "name": "normal", + "type": "int" + }, + { + "name": "normal-bytes", + "type": "int" + }, + { + "name": "dirty-pages-rate", + "type": "int" + }, + { + "name": "mbps", + "type": "number" + }, + { + "name": "dirty-sync-count", + "type": "int" + }, + { + "name": "postcopy-requests", + "type": "int" + }, + { + "name": "page-size", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "259", + "members": [ + { + "name": "cache-size", + "type": "int" + }, + { + "name": "bytes", + "type": "int" + }, + { + "name": "pages", + "type": "int" + }, + { + "name": "cache-miss", + "type": "int" + }, + { + "name": "cache-miss-rate", + "type": "number" + }, + { + "name": "overflow", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "260", + "meta-type": "enum", + "values": [ + "xbzrle", + "rdma-pin-all", + "auto-converge", + "zero-blocks", + "compress", + "events", + "postcopy-ram", + "x-colo", + "release-ram", + "block", + "return-path" + ] + }, + { + "name": "261", + "members": [ + { + "name": "filename", + "type": "str" + }, + { + "name": "format", + "type": "str" + }, + { + "name": "dirty-flag", + "default": null, + "type": "bool" + }, + { + "name": "actual-size", + "default": null, + "type": "int" + }, + { + "name": "virtual-size", + "type": "int" + }, + { + "name": "cluster-size", + "default": null, + "type": "int" + }, + { + "name": "encrypted", + "default": null, + "type": "bool" + }, + { + "name": "compressed", + "default": null, + "type": "bool" + }, + { + "name": "backing-filename", + "default": null, + "type": "str" + }, + { + "name": "full-backing-filename", + "default": null, + "type": "str" + }, + { + "name": "backing-filename-format", + "default": null, + "type": "str" + }, + { + "name": "snapshots", + "default": null, + "type": "[57]" + }, + { + "name": "backing-image", + "default": null, + "type": "261" + }, + { + "name": "format-specific", + "default": null, + "type": "335" + } + ], + "meta-type": "object" + }, + { + "name": "262", + "members": [ + { + "name": "writeback", + "type": "bool" + }, + { + "name": "direct", + "type": "bool" + }, + { + "name": "no-flush", + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "[263]", + "element-type": "263", + "meta-type": "array" + }, + { + "name": "263", + "members": [ + { + "name": "bus", + "type": "int" + }, + { + "name": "slot", + "type": "int" + }, + { + "name": "function", + "type": "int" + }, + { + "name": "class_info", + "type": "336" + }, + { + "name": "id", + "type": "337" + }, + { + "name": "irq", + "default": null, + "type": "int" + }, + { + "name": "qdev_id", + "type": "str" + }, + { + "name": "pci_bridge", + "default": null, + "type": "338" + }, + { + "name": "regions", + "type": "[339]" + } + ], + "meta-type": "object" + }, + { + "name": "264", + "meta-type": "enum", + "values": [ + "builtin", + "enum", + "array", + "object", + "alternate", + "command", + "event" + ] + }, + { + "name": "265", + "members": [ + { + "name": "json-type", + "type": "340" + } + ], + "meta-type": "object" + }, + { + "name": "266", + "members": [ + { + "name": "values", + "type": "[str]" + } + ], + "meta-type": "object" + }, + { + "name": "267", + "members": [ + { + "name": "element-type", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "268", + "members": [ + { + "name": "members", + "type": "[341]" + }, + { + "name": "tag", + "default": null, + "type": "str" + }, + { + "name": "variants", + "default": null, + "type": "[342]" + } + ], + "meta-type": "object" + }, + { + "name": "269", + "members": [ + { + "name": "members", + "type": "[343]" + } + ], + "meta-type": "object" + }, + { + "name": "270", + "members": [ + { + "name": "arg-type", + "type": "str" + }, + { + "name": "ret-type", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "271", + "members": [ + { + "name": "arg-type", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "272", + "members": [ + { + "name": "priority", + "type": "int" + }, + { + "name": "tbl-id", + "type": "int" + }, + { + "name": "in-pport", + "default": null, + "type": "int" + }, + { + "name": "tunnel-id", + "default": null, + "type": "int" + }, + { + "name": "vlan-id", + "default": null, + "type": "int" + }, + { + "name": "eth-type", + "default": null, + "type": "int" + }, + { + "name": "eth-src", + "default": null, + "type": "str" + }, + { + "name": "eth-dst", + "default": null, + "type": "str" + }, + { + "name": "ip-proto", + "default": null, + "type": "int" + }, + { + "name": "ip-tos", + "default": null, + "type": "int" + }, + { + "name": "ip-dst", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "273", + "members": [ + { + "name": "in-pport", + "default": null, + "type": "int" + }, + { + "name": "tunnel-id", + "default": null, + "type": "int" + }, + { + "name": "vlan-id", + "default": null, + "type": "int" + }, + { + "name": "eth-src", + "default": null, + "type": "str" + }, + { + "name": "eth-dst", + "default": null, + "type": "str" + }, + { + "name": "ip-proto", + "default": null, + "type": "int" + }, + { + "name": "ip-tos", + "default": null, + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "274", + "members": [ + { + "name": "goto-tbl", + "default": null, + "type": "int" + }, + { + "name": "group-id", + "default": null, + "type": "int" + }, + { + "name": "tunnel-lport", + "default": null, + "type": "int" + }, + { + "name": "vlan-id", + "default": null, + "type": "int" + }, + { + "name": "new-vlan-id", + "default": null, + "type": "int" + }, + { + "name": "out-pport", + "default": null, + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "275", + "meta-type": "enum", + "values": [ + "half", + "full" + ] + }, + { + "name": "276", + "meta-type": "enum", + "values": [ + "off", + "on" + ] + }, + { + "name": "277", + "meta-type": "enum", + "values": [ + "normal", + "none", + "all" + ] + }, + { + "name": "278", + "meta-type": "enum", + "values": [ + "client", + "server", + "unknown" + ] + }, + { + "name": "[194]", + "element-type": "194", + "meta-type": "array" + }, + { + "name": "279", + "meta-type": "enum", + "values": [ + "debug", + "inmigrate", + "internal-error", + "io-error", + "paused", + "postmigrate", + "prelaunch", + "finish-migrate", + "restore-vm", + "running", + "save-vm", + "shutdown", + "suspended", + "watchdog", + "guest-panicked", + "colo" + ] + }, + { + "name": "280", + "tag": "type", + "variants": [ + { + "case": "passthrough", + "type": "345" + } + ], + "members": [ + { + "name": "type", + "type": "344" + } + ], + "meta-type": "object" + }, + { + "name": "281", + "members": [ + { + "name": "major", + "type": "int" + }, + { + "name": "minor", + "type": "int" + }, + { + "name": "micro", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "282", + "meta-type": "enum", + "values": [ + "ipv4", + "ipv6", + "unix", + "vsock", + "unknown" + ] + }, + { + "name": "[197]", + "element-type": "197", + "meta-type": "array" + }, + { + "name": "[283]", + "element-type": "283", + "meta-type": "array" + }, + { + "name": "283", + "members": [ + { + "name": "host", + "type": "str" + }, + { + "name": "service", + "type": "str" + }, + { + "name": "family", + "type": "282" + }, + { + "name": "websocket", + "type": "bool" + }, + { + "name": "auth", + "type": "284" + }, + { + "name": "vencrypt", + "default": null, + "type": "285" + } + ], + "meta-type": "object" + }, + { + "name": "284", + "meta-type": "enum", + "values": [ + "none", + "vnc", + "ra2", + "ra2ne", + "tight", + "ultra", + "tls", + "vencrypt", + "sasl" + ] + }, + { + "name": "285", + "meta-type": "enum", + "values": [ + "plain", + "tls-none", + "x509-none", + "tls-vnc", + "x509-vnc", + "tls-plain", + "x509-plain", + "tls-sasl", + "x509-sasl" + ] + }, + { + "name": "286", + "meta-type": "enum", + "values": [ + "utf8", + "base64" + ] + }, + { + "name": "[287]", + "element-type": "287", + "meta-type": "array" + }, + { + "name": "287", + "tag": "type", + "variants": [ + { + "case": "number", + "type": "347" + }, + { + "case": "qcode", + "type": "348" + } + ], + "members": [ + { + "name": "type", + "type": "346" + } + ], + "meta-type": "object" + }, + { + "name": "288", + "meta-type": "enum", + "values": [ + "unavailable", + "disabled", + "enabled" + ] + }, + { + "name": "[289]", + "element-type": "289", + "meta-type": "array" + }, + { + "name": "289", + "tag": "type", + "variants": [ + { + "case": "abort", + "type": "350" + }, + { + "case": "block-dirty-bitmap-add", + "type": "351" + }, + { + "case": "block-dirty-bitmap-clear", + "type": "352" + }, + { + "case": "blockdev-backup", + "type": "353" + }, + { + "case": "blockdev-snapshot", + "type": "354" + }, + { + "case": "blockdev-snapshot-internal-sync", + "type": "355" + }, + { + "case": "blockdev-snapshot-sync", + "type": "356" + }, + { + "case": "drive-backup", + "type": "357" + } + ], + "members": [ + { + "name": "type", + "type": "349" + } + ], + "meta-type": "object" + }, + { + "name": "290", + "members": [ + { + "name": "completion-mode", + "default": null, + "type": "358" + } + ], + "meta-type": "object" + }, + { + "name": "291", + "meta-type": "enum", + "values": [ + "hyper-v" + ] + }, + { + "name": "292", + "members": [ + { + "name": "arg1", + "type": "int" + }, + { + "name": "arg2", + "type": "int" + }, + { + "name": "arg3", + "type": "int" + }, + { + "name": "arg4", + "type": "int" + }, + { + "name": "arg5", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "293", + "members": [ + { + "type": "48" + }, + { + "type": "str" + } + ], + "meta-type": "alternate" + }, + { + "name": "[294]", + "element-type": "294", + "meta-type": "array" + }, + { + "name": "294", + "members": [ + { + "name": "event", + "type": "359" + }, + { + "name": "state", + "default": null, + "type": "int" + }, + { + "name": "errno", + "default": null, + "type": "int" + }, + { + "name": "sector", + "default": null, + "type": "int" + }, + { + "name": "once", + "default": null, + "type": "bool" + }, + { + "name": "immediately", + "default": null, + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "[295]", + "element-type": "295", + "meta-type": "array" + }, + { + "name": "295", + "members": [ + { + "name": "event", + "type": "359" + }, + { + "name": "state", + "default": null, + "type": "int" + }, + { + "name": "new_state", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "296", + "meta-type": "enum", + "values": [ + "auto", + "on", + "off" + ] + }, + { + "name": "297", + "meta-type": "enum", + "values": [ + "threads", + "native" + ] + }, + { + "name": "[298]", + "element-type": "298", + "meta-type": "array" + }, + { + "name": "298", + "tag": "type", + "variants": [ + { + "case": "inet", + "type": "309" + }, + { + "case": "unix", + "type": "361" + }, + { + "case": "vsock", + "type": "362" + }, + { + "case": "fd", + "type": "363" + } + ], + "members": [ + { + "name": "type", + "type": "360" + } + ], + "meta-type": "object" + }, + { + "name": "299", + "meta-type": "enum", + "values": [ + "tcp", + "iser" + ] + }, + { + "name": "300", + "meta-type": "enum", + "values": [ + "crc32c", + "none", + "crc32c-none", + "none-crc32c" + ] + }, + { + "name": "301", + "members": [ + { + "name": "type", + "type": "364" + }, + { + "name": "host", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "302", + "members": [ + { + "type": "48" + }, + { + "type": "str" + }, + { + "type": "null" + } + ], + "meta-type": "alternate" + }, + { + "name": "303", + "members": [ + { + "type": "365" + }, + { + "type": "366" + } + ], + "meta-type": "alternate" + }, + { + "name": "304", + "tag": "format", + "variants": [ + { + "case": "aes", + "type": "368" + }, + { + "case": "luks", + "type": "369" + } + ], + "members": [ + { + "name": "format", + "type": "367" + } + ], + "meta-type": "object" + }, + { + "name": "305", + "tag": "format", + "variants": [ + { + "case": "aes", + "type": "368" + } + ], + "members": [ + { + "name": "format", + "type": "370" + } + ], + "meta-type": "object" + }, + { + "name": "[293]", + "element-type": "293", + "meta-type": "array" + }, + { + "name": "306", + "meta-type": "enum", + "values": [ + "quorum", + "fifo" + ] + }, + { + "name": "[307]", + "element-type": "307", + "meta-type": "array" + }, + { + "name": "307", + "members": [ + { + "name": "host", + "type": "str" + }, + { + "name": "port", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "308", + "meta-type": "enum", + "values": [ + "primary", + "secondary" + ] + }, + { + "name": "309", + "members": [ + { + "name": "host", + "type": "str" + }, + { + "name": "port", + "type": "str" + }, + { + "name": "numeric", + "default": null, + "type": "bool" + }, + { + "name": "to", + "default": null, + "type": "int" + }, + { + "name": "ipv4", + "default": null, + "type": "bool" + }, + { + "name": "ipv6", + "default": null, + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "310", + "meta-type": "enum", + "values": [ + "file", + "serial", + "parallel", + "pipe", + "socket", + "udp", + "pty", + "null", + "mux", + "msmouse", + "wctablet", + "braille", + "testdev", + "stdio", + "console", + "spicevmc", + "spiceport", + "vc", + "ringbuf", + "memory" + ] + }, + { + "name": "311", + "members": [ + { + "name": "data", + "type": "371" + } + ], + "meta-type": "object" + }, + { + "name": "312", + "members": [ + { + "name": "data", + "type": "372" + } + ], + "meta-type": "object" + }, + { + "name": "313", + "members": [ + { + "name": "data", + "type": "373" + } + ], + "meta-type": "object" + }, + { + "name": "314", + "members": [ + { + "name": "data", + "type": "374" + } + ], + "meta-type": "object" + }, + { + "name": "315", + "members": [ + { + "name": "data", + "type": "375" + } + ], + "meta-type": "object" + }, + { + "name": "316", + "members": [ + { + "name": "data", + "type": "376" + } + ], + "meta-type": "object" + }, + { + "name": "317", + "members": [ + { + "name": "data", + "type": "377" + } + ], + "meta-type": "object" + }, + { + "name": "318", + "members": [ + { + "name": "data", + "type": "378" + } + ], + "meta-type": "object" + }, + { + "name": "319", + "members": [ + { + "name": "data", + "type": "379" + } + ], + "meta-type": "object" + }, + { + "name": "320", + "members": [ + { + "name": "data", + "type": "380" + } + ], + "meta-type": "object" + }, + { + "name": "321", + "members": [ + { + "name": "data", + "type": "381" + } + ], + "meta-type": "object" + }, + { + "name": "322", + "meta-type": "enum", + "values": [ + "key", + "btn", + "rel", + "abs" + ] + }, + { + "name": "323", + "members": [ + { + "name": "data", + "type": "382" + } + ], + "meta-type": "object" + }, + { + "name": "324", + "members": [ + { + "name": "data", + "type": "383" + } + ], + "meta-type": "object" + }, + { + "name": "325", + "members": [ + { + "name": "data", + "type": "384" + } + ], + "meta-type": "object" + }, + { + "name": "null", + "json-type": "null", + "meta-type": "builtin" + }, + { + "name": "326", + "meta-type": "enum", + "values": [ + "inet", + "unix", + "vsock", + "fd" + ] + }, + { + "name": "327", + "members": [ + { + "name": "data", + "type": "309" + } + ], + "meta-type": "object" + }, + { + "name": "328", + "members": [ + { + "name": "data", + "type": "361" + } + ], + "meta-type": "object" + }, + { + "name": "329", + "members": [ + { + "name": "data", + "type": "362" + } + ], + "meta-type": "object" + }, + { + "name": "330", + "members": [ + { + "name": "data", + "type": "363" + } + ], + "meta-type": "object" + }, + { + "name": "331", + "meta-type": "enum", + "values": [ + "active", + "disabled", + "frozen" + ] + }, + { + "name": "[332]", + "element-type": "332", + "meta-type": "array" + }, + { + "name": "332", + "members": [ + { + "name": "interval_length", + "type": "int" + }, + { + "name": "min_rd_latency_ns", + "type": "int" + }, + { + "name": "max_rd_latency_ns", + "type": "int" + }, + { + "name": "avg_rd_latency_ns", + "type": "int" + }, + { + "name": "min_wr_latency_ns", + "type": "int" + }, + { + "name": "max_wr_latency_ns", + "type": "int" + }, + { + "name": "avg_wr_latency_ns", + "type": "int" + }, + { + "name": "min_flush_latency_ns", + "type": "int" + }, + { + "name": "max_flush_latency_ns", + "type": "int" + }, + { + "name": "avg_flush_latency_ns", + "type": "int" + }, + { + "name": "avg_rd_queue_depth", + "type": "number" + }, + { + "name": "avg_wr_queue_depth", + "type": "number" + } + ], + "meta-type": "object" + }, + { + "name": "333", + "meta-type": "enum", + "values": [ + "string", + "boolean", + "number", + "size" + ] + }, + { + "name": "334", + "members": [ + { + "name": "id", + "default": null, + "type": "str" + }, + { + "name": "addr", + "type": "int" + }, + { + "name": "size", + "type": "int" + }, + { + "name": "slot", + "type": "int" + }, + { + "name": "node", + "type": "int" + }, + { + "name": "memdev", + "type": "str" + }, + { + "name": "hotplugged", + "type": "bool" + }, + { + "name": "hotpluggable", + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "[57]", + "element-type": "57", + "meta-type": "array" + }, + { + "name": "335", + "tag": "type", + "variants": [ + { + "case": "qcow2", + "type": "386" + }, + { + "case": "vmdk", + "type": "387" + }, + { + "case": "luks", + "type": "388" + } + ], + "members": [ + { + "name": "type", + "type": "385" + } + ], + "meta-type": "object" + }, + { + "name": "336", + "members": [ + { + "name": "desc", + "default": null, + "type": "str" + }, + { + "name": "class", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "337", + "members": [ + { + "name": "device", + "type": "int" + }, + { + "name": "vendor", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "338", + "members": [ + { + "name": "bus", + "type": "389" + }, + { + "name": "devices", + "default": null, + "type": "[263]" + } + ], + "meta-type": "object" + }, + { + "name": "[339]", + "element-type": "339", + "meta-type": "array" + }, + { + "name": "339", + "members": [ + { + "name": "bar", + "type": "int" + }, + { + "name": "type", + "type": "str" + }, + { + "name": "address", + "type": "int" + }, + { + "name": "size", + "type": "int" + }, + { + "name": "prefetch", + "default": null, + "type": "bool" + }, + { + "name": "mem_type_64", + "default": null, + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "340", + "meta-type": "enum", + "values": [ + "string", + "number", + "int", + "boolean", + "null", + "object", + "array", + "value" + ] + }, + { + "name": "[341]", + "element-type": "341", + "meta-type": "array" + }, + { + "name": "341", + "members": [ + { + "name": "name", + "type": "str" + }, + { + "name": "type", + "type": "str" + }, + { + "name": "default", + "default": null, + "type": "any" + } + ], + "meta-type": "object" + }, + { + "name": "[342]", + "element-type": "342", + "meta-type": "array" + }, + { + "name": "342", + "members": [ + { + "name": "case", + "type": "str" + }, + { + "name": "type", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "[343]", + "element-type": "343", + "meta-type": "array" + }, + { + "name": "343", + "members": [ + { + "name": "type", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "344", + "meta-type": "enum", + "values": [ + "passthrough" + ] + }, + { + "name": "345", + "members": [ + { + "name": "data", + "type": "390" + } + ], + "meta-type": "object" + }, + { + "name": "346", + "meta-type": "enum", + "values": [ + "number", + "qcode" + ] + }, + { + "name": "347", + "members": [ + { + "name": "data", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "348", + "members": [ + { + "name": "data", + "type": "391" + } + ], + "meta-type": "object" + }, + { + "name": "349", + "meta-type": "enum", + "values": [ + "abort", + "block-dirty-bitmap-add", + "block-dirty-bitmap-clear", + "blockdev-backup", + "blockdev-snapshot", + "blockdev-snapshot-internal-sync", + "blockdev-snapshot-sync", + "drive-backup" + ] + }, + { + "name": "350", + "members": [ + { + "name": "data", + "type": "392" + } + ], + "meta-type": "object" + }, + { + "name": "351", + "members": [ + { + "name": "data", + "type": "36" + } + ], + "meta-type": "object" + }, + { + "name": "352", + "members": [ + { + "name": "data", + "type": "37" + } + ], + "meta-type": "object" + }, + { + "name": "353", + "members": [ + { + "name": "data", + "type": "49" + } + ], + "meta-type": "object" + }, + { + "name": "354", + "members": [ + { + "name": "data", + "type": "55" + } + ], + "meta-type": "object" + }, + { + "name": "355", + "members": [ + { + "name": "data", + "type": "58" + } + ], + "meta-type": "object" + }, + { + "name": "356", + "members": [ + { + "name": "data", + "type": "59" + } + ], + "meta-type": "object" + }, + { + "name": "357", + "members": [ + { + "name": "data", + "type": "76" + } + ], + "meta-type": "object" + }, + { + "name": "358", + "meta-type": "enum", + "values": [ + "individual", + "grouped" + ] + }, + { + "name": "359", + "meta-type": "enum", + "values": [ + "l1_update", + "l1_grow_alloc_table", + "l1_grow_write_table", + "l1_grow_activate_table", + "l2_load", + "l2_update", + "l2_update_compressed", + "l2_alloc_cow_read", + "l2_alloc_write", + "read_aio", + "read_backing_aio", + "read_compressed", + "write_aio", + "write_compressed", + "vmstate_load", + "vmstate_save", + "cow_read", + "cow_write", + "reftable_load", + "reftable_grow", + "reftable_update", + "refblock_load", + "refblock_update", + "refblock_update_part", + "refblock_alloc", + "refblock_alloc_hookup", + "refblock_alloc_write", + "refblock_alloc_write_blocks", + "refblock_alloc_write_table", + "refblock_alloc_switch_table", + "cluster_alloc", + "cluster_alloc_bytes", + "cluster_free", + "flush_to_os", + "flush_to_disk", + "pwritev_rmw_head", + "pwritev_rmw_after_head", + "pwritev_rmw_tail", + "pwritev_rmw_after_tail", + "pwritev", + "pwritev_zero", + "pwritev_done", + "empty_image_prepare" + ] + }, + { + "name": "360", + "meta-type": "enum", + "values": [ + "inet", + "unix", + "vsock", + "fd" + ] + }, + { + "name": "361", + "members": [ + { + "name": "path", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "362", + "members": [ + { + "name": "cid", + "type": "str" + }, + { + "name": "port", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "363", + "members": [ + { + "name": "str", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "364", + "meta-type": "enum", + "values": [ + "inet" + ] + }, + { + "name": "365", + "members": [ + { + "name": "template", + "default": null, + "type": "366" + }, + { + "name": "main-header", + "default": null, + "type": "bool" + }, + { + "name": "active-l1", + "default": null, + "type": "bool" + }, + { + "name": "active-l2", + "default": null, + "type": "bool" + }, + { + "name": "refcount-table", + "default": null, + "type": "bool" + }, + { + "name": "refcount-block", + "default": null, + "type": "bool" + }, + { + "name": "snapshot-table", + "default": null, + "type": "bool" + }, + { + "name": "inactive-l1", + "default": null, + "type": "bool" + }, + { + "name": "inactive-l2", + "default": null, + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "366", + "meta-type": "enum", + "values": [ + "none", + "constant", + "cached", + "all" + ] + }, + { + "name": "367", + "meta-type": "enum", + "values": [ + "aes", + "luks" + ] + }, + { + "name": "368", + "members": [ + { + "name": "key-secret", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "369", + "members": [ + { + "name": "key-secret", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "370", + "meta-type": "enum", + "values": [ + "aes" + ] + }, + { + "name": "371", + "members": [ + { + "name": "logfile", + "default": null, + "type": "str" + }, + { + "name": "logappend", + "default": null, + "type": "bool" + }, + { + "name": "in", + "default": null, + "type": "str" + }, + { + "name": "out", + "type": "str" + }, + { + "name": "append", + "default": null, + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "372", + "members": [ + { + "name": "logfile", + "default": null, + "type": "str" + }, + { + "name": "logappend", + "default": null, + "type": "bool" + }, + { + "name": "device", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "373", + "members": [ + { + "name": "logfile", + "default": null, + "type": "str" + }, + { + "name": "logappend", + "default": null, + "type": "bool" + }, + { + "name": "addr", + "type": "236" + }, + { + "name": "tls-creds", + "default": null, + "type": "str" + }, + { + "name": "server", + "default": null, + "type": "bool" + }, + { + "name": "wait", + "default": null, + "type": "bool" + }, + { + "name": "nodelay", + "default": null, + "type": "bool" + }, + { + "name": "telnet", + "default": null, + "type": "bool" + }, + { + "name": "tn3270", + "default": null, + "type": "bool" + }, + { + "name": "reconnect", + "default": null, + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "374", + "members": [ + { + "name": "logfile", + "default": null, + "type": "str" + }, + { + "name": "logappend", + "default": null, + "type": "bool" + }, + { + "name": "remote", + "type": "236" + }, + { + "name": "local", + "default": null, + "type": "236" + } + ], + "meta-type": "object" + }, + { + "name": "375", + "members": [ + { + "name": "logfile", + "default": null, + "type": "str" + }, + { + "name": "logappend", + "default": null, + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "376", + "members": [ + { + "name": "logfile", + "default": null, + "type": "str" + }, + { + "name": "logappend", + "default": null, + "type": "bool" + }, + { + "name": "chardev", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "377", + "members": [ + { + "name": "logfile", + "default": null, + "type": "str" + }, + { + "name": "logappend", + "default": null, + "type": "bool" + }, + { + "name": "signal", + "default": null, + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "378", + "members": [ + { + "name": "logfile", + "default": null, + "type": "str" + }, + { + "name": "logappend", + "default": null, + "type": "bool" + }, + { + "name": "type", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "379", + "members": [ + { + "name": "logfile", + "default": null, + "type": "str" + }, + { + "name": "logappend", + "default": null, + "type": "bool" + }, + { + "name": "fqdn", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "380", + "members": [ + { + "name": "logfile", + "default": null, + "type": "str" + }, + { + "name": "logappend", + "default": null, + "type": "bool" + }, + { + "name": "width", + "default": null, + "type": "int" + }, + { + "name": "height", + "default": null, + "type": "int" + }, + { + "name": "cols", + "default": null, + "type": "int" + }, + { + "name": "rows", + "default": null, + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "381", + "members": [ + { + "name": "logfile", + "default": null, + "type": "str" + }, + { + "name": "logappend", + "default": null, + "type": "bool" + }, + { + "name": "size", + "default": null, + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "382", + "members": [ + { + "name": "key", + "type": "287" + }, + { + "name": "down", + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "383", + "members": [ + { + "name": "button", + "type": "393" + }, + { + "name": "down", + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "384", + "members": [ + { + "name": "axis", + "type": "394" + }, + { + "name": "value", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "385", + "meta-type": "enum", + "values": [ + "qcow2", + "vmdk", + "luks" + ] + }, + { + "name": "386", + "members": [ + { + "name": "data", + "type": "395" + } + ], + "meta-type": "object" + }, + { + "name": "387", + "members": [ + { + "name": "data", + "type": "396" + } + ], + "meta-type": "object" + }, + { + "name": "388", + "members": [ + { + "name": "data", + "type": "397" + } + ], + "meta-type": "object" + }, + { + "name": "389", + "members": [ + { + "name": "number", + "type": "int" + }, + { + "name": "secondary", + "type": "int" + }, + { + "name": "subordinate", + "type": "int" + }, + { + "name": "io_range", + "type": "398" + }, + { + "name": "memory_range", + "type": "398" + }, + { + "name": "prefetchable_range", + "type": "398" + } + ], + "meta-type": "object" + }, + { + "name": "390", + "members": [ + { + "name": "path", + "default": null, + "type": "str" + }, + { + "name": "cancel-path", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "391", + "meta-type": "enum", + "values": [ + "unmapped", + "shift", + "shift_r", + "alt", + "alt_r", + "ctrl", + "ctrl_r", + "menu", + "esc", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "0", + "minus", + "equal", + "backspace", + "tab", + "q", + "w", + "e", + "r", + "t", + "y", + "u", + "i", + "o", + "p", + "bracket_left", + "bracket_right", + "ret", + "a", + "s", + "d", + "f", + "g", + "h", + "j", + "k", + "l", + "semicolon", + "apostrophe", + "grave_accent", + "backslash", + "z", + "x", + "c", + "v", + "b", + "n", + "m", + "comma", + "dot", + "slash", + "asterisk", + "spc", + "caps_lock", + "f1", + "f2", + "f3", + "f4", + "f5", + "f6", + "f7", + "f8", + "f9", + "f10", + "num_lock", + "scroll_lock", + "kp_divide", + "kp_multiply", + "kp_subtract", + "kp_add", + "kp_enter", + "kp_decimal", + "sysrq", + "kp_0", + "kp_1", + "kp_2", + "kp_3", + "kp_4", + "kp_5", + "kp_6", + "kp_7", + "kp_8", + "kp_9", + "less", + "f11", + "f12", + "print", + "home", + "pgup", + "pgdn", + "end", + "left", + "up", + "down", + "right", + "insert", + "delete", + "stop", + "again", + "props", + "undo", + "front", + "copy", + "open", + "paste", + "find", + "cut", + "lf", + "help", + "meta_l", + "meta_r", + "compose", + "pause", + "ro", + "hiragana", + "henkan", + "yen", + "kp_comma", + "kp_equals", + "power", + "sleep", + "wake", + "audionext", + "audioprev", + "audiostop", + "audioplay", + "audiomute", + "volumeup", + "volumedown", + "mediaselect", + "mail", + "calculator", + "computer", + "ac_home", + "ac_back", + "ac_forward", + "ac_refresh", + "ac_bookmarks" + ] + }, + { + "name": "392", + "members": [ + ], + "meta-type": "object" + }, + { + "name": "393", + "meta-type": "enum", + "values": [ + "left", + "middle", + "right", + "wheel-up", + "wheel-down", + "side", + "extra" + ] + }, + { + "name": "394", + "meta-type": "enum", + "values": [ + "x", + "y" + ] + }, + { + "name": "395", + "members": [ + { + "name": "compat", + "type": "str" + }, + { + "name": "lazy-refcounts", + "default": null, + "type": "bool" + }, + { + "name": "corrupt", + "default": null, + "type": "bool" + }, + { + "name": "refcount-bits", + "type": "int" + }, + { + "name": "encrypt", + "default": null, + "type": "399" + } + ], + "meta-type": "object" + }, + { + "name": "396", + "members": [ + { + "name": "create-type", + "type": "str" + }, + { + "name": "cid", + "type": "int" + }, + { + "name": "parent-cid", + "type": "int" + }, + { + "name": "extents", + "type": "[261]" + } + ], + "meta-type": "object" + }, + { + "name": "397", + "members": [ + { + "name": "cipher-alg", + "type": "400" + }, + { + "name": "cipher-mode", + "type": "401" + }, + { + "name": "ivgen-alg", + "type": "402" + }, + { + "name": "ivgen-hash-alg", + "default": null, + "type": "403" + }, + { + "name": "hash-alg", + "type": "403" + }, + { + "name": "payload-offset", + "type": "int" + }, + { + "name": "master-key-iters", + "type": "int" + }, + { + "name": "uuid", + "type": "str" + }, + { + "name": "slots", + "type": "[404]" + } + ], + "meta-type": "object" + }, + { + "name": "398", + "members": [ + { + "name": "base", + "type": "int" + }, + { + "name": "limit", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "399", + "tag": "format", + "variants": [ + { + "case": "aes", + "type": "405" + }, + { + "case": "luks", + "type": "397" + } + ], + "members": [ + { + "name": "format", + "type": "367" + } + ], + "meta-type": "object" + }, + { + "name": "[261]", + "element-type": "261", + "meta-type": "array" + }, + { + "name": "400", + "meta-type": "enum", + "values": [ + "aes-128", + "aes-192", + "aes-256", + "des-rfb", + "3des", + "cast5-128", + "serpent-128", + "serpent-192", + "serpent-256", + "twofish-128", + "twofish-192", + "twofish-256" + ] + }, + { + "name": "401", + "meta-type": "enum", + "values": [ + "ecb", + "cbc", + "xts", + "ctr" + ] + }, + { + "name": "402", + "meta-type": "enum", + "values": [ + "plain", + "plain64", + "essiv" + ] + }, + { + "name": "403", + "meta-type": "enum", + "values": [ + "md5", + "sha1", + "sha224", + "sha256", + "sha384", + "sha512", + "ripemd160" + ] + }, + { + "name": "[404]", + "element-type": "404", + "meta-type": "array" + }, + { + "name": "404", + "members": [ + { + "name": "active", + "type": "bool" + }, + { + "name": "iters", + "default": null, + "type": "int" + }, + { + "name": "stripes", + "default": null, + "type": "int" + }, + { + "name": "key-offset", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "405", + "members": [ + ], + "meta-type": "object" + } + ], + "id": "libvirt-48" +} + +{ + "return": { + "model": { + "name": "base", + "props": { + "cmov": true, + "ia64": false, + "aes": true, + "mmx": true, + "rdpid": false, + "arat": true, + "pause-filter": false, + "xsavec": false, + "osxsave": false, + "kvm-asyncpf": true, + "perfctr-core": false, + "mpx": false, + "pbe": false, + "avx512cd": false, + "decodeassists": false, + "sse4.1": true, + "family": 6, + "avx512f": false, + "msr": true, + "mce": true, + "mca": true, + "xcrypt": false, + "min-level": 13, + "xgetbv1": false, + "cid": false, + "ds": false, + "fxsr": true, + "xsaveopt": true, + "xtpr": false, + "avx512vl": false, + "avx512-vpopcntdq": false, + "phe": false, + "extapic": false, + "3dnowprefetch": false, + "cr8legacy": false, + "xcrypt-en": false, + "pn": false, + "dca": false, + "vendor": "GenuineIntel", + "pku": false, + "smx": false, + "cmp-legacy": false, + "avx512-4fmaps": false, + "vmcb-clean": false, + "hle": false, + "3dnowext": false, + "npt": false, + "clwb": false, + "lbrv": false, + "adx": false, + "ss": true, + "pni": true, + "svm-lock": false, + "smep": true, + "smap": false, + "pfthreshold": false, + "x2apic": true, + "avx512vbmi": false, + "flushbyasid": false, + "f16c": true, + "ace2-en": false, + "pae": true, + "pat": true, + "sse": true, + "phe-en": false, + "kvm-nopiodelay": true, + "tm": false, + "kvmclock-stable-bit": true, + "hypervisor": true, + "pcommit": false, + "syscall": true, + "avx512dq": false, + "svm": false, + "invtsc": false, + "sse2": true, + "est": false, + "avx512ifma": false, + "tm2": false, + "kvm-pv-eoi": true, + "cx8": true, + "kvm-mmu": false, + "sse4.2": true, + "pge": true, + "pdcm": false, + "model": 60, + "movbe": true, + "nrip-save": false, + "ssse3": true, + "sse4a": false, + "invpcid": true, + "pdpe1gb": true, + "tsc-deadline": true, + "fma": true, + "cx16": true, + "de": true, + "stepping": 3, + "xsave": true, + "clflush": true, + "skinit": false, + "tsc": true, + "tce": false, + "fpu": true, + "ds-cpl": false, + "ibs": false, + "fma4": false, + "la57": false, + "osvw": false, + "apic": true, + "pmm": false, + "tsc-adjust": true, + "kvm-steal-time": true, + "kvmclock": true, + "lwp": false, + "xop": false, + "avx": true, + "ospke": false, + "acpi": false, + "avx512bw": false, + "ace2": false, + "fsgsbase": true, + "ht": false, + "nx": true, + "pclmulqdq": true, + "mmxext": false, + "popcnt": true, + "xsaves": false, + "lm": true, + "umip": false, + "pse": true, + "avx2": true, + "sep": true, + "nodeid-msr": false, + "misalignsse": false, + "min-xlevel": 2147483656, + "bmi1": true, + "bmi2": true, + "kvm-pv-unhalt": true, + "tsc-scale": false, + "topoext": false, + "clflushopt": false, + "monitor": false, + "avx512er": false, + "pmm-en": false, + "pcid": true, + "3dnow": false, + "erms": true, + "lahf-lm": true, + "fxsr-opt": false, + "xstore": false, + "rtm": false, + "lmce": true, + "perfctr-nb": false, + "rdrand": true, + "rdseed": false, + "avx512-4vnniw": false, + "vme": true, + "vmx": true, + "dtes64": false, + "mtrr": true, + "rdtscp": true, + "pse36": true, + "tbm": false, + "wdt": false, + "model-id": "Intel(R) Core(TM) i7-4810MQ CPU @ 2.80GHz", + "sha-ni": false, + "abm": true, + "avx512pf": false, + "xstore-en": false + } + } + }, + "id": "libvirt-49" +} + +{ + "return": { + "model": { + "name": "base", + "props": { + "phys-bits": 0, + "core-id": -1, + "xlevel": 2147483656, + "cmov": true, + "ia64": false, + "aes": true, + "mmx": true, + "arat": true, + "rdpid": false, + "pause-filter": false, + "xsavec": false, + "osxsave": false, + "tsc-frequency": 0, + "xd": true, + "hv-vendor-id": "", + "kvm-asyncpf": true, + "kvm_asyncpf": true, + "perfctr_core": false, + "perfctr-core": false, + "mpx": false, + "avx512cd": false, + "decodeassists": false, + "pbe": false, + "sse4_1": true, + "sse4.1": true, + "sse4-1": true, + "family": 6, + "vmware-cpuid-freq": true, + "avx512f": false, + "xcrypt": false, + "hv-runtime": false, + "msr": true, + "mce": true, + "mca": true, + "thread-id": -1, + "min-level": 13, + "xgetbv1": false, + "cid": false, + "hv-relaxed": false, + "fxsr": true, + "ds": false, + "hv-crash": false, + "xsaveopt": true, + "xtpr": false, + "avx512-vpopcntdq": false, + "phe": false, + "avx512vl": false, + "extapic": false, + "3dnowprefetch": false, + "cr8legacy": false, + "cpuid-0xb": true, + "xcrypt-en": false, + "kvm_pv_eoi": true, + "apic-id": 4294967295, + "pn": false, + "dca": false, + "vendor": "GenuineIntel", + "pku": false, + "smx": false, + "cmp-legacy": false, + "cmp_legacy": false, + "node-id": -1, + "avx512-4fmaps": false, + "vmcb-clean": false, + "vmcb_clean": false, + "3dnowext": false, + "hle": false, + "npt": false, + "memory": "/machine/unattached/system[0]", + "clwb": false, + "lbrv": false, + "adx": false, + "ss": true, + "pni": true, + "svm_lock": false, + "svm-lock": false, + "smep": true, + "pfthreshold": false, + "smap": false, + "x2apic": true, + "avx512vbmi": false, + "hv-stimer": false, + "i64": true, + "flushbyasid": false, + "f16c": true, + "ace2-en": false, + "pat": true, + "pae": true, + "sse": true, + "phe-en": false, + "kvm-nopiodelay": true, + "kvm_nopiodelay": true, + "tm": false, + "kvmclock-stable-bit": true, + "hypervisor": true, + "socket-id": -1, + "pcommit": false, + "syscall": true, + "level": 13, + "avx512dq": false, + "svm": false, + "full-cpuid-auto-level": true, + "hv-reset": false, + "invtsc": false, + "sse3": true, + "sse2": true, + "est": false, + "avx512ifma": false, + "tm2": false, + "kvm-pv-eoi": true, + "cx8": true, + "kvm-mmu": false, + "kvm_mmu": false, + "sse4_2": true, + "sse4.2": true, + "sse4-2": true, + "pge": true, + "fill-mtrr-mask": true, + "pdcm": false, + "nodeid_msr": false, + "model": 60, + "movbe": true, + "nrip-save": false, + "nrip_save": false, + "sse4a": false, + "ssse3": true, + "kvm_pv_unhalt": true, + "invpcid": true, + "pdpe1gb": true, + "tsc-deadline": true, + "fma": true, + "cx16": true, + "de": true, + "enforce": false, + "stepping": 3, + "xsave": true, + "clflush": true, + "skinit": false, + "tce": false, + "tsc": true, + "fpu": true, + "ds-cpl": false, + "ds_cpl": false, + "ibs": false, + "host-phys-bits": false, + "fma4": false, + "la57": false, + "osvw": false, + "check": true, + "hv-spinlocks": -1, + "pmm": false, + "apic": true, + "pmu": false, + "min-xlevel2": 0, + "tsc-adjust": true, + "tsc_adjust": true, + "kvm-steal-time": true, + "kvm_steal_time": true, + "kvmclock": true, + "l3-cache": true, + "lwp": false, + "xop": false, + "avx": true, + "ospke": false, + "ace2": false, + "acpi": false, + "avx512bw": false, + "hv-vapic": false, + "fsgsbase": true, + "ht": false, + "nx": true, + "pclmulqdq": true, + "mmxext": false, + "popcnt": true, + "xsaves": false, + "tcg-cpuid": true, + "lm": true, + "umip": false, + "avx2": true, + "pse": true, + "sep": true, + "pclmuldq": true, + "nodeid-msr": false, + "kvm": true, + "misalignsse": false, + "min-xlevel": 2147483656, + "bmi2": true, + "bmi1": true, + "kvm-pv-unhalt": true, + "realized": false, + "tsc_scale": false, + "tsc-scale": false, + "topoext": false, + "hv-vpindex": false, + "xlevel2": 0, + "clflushopt": false, + "kvm-no-smi-migration": false, + "monitor": false, + "avx512er": false, + "pmm-en": false, + "pcid": true, + "3dnow": false, + "erms": true, + "lahf-lm": true, + "lahf_lm": true, + "xstore": false, + "hv-synic": false, + "fxsr-opt": false, + "fxsr_opt": false, + "rtm": false, + "lmce": true, + "hv-time": false, + "perfctr-nb": false, + "perfctr_nb": false, + "ffxsr": false, + "rdrand": true, + "rdseed": false, + "avx512-4vnniw": false, + "vme": true, + "vmx": true, + "dtes64": false, + "mtrr": true, + "rdtscp": true, + "pse36": true, + "tbm": false, + "wdt": false, + "pause_filter": false, + "model-id": "Intel(R) Core(TM) i7-4810MQ CPU @ 2.80GHz", + "sha-ni": false, + "abm": true, + "avx512pf": false, + "xstore-en": false + } + } + }, + "id": "libvirt-50" +} + +{ + "return": { + "model": { + "name": "base", + "props": { + "cmov": true, + "ia64": false, + "aes": true, + "mmx": true, + "rdpid": false, + "arat": true, + "pause-filter": false, + "xsavec": false, + "osxsave": false, + "kvm-asyncpf": true, + "perfctr-core": false, + "mpx": false, + "pbe": false, + "avx512cd": false, + "decodeassists": false, + "sse4.1": true, + "family": 6, + "avx512f": false, + "msr": true, + "mce": true, + "mca": true, + "xcrypt": false, + "min-level": 13, + "xgetbv1": false, + "cid": false, + "ds": false, + "fxsr": true, + "xsaveopt": true, + "xtpr": false, + "avx512vl": false, + "avx512-vpopcntdq": false, + "phe": false, + "extapic": false, + "3dnowprefetch": false, + "cr8legacy": false, + "xcrypt-en": false, + "pn": false, + "dca": false, + "vendor": "GenuineIntel", + "pku": false, + "smx": false, + "cmp-legacy": false, + "avx512-4fmaps": false, + "vmcb-clean": false, + "hle": false, + "3dnowext": false, + "npt": false, + "clwb": false, + "lbrv": false, + "adx": false, + "ss": true, + "pni": true, + "svm-lock": false, + "smep": true, + "smap": false, + "pfthreshold": false, + "x2apic": true, + "avx512vbmi": false, + "flushbyasid": false, + "f16c": true, + "ace2-en": false, + "pae": true, + "pat": true, + "sse": true, + "phe-en": false, + "kvm-nopiodelay": true, + "tm": false, + "kvmclock-stable-bit": true, + "hypervisor": true, + "pcommit": false, + "syscall": true, + "avx512dq": false, + "svm": false, + "invtsc": true, + "sse2": true, + "est": false, + "avx512ifma": false, + "tm2": false, + "kvm-pv-eoi": true, + "cx8": true, + "kvm-mmu": false, + "sse4.2": true, + "pge": true, + "pdcm": false, + "model": 60, + "movbe": true, + "nrip-save": false, + "ssse3": true, + "sse4a": false, + "invpcid": true, + "pdpe1gb": true, + "tsc-deadline": true, + "fma": true, + "cx16": true, + "de": true, + "stepping": 3, + "xsave": true, + "clflush": true, + "skinit": false, + "tsc": true, + "tce": false, + "fpu": true, + "ds-cpl": false, + "ibs": false, + "fma4": false, + "la57": false, + "osvw": false, + "apic": true, + "pmm": false, + "tsc-adjust": true, + "kvm-steal-time": true, + "kvmclock": true, + "lwp": false, + "xop": false, + "avx": true, + "ospke": false, + "acpi": false, + "avx512bw": false, + "ace2": false, + "fsgsbase": true, + "ht": false, + "nx": true, + "pclmulqdq": true, + "mmxext": false, + "popcnt": true, + "xsaves": false, + "lm": true, + "umip": false, + "pse": true, + "avx2": true, + "sep": true, + "nodeid-msr": false, + "misalignsse": false, + "min-xlevel": 2147483656, + "bmi1": true, + "bmi2": true, + "kvm-pv-unhalt": true, + "tsc-scale": false, + "topoext": false, + "clflushopt": false, + "monitor": false, + "avx512er": false, + "pmm-en": false, + "pcid": true, + "3dnow": false, + "erms": true, + "lahf-lm": true, + "fxsr-opt": false, + "xstore": false, + "rtm": false, + "lmce": true, + "perfctr-nb": false, + "rdrand": true, + "rdseed": false, + "avx512-4vnniw": false, + "vme": true, + "vmx": true, + "dtes64": false, + "mtrr": true, + "rdtscp": true, + "pse36": true, + "tbm": false, + "wdt": false, + "model-id": "Intel(R) Core(TM) i7-4810MQ CPU @ 2.80GHz", + "sha-ni": false, + "abm": true, + "avx512pf": false, + "xstore-en": false + } + } + }, + "id": "libvirt-51" +} + +{ + "return": { + "model": { + "name": "base", + "props": { + "phys-bits": 0, + "core-id": -1, + "xlevel": 2147483656, + "cmov": true, + "ia64": false, + "aes": true, + "mmx": true, + "arat": true, + "rdpid": false, + "pause-filter": false, + "xsavec": false, + "osxsave": false, + "tsc-frequency": 0, + "xd": true, + "hv-vendor-id": "", + "kvm-asyncpf": true, + "kvm_asyncpf": true, + "perfctr_core": false, + "perfctr-core": false, + "mpx": false, + "avx512cd": false, + "decodeassists": false, + "pbe": false, + "sse4_1": true, + "sse4.1": true, + "sse4-1": true, + "family": 6, + "vmware-cpuid-freq": true, + "avx512f": false, + "xcrypt": false, + "hv-runtime": false, + "msr": true, + "mce": true, + "mca": true, + "thread-id": -1, + "min-level": 13, + "xgetbv1": false, + "cid": false, + "hv-relaxed": false, + "fxsr": true, + "ds": false, + "hv-crash": false, + "xsaveopt": true, + "xtpr": false, + "avx512-vpopcntdq": false, + "phe": false, + "avx512vl": false, + "extapic": false, + "3dnowprefetch": false, + "cr8legacy": false, + "cpuid-0xb": true, + "xcrypt-en": false, + "kvm_pv_eoi": true, + "apic-id": 4294967295, + "pn": false, + "dca": false, + "vendor": "GenuineIntel", + "pku": false, + "smx": false, + "cmp-legacy": false, + "cmp_legacy": false, + "node-id": -1, + "avx512-4fmaps": false, + "vmcb-clean": false, + "vmcb_clean": false, + "3dnowext": false, + "hle": false, + "npt": false, + "memory": "/machine/unattached/system[0]", + "clwb": false, + "lbrv": false, + "adx": false, + "ss": true, + "pni": true, + "svm_lock": false, + "svm-lock": false, + "smep": true, + "pfthreshold": false, + "smap": false, + "x2apic": true, + "avx512vbmi": false, + "hv-stimer": false, + "i64": true, + "flushbyasid": false, + "f16c": true, + "ace2-en": false, + "pat": true, + "pae": true, + "sse": true, + "phe-en": false, + "kvm-nopiodelay": true, + "kvm_nopiodelay": true, + "tm": false, + "kvmclock-stable-bit": true, + "hypervisor": true, + "socket-id": -1, + "pcommit": false, + "syscall": true, + "level": 13, + "avx512dq": false, + "svm": false, + "full-cpuid-auto-level": true, + "hv-reset": false, + "invtsc": true, + "sse3": true, + "sse2": true, + "est": false, + "avx512ifma": false, + "tm2": false, + "kvm-pv-eoi": true, + "cx8": true, + "kvm-mmu": false, + "kvm_mmu": false, + "sse4_2": true, + "sse4.2": true, + "sse4-2": true, + "pge": true, + "fill-mtrr-mask": true, + "pdcm": false, + "nodeid_msr": false, + "model": 60, + "movbe": true, + "nrip-save": false, + "nrip_save": false, + "sse4a": false, + "ssse3": true, + "kvm_pv_unhalt": true, + "invpcid": true, + "pdpe1gb": true, + "tsc-deadline": true, + "fma": true, + "cx16": true, + "de": true, + "enforce": false, + "stepping": 3, + "xsave": true, + "clflush": true, + "skinit": false, + "tce": false, + "tsc": true, + "fpu": true, + "ds-cpl": false, + "ds_cpl": false, + "ibs": false, + "host-phys-bits": false, + "fma4": false, + "la57": false, + "osvw": false, + "check": true, + "hv-spinlocks": -1, + "pmm": false, + "apic": true, + "pmu": false, + "min-xlevel2": 0, + "tsc-adjust": true, + "tsc_adjust": true, + "kvm-steal-time": true, + "kvm_steal_time": true, + "kvmclock": true, + "l3-cache": true, + "lwp": false, + "xop": false, + "avx": true, + "ospke": false, + "ace2": false, + "acpi": false, + "avx512bw": false, + "hv-vapic": false, + "fsgsbase": true, + "ht": false, + "nx": true, + "pclmulqdq": true, + "mmxext": false, + "popcnt": true, + "xsaves": false, + "tcg-cpuid": true, + "lm": true, + "umip": false, + "avx2": true, + "pse": true, + "sep": true, + "pclmuldq": true, + "nodeid-msr": false, + "kvm": true, + "misalignsse": false, + "min-xlevel": 2147483656, + "bmi2": true, + "bmi1": true, + "kvm-pv-unhalt": true, + "realized": false, + "tsc_scale": false, + "tsc-scale": false, + "topoext": false, + "hv-vpindex": false, + "xlevel2": 0, + "clflushopt": false, + "kvm-no-smi-migration": false, + "monitor": false, + "avx512er": false, + "pmm-en": false, + "pcid": true, + "3dnow": false, + "erms": true, + "lahf-lm": true, + "lahf_lm": true, + "xstore": false, + "hv-synic": false, + "fxsr-opt": false, + "fxsr_opt": false, + "rtm": false, + "lmce": true, + "hv-time": false, + "perfctr-nb": false, + "perfctr_nb": false, + "ffxsr": false, + "rdrand": true, + "rdseed": false, + "avx512-4vnniw": false, + "vme": true, + "vmx": true, + "dtes64": false, + "mtrr": true, + "rdtscp": true, + "pse36": true, + "tbm": false, + "wdt": false, + "pause_filter": false, + "model-id": "Intel(R) Core(TM) i7-4810MQ CPU @ 2.80GHz", + "sha-ni": false, + "abm": true, + "avx512pf": false, + "xstore-en": false + } + } + }, + "id": "libvirt-52" +} + +{ + "return": { + }, + "id": "libvirt-1" +} + +{ + "return": [ + { + "name": "max", + "typename": "max-x86_64-cpu", + "unavailable-features": [ + ], + "static": false, + "migration-safe": false + }, + { + "name": "host", + "typename": "host-x86_64-cpu", + "unavailable-features": [ + "kvm" + ], + "static": false, + "migration-safe": false + }, + { + "name": "base", + "typename": "base-x86_64-cpu", + "unavailable-features": [ + ], + "static": true, + "migration-safe": true + }, + { + "name": "qemu64", + "typename": "qemu64-x86_64-cpu", + "unavailable-features": [ + ], + "static": false, + "migration-safe": true + }, + { + "name": "qemu32", + "typename": "qemu32-x86_64-cpu", + "unavailable-features": [ + ], + "static": false, + "migration-safe": true + }, + { + "name": "phenom", + "typename": "phenom-x86_64-cpu", + "unavailable-features": [ + "fxsr-opt", + "npt" + ], + "static": false, + "migration-safe": true + }, + { + "name": "pentium3", + "typename": "pentium3-x86_64-cpu", + "unavailable-features": [ + ], + "static": false, + "migration-safe": true + }, + { + "name": "pentium2", + "typename": "pentium2-x86_64-cpu", + "unavailable-features": [ + ], + "static": false, + "migration-safe": true + }, + { + "name": "pentium", + "typename": "pentium-x86_64-cpu", + "unavailable-features": [ + ], + "static": false, + "migration-safe": true + }, + { + "name": "n270", + "typename": "n270-x86_64-cpu", + "unavailable-features": [ + ], + "static": false, + "migration-safe": true + }, + { + "name": "kvm64", + "typename": "kvm64-x86_64-cpu", + "unavailable-features": [ + ], + "static": false, + "migration-safe": true + }, + { + "name": "kvm32", + "typename": "kvm32-x86_64-cpu", + "unavailable-features": [ + ], + "static": false, + "migration-safe": true + }, + { + "name": "coreduo", + "typename": "coreduo-x86_64-cpu", + "unavailable-features": [ + ], + "static": false, + "migration-safe": true + }, + { + "name": "core2duo", + "typename": "core2duo-x86_64-cpu", + "unavailable-features": [ + ], + "static": false, + "migration-safe": true + }, + { + "name": "athlon", + "typename": "athlon-x86_64-cpu", + "unavailable-features": [ + ], + "static": false, + "migration-safe": true + }, + { + "name": "Westmere", + "typename": "Westmere-x86_64-cpu", + "unavailable-features": [ + ], + "static": false, + "migration-safe": true + }, + { + "name": "Skylake-Server", + "typename": "Skylake-Server-x86_64-cpu", + "unavailable-features": [ + "fma", + "pcid", + "x2apic", + "tsc-deadline", + "avx", + "f16c", + "rdrand", + "hle", + "avx2", + "invpcid", + "rtm", + "avx512f", + "avx512dq", + "rdseed", + "avx512cd", + "avx512bw", + "avx512vl", + "3dnowprefetch", + "xsavec" + ], + "static": false, + "migration-safe": true + }, + { + "name": "Skylake-Client", + "typename": "Skylake-Client-x86_64-cpu", + "unavailable-features": [ + "fma", + "pcid", + "x2apic", + "tsc-deadline", + "avx", + "f16c", + "rdrand", + "hle", + "avx2", + "invpcid", + "rtm", + "rdseed", + "3dnowprefetch", + "xsavec" + ], + "static": false, + "migration-safe": true + }, + { + "name": "SandyBridge", + "typename": "SandyBridge-x86_64-cpu", + "unavailable-features": [ + "x2apic", + "tsc-deadline", + "avx" + ], + "static": false, + "migration-safe": true + }, + { + "name": "Penryn", + "typename": "Penryn-x86_64-cpu", + "unavailable-features": [ + ], + "static": false, + "migration-safe": true + }, + { + "name": "Opteron_G5", + "typename": "Opteron_G5-x86_64-cpu", + "unavailable-features": [ + "fma", + "avx", + "f16c", + "misalignsse", + "3dnowprefetch", + "xop", + "fma4", + "tbm" + ], + "static": false, + "migration-safe": true + }, + { + "name": "Opteron_G4", + "typename": "Opteron_G4-x86_64-cpu", + "unavailable-features": [ + "avx", + "misalignsse", + "3dnowprefetch", + "xop", + "fma4" + ], + "static": false, + "migration-safe": true + }, + { + "name": "Opteron_G3", + "typename": "Opteron_G3-x86_64-cpu", + "unavailable-features": [ + "misalignsse" + ], + "static": false, + "migration-safe": true + }, + { + "name": "Opteron_G2", + "typename": "Opteron_G2-x86_64-cpu", + "unavailable-features": [ + ], + "static": false, + "migration-safe": true + }, + { + "name": "Opteron_G1", + "typename": "Opteron_G1-x86_64-cpu", + "unavailable-features": [ + ], + "static": false, + "migration-safe": true + }, + { + "name": "Nehalem", + "typename": "Nehalem-x86_64-cpu", + "unavailable-features": [ + ], + "static": false, + "migration-safe": true + }, + { + "name": "IvyBridge", + "typename": "IvyBridge-x86_64-cpu", + "unavailable-features": [ + "x2apic", + "tsc-deadline", + "avx", + "f16c", + "rdrand" + ], + "static": false, + "migration-safe": true + }, + { + "name": "Haswell", + "typename": "Haswell-x86_64-cpu", + "unavailable-features": [ + "fma", + "pcid", + "x2apic", + "tsc-deadline", + "avx", + "f16c", + "rdrand", + "hle", + "avx2", + "invpcid", + "rtm" + ], + "static": false, + "migration-safe": true + }, + { + "name": "Haswell-noTSX", + "typename": "Haswell-noTSX-x86_64-cpu", + "unavailable-features": [ + "fma", + "pcid", + "x2apic", + "tsc-deadline", + "avx", + "f16c", + "rdrand", + "avx2", + "invpcid" + ], + "static": false, + "migration-safe": true + }, + { + "name": "Conroe", + "typename": "Conroe-x86_64-cpu", + "unavailable-features": [ + ], + "static": false, + "migration-safe": true + }, + { + "name": "Broadwell", + "typename": "Broadwell-x86_64-cpu", + "unavailable-features": [ + "fma", + "pcid", + "x2apic", + "tsc-deadline", + "avx", + "f16c", + "rdrand", + "hle", + "avx2", + "invpcid", + "rtm", + "rdseed", + "3dnowprefetch" + ], + "static": false, + "migration-safe": true + }, + { + "name": "Broadwell-noTSX", + "typename": "Broadwell-noTSX-x86_64-cpu", + "unavailable-features": [ + "fma", + "pcid", + "x2apic", + "tsc-deadline", + "avx", + "f16c", + "rdrand", + "avx2", + "invpcid", + "rdseed", + "3dnowprefetch" + ], + "static": false, + "migration-safe": true + }, + { + "name": "486", + "typename": "486-x86_64-cpu", + "unavailable-features": [ + ], + "static": false, + "migration-safe": true + } + ], + "id": "libvirt-2" +} + +{ + "return": { + "model": { + "name": "base", + "props": { + "cmov": true, + "ia64": false, + "aes": true, + "mmx": true, + "rdpid": false, + "arat": true, + "pause-filter": false, + "xsavec": false, + "osxsave": false, + "kvm-asyncpf": false, + "perfctr-core": false, + "mpx": true, + "pbe": false, + "avx512cd": false, + "decodeassists": false, + "sse4.1": true, + "family": 6, + "avx512f": false, + "msr": true, + "mce": true, + "mca": true, + "xcrypt": false, + "min-level": 13, + "xgetbv1": true, + "cid": false, + "ds": false, + "fxsr": true, + "xsaveopt": true, + "xtpr": false, + "avx512vl": false, + "avx512-vpopcntdq": false, + "phe": false, + "extapic": false, + "3dnowprefetch": false, + "cr8legacy": true, + "xcrypt-en": false, + "pn": false, + "dca": false, + "vendor": "AuthenticAMD", + "pku": true, + "smx": false, + "cmp-legacy": false, + "avx512-4fmaps": false, + "vmcb-clean": false, + "hle": false, + "3dnowext": true, + "npt": false, + "clwb": true, + "lbrv": false, + "adx": true, + "ss": true, + "pni": true, + "svm-lock": false, + "smep": true, + "smap": true, + "pfthreshold": false, + "x2apic": false, + "avx512vbmi": false, + "flushbyasid": false, + "f16c": false, + "ace2-en": false, + "pae": true, + "pat": true, + "sse": true, + "phe-en": false, + "kvm-nopiodelay": false, + "tm": false, + "kvmclock-stable-bit": false, + "hypervisor": true, + "pcommit": true, + "syscall": true, + "avx512dq": false, + "svm": true, + "invtsc": false, + "sse2": true, + "est": false, + "avx512ifma": false, + "tm2": false, + "kvm-pv-eoi": false, + "cx8": true, + "kvm-mmu": false, + "sse4.2": true, + "pge": true, + "pdcm": false, + "model": 6, + "movbe": true, + "nrip-save": false, + "ssse3": true, + "sse4a": true, + "invpcid": false, + "pdpe1gb": true, + "tsc-deadline": false, + "fma": false, + "cx16": true, + "de": true, + "stepping": 3, + "xsave": true, + "clflush": true, + "skinit": false, + "tsc": true, + "tce": false, + "fpu": true, + "ds-cpl": false, + "ibs": false, + "fma4": false, + "la57": true, + "osvw": false, + "apic": true, + "pmm": false, + "tsc-adjust": false, + "kvm-steal-time": false, + "kvmclock": false, + "lwp": false, + "xop": false, + "avx": false, + "ospke": true, + "acpi": true, + "avx512bw": false, + "ace2": false, + "fsgsbase": true, + "ht": false, + "nx": true, + "pclmulqdq": true, + "mmxext": true, + "popcnt": true, + "xsaves": false, + "lm": true, + "umip": false, + "pse": true, + "avx2": false, + "sep": true, + "nodeid-msr": false, + "misalignsse": false, + "min-xlevel": 2147483658, + "bmi1": true, + "bmi2": true, + "kvm-pv-unhalt": false, + "tsc-scale": false, + "topoext": false, + "clflushopt": true, + "monitor": true, + "avx512er": false, + "pmm-en": false, + "pcid": false, + "3dnow": true, + "erms": true, + "lahf-lm": true, + "fxsr-opt": false, + "xstore": false, + "rtm": false, + "lmce": false, + "perfctr-nb": false, + "rdrand": false, + "rdseed": false, + "avx512-4vnniw": false, + "vme": false, + "vmx": false, + "dtes64": false, + "mtrr": true, + "rdtscp": true, + "pse36": true, + "tbm": false, + "wdt": false, + "model-id": "QEMU TCG CPU version 2.5+", + "sha-ni": false, + "abm": true, + "avx512pf": false, + "xstore-en": false + } + } + }, + "id": "libvirt-3" +} + +{ + "return": { + "model": { + "name": "base", + "props": { + "phys-bits": 0, + "core-id": -1, + "xlevel": 2147483658, + "cmov": true, + "ia64": false, + "aes": true, + "mmx": true, + "arat": true, + "rdpid": false, + "pause-filter": false, + "xsavec": false, + "osxsave": false, + "tsc-frequency": 0, + "xd": true, + "hv-vendor-id": "", + "kvm-asyncpf": false, + "kvm_asyncpf": false, + "perfctr_core": false, + "perfctr-core": false, + "mpx": true, + "avx512cd": false, + "decodeassists": false, + "pbe": false, + "sse4_1": true, + "sse4.1": true, + "sse4-1": true, + "family": 6, + "vmware-cpuid-freq": true, + "avx512f": false, + "xcrypt": false, + "hv-runtime": false, + "msr": true, + "mce": true, + "mca": true, + "thread-id": -1, + "min-level": 13, + "xgetbv1": true, + "cid": false, + "hv-relaxed": false, + "fxsr": true, + "ds": false, + "hv-crash": false, + "xsaveopt": true, + "xtpr": false, + "avx512-vpopcntdq": false, + "phe": false, + "avx512vl": false, + "extapic": false, + "3dnowprefetch": false, + "cr8legacy": true, + "cpuid-0xb": true, + "xcrypt-en": false, + "kvm_pv_eoi": false, + "apic-id": 4294967295, + "pn": false, + "dca": false, + "vendor": "AuthenticAMD", + "pku": true, + "smx": false, + "cmp-legacy": false, + "cmp_legacy": false, + "node-id": -1, + "avx512-4fmaps": false, + "vmcb-clean": false, + "vmcb_clean": false, + "3dnowext": true, + "hle": false, + "npt": false, + "memory": "/machine/unattached/system[0]", + "clwb": true, + "lbrv": false, + "adx": true, + "ss": true, + "pni": true, + "svm_lock": false, + "svm-lock": false, + "smep": true, + "pfthreshold": false, + "smap": true, + "x2apic": false, + "avx512vbmi": false, + "hv-stimer": false, + "i64": true, + "flushbyasid": false, + "f16c": false, + "ace2-en": false, + "pat": true, + "pae": true, + "sse": true, + "phe-en": false, + "kvm-nopiodelay": false, + "kvm_nopiodelay": false, + "tm": false, + "kvmclock-stable-bit": false, + "hypervisor": true, + "socket-id": -1, + "pcommit": true, + "syscall": true, + "level": 13, + "avx512dq": false, + "svm": true, + "full-cpuid-auto-level": true, + "hv-reset": false, + "invtsc": false, + "sse3": true, + "sse2": true, + "est": false, + "avx512ifma": false, + "tm2": false, + "kvm-pv-eoi": false, + "cx8": true, + "kvm-mmu": false, + "kvm_mmu": false, + "sse4_2": true, + "sse4.2": true, + "sse4-2": true, + "pge": true, + "fill-mtrr-mask": true, + "pdcm": false, + "nodeid_msr": false, + "model": 6, + "movbe": true, + "nrip-save": false, + "nrip_save": false, + "sse4a": true, + "ssse3": true, + "kvm_pv_unhalt": false, + "invpcid": false, + "pdpe1gb": true, + "tsc-deadline": false, + "fma": false, + "cx16": true, + "de": true, + "enforce": false, + "stepping": 3, + "xsave": true, + "clflush": true, + "skinit": false, + "tce": false, + "tsc": true, + "fpu": true, + "ds-cpl": false, + "ds_cpl": false, + "ibs": false, + "host-phys-bits": false, + "fma4": false, + "la57": true, + "osvw": false, + "check": true, + "hv-spinlocks": -1, + "pmm": false, + "apic": true, + "pmu": false, + "min-xlevel2": 0, + "tsc-adjust": false, + "tsc_adjust": false, + "kvm-steal-time": false, + "kvm_steal_time": false, + "kvmclock": false, + "l3-cache": true, + "lwp": false, + "xop": false, + "avx": false, + "ospke": true, + "ace2": false, + "acpi": true, + "avx512bw": false, + "hv-vapic": false, + "fsgsbase": true, + "ht": false, + "nx": true, + "pclmulqdq": true, + "mmxext": true, + "popcnt": true, + "xsaves": false, + "tcg-cpuid": true, + "lm": true, + "umip": false, + "avx2": false, + "pse": true, + "sep": true, + "pclmuldq": true, + "nodeid-msr": false, + "kvm": true, + "misalignsse": false, + "min-xlevel": 2147483658, + "bmi2": true, + "bmi1": true, + "kvm-pv-unhalt": false, + "realized": false, + "tsc_scale": false, + "tsc-scale": false, + "topoext": false, + "hv-vpindex": false, + "xlevel2": 0, + "clflushopt": true, + "kvm-no-smi-migration": false, + "monitor": true, + "avx512er": false, + "pmm-en": false, + "pcid": false, + "3dnow": true, + "erms": true, + "lahf-lm": true, + "lahf_lm": true, + "xstore": false, + "hv-synic": false, + "fxsr-opt": false, + "fxsr_opt": false, + "rtm": false, + "lmce": false, + "hv-time": false, + "perfctr-nb": false, + "perfctr_nb": false, + "ffxsr": false, + "rdrand": false, + "rdseed": false, + "avx512-4vnniw": false, + "vme": false, + "vmx": false, + "dtes64": false, + "mtrr": true, + "rdtscp": true, + "pse36": true, + "tbm": false, + "wdt": false, + "pause_filter": false, + "model-id": "QEMU TCG CPU version 2.5+", + "sha-ni": false, + "abm": true, + "avx512pf": false, + "xstore-en": false + } + } + }, + "id": "libvirt-4" +} + +{ + "return": { + "model": { + "name": "base", + "props": { + "cmov": true, + "ia64": false, + "aes": true, + "mmx": true, + "rdpid": false, + "arat": true, + "pause-filter": false, + "xsavec": false, + "osxsave": false, + "kvm-asyncpf": false, + "perfctr-core": false, + "mpx": true, + "pbe": false, + "avx512cd": false, + "decodeassists": false, + "sse4.1": true, + "family": 6, + "avx512f": false, + "msr": true, + "mce": true, + "mca": true, + "xcrypt": false, + "min-level": 13, + "xgetbv1": true, + "cid": false, + "ds": false, + "fxsr": true, + "xsaveopt": true, + "xtpr": false, + "avx512vl": false, + "avx512-vpopcntdq": false, + "phe": false, + "extapic": false, + "3dnowprefetch": false, + "cr8legacy": true, + "xcrypt-en": false, + "pn": false, + "dca": false, + "vendor": "AuthenticAMD", + "pku": true, + "smx": false, + "cmp-legacy": false, + "avx512-4fmaps": false, + "vmcb-clean": false, + "hle": false, + "3dnowext": true, + "npt": false, + "clwb": true, + "lbrv": false, + "adx": true, + "ss": true, + "pni": true, + "svm-lock": false, + "smep": true, + "smap": true, + "pfthreshold": false, + "x2apic": false, + "avx512vbmi": false, + "flushbyasid": false, + "f16c": false, + "ace2-en": false, + "pae": true, + "pat": true, + "sse": true, + "phe-en": false, + "kvm-nopiodelay": false, + "tm": false, + "kvmclock-stable-bit": false, + "hypervisor": true, + "pcommit": true, + "syscall": true, + "avx512dq": false, + "svm": true, + "invtsc": false, + "sse2": true, + "est": false, + "avx512ifma": false, + "tm2": false, + "kvm-pv-eoi": false, + "cx8": true, + "kvm-mmu": false, + "sse4.2": true, + "pge": true, + "pdcm": false, + "model": 6, + "movbe": true, + "nrip-save": false, + "ssse3": true, + "sse4a": true, + "invpcid": false, + "pdpe1gb": true, + "tsc-deadline": false, + "fma": false, + "cx16": true, + "de": true, + "stepping": 3, + "xsave": true, + "clflush": true, + "skinit": false, + "tsc": true, + "tce": false, + "fpu": true, + "ds-cpl": false, + "ibs": false, + "fma4": false, + "la57": true, + "osvw": false, + "apic": true, + "pmm": false, + "tsc-adjust": false, + "kvm-steal-time": false, + "kvmclock": false, + "lwp": false, + "xop": false, + "avx": false, + "ospke": true, + "acpi": true, + "avx512bw": false, + "ace2": false, + "fsgsbase": true, + "ht": false, + "nx": true, + "pclmulqdq": true, + "mmxext": true, + "popcnt": true, + "xsaves": false, + "lm": true, + "umip": false, + "pse": true, + "avx2": false, + "sep": true, + "nodeid-msr": false, + "misalignsse": false, + "min-xlevel": 2147483658, + "bmi1": true, + "bmi2": true, + "kvm-pv-unhalt": false, + "tsc-scale": false, + "topoext": false, + "clflushopt": true, + "monitor": true, + "avx512er": false, + "pmm-en": false, + "pcid": false, + "3dnow": true, + "erms": true, + "lahf-lm": true, + "fxsr-opt": false, + "xstore": false, + "rtm": false, + "lmce": false, + "perfctr-nb": false, + "rdrand": false, + "rdseed": false, + "avx512-4vnniw": false, + "vme": false, + "vmx": false, + "dtes64": false, + "mtrr": true, + "rdtscp": true, + "pse36": true, + "tbm": false, + "wdt": false, + "model-id": "QEMU TCG CPU version 2.5+", + "sha-ni": false, + "abm": true, + "avx512pf": false, + "xstore-en": false + } + } + }, + "id": "libvirt-5" +} + +{ + "return": { + "model": { + "name": "base", + "props": { + "phys-bits": 0, + "core-id": -1, + "xlevel": 2147483658, + "cmov": true, + "ia64": false, + "aes": true, + "mmx": true, + "arat": true, + "rdpid": false, + "pause-filter": false, + "xsavec": false, + "osxsave": false, + "tsc-frequency": 0, + "xd": true, + "hv-vendor-id": "", + "kvm-asyncpf": false, + "kvm_asyncpf": false, + "perfctr_core": false, + "perfctr-core": false, + "mpx": true, + "avx512cd": false, + "decodeassists": false, + "pbe": false, + "sse4_1": true, + "sse4.1": true, + "sse4-1": true, + "family": 6, + "vmware-cpuid-freq": true, + "avx512f": false, + "xcrypt": false, + "hv-runtime": false, + "msr": true, + "mce": true, + "mca": true, + "thread-id": -1, + "min-level": 13, + "xgetbv1": true, + "cid": false, + "hv-relaxed": false, + "fxsr": true, + "ds": false, + "hv-crash": false, + "xsaveopt": true, + "xtpr": false, + "avx512-vpopcntdq": false, + "phe": false, + "avx512vl": false, + "extapic": false, + "3dnowprefetch": false, + "cr8legacy": true, + "cpuid-0xb": true, + "xcrypt-en": false, + "kvm_pv_eoi": false, + "apic-id": 4294967295, + "pn": false, + "dca": false, + "vendor": "AuthenticAMD", + "pku": true, + "smx": false, + "cmp-legacy": false, + "cmp_legacy": false, + "node-id": -1, + "avx512-4fmaps": false, + "vmcb-clean": false, + "vmcb_clean": false, + "3dnowext": true, + "hle": false, + "npt": false, + "memory": "/machine/unattached/system[0]", + "clwb": true, + "lbrv": false, + "adx": true, + "ss": true, + "pni": true, + "svm_lock": false, + "svm-lock": false, + "smep": true, + "pfthreshold": false, + "smap": true, + "x2apic": false, + "avx512vbmi": false, + "hv-stimer": false, + "i64": true, + "flushbyasid": false, + "f16c": false, + "ace2-en": false, + "pat": true, + "pae": true, + "sse": true, + "phe-en": false, + "kvm-nopiodelay": false, + "kvm_nopiodelay": false, + "tm": false, + "kvmclock-stable-bit": false, + "hypervisor": true, + "socket-id": -1, + "pcommit": true, + "syscall": true, + "level": 13, + "avx512dq": false, + "svm": true, + "full-cpuid-auto-level": true, + "hv-reset": false, + "invtsc": false, + "sse3": true, + "sse2": true, + "est": false, + "avx512ifma": false, + "tm2": false, + "kvm-pv-eoi": false, + "cx8": true, + "kvm-mmu": false, + "kvm_mmu": false, + "sse4_2": true, + "sse4.2": true, + "sse4-2": true, + "pge": true, + "fill-mtrr-mask": true, + "pdcm": false, + "nodeid_msr": false, + "model": 6, + "movbe": true, + "nrip-save": false, + "nrip_save": false, + "sse4a": true, + "ssse3": true, + "kvm_pv_unhalt": false, + "invpcid": false, + "pdpe1gb": true, + "tsc-deadline": false, + "fma": false, + "cx16": true, + "de": true, + "enforce": false, + "stepping": 3, + "xsave": true, + "clflush": true, + "skinit": false, + "tce": false, + "tsc": true, + "fpu": true, + "ds-cpl": false, + "ds_cpl": false, + "ibs": false, + "host-phys-bits": false, + "fma4": false, + "la57": true, + "osvw": false, + "check": true, + "hv-spinlocks": -1, + "pmm": false, + "apic": true, + "pmu": false, + "min-xlevel2": 0, + "tsc-adjust": false, + "tsc_adjust": false, + "kvm-steal-time": false, + "kvm_steal_time": false, + "kvmclock": false, + "l3-cache": true, + "lwp": false, + "xop": false, + "avx": false, + "ospke": true, + "ace2": false, + "acpi": true, + "avx512bw": false, + "hv-vapic": false, + "fsgsbase": true, + "ht": false, + "nx": true, + "pclmulqdq": true, + "mmxext": true, + "popcnt": true, + "xsaves": false, + "tcg-cpuid": true, + "lm": true, + "umip": false, + "avx2": false, + "pse": true, + "sep": true, + "pclmuldq": true, + "nodeid-msr": false, + "kvm": true, + "misalignsse": false, + "min-xlevel": 2147483658, + "bmi2": true, + "bmi1": true, + "kvm-pv-unhalt": false, + "realized": false, + "tsc_scale": false, + "tsc-scale": false, + "topoext": false, + "hv-vpindex": false, + "xlevel2": 0, + "clflushopt": true, + "kvm-no-smi-migration": false, + "monitor": true, + "avx512er": false, + "pmm-en": false, + "pcid": false, + "3dnow": true, + "erms": true, + "lahf-lm": true, + "lahf_lm": true, + "xstore": false, + "hv-synic": false, + "fxsr-opt": false, + "fxsr_opt": false, + "rtm": false, + "lmce": false, + "hv-time": false, + "perfctr-nb": false, + "perfctr_nb": false, + "ffxsr": false, + "rdrand": false, + "rdseed": false, + "avx512-4vnniw": false, + "vme": false, + "vmx": false, + "dtes64": false, + "mtrr": true, + "rdtscp": true, + "pse36": true, + "tbm": false, + "wdt": false, + "pause_filter": false, + "model-id": "QEMU TCG CPU version 2.5+", + "sha-ni": false, + "abm": true, + "avx512pf": false, + "xstore-en": false + } + } + }, + "id": "libvirt-6" +} diff --git a/tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml b/tests/qemu= capabilitiesdata/caps_2.10.0.x86_64.xml new file mode 100644 index 0000000..6049211 --- /dev/null +++ b/tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml @@ -0,0 +1,798 @@ + + 0 + 0 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2010000 + 0 + (v2.10.0) + x86_64 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/qemucapabilitiestest.c b/tests/qemucapabilitiestest.c index 3ae55fc..4115bca 100644 --- a/tests/qemucapabilitiestest.c +++ b/tests/qemucapabilitiestest.c @@ -170,6 +170,7 @@ mymain(void) DO_TEST("x86_64", "caps_2.7.0"); DO_TEST("x86_64", "caps_2.8.0"); DO_TEST("x86_64", "caps_2.9.0"); + DO_TEST("x86_64", "caps_2.10.0"); DO_TEST("aarch64", "caps_2.6.0-gicv2"); DO_TEST("aarch64", "caps_2.6.0-gicv3"); DO_TEST("ppc64le", "caps_2.6.0"); --=20 2.9.5 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Fri May 3 17:44:32 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1504286798269900.0391684035385; Fri, 1 Sep 2017 10:26:38 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 6E5567EBDB; Fri, 1 Sep 2017 17:26:36 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 1CE397BB7A; Fri, 1 Sep 2017 17:26:36 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id C910C4EE50; Fri, 1 Sep 2017 17:26:35 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id v81HA8Q8021709 for ; Fri, 1 Sep 2017 13:10:08 -0400 Received: by smtp.corp.redhat.com (Postfix) id 162CA7821A; Fri, 1 Sep 2017 17:10:08 +0000 (UTC) Received: from localhost.localdomain.com (ovpn-116-88.phx2.redhat.com [10.3.116.88]) by smtp.corp.redhat.com (Postfix) with ESMTP id C36AD7836D; Fri, 1 Sep 2017 17:10:07 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 6E5567EBDB Authentication-Results: ext-mx03.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx03.extmail.prod.ext.phx2.redhat.com; spf=fail smtp.mailfrom=libvir-list-bounces@redhat.com From: John Ferlan To: libvir-list@redhat.com Date: Fri, 1 Sep 2017 13:09:46 -0400 Message-Id: <20170901170955.20281-3-jferlan@redhat.com> In-Reply-To: <20170901170955.20281-1-jferlan@redhat.com> References: <20170901170955.20281-1-jferlan@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-loop: libvir-list@redhat.com Cc: ashmit602@gmail.com Subject: [libvirt] [PATCH v7 02/11] qemu: Detect support for vxhs X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.27]); Fri, 01 Sep 2017 17:26:37 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Using the query-qmp-schema introspection - look for the 'vxhs' blockdevOptions type. NB: This is a "best effort" type situation as there is not a mechanism to determine whether the running QEMU has been built with '--enable-vxhs'. All we can do is check if the option to use vxhs for a blockdev-add exists in the command infrastructure which does not take that into account when building its table of commands and options. Signed-off-by: John Ferlan --- src/qemu/qemu_capabilities.c | 4 ++++ src/qemu/qemu_capabilities.h | 3 +++ tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml | 1 + 3 files changed, 8 insertions(+) diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index e7ea6f4..173bcf3 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -439,6 +439,9 @@ VIR_ENUM_IMPL(virQEMUCaps, QEMU_CAPS_LAST, "virtio-net.tx_queue_size", "chardev-reconnect", "virtio-gpu.max_outputs", + + /* 270 */ + "vxhs", ); =20 =20 @@ -1811,6 +1814,7 @@ static struct virQEMUCapsStringFlags virQEMUCapsObjec= tPropsIntelIOMMU[] =3D { static struct virQEMUCapsStringFlags virQEMUCapsQMPSchemaQueries[] =3D { { "blockdev-add/arg-type/options/+gluster/debug-level", QEMU_CAPS_GLUS= TER_DEBUG_LEVEL}, { "blockdev-add/arg-type/+gluster/debug", QEMU_CAPS_GLUSTER_DEBUG_LEVE= L}, + { "blockdev-add/arg-type/+vxhs", QEMU_CAPS_VXHS}, }; =20 struct virQEMUCapsObjectTypeProps { diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h index f32687d..f512775 100644 --- a/src/qemu/qemu_capabilities.h +++ b/src/qemu/qemu_capabilities.h @@ -426,6 +426,9 @@ typedef enum { QEMU_CAPS_CHARDEV_RECONNECT, /* -chardev reconnect */ QEMU_CAPS_VIRTIO_GPU_MAX_OUTPUTS, /* -device virtio-(vga|gpu-*),max-ou= tputs=3D */ =20 + /* 270 */ + QEMU_CAPS_VXHS, /* -drive file.driver=3Dvxhs via query-qmp-schema */ + QEMU_CAPS_LAST /* this must always be the last item */ } virQEMUCapsFlags; =20 diff --git a/tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml b/tests/qemu= capabilitiesdata/caps_2.10.0.x86_64.xml index 6049211..8a31431 100644 --- a/tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml @@ -222,6 +222,7 @@ + 2010000 0 (v2.10.0) --=20 2.9.5 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Fri May 3 17:44:32 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1504286787121189.49517280488942; Fri, 1 Sep 2017 10:26:27 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 1CBAC7EA87; Fri, 1 Sep 2017 17:26:25 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id A32CF956A1; Fri, 1 Sep 2017 17:26:23 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id A23951806108; Fri, 1 Sep 2017 17:26:20 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id v81HA85o021714 for ; Fri, 1 Sep 2017 13:10:08 -0400 Received: by smtp.corp.redhat.com (Postfix) id 7D6827821B; Fri, 1 Sep 2017 17:10:08 +0000 (UTC) Received: from localhost.localdomain.com (ovpn-116-88.phx2.redhat.com [10.3.116.88]) by smtp.corp.redhat.com (Postfix) with ESMTP id 3695A7821A; Fri, 1 Sep 2017 17:10:08 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 1CBAC7EA87 Authentication-Results: ext-mx04.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx04.extmail.prod.ext.phx2.redhat.com; spf=fail smtp.mailfrom=libvir-list-bounces@redhat.com From: John Ferlan To: libvir-list@redhat.com Date: Fri, 1 Sep 2017 13:09:47 -0400 Message-Id: <20170901170955.20281-4-jferlan@redhat.com> In-Reply-To: <20170901170955.20281-1-jferlan@redhat.com> References: <20170901170955.20281-1-jferlan@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-loop: libvir-list@redhat.com Cc: ashmit602@gmail.com Subject: [libvirt] [PATCH v7 03/11] storage: Introduce VIR_STORAGE_NET_PROTOCOL_VXHS X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.28]); Fri, 01 Sep 2017 17:26:26 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" From: Ashish Mittal Add a new virStorageNetProtocol for Veritas HyperScale (VxHS) disks Signed-off-by: Ashish Mittal Signed-off-by: John Ferlan --- src/libxl/libxl_conf.c | 1 + src/qemu/qemu_block.c | 1 + src/qemu/qemu_command.c | 1 + src/qemu/qemu_driver.c | 3 +++ src/qemu/qemu_parse_command.c | 1 + src/util/virstoragefile.c | 5 ++++- src/util/virstoragefile.h | 1 + src/xenconfig/xen_xl.c | 1 + 8 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/libxl/libxl_conf.c b/src/libxl/libxl_conf.c index 4416a09..34233a9 100644 --- a/src/libxl/libxl_conf.c +++ b/src/libxl/libxl_conf.c @@ -666,6 +666,7 @@ libxlMakeNetworkDiskSrcStr(virStorageSourcePtr src, case VIR_STORAGE_NET_PROTOCOL_GLUSTER: case VIR_STORAGE_NET_PROTOCOL_SHEEPDOG: case VIR_STORAGE_NET_PROTOCOL_SSH: + case VIR_STORAGE_NET_PROTOCOL_VXHS: case VIR_STORAGE_NET_PROTOCOL_LAST: case VIR_STORAGE_NET_PROTOCOL_NONE: virReportError(VIR_ERR_NO_SUPPORT, diff --git a/src/qemu/qemu_block.c b/src/qemu/qemu_block.c index 7fb12ea..d07269f 100644 --- a/src/qemu/qemu_block.c +++ b/src/qemu/qemu_block.c @@ -522,6 +522,7 @@ qemuBlockStorageSourceGetBackendProps(virStorageSourceP= tr src) case VIR_STORAGE_NET_PROTOCOL_FTPS: case VIR_STORAGE_NET_PROTOCOL_TFTP: case VIR_STORAGE_NET_PROTOCOL_SSH: + case VIR_STORAGE_NET_PROTOCOL_VXHS: case VIR_STORAGE_NET_PROTOCOL_NONE: case VIR_STORAGE_NET_PROTOCOL_LAST: break; diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 9a27987..b7a896e 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -996,6 +996,7 @@ qemuBuildNetworkDriveStr(virStorageSourcePtr src, _("'ssh' protocol is not yet supported")); goto cleanup; =20 + case VIR_STORAGE_NET_PROTOCOL_VXHS: case VIR_STORAGE_NET_PROTOCOL_LAST: case VIR_STORAGE_NET_PROTOCOL_NONE: virReportError(VIR_ERR_INTERNAL_ERROR, diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index b782451..26e64c1 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -13814,6 +13814,7 @@ qemuDomainSnapshotPrepareDiskExternalBackingInactiv= e(virDomainDiskDefPtr disk) case VIR_STORAGE_NET_PROTOCOL_FTPS: case VIR_STORAGE_NET_PROTOCOL_TFTP: case VIR_STORAGE_NET_PROTOCOL_SSH: + case VIR_STORAGE_NET_PROTOCOL_VXHS: case VIR_STORAGE_NET_PROTOCOL_LAST: virReportError(VIR_ERR_INTERNAL_ERROR, _("external inactive snapshots are not supporte= d on " @@ -13877,6 +13878,7 @@ qemuDomainSnapshotPrepareDiskExternalOverlayActive(= virDomainSnapshotDiskDefPtr d case VIR_STORAGE_NET_PROTOCOL_FTPS: case VIR_STORAGE_NET_PROTOCOL_TFTP: case VIR_STORAGE_NET_PROTOCOL_SSH: + case VIR_STORAGE_NET_PROTOCOL_VXHS: case VIR_STORAGE_NET_PROTOCOL_LAST: virReportError(VIR_ERR_INTERNAL_ERROR, _("external active snapshots are not supported = on " @@ -14022,6 +14024,7 @@ qemuDomainSnapshotPrepareDiskInternal(virConnectPtr= conn, case VIR_STORAGE_NET_PROTOCOL_FTPS: case VIR_STORAGE_NET_PROTOCOL_TFTP: case VIR_STORAGE_NET_PROTOCOL_SSH: + case VIR_STORAGE_NET_PROTOCOL_VXHS: case VIR_STORAGE_NET_PROTOCOL_LAST: virReportError(VIR_ERR_INTERNAL_ERROR, _("internal inactive snapshots are not supporte= d on " diff --git a/src/qemu/qemu_parse_command.c b/src/qemu/qemu_parse_command.c index 8cb96a2..9190a37 100644 --- a/src/qemu/qemu_parse_command.c +++ b/src/qemu/qemu_parse_command.c @@ -2026,6 +2026,7 @@ qemuParseCommandLine(virCapsPtr caps, case VIR_STORAGE_NET_PROTOCOL_FTPS: case VIR_STORAGE_NET_PROTOCOL_TFTP: case VIR_STORAGE_NET_PROTOCOL_SSH: + case VIR_STORAGE_NET_PROTOCOL_VXHS: case VIR_STORAGE_NET_PROTOCOL_LAST: case VIR_STORAGE_NET_PROTOCOL_NONE: /* ignored for now */ diff --git a/src/util/virstoragefile.c b/src/util/virstoragefile.c index fbc8245..e0ec717 100644 --- a/src/util/virstoragefile.c +++ b/src/util/virstoragefile.c @@ -85,7 +85,8 @@ VIR_ENUM_IMPL(virStorageNetProtocol, VIR_STORAGE_NET_PROT= OCOL_LAST, "ftp", "ftps", "tftp", - "ssh") + "ssh", + "vxhs") =20 VIR_ENUM_IMPL(virStorageNetHostTransport, VIR_STORAGE_NET_HOST_TRANS_LAST, "tcp", @@ -2712,6 +2713,7 @@ virStorageSourceParseBackingColon(virStorageSourcePtr= src, case VIR_STORAGE_NET_PROTOCOL_ISCSI: case VIR_STORAGE_NET_PROTOCOL_GLUSTER: case VIR_STORAGE_NET_PROTOCOL_SSH: + case VIR_STORAGE_NET_PROTOCOL_VXHS: virReportError(VIR_ERR_INTERNAL_ERROR, _("malformed backing store path for protocol %s"), protocol); @@ -3992,6 +3994,7 @@ virStorageSourceNetworkDefaultPort(virStorageNetProto= col protocol) /* we don't provide a default for RBD */ return 0; =20 + case VIR_STORAGE_NET_PROTOCOL_VXHS: case VIR_STORAGE_NET_PROTOCOL_LAST: case VIR_STORAGE_NET_PROTOCOL_NONE: return 0; diff --git a/src/util/virstoragefile.h b/src/util/virstoragefile.h index 6c388b1..f7e897f 100644 --- a/src/util/virstoragefile.h +++ b/src/util/virstoragefile.h @@ -134,6 +134,7 @@ typedef enum { VIR_STORAGE_NET_PROTOCOL_FTPS, VIR_STORAGE_NET_PROTOCOL_TFTP, VIR_STORAGE_NET_PROTOCOL_SSH, + VIR_STORAGE_NET_PROTOCOL_VXHS, =20 VIR_STORAGE_NET_PROTOCOL_LAST } virStorageNetProtocol; diff --git a/src/xenconfig/xen_xl.c b/src/xenconfig/xen_xl.c index d168d3f..8acbfe3 100644 --- a/src/xenconfig/xen_xl.c +++ b/src/xenconfig/xen_xl.c @@ -1024,6 +1024,7 @@ xenFormatXLDiskSrcNet(virStorageSourcePtr src) case VIR_STORAGE_NET_PROTOCOL_GLUSTER: case VIR_STORAGE_NET_PROTOCOL_SHEEPDOG: case VIR_STORAGE_NET_PROTOCOL_SSH: + case VIR_STORAGE_NET_PROTOCOL_VXHS: case VIR_STORAGE_NET_PROTOCOL_LAST: case VIR_STORAGE_NET_PROTOCOL_NONE: virReportError(VIR_ERR_NO_SUPPORT, --=20 2.9.5 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Fri May 3 17:44:32 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1504286962715747.547558229171; Fri, 1 Sep 2017 10:29:22 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 7D2D819C33F; Fri, 1 Sep 2017 17:29:21 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 5E7587BB7A; Fri, 1 Sep 2017 17:29:21 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 29640180610A; Fri, 1 Sep 2017 17:29:21 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id v81HA9GJ021720 for ; Fri, 1 Sep 2017 13:10:09 -0400 Received: by smtp.corp.redhat.com (Postfix) id 1C0397821A; Fri, 1 Sep 2017 17:10:09 +0000 (UTC) Received: from localhost.localdomain.com (ovpn-116-88.phx2.redhat.com [10.3.116.88]) by smtp.corp.redhat.com (Postfix) with ESMTP id C975B78352; Fri, 1 Sep 2017 17:10:08 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 7D2D819C33F Authentication-Results: ext-mx05.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx05.extmail.prod.ext.phx2.redhat.com; spf=fail smtp.mailfrom=libvir-list-bounces@redhat.com From: John Ferlan To: libvir-list@redhat.com Date: Fri, 1 Sep 2017 13:09:48 -0400 Message-Id: <20170901170955.20281-5-jferlan@redhat.com> In-Reply-To: <20170901170955.20281-1-jferlan@redhat.com> References: <20170901170955.20281-1-jferlan@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-loop: libvir-list@redhat.com Cc: ashmit602@gmail.com Subject: [libvirt] [PATCH v7 04/11] docs: Add schema and docs for Veritas HyperScale (VxHS) X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.29]); Fri, 01 Sep 2017 17:29:21 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" From: Ashish Mittal Alter the schema to allow a VxHS block device. Sample XML is: eb90327c-8302-4725-9e1b-4e85ed4dc251
Update the html docs to describe the capability for VxHS. Alter the qemuxml2xmltest to validate the formatting. Signed-off-by: Ashish Mittal Signed-off-by: John Ferlan --- docs/formatdomain.html.in | 15 ++++++++-- docs/schemas/domaincommon.rng | 13 +++++++++ .../qemuxml2argv-disk-drive-network-vxhs.xml | 32 ++++++++++++++++++= ++ .../qemuxml2xmlout-disk-drive-network-vxhs.xml | 34 ++++++++++++++++++= ++++ tests/qemuxml2xmltest.c | 1 + 5 files changed, 92 insertions(+), 3 deletions(-) create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-= vxhs.xml create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-drive-netw= ork-vxhs.xml diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in index 8ca7637..446ffff 100644 --- a/docs/formatdomain.html.in +++ b/docs/formatdomain.html.in @@ -2520,9 +2520,9 @@
The protocol attribute specifies the protocol to access to the requested image. Possible values are "nbd", - "iscsi", "rbd", "sheepdog" or "gluster". If the - protocol attribute is "rbd", "sheepdog" or - "gluster", an additional attribute name is + "iscsi", "rbd", "sheepdog", "gluster" or "vxhs". If the + protocol attribute is "rbd", "sheepdog", "glust= er" + or "vxhs", an additional attribute name is mandatory to specify which volume/image will be used. For "n= bd", the name attribute is optional. For "iscsi" (since 1.0.4), the name @@ -2530,6 +2530,9 @@ target's name by a slash (e.g., iqn.2013-07.com.example:iscsi-pool/1). If not specified, the default LUN is zero. + For "vxhs" (since 3.8.0), the + name is the UUID of the volume, assigned by the + HyperScale server. Since 0.8.7
volume
@@ -2632,6 +2635,12 @@ one or more (Since 2.1.0= ), just one prior to that 24007 + + vxhs + a server running Veritas HyperScale daemon + only one + 9999 +

gluster supports "tcp", "rdma", "unix" as valid values for the diff --git a/docs/schemas/domaincommon.rng b/docs/schemas/domaincommon.rng index 06c5a91..7fe4e21 100644 --- a/docs/schemas/domaincommon.rng +++ b/docs/schemas/domaincommon.rng @@ -1642,6 +1642,18 @@ =20 + + + + + vxhs + + + + + + + network @@ -1652,6 +1664,7 @@ + =20 diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-vxhs.xm= l b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-vxhs.xml new file mode 100644 index 0000000..4f4df2f --- /dev/null +++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-vxhs.xml @@ -0,0 +1,32 @@ + + QEMUGuest1 + c7a5fdbd-edaf-9455-926a-d65c16db1809 + 219136 + 219136 + 1 + + hvm + + + + destroy + restart + destroy + + /usr/bin/qemu-system-x86_64 + + + + + + + eb90327c-8302-4725-9e1b-4e85ed4dc251 +

+ + + + + + + + diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-drive-network-vxh= s.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-drive-network-vxhs.xml new file mode 100644 index 0000000..160ed8d --- /dev/null +++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-drive-network-vxhs.xml @@ -0,0 +1,34 @@ + + QEMUGuest1 + c7a5fdbd-edaf-9455-926a-d65c16db1809 + 219136 + 219136 + 1 + + hvm + + + + destroy + restart + destroy + + /usr/bin/qemu-system-x86_64 + + + + + + + eb90327c-8302-4725-9e1b-4e85ed4dc251 +
+ + +
+ + + + + + + diff --git a/tests/qemuxml2xmltest.c b/tests/qemuxml2xmltest.c index 311b713..82db8cc 100644 --- a/tests/qemuxml2xmltest.c +++ b/tests/qemuxml2xmltest.c @@ -474,6 +474,7 @@ mymain(void) DO_TEST("disk-drive-network-rbd-ipv6", NONE); DO_TEST("disk-drive-network-rbd-ceph-env", NONE); DO_TEST("disk-drive-network-sheepdog", NONE); + DO_TEST("disk-drive-network-vxhs", NONE); DO_TEST("disk-scsi-device", QEMU_CAPS_NODEFCONFIG, QEMU_CAPS_SCSI_LSI); DO_TEST("disk-scsi-vscsi", NONE); --=20 2.9.5 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Fri May 3 17:44:32 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1504286823366371.41443603954144; Fri, 1 Sep 2017 10:27:03 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id ECA847EA9D; Fri, 1 Sep 2017 17:27:01 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id C71AD627DE; Fri, 1 Sep 2017 17:27:01 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 8DB513FA56; Fri, 1 Sep 2017 17:27:01 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id v81HA9Fp021730 for ; Fri, 1 Sep 2017 13:10:09 -0400 Received: by smtp.corp.redhat.com (Postfix) id 8239178349; Fri, 1 Sep 2017 17:10:09 +0000 (UTC) Received: from localhost.localdomain.com (ovpn-116-88.phx2.redhat.com [10.3.116.88]) by smtp.corp.redhat.com (Postfix) with ESMTP id 3CE757821A; Fri, 1 Sep 2017 17:10:09 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com ECA847EA9D Authentication-Results: ext-mx04.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx04.extmail.prod.ext.phx2.redhat.com; spf=fail smtp.mailfrom=libvir-list-bounces@redhat.com From: John Ferlan To: libvir-list@redhat.com Date: Fri, 1 Sep 2017 13:09:49 -0400 Message-Id: <20170901170955.20281-6-jferlan@redhat.com> In-Reply-To: <20170901170955.20281-1-jferlan@redhat.com> References: <20170901170955.20281-1-jferlan@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-loop: libvir-list@redhat.com Cc: ashmit602@gmail.com Subject: [libvirt] [PATCH v7 05/11] util: storage: Add JSON backing volume parse for VxHS X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.28]); Fri, 01 Sep 2017 17:27:02 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" From: Ashish Mittal Add the backing parse and a test case to verify parsing of VxHS backing storage. Signed-off-by: Ashish Mittal Signed-off-by: John Ferlan --- src/util/virstoragefile.c | 37 +++++++++++++++++++++++++++++++++++++ tests/virstoragetest.c | 11 +++++++++++ 2 files changed, 48 insertions(+) diff --git a/src/util/virstoragefile.c b/src/util/virstoragefile.c index e0ec717..f3fe529 100644 --- a/src/util/virstoragefile.c +++ b/src/util/virstoragefile.c @@ -3212,6 +3212,40 @@ virStorageSourceParseBackingJSONRaw(virStorageSource= Ptr src, return virStorageSourceParseBackingJSONInternal(src, json); } =20 + +static int +virStorageSourceParseBackingJSONVxHS(virStorageSourcePtr src, + virJSONValuePtr json, + int opaque ATTRIBUTE_UNUSED) +{ + const char *vdisk_id =3D virJSONValueObjectGetString(json, "vdisk-id"); + virJSONValuePtr server =3D virJSONValueObjectGetObject(json, "server"); + + if (!vdisk_id || !server) { + virReportError(VIR_ERR_INVALID_ARG, "%s", + _("missing 'vdisk-id' or 'server' attribute in " + "JSON backing definition for VxHS volume")); + return -1; + } + + src->type =3D VIR_STORAGE_TYPE_NETWORK; + src->protocol =3D VIR_STORAGE_NET_PROTOCOL_VXHS; + + if (VIR_STRDUP(src->path, vdisk_id) < 0) + return -1; + + if (VIR_ALLOC_N(src->hosts, 1) < 0) + return -1; + src->nhosts =3D 1; + + if (virStorageSourceParseBackingJSONInetSocketAddress(src->hosts, + server) < 0) + return -1; + + return 0; +} + + struct virStorageSourceJSONDriverParser { const char *drvname; int (*func)(virStorageSourcePtr src, virJSONValuePtr json, int opaque); @@ -3234,6 +3268,7 @@ static const struct virStorageSourceJSONDriverParser = jsonParsers[] =3D { {"ssh", virStorageSourceParseBackingJSONSSH, 0}, {"rbd", virStorageSourceParseBackingJSONRBD, 0}, {"raw", virStorageSourceParseBackingJSONRaw, 0}, + {"vxhs", virStorageSourceParseBackingJSONVxHS, 0}, }; =20 =20 @@ -3995,6 +4030,8 @@ virStorageSourceNetworkDefaultPort(virStorageNetProto= col protocol) return 0; =20 case VIR_STORAGE_NET_PROTOCOL_VXHS: + return 9999; + case VIR_STORAGE_NET_PROTOCOL_LAST: case VIR_STORAGE_NET_PROTOCOL_NONE: return 0; diff --git a/tests/virstoragetest.c b/tests/virstoragetest.c index 60e3164..ffebd4d 100644 --- a/tests/virstoragetest.c +++ b/tests/virstoragetest.c @@ -1592,6 +1592,17 @@ mymain(void) "\n" " \n" "\n"); + TEST_BACKING_PARSE("json:{\"file\":{\"driver\":\"vxhs\"," + "\"vdisk-id\":\"c6718f6b-0401-441d-= a8c3-1f0064d75ee0\"," + "\"server\": { \"type\":\"tcp\"," + "\"host\":\"example.= com\"," + "\"port\":\"9999\"" + "}" + "}" + "}", + "\n" + " \n" + "\n"); #endif /* WITH_YAJL */ =20 cleanup: --=20 2.9.5 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Fri May 3 17:44:32 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1504286983850325.323240907015; Fri, 1 Sep 2017 10:29:43 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 56E9E81E05; Fri, 1 Sep 2017 17:29:42 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 31D6478372; Fri, 1 Sep 2017 17:29:42 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id F15793FACE; Fri, 1 Sep 2017 17:29:41 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id v81HA9uc021737 for ; Fri, 1 Sep 2017 13:10:09 -0400 Received: by smtp.corp.redhat.com (Postfix) id ED0D07821A; Fri, 1 Sep 2017 17:10:09 +0000 (UTC) Received: from localhost.localdomain.com (ovpn-116-88.phx2.redhat.com [10.3.116.88]) by smtp.corp.redhat.com (Postfix) with ESMTP id A3EBF7821B; Fri, 1 Sep 2017 17:10:09 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 56E9E81E05 Authentication-Results: ext-mx01.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx01.extmail.prod.ext.phx2.redhat.com; spf=fail smtp.mailfrom=libvir-list-bounces@redhat.com From: John Ferlan To: libvir-list@redhat.com Date: Fri, 1 Sep 2017 13:09:50 -0400 Message-Id: <20170901170955.20281-7-jferlan@redhat.com> In-Reply-To: <20170901170955.20281-1-jferlan@redhat.com> References: <20170901170955.20281-1-jferlan@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-loop: libvir-list@redhat.com Cc: ashmit602@gmail.com Subject: [libvirt] [PATCH v7 06/11] qemu: Add qemu command line generation for a VxHS block device X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.25]); Fri, 01 Sep 2017 17:29:42 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" From: Ashish Mittal The VxHS block device will only use the newer formatting options and avoid the legacy URI syntax. An excerpt for a sample QEMU command line is: -drive file.driver=3Dvxhs,file.vdisk-id=3Deb90327c-8302-4725-9e1b-4e85ed4= dc251,\ file.server.0.type=3Dtcp,file.server.0.host=3D192.168.0.1,\ file.server.0.port=3D9999,format=3Draw,if=3Dnone,id=3Ddrive-virtio-disk0= ,cache=3Dnone \ -device virtio-blk-pci,bus=3Dpci.0,addr=3D0x4,drive=3Ddrive-virtio-disk0,\ id=3Dvirtio-disk0 Update qemuxml2argvtest with a simple test. Signed-off-by: Ashish Mittal Signed-off-by: John Ferlan --- src/qemu/qemu_block.c | 37 ++++++++++++++++++= +++- src/qemu/qemu_command.c | 10 +++++- src/qemu/qemu_parse_command.c | 16 +++++++++- src/qemu/qemu_process.c | 29 +++++++++++++++++ .../qemuxml2argv-disk-drive-network-vxhs.args | 27 ++++++++++++++++ tests/qemuxml2argvtest.c | 1 + 6 files changed, 117 insertions(+), 3 deletions(-) create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-= vxhs.args diff --git a/src/qemu/qemu_block.c b/src/qemu/qemu_block.c index d07269f..f5269fb 100644 --- a/src/qemu/qemu_block.c +++ b/src/qemu/qemu_block.c @@ -482,6 +482,37 @@ qemuBlockStorageSourceGetGlusterProps(virStorageSource= Ptr src) } =20 =20 +static virJSONValuePtr +qemuBlockStorageSourceGetVxHSProps(virStorageSourcePtr src) +{ + const char *protocol =3D virStorageNetProtocolTypeToString(src->protoc= ol); + virJSONValuePtr server =3D NULL; + virJSONValuePtr ret =3D NULL; + + if (src->nhosts !=3D 1) { + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", + _("VxHS protocol accepts only one host")); + return NULL; + } + + if (!(server =3D qemuBlockStorageSourceBuildHostsJSONSocketAddress(src= , true))) + return NULL; + + /* VxHS disk specification example: + * { driver:"vxhs", + * vdisk-id:"eb90327c-8302-4725-4e85ed4dc251", + * server:[{type:"tcp", host:"1.2.3.4", port:9999}]} + */ + if (virJSONValueObjectCreate(&ret, + "s:driver", protocol, + "s:vdisk-id", src->path, + "a:server", server, NULL) < 0) + virJSONValueFree(server); + + return ret; +} + + /** * qemuBlockStorageSourceGetBackendProps: * @src: disk source @@ -512,6 +543,11 @@ qemuBlockStorageSourceGetBackendProps(virStorageSource= Ptr src) goto cleanup; break; =20 + case VIR_STORAGE_NET_PROTOCOL_VXHS: + if (!(fileprops =3D qemuBlockStorageSourceGetVxHSProps(src))) + goto cleanup; + break; + case VIR_STORAGE_NET_PROTOCOL_NBD: case VIR_STORAGE_NET_PROTOCOL_RBD: case VIR_STORAGE_NET_PROTOCOL_SHEEPDOG: @@ -522,7 +558,6 @@ qemuBlockStorageSourceGetBackendProps(virStorageSourceP= tr src) case VIR_STORAGE_NET_PROTOCOL_FTPS: case VIR_STORAGE_NET_PROTOCOL_TFTP: case VIR_STORAGE_NET_PROTOCOL_SSH: - case VIR_STORAGE_NET_PROTOCOL_VXHS: case VIR_STORAGE_NET_PROTOCOL_NONE: case VIR_STORAGE_NET_PROTOCOL_LAST: break; diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index b7a896e..b9e2ab3 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -991,12 +991,16 @@ qemuBuildNetworkDriveStr(virStorageSourcePtr src, ret =3D virBufferContentAndReset(&buf); break; =20 + case VIR_STORAGE_NET_PROTOCOL_VXHS: + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", + _("VxHS protocol does not support URI syntax")); + goto cleanup; + case VIR_STORAGE_NET_PROTOCOL_SSH: virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("'ssh' protocol is not yet supported")); goto cleanup; =20 - case VIR_STORAGE_NET_PROTOCOL_VXHS: case VIR_STORAGE_NET_PROTOCOL_LAST: case VIR_STORAGE_NET_PROTOCOL_NONE: virReportError(VIR_ERR_INTERNAL_ERROR, @@ -1326,6 +1330,10 @@ qemuDiskSourceNeedsProps(virStorageSourcePtr src) src->nhosts > 1) return true; =20 + if (actualType =3D=3D VIR_STORAGE_TYPE_NETWORK && + src->protocol =3D=3D VIR_STORAGE_NET_PROTOCOL_VXHS) + return true; + return false; } =20 diff --git a/src/qemu/qemu_parse_command.c b/src/qemu/qemu_parse_command.c index 9190a37..6286c2e 100644 --- a/src/qemu/qemu_parse_command.c +++ b/src/qemu/qemu_parse_command.c @@ -736,6 +736,11 @@ qemuParseCommandLineDisk(virDomainXMLOptionPtr xmlopt, if (VIR_STRDUP(def->src->path, vdi) < 0) goto error; } + } else if (STRPREFIX(def->src->path, "vxhs:")) { + virReportError(VIR_ERR_INTERNAL_ERROR, + _("VxHS protocol does not support URI s= yntax '%s'"), + def->src->path); + goto error; } else { def->src->type =3D VIR_STORAGE_TYPE_FILE; } @@ -1944,6 +1949,10 @@ qemuParseCommandLine(virCapsPtr caps, disk->src->type =3D VIR_STORAGE_TYPE_NETWORK; disk->src->protocol =3D VIR_STORAGE_NET_PROTOCOL_SHEEPDOG; val +=3D strlen("sheepdog:"); + } else if (STRPREFIX(val, "vxhs:")) { + disk->src->type =3D VIR_STORAGE_TYPE_NETWORK; + disk->src->protocol =3D VIR_STORAGE_NET_PROTOCOL_VXHS; + val +=3D strlen("vxhs:"); } else { disk->src->type =3D VIR_STORAGE_TYPE_FILE; } @@ -2020,13 +2029,18 @@ qemuParseCommandLine(virCapsPtr caps, goto error; =20 break; + case VIR_STORAGE_NET_PROTOCOL_VXHS: + virReportError(VIR_ERR_INTERNAL_ERROR, + _("VxHS protocol does not support URI " + "syntax '%s'"), disk->src->path); + goto error; + break; case VIR_STORAGE_NET_PROTOCOL_HTTP: case VIR_STORAGE_NET_PROTOCOL_HTTPS: case VIR_STORAGE_NET_PROTOCOL_FTP: case VIR_STORAGE_NET_PROTOCOL_FTPS: case VIR_STORAGE_NET_PROTOCOL_TFTP: case VIR_STORAGE_NET_PROTOCOL_SSH: - case VIR_STORAGE_NET_PROTOCOL_VXHS: case VIR_STORAGE_NET_PROTOCOL_LAST: case VIR_STORAGE_NET_PROTOCOL_NONE: /* ignored for now */ diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index 364c359..0ed5d04 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -4582,6 +4582,32 @@ qemuProcessStartValidateShmem(virDomainObjPtr vm) =20 =20 static int +qemuProcessStartValidateDisks(virDomainObjPtr vm, + virQEMUCapsPtr qemuCaps) +{ + size_t i; + + for (i =3D 0; i < vm->def->ndisks; i++) { + virStorageSourcePtr src =3D vm->def->disks[i]->src; + + /* This is a best effort check as we can only check if the command + * option exists, but we cannot determine whether the running QEMU + * was build with '--enable-vxhs'. */ + if (src->type =3D=3D VIR_STORAGE_TYPE_NETWORK && + src->protocol =3D=3D VIR_STORAGE_NET_PROTOCOL_VXHS && + !virQEMUCapsGet(qemuCaps, QEMU_CAPS_VXHS)) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("VxHS protocol is not supported with this " + "QEMU binary")); + return -1; + } + } + + return 0; +} + + +static int qemuProcessStartValidateXML(virQEMUDriverPtr driver, virDomainObjPtr vm, virQEMUCapsPtr qemuCaps, @@ -4663,6 +4689,9 @@ qemuProcessStartValidate(virQEMUDriverPtr driver, if (qemuProcessStartValidateShmem(vm) < 0) return -1; =20 + if (qemuProcessStartValidateDisks(vm, qemuCaps) < 0) + return -1; + VIR_DEBUG("Checking for any possible (non-fatal) issues"); =20 qemuProcessStartWarnShmem(vm); diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-vxhs.ar= gs b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-vxhs.args new file mode 100644 index 0000000..86da1af --- /dev/null +++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-vxhs.args @@ -0,0 +1,27 @@ +LC_ALL=3DC \ +PATH=3D/bin \ +HOME=3D/home/test \ +USER=3Dtest \ +LOGNAME=3Dtest \ +QEMU_AUDIO_DRV=3Dnone \ +/usr/bin/qemu-system-x86_64 \ +-name QEMUGuest1 \ +-S \ +-M pc \ +-cpu qemu32 \ +-m 214 \ +-smp 1,sockets=3D1,cores=3D1,threads=3D1 \ +-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ +-nographic \ +-nodefaults \ +-chardev socket,id=3Dcharmonitor,path=3D/tmp/lib/domain--1-QEMUGuest1/moni= tor.sock,\ +server,nowait \ +-mon chardev=3Dcharmonitor,id=3Dmonitor,mode=3Dreadline \ +-no-acpi \ +-boot c \ +-usb \ +-drive file.driver=3Dvxhs,file.vdisk-id=3Deb90327c-8302-4725-9e1b-4e85ed4d= c251,\ +file.server.0.type=3Dtcp,file.server.0.host=3D192.168.0.1,file.server.0.po= rt=3D9999,\ +format=3Draw,if=3Dnone,id=3Ddrive-virtio-disk0,cache=3Dnone \ +-device virtio-blk-pci,bus=3Dpci.0,addr=3D0x4,drive=3Ddrive-virtio-disk0,\ +id=3Dvirtio-disk0 diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c index 18f06e5..b92ded8 100644 --- a/tests/qemuxml2argvtest.c +++ b/tests/qemuxml2argvtest.c @@ -931,6 +931,7 @@ mymain(void) # endif DO_TEST("disk-drive-network-rbd-ipv6", NONE); DO_TEST_FAILURE("disk-drive-network-rbd-no-colon", NONE); + DO_TEST("disk-drive-network-vxhs", QEMU_CAPS_VXHS); DO_TEST("disk-drive-no-boot", QEMU_CAPS_BOOTINDEX); DO_TEST_PARSE_ERROR("disk-device-lun-type-invalid", --=20 2.9.5 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Fri May 3 17:44:32 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1504286843768238.20510266326312; Fri, 1 Sep 2017 10:27:23 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 3B97EC9D2F; Fri, 1 Sep 2017 17:27:22 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 1CA2D17C3F; Fri, 1 Sep 2017 17:27:22 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id DB6281806107; Fri, 1 Sep 2017 17:27:21 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id v81HAAhb021743 for ; Fri, 1 Sep 2017 13:10:10 -0400 Received: by smtp.corp.redhat.com (Postfix) id 647EB7821B; Fri, 1 Sep 2017 17:10:10 +0000 (UTC) Received: from localhost.localdomain.com (ovpn-116-88.phx2.redhat.com [10.3.116.88]) by smtp.corp.redhat.com (Postfix) with ESMTP id 1AF8D7821A; Fri, 1 Sep 2017 17:10:10 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 3B97EC9D2F Authentication-Results: ext-mx05.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx05.extmail.prod.ext.phx2.redhat.com; spf=fail smtp.mailfrom=libvir-list-bounces@redhat.com From: John Ferlan To: libvir-list@redhat.com Date: Fri, 1 Sep 2017 13:09:51 -0400 Message-Id: <20170901170955.20281-8-jferlan@redhat.com> In-Reply-To: <20170901170955.20281-1-jferlan@redhat.com> References: <20170901170955.20281-1-jferlan@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-loop: libvir-list@redhat.com Cc: ashmit602@gmail.com Subject: [libvirt] [PATCH v7 07/11] conf: Introduce TLS options for VxHS block device clients X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.29]); Fri, 01 Sep 2017 17:27:22 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" From: Ashish Mittal Add a new TLS X.509 certificate type - "vxhs". This will handle the creation of a TLS certificate capability for properly configured VxHS network block device clients. The following describes the behavior of TLS for VxHS block device: (1) Two new options have been added in /etc/libvirt/qemu.conf to control TLS behavior with VxHS block devices "vxhs_tls" and "vxhs_tls_x509_cert_dir". (2) Setting "vxhs_tls=3D1" in /etc/libvirt/qemu.conf will enable TLS for VxHS block devices. (3) "vxhs_tls_x509_cert_dir" can be set to the full path where the TLS CA certificate and the client certificate and keys are saved. If this value is missing, the "default_tls_x509_cert_dir" will be used instead. If the environment is not configured properly the authentication to the VxHS server will fail. Signed-off-by: Ashish Mittal Signed-off-by: John Ferlan --- src/qemu/libvirtd_qemu.aug | 4 ++++ src/qemu/qemu.conf | 34 ++++++++++++++++++++++++++++++++++ src/qemu/qemu_conf.c | 16 ++++++++++++++++ src/qemu/qemu_conf.h | 3 +++ src/qemu/test_libvirtd_qemu.aug.in | 2 ++ 5 files changed, 59 insertions(+) diff --git a/src/qemu/libvirtd_qemu.aug b/src/qemu/libvirtd_qemu.aug index e1983d1..c19bf3a 100644 --- a/src/qemu/libvirtd_qemu.aug +++ b/src/qemu/libvirtd_qemu.aug @@ -115,6 +115,9 @@ module Libvirtd_qemu =3D =20 let memory_entry =3D str_entry "memory_backing_dir" =20 + let vxhs_entry =3D bool_entry "vxhs_tls" + | str_entry "vxhs_tls_x509_cert_dir" + (* Each entry in the config is one of the following ... *) let entry =3D default_tls_entry | vnc_entry @@ -133,6 +136,7 @@ module Libvirtd_qemu =3D | nvram_entry | gluster_debug_level_entry | memory_entry + | vxhs_entry =20 let comment =3D [ label "#comment" . del /#[ \t]*/ "# " . store /([^ \= t\n][^\n]*)?/ . del /\n/ "\n" ] let empty =3D [ label "#empty" . eol ] diff --git a/src/qemu/qemu.conf b/src/qemu/qemu.conf index f977e3b..2d20d79 100644 --- a/src/qemu/qemu.conf +++ b/src/qemu/qemu.conf @@ -258,6 +258,40 @@ #chardev_tls_x509_secret_uuid =3D "00000000-0000-0000-0000-000000000000" =20 =20 +# Enable use of TLS encryption for all VxHS network block devices that +# don't specifically disable. +# +# When the VxHS network block device server is set up appropriately, +# x509 certificates are required for authentication between the clients +# (qemu processes) and the remote VxHS server. +# +# It is necessary to setup CA and issue the client certificate before +# enabling this. +# +#vxhs_tls =3D 1 + + +# In order to override the default TLS certificate location for VxHS +# device TCP certificates, supply a valid path to the certificate director= y. +# This is used to authenticate the VxHS block device clients to the VxHS +# server. +# +# If the provided path does not exist then the default_tls_x509_cert_dir +# path will be used. +# +# VxHS block device clients expect the client certificate and key to be +# present in the certificate directory along with the CA master certificat= e. +# If using the default environment, default_tls_x509_verify must be config= ured. +# The server key as well as secret UUID that would decrypt it is not used. +# Thus a VxHS directory must contain the following: +# +# ca-cert.pem - the CA master certificate +# client-cert.pem - the client certificate signed with the ca-cert.pem +# client-key.pem - the client private key +# +#vxhs_tls_x509_cert_dir =3D "/etc/pki/libvirt-vxhs" + + # In order to override the default TLS certificate location for migration # certificates, supply a valid path to the certificate directory. If the # provided path does not exist then the default_tls_x509_cert_dir path diff --git a/src/qemu/qemu_conf.c b/src/qemu/qemu_conf.c index ab5f7cc..bcf798d 100644 --- a/src/qemu/qemu_conf.c +++ b/src/qemu/qemu_conf.c @@ -283,6 +283,7 @@ virQEMUDriverConfigPtr virQEMUDriverConfigNew(bool priv= ileged) SET_TLS_X509_CERT_DEFAULT(spice); SET_TLS_X509_CERT_DEFAULT(chardev); SET_TLS_X509_CERT_DEFAULT(migrate); + SET_TLS_X509_CERT_DEFAULT(vxhs); =20 #undef SET_TLS_X509_CERT_DEFAULT =20 @@ -380,6 +381,8 @@ static void virQEMUDriverConfigDispose(void *obj) VIR_FREE(cfg->chardevTLSx509certdir); VIR_FREE(cfg->chardevTLSx509secretUUID); =20 + VIR_FREE(cfg->vxhsTLSx509certdir); + VIR_FREE(cfg->migrateTLSx509certdir); VIR_FREE(cfg->migrateTLSx509secretUUID); =20 @@ -457,6 +460,7 @@ virQEMUDriverConfigTLSDirResetDefaults(virQEMUDriverCon= figPtr cfg) CHECK_RESET_CERT_DIR_DEFAULT(spice); CHECK_RESET_CERT_DIR_DEFAULT(chardev); CHECK_RESET_CERT_DIR_DEFAULT(migrate); + CHECK_RESET_CERT_DIR_DEFAULT(vxhs); =20 return 0; } @@ -556,6 +560,10 @@ int virQEMUDriverConfigLoadFile(virQEMUDriverConfigPtr= cfg, goto cleanup; if (virConfGetValueBool(conf, "spice_auto_unix_socket", &cfg->spiceAut= oUnixSocket) < 0) goto cleanup; + if (virConfGetValueBool(conf, "vxhs_tls", &cfg->vxhsTLS) < 0) + goto cleanup; + if (virConfGetValueString(conf, "vxhs_tls_x509_cert_dir", &cfg->vxhsTL= Sx509certdir) < 0) + goto cleanup; =20 #define GET_CONFIG_TLS_CERTINFO(val) = \ do { = \ @@ -976,6 +984,14 @@ virQEMUDriverConfigValidate(virQEMUDriverConfigPtr cfg) return -1; } =20 + if (STRNEQ(cfg->vxhsTLSx509certdir, SYSCONFDIR "/pki/qemu") && + !virFileExists(cfg->vxhsTLSx509certdir)) { + virReportError(VIR_ERR_CONF_SYNTAX, + _("vxhs_tls_x509_cert_dir directory '%s' does not e= xist"), + cfg->vxhsTLSx509certdir); + return -1; + } + return 0; } =20 diff --git a/src/qemu/qemu_conf.h b/src/qemu/qemu_conf.h index d469b50..13b6f81 100644 --- a/src/qemu/qemu_conf.h +++ b/src/qemu/qemu_conf.h @@ -203,6 +203,9 @@ struct _virQEMUDriverConfig { unsigned int glusterDebugLevel; =20 char *memoryBackingDir; + + bool vxhsTLS; + char *vxhsTLSx509certdir; }; =20 /* Main driver state */ diff --git a/src/qemu/test_libvirtd_qemu.aug.in b/src/qemu/test_libvirtd_qe= mu.aug.in index 676d48c..688e5b9 100644 --- a/src/qemu/test_libvirtd_qemu.aug.in +++ b/src/qemu/test_libvirtd_qemu.aug.in @@ -25,6 +25,8 @@ module Test_libvirtd_qemu =3D { "chardev_tls_x509_cert_dir" =3D "/etc/pki/libvirt-chardev" } { "chardev_tls_x509_verify" =3D "1" } { "chardev_tls_x509_secret_uuid" =3D "00000000-0000-0000-0000-000000000000= " } +{ "vxhs_tls" =3D "1" } +{ "vxhs_tls_x509_cert_dir" =3D "/etc/pki/libvirt-vxhs" } { "migrate_tls_x509_cert_dir" =3D "/etc/pki/libvirt-migrate" } { "migrate_tls_x509_verify" =3D "1" } { "migrate_tls_x509_secret_uuid" =3D "00000000-0000-0000-0000-000000000000= " } --=20 2.9.5 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Fri May 3 17:44:32 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1504286864181862.9394776736199; Fri, 1 Sep 2017 10:27:44 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id B7A9465873; Fri, 1 Sep 2017 17:27:42 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 94B747B082; Fri, 1 Sep 2017 17:27:42 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 608EA3FC74; Fri, 1 Sep 2017 17:27:42 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id v81HAA2V021748 for ; Fri, 1 Sep 2017 13:10:10 -0400 Received: by smtp.corp.redhat.com (Postfix) id CCD227821B; Fri, 1 Sep 2017 17:10:10 +0000 (UTC) Received: from localhost.localdomain.com (ovpn-116-88.phx2.redhat.com [10.3.116.88]) by smtp.corp.redhat.com (Postfix) with ESMTP id 865827821A; Fri, 1 Sep 2017 17:10:10 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com B7A9465873 Authentication-Results: ext-mx09.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx09.extmail.prod.ext.phx2.redhat.com; spf=fail smtp.mailfrom=libvir-list-bounces@redhat.com From: John Ferlan To: libvir-list@redhat.com Date: Fri, 1 Sep 2017 13:09:52 -0400 Message-Id: <20170901170955.20281-9-jferlan@redhat.com> In-Reply-To: <20170901170955.20281-1-jferlan@redhat.com> References: <20170901170955.20281-1-jferlan@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-loop: libvir-list@redhat.com Cc: ashmit602@gmail.com Subject: [libvirt] [PATCH v7 08/11] util: Add TLS attributes to virStorageSource X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.38]); Fri, 01 Sep 2017 17:27:43 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" From: Ashish Mittal Add an optional virTristateBool haveTLS to virStorageSource to manage whether a storage source will be using TLS. Sample XML for a VxHS disk: Additionally add a tlsFromConfig boolean to control whether the TLS setting was due to domain configuration or qemu.conf global setting in order to decide whether to Format the haveTLS setting for either a live or saved domain configuration file. Update the qemuxml2xmltest in order to add a test to show the proper parsing. Also update the docs to describe the tls attribute plus clean up the description in the surrounding area to make the information a bit more readable rather than one winding paragraph. Signed-off-by: Ashish Mittal Signed-off-by: John Ferlan --- docs/formatdomain.html.in | 40 ++++++++++++++++--= ---- docs/schemas/domaincommon.rng | 5 +++ src/conf/domain_conf.c | 28 +++++++++++++-- src/util/virstoragefile.c | 2 ++ src/util/virstoragefile.h | 7 ++++ ...emuxml2argv-disk-drive-network-tlsx509-vxhs.xml | 32 +++++++++++++++++ ...uxml2xmlout-disk-drive-network-tlsx509-vxhs.xml | 34 ++++++++++++++++++ tests/qemuxml2xmltest.c | 1 + 8 files changed, 137 insertions(+), 12 deletions(-) create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-= tlsx509-vxhs.xml create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-drive-netw= ork-tlsx509-vxhs.xml diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in index 446ffff..26c0067 100644 --- a/docs/formatdomain.html.in +++ b/docs/formatdomain.html.in @@ -2520,19 +2520,39 @@
The protocol attribute specifies the protocol to access to the requested image. Possible values are "nbd", - "iscsi", "rbd", "sheepdog", "gluster" or "vxhs". If the - protocol attribute is "rbd", "sheepdog", "glust= er" - or "vxhs", an additional attribute name is - mandatory to specify which volume/image will be used. For "n= bd", - the name attribute is optional. For "iscsi" - (since 1.0.4), the name - attribute may include a logical unit number, separated from = the - target's name by a slash (e.g., + "iscsi", "rbd", "sheepdog", "gluster" or "vxhs". + +

If the protocol attribute is "rbd", "sheepdo= g", + "gluster", or "vxhs", an additional attribute name + is mandatory to specify which volume/image will be used. +

+ +

For "nbd", the name attribute is optional. +

+ +

For "iscsi" (since 1.0.4), t= he + name attribute may include a logical unit numbe= r, + separated from the target's name by a slash (e.g., iqn.2013-07.com.example:iscsi-pool/1). If not specified, the default LUN is zero. - For "vxhs" (since 3.8.0), the +

+ +

For "vxhs" (since 3.8.0), the name is the UUID of the volume, assigned by the - HyperScale server. + HyperScale server. Additionally, an optional attribute + tls (QEMU only) can be used to control whether a + VxHS block device would utilize a hypervisor configured TLS + X.509 certificate environment in order to encrypt the data + channel. For the QEMU hypervisor, usage of a TLS environment= can + also be globally controlled on the host by the + vxhs_tls and vxhs_tls_x509_cert_dir or + default_tls_x509_cert_dir settings in the file + /etc/libvirt/qemu.conf. If vxhs_tls is enabled, + then unless the domain tls attribute is set to = "no", + libvirt will use the host configured TLS environment. If the + tls attribute is set to "yes", then regardless = of + the qemu.conf setting, TLS authentication will be attempted. +

Since 0.8.7
volume
diff --git a/docs/schemas/domaincommon.rng b/docs/schemas/domaincommon.rng index 7fe4e21..520c235 100644 --- a/docs/schemas/domaincommon.rng +++ b/docs/schemas/domaincommon.rng @@ -1650,6 +1650,11 @@ + + + + + diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index f7574d7..ae4cd01 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -8039,6 +8039,7 @@ virDomainDiskSourceParse(xmlNodePtr node, int ret =3D -1; char *protocol =3D NULL; xmlNodePtr saveNode =3D ctxt->node; + char *haveTLS =3D NULL; =20 ctxt->node =3D node; =20 @@ -8072,6 +8073,19 @@ virDomainDiskSourceParse(xmlNodePtr node, goto cleanup; } =20 + /* Check tls=3Dyes|no domain setting for the block device + * At present only VxHS. Other block devices may be added later */ + if (src->protocol =3D=3D VIR_STORAGE_NET_PROTOCOL_VXHS && + (haveTLS =3D virXMLPropString(node, "tls"))) { + if ((src->haveTLS =3D + virTristateBoolTypeFromString(haveTLS)) <=3D 0) { + virReportError(VIR_ERR_XML_ERROR, + _("unknown disk source 'tls' setting '%s'"), + haveTLS); + goto cleanup; + } + } + /* for historical reasons the volume name for gluster volume is st= ored * as a part of the path. This is hard to work with when dealing w= ith * relative names. Split out the volume into a separate variable */ @@ -8127,6 +8141,7 @@ virDomainDiskSourceParse(xmlNodePtr node, =20 cleanup: VIR_FREE(protocol); + VIR_FREE(haveTLS); ctxt->node =3D saveNode; return ret; } @@ -21606,7 +21621,8 @@ virDomainSourceDefFormatSeclabel(virBufferPtr buf, =20 static int virDomainDiskSourceFormatNetwork(virBufferPtr buf, - virStorageSourcePtr src) + virStorageSourcePtr src, + unsigned int flags) { size_t n; char *path =3D NULL; @@ -21623,6 +21639,14 @@ virDomainDiskSourceFormatNetwork(virBufferPtr buf, =20 VIR_FREE(path); =20 + if (src->haveTLS !=3D VIR_TRISTATE_BOOL_ABSENT && + !(flags & VIR_DOMAIN_DEF_FORMAT_MIGRATABLE && + src->tlsFromConfig)) + virBufferAsprintf(buf, " tls=3D'%s'", + virTristateBoolTypeToString(src->haveTLS)); + if (flags & VIR_DOMAIN_DEF_FORMAT_STATUS) + virBufferAsprintf(buf, " tlsFromConfig=3D'%d'", src->tlsFromConfig= ); + if (src->nhosts =3D=3D 0 && !src->snapshot && !src->configFile) { virBufferAddLit(buf, "/>\n"); } else { @@ -21697,7 +21721,7 @@ virDomainDiskSourceFormatInternal(virBufferPtr buf, break; =20 case VIR_STORAGE_TYPE_NETWORK: - if (virDomainDiskSourceFormatNetwork(buf, src) < 0) + if (virDomainDiskSourceFormatNetwork(buf, src, flags) < 0) goto error; break; =20 diff --git a/src/util/virstoragefile.c b/src/util/virstoragefile.c index f3fe529..eb312cd 100644 --- a/src/util/virstoragefile.c +++ b/src/util/virstoragefile.c @@ -2039,6 +2039,8 @@ virStorageSourceCopy(const virStorageSource *src, ret->physical =3D src->physical; ret->readonly =3D src->readonly; ret->shared =3D src->shared; + ret->haveTLS =3D src->haveTLS; + ret->tlsFromConfig =3D src->tlsFromConfig; =20 /* storage driver metadata are not copied */ ret->drv =3D NULL; diff --git a/src/util/virstoragefile.h b/src/util/virstoragefile.h index f7e897f..4817090 100644 --- a/src/util/virstoragefile.h +++ b/src/util/virstoragefile.h @@ -281,6 +281,13 @@ struct _virStorageSource { /* metadata that allows identifying given storage source */ char *nodeformat; /* name of the format handler object */ char *nodestorage; /* name of the storage object */ + + /* An optional setting to enable usage of TLS for the storage source */ + int haveTLS; /* enum virTristateBool */ + + /* Indication whether the haveTLS value was altered due to qemu.conf + * setting when haveTLS is missing from the domain config file */ + bool tlsFromConfig; }; =20 =20 diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-tlsx509= -vxhs.xml b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-tlsx509-= vxhs.xml new file mode 100644 index 0000000..61b5e2e --- /dev/null +++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-tlsx509-vxhs.x= ml @@ -0,0 +1,32 @@ + + QEMUGuest1 + c7a5fdbd-edaf-9455-926a-d65c16db1809 + 219136 + 219136 + 1 + + hvm + + + + destroy + restart + destroy + + /usr/bin/qemu-system-x86_64 + + + + + + + eb90327c-8302-4725-9e1b-4e85ed4dc251 +
+ + + + + + + + diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-drive-network-tls= x509-vxhs.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-drive-network-= tlsx509-vxhs.xml new file mode 100644 index 0000000..16f0883 --- /dev/null +++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-drive-network-tlsx509-vx= hs.xml @@ -0,0 +1,34 @@ + + QEMUGuest1 + c7a5fdbd-edaf-9455-926a-d65c16db1809 + 219136 + 219136 + 1 + + hvm + + + + destroy + restart + destroy + + /usr/bin/qemu-system-x86_64 + + + + + + + eb90327c-8302-4725-9e1b-4e85ed4dc251 +
+ + +
+ + + + + + + diff --git a/tests/qemuxml2xmltest.c b/tests/qemuxml2xmltest.c index 82db8cc..4d1c175 100644 --- a/tests/qemuxml2xmltest.c +++ b/tests/qemuxml2xmltest.c @@ -475,6 +475,7 @@ mymain(void) DO_TEST("disk-drive-network-rbd-ceph-env", NONE); DO_TEST("disk-drive-network-sheepdog", NONE); DO_TEST("disk-drive-network-vxhs", NONE); + DO_TEST("disk-drive-network-tlsx509-vxhs", NONE); DO_TEST("disk-scsi-device", QEMU_CAPS_NODEFCONFIG, QEMU_CAPS_SCSI_LSI); DO_TEST("disk-scsi-vscsi", NONE); --=20 2.9.5 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Fri May 3 17:44:32 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 150428682476752.43880829634804; Fri, 1 Sep 2017 10:27:04 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 55AACC9D25; Fri, 1 Sep 2017 17:27:03 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 32EE67821A; Fri, 1 Sep 2017 17:27:03 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id EFAEE1806109; Fri, 1 Sep 2017 17:27:02 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id v81HABSf021753 for ; Fri, 1 Sep 2017 13:10:11 -0400 Received: by smtp.corp.redhat.com (Postfix) id 405427821A; Fri, 1 Sep 2017 17:10:11 +0000 (UTC) Received: from localhost.localdomain.com (ovpn-116-88.phx2.redhat.com [10.3.116.88]) by smtp.corp.redhat.com (Postfix) with ESMTP id EEA1E7821B; Fri, 1 Sep 2017 17:10:10 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 55AACC9D25 Authentication-Results: ext-mx05.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx05.extmail.prod.ext.phx2.redhat.com; spf=fail smtp.mailfrom=libvir-list-bounces@redhat.com From: John Ferlan To: libvir-list@redhat.com Date: Fri, 1 Sep 2017 13:09:53 -0400 Message-Id: <20170901170955.20281-10-jferlan@redhat.com> In-Reply-To: <20170901170955.20281-1-jferlan@redhat.com> References: <20170901170955.20281-1-jferlan@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-loop: libvir-list@redhat.com Cc: ashmit602@gmail.com Subject: [libvirt] [PATCH v7 09/11] qemu: Introduce qemuDomainPrepareDiskSource X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.29]); Fri, 01 Sep 2017 17:27:03 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Introduce a function to setup any TLS needs for a disk source. If there's a configuration or other error setting up the disk source for TLS, then cause the domain startup to fail. For VxHS, follow the chardevTLS model where if the src->haveTLS hasn't been configured, then take the system/global cfg->haveTLS setting for the storage source *and* mark that we've done so via the tlsFromConfig setting in storage source. Next, if we are using TLS, then generate an alias into a virStorageSource 'tlsAlias' field that will be used to create the TLS object and added to the disk object in order to link the two together for QEMU. Signed-off-by: John Ferlan --- src/qemu/qemu_domain.c | 71 +++++++++++++++++++++++++++++++++++++++++++= ++++ src/qemu/qemu_domain.h | 11 ++++++++ src/qemu/qemu_process.c | 4 +++ src/util/virstoragefile.c | 5 +++- src/util/virstoragefile.h | 6 ++++ 5 files changed, 96 insertions(+), 1 deletion(-) diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index b98ffff..c955000 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -7520,6 +7520,77 @@ qemuDomainPrepareChardevSource(virDomainDefPtr def, } =20 =20 +/* qemuProcessPrepareDiskSourceTLS: + * @source: pointer to host interface data for disk device + * @diskAlias: alias use for the disk device + * @cfg: driver configuration + * + * Updates host interface TLS encryption setting based on qemu.conf + * for disk devices. This will be presented as "tls=3D'yes|no'" in + * live XML of a guest. + * + * Returns 0 on success, -1 on bad config/failure + */ +int +qemuDomainPrepareDiskSourceTLS(virStorageSourcePtr src, + const char *diskAlias, + virQEMUDriverConfigPtr cfg) +{ + + /* VxHS doesn't utilize a password protected server certificate, + * so no need to add a secinfo for a secret UUID. */ + if (src->type =3D=3D VIR_STORAGE_TYPE_NETWORK && + src->protocol =3D=3D VIR_STORAGE_NET_PROTOCOL_VXHS) { + + if (src->haveTLS =3D=3D VIR_TRISTATE_BOOL_ABSENT) { + if (cfg->vxhsTLS) + src->haveTLS =3D VIR_TRISTATE_BOOL_YES; + else + src->haveTLS =3D VIR_TRISTATE_BOOL_NO; + src->tlsFromConfig =3D true; + } + + if (src->haveTLS =3D=3D VIR_TRISTATE_BOOL_YES) { + if (!diskAlias) { + virReportError(VIR_ERR_INVALID_ARG, "%s", + _("disk does not have an alias")); + return -1; + } + + if (!(src->tlsAlias =3D qemuAliasTLSObjFromSrcAlias(diskAlias)= )) + return -1; + } + } + + return 0; +} + + +/* qemuProcessPrepareDiskSource: + * @def: live domain definition + * @driver: qemu driver + * + * Iterate through all disk devices to setup/check any that would be + * using TLS. + * + * Returns 0 on success, -1 on failure + */ +int +qemuDomainPrepareDiskSource(virDomainDefPtr def, + virQEMUDriverConfigPtr cfg) +{ + size_t i; + + for (i =3D 0; i < def->ndisks; i++) { + if (qemuDomainPrepareDiskSourceTLS(def->disks[i]->src, + def->disks[i]->info.alias, + cfg) < 0) + return -1; + } + + return 0; +} + =20 int qemuDomainPrepareShmemChardev(virDomainShmemDefPtr shmem) diff --git a/src/qemu/qemu_domain.h b/src/qemu/qemu_domain.h index f93b09b..cec9704 100644 --- a/src/qemu/qemu_domain.h +++ b/src/qemu/qemu_domain.h @@ -845,6 +845,17 @@ void qemuDomainPrepareChardevSource(virDomainDefPtr de= f, virQEMUDriverPtr driver) ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2); =20 +int +qemuDomainPrepareDiskSourceTLS(virStorageSourcePtr src, + const char *diskAlias, + virQEMUDriverConfigPtr cfg) + ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(3); + +int +qemuDomainPrepareDiskSource(virDomainDefPtr def, + virQEMUDriverConfigPtr cfg) + ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2); + int qemuDomainPrepareShmemChardev(virDomainShmemDefPtr shmem) ATTRIBUTE_NONNULL(1); =20 diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index 0ed5d04..6d6ea16 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -5355,6 +5355,10 @@ qemuProcessPrepareDomain(virConnectPtr conn, if (qemuDomainMasterKeyCreate(vm) < 0) goto cleanup; =20 + VIR_DEBUG("Prepare disk source backends for TLS"); + if (qemuDomainPrepareDiskSource(vm->def, cfg) < 0) + goto cleanup; + VIR_DEBUG("Prepare chardev source backends for TLS"); qemuDomainPrepareChardevSource(vm->def, driver); =20 diff --git a/src/util/virstoragefile.c b/src/util/virstoragefile.c index eb312cd..da137f7 100644 --- a/src/util/virstoragefile.c +++ b/src/util/virstoragefile.c @@ -2054,7 +2054,8 @@ virStorageSourceCopy(const virStorageSource *src, VIR_STRDUP(ret->configFile, src->configFile) < 0 || VIR_STRDUP(ret->nodeformat, src->nodeformat) < 0 || VIR_STRDUP(ret->nodestorage, src->nodestorage) < 0 || - VIR_STRDUP(ret->compat, src->compat) < 0) + VIR_STRDUP(ret->compat, src->compat) < 0 || + VIR_STRDUP(ret->tlsAlias, src->tlsAlias) < 0) goto error; =20 if (src->nhosts) { @@ -2279,6 +2280,8 @@ virStorageSourceClear(virStorageSourcePtr def) =20 virStorageSourceBackingStoreClear(def); =20 + VIR_FREE(def->tlsAlias); + memset(def, 0, sizeof(*def)); } =20 diff --git a/src/util/virstoragefile.h b/src/util/virstoragefile.h index 4817090..eadbcc1 100644 --- a/src/util/virstoragefile.h +++ b/src/util/virstoragefile.h @@ -288,6 +288,12 @@ struct _virStorageSource { /* Indication whether the haveTLS value was altered due to qemu.conf * setting when haveTLS is missing from the domain config file */ bool tlsFromConfig; + + /* If TLS is used, then mgmt of the TLS credentials occurs via an + * object that is generated using a specific alias. That alias must + * be used when generating the disk object in order to link the + * two together. */ + char *tlsAlias; }; =20 =20 --=20 2.9.5 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Fri May 3 17:44:32 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1504286884878445.49998563179133; Fri, 1 Sep 2017 10:28:04 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 9C38119C33B; Fri, 1 Sep 2017 17:28:03 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 7E21317C18; Fri, 1 Sep 2017 17:28:03 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 46F9A1806109; Fri, 1 Sep 2017 17:28:03 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id v81HABAh021761 for ; Fri, 1 Sep 2017 13:10:11 -0400 Received: by smtp.corp.redhat.com (Postfix) id A845A7821A; Fri, 1 Sep 2017 17:10:11 +0000 (UTC) Received: from localhost.localdomain.com (ovpn-116-88.phx2.redhat.com [10.3.116.88]) by smtp.corp.redhat.com (Postfix) with ESMTP id 627077835E; Fri, 1 Sep 2017 17:10:11 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 9C38119C33B Authentication-Results: ext-mx05.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx05.extmail.prod.ext.phx2.redhat.com; spf=fail smtp.mailfrom=libvir-list-bounces@redhat.com From: John Ferlan To: libvir-list@redhat.com Date: Fri, 1 Sep 2017 13:09:54 -0400 Message-Id: <20170901170955.20281-11-jferlan@redhat.com> In-Reply-To: <20170901170955.20281-1-jferlan@redhat.com> References: <20170901170955.20281-1-jferlan@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-loop: libvir-list@redhat.com Cc: ashmit602@gmail.com Subject: [libvirt] [PATCH v7 10/11] util: Add virstoragetest to parse/format a tls='yes' X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.29]); Fri, 01 Sep 2017 17:28:04 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" From: Ashish Mittal Add a test case to verify TLS arguments are parsed correctly for a VxHS disk. This includes saving off a found tls-creds into the storage source @tlsAlias field since that's what's used to link the TLS object for the authentication credentials and the disk. Test case verifies that XML is generated correctly for a VxHS disk having TLS enabled. Signed-off-by: Ashish Mittal Signed-off-by: John Ferlan --- src/util/virstoragefile.c | 9 +++++++++ tests/virstoragetest.c | 12 ++++++++++++ 2 files changed, 21 insertions(+) diff --git a/src/util/virstoragefile.c b/src/util/virstoragefile.c index da137f7..078d475 100644 --- a/src/util/virstoragefile.c +++ b/src/util/virstoragefile.c @@ -3225,6 +3225,7 @@ virStorageSourceParseBackingJSONVxHS(virStorageSource= Ptr src, { const char *vdisk_id =3D virJSONValueObjectGetString(json, "vdisk-id"); virJSONValuePtr server =3D virJSONValueObjectGetObject(json, "server"); + const char *haveTLS =3D virJSONValueObjectGetString(json, "tls-creds"); =20 if (!vdisk_id || !server) { virReportError(VIR_ERR_INVALID_ARG, "%s", @@ -3243,6 +3244,14 @@ virStorageSourceParseBackingJSONVxHS(virStorageSourc= ePtr src, return -1; src->nhosts =3D 1; =20 + if (haveTLS) { + VIR_FREE(src->tlsAlias); + if (VIR_STRDUP(src->tlsAlias, haveTLS) < 0) + return -1; + + src->haveTLS =3D VIR_TRISTATE_BOOL_YES; + } + if (virStorageSourceParseBackingJSONInetSocketAddress(src->hosts, server) < 0) return -1; diff --git a/tests/virstoragetest.c b/tests/virstoragetest.c index ffebd4d..75ad633 100644 --- a/tests/virstoragetest.c +++ b/tests/virstoragetest.c @@ -1603,6 +1603,18 @@ mymain(void) "\n" " \n" "\n"); + TEST_BACKING_PARSE("json:{\"file\":{\"driver\":\"vxhs\"," + "\"vdisk-id\":\"c6718f6b-0401-441d-= a8c3-1f0064d75ee0\"," + "\"server\": { \"type\":\"tcp\"," + "\"host\":\"example.= com\"," + "\"port\":\"9999\"" + "}," + "\"tls-creds\":\"objvirtio-disk0_tl= s0\"" + "}" + "}", + "\n" + " \n" + "\n"); #endif /* WITH_YAJL */ =20 cleanup: --=20 2.9.5 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Fri May 3 17:44:32 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1504286905572997.0476617303336; Fri, 1 Sep 2017 10:28:25 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 4E0317E45C; Fri, 1 Sep 2017 17:28:24 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 2813E7838F; Fri, 1 Sep 2017 17:28:24 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id E3440180610B; Fri, 1 Sep 2017 17:28:23 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id v81HACJH021778 for ; Fri, 1 Sep 2017 13:10:12 -0400 Received: by smtp.corp.redhat.com (Postfix) id 1B4097821A; Fri, 1 Sep 2017 17:10:12 +0000 (UTC) Received: from localhost.localdomain.com (ovpn-116-88.phx2.redhat.com [10.3.116.88]) by smtp.corp.redhat.com (Postfix) with ESMTP id C85BB78352; Fri, 1 Sep 2017 17:10:11 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 4E0317E45C Authentication-Results: ext-mx03.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx03.extmail.prod.ext.phx2.redhat.com; spf=fail smtp.mailfrom=libvir-list-bounces@redhat.com From: John Ferlan To: libvir-list@redhat.com Date: Fri, 1 Sep 2017 13:09:55 -0400 Message-Id: <20170901170955.20281-12-jferlan@redhat.com> In-Reply-To: <20170901170955.20281-1-jferlan@redhat.com> References: <20170901170955.20281-1-jferlan@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-loop: libvir-list@redhat.com Cc: ashmit602@gmail.com Subject: [libvirt] [PATCH v7 11/11] qemu: Add TLS support for Veritas HyperScale (VxHS) X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.27]); Fri, 01 Sep 2017 17:28:24 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" From: Ashish Mittal Alter qemu command line generation in order to possibly add TLS for a suitably configured domain. Sample TLS args generated by libvirt - -object tls-creds-x509,id=3Dobjvirtio-disk0_tls0,dir=3D/etc/pki/qemu,\ endpoint=3Dclient,verify-peer=3Dyes \ -drive file.driver=3Dvxhs,file.tls-creds=3Dobjvirtio-disk0_tls0,\ file.vdisk-id=3Deb90327c-8302-4725-9e1b-4e85ed4dc251,\ file.server.0.type=3Dtcp,file.server.0.host=3D192.168.0.1,\ file.server.0.port=3D9999,format=3Draw,if=3Dnone,\ id=3Ddrive-virtio-disk0,cache=3Dnone \ -device virtio-blk-pci,bus=3Dpci.0,addr=3D0x4,drive=3Ddrive-virtio-disk= 0,\ id=3Dvirtio-disk0 Update the qemuxml2argvtest with a couple of examples. One for a simple case and the other a bit more complex where multiple VxHS disks are added where at least one uses a VxHS that doesn't require TLS credentials and thus sets the domain disk source attribute "tls =3D 'no'". Update the hotplug to be able to handle processing the tlsAlias whether it's to add the TLS object when hotplugging a disk or to remove the TLS object when hot unplugging a disk. The hot plug/unplug code is largely generic, but the addition code does make the VXHS specific checks only because it needs to grab the correct config directory and generate the object as the command line would do. Signed-off-by: Ashish Mittal Signed-off-by: John Ferlan --- src/qemu/qemu_block.c | 8 +++ src/qemu/qemu_command.c | 29 +++++++++ src/qemu/qemu_hotplug.c | 73 ++++++++++++++++++= ++++ ...-disk-drive-network-tlsx509-multidisk-vxhs.args | 43 +++++++++++++ ...v-disk-drive-network-tlsx509-multidisk-vxhs.xml | 50 +++++++++++++++ ...muxml2argv-disk-drive-network-tlsx509-vxhs.args | 30 +++++++++ tests/qemuxml2argvtest.c | 7 +++ 7 files changed, 240 insertions(+) create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-= tlsx509-multidisk-vxhs.args create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-= tlsx509-multidisk-vxhs.xml create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-= tlsx509-vxhs.args diff --git a/src/qemu/qemu_block.c b/src/qemu/qemu_block.c index f5269fb..be4e8fa 100644 --- a/src/qemu/qemu_block.c +++ b/src/qemu/qemu_block.c @@ -495,16 +495,24 @@ qemuBlockStorageSourceGetVxHSProps(virStorageSourcePt= r src) return NULL; } =20 + if (src->haveTLS =3D=3D VIR_TRISTATE_BOOL_YES && !src->tlsAlias) { + virReportError(VIR_ERR_INVALID_ARG, "%s", + _("VxHS disk does not have TLS alias set")); + return NULL; + } + if (!(server =3D qemuBlockStorageSourceBuildHostsJSONSocketAddress(src= , true))) return NULL; =20 /* VxHS disk specification example: * { driver:"vxhs", + * [tls-creds:"objvirtio-disk0_tls0",] * vdisk-id:"eb90327c-8302-4725-4e85ed4dc251", * server:[{type:"tcp", host:"1.2.3.4", port:9999}]} */ if (virJSONValueObjectCreate(&ret, "s:driver", protocol, + "S:tls-creds", src->tlsAlias, "s:vdisk-id", src->path, "a:server", server, NULL) < 0) virJSONValueFree(server); diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index b9e2ab3..d6b04a3 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -791,6 +791,32 @@ qemuBuildTLSx509CommandLine(virCommandPtr cmd, } =20 =20 +/* qemuBuildDiskTLSx509CommandLine: + * + * Add TLS object if the disk uses a secure communication channel + * + * Returns 0 on success, -1 w/ error on some sort of failure. + */ +static int +qemuBuildDiskTLSx509CommandLine(virCommandPtr cmd, + virQEMUDriverConfigPtr cfg, + virDomainDiskDefPtr disk, + virQEMUCapsPtr qemuCaps) +{ + virStorageSourcePtr src =3D disk->src; + + /* other protocols may be added later */ + if (src->protocol =3D=3D VIR_STORAGE_NET_PROTOCOL_VXHS && + disk->src->haveTLS =3D=3D VIR_TRISTATE_BOOL_YES) { + return qemuBuildTLSx509CommandLine(cmd, cfg->vxhsTLSx509certdir, + false, true, false, + disk->info.alias, qemuCaps); + } + + return 0; +} + + static char * qemuBuildNetworkDriveURI(virStorageSourcePtr src, qemuDomainSecretInfoPtr secinfo) @@ -2218,6 +2244,9 @@ qemuBuildDiskDriveCommandLine(virCommandPtr cmd, if (qemuBuildDiskSecinfoCommandLine(cmd, encinfo) < 0) return -1; =20 + if (qemuBuildDiskTLSx509CommandLine(cmd, cfg, disk, qemuCaps) < 0) + return -1; + virCommandAddArg(cmd, "-drive"); =20 if (!(optstr =3D qemuBuildDriveStr(disk, cfg, driveBoot, qemuCaps)= )) diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c index 9611df5..4c1074d 100644 --- a/src/qemu/qemu_hotplug.c +++ b/src/qemu/qemu_hotplug.c @@ -152,6 +152,55 @@ qemuDomainPrepareDisk(virQEMUDriverPtr driver, =20 =20 static int +qemuDomainAddDiskTLSObject(virQEMUDriverPtr driver, + virDomainObjPtr vm, + virDomainDiskDefPtr disk, + char **tlsAlias) +{ + int ret =3D -1; + virQEMUDriverConfigPtr cfg =3D virQEMUDriverGetConfig(driver); + qemuDomainObjPrivatePtr priv =3D vm->privateData; + virStorageSourcePtr src =3D disk->src; + virJSONValuePtr tlsProps =3D NULL; + + /* NB: This may alter haveTLS based on cfg */ + qemuDomainPrepareDiskSourceTLS(src, disk->info.alias, cfg); + + if (src->haveTLS !=3D VIR_TRISTATE_BOOL_YES) { + ret =3D 0; + goto cleanup; + } + + /* Initial implementation doesn't require/use a secret to decrypt + * a server certificate, so there's no need to manage a tlsSecAlias + * and tlsSecProps. See qemuDomainAddChardevTLSObjects for the + * methodology required to add a secret object. */ + + /* For a VxHS environment, create a TLS object for the client to + * connect to the VxHS server. */ + if (src->type =3D=3D VIR_STORAGE_TYPE_NETWORK && + src->protocol =3D=3D VIR_STORAGE_NET_PROTOCOL_VXHS && + qemuDomainGetTLSObjects(priv->qemuCaps, NULL, + cfg->vxhsTLSx509certdir, false, true, + disk->info.alias, &tlsProps, tlsAlias, + NULL, NULL) < 0) + goto cleanup; + + if (qemuDomainAddTLSObjects(driver, vm, QEMU_ASYNC_JOB_NONE, + NULL, NULL, *tlsAlias, &tlsProps) < 0) + goto cleanup; + + ret =3D 0; + + cleanup: + virJSONValueFree(tlsProps); + virObjectUnref(cfg); + + return ret; +} + + +static int qemuHotplugWaitForTrayEject(virQEMUDriverPtr driver, virDomainObjPtr vm, virDomainDiskDefPtr disk, @@ -315,6 +364,7 @@ qemuDomainAttachVirtioDiskDevice(virConnectPtr conn, char *devstr =3D NULL; char *drivestr =3D NULL; char *drivealias =3D NULL; + char *tlsAlias =3D NULL; bool releaseaddr =3D false; bool driveAdded =3D false; bool secobjAdded =3D false; @@ -372,6 +422,9 @@ qemuDomainAttachVirtioDiskDevice(virConnectPtr conn, if (encinfo && qemuBuildSecretInfoProps(encinfo, &encobjProps) < 0) goto error; =20 + if (qemuDomainAddDiskTLSObject(driver, vm, disk, &tlsAlias) < 0) + goto error; + if (!(drivestr =3D qemuBuildDriveStr(disk, cfg, false, priv->qemuCaps)= )) goto error; =20 @@ -422,6 +475,7 @@ qemuDomainAttachVirtioDiskDevice(virConnectPtr conn, ret =3D 0; =20 cleanup: + VIR_FREE(tlsAlias); virJSONValueFree(secobjProps); virJSONValueFree(encobjProps); qemuDomainSecretDiskDestroy(disk); @@ -453,6 +507,8 @@ qemuDomainAttachVirtioDiskDevice(virConnectPtr conn, virDomainAuditDisk(vm, NULL, disk->src, "attach", false); =20 error: + qemuDomainDelTLSObjects(driver, vm, QEMU_ASYNC_JOB_NONE, NULL, tlsAlia= s); + if (releaseaddr) qemuDomainReleaseDeviceAddress(vm, &disk->info, src); =20 @@ -611,6 +667,7 @@ qemuDomainAttachSCSIDisk(virConnectPtr conn, virErrorPtr orig_err; char *drivestr =3D NULL; char *devstr =3D NULL; + char *tlsAlias =3D NULL; bool driveAdded =3D false; bool encobjAdded =3D false; bool secobjAdded =3D false; @@ -667,6 +724,9 @@ qemuDomainAttachSCSIDisk(virConnectPtr conn, if (!(devstr =3D qemuBuildDriveDevStr(vm->def, disk, 0, priv->qemuCaps= ))) goto error; =20 + if (qemuDomainAddDiskTLSObject(driver, vm, disk, &tlsAlias) < 0) + goto error; + if (!(drivestr =3D qemuBuildDriveStr(disk, cfg, false, priv->qemuCaps)= )) goto error; =20 @@ -712,6 +772,7 @@ qemuDomainAttachSCSIDisk(virConnectPtr conn, ret =3D 0; =20 cleanup: + VIR_FREE(tlsAlias); virJSONValueFree(secobjProps); virJSONValueFree(encobjProps); qemuDomainSecretDiskDestroy(disk); @@ -740,6 +801,8 @@ qemuDomainAttachSCSIDisk(virConnectPtr conn, virDomainAuditDisk(vm, NULL, disk->src, "attach", false); =20 error: + qemuDomainDelTLSObjects(driver, vm, QEMU_ASYNC_JOB_NONE, NULL, tlsAlia= s); + ignore_value(qemuDomainPrepareDisk(driver, vm, disk, NULL, true)); goto cleanup; } @@ -756,6 +819,7 @@ qemuDomainAttachUSBMassStorageDevice(virQEMUDriverPtr d= river, char *drivealias =3D NULL; char *drivestr =3D NULL; char *devstr =3D NULL; + char *tlsAlias =3D NULL; bool driveAdded =3D false; virQEMUDriverConfigPtr cfg =3D virQEMUDriverGetConfig(driver); const char *src =3D virDomainDiskGetSource(disk); @@ -780,6 +844,9 @@ qemuDomainAttachUSBMassStorageDevice(virQEMUDriverPtr d= river, if (qemuAssignDeviceDiskAlias(vm->def, disk, priv->qemuCaps) < 0) goto error; =20 + if (qemuDomainAddDiskTLSObject(driver, vm, disk, &tlsAlias) < 0) + goto error; + if (!(drivestr =3D qemuBuildDriveStr(disk, cfg, false, priv->qemuCaps)= )) goto error; =20 @@ -810,6 +877,7 @@ qemuDomainAttachUSBMassStorageDevice(virQEMUDriverPtr d= river, ret =3D 0; =20 cleanup: + VIR_FREE(tlsAlias); if (ret < 0 && releaseaddr) virDomainUSBAddressRelease(priv->usbaddrs, &disk->info); VIR_FREE(devstr); @@ -833,6 +901,8 @@ qemuDomainAttachUSBMassStorageDevice(virQEMUDriverPtr d= river, virDomainAuditDisk(vm, NULL, disk->src, "attach", false); =20 error: + qemuDomainDelTLSObjects(driver, vm, QEMU_ASYNC_JOB_NONE, NULL, tlsAlia= s); + ignore_value(qemuDomainPrepareDisk(driver, vm, disk, NULL, true)); goto cleanup; } @@ -3710,6 +3780,9 @@ qemuDomainRemoveDiskDevice(virQEMUDriverPtr driver, ignore_value(qemuMonitorDelObject(priv->mon, encAlias)); VIR_FREE(encAlias); =20 + if (disk->src->tlsAlias) + ignore_value(qemuMonitorDelObject(priv->mon, disk->src->tlsAlias)); + if (qemuDomainObjExitMonitor(driver, vm) < 0) return -1; =20 diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-tlsx509= -multidisk-vxhs.args b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-netwo= rk-tlsx509-multidisk-vxhs.args new file mode 100644 index 0000000..dceae52 --- /dev/null +++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-tlsx509-multid= isk-vxhs.args @@ -0,0 +1,43 @@ +LC_ALL=3DC \ +PATH=3D/bin \ +HOME=3D/home/test \ +USER=3Dtest \ +LOGNAME=3Dtest \ +QEMU_AUDIO_DRV=3Dnone \ +/usr/bin/qemu-system-x86_64 \ +-name QEMUGuest1 \ +-S \ +-M pc \ +-cpu qemu32 \ +-m 214 \ +-smp 1,sockets=3D1,cores=3D1,threads=3D1 \ +-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ +-nographic \ +-nodefaults \ +-chardev socket,id=3Dcharmonitor,path=3D/tmp/lib/domain--1-QEMUGuest1/moni= tor.sock,\ +server,nowait \ +-mon chardev=3Dcharmonitor,id=3Dmonitor,mode=3Dreadline \ +-no-acpi \ +-boot c \ +-usb \ +-object tls-creds-x509,id=3Dobjvirtio-disk0_tls0,dir=3D/etc/pki/qemu,\ +endpoint=3Dclient,verify-peer=3Dyes \ +-drive file.driver=3Dvxhs,file.tls-creds=3Dobjvirtio-disk0_tls0,\ +file.vdisk-id=3Deb90327c-8302-4725-9e1b-4e85ed4dc251,file.server.0.type=3D= tcp,\ +file.server.0.host=3D192.168.0.1,file.server.0.port=3D9999,format=3Draw,if= =3Dnone,\ +id=3Ddrive-virtio-disk0,cache=3Dnone \ +-device virtio-blk-pci,bus=3Dpci.0,addr=3D0x4,drive=3Ddrive-virtio-disk0,\ +id=3Dvirtio-disk0 \ +-object tls-creds-x509,id=3Dobjvirtio-disk1_tls0,dir=3D/etc/pki/qemu,\ +endpoint=3Dclient,verify-peer=3Dyes \ +-drive file.driver=3Dvxhs,file.tls-creds=3Dobjvirtio-disk1_tls0,\ +file.vdisk-id=3Deb90327c-8302-4725-9e1b-4e85ed4dc252,file.server.0.type=3D= tcp,\ +file.server.0.host=3D192.168.0.2,file.server.0.port=3D9999,format=3Draw,if= =3Dnone,\ +id=3Ddrive-virtio-disk1,cache=3Dnone \ +-device virtio-blk-pci,bus=3Dpci.0,addr=3D0x5,drive=3Ddrive-virtio-disk1,\ +id=3Dvirtio-disk1 \ +-drive file.driver=3Dvxhs,file.vdisk-id=3Deb90327c-8302-4725-9e1b-4e85ed4d= c253,\ +file.server.0.type=3Dtcp,file.server.0.host=3D192.168.0.3,file.server.0.po= rt=3D9999,\ +format=3Draw,if=3Dnone,id=3Ddrive-virtio-disk2,cache=3Dnone \ +-device virtio-blk-pci,bus=3Dpci.0,addr=3D0x6,drive=3Ddrive-virtio-disk2,\ +id=3Dvirtio-disk2 diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-tlsx509= -multidisk-vxhs.xml b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-networ= k-tlsx509-multidisk-vxhs.xml new file mode 100644 index 0000000..a66e81f --- /dev/null +++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-tlsx509-multid= isk-vxhs.xml @@ -0,0 +1,50 @@ + + QEMUGuest1 + c7a5fdbd-edaf-9455-926a-d65c16db1809 + 219136 + 219136 + 1 + + hvm + + + + destroy + restart + destroy + + /usr/bin/qemu-system-x86_64 + + + + + + + eb90327c-8302-4725-9e1b-4e85ed4dc251 +
+ + + + + + + + eb90327c-8302-4725-9e1b-4e85ed4dc252 +
+ + + + + + + + eb90327c-8302-4725-9e1b-4e85ed4dc252 +
+ + + + + + + + diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-tlsx509= -vxhs.args b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-tlsx509= -vxhs.args new file mode 100644 index 0000000..5308a16 --- /dev/null +++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-tlsx509-vxhs.a= rgs @@ -0,0 +1,30 @@ +LC_ALL=3DC \ +PATH=3D/bin \ +HOME=3D/home/test \ +USER=3Dtest \ +LOGNAME=3Dtest \ +QEMU_AUDIO_DRV=3Dnone \ +/usr/bin/qemu-system-x86_64 \ +-name QEMUGuest1 \ +-S \ +-M pc \ +-cpu qemu32 \ +-m 214 \ +-smp 1,sockets=3D1,cores=3D1,threads=3D1 \ +-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ +-nographic \ +-nodefaults \ +-chardev socket,id=3Dcharmonitor,path=3D/tmp/lib/domain--1-QEMUGuest1/moni= tor.sock,\ +server,nowait \ +-mon chardev=3Dcharmonitor,id=3Dmonitor,mode=3Dreadline \ +-no-acpi \ +-boot c \ +-usb \ +-object tls-creds-x509,id=3Dobjvirtio-disk0_tls0,dir=3D/etc/pki/qemu,\ +endpoint=3Dclient,verify-peer=3Dyes \ +-drive file.driver=3Dvxhs,file.tls-creds=3Dobjvirtio-disk0_tls0,\ +file.vdisk-id=3Deb90327c-8302-4725-9e1b-4e85ed4dc251,file.server.0.type=3D= tcp,\ +file.server.0.host=3D192.168.0.1,file.server.0.port=3D9999,format=3Draw,if= =3Dnone,\ +id=3Ddrive-virtio-disk0,cache=3Dnone \ +-device virtio-blk-pci,bus=3Dpci.0,addr=3D0x4,drive=3Ddrive-virtio-disk0,\ +id=3Dvirtio-disk0 diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c index b92ded8..0366dc3 100644 --- a/tests/qemuxml2argvtest.c +++ b/tests/qemuxml2argvtest.c @@ -932,6 +932,13 @@ mymain(void) DO_TEST("disk-drive-network-rbd-ipv6", NONE); DO_TEST_FAILURE("disk-drive-network-rbd-no-colon", NONE); DO_TEST("disk-drive-network-vxhs", QEMU_CAPS_VXHS); + driver.config->vxhsTLS =3D 1; + DO_TEST("disk-drive-network-tlsx509-vxhs", QEMU_CAPS_VXHS, + QEMU_CAPS_OBJECT_TLS_CREDS_X509); + DO_TEST("disk-drive-network-tlsx509-multidisk-vxhs", QEMU_CAPS_VXHS, + QEMU_CAPS_OBJECT_TLS_CREDS_X509); + driver.config->vxhsTLS =3D 0; + VIR_FREE(driver.config->vxhsTLSx509certdir); DO_TEST("disk-drive-no-boot", QEMU_CAPS_BOOTINDEX); DO_TEST_PARSE_ERROR("disk-device-lun-type-invalid", --=20 2.9.5 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Fri May 3 17:44:32 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1505241450969185.57169741049165; Tue, 12 Sep 2017 11:37:30 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 2D41B5F723; Tue, 12 Sep 2017 18:37:29 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 5838B61981; Tue, 12 Sep 2017 18:37:28 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 6CC6E180884A; Tue, 12 Sep 2017 18:37:26 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id v8CIC5J4012461 for ; Tue, 12 Sep 2017 14:12:05 -0400 Received: by smtp.corp.redhat.com (Postfix) id C6B2C17BB4; Tue, 12 Sep 2017 18:12:05 +0000 (UTC) Received: from localhost.localdomain.com (ovpn-117-114.phx2.redhat.com [10.3.117.114]) by smtp.corp.redhat.com (Postfix) with ESMTP id 8A07E5FCA2 for ; Tue, 12 Sep 2017 18:12:02 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 2D41B5F723 Authentication-Results: ext-mx10.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx10.extmail.prod.ext.phx2.redhat.com; spf=fail smtp.mailfrom=libvir-list-bounces@redhat.com From: John Ferlan To: libvir-list@redhat.com Date: Tue, 12 Sep 2017 14:12:01 -0400 Message-Id: <20170912181201.12315-1-jferlan@redhat.com> In-Reply-To: <20170901170955.20281-1-jferlan@redhat.com> References: <20170901170955.20281-1-jferlan@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH v7 05.5/13] qemu: Refactor qemuBlockStorageSourceBuildHostsJSONSocketAddress X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.39]); Tue, 12 Sep 2017 18:37:30 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Extract out the "guts" of building a server entry into it's own separately callable/usable function in order to allow building a server entry for a consumer with src->nhosts =3D=3D 1. Signed-off-by: John Ferlan --- This patch would go after patch 5 and before patch 6 in the order of things. All it does is extract out the "single" server syntax into it's own function so that it can be used by code that supports only 1 host. It's also usable by the multiple hosts support via the array append call. src/qemu/qemu_block.c | 106 +++++++++++++++++++++++++++++++++-------------= ---- 1 file changed, 70 insertions(+), 36 deletions(-) diff --git a/src/qemu/qemu_block.c b/src/qemu/qemu_block.c index d07269f4e..c97b787c5 100644 --- a/src/qemu/qemu_block.c +++ b/src/qemu/qemu_block.c @@ -380,6 +380,74 @@ qemuBlockGetNodeData(virJSONValuePtr data) =20 =20 /** + * qemuBlockStorageSourceBuildJSONSocketAddress + * @host: the virStorageNetHostDefPtr definition to build + * @legacy: use 'tcp' instead of 'inet' for compatibility reasons + * + * Formats @hosts into a json object conforming to the 'SocketAddress' type + * in qemu. + * + * This function can be used when only 1 src->nhosts is expected in order + * to build a command without the array indices after "server.". That is + * to see "server.type", "server.host", and "server.port" instead of + * "server.#.type", "server.#.host", and "server.#.port". + * + * Returns a virJSONValuePtr for a single server. + */ +static virJSONValuePtr +qemuBlockStorageSourceBuildJSONSocketAddress(virStorageNetHostDefPtr host, + bool legacy) +{ + virJSONValuePtr server =3D NULL; + virJSONValuePtr ret =3D NULL; + const char *transport; + char *port =3D NULL; + + switch ((virStorageNetHostTransport) host->transport) { + case VIR_STORAGE_NET_HOST_TRANS_TCP: + if (legacy) + transport =3D "tcp"; + else + transport =3D "inet"; + + if (virAsprintf(&port, "%u", host->port) < 0) + goto cleanup; + + if (virJSONValueObjectCreate(&server, + "s:type", transport, + "s:host", host->name, + "s:port", port, + NULL) < 0) + goto cleanup; + break; + + case VIR_STORAGE_NET_HOST_TRANS_UNIX: + if (virJSONValueObjectCreate(&server, + "s:type", "unix", + "s:socket", host->socket, + NULL) < 0) + goto cleanup; + break; + + case VIR_STORAGE_NET_HOST_TRANS_RDMA: + case VIR_STORAGE_NET_HOST_TRANS_LAST: + virReportError(VIR_ERR_INTERNAL_ERROR, + _("transport protocol '%s' is not yet supported"), + virStorageNetHostTransportTypeToString(host->transp= ort)); + goto cleanup; + } + + VIR_STEAL_PTR(ret, server); + + cleanup: + VIR_FREE(port); + virJSONValueFree(server); + + return ret; +} + + +/** * qemuBlockStorageSourceBuildHostsJSONSocketAddress: * @src: disk storage source * @legacy: use 'tcp' instead of 'inet' for compatibility reasons @@ -395,8 +463,6 @@ qemuBlockStorageSourceBuildHostsJSONSocketAddress(virSt= orageSourcePtr src, virJSONValuePtr server =3D NULL; virJSONValuePtr ret =3D NULL; virStorageNetHostDefPtr host; - const char *transport; - char *port =3D NULL; size_t i; =20 if (!(servers =3D virJSONValueNewArray())) @@ -405,39 +471,8 @@ qemuBlockStorageSourceBuildHostsJSONSocketAddress(virS= torageSourcePtr src, for (i =3D 0; i < src->nhosts; i++) { host =3D src->hosts + i; =20 - switch ((virStorageNetHostTransport) host->transport) { - case VIR_STORAGE_NET_HOST_TRANS_TCP: - if (legacy) - transport =3D "tcp"; - else - transport =3D "inet"; - - if (virAsprintf(&port, "%u", host->port) < 0) - goto cleanup; - - if (virJSONValueObjectCreate(&server, - "s:type", transport, - "s:host", host->name, - "s:port", port, - NULL) < 0) - goto cleanup; - break; - - case VIR_STORAGE_NET_HOST_TRANS_UNIX: - if (virJSONValueObjectCreate(&server, - "s:type", "unix", - "s:socket", host->socket, - NULL) < 0) - goto cleanup; - break; - - case VIR_STORAGE_NET_HOST_TRANS_RDMA: - case VIR_STORAGE_NET_HOST_TRANS_LAST: - virReportError(VIR_ERR_INTERNAL_ERROR, - _("transport protocol '%s' is not yet supported= "), - virStorageNetHostTransportTypeToString(host->tr= ansport)); - goto cleanup; - } + if (!(server =3D qemuBlockStorageSourceBuildJSONSocketAddress(host= , legacy))) + goto cleanup; =20 if (virJSONValueArrayAppend(servers, server) < 0) goto cleanup; @@ -450,7 +485,6 @@ qemuBlockStorageSourceBuildHostsJSONSocketAddress(virSt= orageSourcePtr src, cleanup: virJSONValueFree(servers); virJSONValueFree(server); - VIR_FREE(port); =20 return ret; } --=20 2.13.5 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list