1QEMU-QMP-REF.7(7) QEMU-QMP-REF.7(7)
2
3
4
6 qemu-qmp-ref - QEMU QMP Reference Manual
7
9 Introduction
10 This document describes all commands currently supported by QMP.
11
12 Most of the time their usage is exactly the same as in the user
13 Monitor, this means that any other document which also describe
14 commands (the manpage, QEMU's manual, etc) can and should be consulted.
15
16 QMP has two types of commands: regular and query commands. Regular
17 commands usually change the Virtual Machine's state someway, while
18 query commands just return information. The sections below are divided
19 accordingly.
20
21 It's important to observe that all communication examples are formatted
22 in a reader-friendly way, so that they're easier to understand.
23 However, in real protocol usage, they're emitted as a single line.
24
25 Also, the following notation is used to denote data flow:
26
27 Example:
28
29 -> data issued by the Client
30
31
32
33 <- Server data response
34
35 Please, refer to the QMP specification (docs/interop/qmp-spec.txt) for
36 detailed information on the Server command and response formats.
37
38 Stability Considerations
39 The current QMP command set (described in this file) may be useful for
40 a number of use cases, however it's limited and several commands have
41 bad defined semantics, specially with regard to command completion.
42
43 These problems are going to be solved incrementally in the next QEMU
44 releases and we're going to establish a deprecation policy for badly
45 defined commands.
46
47 If you're planning to adopt QMP, please observe the following:
48
49 1. The deprecation policy will take effect and be documented soon,
50 please check the documentation of each used command as soon as a
51 new release of QEMU is available
52
53 2. DO NOT rely on anything which is not explicit documented
54
55 3. Errors, in special, are not documented. Applications should NOT
56 check for specific errors classes or data (it's strongly
57 recommended to only check for the "error" key)
58
59 QMP errors
60 QapiErrorClass (Enum)
61
62 QEMU error classes
63
64 Values:
65
66 "GenericError"
67 this is used for errors that don't require a specific error class.
68 This should be the default case for most errors
69
70 "CommandNotFound"
71 the requested command has not been found
72
73 "DeviceNotActive"
74 a device has failed to be become active
75
76 "DeviceNotFound"
77 the requested device has not been found
78
79 "KVMMissingCap"
80 the requested operation can't be fulfilled because a required KVM
81 capability is missing
82
83 Since: 1.2
84
85 Common data types
86 IoOperationType (Enum)
87
88 An enumeration of the I/O operation types
89
90 Values:
91
92 "read"
93 read operation
94
95 "write"
96 write operation
97
98 Since: 2.1
99
100 OnOffAuto (Enum)
101
102 An enumeration of three options: on, off, and auto
103
104 Values:
105
106 "auto"
107 QEMU selects the value between on and off
108
109 "on"
110 Enabled
111
112 "off"
113 Disabled
114
115 Since: 2.2
116
117 OnOffSplit (Enum)
118
119 An enumeration of three values: on, off, and split
120
121 Values:
122
123 "on"
124 Enabled
125
126 "off"
127 Disabled
128
129 "split"
130 Mixed
131
132 Since: 2.6
133
134 String (Object)
135
136 A fat type wrapping 'str', to be embedded in lists.
137
138 Members:
139
140 "str: string"
141 Not documented
142
143 Since: 1.2
144
145 StrOrNull (Alternate)
146
147 This is a string value or the explicit lack of a string (null pointer
148 in C). Intended for cases when 'optional absent' already has a
149 different meaning.
150
151 Members:
152
153 "s: string"
154 the string value
155
156 "n: null"
157 no string value
158
159 Since: 2.10
160
161 OffAutoPCIBAR (Enum)
162
163 An enumeration of options for specifying a PCI BAR
164
165 Values:
166
167 "off"
168 The specified feature is disabled
169
170 "auto"
171 The PCI BAR for the feature is automatically selected
172
173 "bar0"
174 PCI BAR0 is used for the feature
175
176 "bar1"
177 PCI BAR1 is used for the feature
178
179 "bar2"
180 PCI BAR2 is used for the feature
181
182 "bar3"
183 PCI BAR3 is used for the feature
184
185 "bar4"
186 PCI BAR4 is used for the feature
187
188 "bar5"
189 PCI BAR5 is used for the feature
190
191 Since: 2.12
192
193 PCIELinkSpeed (Enum)
194
195 An enumeration of PCIe link speeds in units of GT/s
196
197 Values:
198
199 "2_5"
200 2.5GT/s
201
202 5 5.0GT/s
203
204 8 8.0GT/s
205
206 16 16.0GT/s
207
208 Since: 4.0
209
210 PCIELinkWidth (Enum)
211
212 An enumeration of PCIe link width
213
214 Values:
215
216 1 x1
217
218 2 x2
219
220 4 x4
221
222 8 x8
223
224 12 x12
225
226 16 x16
227
228 32 x32
229
230 Since: 4.0
231
232 Socket data types
233 NetworkAddressFamily (Enum)
234
235 The network address family
236
237 Values:
238
239 "ipv4"
240 IPV4 family
241
242 "ipv6"
243 IPV6 family
244
245 "unix"
246 unix socket
247
248 "vsock"
249 vsock family (since 2.8)
250
251 "unknown"
252 otherwise
253
254 Since: 2.1
255
256 InetSocketAddressBase (Object)
257
258 Members:
259
260 "host: string"
261 host part of the address
262
263 "port: string"
264 port part of the address
265
266 InetSocketAddress (Object)
267
268 Captures a socket address or address range in the Internet namespace.
269
270 Members:
271
272 "numeric: boolean" (optional)
273 true if the host/port are guaranteed to be numeric, false if name
274 resolution should be attempted. Defaults to false. (Since 2.9)
275
276 "to: int" (optional)
277 If present, this is range of possible addresses, with port between
278 "port" and "to".
279
280 "ipv4: boolean" (optional)
281 whether to accept IPv4 addresses, default try both IPv4 and IPv6
282
283 "ipv6: boolean" (optional)
284 whether to accept IPv6 addresses, default try both IPv4 and IPv6
285
286 "keep-alive: boolean" (optional)
287 enable keep-alive when connecting to this socket. Not supported for
288 passive sockets. (Since 4.2)
289
290 The members of "InetSocketAddressBase"
291
292 Since: 1.3
293
294 UnixSocketAddress (Object)
295
296 Captures a socket address in the local ("Unix socket") namespace.
297
298 Members:
299
300 "path: string"
301 filesystem path to use
302
303 "tight: boolean" (optional)
304 pass a socket address length confined to the minimum length of the
305 abstract string, rather than the full sockaddr_un record length
306 (only matters for abstract sockets, default true). (Since 5.1)
307
308 "abstract: boolean" (optional)
309 whether this is an abstract address, default false. (Since 5.1)
310
311 Since: 1.3
312
313 VsockSocketAddress (Object)
314
315 Captures a socket address in the vsock namespace.
316
317 Members:
318
319 "cid: string"
320 unique host identifier
321
322 "port: string"
323 port
324
325 Note: string types are used to allow for possible future hostname or
326 service resolution support.
327
328 Since: 2.8
329
330 SocketAddressLegacy (Object)
331
332 Captures the address of a socket, which could also be a named file
333 descriptor
334
335 Members:
336
337 "type"
338 One of "inet", "unix", "vsock", "fd"
339
340 "data: InetSocketAddress" when "type" is "inet"
341 "data: UnixSocketAddress" when "type" is "unix"
342 "data: VsockSocketAddress" when "type" is "vsock"
343 "data: String" when "type" is "fd"
344
345 Note: This type is deprecated in favor of SocketAddress. The
346 difference between SocketAddressLegacy and SocketAddress is that the
347 latter is a flat union rather than a simple union. Flat is nicer
348 because it avoids nesting on the wire, i.e. that form has fewer {}.
349
350 Since: 1.3
351
352 SocketAddressType (Enum)
353
354 Available SocketAddress types
355
356 Values:
357
358 "inet"
359 Internet address
360
361 "unix"
362 Unix domain socket
363
364 "vsock"
365 VMCI address
366
367 "fd"
368 decimal is for file descriptor number, otherwise a file descriptor
369 name. Named file descriptors are permitted in monitor commands, in
370 combination with the 'getfd' command. Decimal file descriptors are
371 permitted at startup or other contexts where no monitor context is
372 active.
373
374 Since: 2.9
375
376 SocketAddress (Object)
377
378 Captures the address of a socket, which could also be a named file
379 descriptor
380
381 Members:
382
383 "type: SocketAddressType"
384 Transport type
385
386 The members of "InetSocketAddress" when "type" is "inet"
387 The members of "UnixSocketAddress" when "type" is "unix"
388 The members of "VsockSocketAddress" when "type" is "vsock"
389 The members of "String" when "type" is "fd"
390
391 Since: 2.9
392
393 VM run state
394 RunState (Enum)
395
396 An enumeration of VM run states.
397
398 Values:
399
400 "debug"
401 QEMU is running on a debugger
402
403 "finish-migrate"
404 guest is paused to finish the migration process
405
406 "inmigrate"
407 guest is paused waiting for an incoming migration. Note that this
408 state does not tell whether the machine will start at the end of
409 the migration. This depends on the command-line -S option and any
410 invocation of 'stop' or 'cont' that has happened since QEMU was
411 started.
412
413 "internal-error"
414 An internal error that prevents further guest execution has
415 occurred
416
417 "io-error"
418 the last IOP has failed and the device is configured to pause on
419 I/O errors
420
421 "paused"
422 guest has been paused via the 'stop' command
423
424 "postmigrate"
425 guest is paused following a successful 'migrate'
426
427 "prelaunch"
428 QEMU was started with -S and guest has not started
429
430 "restore-vm"
431 guest is paused to restore VM state
432
433 "running"
434 guest is actively running
435
436 "save-vm"
437 guest is paused to save the VM state
438
439 "shutdown"
440 guest is shut down (and -no-shutdown is in use)
441
442 "suspended"
443 guest is suspended (ACPI S3)
444
445 "watchdog"
446 the watchdog action is configured to pause and has been triggered
447
448 "guest-panicked"
449 guest has been panicked as a result of guest OS panic
450
451 "colo"
452 guest is paused to save/restore VM state under colo checkpoint, VM
453 can not get into this state unless colo capability is enabled for
454 migration. (since 2.8)
455
456 "preconfig"
457 QEMU is paused before board specific init callback is executed.
458 The state is reachable only if the --preconfig CLI option is used.
459 (Since 3.0)
460
461 ShutdownCause (Enum)
462
463 An enumeration of reasons for a Shutdown.
464
465 Values:
466
467 "none"
468 No shutdown request pending
469
470 "host-error"
471 An error prevents further use of guest
472
473 "host-qmp-quit"
474 Reaction to the QMP command 'quit'
475
476 "host-qmp-system-reset"
477 Reaction to the QMP command 'system_reset'
478
479 "host-signal"
480 Reaction to a signal, such as SIGINT
481
482 "host-ui"
483 Reaction to a UI event, like window close
484
485 "guest-shutdown"
486 Guest shutdown/suspend request, via ACPI or other hardware-specific
487 means
488
489 "guest-reset"
490 Guest reset request, and command line turns that into a shutdown
491
492 "guest-panic"
493 Guest panicked, and command line turns that into a shutdown
494
495 "subsystem-reset"
496 Partial guest reset that does not trigger QMP events and ignores
497 --no-reboot. This is useful for sanitizing hypercalls on s390 that
498 are used during kexec/kdump/boot
499
500 StatusInfo (Object)
501
502 Information about VCPU run state
503
504 Members:
505
506 "running: boolean"
507 true if all VCPUs are runnable, false if not runnable
508
509 "singlestep: boolean"
510 true if VCPUs are in single-step mode
511
512 "status: RunState"
513 the virtual machine "RunState"
514
515 Since: 0.14.0
516
517 Notes: "singlestep" is enabled through the GDB stub
518
519 query-status (Command) Query the run status of all VCPUs
520
521 Returns: "StatusInfo" reflecting all VCPUs
522
523 Since: 0.14.0
524
525 Example:
526
527 -> { "execute": "query-status" }
528 <- { "return": { "running": true,
529 "singlestep": false,
530 "status": "running" } }
531
532 SHUTDOWN (Event) Emitted when the virtual machine has shut down,
533 indicating that qemu is about to exit.
534
535 Arguments:
536
537 "guest: boolean"
538 If true, the shutdown was triggered by a guest request (such as a
539 guest-initiated ACPI shutdown request or other hardware-specific
540 action) rather than a host request (such as sending qemu a SIGINT).
541 (since 2.10)
542
543 "reason: ShutdownCause"
544 The "ShutdownCause" which resulted in the SHUTDOWN. (since 4.0)
545
546 Note: If the command-line option "-no-shutdown" has been specified,
547 qemu will not exit, and a STOP event will eventually follow the
548 SHUTDOWN event
549
550 Since: 0.12.0
551
552 Example:
553
554 <- { "event": "SHUTDOWN", "data": { "guest": true },
555 "timestamp": { "seconds": 1267040730, "microseconds": 682951 } }
556
557 POWERDOWN (Event) Emitted when the virtual machine is powered down
558 through the power control system, such as via ACPI.
559
560 Since: 0.12.0
561
562 Example:
563
564 <- { "event": "POWERDOWN",
565 "timestamp": { "seconds": 1267040730, "microseconds": 682951 } }
566
567 RESET (Event) Emitted when the virtual machine is reset
568
569 Arguments:
570
571 "guest: boolean"
572 If true, the reset was triggered by a guest request (such as a
573 guest-initiated ACPI reboot request or other hardware-specific
574 action) rather than a host request (such as the QMP command
575 system_reset). (since 2.10)
576
577 "reason: ShutdownCause"
578 The "ShutdownCause" of the RESET. (since 4.0)
579
580 Since: 0.12.0
581
582 Example:
583
584 <- { "event": "RESET", "data": { "guest": false },
585 "timestamp": { "seconds": 1267041653, "microseconds": 9518 } }
586
587 STOP (Event) Emitted when the virtual machine is stopped
588
589 Since: 0.12.0
590
591 Example:
592
593 <- { "event": "STOP",
594 "timestamp": { "seconds": 1267041730, "microseconds": 281295 } }
595
596 RESUME (Event) Emitted when the virtual machine resumes execution
597
598 Since: 0.12.0
599
600 Example:
601
602 <- { "event": "RESUME",
603 "timestamp": { "seconds": 1271770767, "microseconds": 582542 } }
604
605 SUSPEND (Event) Emitted when guest enters a hardware suspension state,
606 for example, S3 state, which is sometimes called standby state
607
608 Since: 1.1
609
610 Example:
611
612 <- { "event": "SUSPEND",
613 "timestamp": { "seconds": 1344456160, "microseconds": 309119 } }
614
615 SUSPEND_DISK (Event) Emitted when guest enters a hardware suspension
616 state with data saved on disk, for example, S4 state, which is
617 sometimes called hibernate state
618
619 Note: QEMU shuts down (similar to event "SHUTDOWN") when entering this
620 state
621
622 Since: 1.2
623
624 Example:
625
626 <- { "event": "SUSPEND_DISK",
627 "timestamp": { "seconds": 1344456160, "microseconds": 309119 } }
628
629 WAKEUP (Event) Emitted when the guest has woken up from suspend state
630 and is running
631
632 Since: 1.1
633
634 Example:
635
636 <- { "event": "WAKEUP",
637 "timestamp": { "seconds": 1344522075, "microseconds": 745528 } }
638
639 WATCHDOG (Event) Emitted when the watchdog device's timer is expired
640
641 Arguments:
642
643 "action: WatchdogAction"
644 action that has been taken
645
646 Note: If action is "reset", "shutdown", or "pause" the WATCHDOG event
647 is followed respectively by the RESET, SHUTDOWN, or STOP events
648
649 Note: This event is rate-limited.
650
651 Since: 0.13.0
652
653 Example:
654
655 <- { "event": "WATCHDOG",
656 "data": { "action": "reset" },
657 "timestamp": { "seconds": 1267061043, "microseconds": 959568 } }
658
659 WatchdogAction (Enum)
660
661 An enumeration of the actions taken when the watchdog device's timer is
662 expired
663
664 Values:
665
666 "reset"
667 system resets
668
669 "shutdown"
670 system shutdown, note that it is similar to "powerdown", which
671 tries to set to system status and notify guest
672
673 "poweroff"
674 system poweroff, the emulator program exits
675
676 "pause"
677 system pauses, similar to "stop"
678
679 "debug"
680 system enters debug state
681
682 "none"
683 nothing is done
684
685 "inject-nmi"
686 a non-maskable interrupt is injected into the first VCPU (all VCPUS
687 on x86) (since 2.4)
688
689 Since: 2.1
690
691 watchdog-set-action (Command) Set watchdog action
692
693 Arguments:
694
695 "action: WatchdogAction"
696 Not documented
697
698 Since: 2.11
699
700 GUEST_PANICKED (Event) Emitted when guest OS panic is detected
701
702 Arguments:
703
704 "action: GuestPanicAction"
705 action that has been taken, currently always "pause"
706
707 "info: GuestPanicInformation" (optional)
708 information about a panic (since 2.9)
709
710 Since: 1.5
711
712 Example:
713
714 <- { "event": "GUEST_PANICKED",
715 "data": { "action": "pause" } }
716
717 GUEST_CRASHLOADED (Event) Emitted when guest OS crash loaded is
718 detected
719
720 Arguments:
721
722 "action: GuestPanicAction"
723 action that has been taken, currently always "run"
724
725 "info: GuestPanicInformation" (optional)
726 information about a panic
727
728 Since: 5.0
729
730 Example:
731
732 <- { "event": "GUEST_CRASHLOADED",
733 "data": { "action": "run" } }
734
735 GuestPanicAction (Enum)
736
737 An enumeration of the actions taken when guest OS panic is detected
738
739 Values:
740
741 "pause"
742 system pauses
743
744 "poweroff"
745 Not documented
746
747 "run"
748 Not documented
749
750 Since: 2.1 (poweroff since 2.8, run since 5.0)
751
752 GuestPanicInformationType (Enum)
753
754 An enumeration of the guest panic information types
755
756 Values:
757
758 "hyper-v"
759 hyper-v guest panic information type
760
761 "s390"
762 s390 guest panic information type (Since: 2.12)
763
764 Since: 2.9
765
766 GuestPanicInformation (Object)
767
768 Information about a guest panic
769
770 Members:
771
772 "type: GuestPanicInformationType"
773 Crash type that defines the hypervisor specific information
774
775 The members of "GuestPanicInformationHyperV" when "type" is "hyper-v"
776 The members of "GuestPanicInformationS390" when "type" is "s390"
777
778 Since: 2.9
779
780 GuestPanicInformationHyperV (Object)
781
782 Hyper-V specific guest panic information (HV crash MSRs)
783
784 Members:
785
786 "arg1: int"
787 Not documented
788
789 "arg2: int"
790 Not documented
791
792 "arg3: int"
793 Not documented
794
795 "arg4: int"
796 Not documented
797
798 "arg5: int"
799 Not documented
800
801 Since: 2.9
802
803 S390CrashReason (Enum)
804
805 Reason why the CPU is in a crashed state.
806
807 Values:
808
809 "unknown"
810 no crash reason was set
811
812 "disabled-wait"
813 the CPU has entered a disabled wait state
814
815 "extint-loop"
816 clock comparator or cpu timer interrupt with new PSW enabled for
817 external interrupts
818
819 "pgmint-loop"
820 program interrupt with BAD new PSW
821
822 "opint-loop"
823 operation exception interrupt with invalid code at the program
824 interrupt new PSW
825
826 Since: 2.12
827
828 GuestPanicInformationS390 (Object)
829
830 S390 specific guest panic information (PSW)
831
832 Members:
833
834 "core: int"
835 core id of the CPU that crashed
836
837 "psw-mask: int"
838 control fields of guest PSW
839
840 "psw-addr: int"
841 guest instruction address
842
843 "reason: S390CrashReason"
844 guest crash reason
845
846 Since: 2.12
847
848 Cryptography
849 QCryptoTLSCredsEndpoint (Enum)
850
851 The type of network endpoint that will be using the credentials. Most
852 types of credential require different setup / structures depending on
853 whether they will be used in a server versus a client.
854
855 Values:
856
857 "client"
858 the network endpoint is acting as the client
859
860 "server"
861 the network endpoint is acting as the server
862
863 Since: 2.5
864
865 QCryptoSecretFormat (Enum)
866
867 The data format that the secret is provided in
868
869 Values:
870
871 "raw"
872 raw bytes. When encoded in JSON only valid UTF-8 sequences can be
873 used
874
875 "base64"
876 arbitrary base64 encoded binary data
877
878 Since: 2.6
879
880 QCryptoHashAlgorithm (Enum)
881
882 The supported algorithms for computing content digests
883
884 Values:
885
886 "md5"
887 MD5. Should not be used in any new code, legacy compat only
888
889 "sha1"
890 SHA-1. Should not be used in any new code, legacy compat only
891
892 "sha224"
893 SHA-224. (since 2.7)
894
895 "sha256"
896 SHA-256. Current recommended strong hash.
897
898 "sha384"
899 SHA-384. (since 2.7)
900
901 "sha512"
902 SHA-512. (since 2.7)
903
904 "ripemd160"
905 RIPEMD-160. (since 2.7)
906
907 Since: 2.6
908
909 QCryptoCipherAlgorithm (Enum)
910
911 The supported algorithms for content encryption ciphers
912
913 Values:
914
915 "aes-128"
916 AES with 128 bit / 16 byte keys
917
918 "aes-192"
919 AES with 192 bit / 24 byte keys
920
921 "aes-256"
922 AES with 256 bit / 32 byte keys
923
924 "des-rfb"
925 RFB specific variant of single DES. Do not use except in VNC.
926
927 "3des"
928 3DES(EDE) with 192 bit / 24 byte keys (since 2.9)
929
930 "cast5-128"
931 Cast5 with 128 bit / 16 byte keys
932
933 "serpent-128"
934 Serpent with 128 bit / 16 byte keys
935
936 "serpent-192"
937 Serpent with 192 bit / 24 byte keys
938
939 "serpent-256"
940 Serpent with 256 bit / 32 byte keys
941
942 "twofish-128"
943 Twofish with 128 bit / 16 byte keys
944
945 "twofish-192"
946 Twofish with 192 bit / 24 byte keys
947
948 "twofish-256"
949 Twofish with 256 bit / 32 byte keys
950
951 Since: 2.6
952
953 QCryptoCipherMode (Enum)
954
955 The supported modes for content encryption ciphers
956
957 Values:
958
959 "ecb"
960 Electronic Code Book
961
962 "cbc"
963 Cipher Block Chaining
964
965 "xts"
966 XEX with tweaked code book and ciphertext stealing
967
968 "ctr"
969 Counter (Since 2.8)
970
971 Since: 2.6
972
973 QCryptoIVGenAlgorithm (Enum)
974
975 The supported algorithms for generating initialization vectors for full
976 disk encryption. The 'plain' generator should not be used for disks
977 with sector numbers larger than 2^32, except where compatibility with
978 pre-existing Linux dm-crypt volumes is required.
979
980 Values:
981
982 "plain"
983 64-bit sector number truncated to 32-bits
984
985 "plain64"
986 64-bit sector number
987
988 "essiv"
989 64-bit sector number encrypted with a hash of the encryption key
990
991 Since: 2.6
992
993 QCryptoBlockFormat (Enum)
994
995 The supported full disk encryption formats
996
997 Values:
998
999 "qcow"
1000 QCow/QCow2 built-in AES-CBC encryption. Use only for liberating
1001 data from old images.
1002
1003 "luks"
1004 LUKS encryption format. Recommended for new images
1005
1006 Since: 2.6
1007
1008 QCryptoBlockOptionsBase (Object)
1009
1010 The common options that apply to all full disk encryption formats
1011
1012 Members:
1013
1014 "format: QCryptoBlockFormat"
1015 the encryption format
1016
1017 Since: 2.6
1018
1019 QCryptoBlockOptionsQCow (Object)
1020
1021 The options that apply to QCow/QCow2 AES-CBC encryption format
1022
1023 Members:
1024
1025 "key-secret: string" (optional)
1026 the ID of a QCryptoSecret object providing the decryption key.
1027 Mandatory except when probing image for metadata only.
1028
1029 Since: 2.6
1030
1031 QCryptoBlockOptionsLUKS (Object)
1032
1033 The options that apply to LUKS encryption format
1034
1035 Members:
1036
1037 "key-secret: string" (optional)
1038 the ID of a QCryptoSecret object providing the decryption key.
1039 Mandatory except when probing image for metadata only.
1040
1041 Since: 2.6
1042
1043 QCryptoBlockCreateOptionsLUKS (Object)
1044
1045 The options that apply to LUKS encryption format initialization
1046
1047 Members:
1048
1049 "cipher-alg: QCryptoCipherAlgorithm" (optional)
1050 the cipher algorithm for data encryption Currently defaults to
1051 'aes-256'.
1052
1053 "cipher-mode: QCryptoCipherMode" (optional)
1054 the cipher mode for data encryption Currently defaults to 'xts'
1055
1056 "ivgen-alg: QCryptoIVGenAlgorithm" (optional)
1057 the initialization vector generator Currently defaults to 'plain64'
1058
1059 "ivgen-hash-alg: QCryptoHashAlgorithm" (optional)
1060 the initialization vector generator hash Currently defaults to
1061 'sha256'
1062
1063 "hash-alg: QCryptoHashAlgorithm" (optional)
1064 the master key hash algorithm Currently defaults to 'sha256'
1065
1066 "iter-time: int" (optional)
1067 number of milliseconds to spend in PBKDF passphrase processing.
1068 Currently defaults to 2000. (since 2.8)
1069
1070 The members of "QCryptoBlockOptionsLUKS"
1071
1072 Since: 2.6
1073
1074 QCryptoBlockOpenOptions (Object)
1075
1076 The options that are available for all encryption formats when opening
1077 an existing volume
1078
1079 Members:
1080
1081 The members of "QCryptoBlockOptionsBase"
1082 The members of "QCryptoBlockOptionsQCow" when "format" is "qcow"
1083 The members of "QCryptoBlockOptionsLUKS" when "format" is "luks"
1084
1085 Since: 2.6
1086
1087 QCryptoBlockCreateOptions (Object)
1088
1089 The options that are available for all encryption formats when
1090 initializing a new volume
1091
1092 Members:
1093
1094 The members of "QCryptoBlockOptionsBase"
1095 The members of "QCryptoBlockOptionsQCow" when "format" is "qcow"
1096 The members of "QCryptoBlockCreateOptionsLUKS" when "format" is "luks"
1097
1098 Since: 2.6
1099
1100 QCryptoBlockInfoBase (Object)
1101
1102 The common information that applies to all full disk encryption formats
1103
1104 Members:
1105
1106 "format: QCryptoBlockFormat"
1107 the encryption format
1108
1109 Since: 2.7
1110
1111 QCryptoBlockInfoLUKSSlot (Object)
1112
1113 Information about the LUKS block encryption key slot options
1114
1115 Members:
1116
1117 "active: boolean"
1118 whether the key slot is currently in use
1119
1120 "key-offset: int"
1121 offset to the key material in bytes
1122
1123 "iters: int" (optional)
1124 number of PBKDF2 iterations for key material
1125
1126 "stripes: int" (optional)
1127 number of stripes for splitting key material
1128
1129 Since: 2.7
1130
1131 QCryptoBlockInfoLUKS (Object)
1132
1133 Information about the LUKS block encryption options
1134
1135 Members:
1136
1137 "cipher-alg: QCryptoCipherAlgorithm"
1138 the cipher algorithm for data encryption
1139
1140 "cipher-mode: QCryptoCipherMode"
1141 the cipher mode for data encryption
1142
1143 "ivgen-alg: QCryptoIVGenAlgorithm"
1144 the initialization vector generator
1145
1146 "ivgen-hash-alg: QCryptoHashAlgorithm" (optional)
1147 the initialization vector generator hash
1148
1149 "hash-alg: QCryptoHashAlgorithm"
1150 the master key hash algorithm
1151
1152 "payload-offset: int"
1153 offset to the payload data in bytes
1154
1155 "master-key-iters: int"
1156 number of PBKDF2 iterations for key material
1157
1158 "uuid: string"
1159 unique identifier for the volume
1160
1161 "slots: array of QCryptoBlockInfoLUKSSlot"
1162 information about each key slot
1163
1164 Since: 2.7
1165
1166 QCryptoBlockInfo (Object)
1167
1168 Information about the block encryption options
1169
1170 Members:
1171
1172 The members of "QCryptoBlockInfoBase"
1173 The members of "QCryptoBlockInfoLUKS" when "format" is "luks"
1174
1175 Since: 2.7
1176
1177 QCryptoBlockLUKSKeyslotState (Enum)
1178
1179 Defines state of keyslots that are affected by the update
1180
1181 Values:
1182
1183 "active"
1184 The slots contain the given password and marked as active
1185
1186 "inactive"
1187 The slots are erased (contain garbage) and marked as inactive
1188
1189 Since: 5.1
1190
1191 QCryptoBlockAmendOptionsLUKS (Object)
1192
1193 This struct defines the update parameters that activate/de-activate set
1194 of keyslots
1195
1196 Members:
1197
1198 "state: QCryptoBlockLUKSKeyslotState"
1199 the desired state of the keyslots
1200
1201 "new-secret: string" (optional)
1202 The ID of a QCryptoSecret object providing the password to be
1203 written into added active keyslots
1204
1205 "old-secret: string" (optional)
1206 Optional (for deactivation only) If given will deactive all
1207 keyslots that match password located in QCryptoSecret with this ID
1208
1209 "iter-time: int" (optional)
1210 Optional (for activation only) Number of milliseconds to spend in
1211 PBKDF passphrase processing for the newly activated keyslot.
1212 Currently defaults to 2000.
1213
1214 "keyslot: int" (optional)
1215 Optional. ID of the keyslot to activate/deactivate. For keyslot
1216 activation, keyslot should not be active already (this is unsafe to
1217 update an active keyslot), but possible if 'force' parameter is
1218 given. If keyslot is not given, first free keyslot will be
1219 written.
1220
1221 For keyslot deactivation, this parameter specifies the exact
1222 keyslot to deactivate
1223
1224 "secret: string" (optional)
1225 Optional. The ID of a QCryptoSecret object providing the password
1226 to use to retrive current master key. Defaults to the same secret
1227 that was used to open the image
1228
1229 Since 5.1
1230
1231 QCryptoBlockAmendOptions (Object)
1232
1233 The options that are available for all encryption formats when amending
1234 encryption settings
1235
1236 Members:
1237
1238 The members of "QCryptoBlockOptionsBase"
1239 The members of "QCryptoBlockAmendOptionsLUKS" when "format" is "luks"
1240
1241 Since: 5.1
1242
1243 Block devices
1244 Block core (VM unrelated)
1245
1246 Background jobs
1247
1248 JobType (Enum)
1249
1250 Type of a background job.
1251
1252 Values:
1253
1254 "commit"
1255 block commit job type, see "block-commit"
1256
1257 "stream"
1258 block stream job type, see "block-stream"
1259
1260 "mirror"
1261 drive mirror job type, see "drive-mirror"
1262
1263 "backup"
1264 drive backup job type, see "drive-backup"
1265
1266 "create"
1267 image creation job type, see "blockdev-create" (since 3.0)
1268
1269 "amend"
1270 image options amend job type, see "x-blockdev-amend" (since 5.1)
1271
1272 Since: 1.7
1273
1274 JobStatus (Enum)
1275
1276 Indicates the present state of a given job in its lifetime.
1277
1278 Values:
1279
1280 "undefined"
1281 Erroneous, default state. Should not ever be visible.
1282
1283 "created"
1284 The job has been created, but not yet started.
1285
1286 "running"
1287 The job is currently running.
1288
1289 "paused"
1290 The job is running, but paused. The pause may be requested by
1291 either the QMP user or by internal processes.
1292
1293 "ready"
1294 The job is running, but is ready for the user to signal completion.
1295 This is used for long-running jobs like mirror that are designed to
1296 run indefinitely.
1297
1298 "standby"
1299 The job is ready, but paused. This is nearly identical to "paused".
1300 The job may return to "ready" or otherwise be canceled.
1301
1302 "waiting"
1303 The job is waiting for other jobs in the transaction to converge to
1304 the waiting state. This status will likely not be visible for the
1305 last job in a transaction.
1306
1307 "pending"
1308 The job has finished its work, but has finalization steps that it
1309 needs to make prior to completing. These changes will require
1310 manual intervention via "job-finalize" if auto-finalize was set to
1311 false. These pending changes may still fail.
1312
1313 "aborting"
1314 The job is in the process of being aborted, and will finish with an
1315 error. The job will afterwards report that it is "concluded". This
1316 status may not be visible to the management process.
1317
1318 "concluded"
1319 The job has finished all work. If auto-dismiss was set to false,
1320 the job will remain in the query list until it is dismissed via
1321 "job-dismiss".
1322
1323 "null"
1324 The job is in the process of being dismantled. This state should
1325 not ever be visible externally.
1326
1327 Since: 2.12
1328
1329 JobVerb (Enum)
1330
1331 Represents command verbs that can be applied to a job.
1332
1333 Values:
1334
1335 "cancel"
1336 see "job-cancel"
1337
1338 "pause"
1339 see "job-pause"
1340
1341 "resume"
1342 see "job-resume"
1343
1344 "set-speed"
1345 see "block-job-set-speed"
1346
1347 "complete"
1348 see "job-complete"
1349
1350 "dismiss"
1351 see "job-dismiss"
1352
1353 "finalize"
1354 see "job-finalize"
1355
1356 Since: 2.12
1357
1358 JOB_STATUS_CHANGE (Event) Emitted when a job transitions to a
1359 different status.
1360
1361 Arguments:
1362
1363 "id: string"
1364 The job identifier
1365
1366 "status: JobStatus"
1367 The new job status
1368
1369 Since: 3.0
1370
1371 job-pause (Command) Pause an active job.
1372
1373 This command returns immediately after marking the active job for
1374 pausing. Pausing an already paused job is an error.
1375
1376 The job will pause as soon as possible, which means transitioning into
1377 the PAUSED state if it was RUNNING, or into STANDBY if it was READY.
1378 The corresponding JOB_STATUS_CHANGE event will be emitted.
1379
1380 Cancelling a paused job automatically resumes it.
1381
1382 Arguments:
1383
1384 "id: string"
1385 The job identifier.
1386
1387 Since: 3.0
1388
1389 job-resume (Command) Resume a paused job.
1390
1391 This command returns immediately after resuming a paused job. Resuming
1392 an already running job is an error.
1393
1394 "id" : The job identifier.
1395
1396 Arguments:
1397
1398 "id: string"
1399 Not documented
1400
1401 Since: 3.0
1402
1403 job-cancel (Command) Instruct an active background job to cancel at
1404 the next opportunity. This command returns immediately after marking
1405 the active job for cancellation.
1406
1407 The job will cancel as soon as possible and then emit a
1408 JOB_STATUS_CHANGE event. Usually, the status will change to ABORTING,
1409 but it is possible that a job successfully completes (e.g. because it
1410 was almost done and there was no opportunity to cancel earlier than
1411 completing the job) and transitions to PENDING instead.
1412
1413 Arguments:
1414
1415 "id: string"
1416 The job identifier.
1417
1418 Since: 3.0
1419
1420 job-complete (Command) Manually trigger completion of an active job in
1421 the READY state.
1422
1423 Arguments:
1424
1425 "id: string"
1426 The job identifier.
1427
1428 Since: 3.0
1429
1430 job-dismiss (Command) Deletes a job that is in the CONCLUDED state.
1431 This command only needs to be run explicitly for jobs that don't have
1432 automatic dismiss enabled.
1433
1434 This command will refuse to operate on any job that has not yet reached
1435 its terminal state, JOB_STATUS_CONCLUDED. For jobs that make use of
1436 JOB_READY event, job-cancel or job-complete will still need to be used
1437 as appropriate.
1438
1439 Arguments:
1440
1441 "id: string"
1442 The job identifier.
1443
1444 Since: 3.0
1445
1446 job-finalize (Command) Instructs all jobs in a transaction (or a
1447 single job if it is not part of any transaction) to finalize any graph
1448 changes and do any necessary cleanup. This command requires that all
1449 involved jobs are in the PENDING state.
1450
1451 For jobs in a transaction, instructing one job to finalize will force
1452 ALL jobs in the transaction to finalize, so it is only necessary to
1453 instruct a single member job to finalize.
1454
1455 Arguments:
1456
1457 "id: string"
1458 The identifier of any job in the transaction, or of a job that is
1459 not part of any transaction.
1460
1461 Since: 3.0
1462
1463 JobInfo (Object)
1464
1465 Information about a job.
1466
1467 Members:
1468
1469 "id: string"
1470 The job identifier
1471
1472 "type: JobType"
1473 The kind of job that is being performed
1474
1475 "status: JobStatus"
1476 Current job state/status
1477
1478 "current-progress: int"
1479 Progress made until now. The unit is arbitrary and the value can
1480 only meaningfully be used for the ratio of "current-progress" to
1481 "total-progress". The value is monotonically increasing.
1482
1483 "total-progress: int"
1484 Estimated "current-progress" value at the completion of the job.
1485 This value can arbitrarily change while the job is running, in both
1486 directions.
1487
1488 "error: string" (optional)
1489 If this field is present, the job failed; if it is still missing in
1490 the CONCLUDED state, this indicates successful completion.
1491
1492 The value is a human-readable error message to describe the reason
1493 for the job failure. It should not be parsed by applications.
1494
1495 Since: 3.0
1496
1497 query-jobs (Command) Return information about jobs.
1498
1499 Returns: a list with a "JobInfo" for each active job
1500
1501 Since: 3.0
1502
1503 SnapshotInfo (Object)
1504
1505 Members:
1506
1507 "id: string"
1508 unique snapshot id
1509
1510 "name: string"
1511 user chosen name
1512
1513 "vm-state-size: int"
1514 size of the VM state
1515
1516 "date-sec: int"
1517 UTC date of the snapshot in seconds
1518
1519 "date-nsec: int"
1520 fractional part in nano seconds to be used with date-sec
1521
1522 "vm-clock-sec: int"
1523 VM clock relative to boot in seconds
1524
1525 "vm-clock-nsec: int"
1526 fractional part in nano seconds to be used with vm-clock-sec
1527
1528 Since: 1.3
1529
1530 ImageInfoSpecificQCow2EncryptionBase (Object)
1531
1532 Members:
1533
1534 "format: BlockdevQcow2EncryptionFormat"
1535 The encryption format
1536
1537 Since: 2.10
1538
1539 ImageInfoSpecificQCow2Encryption (Object)
1540
1541 Members:
1542
1543 The members of "ImageInfoSpecificQCow2EncryptionBase"
1544 The members of "QCryptoBlockInfoLUKS" when "format" is "luks"
1545
1546 Since: 2.10
1547
1548 ImageInfoSpecificQCow2 (Object)
1549
1550 Members:
1551
1552 "compat: string"
1553 compatibility level
1554
1555 "data-file: string" (optional)
1556 the filename of the external data file that is stored in the image
1557 and used as a default for opening the image (since: 4.0)
1558
1559 "data-file-raw: boolean" (optional)
1560 True if the external data file must stay valid as a standalone
1561 (read-only) raw image without looking at qcow2 metadata (since:
1562 4.0)
1563
1564 "lazy-refcounts: boolean" (optional)
1565 on or off; only valid for compat >= 1.1
1566
1567 "corrupt: boolean" (optional)
1568 true if the image has been marked corrupt; only valid for compat >=
1569 1.1 (since 2.2)
1570
1571 "refcount-bits: int"
1572 width of a refcount entry in bits (since 2.3)
1573
1574 "encrypt: ImageInfoSpecificQCow2Encryption" (optional)
1575 details about encryption parameters; only set if image is encrypted
1576 (since 2.10)
1577
1578 "bitmaps: array of Qcow2BitmapInfo" (optional)
1579 A list of qcow2 bitmap details (since 4.0)
1580
1581 "compression-type: Qcow2CompressionType"
1582 the image cluster compression method (since 5.1)
1583
1584 Since: 1.7
1585
1586 ImageInfoSpecificVmdk (Object)
1587
1588 Members:
1589
1590 "create-type: string"
1591 The create type of VMDK image
1592
1593 "cid: int"
1594 Content id of image
1595
1596 "parent-cid: int"
1597 Parent VMDK image's cid
1598
1599 "extents: array of ImageInfo"
1600 List of extent files
1601
1602 Since: 1.7
1603
1604 ImageInfoSpecific (Object)
1605
1606 A discriminated record of image format specific information structures.
1607
1608 Members:
1609
1610 "type"
1611 One of "qcow2", "vmdk", "luks"
1612
1613 "data: ImageInfoSpecificQCow2" when "type" is "qcow2"
1614 "data: ImageInfoSpecificVmdk" when "type" is "vmdk"
1615 "data: QCryptoBlockInfoLUKS" when "type" is "luks"
1616
1617 Since: 1.7
1618
1619 ImageInfo (Object)
1620
1621 Information about a QEMU image file
1622
1623 Members:
1624
1625 "filename: string"
1626 name of the image file
1627
1628 "format: string"
1629 format of the image file
1630
1631 "virtual-size: int"
1632 maximum capacity in bytes of the image
1633
1634 "actual-size: int" (optional)
1635 actual size on disk in bytes of the image
1636
1637 "dirty-flag: boolean" (optional)
1638 true if image is not cleanly closed
1639
1640 "cluster-size: int" (optional)
1641 size of a cluster in bytes
1642
1643 "encrypted: boolean" (optional)
1644 true if the image is encrypted
1645
1646 "compressed: boolean" (optional)
1647 true if the image is compressed (Since 1.7)
1648
1649 "backing-filename: string" (optional)
1650 name of the backing file
1651
1652 "full-backing-filename: string" (optional)
1653 full path of the backing file
1654
1655 "backing-filename-format: string" (optional)
1656 the format of the backing file
1657
1658 "snapshots: array of SnapshotInfo" (optional)
1659 list of VM snapshots
1660
1661 "backing-image: ImageInfo" (optional)
1662 info of the backing image (since 1.6)
1663
1664 "format-specific: ImageInfoSpecific" (optional)
1665 structure supplying additional format-specific information (since
1666 1.7)
1667
1668 Since: 1.3
1669
1670 ImageCheck (Object)
1671
1672 Information about a QEMU image file check
1673
1674 Members:
1675
1676 "filename: string"
1677 name of the image file checked
1678
1679 "format: string"
1680 format of the image file checked
1681
1682 "check-errors: int"
1683 number of unexpected errors occurred during check
1684
1685 "image-end-offset: int" (optional)
1686 offset (in bytes) where the image ends, this field is present if
1687 the driver for the image format supports it
1688
1689 "corruptions: int" (optional)
1690 number of corruptions found during the check if any
1691
1692 "leaks: int" (optional)
1693 number of leaks found during the check if any
1694
1695 "corruptions-fixed: int" (optional)
1696 number of corruptions fixed during the check if any
1697
1698 "leaks-fixed: int" (optional)
1699 number of leaks fixed during the check if any
1700
1701 "total-clusters: int" (optional)
1702 total number of clusters, this field is present if the driver for
1703 the image format supports it
1704
1705 "allocated-clusters: int" (optional)
1706 total number of allocated clusters, this field is present if the
1707 driver for the image format supports it
1708
1709 "fragmented-clusters: int" (optional)
1710 total number of fragmented clusters, this field is present if the
1711 driver for the image format supports it
1712
1713 "compressed-clusters: int" (optional)
1714 total number of compressed clusters, this field is present if the
1715 driver for the image format supports it
1716
1717 Since: 1.4
1718
1719 MapEntry (Object)
1720
1721 Mapping information from a virtual block range to a host file range
1722
1723 Members:
1724
1725 "start: int"
1726 the start byte of the mapped virtual range
1727
1728 "length: int"
1729 the number of bytes of the mapped virtual range
1730
1731 "data: boolean"
1732 whether the mapped range has data
1733
1734 "zero: boolean"
1735 whether the virtual blocks are zeroed
1736
1737 "depth: int"
1738 the depth of the mapping
1739
1740 "offset: int" (optional)
1741 the offset in file that the virtual sectors are mapped to
1742
1743 "filename: string" (optional)
1744 filename that is referred to by "offset"
1745
1746 Since: 2.6
1747
1748 BlockdevCacheInfo (Object)
1749
1750 Cache mode information for a block device
1751
1752 Members:
1753
1754 "writeback: boolean"
1755 true if writeback mode is enabled
1756
1757 "direct: boolean"
1758 true if the host page cache is bypassed (O_DIRECT)
1759
1760 "no-flush: boolean"
1761 true if flush requests are ignored for the device
1762
1763 Since: 2.3
1764
1765 BlockDeviceInfo (Object)
1766
1767 Information about the backing device for a block device.
1768
1769 Members:
1770
1771 "file: string"
1772 the filename of the backing device
1773
1774 "node-name: string" (optional)
1775 the name of the block driver node (Since 2.0)
1776
1777 "ro: boolean"
1778 true if the backing device was open read-only
1779
1780 "drv: string"
1781 the name of the block format used to open the backing device. As of
1782 0.14.0 this can be: 'blkdebug', 'bochs', 'cloop', 'cow', 'dmg',
1783 'file', 'file', 'ftp', 'ftps', 'host_cdrom', 'host_device', 'http',
1784 'https', 'luks', 'nbd', 'parallels', 'qcow', 'qcow2', 'raw', 'vdi',
1785 'vmdk', 'vpc', 'vvfat' 2.2: 'archipelago' added, 'cow' dropped 2.3:
1786 'host_floppy' deprecated 2.5: 'host_floppy' dropped 2.6: 'luks'
1787 added 2.8: 'replication' added, 'tftp' dropped 2.9: 'archipelago'
1788 dropped
1789
1790 "backing_file: string" (optional)
1791 the name of the backing file (for copy-on-write)
1792
1793 "backing_file_depth: int"
1794 number of files in the backing file chain (since: 1.2)
1795
1796 "encrypted: boolean"
1797 true if the backing device is encrypted
1798
1799 "encryption_key_missing: boolean"
1800 always false
1801
1802 "detect_zeroes: BlockdevDetectZeroesOptions"
1803 detect and optimize zero writes (Since 2.1)
1804
1805 "bps: int"
1806 total throughput limit in bytes per second is specified
1807
1808 "bps_rd: int"
1809 read throughput limit in bytes per second is specified
1810
1811 "bps_wr: int"
1812 write throughput limit in bytes per second is specified
1813
1814 "iops: int"
1815 total I/O operations per second is specified
1816
1817 "iops_rd: int"
1818 read I/O operations per second is specified
1819
1820 "iops_wr: int"
1821 write I/O operations per second is specified
1822
1823 "image: ImageInfo"
1824 the info of image used (since: 1.6)
1825
1826 "bps_max: int" (optional)
1827 total throughput limit during bursts, in bytes (Since 1.7)
1828
1829 "bps_rd_max: int" (optional)
1830 read throughput limit during bursts, in bytes (Since 1.7)
1831
1832 "bps_wr_max: int" (optional)
1833 write throughput limit during bursts, in bytes (Since 1.7)
1834
1835 "iops_max: int" (optional)
1836 total I/O operations per second during bursts, in bytes (Since 1.7)
1837
1838 "iops_rd_max: int" (optional)
1839 read I/O operations per second during bursts, in bytes (Since 1.7)
1840
1841 "iops_wr_max: int" (optional)
1842 write I/O operations per second during bursts, in bytes (Since 1.7)
1843
1844 "bps_max_length: int" (optional)
1845 maximum length of the "bps_max" burst period, in seconds. (Since
1846 2.6)
1847
1848 "bps_rd_max_length: int" (optional)
1849 maximum length of the "bps_rd_max" burst period, in seconds. (Since
1850 2.6)
1851
1852 "bps_wr_max_length: int" (optional)
1853 maximum length of the "bps_wr_max" burst period, in seconds. (Since
1854 2.6)
1855
1856 "iops_max_length: int" (optional)
1857 maximum length of the "iops" burst period, in seconds. (Since 2.6)
1858
1859 "iops_rd_max_length: int" (optional)
1860 maximum length of the "iops_rd_max" burst period, in seconds.
1861 (Since 2.6)
1862
1863 "iops_wr_max_length: int" (optional)
1864 maximum length of the "iops_wr_max" burst period, in seconds.
1865 (Since 2.6)
1866
1867 "iops_size: int" (optional)
1868 an I/O size in bytes (Since 1.7)
1869
1870 "group: string" (optional)
1871 throttle group name (Since 2.4)
1872
1873 "cache: BlockdevCacheInfo"
1874 the cache mode used for the block device (since: 2.3)
1875
1876 "write_threshold: int"
1877 configured write threshold for the device. 0 if disabled. (Since
1878 2.3)
1879
1880 "dirty-bitmaps: array of BlockDirtyInfo" (optional)
1881 dirty bitmaps information (only present if node has one or more
1882 dirty bitmaps) (Since 4.2)
1883
1884 Features:
1885
1886 "deprecated"
1887 Member "encryption_key_missing" is deprecated. It is always false.
1888
1889 Since: 0.14.0
1890
1891 BlockDeviceIoStatus (Enum)
1892
1893 An enumeration of block device I/O status.
1894
1895 Values:
1896
1897 "ok"
1898 The last I/O operation has succeeded
1899
1900 "failed"
1901 The last I/O operation has failed
1902
1903 "nospace"
1904 The last I/O operation has failed due to a no-space condition
1905
1906 Since: 1.0
1907
1908 BlockDeviceMapEntry (Object)
1909
1910 Entry in the metadata map of the device (returned by "qemu-img map")
1911
1912 Members:
1913
1914 "start: int"
1915 Offset in the image of the first byte described by this entry (in
1916 bytes)
1917
1918 "length: int"
1919 Length of the range described by this entry (in bytes)
1920
1921 "depth: int"
1922 Number of layers (0 = top image, 1 = top image's backing file,
1923 etc.) before reaching one for which the range is allocated. The
1924 value is in the range 0 to the depth of the image chain - 1.
1925
1926 "zero: boolean"
1927 the sectors in this range read as zeros
1928
1929 "data: boolean"
1930 reading the image will actually read data from a file (in
1931 particular, if "offset" is present this means that the sectors are
1932 not simply preallocated, but contain actual data in raw format)
1933
1934 "offset: int" (optional)
1935 if present, the image file stores the data for this range in raw
1936 format at the given offset.
1937
1938 Since: 1.7
1939
1940 DirtyBitmapStatus (Enum)
1941
1942 An enumeration of possible states that a dirty bitmap can report to the
1943 user.
1944
1945 Values:
1946
1947 "frozen"
1948 The bitmap is currently in-use by some operation and is immutable.
1949 If the bitmap was "active" prior to the operation, new writes by
1950 the guest are being recorded in a temporary buffer, and will not be
1951 lost. Generally, bitmaps are cleared on successful use in an
1952 operation and the temporary buffer is committed into the bitmap. On
1953 failure, the temporary buffer is merged back into the bitmap
1954 without first clearing it. Please refer to the documentation for
1955 each bitmap-using operation, See also "blockdev-backup",
1956 "drive-backup".
1957
1958 "disabled"
1959 The bitmap is not currently recording new writes by the guest.
1960 This is requested explicitly via "block-dirty-bitmap-disable". It
1961 can still be cleared, deleted, or used for backup operations.
1962
1963 "active"
1964 The bitmap is actively monitoring for new writes, and can be
1965 cleared, deleted, or used for backup operations.
1966
1967 "locked"
1968 The bitmap is currently in-use by some operation and is immutable.
1969 If the bitmap was "active" prior to the operation, it is still
1970 recording new writes. If the bitmap was "disabled", it is not
1971 recording new writes. (Since 2.12)
1972
1973 "inconsistent"
1974 This is a persistent dirty bitmap that was marked in-use on disk,
1975 and is unusable by QEMU. It can only be deleted. Please rely on
1976 the inconsistent field in "BlockDirtyInfo" instead, as the status
1977 field is deprecated. (Since 4.0)
1978
1979 Since: 2.4
1980
1981 BlockDirtyInfo (Object)
1982
1983 Block dirty bitmap information.
1984
1985 Members:
1986
1987 "name: string" (optional)
1988 the name of the dirty bitmap (Since 2.4)
1989
1990 "count: int"
1991 number of dirty bytes according to the dirty bitmap
1992
1993 "granularity: int"
1994 granularity of the dirty bitmap in bytes (since 1.4)
1995
1996 "status: DirtyBitmapStatus"
1997 current status of the dirty bitmap (since 2.4)
1998
1999 "recording: boolean"
2000 true if the bitmap is recording new writes from the guest.
2001 Replaces `active` and `disabled` statuses. (since 4.0)
2002
2003 "busy: boolean"
2004 true if the bitmap is in-use by some operation (NBD or jobs) and
2005 cannot be modified via QMP or used by another operation. Replaces
2006 `locked` and `frozen` statuses. (since 4.0)
2007
2008 "persistent: boolean"
2009 true if the bitmap was stored on disk, is scheduled to be stored on
2010 disk, or both. (since 4.0)
2011
2012 "inconsistent: boolean" (optional)
2013 true if this is a persistent bitmap that was improperly stored.
2014 Implies "persistent" to be true; "recording" and "busy" to be
2015 false. This bitmap cannot be used. To remove it, use
2016 "block-dirty-bitmap-remove". (Since 4.0)
2017
2018 Features:
2019
2020 "deprecated"
2021 Member "status" is deprecated. Use "recording" and "locked"
2022 instead.
2023
2024 Since: 1.3
2025
2026 Qcow2BitmapInfoFlags (Enum)
2027
2028 An enumeration of flags that a bitmap can report to the user.
2029
2030 Values:
2031
2032 "in-use"
2033 This flag is set by any process actively modifying the qcow2 file,
2034 and cleared when the updated bitmap is flushed to the qcow2 image.
2035 The presence of this flag in an offline image means that the bitmap
2036 was not saved correctly after its last usage, and may contain
2037 inconsistent data.
2038
2039 "auto"
2040 The bitmap must reflect all changes of the virtual disk by any
2041 application that would write to this qcow2 file.
2042
2043 Since: 4.0
2044
2045 Qcow2BitmapInfo (Object)
2046
2047 Qcow2 bitmap information.
2048
2049 Members:
2050
2051 "name: string"
2052 the name of the bitmap
2053
2054 "granularity: int"
2055 granularity of the bitmap in bytes
2056
2057 "flags: array of Qcow2BitmapInfoFlags"
2058 flags of the bitmap
2059
2060 Since: 4.0
2061
2062 BlockLatencyHistogramInfo (Object)
2063
2064 Block latency histogram.
2065
2066 Members:
2067
2068 "boundaries: array of int"
2069 list of interval boundary values in nanoseconds, all greater than
2070 zero and in ascending order. For example, the list [10, 50, 100]
2071 produces the following histogram intervals: [0, 10), [10, 50), [50,
2072 100), [100, +inf).
2073
2074 "bins: array of int"
2075 list of io request counts corresponding to histogram intervals.
2076 len("bins") = len("boundaries") + 1 For the example above, "bins"
2077 may be something like [3, 1, 5, 2], and corresponding histogram
2078 looks like:
2079
2080 5| *
2081
2082
2083
2084 4| *
2085
2086
2087
2088 3| B< >
2089
2090
2091
2092 2| B< > *
2093
2094
2095
2096 1| B< > B< >
2097
2098
2099
2100 +------------------
2101
2102
2103
2104 10 50 100
2105
2106 Since: 4.0
2107
2108 BlockInfo (Object)
2109
2110 Block device information. This structure describes a virtual device
2111 and the backing device associated with it.
2112
2113 Members:
2114
2115 "device: string"
2116 The device name associated with the virtual device.
2117
2118 "qdev: string" (optional)
2119 The qdev ID, or if no ID is assigned, the QOM path of the block
2120 device. (since 2.10)
2121
2122 "type: string"
2123 This field is returned only for compatibility reasons, it should
2124 not be used (always returns 'unknown')
2125
2126 "removable: boolean"
2127 True if the device supports removable media.
2128
2129 "locked: boolean"
2130 True if the guest has locked this device from having its media
2131 removed
2132
2133 "tray_open: boolean" (optional)
2134 True if the device's tray is open (only present if it has a tray)
2135
2136 "dirty-bitmaps: array of BlockDirtyInfo" (optional)
2137 dirty bitmaps information (only present if the driver has one or
2138 more dirty bitmaps) (Since 2.0)
2139
2140 "io-status: BlockDeviceIoStatus" (optional)
2141 "BlockDeviceIoStatus". Only present if the device supports it and
2142 the VM is configured to stop on errors (supported device models:
2143 virtio-blk, IDE, SCSI except scsi-generic)
2144
2145 "inserted: BlockDeviceInfo" (optional)
2146 "BlockDeviceInfo" describing the device if media is present
2147
2148 Features:
2149
2150 "deprecated"
2151 Member "dirty-bitmaps" is deprecated. Use "inserted" member
2152 "dirty-bitmaps" instead.
2153
2154 Since: 0.14.0
2155
2156 BlockMeasureInfo (Object)
2157
2158 Image file size calculation information. This structure describes the
2159 size requirements for creating a new image file.
2160
2161 The size requirements depend on the new image file format. File size
2162 always equals virtual disk size for the 'raw' format, even for sparse
2163 POSIX files. Compact formats such as 'qcow2' represent unallocated and
2164 zero regions efficiently so file size may be smaller than virtual disk
2165 size.
2166
2167 The values are upper bounds that are guaranteed to fit the new image
2168 file. Subsequent modification, such as internal snapshot or further
2169 bitmap creation, may require additional space and is not covered here.
2170
2171 Members:
2172
2173 "required: int"
2174 Size required for a new image file, in bytes, when copying just
2175 allocated guest-visible contents.
2176
2177 "fully-allocated: int"
2178 Image file size, in bytes, once data has been written to all
2179 sectors, when copying just guest-visible contents.
2180
2181 "bitmaps: int" (optional)
2182 Additional size required if all the top-level bitmap metadata in
2183 the source image were to be copied to the destination, present only
2184 when source and destination both support persistent bitmaps. (since
2185 5.1)
2186
2187 Since: 2.10
2188
2189 query-block (Command) Get a list of BlockInfo for all virtual block
2190 devices.
2191
2192 Returns: a list of "BlockInfo" describing each virtual block device.
2193 Filter nodes that were created implicitly are skipped over.
2194
2195 Since: 0.14.0
2196
2197 Example:
2198
2199 -> { "execute": "query-block" }
2200 <- {
2201 "return":[
2202 {
2203 "io-status": "ok",
2204 "device":"ide0-hd0",
2205 "locked":false,
2206 "removable":false,
2207 "inserted":{
2208 "ro":false,
2209 "drv":"qcow2",
2210 "encrypted":false,
2211 "file":"disks/test.qcow2",
2212 "backing_file_depth":1,
2213 "bps":1000000,
2214 "bps_rd":0,
2215 "bps_wr":0,
2216 "iops":1000000,
2217 "iops_rd":0,
2218 "iops_wr":0,
2219 "bps_max": 8000000,
2220 "bps_rd_max": 0,
2221 "bps_wr_max": 0,
2222 "iops_max": 0,
2223 "iops_rd_max": 0,
2224 "iops_wr_max": 0,
2225 "iops_size": 0,
2226 "detect_zeroes": "on",
2227 "write_threshold": 0,
2228 "image":{
2229 "filename":"disks/test.qcow2",
2230 "format":"qcow2",
2231 "virtual-size":2048000,
2232 "backing_file":"base.qcow2",
2233 "full-backing-filename":"disks/base.qcow2",
2234 "backing-filename-format":"qcow2",
2235 "snapshots":[
2236 {
2237 "id": "1",
2238 "name": "snapshot1",
2239 "vm-state-size": 0,
2240 "date-sec": 10000200,
2241 "date-nsec": 12,
2242 "vm-clock-sec": 206,
2243 "vm-clock-nsec": 30
2244 }
2245 ],
2246 "backing-image":{
2247 "filename":"disks/base.qcow2",
2248 "format":"qcow2",
2249 "virtual-size":2048000
2250 }
2251 }
2252 },
2253 "qdev": "ide_disk",
2254 "type":"unknown"
2255 },
2256 {
2257 "io-status": "ok",
2258 "device":"ide1-cd0",
2259 "locked":false,
2260 "removable":true,
2261 "qdev": "/machine/unattached/device[23]",
2262 "tray_open": false,
2263 "type":"unknown"
2264 },
2265 {
2266 "device":"floppy0",
2267 "locked":false,
2268 "removable":true,
2269 "qdev": "/machine/unattached/device[20]",
2270 "type":"unknown"
2271 },
2272 {
2273 "device":"sd0",
2274 "locked":false,
2275 "removable":true,
2276 "type":"unknown"
2277 }
2278 ]
2279 }
2280
2281 BlockDeviceTimedStats (Object)
2282
2283 Statistics of a block device during a given interval of time.
2284
2285 Members:
2286
2287 "interval_length: int"
2288 Interval used for calculating the statistics, in seconds.
2289
2290 "min_rd_latency_ns: int"
2291 Minimum latency of read operations in the defined interval, in
2292 nanoseconds.
2293
2294 "min_wr_latency_ns: int"
2295 Minimum latency of write operations in the defined interval, in
2296 nanoseconds.
2297
2298 "min_flush_latency_ns: int"
2299 Minimum latency of flush operations in the defined interval, in
2300 nanoseconds.
2301
2302 "max_rd_latency_ns: int"
2303 Maximum latency of read operations in the defined interval, in
2304 nanoseconds.
2305
2306 "max_wr_latency_ns: int"
2307 Maximum latency of write operations in the defined interval, in
2308 nanoseconds.
2309
2310 "max_flush_latency_ns: int"
2311 Maximum latency of flush operations in the defined interval, in
2312 nanoseconds.
2313
2314 "avg_rd_latency_ns: int"
2315 Average latency of read operations in the defined interval, in
2316 nanoseconds.
2317
2318 "avg_wr_latency_ns: int"
2319 Average latency of write operations in the defined interval, in
2320 nanoseconds.
2321
2322 "avg_flush_latency_ns: int"
2323 Average latency of flush operations in the defined interval, in
2324 nanoseconds.
2325
2326 "avg_rd_queue_depth: number"
2327 Average number of pending read operations in the defined interval.
2328
2329 "avg_wr_queue_depth: number"
2330 Average number of pending write operations in the defined interval.
2331
2332 Since: 2.5
2333
2334 BlockDeviceStats (Object)
2335
2336 Statistics of a virtual block device or a block backing device.
2337
2338 Members:
2339
2340 "rd_bytes: int"
2341 The number of bytes read by the device.
2342
2343 "wr_bytes: int"
2344 The number of bytes written by the device.
2345
2346 "unmap_bytes: int"
2347 The number of bytes unmapped by the device (Since 4.2)
2348
2349 "rd_operations: int"
2350 The number of read operations performed by the device.
2351
2352 "wr_operations: int"
2353 The number of write operations performed by the device.
2354
2355 "flush_operations: int"
2356 The number of cache flush operations performed by the device (since
2357 0.15.0)
2358
2359 "unmap_operations: int"
2360 The number of unmap operations performed by the device (Since 4.2)
2361
2362 "rd_total_time_ns: int"
2363 Total time spent on reads in nanoseconds (since 0.15.0).
2364
2365 "wr_total_time_ns: int"
2366 Total time spent on writes in nanoseconds (since 0.15.0).
2367
2368 "flush_total_time_ns: int"
2369 Total time spent on cache flushes in nanoseconds (since 0.15.0).
2370
2371 "unmap_total_time_ns: int"
2372 Total time spent on unmap operations in nanoseconds (Since 4.2)
2373
2374 "wr_highest_offset: int"
2375 The offset after the greatest byte written to the device. The
2376 intended use of this information is for growable sparse files (like
2377 qcow2) that are used on top of a physical device.
2378
2379 "rd_merged: int"
2380 Number of read requests that have been merged into another request
2381 (Since 2.3).
2382
2383 "wr_merged: int"
2384 Number of write requests that have been merged into another request
2385 (Since 2.3).
2386
2387 "unmap_merged: int"
2388 Number of unmap requests that have been merged into another request
2389 (Since 4.2)
2390
2391 "idle_time_ns: int" (optional)
2392 Time since the last I/O operation, in nanoseconds. If the field is
2393 absent it means that there haven't been any operations yet (Since
2394 2.5).
2395
2396 "failed_rd_operations: int"
2397 The number of failed read operations performed by the device (Since
2398 2.5)
2399
2400 "failed_wr_operations: int"
2401 The number of failed write operations performed by the device
2402 (Since 2.5)
2403
2404 "failed_flush_operations: int"
2405 The number of failed flush operations performed by the device
2406 (Since 2.5)
2407
2408 "failed_unmap_operations: int"
2409 The number of failed unmap operations performed by the device
2410 (Since 4.2)
2411
2412 "invalid_rd_operations: int"
2413 The number of invalid read operations performed by the device
2414 (Since 2.5)
2415
2416 "invalid_wr_operations: int"
2417 The number of invalid write operations performed by the device
2418 (Since 2.5)
2419
2420 "invalid_flush_operations: int"
2421 The number of invalid flush operations performed by the device
2422 (Since 2.5)
2423
2424 "invalid_unmap_operations: int"
2425 The number of invalid unmap operations performed by the device
2426 (Since 4.2)
2427
2428 "account_invalid: boolean"
2429 Whether invalid operations are included in the last access
2430 statistics (Since 2.5)
2431
2432 "account_failed: boolean"
2433 Whether failed operations are included in the latency and last
2434 access statistics (Since 2.5)
2435
2436 "timed_stats: array of BlockDeviceTimedStats"
2437 Statistics specific to the set of previously defined intervals of
2438 time (Since 2.5)
2439
2440 "rd_latency_histogram: BlockLatencyHistogramInfo" (optional)
2441 "BlockLatencyHistogramInfo". (Since 4.0)
2442
2443 "wr_latency_histogram: BlockLatencyHistogramInfo" (optional)
2444 "BlockLatencyHistogramInfo". (Since 4.0)
2445
2446 "flush_latency_histogram: BlockLatencyHistogramInfo" (optional)
2447 "BlockLatencyHistogramInfo". (Since 4.0)
2448
2449 Since: 0.14.0
2450
2451 BlockStatsSpecificFile (Object)
2452
2453 File driver statistics
2454
2455 Members:
2456
2457 "discard-nb-ok: int"
2458 The number of successful discard operations performed by the
2459 driver.
2460
2461 "discard-nb-failed: int"
2462 The number of failed discard operations performed by the driver.
2463
2464 "discard-bytes-ok: int"
2465 The number of bytes discarded by the driver.
2466
2467 Since: 4.2
2468
2469 BlockStatsSpecific (Object)
2470
2471 Block driver specific statistics
2472
2473 Members:
2474
2475 "driver: BlockdevDriver"
2476 Not documented
2477
2478 The members of "BlockStatsSpecificFile" when "driver" is "file"
2479 The members of "BlockStatsSpecificFile" when "driver" is "host_device"
2480
2481 Since: 4.2
2482
2483 BlockStats (Object)
2484
2485 Statistics of a virtual block device or a block backing device.
2486
2487 Members:
2488
2489 "device: string" (optional)
2490 If the stats are for a virtual block device, the name corresponding
2491 to the virtual block device.
2492
2493 "node-name: string" (optional)
2494 The node name of the device. (Since 2.3)
2495
2496 "qdev: string" (optional)
2497 The qdev ID, or if no ID is assigned, the QOM path of the block
2498 device. (since 3.0)
2499
2500 "stats: BlockDeviceStats"
2501 A "BlockDeviceStats" for the device.
2502
2503 "driver-specific: BlockStatsSpecific" (optional)
2504 Optional driver-specific stats. (Since 4.2)
2505
2506 "parent: BlockStats" (optional)
2507 This describes the file block device if it has one. Contains
2508 recursively the statistics of the underlying protocol (e.g. the
2509 host file for a qcow2 image). If there is no underlying protocol,
2510 this field is omitted
2511
2512 "backing: BlockStats" (optional)
2513 This describes the backing block device if it has one. (Since 2.0)
2514
2515 Since: 0.14.0
2516
2517 query-blockstats (Command) Query the "BlockStats" for all virtual
2518 block devices.
2519
2520 Arguments:
2521
2522 "query-nodes: boolean" (optional)
2523 If true, the command will query all the block nodes that have a
2524 node name, in a list which will include "parent" information, but
2525 not "backing". If false or omitted, the behavior is as before -
2526 query all the device backends, recursively including their "parent"
2527 and "backing". Filter nodes that were created implicitly are
2528 skipped over in this mode. (Since 2.3)
2529
2530 Returns: A list of "BlockStats" for each virtual block devices.
2531
2532 Since: 0.14.0
2533
2534 Example:
2535
2536 -> { "execute": "query-blockstats" }
2537 <- {
2538 "return":[
2539 {
2540 "device":"ide0-hd0",
2541 "parent":{
2542 "stats":{
2543 "wr_highest_offset":3686448128,
2544 "wr_bytes":9786368,
2545 "wr_operations":751,
2546 "rd_bytes":122567168,
2547 "rd_operations":36772
2548 "wr_total_times_ns":313253456
2549 "rd_total_times_ns":3465673657
2550 "flush_total_times_ns":49653
2551 "flush_operations":61,
2552 "rd_merged":0,
2553 "wr_merged":0,
2554 "idle_time_ns":2953431879,
2555 "account_invalid":true,
2556 "account_failed":false
2557 }
2558 },
2559 "stats":{
2560 "wr_highest_offset":2821110784,
2561 "wr_bytes":9786368,
2562 "wr_operations":692,
2563 "rd_bytes":122739200,
2564 "rd_operations":36604
2565 "flush_operations":51,
2566 "wr_total_times_ns":313253456
2567 "rd_total_times_ns":3465673657
2568 "flush_total_times_ns":49653,
2569 "rd_merged":0,
2570 "wr_merged":0,
2571 "idle_time_ns":2953431879,
2572 "account_invalid":true,
2573 "account_failed":false
2574 },
2575 "qdev": "/machine/unattached/device[23]"
2576 },
2577 {
2578 "device":"ide1-cd0",
2579 "stats":{
2580 "wr_highest_offset":0,
2581 "wr_bytes":0,
2582 "wr_operations":0,
2583 "rd_bytes":0,
2584 "rd_operations":0
2585 "flush_operations":0,
2586 "wr_total_times_ns":0
2587 "rd_total_times_ns":0
2588 "flush_total_times_ns":0,
2589 "rd_merged":0,
2590 "wr_merged":0,
2591 "account_invalid":false,
2592 "account_failed":false
2593 },
2594 "qdev": "/machine/unattached/device[24]"
2595 },
2596 {
2597 "device":"floppy0",
2598 "stats":{
2599 "wr_highest_offset":0,
2600 "wr_bytes":0,
2601 "wr_operations":0,
2602 "rd_bytes":0,
2603 "rd_operations":0
2604 "flush_operations":0,
2605 "wr_total_times_ns":0
2606 "rd_total_times_ns":0
2607 "flush_total_times_ns":0,
2608 "rd_merged":0,
2609 "wr_merged":0,
2610 "account_invalid":false,
2611 "account_failed":false
2612 },
2613 "qdev": "/machine/unattached/device[16]"
2614 },
2615 {
2616 "device":"sd0",
2617 "stats":{
2618 "wr_highest_offset":0,
2619 "wr_bytes":0,
2620 "wr_operations":0,
2621 "rd_bytes":0,
2622 "rd_operations":0
2623 "flush_operations":0,
2624 "wr_total_times_ns":0
2625 "rd_total_times_ns":0
2626 "flush_total_times_ns":0,
2627 "rd_merged":0,
2628 "wr_merged":0,
2629 "account_invalid":false,
2630 "account_failed":false
2631 }
2632 }
2633 ]
2634 }
2635
2636 BlockdevOnError (Enum)
2637
2638 An enumeration of possible behaviors for errors on I/O operations. The
2639 exact meaning depends on whether the I/O was initiated by a guest or by
2640 a block job
2641
2642 Values:
2643
2644 "report"
2645 for guest operations, report the error to the guest; for jobs,
2646 cancel the job
2647
2648 "ignore"
2649 ignore the error, only report a QMP event (BLOCK_IO_ERROR or
2650 BLOCK_JOB_ERROR). The backup, mirror and commit block jobs retry
2651 the failing request later and may still complete successfully. The
2652 stream block job continues to stream and will complete with an
2653 error.
2654
2655 "enospc"
2656 same as "stop" on ENOSPC, same as "report" otherwise.
2657
2658 "stop"
2659 for guest operations, stop the virtual machine; for jobs, pause the
2660 job
2661
2662 "auto"
2663 inherit the error handling policy of the backend (since: 2.7)
2664
2665 Since: 1.3
2666
2667 MirrorSyncMode (Enum)
2668
2669 An enumeration of possible behaviors for the initial synchronization
2670 phase of storage mirroring.
2671
2672 Values:
2673
2674 "top"
2675 copies data in the topmost image to the destination
2676
2677 "full"
2678 copies data from all images to the destination
2679
2680 "none"
2681 only copy data written from now on
2682
2683 "incremental"
2684 only copy data described by the dirty bitmap. (since: 2.4)
2685
2686 "bitmap"
2687 only copy data described by the dirty bitmap. (since: 4.2) Behavior
2688 on completion is determined by the BitmapSyncMode.
2689
2690 Since: 1.3
2691
2692 BitmapSyncMode (Enum)
2693
2694 An enumeration of possible behaviors for the synchronization of a
2695 bitmap when used for data copy operations.
2696
2697 Values:
2698
2699 "on-success"
2700 The bitmap is only synced when the operation is successful. This
2701 is the behavior always used for 'INCREMENTAL' backups.
2702
2703 "never"
2704 The bitmap is never synchronized with the operation, and is treated
2705 solely as a read-only manifest of blocks to copy.
2706
2707 "always"
2708 The bitmap is always synchronized with the operation, regardless of
2709 whether or not the operation was successful.
2710
2711 Since: 4.2
2712
2713 MirrorCopyMode (Enum)
2714
2715 An enumeration whose values tell the mirror block job when to trigger
2716 writes to the target.
2717
2718 Values:
2719
2720 "background"
2721 copy data in background only.
2722
2723 "write-blocking"
2724 when data is written to the source, write it (synchronously) to the
2725 target as well. In addition, data is copied in background just
2726 like in "background" mode.
2727
2728 Since: 3.0
2729
2730 BlockJobInfo (Object)
2731
2732 Information about a long-running block device operation.
2733
2734 Members:
2735
2736 "type: string"
2737 the job type ('stream' for image streaming)
2738
2739 "device: string"
2740 The job identifier. Originally the device name but other values are
2741 allowed since QEMU 2.7
2742
2743 "len: int"
2744 Estimated "offset" value at the completion of the job. This value
2745 can arbitrarily change while the job is running, in both
2746 directions.
2747
2748 "offset: int"
2749 Progress made until now. The unit is arbitrary and the value can
2750 only meaningfully be used for the ratio of "offset" to "len". The
2751 value is monotonically increasing.
2752
2753 "busy: boolean"
2754 false if the job is known to be in a quiescent state, with no
2755 pending I/O. Since 1.3.
2756
2757 "paused: boolean"
2758 whether the job is paused or, if "busy" is true, will pause itself
2759 as soon as possible. Since 1.3.
2760
2761 "speed: int"
2762 the rate limit, bytes per second
2763
2764 "io-status: BlockDeviceIoStatus"
2765 the status of the job (since 1.3)
2766
2767 "ready: boolean"
2768 true if the job may be completed (since 2.2)
2769
2770 "status: JobStatus"
2771 Current job state/status (since 2.12)
2772
2773 "auto-finalize: boolean"
2774 Job will finalize itself when PENDING, moving to the CONCLUDED
2775 state. (since 2.12)
2776
2777 "auto-dismiss: boolean"
2778 Job will dismiss itself when CONCLUDED, moving to the NULL state
2779 and disappearing from the query list. (since 2.12)
2780
2781 "error: string" (optional)
2782 Error information if the job did not complete successfully. Not
2783 set if the job completed successfully. (since 2.12.1)
2784
2785 Since: 1.1
2786
2787 query-block-jobs (Command) Return information about long-running block
2788 device operations.
2789
2790 Returns: a list of "BlockJobInfo" for each active block job
2791
2792 Since: 1.1
2793
2794 block_passwd (Command) This command sets the password of a block
2795 device that has not been open with a password and requires one.
2796
2797 This command is now obsolete and will always return an error since 2.10
2798
2799 Arguments:
2800
2801 "device: string" (optional)
2802 Not documented
2803
2804 "node-name: string" (optional)
2805 Not documented
2806
2807 "password: string"
2808 Not documented
2809
2810 block_resize (Command) Resize a block image while a guest is running.
2811
2812 Either "device" or "node-name" must be set but not both.
2813
2814 Arguments:
2815
2816 "device: string" (optional)
2817 the name of the device to get the image resized
2818
2819 "node-name: string" (optional)
2820 graph node name to get the image resized (Since 2.0)
2821
2822 "size: int"
2823 new image size in bytes
2824
2825 Returns:
2826
2827 - nothing on success
2828
2829 - If "device" is not a valid block device, DeviceNotFound
2830
2831 Since: 0.14.0
2832
2833 Example:
2834
2835 -> { "execute": "block_resize",
2836 "arguments": { "device": "scratch", "size": 1073741824 } }
2837 <- { "return": {} }
2838
2839 NewImageMode (Enum)
2840
2841 An enumeration that tells QEMU how to set the backing file path in a
2842 new image file.
2843
2844 Values:
2845
2846 "existing"
2847 QEMU should look for an existing image file.
2848
2849 "absolute-paths"
2850 QEMU should create a new image with absolute paths for the backing
2851 file. If there is no backing file available, the new image will not
2852 be backed either.
2853
2854 Since: 1.1
2855
2856 BlockdevSnapshotSync (Object)
2857
2858 Either "device" or "node-name" must be set but not both.
2859
2860 Members:
2861
2862 "device: string" (optional)
2863 the name of the device to take a snapshot of.
2864
2865 "node-name: string" (optional)
2866 graph node name to generate the snapshot from (Since 2.0)
2867
2868 "snapshot-file: string"
2869 the target of the new overlay image. If the file exists, or if it
2870 is a device, the overlay will be created in the existing
2871 file/device. Otherwise, a new file will be created.
2872
2873 "snapshot-node-name: string" (optional)
2874 the graph node name of the new image (Since 2.0)
2875
2876 "format: string" (optional)
2877 the format of the overlay image, default is 'qcow2'.
2878
2879 "mode: NewImageMode" (optional)
2880 whether and how QEMU should create a new image, default is
2881 'absolute-paths'.
2882
2883 BlockdevSnapshot (Object)
2884
2885 Members:
2886
2887 "node: string"
2888 device or node name that will have a snapshot taken.
2889
2890 "overlay: string"
2891 reference to the existing block device that will become the overlay
2892 of "node", as part of taking the snapshot. It must not have a
2893 current backing file (this can be achieved by passing "backing":
2894 null to blockdev-add).
2895
2896 Since: 2.5
2897
2898 BackupCommon (Object)
2899
2900 Members:
2901
2902 "job-id: string" (optional)
2903 identifier for the newly-created block job. If omitted, the device
2904 name will be used. (Since 2.7)
2905
2906 "device: string"
2907 the device name or node-name of a root node which should be copied.
2908
2909 "sync: MirrorSyncMode"
2910 what parts of the disk image should be copied to the destination
2911 (all the disk, only the sectors allocated in the topmost image,
2912 from a dirty bitmap, or only new I/O).
2913
2914 "speed: int" (optional)
2915 the maximum speed, in bytes per second. The default is 0, for
2916 unlimited.
2917
2918 "bitmap: string" (optional)
2919 The name of a dirty bitmap to use. Must be present if sync is
2920 "bitmap" or "incremental". Can be present if sync is "full" or
2921 "top". Must not be present otherwise. (Since 2.4 (drive-backup),
2922 3.1 (blockdev-backup))
2923
2924 "bitmap-mode: BitmapSyncMode" (optional)
2925 Specifies the type of data the bitmap should contain after the
2926 operation concludes. Must be present if a bitmap was provided,
2927 Must NOT be present otherwise. (Since 4.2)
2928
2929 "compress: boolean" (optional)
2930 true to compress data, if the target format supports it. (default:
2931 false) (since 2.8)
2932
2933 "on-source-error: BlockdevOnError" (optional)
2934 the action to take on an error on the source, default 'report'.
2935 'stop' and 'enospc' can only be used if the block device supports
2936 io-status (see BlockInfo).
2937
2938 "on-target-error: BlockdevOnError" (optional)
2939 the action to take on an error on the target, default 'report' (no
2940 limitations, since this applies to a different block device than
2941 "device").
2942
2943 "auto-finalize: boolean" (optional)
2944 When false, this job will wait in a PENDING state after it has
2945 finished its work, waiting for "block-job-finalize" before making
2946 any block graph changes. When true, this job will automatically
2947 perform its abort or commit actions. Defaults to true. (Since
2948 2.12)
2949
2950 "auto-dismiss: boolean" (optional)
2951 When false, this job will wait in a CONCLUDED state after it has
2952 completely ceased all work, and awaits "block-job-dismiss". When
2953 true, this job will automatically disappear from the query list
2954 without user intervention. Defaults to true. (Since 2.12)
2955
2956 "filter-node-name: string" (optional)
2957 the node name that should be assigned to the filter driver that the
2958 backup job inserts into the graph above node specified by "drive".
2959 If this option is not given, a node name is autogenerated. (Since:
2960 4.2)
2961
2962 Note: "on-source-error" and "on-target-error" only affect background
2963 I/O. If an error occurs during a guest write request, the device's
2964 rerror/werror actions will be used.
2965
2966 Since: 4.2
2967
2968 DriveBackup (Object)
2969
2970 Members:
2971
2972 "target: string"
2973 the target of the new image. If the file exists, or if it is a
2974 device, the existing file/device will be used as the new
2975 destination. If it does not exist, a new file will be created.
2976
2977 "format: string" (optional)
2978 the format of the new destination, default is to probe if "mode" is
2979 'existing', else the format of the source
2980
2981 "mode: NewImageMode" (optional)
2982 whether and how QEMU should create a new image, default is
2983 'absolute-paths'.
2984
2985 The members of "BackupCommon"
2986
2987 Since: 1.6
2988
2989 BlockdevBackup (Object)
2990
2991 Members:
2992
2993 "target: string"
2994 the device name or node-name of the backup target node.
2995
2996 The members of "BackupCommon"
2997
2998 Since: 2.3
2999
3000 blockdev-snapshot-sync (Command) Takes a synchronous snapshot of a
3001 block device.
3002
3003 For the arguments, see the documentation of BlockdevSnapshotSync.
3004
3005 Returns:
3006
3007 - nothing on success
3008
3009 - If "device" is not a valid block device, DeviceNotFound
3010
3011 Since: 0.14.0
3012
3013 Example:
3014
3015 -> { "execute": "blockdev-snapshot-sync",
3016 "arguments": { "device": "ide-hd0",
3017 "snapshot-file":
3018 "/some/place/my-image",
3019 "format": "qcow2" } }
3020 <- { "return": {} }
3021
3022 blockdev-snapshot (Command) Takes a snapshot of a block device.
3023
3024 Take a snapshot, by installing 'node' as the backing image of
3025 'overlay'. Additionally, if 'node' is associated with a block device,
3026 the block device changes to using 'overlay' as its new active image.
3027
3028 For the arguments, see the documentation of BlockdevSnapshot.
3029
3030 Features:
3031
3032 "allow-write-only-overlay"
3033 If present, the check whether this operation is safe was relaxed so
3034 that it can be used to change backing file of a destination of a
3035 blockdev-mirror. (since 5.0)
3036
3037 Since: 2.5
3038
3039 Example:
3040
3041 -> { "execute": "blockdev-add",
3042 "arguments": { "driver": "qcow2",
3043 "node-name": "node1534",
3044 "file": { "driver": "file",
3045 "filename": "hd1.qcow2" },
3046 "backing": null } }
3047
3048 <- { "return": {} }
3049
3050 -> { "execute": "blockdev-snapshot",
3051 "arguments": { "node": "ide-hd0",
3052 "overlay": "node1534" } }
3053 <- { "return": {} }
3054
3055 change-backing-file (Command) Change the backing file in the image
3056 file metadata. This does not cause QEMU to reopen the image file to
3057 reparse the backing filename (it may, however, perform a reopen to
3058 change permissions from r/o -> r/w -> r/o, if needed). The new backing
3059 file string is written into the image file metadata, and the QEMU
3060 internal strings are updated.
3061
3062 Arguments:
3063
3064 "image-node-name: string"
3065 The name of the block driver state node of the image to modify. The
3066 "device" argument is used to verify "image-node-name" is in the
3067 chain described by "device".
3068
3069 "device: string"
3070 The device name or node-name of the root node that owns image-node-
3071 name.
3072
3073 "backing-file: string"
3074 The string to write as the backing file. This string is not
3075 validated, so care should be taken when specifying the string or
3076 the image chain may not be able to be reopened again.
3077
3078 Returns:
3079
3080 - Nothing on success
3081
3082 - If "device" does not exist or cannot be determined, DeviceNotFound
3083
3084 Since: 2.1
3085
3086 block-commit (Command) Live commit of data from overlay image nodes
3087 into backing nodes - i.e., writes data between 'top' and 'base' into
3088 'base'.
3089
3090 Arguments:
3091
3092 "job-id: string" (optional)
3093 identifier for the newly-created block job. If omitted, the device
3094 name will be used. (Since 2.7)
3095
3096 "device: string"
3097 the device name or node-name of a root node
3098
3099 "base-node: string" (optional)
3100 The node name of the backing image to write data into. If not
3101 specified, this is the deepest backing image. (since: 3.1)
3102
3103 "base: string" (optional)
3104 Same as "base-node", except that it is a file name rather than a
3105 node name. This must be the exact filename string that was used to
3106 open the node; other strings, even if addressing the same file, are
3107 not accepted
3108
3109 "top-node: string" (optional)
3110 The node name of the backing image within the image chain which
3111 contains the topmost data to be committed down. If not specified,
3112 this is the active layer. (since: 3.1)
3113
3114 "top: string" (optional)
3115 Same as "top-node", except that it is a file name rather than a
3116 node name. This must be the exact filename string that was used to
3117 open the node; other strings, even if addressing the same file, are
3118 not accepted
3119
3120 "backing-file: string" (optional)
3121 The backing file string to write into the overlay image of 'top'.
3122 If 'top' is the active layer, specifying a backing file string is
3123 an error. This filename is not validated.
3124
3125 If a pathname string is such that it cannot be resolved by QEMU,
3126 that means that subsequent QMP or HMP commands must use node-names
3127 for the image in question, as filename lookup methods will fail.
3128
3129 If not specified, QEMU will automatically determine the backing
3130 file string to use, or error out if there is no obvious choice.
3131 Care should be taken when specifying the string, to specify a valid
3132 filename or protocol. (Since 2.1)
3133
3134 If top == base, that is an error. If top == active, the job will
3135 not be completed by itself, user needs to complete the job with the
3136 block-job-complete command after getting the ready event. (Since
3137 2.0)
3138
3139 If the base image is smaller than top, then the base image will be
3140 resized to be the same size as top. If top is smaller than the
3141 base image, the base will not be truncated. If you want the base
3142 image size to match the size of the smaller top, you can safely
3143 truncate it yourself once the commit operation successfully
3144 completes.
3145
3146 "speed: int" (optional)
3147 the maximum speed, in bytes per second
3148
3149 "on-error: BlockdevOnError" (optional)
3150 the action to take on an error. 'ignore' means that the request
3151 should be retried. (default: report; Since: 5.0)
3152
3153 "filter-node-name: string" (optional)
3154 the node name that should be assigned to the filter driver that the
3155 commit job inserts into the graph above "top". If this option is
3156 not given, a node name is autogenerated. (Since: 2.9)
3157
3158 "auto-finalize: boolean" (optional)
3159 When false, this job will wait in a PENDING state after it has
3160 finished its work, waiting for "block-job-finalize" before making
3161 any block graph changes. When true, this job will automatically
3162 perform its abort or commit actions. Defaults to true. (Since 3.1)
3163
3164 "auto-dismiss: boolean" (optional)
3165 When false, this job will wait in a CONCLUDED state after it has
3166 completely ceased all work, and awaits "block-job-dismiss". When
3167 true, this job will automatically disappear from the query list
3168 without user intervention. Defaults to true. (Since 3.1)
3169
3170 Features:
3171
3172 "deprecated"
3173 Members "base" and "top" are deprecated. Use "base-node" and
3174 "top-node" instead.
3175
3176 Returns:
3177
3178 - Nothing on success
3179
3180 - If "device" does not exist, DeviceNotFound
3181
3182 - Any other error returns a GenericError.
3183
3184 Since: 1.3
3185
3186 Example:
3187
3188 -> { "execute": "block-commit",
3189 "arguments": { "device": "virtio0",
3190 "top": "/tmp/snap1.qcow2" } }
3191 <- { "return": {} }
3192
3193 drive-backup (Command) Start a point-in-time copy of a block device to
3194 a new destination. The status of ongoing drive-backup operations can
3195 be checked with query-block-jobs where the BlockJobInfo.type field has
3196 the value 'backup'. The operation can be stopped before it has
3197 completed using the block-job-cancel command.
3198
3199 Arguments: the members of "DriveBackup"
3200
3201 Returns:
3202
3203 - nothing on success
3204
3205 - If "device" is not a valid block device, GenericError
3206
3207 Since: 1.6
3208
3209 Example:
3210
3211 -> { "execute": "drive-backup",
3212 "arguments": { "device": "drive0",
3213 "sync": "full",
3214 "target": "backup.img" } }
3215 <- { "return": {} }
3216
3217 blockdev-backup (Command) Start a point-in-time copy of a block device
3218 to a new destination. The status of ongoing blockdev-backup operations
3219 can be checked with query-block-jobs where the BlockJobInfo.type field
3220 has the value 'backup'. The operation can be stopped before it has
3221 completed using the block-job-cancel command.
3222
3223 Arguments: the members of "BlockdevBackup"
3224
3225 Returns:
3226
3227 - nothing on success
3228
3229 - If "device" is not a valid block device, DeviceNotFound
3230
3231 Since: 2.3
3232
3233 Example:
3234
3235 -> { "execute": "blockdev-backup",
3236 "arguments": { "device": "src-id",
3237 "sync": "full",
3238 "target": "tgt-id" } }
3239 <- { "return": {} }
3240
3241 query-named-block-nodes (Command) Get the named block driver list
3242
3243 Arguments:
3244
3245 "flat: boolean" (optional)
3246 Omit the nested data about backing image ("backing-image" key) if
3247 true. Default is false (Since 5.0)
3248
3249 Returns: the list of BlockDeviceInfo
3250
3251 Since: 2.0
3252
3253 Example:
3254
3255 -> { "execute": "query-named-block-nodes" }
3256 <- { "return": [ { "ro":false,
3257 "drv":"qcow2",
3258 "encrypted":false,
3259 "file":"disks/test.qcow2",
3260 "node-name": "my-node",
3261 "backing_file_depth":1,
3262 "bps":1000000,
3263 "bps_rd":0,
3264 "bps_wr":0,
3265 "iops":1000000,
3266 "iops_rd":0,
3267 "iops_wr":0,
3268 "bps_max": 8000000,
3269 "bps_rd_max": 0,
3270 "bps_wr_max": 0,
3271 "iops_max": 0,
3272 "iops_rd_max": 0,
3273 "iops_wr_max": 0,
3274 "iops_size": 0,
3275 "write_threshold": 0,
3276 "image":{
3277 "filename":"disks/test.qcow2",
3278 "format":"qcow2",
3279 "virtual-size":2048000,
3280 "backing_file":"base.qcow2",
3281 "full-backing-filename":"disks/base.qcow2",
3282 "backing-filename-format":"qcow2",
3283 "snapshots":[
3284 {
3285 "id": "1",
3286 "name": "snapshot1",
3287 "vm-state-size": 0,
3288 "date-sec": 10000200,
3289 "date-nsec": 12,
3290 "vm-clock-sec": 206,
3291 "vm-clock-nsec": 30
3292 }
3293 ],
3294 "backing-image":{
3295 "filename":"disks/base.qcow2",
3296 "format":"qcow2",
3297 "virtual-size":2048000
3298 }
3299 } } ] }
3300
3301 XDbgBlockGraphNodeType (Enum)
3302
3303 Values:
3304
3305 "block-backend"
3306 corresponds to BlockBackend
3307
3308 "block-job"
3309 corresonds to BlockJob
3310
3311 "block-driver"
3312 corresponds to BlockDriverState
3313
3314 Since: 4.0
3315
3316 XDbgBlockGraphNode (Object)
3317
3318 Members:
3319
3320 "id: int"
3321 Block graph node identifier. This "id" is generated only for
3322 x-debug-query-block-graph and does not relate to any other
3323 identifiers in Qemu.
3324
3325 "type: XDbgBlockGraphNodeType"
3326 Type of graph node. Can be one of block-backend, block-job or
3327 block-driver-state.
3328
3329 "name: string"
3330 Human readable name of the node. Corresponds to node-name for
3331 block-driver-state nodes; is not guaranteed to be unique in the
3332 whole graph (with block-jobs and block-backends).
3333
3334 Since: 4.0
3335
3336 BlockPermission (Enum)
3337
3338 Enum of base block permissions.
3339
3340 Values:
3341
3342 "consistent-read"
3343 A user that has the "permission" of consistent reads is guaranteed
3344 that their view of the contents of the block device is complete and
3345 self-consistent, representing the contents of a disk at a specific
3346 point. For most block devices (including their backing files) this
3347 is true, but the property cannot be maintained in a few situations
3348 like for intermediate nodes of a commit block job.
3349
3350 "write"
3351 This permission is required to change the visible disk contents.
3352
3353 "write-unchanged"
3354 This permission (which is weaker than BLK_PERM_WRITE) is both
3355 enough and required for writes to the block node when the caller
3356 promises that the visible disk content doesn't change. As the
3357 BLK_PERM_WRITE permission is strictly stronger, either is
3358 sufficient to perform an unchanging write.
3359
3360 "resize"
3361 This permission is required to change the size of a block node.
3362
3363 "graph-mod"
3364 This permission is required to change the node that this BdrvChild
3365 points to.
3366
3367 Since: 4.0
3368
3369 XDbgBlockGraphEdge (Object)
3370
3371 Block Graph edge description for x-debug-query-block-graph.
3372
3373 Members:
3374
3375 "parent: int"
3376 parent id
3377
3378 "child: int"
3379 child id
3380
3381 "name: string"
3382 name of the relation (examples are 'file' and 'backing')
3383
3384 "perm: array of BlockPermission"
3385 granted permissions for the parent operating on the child
3386
3387 "shared-perm: array of BlockPermission"
3388 permissions that can still be granted to other users of the child
3389 while it is still attached to this parent
3390
3391 Since: 4.0
3392
3393 XDbgBlockGraph (Object)
3394
3395 Block Graph - list of nodes and list of edges.
3396
3397 Members:
3398
3399 "nodes: array of XDbgBlockGraphNode"
3400 Not documented
3401
3402 "edges: array of XDbgBlockGraphEdge"
3403 Not documented
3404
3405 Since: 4.0
3406
3407 x-debug-query-block-graph (Command) Get the block graph.
3408
3409 Since: 4.0
3410
3411 drive-mirror (Command) Start mirroring a block device's writes to a
3412 new destination. target specifies the target of the new image. If the
3413 file exists, or if it is a device, it will be used as the new
3414 destination for writes. If it does not exist, a new file will be
3415 created. format specifies the format of the mirror image, default is to
3416 probe if mode='existing', else the format of the source.
3417
3418 Arguments: the members of "DriveMirror"
3419
3420 Returns:
3421
3422 - nothing on success
3423
3424 - If "device" is not a valid block device, GenericError
3425
3426 Since: 1.3
3427
3428 Example:
3429
3430 -> { "execute": "drive-mirror",
3431 "arguments": { "device": "ide-hd0",
3432 "target": "/some/place/my-image",
3433 "sync": "full",
3434 "format": "qcow2" } }
3435 <- { "return": {} }
3436
3437 DriveMirror (Object)
3438
3439 A set of parameters describing drive mirror setup.
3440
3441 Members:
3442
3443 "job-id: string" (optional)
3444 identifier for the newly-created block job. If omitted, the device
3445 name will be used. (Since 2.7)
3446
3447 "device: string"
3448 the device name or node-name of a root node whose writes should be
3449 mirrored.
3450
3451 "target: string"
3452 the target of the new image. If the file exists, or if it is a
3453 device, the existing file/device will be used as the new
3454 destination. If it does not exist, a new file will be created.
3455
3456 "format: string" (optional)
3457 the format of the new destination, default is to probe if "mode" is
3458 'existing', else the format of the source
3459
3460 "node-name: string" (optional)
3461 the new block driver state node name in the graph (Since 2.1)
3462
3463 "replaces: string" (optional)
3464 with sync=full graph node name to be replaced by the new image when
3465 a whole image copy is done. This can be used to repair broken
3466 Quorum files. (Since 2.1)
3467
3468 "mode: NewImageMode" (optional)
3469 whether and how QEMU should create a new image, default is
3470 'absolute-paths'.
3471
3472 "speed: int" (optional)
3473 the maximum speed, in bytes per second
3474
3475 "sync: MirrorSyncMode"
3476 what parts of the disk image should be copied to the destination
3477 (all the disk, only the sectors allocated in the topmost image, or
3478 only new I/O).
3479
3480 "granularity: int" (optional)
3481 granularity of the dirty bitmap, default is 64K if the image format
3482 doesn't have clusters, 4K if the clusters are smaller than that,
3483 else the cluster size. Must be a power of 2 between 512 and 64M
3484 (since 1.4).
3485
3486 "buf-size: int" (optional)
3487 maximum amount of data in flight from source to target (since 1.4).
3488
3489 "on-source-error: BlockdevOnError" (optional)
3490 the action to take on an error on the source, default 'report'.
3491 'stop' and 'enospc' can only be used if the block device supports
3492 io-status (see BlockInfo).
3493
3494 "on-target-error: BlockdevOnError" (optional)
3495 the action to take on an error on the target, default 'report' (no
3496 limitations, since this applies to a different block device than
3497 "device").
3498
3499 "unmap: boolean" (optional)
3500 Whether to try to unmap target sectors where source has only zero.
3501 If true, and target unallocated sectors will read as zero, target
3502 image sectors will be unmapped; otherwise, zeroes will be written.
3503 Both will result in identical contents. Default is true. (Since
3504 2.4)
3505
3506 "copy-mode: MirrorCopyMode" (optional)
3507 when to copy data to the destination; defaults to 'background'
3508 (Since: 3.0)
3509
3510 "auto-finalize: boolean" (optional)
3511 When false, this job will wait in a PENDING state after it has
3512 finished its work, waiting for "block-job-finalize" before making
3513 any block graph changes. When true, this job will automatically
3514 perform its abort or commit actions. Defaults to true. (Since 3.1)
3515
3516 "auto-dismiss: boolean" (optional)
3517 When false, this job will wait in a CONCLUDED state after it has
3518 completely ceased all work, and awaits "block-job-dismiss". When
3519 true, this job will automatically disappear from the query list
3520 without user intervention. Defaults to true. (Since 3.1)
3521
3522 Since: 1.3
3523
3524 BlockDirtyBitmap (Object)
3525
3526 Members:
3527
3528 "node: string"
3529 name of device/node which the bitmap is tracking
3530
3531 "name: string"
3532 name of the dirty bitmap
3533
3534 Since: 2.4
3535
3536 BlockDirtyBitmapAdd (Object)
3537
3538 Members:
3539
3540 "node: string"
3541 name of device/node which the bitmap is tracking
3542
3543 "name: string"
3544 name of the dirty bitmap (must be less than 1024 bytes)
3545
3546 "granularity: int" (optional)
3547 the bitmap granularity, default is 64k for block-dirty-bitmap-add
3548
3549 "persistent: boolean" (optional)
3550 the bitmap is persistent, i.e. it will be saved to the
3551 corresponding block device image file on its close. For now only
3552 Qcow2 disks support persistent bitmaps. Default is false for block-
3553 dirty-bitmap-add. (Since: 2.10)
3554
3555 "disabled: boolean" (optional)
3556 the bitmap is created in the disabled state, which means that it
3557 will not track drive changes. The bitmap may be enabled with block-
3558 dirty-bitmap-enable. Default is false. (Since: 4.0)
3559
3560 Since: 2.4
3561
3562 BlockDirtyBitmapMergeSource (Alternate)
3563
3564 Members:
3565
3566 "local: string"
3567 name of the bitmap, attached to the same node as target bitmap.
3568
3569 "external: BlockDirtyBitmap"
3570 bitmap with specified node
3571
3572 Since: 4.1
3573
3574 BlockDirtyBitmapMerge (Object)
3575
3576 Members:
3577
3578 "node: string"
3579 name of device/node which the "target" bitmap is tracking
3580
3581 "target: string"
3582 name of the destination dirty bitmap
3583
3584 "bitmaps: array of BlockDirtyBitmapMergeSource"
3585 name(s) of the source dirty bitmap(s) at "node" and/or fully
3586 specifed BlockDirtyBitmap elements. The latter are supported since
3587 4.1.
3588
3589 Since: 4.0
3590
3591 block-dirty-bitmap-add (Command) Create a dirty bitmap with a name on
3592 the node, and start tracking the writes.
3593
3594 Returns:
3595
3596 - nothing on success
3597
3598 - If "node" is not a valid block device or node, DeviceNotFound
3599
3600 - If "name" is already taken, GenericError with an explanation
3601
3602 Since: 2.4
3603
3604 Example:
3605
3606 -> { "execute": "block-dirty-bitmap-add",
3607 "arguments": { "node": "drive0", "name": "bitmap0" } }
3608 <- { "return": {} }
3609
3610 block-dirty-bitmap-remove (Command) Stop write tracking and remove the
3611 dirty bitmap that was created with block-dirty-bitmap-add. If the
3612 bitmap is persistent, remove it from its storage too.
3613
3614 Returns:
3615
3616 - nothing on success
3617
3618 - If "node" is not a valid block device or node, DeviceNotFound
3619
3620 - If "name" is not found, GenericError with an explanation
3621
3622 - if "name" is frozen by an operation, GenericError
3623
3624 Since: 2.4
3625
3626 Example:
3627
3628 -> { "execute": "block-dirty-bitmap-remove",
3629 "arguments": { "node": "drive0", "name": "bitmap0" } }
3630 <- { "return": {} }
3631
3632 block-dirty-bitmap-clear (Command) Clear (reset) a dirty bitmap on the
3633 device, so that an incremental backup from this point in time forward
3634 will only backup clusters modified after this clear operation.
3635
3636 Returns:
3637
3638 - nothing on success
3639
3640 - If "node" is not a valid block device, DeviceNotFound
3641
3642 - If "name" is not found, GenericError with an explanation
3643
3644 Since: 2.4
3645
3646 Example:
3647
3648 -> { "execute": "block-dirty-bitmap-clear",
3649 "arguments": { "node": "drive0", "name": "bitmap0" } }
3650 <- { "return": {} }
3651
3652 block-dirty-bitmap-enable (Command) Enables a dirty bitmap so that it
3653 will begin tracking disk changes.
3654
3655 Returns:
3656
3657 - nothing on success
3658
3659 - If "node" is not a valid block device, DeviceNotFound
3660
3661 - If "name" is not found, GenericError with an explanation
3662
3663 Since: 4.0
3664
3665 Example:
3666
3667 -> { "execute": "block-dirty-bitmap-enable",
3668 "arguments": { "node": "drive0", "name": "bitmap0" } }
3669 <- { "return": {} }
3670
3671 block-dirty-bitmap-disable (Command) Disables a dirty bitmap so that
3672 it will stop tracking disk changes.
3673
3674 Returns:
3675
3676 - nothing on success
3677
3678 - If "node" is not a valid block device, DeviceNotFound
3679
3680 - If "name" is not found, GenericError with an explanation
3681
3682 Since: 4.0
3683
3684 Example:
3685
3686 -> { "execute": "block-dirty-bitmap-disable",
3687 "arguments": { "node": "drive0", "name": "bitmap0" } }
3688 <- { "return": {} }
3689
3690 block-dirty-bitmap-merge (Command) Merge dirty bitmaps listed in
3691 "bitmaps" to the "target" dirty bitmap. Dirty bitmaps in "bitmaps"
3692 will be unchanged, except if it also appears as the "target" bitmap.
3693 Any bits already set in "target" will still be set after the merge,
3694 i.e., this operation does not clear the target. On error, "target" is
3695 unchanged.
3696
3697 The resulting bitmap will count as dirty any clusters that were dirty
3698 in any of the source bitmaps. This can be used to achieve backup
3699 checkpoints, or in simpler usages, to copy bitmaps.
3700
3701 Returns:
3702
3703 - nothing on success
3704
3705 - If "node" is not a valid block device, DeviceNotFound
3706
3707 - If any bitmap in "bitmaps" or "target" is not found, GenericError
3708
3709 - If any of the bitmaps have different sizes or granularities,
3710 GenericError
3711
3712 Since: 4.0
3713
3714 Example:
3715
3716 -> { "execute": "block-dirty-bitmap-merge",
3717 "arguments": { "node": "drive0", "target": "bitmap0",
3718 "bitmaps": ["bitmap1"] } }
3719 <- { "return": {} }
3720
3721 BlockDirtyBitmapSha256 (Object)
3722
3723 SHA256 hash of dirty bitmap data
3724
3725 Members:
3726
3727 "sha256: string"
3728 ASCII representation of SHA256 bitmap hash
3729
3730 Since: 2.10
3731
3732 x-debug-block-dirty-bitmap-sha256 (Command) Get bitmap SHA256.
3733
3734 Returns:
3735
3736 - BlockDirtyBitmapSha256 on success
3737
3738 - If "node" is not a valid block device, DeviceNotFound
3739
3740 - If "name" is not found or if hashing has failed, GenericError with
3741 an explanation
3742
3743 Since: 2.10
3744
3745 blockdev-mirror (Command) Start mirroring a block device's writes to a
3746 new destination.
3747
3748 Arguments:
3749
3750 "job-id: string" (optional)
3751 identifier for the newly-created block job. If omitted, the device
3752 name will be used. (Since 2.7)
3753
3754 "device: string"
3755 The device name or node-name of a root node whose writes should be
3756 mirrored.
3757
3758 "target: string"
3759 the id or node-name of the block device to mirror to. This mustn't
3760 be attached to guest.
3761
3762 "replaces: string" (optional)
3763 with sync=full graph node name to be replaced by the new image when
3764 a whole image copy is done. This can be used to repair broken
3765 Quorum files.
3766
3767 "speed: int" (optional)
3768 the maximum speed, in bytes per second
3769
3770 "sync: MirrorSyncMode"
3771 what parts of the disk image should be copied to the destination
3772 (all the disk, only the sectors allocated in the topmost image, or
3773 only new I/O).
3774
3775 "granularity: int" (optional)
3776 granularity of the dirty bitmap, default is 64K if the image format
3777 doesn't have clusters, 4K if the clusters are smaller than that,
3778 else the cluster size. Must be a power of 2 between 512 and 64M
3779
3780 "buf-size: int" (optional)
3781 maximum amount of data in flight from source to target
3782
3783 "on-source-error: BlockdevOnError" (optional)
3784 the action to take on an error on the source, default 'report'.
3785 'stop' and 'enospc' can only be used if the block device supports
3786 io-status (see BlockInfo).
3787
3788 "on-target-error: BlockdevOnError" (optional)
3789 the action to take on an error on the target, default 'report' (no
3790 limitations, since this applies to a different block device than
3791 "device").
3792
3793 "filter-node-name: string" (optional)
3794 the node name that should be assigned to the filter driver that the
3795 mirror job inserts into the graph above "device". If this option is
3796 not given, a node name is autogenerated. (Since: 2.9)
3797
3798 "copy-mode: MirrorCopyMode" (optional)
3799 when to copy data to the destination; defaults to 'background'
3800 (Since: 3.0)
3801
3802 "auto-finalize: boolean" (optional)
3803 When false, this job will wait in a PENDING state after it has
3804 finished its work, waiting for "block-job-finalize" before making
3805 any block graph changes. When true, this job will automatically
3806 perform its abort or commit actions. Defaults to true. (Since 3.1)
3807
3808 "auto-dismiss: boolean" (optional)
3809 When false, this job will wait in a CONCLUDED state after it has
3810 completely ceased all work, and awaits "block-job-dismiss". When
3811 true, this job will automatically disappear from the query list
3812 without user intervention. Defaults to true. (Since 3.1)
3813
3814 Returns: nothing on success.
3815
3816 Since: 2.6
3817
3818 Example:
3819
3820 -> { "execute": "blockdev-mirror",
3821 "arguments": { "device": "ide-hd0",
3822 "target": "target0",
3823 "sync": "full" } }
3824 <- { "return": {} }
3825
3826 BlockIOThrottle (Object)
3827
3828 A set of parameters describing block throttling.
3829
3830 Members:
3831
3832 "device: string" (optional)
3833 Block device name
3834
3835 "id: string" (optional)
3836 The name or QOM path of the guest device (since: 2.8)
3837
3838 "bps: int"
3839 total throughput limit in bytes per second
3840
3841 "bps_rd: int"
3842 read throughput limit in bytes per second
3843
3844 "bps_wr: int"
3845 write throughput limit in bytes per second
3846
3847 "iops: int"
3848 total I/O operations per second
3849
3850 "iops_rd: int"
3851 read I/O operations per second
3852
3853 "iops_wr: int"
3854 write I/O operations per second
3855
3856 "bps_max: int" (optional)
3857 total throughput limit during bursts, in bytes (Since 1.7)
3858
3859 "bps_rd_max: int" (optional)
3860 read throughput limit during bursts, in bytes (Since 1.7)
3861
3862 "bps_wr_max: int" (optional)
3863 write throughput limit during bursts, in bytes (Since 1.7)
3864
3865 "iops_max: int" (optional)
3866 total I/O operations per second during bursts, in bytes (Since 1.7)
3867
3868 "iops_rd_max: int" (optional)
3869 read I/O operations per second during bursts, in bytes (Since 1.7)
3870
3871 "iops_wr_max: int" (optional)
3872 write I/O operations per second during bursts, in bytes (Since 1.7)
3873
3874 "bps_max_length: int" (optional)
3875 maximum length of the "bps_max" burst period, in seconds. It must
3876 only be set if "bps_max" is set as well. Defaults to 1. (Since
3877 2.6)
3878
3879 "bps_rd_max_length: int" (optional)
3880 maximum length of the "bps_rd_max" burst period, in seconds. It
3881 must only be set if "bps_rd_max" is set as well. Defaults to 1.
3882 (Since 2.6)
3883
3884 "bps_wr_max_length: int" (optional)
3885 maximum length of the "bps_wr_max" burst period, in seconds. It
3886 must only be set if "bps_wr_max" is set as well. Defaults to 1.
3887 (Since 2.6)
3888
3889 "iops_max_length: int" (optional)
3890 maximum length of the "iops" burst period, in seconds. It must only
3891 be set if "iops_max" is set as well. Defaults to 1. (Since 2.6)
3892
3893 "iops_rd_max_length: int" (optional)
3894 maximum length of the "iops_rd_max" burst period, in seconds. It
3895 must only be set if "iops_rd_max" is set as well. Defaults to 1.
3896 (Since 2.6)
3897
3898 "iops_wr_max_length: int" (optional)
3899 maximum length of the "iops_wr_max" burst period, in seconds. It
3900 must only be set if "iops_wr_max" is set as well. Defaults to 1.
3901 (Since 2.6)
3902
3903 "iops_size: int" (optional)
3904 an I/O size in bytes (Since 1.7)
3905
3906 "group: string" (optional)
3907 throttle group name (Since 2.4)
3908
3909 Features:
3910
3911 "deprecated"
3912 Member "device" is deprecated. Use "id" instead.
3913
3914 Since: 1.1
3915
3916 ThrottleLimits (Object)
3917
3918 Limit parameters for throttling. Since some limit combinations are
3919 illegal, limits should always be set in one transaction. All fields are
3920 optional. When setting limits, if a field is missing the current value
3921 is not changed.
3922
3923 Members:
3924
3925 "iops-total: int" (optional)
3926 limit total I/O operations per second
3927
3928 "iops-total-max: int" (optional)
3929 I/O operations burst
3930
3931 "iops-total-max-length: int" (optional)
3932 length of the iops-total-max burst period, in seconds It must only
3933 be set if "iops-total-max" is set as well.
3934
3935 "iops-read: int" (optional)
3936 limit read operations per second
3937
3938 "iops-read-max: int" (optional)
3939 I/O operations read burst
3940
3941 "iops-read-max-length: int" (optional)
3942 length of the iops-read-max burst period, in seconds It must only
3943 be set if "iops-read-max" is set as well.
3944
3945 "iops-write: int" (optional)
3946 limit write operations per second
3947
3948 "iops-write-max: int" (optional)
3949 I/O operations write burst
3950
3951 "iops-write-max-length: int" (optional)
3952 length of the iops-write-max burst period, in seconds It must only
3953 be set if "iops-write-max" is set as well.
3954
3955 "bps-total: int" (optional)
3956 limit total bytes per second
3957
3958 "bps-total-max: int" (optional)
3959 total bytes burst
3960
3961 "bps-total-max-length: int" (optional)
3962 length of the bps-total-max burst period, in seconds. It must only
3963 be set if "bps-total-max" is set as well.
3964
3965 "bps-read: int" (optional)
3966 limit read bytes per second
3967
3968 "bps-read-max: int" (optional)
3969 total bytes read burst
3970
3971 "bps-read-max-length: int" (optional)
3972 length of the bps-read-max burst period, in seconds It must only be
3973 set if "bps-read-max" is set as well.
3974
3975 "bps-write: int" (optional)
3976 limit write bytes per second
3977
3978 "bps-write-max: int" (optional)
3979 total bytes write burst
3980
3981 "bps-write-max-length: int" (optional)
3982 length of the bps-write-max burst period, in seconds It must only
3983 be set if "bps-write-max" is set as well.
3984
3985 "iops-size: int" (optional)
3986 when limiting by iops max size of an I/O in bytes
3987
3988 Since: 2.11
3989
3990 block-stream (Command) Copy data from a backing file into a block
3991 device.
3992
3993 The block streaming operation is performed in the background until the
3994 entire backing file has been copied. This command returns immediately
3995 once streaming has started. The status of ongoing block streaming
3996 operations can be checked with query-block-jobs. The operation can be
3997 stopped before it has completed using the block-job-cancel command.
3998
3999 The node that receives the data is called the top image, can be located
4000 in any part of the chain (but always above the base image; see below)
4001 and can be specified using its device or node name. Earlier qemu
4002 versions only allowed 'device' to name the top level node; presence of
4003 the 'base-node' parameter during introspection can be used as a witness
4004 of the enhanced semantics of 'device'.
4005
4006 If a base file is specified then sectors are not copied from that base
4007 file and its backing chain. When streaming completes the image file
4008 will have the base file as its backing file. This can be used to
4009 stream a subset of the backing file chain instead of flattening the
4010 entire image.
4011
4012 On successful completion the image file is updated to drop the backing
4013 file and the BLOCK_JOB_COMPLETED event is emitted.
4014
4015 Arguments:
4016
4017 "job-id: string" (optional)
4018 identifier for the newly-created block job. If omitted, the device
4019 name will be used. (Since 2.7)
4020
4021 "device: string"
4022 the device or node name of the top image
4023
4024 "base: string" (optional)
4025 the common backing file name. It cannot be set if "base-node" is
4026 also set.
4027
4028 "base-node: string" (optional)
4029 the node name of the backing file. It cannot be set if "base" is
4030 also set. (Since 2.8)
4031
4032 "backing-file: string" (optional)
4033 The backing file string to write into the top image. This filename
4034 is not validated.
4035
4036 If a pathname string is such that it cannot be resolved by QEMU,
4037 that means that subsequent QMP or HMP commands must use node-names
4038 for the image in question, as filename lookup methods will fail.
4039
4040 If not specified, QEMU will automatically determine the backing
4041 file string to use, or error out if there is no obvious choice.
4042 Care should be taken when specifying the string, to specify a valid
4043 filename or protocol. (Since 2.1)
4044
4045 "speed: int" (optional)
4046 the maximum speed, in bytes per second
4047
4048 "on-error: BlockdevOnError" (optional)
4049 the action to take on an error (default report). 'stop' and
4050 'enospc' can only be used if the block device supports io-status
4051 (see BlockInfo). Since 1.3.
4052
4053 "auto-finalize: boolean" (optional)
4054 When false, this job will wait in a PENDING state after it has
4055 finished its work, waiting for "block-job-finalize" before making
4056 any block graph changes. When true, this job will automatically
4057 perform its abort or commit actions. Defaults to true. (Since 3.1)
4058
4059 "auto-dismiss: boolean" (optional)
4060 When false, this job will wait in a CONCLUDED state after it has
4061 completely ceased all work, and awaits "block-job-dismiss". When
4062 true, this job will automatically disappear from the query list
4063 without user intervention. Defaults to true. (Since 3.1)
4064
4065 Returns:
4066
4067 - Nothing on success.
4068
4069 - If "device" does not exist, DeviceNotFound.
4070
4071 Since: 1.1
4072
4073 Example:
4074
4075 -> { "execute": "block-stream",
4076 "arguments": { "device": "virtio0",
4077 "base": "/tmp/master.qcow2" } }
4078 <- { "return": {} }
4079
4080 block-job-set-speed (Command) Set maximum speed for a background block
4081 operation.
4082
4083 This command can only be issued when there is an active block job.
4084
4085 Throttling can be disabled by setting the speed to 0.
4086
4087 Arguments:
4088
4089 "device: string"
4090 The job identifier. This used to be a device name (hence the name
4091 of the parameter), but since QEMU 2.7 it can have other values.
4092
4093 "speed: int"
4094 the maximum speed, in bytes per second, or 0 for unlimited.
4095 Defaults to 0.
4096
4097 Returns:
4098
4099 - Nothing on success
4100
4101 - If no background operation is active on this device,
4102 DeviceNotActive
4103
4104 Since: 1.1
4105
4106 block-job-cancel (Command) Stop an active background block operation.
4107
4108 This command returns immediately after marking the active background
4109 block operation for cancellation. It is an error to call this command
4110 if no operation is in progress.
4111
4112 The operation will cancel as soon as possible and then emit the
4113 BLOCK_JOB_CANCELLED event. Before that happens the job is still
4114 visible when enumerated using query-block-jobs.
4115
4116 Note that if you issue 'block-job-cancel' after 'drive-mirror' has
4117 indicated (via the event BLOCK_JOB_READY) that the source and
4118 destination are synchronized, then the event triggered by this command
4119 changes to BLOCK_JOB_COMPLETED, to indicate that the mirroring has
4120 ended and the destination now has a point-in-time copy tied to the time
4121 of the cancellation.
4122
4123 For streaming, the image file retains its backing file unless the
4124 streaming operation happens to complete just as it is being cancelled.
4125 A new streaming operation can be started at a later time to finish
4126 copying all data from the backing file.
4127
4128 Arguments:
4129
4130 "device: string"
4131 The job identifier. This used to be a device name (hence the name
4132 of the parameter), but since QEMU 2.7 it can have other values.
4133
4134 "force: boolean" (optional)
4135 If true, and the job has already emitted the event BLOCK_JOB_READY,
4136 abandon the job immediately (even if it is paused) instead of
4137 waiting for the destination to complete its final synchronization
4138 (since 1.3)
4139
4140 Returns:
4141
4142 - Nothing on success
4143
4144 - If no background operation is active on this device,
4145 DeviceNotActive
4146
4147 Since: 1.1
4148
4149 block-job-pause (Command) Pause an active background block operation.
4150
4151 This command returns immediately after marking the active background
4152 block operation for pausing. It is an error to call this command if no
4153 operation is in progress or if the job is already paused.
4154
4155 The operation will pause as soon as possible. No event is emitted when
4156 the operation is actually paused. Cancelling a paused job
4157 automatically resumes it.
4158
4159 Arguments:
4160
4161 "device: string"
4162 The job identifier. This used to be a device name (hence the name
4163 of the parameter), but since QEMU 2.7 it can have other values.
4164
4165 Returns:
4166
4167 - Nothing on success
4168
4169 - If no background operation is active on this device,
4170 DeviceNotActive
4171
4172 Since: 1.3
4173
4174 block-job-resume (Command) Resume an active background block
4175 operation.
4176
4177 This command returns immediately after resuming a paused background
4178 block operation. It is an error to call this command if no operation
4179 is in progress or if the job is not paused.
4180
4181 This command also clears the error status of the job.
4182
4183 Arguments:
4184
4185 "device: string"
4186 The job identifier. This used to be a device name (hence the name
4187 of the parameter), but since QEMU 2.7 it can have other values.
4188
4189 Returns:
4190
4191 - Nothing on success
4192
4193 - If no background operation is active on this device,
4194 DeviceNotActive
4195
4196 Since: 1.3
4197
4198 block-job-complete (Command) Manually trigger completion of an active
4199 background block operation. This is supported for drive mirroring,
4200 where it also switches the device to write to the target path only.
4201 The ability to complete is signaled with a BLOCK_JOB_READY event.
4202
4203 This command completes an active background block operation
4204 synchronously. The ordering of this command's return with the
4205 BLOCK_JOB_COMPLETED event is not defined. Note that if an I/O error
4206 occurs during the processing of this command: 1) the command itself
4207 will fail; 2) the error will be processed according to the
4208 rerror/werror arguments that were specified when starting the
4209 operation.
4210
4211 A cancelled or paused job cannot be completed.
4212
4213 Arguments:
4214
4215 "device: string"
4216 The job identifier. This used to be a device name (hence the name
4217 of the parameter), but since QEMU 2.7 it can have other values.
4218
4219 Returns:
4220
4221 - Nothing on success
4222
4223 - If no background operation is active on this device,
4224 DeviceNotActive
4225
4226 Since: 1.3
4227
4228 block-job-dismiss (Command) For jobs that have already concluded,
4229 remove them from the block-job-query list. This command only needs to
4230 be run for jobs which were started with QEMU 2.12+ job lifetime
4231 management semantics.
4232
4233 This command will refuse to operate on any job that has not yet reached
4234 its terminal state, JOB_STATUS_CONCLUDED. For jobs that make use of the
4235 BLOCK_JOB_READY event, block-job-cancel or block-job-complete will
4236 still need to be used as appropriate.
4237
4238 Arguments:
4239
4240 "id: string"
4241 The job identifier.
4242
4243 Returns: Nothing on success
4244
4245 Since: 2.12
4246
4247 block-job-finalize (Command) Once a job that has manual=true reaches
4248 the pending state, it can be instructed to finalize any graph changes
4249 and do any necessary cleanup via this command. For jobs in a
4250 transaction, instructing one job to finalize will force ALL jobs in the
4251 transaction to finalize, so it is only necessary to instruct a single
4252 member job to finalize.
4253
4254 Arguments:
4255
4256 "id: string"
4257 The job identifier.
4258
4259 Returns: Nothing on success
4260
4261 Since: 2.12
4262
4263 BlockdevDiscardOptions (Enum)
4264
4265 Determines how to handle discard requests.
4266
4267 Values:
4268
4269 "ignore"
4270 Ignore the request
4271
4272 "unmap"
4273 Forward as an unmap request
4274
4275 Since: 2.9
4276
4277 BlockdevDetectZeroesOptions (Enum)
4278
4279 Describes the operation mode for the automatic conversion of plain zero
4280 writes by the OS to driver specific optimized zero write commands.
4281
4282 Values:
4283
4284 "off"
4285 Disabled (default)
4286
4287 "on"
4288 Enabled
4289
4290 "unmap"
4291 Enabled and even try to unmap blocks if possible. This requires
4292 also that "BlockdevDiscardOptions" is set to unmap for this device.
4293
4294 Since: 2.1
4295
4296 BlockdevAioOptions (Enum)
4297
4298 Selects the AIO backend to handle I/O requests
4299
4300 Values:
4301
4302 "threads"
4303 Use qemu's thread pool
4304
4305 "native"
4306 Use native AIO backend (only Linux and Windows)
4307
4308 "io_uring"
4309 Use linux io_uring (since 5.0) If: "defined(CONFIG_LINUX_IO_URING)"
4310
4311 Since: 2.9
4312
4313 BlockdevCacheOptions (Object)
4314
4315 Includes cache-related options for block devices
4316
4317 Members:
4318
4319 "direct: boolean" (optional)
4320 enables use of O_DIRECT (bypass the host page cache; default:
4321 false)
4322
4323 "no-flush: boolean" (optional)
4324 ignore any flush requests for the device (default: false)
4325
4326 Since: 2.9
4327
4328 BlockdevDriver (Enum)
4329
4330 Drivers that are supported in block device operations.
4331
4332 Values:
4333
4334 "throttle"
4335 Since 2.11
4336
4337 "nvme"
4338 Since 2.12
4339
4340 "copy-on-read"
4341 Since 3.0
4342
4343 "blklogwrites"
4344 Since 3.0
4345
4346 "blkreplay"
4347 Since 4.2
4348
4349 "compress"
4350 Since 5.0
4351
4352 "blkdebug"
4353 Not documented
4354
4355 "blkverify"
4356 Not documented
4357
4358 "bochs"
4359 Not documented
4360
4361 "cloop"
4362 Not documented
4363
4364 "dmg"
4365 Not documented
4366
4367 "file"
4368 Not documented
4369
4370 "ftp"
4371 Not documented
4372
4373 "ftps"
4374 Not documented
4375
4376 "gluster"
4377 Not documented
4378
4379 "host_cdrom"
4380 Not documented
4381
4382 "host_device"
4383 Not documented
4384
4385 "http"
4386 Not documented
4387
4388 "https"
4389 Not documented
4390
4391 "iscsi"
4392 Not documented
4393
4394 "luks"
4395 Not documented
4396
4397 "nbd"
4398 Not documented
4399
4400 "nfs"
4401 Not documented
4402
4403 "null-aio"
4404 Not documented
4405
4406 "null-co"
4407 Not documented
4408
4409 "parallels"
4410 Not documented
4411
4412 "qcow"
4413 Not documented
4414
4415 "qcow2"
4416 Not documented
4417
4418 "qed"
4419 Not documented
4420
4421 "quorum"
4422 Not documented
4423
4424 "raw"
4425 Not documented
4426
4427 "rbd"
4428 Not documented
4429
4430 "replication"
4431 Not documented If: "defined(CONFIG_REPLICATION)"
4432
4433 "sheepdog"
4434 Not documented
4435
4436 "ssh"
4437 Not documented
4438
4439 "vdi"
4440 Not documented
4441
4442 "vhdx"
4443 Not documented
4444
4445 "vmdk"
4446 Not documented
4447
4448 "vpc"
4449 Not documented
4450
4451 "vvfat"
4452 Not documented
4453
4454 Since: 2.9
4455
4456 BlockdevOptionsFile (Object)
4457
4458 Driver specific block device options for the file backend.
4459
4460 Members:
4461
4462 "filename: string"
4463 path to the image file
4464
4465 "pr-manager: string" (optional)
4466 the id for the object that will handle persistent reservations for
4467 this device (default: none, forward the commands via SG_IO; since
4468 2.11)
4469
4470 "aio: BlockdevAioOptions" (optional)
4471 AIO backend (default: threads) (since: 2.8)
4472
4473 "locking: OnOffAuto" (optional)
4474 whether to enable file locking. If set to 'auto', only enable when
4475 Open File Descriptor (OFD) locking API is available (default: auto,
4476 since 2.10)
4477
4478 "drop-cache: boolean" (optional)
4479 invalidate page cache during live migration. This prevents stale
4480 data on the migration destination with cache.direct=off. Currently
4481 only supported on Linux hosts. (default: on, since: 4.0) If:
4482 "defined(CONFIG_LINUX)"
4483
4484 "x-check-cache-dropped: boolean" (optional)
4485 whether to check that page cache was dropped on live migration.
4486 May cause noticeable delays if the image file is large, do not use
4487 in production. (default: off) (since: 3.0)
4488
4489 Features:
4490
4491 "dynamic-auto-read-only"
4492 If present, enabled auto-read-only means that the driver will open
4493 the image read-only at first, dynamically reopen the image file
4494 read-write when the first writer is attached to the node and reopen
4495 read-only when the last writer is detached. This allows giving QEMU
4496 write permissions only on demand when an operation actually needs
4497 write access.
4498
4499 Since: 2.9
4500
4501 BlockdevOptionsNull (Object)
4502
4503 Driver specific block device options for the null backend.
4504
4505 Members:
4506
4507 "size: int" (optional)
4508 size of the device in bytes.
4509
4510 "latency-ns: int" (optional)
4511 emulated latency (in nanoseconds) in processing requests. Default
4512 to zero which completes requests immediately. (Since 2.4)
4513
4514 "read-zeroes: boolean" (optional)
4515 if true, reads from the device produce zeroes; if false, the buffer
4516 is left unchanged. (default: false; since: 4.1)
4517
4518 Since: 2.9
4519
4520 BlockdevOptionsNVMe (Object)
4521
4522 Driver specific block device options for the NVMe backend.
4523
4524 Members:
4525
4526 "device: string"
4527 PCI controller address of the NVMe device in format hhhh:bb:ss.f
4528 (host:bus:slot.function)
4529
4530 "namespace: int"
4531 namespace number of the device, starting from 1.
4532
4533 Note that the PCI "device" must have been unbound from any host kernel
4534 driver before instructing QEMU to add the blockdev.
4535
4536 Since: 2.12
4537
4538 BlockdevOptionsVVFAT (Object)
4539
4540 Driver specific block device options for the vvfat protocol.
4541
4542 Members:
4543
4544 "dir: string"
4545 directory to be exported as FAT image
4546
4547 "fat-type: int" (optional)
4548 FAT type: 12, 16 or 32
4549
4550 "floppy: boolean" (optional)
4551 whether to export a floppy image (true) or partitioned hard disk
4552 (false; default)
4553
4554 "label: string" (optional)
4555 set the volume label, limited to 11 bytes. FAT16 and FAT32
4556 traditionally have some restrictions on labels, which are ignored
4557 by most operating systems. Defaults to "QEMU VVFAT". (since 2.4)
4558
4559 "rw: boolean" (optional)
4560 whether to allow write operations (default: false)
4561
4562 Since: 2.9
4563
4564 BlockdevOptionsGenericFormat (Object)
4565
4566 Driver specific block device options for image format that have no
4567 option besides their data source.
4568
4569 Members:
4570
4571 "file: BlockdevRef"
4572 reference to or definition of the data source block device
4573
4574 Since: 2.9
4575
4576 BlockdevOptionsLUKS (Object)
4577
4578 Driver specific block device options for LUKS.
4579
4580 Members:
4581
4582 "key-secret: string" (optional)
4583 the ID of a QCryptoSecret object providing the decryption key
4584 (since 2.6). Mandatory except when doing a metadata-only probe of
4585 the image.
4586
4587 The members of "BlockdevOptionsGenericFormat"
4588
4589 Since: 2.9
4590
4591 BlockdevOptionsGenericCOWFormat (Object)
4592
4593 Driver specific block device options for image format that have no
4594 option besides their data source and an optional backing file.
4595
4596 Members:
4597
4598 "backing: BlockdevRefOrNull" (optional)
4599 reference to or definition of the backing file block device, null
4600 disables the backing file entirely. Defaults to the backing file
4601 stored the image file.
4602
4603 The members of "BlockdevOptionsGenericFormat"
4604
4605 Since: 2.9
4606
4607 Qcow2OverlapCheckMode (Enum)
4608
4609 General overlap check modes.
4610
4611 Values:
4612
4613 "none"
4614 Do not perform any checks
4615
4616 "constant"
4617 Perform only checks which can be done in constant time and without
4618 reading anything from disk
4619
4620 "cached"
4621 Perform only checks which can be done without reading anything from
4622 disk
4623
4624 "all"
4625 Perform all available overlap checks
4626
4627 Since: 2.9
4628
4629 Qcow2OverlapCheckFlags (Object)
4630
4631 Structure of flags for each metadata structure. Setting a field to
4632 'true' makes qemu guard that structure against unintended overwriting.
4633 The default value is chosen according to the template given.
4634
4635 Members:
4636
4637 "template: Qcow2OverlapCheckMode" (optional)
4638 Specifies a template mode which can be adjusted using the other
4639 flags, defaults to 'cached'
4640
4641 "bitmap-directory: boolean" (optional)
4642 since 3.0
4643
4644 "main-header: boolean" (optional)
4645 Not documented
4646
4647 "active-l1: boolean" (optional)
4648 Not documented
4649
4650 "active-l2: boolean" (optional)
4651 Not documented
4652
4653 "refcount-table: boolean" (optional)
4654 Not documented
4655
4656 "refcount-block: boolean" (optional)
4657 Not documented
4658
4659 "snapshot-table: boolean" (optional)
4660 Not documented
4661
4662 "inactive-l1: boolean" (optional)
4663 Not documented
4664
4665 "inactive-l2: boolean" (optional)
4666 Not documented
4667
4668 Since: 2.9
4669
4670 Qcow2OverlapChecks (Alternate)
4671
4672 Specifies which metadata structures should be guarded against
4673 unintended overwriting.
4674
4675 Members:
4676
4677 "flags: Qcow2OverlapCheckFlags"
4678 set of flags for separate specification of each metadata structure
4679 type
4680
4681 "mode: Qcow2OverlapCheckMode"
4682 named mode which chooses a specific set of flags
4683
4684 Since: 2.9
4685
4686 BlockdevQcowEncryptionFormat (Enum)
4687
4688 Values:
4689
4690 "aes"
4691 AES-CBC with plain64 initialization vectors
4692
4693 Since: 2.10
4694
4695 BlockdevQcowEncryption (Object)
4696
4697 Members:
4698
4699 "format: BlockdevQcowEncryptionFormat"
4700 Not documented
4701
4702 The members of "QCryptoBlockOptionsQCow" when "format" is "aes"
4703
4704 Since: 2.10
4705
4706 BlockdevOptionsQcow (Object)
4707
4708 Driver specific block device options for qcow.
4709
4710 Members:
4711
4712 "encrypt: BlockdevQcowEncryption" (optional)
4713 Image decryption options. Mandatory for encrypted images, except
4714 when doing a metadata-only probe of the image.
4715
4716 The members of "BlockdevOptionsGenericCOWFormat"
4717
4718 Since: 2.10
4719
4720 BlockdevQcow2EncryptionFormat (Enum)
4721
4722 Values:
4723
4724 "aes"
4725 AES-CBC with plain64 initialization vectors
4726
4727 "luks"
4728 Not documented
4729
4730 Since: 2.10
4731
4732 BlockdevQcow2Encryption (Object)
4733
4734 Members:
4735
4736 "format: BlockdevQcow2EncryptionFormat"
4737 Not documented
4738
4739 The members of "QCryptoBlockOptionsQCow" when "format" is "aes"
4740 The members of "QCryptoBlockOptionsLUKS" when "format" is "luks"
4741
4742 Since: 2.10
4743
4744 BlockdevOptionsQcow2 (Object)
4745
4746 Driver specific block device options for qcow2.
4747
4748 Members:
4749
4750 "lazy-refcounts: boolean" (optional)
4751 whether to enable the lazy refcounts feature (default is taken from
4752 the image file)
4753
4754 "pass-discard-request: boolean" (optional)
4755 whether discard requests to the qcow2 device should be forwarded to
4756 the data source
4757
4758 "pass-discard-snapshot: boolean" (optional)
4759 whether discard requests for the data source should be issued when
4760 a snapshot operation (e.g. deleting a snapshot) frees clusters in
4761 the qcow2 file
4762
4763 "pass-discard-other: boolean" (optional)
4764 whether discard requests for the data source should be issued on
4765 other occasions where a cluster gets freed
4766
4767 "overlap-check: Qcow2OverlapChecks" (optional)
4768 which overlap checks to perform for writes to the image, defaults
4769 to 'cached' (since 2.2)
4770
4771 "cache-size: int" (optional)
4772 the maximum total size of the L2 table and refcount block caches in
4773 bytes (since 2.2)
4774
4775 "l2-cache-size: int" (optional)
4776 the maximum size of the L2 table cache in bytes (since 2.2)
4777
4778 "l2-cache-entry-size: int" (optional)
4779 the size of each entry in the L2 cache in bytes. It must be a power
4780 of two between 512 and the cluster size. The default value is the
4781 cluster size (since 2.12)
4782
4783 "refcount-cache-size: int" (optional)
4784 the maximum size of the refcount block cache in bytes (since 2.2)
4785
4786 "cache-clean-interval: int" (optional)
4787 clean unused entries in the L2 and refcount caches. The interval is
4788 in seconds. The default value is 600 on supporting platforms, and 0
4789 on other platforms. 0 disables this feature. (since 2.5)
4790
4791 "encrypt: BlockdevQcow2Encryption" (optional)
4792 Image decryption options. Mandatory for encrypted images, except
4793 when doing a metadata-only probe of the image. (since 2.10)
4794
4795 "data-file: BlockdevRef" (optional)
4796 reference to or definition of the external data file. This may
4797 only be specified for images that require an external data file. If
4798 it is not specified for such an image, the data file name is loaded
4799 from the image file. (since 4.0)
4800
4801 The members of "BlockdevOptionsGenericCOWFormat"
4802
4803 Since: 2.9
4804
4805 SshHostKeyCheckMode (Enum)
4806
4807 Values:
4808
4809 "none"
4810 Don't check the host key at all
4811
4812 "hash"
4813 Compare the host key with a given hash
4814
4815 "known_hosts"
4816 Check the host key against the known_hosts file
4817
4818 Since: 2.12
4819
4820 SshHostKeyCheckHashType (Enum)
4821
4822 Values:
4823
4824 "md5"
4825 The given hash is an md5 hash
4826
4827 "sha1"
4828 The given hash is an sha1 hash
4829
4830 Since: 2.12
4831
4832 SshHostKeyHash (Object)
4833
4834 Members:
4835
4836 "type: SshHostKeyCheckHashType"
4837 The hash algorithm used for the hash
4838
4839 "hash: string"
4840 The expected hash value
4841
4842 Since: 2.12
4843
4844 SshHostKeyCheck (Object)
4845
4846 Members:
4847
4848 "mode: SshHostKeyCheckMode"
4849 Not documented
4850
4851 The members of "SshHostKeyHash" when "mode" is "hash"
4852
4853 Since: 2.12
4854
4855 BlockdevOptionsSsh (Object)
4856
4857 Members:
4858
4859 "server: InetSocketAddress"
4860 host address
4861
4862 "path: string"
4863 path to the image on the host
4864
4865 "user: string" (optional)
4866 user as which to connect, defaults to current local user name
4867
4868 "host-key-check: SshHostKeyCheck" (optional)
4869 Defines how and what to check the host key against (default:
4870 known_hosts)
4871
4872 Since: 2.9
4873
4874 BlkdebugEvent (Enum)
4875
4876 Trigger events supported by blkdebug.
4877
4878 Values:
4879
4880 "l1_shrink_write_table"
4881 write zeros to the l1 table to shrink image. (since 2.11)
4882
4883 "l1_shrink_free_l2_clusters"
4884 discard the l2 tables. (since 2.11)
4885
4886 "cor_write"
4887 a write due to copy-on-read (since 2.11)
4888
4889 "cluster_alloc_space"
4890 an allocation of file space for a cluster (since 4.1)
4891
4892 "none"
4893 triggers once at creation of the blkdebug node (since 4.1)
4894
4895 "l1_update"
4896 Not documented
4897
4898 "l1_grow_alloc_table"
4899 Not documented
4900
4901 "l1_grow_write_table"
4902 Not documented
4903
4904 "l1_grow_activate_table"
4905 Not documented
4906
4907 "l2_load"
4908 Not documented
4909
4910 "l2_update"
4911 Not documented
4912
4913 "l2_update_compressed"
4914 Not documented
4915
4916 "l2_alloc_cow_read"
4917 Not documented
4918
4919 "l2_alloc_write"
4920 Not documented
4921
4922 "read_aio"
4923 Not documented
4924
4925 "read_backing_aio"
4926 Not documented
4927
4928 "read_compressed"
4929 Not documented
4930
4931 "write_aio"
4932 Not documented
4933
4934 "write_compressed"
4935 Not documented
4936
4937 "vmstate_load"
4938 Not documented
4939
4940 "vmstate_save"
4941 Not documented
4942
4943 "cow_read"
4944 Not documented
4945
4946 "cow_write"
4947 Not documented
4948
4949 "reftable_load"
4950 Not documented
4951
4952 "reftable_grow"
4953 Not documented
4954
4955 "reftable_update"
4956 Not documented
4957
4958 "refblock_load"
4959 Not documented
4960
4961 "refblock_update"
4962 Not documented
4963
4964 "refblock_update_part"
4965 Not documented
4966
4967 "refblock_alloc"
4968 Not documented
4969
4970 "refblock_alloc_hookup"
4971 Not documented
4972
4973 "refblock_alloc_write"
4974 Not documented
4975
4976 "refblock_alloc_write_blocks"
4977 Not documented
4978
4979 "refblock_alloc_write_table"
4980 Not documented
4981
4982 "refblock_alloc_switch_table"
4983 Not documented
4984
4985 "cluster_alloc"
4986 Not documented
4987
4988 "cluster_alloc_bytes"
4989 Not documented
4990
4991 "cluster_free"
4992 Not documented
4993
4994 "flush_to_os"
4995 Not documented
4996
4997 "flush_to_disk"
4998 Not documented
4999
5000 "pwritev_rmw_head"
5001 Not documented
5002
5003 "pwritev_rmw_after_head"
5004 Not documented
5005
5006 "pwritev_rmw_tail"
5007 Not documented
5008
5009 "pwritev_rmw_after_tail"
5010 Not documented
5011
5012 "pwritev"
5013 Not documented
5014
5015 "pwritev_zero"
5016 Not documented
5017
5018 "pwritev_done"
5019 Not documented
5020
5021 "empty_image_prepare"
5022 Not documented
5023
5024 Since: 2.9
5025
5026 BlkdebugIOType (Enum)
5027
5028 Kinds of I/O that blkdebug can inject errors in.
5029
5030 Values:
5031
5032 "read"
5033 .bdrv_co_preadv()
5034
5035 "write"
5036 .bdrv_co_pwritev()
5037
5038 "write-zeroes"
5039 .bdrv_co_pwrite_zeroes()
5040
5041 "discard"
5042 .bdrv_co_pdiscard()
5043
5044 "flush"
5045 .bdrv_co_flush_to_disk()
5046
5047 "block-status"
5048 .bdrv_co_block_status()
5049
5050 Since: 4.1
5051
5052 BlkdebugInjectErrorOptions (Object)
5053
5054 Describes a single error injection for blkdebug.
5055
5056 Members:
5057
5058 "event: BlkdebugEvent"
5059 trigger event
5060
5061 "state: int" (optional)
5062 the state identifier blkdebug needs to be in to actually trigger
5063 the event; defaults to "any"
5064
5065 "iotype: BlkdebugIOType" (optional)
5066 the type of I/O operations on which this error should be injected;
5067 defaults to "all read, write, write-zeroes, discard, and flush
5068 operations" (since: 4.1)
5069
5070 "errno: int" (optional)
5071 error identifier (errno) to be returned; defaults to EIO
5072
5073 "sector: int" (optional)
5074 specifies the sector index which has to be affected in order to
5075 actually trigger the event; defaults to "any sector"
5076
5077 "once: boolean" (optional)
5078 disables further events after this one has been triggered; defaults
5079 to false
5080
5081 "immediately: boolean" (optional)
5082 fail immediately; defaults to false
5083
5084 Since: 2.9
5085
5086 BlkdebugSetStateOptions (Object)
5087
5088 Describes a single state-change event for blkdebug.
5089
5090 Members:
5091
5092 "event: BlkdebugEvent"
5093 trigger event
5094
5095 "state: int" (optional)
5096 the current state identifier blkdebug needs to be in; defaults to
5097 "any"
5098
5099 "new_state: int"
5100 the state identifier blkdebug is supposed to assume if this event
5101 is triggered
5102
5103 Since: 2.9
5104
5105 BlockdevOptionsBlkdebug (Object)
5106
5107 Driver specific block device options for blkdebug.
5108
5109 Members:
5110
5111 "image: BlockdevRef"
5112 underlying raw block device (or image file)
5113
5114 "config: string" (optional)
5115 filename of the configuration file
5116
5117 "align: int" (optional)
5118 required alignment for requests in bytes, must be positive power of
5119 2, or 0 for default
5120
5121 "max-transfer: int" (optional)
5122 maximum size for I/O transfers in bytes, must be positive multiple
5123 of "align" and of the underlying file's request alignment (but need
5124 not be a power of 2), or 0 for default (since 2.10)
5125
5126 "opt-write-zero: int" (optional)
5127 preferred alignment for write zero requests in bytes, must be
5128 positive multiple of "align" and of the underlying file's request
5129 alignment (but need not be a power of 2), or 0 for default (since
5130 2.10)
5131
5132 "max-write-zero: int" (optional)
5133 maximum size for write zero requests in bytes, must be positive
5134 multiple of "align", of "opt-write-zero", and of the underlying
5135 file's request alignment (but need not be a power of 2), or 0 for
5136 default (since 2.10)
5137
5138 "opt-discard: int" (optional)
5139 preferred alignment for discard requests in bytes, must be positive
5140 multiple of "align" and of the underlying file's request alignment
5141 (but need not be a power of 2), or 0 for default (since 2.10)
5142
5143 "max-discard: int" (optional)
5144 maximum size for discard requests in bytes, must be positive
5145 multiple of "align", of "opt-discard", and of the underlying file's
5146 request alignment (but need not be a power of 2), or 0 for default
5147 (since 2.10)
5148
5149 "inject-error: array of BlkdebugInjectErrorOptions" (optional)
5150 array of error injection descriptions
5151
5152 "set-state: array of BlkdebugSetStateOptions" (optional)
5153 array of state-change descriptions
5154
5155 "take-child-perms: array of BlockPermission" (optional)
5156 Permissions to take on "image" in addition to what is necessary
5157 anyway (which depends on how the blkdebug node is used). Defaults
5158 to none. (since 5.0)
5159
5160 "unshare-child-perms: array of BlockPermission" (optional)
5161 Permissions not to share on "image" in addition to what cannot be
5162 shared anyway (which depends on how the blkdebug node is used).
5163 Defaults to none. (since 5.0)
5164
5165 Since: 2.9
5166
5167 BlockdevOptionsBlklogwrites (Object)
5168
5169 Driver specific block device options for blklogwrites.
5170
5171 Members:
5172
5173 "file: BlockdevRef"
5174 block device
5175
5176 "log: BlockdevRef"
5177 block device used to log writes to "file"
5178
5179 "log-sector-size: int" (optional)
5180 sector size used in logging writes to "file", determines
5181 granularity of offsets and sizes of writes (default: 512)
5182
5183 "log-append: boolean" (optional)
5184 append to an existing log (default: false)
5185
5186 "log-super-update-interval: int" (optional)
5187 interval of write requests after which the log super block is
5188 updated to disk (default: 4096)
5189
5190 Since: 3.0
5191
5192 BlockdevOptionsBlkverify (Object)
5193
5194 Driver specific block device options for blkverify.
5195
5196 Members:
5197
5198 "test: BlockdevRef"
5199 block device to be tested
5200
5201 "raw: BlockdevRef"
5202 raw image used for verification
5203
5204 Since: 2.9
5205
5206 BlockdevOptionsBlkreplay (Object)
5207
5208 Driver specific block device options for blkreplay.
5209
5210 Members:
5211
5212 "image: BlockdevRef"
5213 disk image which should be controlled with blkreplay
5214
5215 Since: 4.2
5216
5217 QuorumReadPattern (Enum)
5218
5219 An enumeration of quorum read patterns.
5220
5221 Values:
5222
5223 "quorum"
5224 read all the children and do a quorum vote on reads
5225
5226 "fifo"
5227 read only from the first child that has not failed
5228
5229 Since: 2.9
5230
5231 BlockdevOptionsQuorum (Object)
5232
5233 Driver specific block device options for Quorum
5234
5235 Members:
5236
5237 "blkverify: boolean" (optional)
5238 true if the driver must print content mismatch set to false by
5239 default
5240
5241 "children: array of BlockdevRef"
5242 the children block devices to use
5243
5244 "vote-threshold: int"
5245 the vote limit under which a read will fail
5246
5247 "rewrite-corrupted: boolean" (optional)
5248 rewrite corrupted data when quorum is reached (Since 2.1)
5249
5250 "read-pattern: QuorumReadPattern" (optional)
5251 choose read pattern and set to quorum by default (Since 2.2)
5252
5253 Since: 2.9
5254
5255 BlockdevOptionsGluster (Object)
5256
5257 Driver specific block device options for Gluster
5258
5259 Members:
5260
5261 "volume: string"
5262 name of gluster volume where VM image resides
5263
5264 "path: string"
5265 absolute path to image file in gluster volume
5266
5267 "server: array of SocketAddress"
5268 gluster servers description
5269
5270 "debug: int" (optional)
5271 libgfapi log level (default '4' which is Error) (Since 2.8)
5272
5273 "logfile: string" (optional)
5274 libgfapi log file (default /dev/stderr) (Since 2.8)
5275
5276 Since: 2.9
5277
5278 IscsiTransport (Enum)
5279
5280 An enumeration of libiscsi transport types
5281
5282 Values:
5283
5284 "tcp"
5285 Not documented
5286
5287 "iser"
5288 Not documented
5289
5290 Since: 2.9
5291
5292 IscsiHeaderDigest (Enum)
5293
5294 An enumeration of header digests supported by libiscsi
5295
5296 Values:
5297
5298 "crc32c"
5299 Not documented
5300
5301 "none"
5302 Not documented
5303
5304 "crc32c-none"
5305 Not documented
5306
5307 "none-crc32c"
5308 Not documented
5309
5310 Since: 2.9
5311
5312 BlockdevOptionsIscsi (Object)
5313
5314 Members:
5315
5316 "transport: IscsiTransport"
5317 The iscsi transport type
5318
5319 "portal: string"
5320 The address of the iscsi portal
5321
5322 "target: string"
5323 The target iqn name
5324
5325 "lun: int" (optional)
5326 LUN to connect to. Defaults to 0.
5327
5328 "user: string" (optional)
5329 User name to log in with. If omitted, no CHAP authentication is
5330 performed.
5331
5332 "password-secret: string" (optional)
5333 The ID of a QCryptoSecret object providing the password for the
5334 login. This option is required if "user" is specified.
5335
5336 "initiator-name: string" (optional)
5337 The iqn name we want to identify to the target as. If this option
5338 is not specified, an initiator name is generated automatically.
5339
5340 "header-digest: IscsiHeaderDigest" (optional)
5341 The desired header digest. Defaults to none-crc32c.
5342
5343 "timeout: int" (optional)
5344 Timeout in seconds after which a request will timeout. 0 means no
5345 timeout and is the default.
5346
5347 Driver specific block device options for iscsi
5348
5349 Since: 2.9
5350
5351 RbdAuthMode (Enum)
5352
5353 Values:
5354
5355 "cephx"
5356 Not documented
5357
5358 "none"
5359 Not documented
5360
5361 Since: 3.0
5362
5363 BlockdevOptionsRbd (Object)
5364
5365 Members:
5366
5367 "pool: string"
5368 Ceph pool name.
5369
5370 "namespace: string" (optional)
5371 Rados namespace name in the Ceph pool. (Since 5.0)
5372
5373 "image: string"
5374 Image name in the Ceph pool.
5375
5376 "conf: string" (optional)
5377 path to Ceph configuration file. Values in the configuration file
5378 will be overridden by options specified via QAPI.
5379
5380 "snapshot: string" (optional)
5381 Ceph snapshot name.
5382
5383 "user: string" (optional)
5384 Ceph id name.
5385
5386 "auth-client-required: array of RbdAuthMode" (optional)
5387 Acceptable authentication modes. This maps to Ceph configuration
5388 option "auth_client_required". (Since 3.0)
5389
5390 "key-secret: string" (optional)
5391 ID of a QCryptoSecret object providing a key for cephx
5392 authentication. This maps to Ceph configuration option "key".
5393 (Since 3.0)
5394
5395 "server: array of InetSocketAddressBase" (optional)
5396 Monitor host address and port. This maps to the "mon_host" Ceph
5397 option.
5398
5399 Since: 2.9
5400
5401 BlockdevOptionsSheepdog (Object)
5402
5403 Driver specific block device options for sheepdog
5404
5405 Members:
5406
5407 "vdi: string"
5408 Virtual disk image name
5409
5410 "server: SocketAddress"
5411 The Sheepdog server to connect to
5412
5413 "snap-id: int" (optional)
5414 Snapshot ID
5415
5416 "tag: string" (optional)
5417 Snapshot tag name
5418
5419 Only one of "snap-id" and "tag" may be present.
5420
5421 Since: 2.9
5422
5423 ReplicationMode (Enum)
5424
5425 An enumeration of replication modes.
5426
5427 Values:
5428
5429 "primary"
5430 Primary mode, the vm's state will be sent to secondary QEMU.
5431
5432 "secondary"
5433 Secondary mode, receive the vm's state from primary QEMU.
5434
5435 Since: 2.9
5436
5437 If: "defined(CONFIG_REPLICATION)"
5438
5439 BlockdevOptionsReplication (Object)
5440
5441 Driver specific block device options for replication
5442
5443 Members:
5444
5445 "mode: ReplicationMode"
5446 the replication mode
5447
5448 "top-id: string" (optional)
5449 In secondary mode, node name or device ID of the root node who owns
5450 the replication node chain. Must not be given in primary mode.
5451
5452 The members of "BlockdevOptionsGenericFormat"
5453
5454 Since: 2.9
5455
5456 If: "defined(CONFIG_REPLICATION)"
5457
5458 NFSTransport (Enum)
5459
5460 An enumeration of NFS transport types
5461
5462 Values:
5463
5464 "inet"
5465 TCP transport
5466
5467 Since: 2.9
5468
5469 NFSServer (Object)
5470
5471 Captures the address of the socket
5472
5473 Members:
5474
5475 "type: NFSTransport"
5476 transport type used for NFS (only TCP supported)
5477
5478 "host: string"
5479 host address for NFS server
5480
5481 Since: 2.9
5482
5483 BlockdevOptionsNfs (Object)
5484
5485 Driver specific block device option for NFS
5486
5487 Members:
5488
5489 "server: NFSServer"
5490 host address
5491
5492 "path: string"
5493 path of the image on the host
5494
5495 "user: int" (optional)
5496 UID value to use when talking to the server (defaults to 65534 on
5497 Windows and getuid() on unix)
5498
5499 "group: int" (optional)
5500 GID value to use when talking to the server (defaults to 65534 on
5501 Windows and getgid() in unix)
5502
5503 "tcp-syn-count: int" (optional)
5504 number of SYNs during the session establishment (defaults to libnfs
5505 default)
5506
5507 "readahead-size: int" (optional)
5508 set the readahead size in bytes (defaults to libnfs default)
5509
5510 "page-cache-size: int" (optional)
5511 set the pagecache size in bytes (defaults to libnfs default)
5512
5513 "debug: int" (optional)
5514 set the NFS debug level (max 2) (defaults to libnfs default)
5515
5516 Since: 2.9
5517
5518 BlockdevOptionsCurlBase (Object)
5519
5520 Driver specific block device options shared by all protocols supported
5521 by the curl backend.
5522
5523 Members:
5524
5525 "url: string"
5526 URL of the image file
5527
5528 "readahead: int" (optional)
5529 Size of the read-ahead cache; must be a multiple of 512 (defaults
5530 to 256 kB)
5531
5532 "timeout: int" (optional)
5533 Timeout for connections, in seconds (defaults to 5)
5534
5535 "username: string" (optional)
5536 Username for authentication (defaults to none)
5537
5538 "password-secret: string" (optional)
5539 ID of a QCryptoSecret object providing a password for
5540 authentication (defaults to no password)
5541
5542 "proxy-username: string" (optional)
5543 Username for proxy authentication (defaults to none)
5544
5545 "proxy-password-secret: string" (optional)
5546 ID of a QCryptoSecret object providing a password for proxy
5547 authentication (defaults to no password)
5548
5549 Since: 2.9
5550
5551 BlockdevOptionsCurlHttp (Object)
5552
5553 Driver specific block device options for HTTP connections over the curl
5554 backend. URLs must start with "http://".
5555
5556 Members:
5557
5558 "cookie: string" (optional)
5559 List of cookies to set; format is "name1=content1; name2=content2;"
5560 as explained by CURLOPT_COOKIE(3). Defaults to no cookies.
5561
5562 "cookie-secret: string" (optional)
5563 ID of a QCryptoSecret object providing the cookie data in a secure
5564 way. See "cookie" for the format. (since 2.10)
5565
5566 The members of "BlockdevOptionsCurlBase"
5567
5568 Since: 2.9
5569
5570 BlockdevOptionsCurlHttps (Object)
5571
5572 Driver specific block device options for HTTPS connections over the
5573 curl backend. URLs must start with "https://".
5574
5575 Members:
5576
5577 "cookie: string" (optional)
5578 List of cookies to set; format is "name1=content1; name2=content2;"
5579 as explained by CURLOPT_COOKIE(3). Defaults to no cookies.
5580
5581 "sslverify: boolean" (optional)
5582 Whether to verify the SSL certificate's validity (defaults to true)
5583
5584 "cookie-secret: string" (optional)
5585 ID of a QCryptoSecret object providing the cookie data in a secure
5586 way. See "cookie" for the format. (since 2.10)
5587
5588 The members of "BlockdevOptionsCurlBase"
5589
5590 Since: 2.9
5591
5592 BlockdevOptionsCurlFtp (Object)
5593
5594 Driver specific block device options for FTP connections over the curl
5595 backend. URLs must start with "ftp://".
5596
5597 Members:
5598
5599 The members of "BlockdevOptionsCurlBase"
5600
5601 Since: 2.9
5602
5603 BlockdevOptionsCurlFtps (Object)
5604
5605 Driver specific block device options for FTPS connections over the curl
5606 backend. URLs must start with "ftps://".
5607
5608 Members:
5609
5610 "sslverify: boolean" (optional)
5611 Whether to verify the SSL certificate's validity (defaults to true)
5612
5613 The members of "BlockdevOptionsCurlBase"
5614
5615 Since: 2.9
5616
5617 BlockdevOptionsNbd (Object)
5618
5619 Driver specific block device options for NBD.
5620
5621 Members:
5622
5623 "server: SocketAddress"
5624 NBD server address
5625
5626 "export: string" (optional)
5627 export name
5628
5629 "tls-creds: string" (optional)
5630 TLS credentials ID
5631
5632 "x-dirty-bitmap: string" (optional)
5633 A "qemu:dirty-bitmap:NAME" string to query in place of traditional
5634 "base:allocation" block status (see NBD_OPT_LIST_META_CONTEXT in
5635 the NBD protocol) (since 3.0)
5636
5637 "reconnect-delay: int" (optional)
5638 On an unexpected disconnect, the nbd client tries to connect again
5639 until succeeding or encountering a serious error. During the first
5640 "reconnect-delay" seconds, all requests are paused and will be
5641 rerun on a successful reconnect. After that time, any delayed
5642 requests and all future requests before a successful reconnect will
5643 immediately fail. Default 0 (Since 4.2)
5644
5645 Since: 2.9
5646
5647 BlockdevOptionsRaw (Object)
5648
5649 Driver specific block device options for the raw driver.
5650
5651 Members:
5652
5653 "offset: int" (optional)
5654 position where the block device starts
5655
5656 "size: int" (optional)
5657 the assumed size of the device
5658
5659 The members of "BlockdevOptionsGenericFormat"
5660
5661 Since: 2.9
5662
5663 BlockdevOptionsThrottle (Object)
5664
5665 Driver specific block device options for the throttle driver
5666
5667 Members:
5668
5669 "throttle-group: string"
5670 the name of the throttle-group object to use. It must already
5671 exist.
5672
5673 "file: BlockdevRef"
5674 reference to or definition of the data source block device
5675
5676 Since: 2.11
5677
5678 BlockdevOptions (Object)
5679
5680 Options for creating a block device. Many options are available for
5681 all block devices, independent of the block driver:
5682
5683 Members:
5684
5685 "driver: BlockdevDriver"
5686 block driver name
5687
5688 "node-name: string" (optional)
5689 the node name of the new node (Since 2.0). This option is required
5690 on the top level of blockdev-add. Valid node names start with an
5691 alphabetic character and may contain only alphanumeric characters,
5692 '-', '.' and '_'. Their maximum length is 31 characters.
5693
5694 "discard: BlockdevDiscardOptions" (optional)
5695 discard-related options (default: ignore)
5696
5697 "cache: BlockdevCacheOptions" (optional)
5698 cache-related options
5699
5700 "read-only: boolean" (optional)
5701 whether the block device should be read-only (default: false).
5702 Note that some block drivers support only read-only access, either
5703 generally or in certain configurations. In this case, the default
5704 value does not work and the option must be specified explicitly.
5705
5706 "auto-read-only: boolean" (optional)
5707 if true and "read-only" is false, QEMU may automatically decide not
5708 to open the image read-write as requested, but fall back to read-
5709 only instead (and switch between the modes later), e.g. depending
5710 on whether the image file is writable or whether a writing user is
5711 attached to the node (default: false, since 3.1)
5712
5713 "detect-zeroes: BlockdevDetectZeroesOptions" (optional)
5714 detect and optimize zero writes (Since 2.1) (default: off)
5715
5716 "force-share: boolean" (optional)
5717 force share all permission on added nodes. Requires
5718 read-only=true. (Since 2.10)
5719
5720 The members of "BlockdevOptionsBlkdebug" when "driver" is "blkdebug"
5721 The members of "BlockdevOptionsBlklogwrites" when "driver" is
5722 "blklogwrites"
5723 The members of "BlockdevOptionsBlkverify" when "driver" is "blkverify"
5724 The members of "BlockdevOptionsBlkreplay" when "driver" is "blkreplay"
5725 The members of "BlockdevOptionsGenericFormat" when "driver" is "bochs"
5726 The members of "BlockdevOptionsGenericFormat" when "driver" is "cloop"
5727 The members of "BlockdevOptionsGenericFormat" when "driver" is
5728 "compress"
5729 The members of "BlockdevOptionsGenericFormat" when "driver" is "copy-
5730 on-read"
5731 The members of "BlockdevOptionsGenericFormat" when "driver" is "dmg"
5732 The members of "BlockdevOptionsFile" when "driver" is "file"
5733 The members of "BlockdevOptionsCurlFtp" when "driver" is "ftp"
5734 The members of "BlockdevOptionsCurlFtps" when "driver" is "ftps"
5735 The members of "BlockdevOptionsGluster" when "driver" is "gluster"
5736 The members of "BlockdevOptionsFile" when "driver" is "host_cdrom"
5737 The members of "BlockdevOptionsFile" when "driver" is "host_device"
5738 The members of "BlockdevOptionsCurlHttp" when "driver" is "http"
5739 The members of "BlockdevOptionsCurlHttps" when "driver" is "https"
5740 The members of "BlockdevOptionsIscsi" when "driver" is "iscsi"
5741 The members of "BlockdevOptionsLUKS" when "driver" is "luks"
5742 The members of "BlockdevOptionsNbd" when "driver" is "nbd"
5743 The members of "BlockdevOptionsNfs" when "driver" is "nfs"
5744 The members of "BlockdevOptionsNull" when "driver" is "null-aio"
5745 The members of "BlockdevOptionsNull" when "driver" is "null-co"
5746 The members of "BlockdevOptionsNVMe" when "driver" is "nvme"
5747 The members of "BlockdevOptionsGenericFormat" when "driver" is
5748 "parallels"
5749 The members of "BlockdevOptionsQcow2" when "driver" is "qcow2"
5750 The members of "BlockdevOptionsQcow" when "driver" is "qcow"
5751 The members of "BlockdevOptionsGenericCOWFormat" when "driver" is "qed"
5752 The members of "BlockdevOptionsQuorum" when "driver" is "quorum"
5753 The members of "BlockdevOptionsRaw" when "driver" is "raw"
5754 The members of "BlockdevOptionsRbd" when "driver" is "rbd"
5755 The members of "BlockdevOptionsReplication" when "driver" is
5756 "replication" (If: "defined(CONFIG_REPLICATION)")
5757 The members of "BlockdevOptionsSheepdog" when "driver" is "sheepdog"
5758 The members of "BlockdevOptionsSsh" when "driver" is "ssh"
5759 The members of "BlockdevOptionsThrottle" when "driver" is "throttle"
5760 The members of "BlockdevOptionsGenericFormat" when "driver" is "vdi"
5761 The members of "BlockdevOptionsGenericFormat" when "driver" is "vhdx"
5762 The members of "BlockdevOptionsGenericCOWFormat" when "driver" is
5763 "vmdk"
5764 The members of "BlockdevOptionsGenericFormat" when "driver" is "vpc"
5765 The members of "BlockdevOptionsVVFAT" when "driver" is "vvfat"
5766
5767 Remaining options are determined by the block driver.
5768
5769 Since: 2.9
5770
5771 BlockdevRef (Alternate)
5772
5773 Reference to a block device.
5774
5775 Members:
5776
5777 "definition: BlockdevOptions"
5778 defines a new block device inline
5779
5780 "reference: string"
5781 references the ID of an existing block device
5782
5783 Since: 2.9
5784
5785 BlockdevRefOrNull (Alternate)
5786
5787 Reference to a block device.
5788
5789 Members:
5790
5791 "definition: BlockdevOptions"
5792 defines a new block device inline
5793
5794 "reference: string"
5795 references the ID of an existing block device. An empty string
5796 means that no block device should be referenced. Deprecated; use
5797 null instead.
5798
5799 "null: null"
5800 No block device should be referenced (since 2.10)
5801
5802 Since: 2.9
5803
5804 blockdev-add (Command) Creates a new block device. If the "id" option
5805 is given at the top level, a BlockBackend will be created; otherwise,
5806 "node-name" is mandatory at the top level and no BlockBackend will be
5807 created.
5808
5809 Arguments: the members of "BlockdevOptions"
5810
5811 Since: 2.9
5812
5813 Example:
5814
5815 1.
5816 -> { "execute": "blockdev-add",
5817 "arguments": {
5818 "driver": "qcow2",
5819 "node-name": "test1",
5820 "file": {
5821 "driver": "file",
5822 "filename": "test.qcow2"
5823 }
5824 }
5825 }
5826 <- { "return": {} }
5827
5828 2.
5829 -> { "execute": "blockdev-add",
5830 "arguments": {
5831 "driver": "qcow2",
5832 "node-name": "node0",
5833 "discard": "unmap",
5834 "cache": {
5835 "direct": true
5836 },
5837 "file": {
5838 "driver": "file",
5839 "filename": "/tmp/test.qcow2"
5840 },
5841 "backing": {
5842 "driver": "raw",
5843 "file": {
5844 "driver": "file",
5845 "filename": "/dev/fdset/4"
5846 }
5847 }
5848 }
5849 }
5850
5851 <- { "return": {} }
5852
5853 x-blockdev-reopen (Command) Reopens a block device using the given set
5854 of options. Any option not specified will be reset to its default value
5855 regardless of its previous status. If an option cannot be changed or a
5856 particular driver does not support reopening then the command will
5857 return an error.
5858
5859 The top-level "node-name" option (from BlockdevOptions) must be
5860 specified and is used to select the block device to be reopened. Other
5861 "node-name" options must be either omitted or set to the current name
5862 of the appropriate node. This command won't change any node name and
5863 any attempt to do it will result in an error.
5864
5865 In the case of options that refer to child nodes, the behavior of this
5866 command depends on the value:
5867
5868 1) A set of options (BlockdevOptions): the child is reopened with the
5869 specified set of options.
5870
5871 2) A reference to the current child: the child is reopened using its
5872 existing set of options.
5873
5874 3) A reference to a different node: the current child is replaced with
5875 the specified one.
5876
5877 4) NULL: the current child (if any) is detached.
5878
5879 Options (1) and (2) are supported in all cases, but at the moment only
5880 "backing" allows replacing or detaching an existing child.
5881
5882 Unlike with blockdev-add, the "backing" option must always be present
5883 unless the node being reopened does not have a backing file and its
5884 image does not have a default backing file name as part of its
5885 metadata.
5886
5887 Arguments: the members of "BlockdevOptions"
5888
5889 Since: 4.0
5890
5891 blockdev-del (Command) Deletes a block device that has been added
5892 using blockdev-add. The command will fail if the node is attached to a
5893 device or is otherwise being used.
5894
5895 Arguments:
5896
5897 "node-name: string"
5898 Name of the graph node to delete.
5899
5900 Since: 2.9
5901
5902 Example:
5903
5904 -> { "execute": "blockdev-add",
5905 "arguments": {
5906 "driver": "qcow2",
5907 "node-name": "node0",
5908 "file": {
5909 "driver": "file",
5910 "filename": "test.qcow2"
5911 }
5912 }
5913 }
5914 <- { "return": {} }
5915
5916 -> { "execute": "blockdev-del",
5917 "arguments": { "node-name": "node0" }
5918 }
5919 <- { "return": {} }
5920
5921 BlockdevCreateOptionsFile (Object)
5922
5923 Driver specific image creation options for file.
5924
5925 Members:
5926
5927 "filename: string"
5928 Filename for the new image file
5929
5930 "size: int"
5931 Size of the virtual disk in bytes
5932
5933 "preallocation: PreallocMode" (optional)
5934 Preallocation mode for the new image (default: off; allowed values:
5935 off, falloc (if defined CONFIG_POSIX_FALLOCATE), full (if defined
5936 CONFIG_POSIX))
5937
5938 "nocow: boolean" (optional)
5939 Turn off copy-on-write (valid only on btrfs; default: off)
5940
5941 "extent-size-hint: int" (optional)
5942 Extent size hint to add to the image file; 0 for not adding an
5943 extent size hint (default: 1 MB, since 5.1)
5944
5945 Since: 2.12
5946
5947 BlockdevCreateOptionsGluster (Object)
5948
5949 Driver specific image creation options for gluster.
5950
5951 Members:
5952
5953 "location: BlockdevOptionsGluster"
5954 Where to store the new image file
5955
5956 "size: int"
5957 Size of the virtual disk in bytes
5958
5959 "preallocation: PreallocMode" (optional)
5960 Preallocation mode for the new image (default: off; allowed values:
5961 off, falloc (if defined CONFIG_GLUSTERFS_FALLOCATE), full (if
5962 defined CONFIG_GLUSTERFS_ZEROFILL))
5963
5964 Since: 2.12
5965
5966 BlockdevCreateOptionsLUKS (Object)
5967
5968 Driver specific image creation options for LUKS.
5969
5970 Members:
5971
5972 "file: BlockdevRef"
5973 Node to create the image format on
5974
5975 "size: int"
5976 Size of the virtual disk in bytes
5977
5978 "preallocation: PreallocMode" (optional)
5979 Preallocation mode for the new image (since: 4.2) (default: off;
5980 allowed values: off, metadata, falloc, full)
5981
5982 The members of "QCryptoBlockCreateOptionsLUKS"
5983
5984 Since: 2.12
5985
5986 BlockdevCreateOptionsNfs (Object)
5987
5988 Driver specific image creation options for NFS.
5989
5990 Members:
5991
5992 "location: BlockdevOptionsNfs"
5993 Where to store the new image file
5994
5995 "size: int"
5996 Size of the virtual disk in bytes
5997
5998 Since: 2.12
5999
6000 BlockdevCreateOptionsParallels (Object)
6001
6002 Driver specific image creation options for parallels.
6003
6004 Members:
6005
6006 "file: BlockdevRef"
6007 Node to create the image format on
6008
6009 "size: int"
6010 Size of the virtual disk in bytes
6011
6012 "cluster-size: int" (optional)
6013 Cluster size in bytes (default: 1 MB)
6014
6015 Since: 2.12
6016
6017 BlockdevCreateOptionsQcow (Object)
6018
6019 Driver specific image creation options for qcow.
6020
6021 Members:
6022
6023 "file: BlockdevRef"
6024 Node to create the image format on
6025
6026 "size: int"
6027 Size of the virtual disk in bytes
6028
6029 "backing-file: string" (optional)
6030 File name of the backing file if a backing file should be used
6031
6032 "encrypt: QCryptoBlockCreateOptions" (optional)
6033 Encryption options if the image should be encrypted
6034
6035 Since: 2.12
6036
6037 BlockdevQcow2Version (Enum)
6038
6039 Values:
6040
6041 "v2"
6042 The original QCOW2 format as introduced in qemu 0.10 (version 2)
6043
6044 "v3"
6045 The extended QCOW2 format as introduced in qemu 1.1 (version 3)
6046
6047 Since: 2.12
6048
6049 Qcow2CompressionType (Enum)
6050
6051 Compression type used in qcow2 image file
6052
6053 Values:
6054
6055 "zlib"
6056 zlib compression, see <http://zlib.net/>
6057
6058 "zstd"
6059 zstd compression, see <http://github.com/facebook/zstd> If:
6060 "defined(CONFIG_ZSTD)"
6061
6062 Since: 5.1
6063
6064 BlockdevCreateOptionsQcow2 (Object)
6065
6066 Driver specific image creation options for qcow2.
6067
6068 Members:
6069
6070 "file: BlockdevRef"
6071 Node to create the image format on
6072
6073 "data-file: BlockdevRef" (optional)
6074 Node to use as an external data file in which all guest data is
6075 stored so that only metadata remains in the qcow2 file (since: 4.0)
6076
6077 "data-file-raw: boolean" (optional)
6078 True if the external data file must stay valid as a standalone
6079 (read-only) raw image without looking at qcow2 metadata (default:
6080 false; since: 4.0)
6081
6082 "size: int"
6083 Size of the virtual disk in bytes
6084
6085 "version: BlockdevQcow2Version" (optional)
6086 Compatibility level (default: v3)
6087
6088 "backing-file: string" (optional)
6089 File name of the backing file if a backing file should be used
6090
6091 "backing-fmt: BlockdevDriver" (optional)
6092 Name of the block driver to use for the backing file
6093
6094 "encrypt: QCryptoBlockCreateOptions" (optional)
6095 Encryption options if the image should be encrypted
6096
6097 "cluster-size: int" (optional)
6098 qcow2 cluster size in bytes (default: 65536)
6099
6100 "preallocation: PreallocMode" (optional)
6101 Preallocation mode for the new image (default: off; allowed values:
6102 off, falloc, full, metadata)
6103
6104 "lazy-refcounts: boolean" (optional)
6105 True if refcounts may be updated lazily (default: off)
6106
6107 "refcount-bits: int" (optional)
6108 Width of reference counts in bits (default: 16)
6109
6110 "compression-type: Qcow2CompressionType" (optional)
6111 The image cluster compression method (default: zlib, since 5.1)
6112
6113 Since: 2.12
6114
6115 BlockdevCreateOptionsQed (Object)
6116
6117 Driver specific image creation options for qed.
6118
6119 Members:
6120
6121 "file: BlockdevRef"
6122 Node to create the image format on
6123
6124 "size: int"
6125 Size of the virtual disk in bytes
6126
6127 "backing-file: string" (optional)
6128 File name of the backing file if a backing file should be used
6129
6130 "backing-fmt: BlockdevDriver" (optional)
6131 Name of the block driver to use for the backing file
6132
6133 "cluster-size: int" (optional)
6134 Cluster size in bytes (default: 65536)
6135
6136 "table-size: int" (optional)
6137 L1/L2 table size (in clusters)
6138
6139 Since: 2.12
6140
6141 BlockdevCreateOptionsRbd (Object)
6142
6143 Driver specific image creation options for rbd/Ceph.
6144
6145 Members:
6146
6147 "location: BlockdevOptionsRbd"
6148 Where to store the new image file. This location cannot point to a
6149 snapshot.
6150
6151 "size: int"
6152 Size of the virtual disk in bytes
6153
6154 "cluster-size: int" (optional)
6155 RBD object size
6156
6157 Since: 2.12
6158
6159 BlockdevVmdkSubformat (Enum)
6160
6161 Subformat options for VMDK images
6162
6163 Values:
6164
6165 "monolithicSparse"
6166 Single file image with sparse cluster allocation
6167
6168 "monolithicFlat"
6169 Single flat data image and a descriptor file
6170
6171 "twoGbMaxExtentSparse"
6172 Data is split into 2GB (per virtual LBA) sparse extent files, in
6173 addition to a descriptor file
6174
6175 "twoGbMaxExtentFlat"
6176 Data is split into 2GB (per virtual LBA) flat extent files, in
6177 addition to a descriptor file
6178
6179 "streamOptimized"
6180 Single file image sparse cluster allocation, optimized for
6181 streaming over network.
6182
6183 Since: 4.0
6184
6185 BlockdevVmdkAdapterType (Enum)
6186
6187 Adapter type info for VMDK images
6188
6189 Values:
6190
6191 "ide"
6192 Not documented
6193
6194 "buslogic"
6195 Not documented
6196
6197 "lsilogic"
6198 Not documented
6199
6200 "legacyESX"
6201 Not documented
6202
6203 Since: 4.0
6204
6205 BlockdevCreateOptionsVmdk (Object)
6206
6207 Driver specific image creation options for VMDK.
6208
6209 Members:
6210
6211 "file: BlockdevRef"
6212 Where to store the new image file. This refers to the image file
6213 for monolithcSparse and streamOptimized format, or the descriptor
6214 file for other formats.
6215
6216 "size: int"
6217 Size of the virtual disk in bytes
6218
6219 "extents: array of BlockdevRef" (optional)
6220 Where to store the data extents. Required for monolithcFlat,
6221 twoGbMaxExtentSparse and twoGbMaxExtentFlat formats. For
6222 monolithicFlat, only one entry is required; for twoGbMaxExtent*
6223 formats, the number of entries required is calculated as
6224 extent_number = virtual_size / 2GB. Providing more extents than
6225 will be used is an error.
6226
6227 "subformat: BlockdevVmdkSubformat" (optional)
6228 The subformat of the VMDK image. Default: "monolithicSparse".
6229
6230 "backing-file: string" (optional)
6231 The path of backing file. Default: no backing file is used.
6232
6233 "adapter-type: BlockdevVmdkAdapterType" (optional)
6234 The adapter type used to fill in the descriptor. Default: ide.
6235
6236 "hwversion: string" (optional)
6237 Hardware version. The meaningful options are "4" or "6". Default:
6238 "4".
6239
6240 "zeroed-grain: boolean" (optional)
6241 Whether to enable zeroed-grain feature for sparse subformats.
6242 Default: false.
6243
6244 Since: 4.0
6245
6246 SheepdogRedundancyType (Enum)
6247
6248 Values:
6249
6250 "full"
6251 Create a fully replicated vdi with x copies
6252
6253 "erasure-coded"
6254 Create an erasure coded vdi with x data strips and y parity strips
6255
6256 Since: 2.12
6257
6258 SheepdogRedundancyFull (Object)
6259
6260 Members:
6261
6262 "copies: int"
6263 Number of copies to use (between 1 and 31)
6264
6265 Since: 2.12
6266
6267 SheepdogRedundancyErasureCoded (Object)
6268
6269 Members:
6270
6271 "data-strips: int"
6272 Number of data strips to use (one of {2,4,8,16})
6273
6274 "parity-strips: int"
6275 Number of parity strips to use (between 1 and 15)
6276
6277 Since: 2.12
6278
6279 SheepdogRedundancy (Object)
6280
6281 Members:
6282
6283 "type: SheepdogRedundancyType"
6284 Not documented
6285
6286 The members of "SheepdogRedundancyFull" when "type" is "full"
6287 The members of "SheepdogRedundancyErasureCoded" when "type" is
6288 "erasure-coded"
6289
6290 Since: 2.12
6291
6292 BlockdevCreateOptionsSheepdog (Object)
6293
6294 Driver specific image creation options for Sheepdog.
6295
6296 Members:
6297
6298 "location: BlockdevOptionsSheepdog"
6299 Where to store the new image file
6300
6301 "size: int"
6302 Size of the virtual disk in bytes
6303
6304 "backing-file: string" (optional)
6305 File name of a base image
6306
6307 "preallocation: PreallocMode" (optional)
6308 Preallocation mode for the new image (default: off; allowed values:
6309 off, full)
6310
6311 "redundancy: SheepdogRedundancy" (optional)
6312 Redundancy of the image
6313
6314 "object-size: int" (optional)
6315 Object size of the image
6316
6317 Since: 2.12
6318
6319 BlockdevCreateOptionsSsh (Object)
6320
6321 Driver specific image creation options for SSH.
6322
6323 Members:
6324
6325 "location: BlockdevOptionsSsh"
6326 Where to store the new image file
6327
6328 "size: int"
6329 Size of the virtual disk in bytes
6330
6331 Since: 2.12
6332
6333 BlockdevCreateOptionsVdi (Object)
6334
6335 Driver specific image creation options for VDI.
6336
6337 Members:
6338
6339 "file: BlockdevRef"
6340 Node to create the image format on
6341
6342 "size: int"
6343 Size of the virtual disk in bytes
6344
6345 "preallocation: PreallocMode" (optional)
6346 Preallocation mode for the new image (default: off; allowed values:
6347 off, metadata)
6348
6349 Since: 2.12
6350
6351 BlockdevVhdxSubformat (Enum)
6352
6353 Values:
6354
6355 "dynamic"
6356 Growing image file
6357
6358 "fixed"
6359 Preallocated fixed-size image file
6360
6361 Since: 2.12
6362
6363 BlockdevCreateOptionsVhdx (Object)
6364
6365 Driver specific image creation options for vhdx.
6366
6367 Members:
6368
6369 "file: BlockdevRef"
6370 Node to create the image format on
6371
6372 "size: int"
6373 Size of the virtual disk in bytes
6374
6375 "log-size: int" (optional)
6376 Log size in bytes, must be a multiple of 1 MB (default: 1 MB)
6377
6378 "block-size: int" (optional)
6379 Block size in bytes, must be a multiple of 1 MB and not larger than
6380 256 MB (default: automatically choose a block size depending on the
6381 image size)
6382
6383 "subformat: BlockdevVhdxSubformat" (optional)
6384 vhdx subformat (default: dynamic)
6385
6386 "block-state-zero: boolean" (optional)
6387 Force use of payload blocks of type 'ZERO'. Non-standard, but
6388 default. Do not set to 'off' when using 'qemu-img convert' with
6389 subformat=dynamic.
6390
6391 Since: 2.12
6392
6393 BlockdevVpcSubformat (Enum)
6394
6395 Values:
6396
6397 "dynamic"
6398 Growing image file
6399
6400 "fixed"
6401 Preallocated fixed-size image file
6402
6403 Since: 2.12
6404
6405 BlockdevCreateOptionsVpc (Object)
6406
6407 Driver specific image creation options for vpc (VHD).
6408
6409 Members:
6410
6411 "file: BlockdevRef"
6412 Node to create the image format on
6413
6414 "size: int"
6415 Size of the virtual disk in bytes
6416
6417 "subformat: BlockdevVpcSubformat" (optional)
6418 vhdx subformat (default: dynamic)
6419
6420 "force-size: boolean" (optional)
6421 Force use of the exact byte size instead of rounding to the next
6422 size that can be represented in CHS geometry (default: false)
6423
6424 Since: 2.12
6425
6426 BlockdevCreateOptions (Object)
6427
6428 Options for creating an image format on a given node.
6429
6430 Members:
6431
6432 "driver: BlockdevDriver"
6433 block driver to create the image format
6434
6435 The members of "BlockdevCreateOptionsFile" when "driver" is "file"
6436 The members of "BlockdevCreateOptionsGluster" when "driver" is
6437 "gluster"
6438 The members of "BlockdevCreateOptionsLUKS" when "driver" is "luks"
6439 The members of "BlockdevCreateOptionsNfs" when "driver" is "nfs"
6440 The members of "BlockdevCreateOptionsParallels" when "driver" is
6441 "parallels"
6442 The members of "BlockdevCreateOptionsQcow" when "driver" is "qcow"
6443 The members of "BlockdevCreateOptionsQcow2" when "driver" is "qcow2"
6444 The members of "BlockdevCreateOptionsQed" when "driver" is "qed"
6445 The members of "BlockdevCreateOptionsRbd" when "driver" is "rbd"
6446 The members of "BlockdevCreateOptionsSheepdog" when "driver" is
6447 "sheepdog"
6448 The members of "BlockdevCreateOptionsSsh" when "driver" is "ssh"
6449 The members of "BlockdevCreateOptionsVdi" when "driver" is "vdi"
6450 The members of "BlockdevCreateOptionsVhdx" when "driver" is "vhdx"
6451 The members of "BlockdevCreateOptionsVmdk" when "driver" is "vmdk"
6452 The members of "BlockdevCreateOptionsVpc" when "driver" is "vpc"
6453
6454 Since: 2.12
6455
6456 blockdev-create (Command) Starts a job to create an image format on a
6457 given node. The job is automatically finalized, but a manual job-
6458 dismiss is required.
6459
6460 Arguments:
6461
6462 "job-id: string"
6463 Identifier for the newly created job.
6464
6465 "options: BlockdevCreateOptions"
6466 Options for the image creation.
6467
6468 Since: 3.0
6469
6470 BlockdevAmendOptionsLUKS (Object)
6471
6472 Driver specific image amend options for LUKS.
6473
6474 Members:
6475
6476 The members of "QCryptoBlockAmendOptionsLUKS"
6477
6478 Since: 5.1
6479
6480 BlockdevAmendOptionsQcow2 (Object)
6481
6482 Driver specific image amend options for qcow2. For now, only
6483 encryption options can be amended
6484
6485 "encrypt" Encryption options to be amended
6486
6487 Members:
6488
6489 "encrypt: QCryptoBlockAmendOptions" (optional)
6490 Not documented
6491
6492 Since: 5.1
6493
6494 BlockdevAmendOptions (Object)
6495
6496 Options for amending an image format
6497
6498 Members:
6499
6500 "driver: BlockdevDriver"
6501 Block driver of the node to amend.
6502
6503 The members of "BlockdevAmendOptionsLUKS" when "driver" is "luks"
6504 The members of "BlockdevAmendOptionsQcow2" when "driver" is "qcow2"
6505
6506 Since: 5.1
6507
6508 x-blockdev-amend (Command) Starts a job to amend format specific
6509 options of an existing open block device The job is automatically
6510 finalized, but a manual job-dismiss is required.
6511
6512 Arguments:
6513
6514 "job-id: string"
6515 Identifier for the newly created job.
6516
6517 "node-name: string"
6518 Name of the block node to work on
6519
6520 "options: BlockdevAmendOptions"
6521 Options (driver specific)
6522
6523 "force: boolean" (optional)
6524 Allow unsafe operations, format specific For luks that allows erase
6525 of the last active keyslot (permanent loss of data), and
6526 replacement of an active keyslot (possible loss of data if IO error
6527 happens)
6528
6529 Since: 5.1
6530
6531 BlockErrorAction (Enum)
6532
6533 An enumeration of action that has been taken when a DISK I/O occurs
6534
6535 Values:
6536
6537 "ignore"
6538 error has been ignored
6539
6540 "report"
6541 error has been reported to the device
6542
6543 "stop"
6544 error caused VM to be stopped
6545
6546 Since: 2.1
6547
6548 BLOCK_IMAGE_CORRUPTED (Event) Emitted when a disk image is being
6549 marked corrupt. The image can be identified by its device or node name.
6550 The 'device' field is always present for compatibility reasons, but it
6551 can be empty ("") if the image does not have a device name associated.
6552
6553 Arguments:
6554
6555 "device: string"
6556 device name. This is always present for compatibility reasons, but
6557 it can be empty ("") if the image does not have a device name
6558 associated.
6559
6560 "node-name: string" (optional)
6561 node name (Since: 2.4)
6562
6563 "msg: string"
6564 informative message for human consumption, such as the kind of
6565 corruption being detected. It should not be parsed by machine as it
6566 is not guaranteed to be stable
6567
6568 "offset: int" (optional)
6569 if the corruption resulted from an image access, this is the host's
6570 access offset into the image
6571
6572 "size: int" (optional)
6573 if the corruption resulted from an image access, this is the access
6574 size
6575
6576 "fatal: boolean"
6577 if set, the image is marked corrupt and therefore unusable after
6578 this event and must be repaired (Since 2.2; before, every
6579 BLOCK_IMAGE_CORRUPTED event was fatal)
6580
6581 Note: If action is "stop", a STOP event will eventually follow the
6582 BLOCK_IO_ERROR event.
6583
6584 Example:
6585
6586 <- { "event": "BLOCK_IMAGE_CORRUPTED",
6587 "data": { "device": "ide0-hd0", "node-name": "node0",
6588 "msg": "Prevented active L1 table overwrite", "offset": 196608,
6589 "size": 65536 },
6590 "timestamp": { "seconds": 1378126126, "microseconds": 966463 } }
6591
6592 Since: 1.7
6593
6594 BLOCK_IO_ERROR (Event) Emitted when a disk I/O error occurs
6595
6596 Arguments:
6597
6598 "device: string"
6599 device name. This is always present for compatibility reasons, but
6600 it can be empty ("") if the image does not have a device name
6601 associated.
6602
6603 "node-name: string" (optional)
6604 node name. Note that errors may be reported for the root node that
6605 is directly attached to a guest device rather than for the node
6606 where the error occurred. The node name is not present if the drive
6607 is empty. (Since: 2.8)
6608
6609 "operation: IoOperationType"
6610 I/O operation
6611
6612 "action: BlockErrorAction"
6613 action that has been taken
6614
6615 "nospace: boolean" (optional)
6616 true if I/O error was caused due to a no-space condition. This key
6617 is only present if query-block's io-status is present, please see
6618 query-block documentation for more information (since: 2.2)
6619
6620 "reason: string"
6621 human readable string describing the error cause. (This field is a
6622 debugging aid for humans, it should not be parsed by applications)
6623 (since: 2.2)
6624
6625 Note: If action is "stop", a STOP event will eventually follow the
6626 BLOCK_IO_ERROR event
6627
6628 Since: 0.13.0
6629
6630 Example:
6631
6632 <- { "event": "BLOCK_IO_ERROR",
6633 "data": { "device": "ide0-hd1",
6634 "node-name": "#block212",
6635 "operation": "write",
6636 "action": "stop" },
6637 "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
6638
6639 BLOCK_JOB_COMPLETED (Event) Emitted when a block job has completed
6640
6641 Arguments:
6642
6643 "type: JobType"
6644 job type
6645
6646 "device: string"
6647 The job identifier. Originally the device name but other values are
6648 allowed since QEMU 2.7
6649
6650 "len: int"
6651 maximum progress value
6652
6653 "offset: int"
6654 current progress value. On success this is equal to len. On
6655 failure this is less than len
6656
6657 "speed: int"
6658 rate limit, bytes per second
6659
6660 "error: string" (optional)
6661 error message. Only present on failure. This field contains a
6662 human-readable error message. There are no semantics other than
6663 that streaming has failed and clients should not try to interpret
6664 the error string
6665
6666 Since: 1.1
6667
6668 Example:
6669
6670 <- { "event": "BLOCK_JOB_COMPLETED",
6671 "data": { "type": "stream", "device": "virtio-disk0",
6672 "len": 10737418240, "offset": 10737418240,
6673 "speed": 0 },
6674 "timestamp": { "seconds": 1267061043, "microseconds": 959568 } }
6675
6676 BLOCK_JOB_CANCELLED (Event) Emitted when a block job has been
6677 cancelled
6678
6679 Arguments:
6680
6681 "type: JobType"
6682 job type
6683
6684 "device: string"
6685 The job identifier. Originally the device name but other values are
6686 allowed since QEMU 2.7
6687
6688 "len: int"
6689 maximum progress value
6690
6691 "offset: int"
6692 current progress value. On success this is equal to len. On
6693 failure this is less than len
6694
6695 "speed: int"
6696 rate limit, bytes per second
6697
6698 Since: 1.1
6699
6700 Example:
6701
6702 <- { "event": "BLOCK_JOB_CANCELLED",
6703 "data": { "type": "stream", "device": "virtio-disk0",
6704 "len": 10737418240, "offset": 134217728,
6705 "speed": 0 },
6706 "timestamp": { "seconds": 1267061043, "microseconds": 959568 } }
6707
6708 BLOCK_JOB_ERROR (Event) Emitted when a block job encounters an error
6709
6710 Arguments:
6711
6712 "device: string"
6713 The job identifier. Originally the device name but other values are
6714 allowed since QEMU 2.7
6715
6716 "operation: IoOperationType"
6717 I/O operation
6718
6719 "action: BlockErrorAction"
6720 action that has been taken
6721
6722 Since: 1.3
6723
6724 Example:
6725
6726 <- { "event": "BLOCK_JOB_ERROR",
6727 "data": { "device": "ide0-hd1",
6728 "operation": "write",
6729 "action": "stop" },
6730 "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
6731
6732 BLOCK_JOB_READY (Event) Emitted when a block job is ready to complete
6733
6734 Arguments:
6735
6736 "type: JobType"
6737 job type
6738
6739 "device: string"
6740 The job identifier. Originally the device name but other values are
6741 allowed since QEMU 2.7
6742
6743 "len: int"
6744 maximum progress value
6745
6746 "offset: int"
6747 current progress value. On success this is equal to len. On
6748 failure this is less than len
6749
6750 "speed: int"
6751 rate limit, bytes per second
6752
6753 Note: The "ready to complete" status is always reset by a
6754 "BLOCK_JOB_ERROR" event
6755
6756 Since: 1.3
6757
6758 Example:
6759
6760 <- { "event": "BLOCK_JOB_READY",
6761 "data": { "device": "drive0", "type": "mirror", "speed": 0,
6762 "len": 2097152, "offset": 2097152 }
6763 "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
6764
6765 BLOCK_JOB_PENDING (Event) Emitted when a block job is awaiting
6766 explicit authorization to finalize graph changes via
6767 "block-job-finalize". If this job is part of a transaction, it will not
6768 emit this event until the transaction has converged first.
6769
6770 Arguments:
6771
6772 "type: JobType"
6773 job type
6774
6775 "id: string"
6776 The job identifier.
6777
6778 Since: 2.12
6779
6780 Example:
6781
6782 <- { "event": "BLOCK_JOB_WAITING",
6783 "data": { "device": "drive0", "type": "mirror" },
6784 "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
6785
6786 PreallocMode (Enum)
6787
6788 Preallocation mode of QEMU image file
6789
6790 Values:
6791
6792 "off"
6793 no preallocation
6794
6795 "metadata"
6796 preallocate only for metadata
6797
6798 "falloc"
6799 like "full" preallocation but allocate disk space by
6800 posix_fallocate() rather than writing data.
6801
6802 "full"
6803 preallocate all data by writing it to the device to ensure disk
6804 space is really available. This data may or may not be zero,
6805 depending on the image format and storage. "full" preallocation
6806 also sets up metadata correctly.
6807
6808 Since: 2.2
6809
6810 BLOCK_WRITE_THRESHOLD (Event) Emitted when writes on block device
6811 reaches or exceeds the configured write threshold. For thin-provisioned
6812 devices, this means the device should be extended to avoid pausing for
6813 disk exhaustion. The event is one shot. Once triggered, it needs to be
6814 re-registered with another block-set-write-threshold command.
6815
6816 Arguments:
6817
6818 "node-name: string"
6819 graph node name on which the threshold was exceeded.
6820
6821 "amount-exceeded: int"
6822 amount of data which exceeded the threshold, in bytes.
6823
6824 "write-threshold: int"
6825 last configured threshold, in bytes.
6826
6827 Since: 2.3
6828
6829 block-set-write-threshold (Command) Change the write threshold for a
6830 block drive. An event will be delivered if a write to this block drive
6831 crosses the configured threshold. The threshold is an offset, thus
6832 must be non-negative. Default is no write threshold. Setting the
6833 threshold to zero disables it.
6834
6835 This is useful to transparently resize thin-provisioned drives without
6836 the guest OS noticing.
6837
6838 Arguments:
6839
6840 "node-name: string"
6841 graph node name on which the threshold must be set.
6842
6843 "write-threshold: int"
6844 configured threshold for the block device, bytes. Use 0 to disable
6845 the threshold.
6846
6847 Since: 2.3
6848
6849 Example:
6850
6851 -> { "execute": "block-set-write-threshold",
6852 "arguments": { "node-name": "mydev",
6853 "write-threshold": 17179869184 } }
6854 <- { "return": {} }
6855
6856 x-blockdev-change (Command) Dynamically reconfigure the block driver
6857 state graph. It can be used to add, remove, insert or replace a graph
6858 node. Currently only the Quorum driver implements this feature to add
6859 or remove its child. This is useful to fix a broken quorum child.
6860
6861 If "node" is specified, it will be inserted under "parent". "child" may
6862 not be specified in this case. If both "parent" and "child" are
6863 specified but "node" is not, "child" will be detached from "parent".
6864
6865 Arguments:
6866
6867 "parent: string"
6868 the id or name of the parent node.
6869
6870 "child: string" (optional)
6871 the name of a child under the given parent node.
6872
6873 "node: string" (optional)
6874 the name of the node that will be added.
6875
6876 Note: this command is experimental, and its API is not stable. It does
6877 not support all kinds of operations, all kinds of children, nor all
6878 block drivers.
6879
6880 FIXME Removing children from a quorum node means introducing gaps in
6881 the child indices. This cannot be represented in the 'children' list of
6882 BlockdevOptionsQuorum, as returned by .bdrv_refresh_filename().
6883
6884 Warning: The data in a new quorum child MUST be consistent with that of
6885 the rest of the array.
6886
6887 Since: 2.7
6888
6889 Example:
6890
6891 1. Add a new node to a quorum
6892 -> { "execute": "blockdev-add",
6893 "arguments": {
6894 "driver": "raw",
6895 "node-name": "new_node",
6896 "file": { "driver": "file",
6897 "filename": "test.raw" } } }
6898 <- { "return": {} }
6899 -> { "execute": "x-blockdev-change",
6900 "arguments": { "parent": "disk1",
6901 "node": "new_node" } }
6902 <- { "return": {} }
6903
6904 2. Delete a quorum's node
6905 -> { "execute": "x-blockdev-change",
6906 "arguments": { "parent": "disk1",
6907 "child": "children.1" } }
6908 <- { "return": {} }
6909
6910 x-blockdev-set-iothread (Command) Move "node" and its children into
6911 the "iothread". If "iothread" is null then move "node" and its
6912 children into the main loop.
6913
6914 The node must not be attached to a BlockBackend.
6915
6916 Arguments:
6917
6918 "node-name: string"
6919 the name of the block driver node
6920
6921 "iothread: StrOrNull"
6922 the name of the IOThread object or null for the main loop
6923
6924 "force: boolean" (optional)
6925 true if the node and its children should be moved when a
6926 BlockBackend is already attached
6927
6928 Note: this command is experimental and intended for test cases that
6929 need control over IOThreads only.
6930
6931 Since: 2.12
6932
6933 Example:
6934
6935 1. Move a node into an IOThread
6936 -> { "execute": "x-blockdev-set-iothread",
6937 "arguments": { "node-name": "disk1",
6938 "iothread": "iothread0" } }
6939 <- { "return": {} }
6940
6941 2. Move a node into the main loop
6942 -> { "execute": "x-blockdev-set-iothread",
6943 "arguments": { "node-name": "disk1",
6944 "iothread": null } }
6945 <- { "return": {} }
6946
6947 NbdServerOptions (Object)
6948
6949 Members:
6950
6951 "addr: SocketAddress"
6952 Address on which to listen.
6953
6954 "tls-creds: string" (optional)
6955 ID of the TLS credentials object (since 2.6).
6956
6957 "tls-authz: string" (optional)
6958 ID of the QAuthZ authorization object used to validate the client's
6959 x509 distinguished name. This object is is only resolved at time of
6960 use, so can be deleted and recreated on the fly while the NBD
6961 server is active. If missing, it will default to denying access
6962 (since 4.0).
6963
6964 Keep this type consistent with the nbd-server-start arguments. The only
6965 intended difference is using SocketAddress instead of
6966 SocketAddressLegacy.
6967
6968 Since: 4.2
6969
6970 nbd-server-start (Command) Start an NBD server listening on the given
6971 host and port. Block devices can then be exported using
6972 "nbd-server-add". The NBD server will present them as named exports;
6973 for example, another QEMU instance could refer to them as
6974 "nbd:HOST:PORT:exportname=NAME".
6975
6976 Arguments:
6977
6978 "addr: SocketAddressLegacy"
6979 Address on which to listen.
6980
6981 "tls-creds: string" (optional)
6982 ID of the TLS credentials object (since 2.6).
6983
6984 "tls-authz: string" (optional)
6985 ID of the QAuthZ authorization object used to validate the client's
6986 x509 distinguished name. This object is is only resolved at time of
6987 use, so can be deleted and recreated on the fly while the NBD
6988 server is active. If missing, it will default to denying access
6989 (since 4.0).
6990
6991 Returns: error if the server is already running.
6992
6993 Keep this type consistent with the NbdServerOptions type. The only
6994 intended difference is using SocketAddressLegacy instead of
6995 SocketAddress.
6996
6997 Since: 1.3.0
6998
6999 BlockExportNbd (Object)
7000
7001 An NBD block export.
7002
7003 Members:
7004
7005 "device: string"
7006 The device name or node name of the node to be exported
7007
7008 "name: string" (optional)
7009 Export name. If unspecified, the "device" parameter is used as the
7010 export name. (Since 2.12)
7011
7012 "description: string" (optional)
7013 Free-form description of the export, up to 4096 bytes. (Since 5.0)
7014
7015 "writable: boolean" (optional)
7016 Whether clients should be able to write to the device via the NBD
7017 connection (default false).
7018
7019 "bitmap: string" (optional)
7020 Also export the dirty bitmap reachable from "device", so the NBD
7021 client can use NBD_OPT_SET_META_CONTEXT with
7022 "qemu:dirty-bitmap:NAME" to inspect the bitmap. (since 4.0)
7023
7024 Since: 5.0
7025
7026 nbd-server-add (Command) Export a block node to QEMU's embedded NBD
7027 server.
7028
7029 Arguments: the members of "BlockExportNbd"
7030
7031 Returns: error if the server is not running, or export with the same
7032 name already exists.
7033
7034 Since: 1.3.0
7035
7036 NbdServerRemoveMode (Enum)
7037
7038 Mode for removing an NBD export.
7039
7040 Values:
7041
7042 "safe"
7043 Remove export if there are no existing connections, fail otherwise.
7044
7045 "hard"
7046 Drop all connections immediately and remove export.
7047
7048 Potential additional modes to be added in the future:
7049
7050 hide: Just hide export from new clients, leave existing connections as
7051 is. Remove export after all clients are disconnected.
7052
7053 soft: Hide export from new clients, answer with ESHUTDOWN for all
7054 further requests from existing clients.
7055
7056 Since: 2.12
7057
7058 nbd-server-remove (Command) Remove NBD export by name.
7059
7060 Arguments:
7061
7062 "name: string"
7063 Export name.
7064
7065 "mode: NbdServerRemoveMode" (optional)
7066 Mode of command operation. See "NbdServerRemoveMode" description.
7067 Default is 'safe'.
7068
7069 Returns: error if
7070
7071 - the server is not running
7072
7073 - export is not found
7074
7075 - mode is 'safe' and there are existing connections
7076
7077 Since: 2.12
7078
7079 nbd-server-stop (Command) Stop QEMU's embedded NBD server, and
7080 unregister all devices previously added via "nbd-server-add".
7081
7082 Since: 1.3.0
7083
7084 BlockExportType (Enum)
7085
7086 An enumeration of block export types
7087
7088 Values:
7089
7090 "nbd"
7091 NBD export
7092
7093 Since: 4.2
7094
7095 BlockExport (Object)
7096
7097 Describes a block export, i.e. how single node should be exported on an
7098 external interface.
7099
7100 Members:
7101
7102 "type: BlockExportType"
7103 Not documented
7104
7105 The members of "BlockExportNbd" when "type" is "nbd"
7106
7107 Since: 4.2
7108
7109 QuorumOpType (Enum)
7110
7111 An enumeration of the quorum operation types
7112
7113 Values:
7114
7115 "read"
7116 read operation
7117
7118 "write"
7119 write operation
7120
7121 "flush"
7122 flush operation
7123
7124 Since: 2.6
7125
7126 QUORUM_FAILURE (Event) Emitted by the Quorum block driver if it fails
7127 to establish a quorum
7128
7129 Arguments:
7130
7131 "reference: string"
7132 device name if defined else node name
7133
7134 "sector-num: int"
7135 number of the first sector of the failed read operation
7136
7137 "sectors-count: int"
7138 failed read operation sector count
7139
7140 Note: This event is rate-limited.
7141
7142 Since: 2.0
7143
7144 Example:
7145
7146 <- { "event": "QUORUM_FAILURE",
7147 "data": { "reference": "usr1", "sector-num": 345435, "sectors-count": 5 },
7148 "timestamp": { "seconds": 1344522075, "microseconds": 745528 } }
7149
7150 QUORUM_REPORT_BAD (Event) Emitted to report a corruption of a Quorum
7151 file
7152
7153 Arguments:
7154
7155 "type: QuorumOpType"
7156 quorum operation type (Since 2.6)
7157
7158 "error: string" (optional)
7159 error message. Only present on failure. This field contains a
7160 human-readable error message. There are no semantics other than
7161 that the block layer reported an error and clients should not try
7162 to interpret the error string.
7163
7164 "node-name: string"
7165 the graph node name of the block driver state
7166
7167 "sector-num: int"
7168 number of the first sector of the failed read operation
7169
7170 "sectors-count: int"
7171 failed read operation sector count
7172
7173 Note: This event is rate-limited.
7174
7175 Since: 2.0
7176
7177 Example:
7178
7179 1. Read operation
7180
7181 { "event": "QUORUM_REPORT_BAD",
7182 "data": { "node-name": "node0", "sector-num": 345435, "sectors-count": 5,
7183 "type": "read" },
7184 "timestamp": { "seconds": 1344522075, "microseconds": 745528 } }
7185
7186 2. Flush operation
7187
7188 { "event": "QUORUM_REPORT_BAD",
7189 "data": { "node-name": "node0", "sector-num": 0, "sectors-count": 2097120,
7190 "type": "flush", "error": "Broken pipe" },
7191 "timestamp": { "seconds": 1456406829, "microseconds": 291763 } }
7192
7193 BlockdevSnapshotInternal (Object)
7194
7195 Members:
7196
7197 "device: string"
7198 the device name or node-name of a root node to generate the
7199 snapshot from
7200
7201 "name: string"
7202 the name of the internal snapshot to be created
7203
7204 Notes: In transaction, if "name" is empty, or any snapshot matching
7205 "name" exists, the operation will fail. Only some image formats support
7206 it, for example, qcow2, rbd, and sheepdog.
7207
7208 Since: 1.7
7209
7210 blockdev-snapshot-internal-sync (Command) Synchronously take an
7211 internal snapshot of a block device, when the format of the image used
7212 supports it. If the name is an empty string, or a snapshot with name
7213 already exists, the operation will fail.
7214
7215 For the arguments, see the documentation of BlockdevSnapshotInternal.
7216
7217 Returns:
7218
7219 - nothing on success
7220
7221 - If "device" is not a valid block device, GenericError
7222
7223 - If any snapshot matching "name" exists, or "name" is empty,
7224 GenericError
7225
7226 - If the format of the image used does not support it,
7227 BlockFormatFeatureNotSupported
7228
7229 Since: 1.7
7230
7231 Example:
7232
7233 -> { "execute": "blockdev-snapshot-internal-sync",
7234 "arguments": { "device": "ide-hd0",
7235 "name": "snapshot0" }
7236 }
7237 <- { "return": {} }
7238
7239 blockdev-snapshot-delete-internal-sync (Command) Synchronously delete
7240 an internal snapshot of a block device, when the format of the image
7241 used support it. The snapshot is identified by name or id or both. One
7242 of the name or id is required. Return SnapshotInfo for the successfully
7243 deleted snapshot.
7244
7245 Arguments:
7246
7247 "device: string"
7248 the device name or node-name of a root node to delete the snapshot
7249 from
7250
7251 "id: string" (optional)
7252 optional the snapshot's ID to be deleted
7253
7254 "name: string" (optional)
7255 optional the snapshot's name to be deleted
7256
7257 Returns:
7258
7259 - SnapshotInfo on success
7260
7261 - If "device" is not a valid block device, GenericError
7262
7263 - If snapshot not found, GenericError
7264
7265 - If the format of the image used does not support it,
7266 BlockFormatFeatureNotSupported
7267
7268 - If "id" and "name" are both not specified, GenericError
7269
7270 Since: 1.7
7271
7272 Example:
7273
7274 -> { "execute": "blockdev-snapshot-delete-internal-sync",
7275 "arguments": { "device": "ide-hd0",
7276 "name": "snapshot0" }
7277 }
7278 <- { "return": {
7279 "id": "1",
7280 "name": "snapshot0",
7281 "vm-state-size": 0,
7282 "date-sec": 1000012,
7283 "date-nsec": 10,
7284 "vm-clock-sec": 100,
7285 "vm-clock-nsec": 20
7286 }
7287 }
7288
7289 Additional block stuff (VM related)
7290
7291 BiosAtaTranslation (Enum)
7292
7293 Policy that BIOS should use to interpret cylinder/head/sector
7294 addresses. Note that Bochs BIOS and SeaBIOS will not actually
7295 translate logical CHS to physical; instead, they will use logical block
7296 addressing.
7297
7298 Values:
7299
7300 "auto"
7301 If cylinder/heads/sizes are passed, choose between none and LBA
7302 depending on the size of the disk. If they are not passed, choose
7303 none if QEMU can guess that the disk had 16 or fewer heads, large
7304 if QEMU can guess that the disk had 131072 or fewer tracks across
7305 all heads (i.e. cylinders*heads<131072), otherwise LBA.
7306
7307 "none"
7308 The physical disk geometry is equal to the logical geometry.
7309
7310 "lba"
7311 Assume 63 sectors per track and one of 16, 32, 64, 128 or 255 heads
7312 (if fewer than 255 are enough to cover the whole disk with 1024
7313 cylinders/head). The number of cylinders/head is then computed
7314 based on the number of sectors and heads.
7315
7316 "large"
7317 The number of cylinders per head is scaled down to 1024 by
7318 correspondingly scaling up the number of heads.
7319
7320 "rechs"
7321 Same as "large", but first convert a 16-head geometry to 15-head,
7322 by proportionally scaling up the number of cylinders/head.
7323
7324 Since: 2.0
7325
7326 FloppyDriveType (Enum)
7327
7328 Type of Floppy drive to be emulated by the Floppy Disk Controller.
7329
7330 Values:
7331
7332 144 1.44MB 3.5" drive
7333
7334 288 2.88MB 3.5" drive
7335
7336 120 1.2MB 5.25" drive
7337
7338 "none"
7339 No drive connected
7340
7341 "auto"
7342 Automatically determined by inserted media at boot
7343
7344 Since: 2.6
7345
7346 PRManagerInfo (Object)
7347
7348 Information about a persistent reservation manager
7349
7350 Members:
7351
7352 "id: string"
7353 the identifier of the persistent reservation manager
7354
7355 "connected: boolean"
7356 true if the persistent reservation manager is connected to the
7357 underlying storage or helper
7358
7359 Since: 3.0
7360
7361 query-pr-managers (Command) Returns a list of information about each
7362 persistent reservation manager.
7363
7364 Returns: a list of "PRManagerInfo" for each persistent reservation
7365 manager
7366
7367 Since: 3.0
7368
7369 eject (Command) Ejects the medium from a removable drive.
7370
7371 Arguments:
7372
7373 "device: string" (optional)
7374 Block device name
7375
7376 "id: string" (optional)
7377 The name or QOM path of the guest device (since: 2.8)
7378
7379 "force: boolean" (optional)
7380 If true, eject regardless of whether the drive is locked. If not
7381 specified, the default value is false.
7382
7383 Features:
7384
7385 "deprecated"
7386 Member "device" is deprecated. Use "id" instead.
7387
7388 Returns:
7389
7390 - Nothing on success
7391
7392 - If "device" is not a valid block device, DeviceNotFound
7393
7394 Notes: Ejecting a device with no media results in success
7395
7396 Since: 0.14.0
7397
7398 Example:
7399
7400 -> { "execute": "eject", "arguments": { "id": "ide1-0-1" } }
7401 <- { "return": {} }
7402
7403 blockdev-open-tray (Command) Opens a block device's tray. If there is
7404 a block driver state tree inserted as a medium, it will become
7405 inaccessible to the guest (but it will remain associated to the block
7406 device, so closing the tray will make it accessible again).
7407
7408 If the tray was already open before, this will be a no-op.
7409
7410 Once the tray opens, a DEVICE_TRAY_MOVED event is emitted. There are
7411 cases in which no such event will be generated, these include:
7412
7413 - if the guest has locked the tray, "force" is false and the guest
7414 does not respond to the eject request
7415
7416 - if the BlockBackend denoted by "device" does not have a guest
7417 device attached to it
7418
7419 - if the guest device does not have an actual tray
7420
7421 Arguments:
7422
7423 "device: string" (optional)
7424 Block device name
7425
7426 "id: string" (optional)
7427 The name or QOM path of the guest device (since: 2.8)
7428
7429 "force: boolean" (optional)
7430 if false (the default), an eject request will be sent to the guest
7431 if it has locked the tray (and the tray will not be opened
7432 immediately); if true, the tray will be opened regardless of
7433 whether it is locked
7434
7435 Features:
7436
7437 "deprecated"
7438 Member "device" is deprecated. Use "id" instead.
7439
7440 Since: 2.5
7441
7442 Example:
7443
7444 -> { "execute": "blockdev-open-tray",
7445 "arguments": { "id": "ide0-1-0" } }
7446
7447 <- { "timestamp": { "seconds": 1418751016,
7448 "microseconds": 716996 },
7449 "event": "DEVICE_TRAY_MOVED",
7450 "data": { "device": "ide1-cd0",
7451 "id": "ide0-1-0",
7452 "tray-open": true } }
7453
7454 <- { "return": {} }
7455
7456 blockdev-close-tray (Command) Closes a block device's tray. If there
7457 is a block driver state tree associated with the block device (which is
7458 currently ejected), that tree will be loaded as the medium.
7459
7460 If the tray was already closed before, this will be a no-op.
7461
7462 Arguments:
7463
7464 "device: string" (optional)
7465 Block device name
7466
7467 "id: string" (optional)
7468 The name or QOM path of the guest device (since: 2.8)
7469
7470 Features:
7471
7472 "deprecated"
7473 Member "device" is deprecated. Use "id" instead.
7474
7475 Since: 2.5
7476
7477 Example:
7478
7479 -> { "execute": "blockdev-close-tray",
7480 "arguments": { "id": "ide0-1-0" } }
7481
7482 <- { "timestamp": { "seconds": 1418751345,
7483 "microseconds": 272147 },
7484 "event": "DEVICE_TRAY_MOVED",
7485 "data": { "device": "ide1-cd0",
7486 "id": "ide0-1-0",
7487 "tray-open": false } }
7488
7489 <- { "return": {} }
7490
7491 blockdev-remove-medium (Command) Removes a medium (a block driver
7492 state tree) from a block device. That block device's tray must
7493 currently be open (unless there is no attached guest device).
7494
7495 If the tray is open and there is no medium inserted, this will be a no-
7496 op.
7497
7498 Arguments:
7499
7500 "id: string"
7501 The name or QOM path of the guest device
7502
7503 Since: 2.12
7504
7505 Example:
7506
7507 -> { "execute": "blockdev-remove-medium",
7508 "arguments": { "id": "ide0-1-0" } }
7509
7510 <- { "error": { "class": "GenericError",
7511 "desc": "Tray of device 'ide0-1-0' is not open" } }
7512
7513 -> { "execute": "blockdev-open-tray",
7514 "arguments": { "id": "ide0-1-0" } }
7515
7516 <- { "timestamp": { "seconds": 1418751627,
7517 "microseconds": 549958 },
7518 "event": "DEVICE_TRAY_MOVED",
7519 "data": { "device": "ide1-cd0",
7520 "id": "ide0-1-0",
7521 "tray-open": true } }
7522
7523 <- { "return": {} }
7524
7525 -> { "execute": "blockdev-remove-medium",
7526 "arguments": { "id": "ide0-1-0" } }
7527
7528 <- { "return": {} }
7529
7530 blockdev-insert-medium (Command) Inserts a medium (a block driver
7531 state tree) into a block device. That block device's tray must
7532 currently be open (unless there is no attached guest device) and there
7533 must be no medium inserted already.
7534
7535 Arguments:
7536
7537 "id: string"
7538 The name or QOM path of the guest device
7539
7540 "node-name: string"
7541 name of a node in the block driver state graph
7542
7543 Since: 2.12
7544
7545 Example:
7546
7547 -> { "execute": "blockdev-add",
7548 "arguments": {
7549 "node-name": "node0",
7550 "driver": "raw",
7551 "file": { "driver": "file",
7552 "filename": "fedora.iso" } } }
7553 <- { "return": {} }
7554
7555 -> { "execute": "blockdev-insert-medium",
7556 "arguments": { "id": "ide0-1-0",
7557 "node-name": "node0" } }
7558
7559 <- { "return": {} }
7560
7561 BlockdevChangeReadOnlyMode (Enum)
7562
7563 Specifies the new read-only mode of a block device subject to the
7564 "blockdev-change-medium" command.
7565
7566 Values:
7567
7568 "retain"
7569 Retains the current read-only mode
7570
7571 "read-only"
7572 Makes the device read-only
7573
7574 "read-write"
7575 Makes the device writable
7576
7577 Since: 2.3
7578
7579 blockdev-change-medium (Command) Changes the medium inserted into a
7580 block device by ejecting the current medium and loading a new image
7581 file which is inserted as the new medium (this command combines
7582 blockdev-open-tray, blockdev-remove-medium, blockdev-insert-medium and
7583 blockdev-close-tray).
7584
7585 Arguments:
7586
7587 "device: string" (optional)
7588 Block device name
7589
7590 "id: string" (optional)
7591 The name or QOM path of the guest device (since: 2.8)
7592
7593 "filename: string"
7594 filename of the new image to be loaded
7595
7596 "format: string" (optional)
7597 format to open the new image with (defaults to the probed format)
7598
7599 "read-only-mode: BlockdevChangeReadOnlyMode" (optional)
7600 change the read-only mode of the device; defaults to 'retain'
7601
7602 Features:
7603
7604 "deprecated"
7605 Member "device" is deprecated. Use "id" instead.
7606
7607 Since: 2.5
7608
7609 Examples:
7610
7611 1. Change a removable medium
7612
7613 -> { "execute": "blockdev-change-medium",
7614 "arguments": { "id": "ide0-1-0",
7615 "filename": "/srv/images/Fedora-12-x86_64-DVD.iso",
7616 "format": "raw" } }
7617 <- { "return": {} }
7618
7619 2. Load a read-only medium into a writable drive
7620
7621 -> { "execute": "blockdev-change-medium",
7622 "arguments": { "id": "floppyA",
7623 "filename": "/srv/images/ro.img",
7624 "format": "raw",
7625 "read-only-mode": "retain" } }
7626
7627 <- { "error":
7628 { "class": "GenericError",
7629 "desc": "Could not open '/srv/images/ro.img': Permission denied" } }
7630
7631 -> { "execute": "blockdev-change-medium",
7632 "arguments": { "id": "floppyA",
7633 "filename": "/srv/images/ro.img",
7634 "format": "raw",
7635 "read-only-mode": "read-only" } }
7636
7637 <- { "return": {} }
7638
7639 DEVICE_TRAY_MOVED (Event) Emitted whenever the tray of a removable
7640 device is moved by the guest or by HMP/QMP commands
7641
7642 Arguments:
7643
7644 "device: string"
7645 Block device name. This is always present for compatibility
7646 reasons, but it can be empty ("") if the image does not have a
7647 device name associated.
7648
7649 "id: string"
7650 The name or QOM path of the guest device (since 2.8)
7651
7652 "tray-open: boolean"
7653 true if the tray has been opened or false if it has been closed
7654
7655 Since: 1.1
7656
7657 Example:
7658
7659 <- { "event": "DEVICE_TRAY_MOVED",
7660 "data": { "device": "ide1-cd0",
7661 "id": "/machine/unattached/device[22]",
7662 "tray-open": true
7663 },
7664 "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
7665
7666 PR_MANAGER_STATUS_CHANGED (Event) Emitted whenever the connected
7667 status of a persistent reservation manager changes.
7668
7669 Arguments:
7670
7671 "id: string"
7672 The id of the PR manager object
7673
7674 "connected: boolean"
7675 true if the PR manager is connected to a backend
7676
7677 Since: 3.0
7678
7679 Example:
7680
7681 <- { "event": "PR_MANAGER_STATUS_CHANGED",
7682 "data": { "id": "pr-helper0",
7683 "connected": true
7684 },
7685 "timestamp": { "seconds": 1519840375, "microseconds": 450486 } }
7686
7687 block_set_io_throttle (Command) Change I/O throttle limits for a block
7688 drive.
7689
7690 Since QEMU 2.4, each device with I/O limits is member of a throttle
7691 group.
7692
7693 If two or more devices are members of the same group, the limits will
7694 apply to the combined I/O of the whole group in a round-robin fashion.
7695 Therefore, setting new I/O limits to a device will affect the whole
7696 group.
7697
7698 The name of the group can be specified using the 'group' parameter. If
7699 the parameter is unset, it is assumed to be the current group of that
7700 device. If it's not in any group yet, the name of the device will be
7701 used as the name for its group.
7702
7703 The 'group' parameter can also be used to move a device to a different
7704 group. In this case the limits specified in the parameters will be
7705 applied to the new group only.
7706
7707 I/O limits can be disabled by setting all of them to 0. In this case
7708 the device will be removed from its group and the rest of its members
7709 will not be affected. The 'group' parameter is ignored.
7710
7711 Arguments: the members of "BlockIOThrottle"
7712
7713 Returns:
7714
7715 - Nothing on success
7716
7717 - If "device" is not a valid block device, DeviceNotFound
7718
7719 Since: 1.1
7720
7721 Example:
7722
7723 -> { "execute": "block_set_io_throttle",
7724 "arguments": { "id": "virtio-blk-pci0/virtio-backend",
7725 "bps": 0,
7726 "bps_rd": 0,
7727 "bps_wr": 0,
7728 "iops": 512,
7729 "iops_rd": 0,
7730 "iops_wr": 0,
7731 "bps_max": 0,
7732 "bps_rd_max": 0,
7733 "bps_wr_max": 0,
7734 "iops_max": 0,
7735 "iops_rd_max": 0,
7736 "iops_wr_max": 0,
7737 "bps_max_length": 0,
7738 "iops_size": 0 } }
7739 <- { "return": {} }
7740
7741 -> { "execute": "block_set_io_throttle",
7742 "arguments": { "id": "ide0-1-0",
7743 "bps": 1000000,
7744 "bps_rd": 0,
7745 "bps_wr": 0,
7746 "iops": 0,
7747 "iops_rd": 0,
7748 "iops_wr": 0,
7749 "bps_max": 8000000,
7750 "bps_rd_max": 0,
7751 "bps_wr_max": 0,
7752 "iops_max": 0,
7753 "iops_rd_max": 0,
7754 "iops_wr_max": 0,
7755 "bps_max_length": 60,
7756 "iops_size": 0 } }
7757 <- { "return": {} }
7758
7759 block-latency-histogram-set (Command) Manage read, write and flush
7760 latency histograms for the device.
7761
7762 If only "id" parameter is specified, remove all present latency
7763 histograms for the device. Otherwise, add/reset some of (or all)
7764 latency histograms.
7765
7766 Arguments:
7767
7768 "id: string"
7769 The name or QOM path of the guest device.
7770
7771 "boundaries: array of int" (optional)
7772 list of interval boundary values (see description in
7773 BlockLatencyHistogramInfo definition). If specified, all latency
7774 histograms are removed, and empty ones created for all io types
7775 with intervals corresponding to "boundaries" (except for io types,
7776 for which specific boundaries are set through the following
7777 parameters).
7778
7779 "boundaries-read: array of int" (optional)
7780 list of interval boundary values for read latency histogram. If
7781 specified, old read latency histogram is removed, and empty one
7782 created with intervals corresponding to "boundaries-read". The
7783 parameter has higher priority then "boundaries".
7784
7785 "boundaries-write: array of int" (optional)
7786 list of interval boundary values for write latency histogram.
7787
7788 "boundaries-flush: array of int" (optional)
7789 list of interval boundary values for flush latency histogram.
7790
7791 Returns: error if device is not found or any boundary arrays are
7792 invalid.
7793
7794 Since: 4.0
7795
7796 Example:
7797
7798 set new histograms for all io types with intervals
7799 [0, 10), [10, 50), [50, 100), [100, +inf):
7800
7801 -> { "execute": "block-latency-histogram-set",
7802 "arguments": { "id": "drive0",
7803 "boundaries": [10, 50, 100] } }
7804 <- { "return": {} }
7805
7806 Example:
7807
7808 set new histogram only for write, other histograms will remain
7809 not changed (or not created):
7810
7811 -> { "execute": "block-latency-histogram-set",
7812 "arguments": { "id": "drive0",
7813 "boundaries-write": [10, 50, 100] } }
7814 <- { "return": {} }
7815
7816 Example:
7817
7818 set new histograms with the following intervals:
7819 read, flush: [0, 10), [10, 50), [50, 100), [100, +inf)
7820 write: [0, 1000), [1000, 5000), [5000, +inf)
7821
7822 -> { "execute": "block-latency-histogram-set",
7823 "arguments": { "id": "drive0",
7824 "boundaries": [10, 50, 100],
7825 "boundaries-write": [1000, 5000] } }
7826 <- { "return": {} }
7827
7828 Example:
7829
7830 remove all latency histograms:
7831
7832 -> { "execute": "block-latency-histogram-set",
7833 "arguments": { "id": "drive0" } }
7834 <- { "return": {} }
7835
7836 Character devices
7837 ChardevInfo (Object)
7838
7839 Information about a character device.
7840
7841 Members:
7842
7843 "label: string"
7844 the label of the character device
7845
7846 "filename: string"
7847 the filename of the character device
7848
7849 "frontend-open: boolean"
7850 shows whether the frontend device attached to this backend (eg.
7851 with the chardev=... option) is in open or closed state (since 2.1)
7852
7853 Notes: "filename" is encoded using the QEMU command line character
7854 device encoding. See the QEMU man page for details.
7855
7856 Since: 0.14.0
7857
7858 query-chardev (Command) Returns information about current character
7859 devices.
7860
7861 Returns: a list of "ChardevInfo"
7862
7863 Since: 0.14.0
7864
7865 Example:
7866
7867 -> { "execute": "query-chardev" }
7868 <- {
7869 "return": [
7870 {
7871 "label": "charchannel0",
7872 "filename": "unix:/var/lib/libvirt/qemu/seabios.rhel6.agent,server",
7873 "frontend-open": false
7874 },
7875 {
7876 "label": "charmonitor",
7877 "filename": "unix:/var/lib/libvirt/qemu/seabios.rhel6.monitor,server",
7878 "frontend-open": true
7879 },
7880 {
7881 "label": "charserial0",
7882 "filename": "pty:/dev/pts/2",
7883 "frontend-open": true
7884 }
7885 ]
7886 }
7887
7888 ChardevBackendInfo (Object)
7889
7890 Information about a character device backend
7891
7892 Members:
7893
7894 "name: string"
7895 The backend name
7896
7897 Since: 2.0
7898
7899 query-chardev-backends (Command) Returns information about character
7900 device backends.
7901
7902 Returns: a list of "ChardevBackendInfo"
7903
7904 Since: 2.0
7905
7906 Example:
7907
7908 -> { "execute": "query-chardev-backends" }
7909 <- {
7910 "return":[
7911 {
7912 "name":"udp"
7913 },
7914 {
7915 "name":"tcp"
7916 },
7917 {
7918 "name":"unix"
7919 },
7920 {
7921 "name":"spiceport"
7922 }
7923 ]
7924 }
7925
7926 DataFormat (Enum)
7927
7928 An enumeration of data format.
7929
7930 Values:
7931
7932 "utf8"
7933 Data is a UTF-8 string (RFC 3629)
7934
7935 "base64"
7936 Data is Base64 encoded binary (RFC 3548)
7937
7938 Since: 1.4
7939
7940 ringbuf-write (Command) Write to a ring buffer character device.
7941
7942 Arguments:
7943
7944 "device: string"
7945 the ring buffer character device name
7946
7947 "data: string"
7948 data to write
7949
7950 "format: DataFormat" (optional)
7951 data encoding (default 'utf8').
7952
7953 - base64: data must be base64 encoded text. Its binary decoding
7954 gets written.
7955
7956 - utf8: data's UTF-8 encoding is written
7957
7958 - data itself is always Unicode regardless of format, like any
7959 other string.
7960
7961 Returns: Nothing on success
7962
7963 Since: 1.4
7964
7965 Example:
7966
7967 -> { "execute": "ringbuf-write",
7968 "arguments": { "device": "foo",
7969 "data": "abcdefgh",
7970 "format": "utf8" } }
7971 <- { "return": {} }
7972
7973 ringbuf-read (Command) Read from a ring buffer character device.
7974
7975 Arguments:
7976
7977 "device: string"
7978 the ring buffer character device name
7979
7980 "size: int"
7981 how many bytes to read at most
7982
7983 "format: DataFormat" (optional)
7984 data encoding (default 'utf8').
7985
7986 - base64: the data read is returned in base64 encoding.
7987
7988 - utf8: the data read is interpreted as UTF-8. Bug: can screw up
7989 when the buffer contains invalid UTF-8 sequences, NUL
7990 characters, after the ring buffer lost data, and when reading
7991 stops because the size limit is reached.
7992
7993 - The return value is always Unicode regardless of format, like
7994 any other string.
7995
7996 Returns: data read from the device
7997
7998 Since: 1.4
7999
8000 Example:
8001
8002 -> { "execute": "ringbuf-read",
8003 "arguments": { "device": "foo",
8004 "size": 1000,
8005 "format": "utf8" } }
8006 <- { "return": "abcdefgh" }
8007
8008 ChardevCommon (Object)
8009
8010 Configuration shared across all chardev backends
8011
8012 Members:
8013
8014 "logfile: string" (optional)
8015 The name of a logfile to save output
8016
8017 "logappend: boolean" (optional)
8018 true to append instead of truncate (default to false to truncate)
8019
8020 Since: 2.6
8021
8022 ChardevFile (Object)
8023
8024 Configuration info for file chardevs.
8025
8026 Members:
8027
8028 "in: string" (optional)
8029 The name of the input file
8030
8031 "out: string"
8032 The name of the output file
8033
8034 "append: boolean" (optional)
8035 Open the file in append mode (default false to truncate) (Since
8036 2.6)
8037
8038 The members of "ChardevCommon"
8039
8040 Since: 1.4
8041
8042 ChardevHostdev (Object)
8043
8044 Configuration info for device and pipe chardevs.
8045
8046 Members:
8047
8048 "device: string"
8049 The name of the special file for the device, i.e. /dev/ttyS0 on
8050 Unix or COM1: on Windows
8051
8052 The members of "ChardevCommon"
8053
8054 Since: 1.4
8055
8056 ChardevSocket (Object)
8057
8058 Configuration info for (stream) socket chardevs.
8059
8060 Members:
8061
8062 "addr: SocketAddressLegacy"
8063 socket address to listen on (server=true) or connect to
8064 (server=false)
8065
8066 "tls-creds: string" (optional)
8067 the ID of the TLS credentials object (since 2.6)
8068
8069 "tls-authz: string" (optional)
8070 the ID of the QAuthZ authorization object against which the
8071 client's x509 distinguished name will be validated. This object is
8072 only resolved at time of use, so can be deleted and recreated on
8073 the fly while the chardev server is active. If missing, it will
8074 default to denying access (since 4.0)
8075
8076 "server: boolean" (optional)
8077 create server socket (default: true)
8078
8079 "wait: boolean" (optional)
8080 wait for incoming connection on server sockets (default: false).
8081 Silently ignored with server: false. This use is deprecated.
8082
8083 "nodelay: boolean" (optional)
8084 set TCP_NODELAY socket option (default: false)
8085
8086 "telnet: boolean" (optional)
8087 enable telnet protocol on server sockets (default: false)
8088
8089 "tn3270: boolean" (optional)
8090 enable tn3270 protocol on server sockets (default: false) (Since:
8091 2.10)
8092
8093 "websocket: boolean" (optional)
8094 enable websocket protocol on server sockets (default: false)
8095 (Since: 3.1)
8096
8097 "reconnect: int" (optional)
8098 For a client socket, if a socket is disconnected, then attempt a
8099 reconnect after the given number of seconds. Setting this to zero
8100 disables this function. (default: 0) (Since: 2.2)
8101
8102 The members of "ChardevCommon"
8103
8104 Since: 1.4
8105
8106 ChardevUdp (Object)
8107
8108 Configuration info for datagram socket chardevs.
8109
8110 Members:
8111
8112 "remote: SocketAddressLegacy"
8113 remote address
8114
8115 "local: SocketAddressLegacy" (optional)
8116 local address
8117
8118 The members of "ChardevCommon"
8119
8120 Since: 1.5
8121
8122 ChardevMux (Object)
8123
8124 Configuration info for mux chardevs.
8125
8126 Members:
8127
8128 "chardev: string"
8129 name of the base chardev.
8130
8131 The members of "ChardevCommon"
8132
8133 Since: 1.5
8134
8135 ChardevStdio (Object)
8136
8137 Configuration info for stdio chardevs.
8138
8139 Members:
8140
8141 "signal: boolean" (optional)
8142 Allow signals (such as SIGINT triggered by ^C) be delivered to
8143 qemu. Default: true in -nographic mode, false otherwise.
8144
8145 The members of "ChardevCommon"
8146
8147 Since: 1.5
8148
8149 ChardevSpiceChannel (Object)
8150
8151 Configuration info for spice vm channel chardevs.
8152
8153 Members:
8154
8155 "type: string"
8156 kind of channel (for example vdagent).
8157
8158 The members of "ChardevCommon"
8159
8160 Since: 1.5
8161
8162 If: "defined(CONFIG_SPICE)"
8163
8164 ChardevSpicePort (Object)
8165
8166 Configuration info for spice port chardevs.
8167
8168 Members:
8169
8170 "fqdn: string"
8171 name of the channel (see docs/spice-port-fqdn.txt)
8172
8173 The members of "ChardevCommon"
8174
8175 Since: 1.5
8176
8177 If: "defined(CONFIG_SPICE)"
8178
8179 ChardevVC (Object)
8180
8181 Configuration info for virtual console chardevs.
8182
8183 Members:
8184
8185 "width: int" (optional)
8186 console width, in pixels
8187
8188 "height: int" (optional)
8189 console height, in pixels
8190
8191 "cols: int" (optional)
8192 console width, in chars
8193
8194 "rows: int" (optional)
8195 console height, in chars
8196
8197 The members of "ChardevCommon"
8198
8199 Since: 1.5
8200
8201 ChardevRingbuf (Object)
8202
8203 Configuration info for ring buffer chardevs.
8204
8205 Members:
8206
8207 "size: int" (optional)
8208 ring buffer size, must be power of two, default is 65536
8209
8210 The members of "ChardevCommon"
8211
8212 Since: 1.5
8213
8214 ChardevBackend (Object)
8215
8216 Configuration info for the new chardev backend.
8217
8218 Members:
8219
8220 "type"
8221 One of "file", "serial", "parallel", "pipe", "socket", "udp",
8222 "pty", "null", "mux", "msmouse", "wctablet", "braille", "testdev",
8223 "stdio", "console", "spicevmc", "spiceport", "vc", "ringbuf",
8224 "memory"
8225
8226 "data: ChardevFile" when "type" is "file"
8227 "data: ChardevHostdev" when "type" is "serial"
8228 "data: ChardevHostdev" when "type" is "parallel"
8229 "data: ChardevHostdev" when "type" is "pipe"
8230 "data: ChardevSocket" when "type" is "socket"
8231 "data: ChardevUdp" when "type" is "udp"
8232 "data: ChardevCommon" when "type" is "pty"
8233 "data: ChardevCommon" when "type" is "null"
8234 "data: ChardevMux" when "type" is "mux"
8235 "data: ChardevCommon" when "type" is "msmouse"
8236 "data: ChardevCommon" when "type" is "wctablet"
8237 "data: ChardevCommon" when "type" is "braille"
8238 "data: ChardevCommon" when "type" is "testdev"
8239 "data: ChardevStdio" when "type" is "stdio"
8240 "data: ChardevCommon" when "type" is "console"
8241 "data: ChardevSpiceChannel" when "type" is "spicevmc" (If:
8242 "defined(CONFIG_SPICE)")
8243 "data: ChardevSpicePort" when "type" is "spiceport" (If:
8244 "defined(CONFIG_SPICE)")
8245 "data: ChardevVC" when "type" is "vc"
8246 "data: ChardevRingbuf" when "type" is "ringbuf"
8247 "data: ChardevRingbuf" when "type" is "memory"
8248
8249 Since: 1.4 (testdev since 2.2, wctablet since 2.9)
8250
8251 ChardevReturn (Object)
8252
8253 Return info about the chardev backend just created.
8254
8255 Members:
8256
8257 "pty: string" (optional)
8258 name of the slave pseudoterminal device, present if and only if a
8259 chardev of type 'pty' was created
8260
8261 Since: 1.4
8262
8263 chardev-add (Command) Add a character device backend
8264
8265 Arguments:
8266
8267 "id: string"
8268 the chardev's ID, must be unique
8269
8270 "backend: ChardevBackend"
8271 backend type and parameters
8272
8273 Returns: ChardevReturn.
8274
8275 Since: 1.4
8276
8277 Example:
8278
8279 -> { "execute" : "chardev-add",
8280 "arguments" : { "id" : "foo",
8281 "backend" : { "type" : "null", "data" : {} } } }
8282 <- { "return": {} }
8283
8284 -> { "execute" : "chardev-add",
8285 "arguments" : { "id" : "bar",
8286 "backend" : { "type" : "file",
8287 "data" : { "out" : "/tmp/bar.log" } } } }
8288 <- { "return": {} }
8289
8290 -> { "execute" : "chardev-add",
8291 "arguments" : { "id" : "baz",
8292 "backend" : { "type" : "pty", "data" : {} } } }
8293 <- { "return": { "pty" : "/dev/pty/42" } }
8294
8295 chardev-change (Command) Change a character device backend
8296
8297 Arguments:
8298
8299 "id: string"
8300 the chardev's ID, must exist
8301
8302 "backend: ChardevBackend"
8303 new backend type and parameters
8304
8305 Returns: ChardevReturn.
8306
8307 Since: 2.10
8308
8309 Example:
8310
8311 -> { "execute" : "chardev-change",
8312 "arguments" : { "id" : "baz",
8313 "backend" : { "type" : "pty", "data" : {} } } }
8314 <- { "return": { "pty" : "/dev/pty/42" } }
8315
8316 -> {"execute" : "chardev-change",
8317 "arguments" : {
8318 "id" : "charchannel2",
8319 "backend" : {
8320 "type" : "socket",
8321 "data" : {
8322 "addr" : {
8323 "type" : "unix" ,
8324 "data" : {
8325 "path" : "/tmp/charchannel2.socket"
8326 }
8327 },
8328 "server" : true,
8329 "wait" : false }}}}
8330 <- {"return": {}}
8331
8332 chardev-remove (Command) Remove a character device backend
8333
8334 Arguments:
8335
8336 "id: string"
8337 the chardev's ID, must exist and not be in use
8338
8339 Returns: Nothing on success
8340
8341 Since: 1.4
8342
8343 Example:
8344
8345 -> { "execute": "chardev-remove", "arguments": { "id" : "foo" } }
8346 <- { "return": {} }
8347
8348 chardev-send-break (Command) Send a break to a character device
8349
8350 Arguments:
8351
8352 "id: string"
8353 the chardev's ID, must exist
8354
8355 Returns: Nothing on success
8356
8357 Since: 2.10
8358
8359 Example:
8360
8361 -> { "execute": "chardev-send-break", "arguments": { "id" : "foo" } }
8362 <- { "return": {} }
8363
8364 VSERPORT_CHANGE (Event) Emitted when the guest opens or closes a
8365 virtio-serial port.
8366
8367 Arguments:
8368
8369 "id: string"
8370 device identifier of the virtio-serial port
8371
8372 "open: boolean"
8373 true if the guest has opened the virtio-serial port
8374
8375 Since: 2.1
8376
8377 Example:
8378
8379 <- { "event": "VSERPORT_CHANGE",
8380 "data": { "id": "channel0", "open": true },
8381 "timestamp": { "seconds": 1401385907, "microseconds": 422329 } }
8382
8383 Dump guest memory
8384 DumpGuestMemoryFormat (Enum)
8385
8386 An enumeration of guest-memory-dump's format.
8387
8388 Values:
8389
8390 "elf"
8391 elf format
8392
8393 "kdump-zlib"
8394 kdump-compressed format with zlib-compressed
8395
8396 "kdump-lzo"
8397 kdump-compressed format with lzo-compressed
8398
8399 "kdump-snappy"
8400 kdump-compressed format with snappy-compressed
8401
8402 "win-dmp"
8403 Windows full crashdump format, can be used instead of ELF
8404 converting (since 2.13)
8405
8406 Since: 2.0
8407
8408 dump-guest-memory (Command) Dump guest's memory to vmcore. It is a
8409 synchronous operation that can take very long depending on the amount
8410 of guest memory.
8411
8412 Arguments:
8413
8414 "paging: boolean"
8415 if true, do paging to get guest's memory mapping. This allows using
8416 gdb to process the core file.
8417
8418 IMPORTANT: this option can make QEMU allocate several gigabytes of
8419 RAM. This can happen for a large guest, or a malicious guest
8420 pretending to be large.
8421
8422 Also, paging=true has the following limitations:
8423
8424 1. The guest may be in a catastrophic state or can have corrupted
8425 memory, which cannot be trusted
8426
8427 2. The guest can be in real-mode even if paging is enabled. For
8428 example, the guest uses ACPI to sleep, and ACPI sleep state
8429 goes in real-mode
8430
8431 3. Currently only supported on i386 and x86_64.
8432
8433 "protocol: string"
8434 the filename or file descriptor of the vmcore. The supported
8435 protocols are:
8436
8437 1. file: the protocol starts with "file:", and the following
8438 string is the file's path.
8439
8440 2. fd: the protocol starts with "fd:", and the following string is
8441 the fd's name.
8442
8443 "detach: boolean" (optional)
8444 if true, QMP will return immediately rather than waiting for the
8445 dump to finish. The user can track progress using "query-dump".
8446 (since 2.6).
8447
8448 "begin: int" (optional)
8449 if specified, the starting physical address.
8450
8451 "length: int" (optional)
8452 if specified, the memory size, in bytes. If you don't want to dump
8453 all guest's memory, please specify the start "begin" and "length"
8454
8455 "format: DumpGuestMemoryFormat" (optional)
8456 if specified, the format of guest memory dump. But non-elf format
8457 is conflict with paging and filter, ie. "paging", "begin" and
8458 "length" is not allowed to be specified with non-elf "format" at
8459 the same time (since 2.0)
8460
8461 Note: All boolean arguments default to false
8462
8463 Returns: nothing on success
8464
8465 Since: 1.2
8466
8467 Example:
8468
8469 -> { "execute": "dump-guest-memory",
8470 "arguments": { "protocol": "fd:dump" } }
8471 <- { "return": {} }
8472
8473 DumpStatus (Enum)
8474
8475 Describe the status of a long-running background guest memory dump.
8476
8477 Values:
8478
8479 "none"
8480 no dump-guest-memory has started yet.
8481
8482 "active"
8483 there is one dump running in background.
8484
8485 "completed"
8486 the last dump has finished successfully.
8487
8488 "failed"
8489 the last dump has failed.
8490
8491 Since: 2.6
8492
8493 DumpQueryResult (Object)
8494
8495 The result format for 'query-dump'.
8496
8497 Members:
8498
8499 "status: DumpStatus"
8500 enum of "DumpStatus", which shows current dump status
8501
8502 "completed: int"
8503 bytes written in latest dump (uncompressed)
8504
8505 "total: int"
8506 total bytes to be written in latest dump (uncompressed)
8507
8508 Since: 2.6
8509
8510 query-dump (Command) Query latest dump status.
8511
8512 Returns: A "DumpStatus" object showing the dump status.
8513
8514 Since: 2.6
8515
8516 Example:
8517
8518 -> { "execute": "query-dump" }
8519 <- { "return": { "status": "active", "completed": 1024000,
8520 "total": 2048000 } }
8521
8522 DUMP_COMPLETED (Event) Emitted when background dump has completed
8523
8524 Arguments:
8525
8526 "result: DumpQueryResult"
8527 final dump status
8528
8529 "error: string" (optional)
8530 human-readable error string that provides hint on why dump failed.
8531 Only presents on failure. The user should not try to interpret the
8532 error string.
8533
8534 Since: 2.6
8535
8536 Example:
8537
8538 { "event": "DUMP_COMPLETED",
8539 "data": {"result": {"total": 1090650112, "status": "completed",
8540 "completed": 1090650112} } }
8541
8542 DumpGuestMemoryCapability (Object)
8543
8544 A list of the available formats for dump-guest-memory
8545
8546 Members:
8547
8548 "formats: array of DumpGuestMemoryFormat"
8549 Not documented
8550
8551 Since: 2.0
8552
8553 query-dump-guest-memory-capability (Command) Returns the available
8554 formats for dump-guest-memory
8555
8556 Returns: A "DumpGuestMemoryCapability" object listing available formats
8557 for dump-guest-memory
8558
8559 Since: 2.0
8560
8561 Example:
8562
8563 -> { "execute": "query-dump-guest-memory-capability" }
8564 <- { "return": { "formats":
8565 ["elf", "kdump-zlib", "kdump-lzo", "kdump-snappy"] }
8566
8567 Net devices
8568 set_link (Command) Sets the link status of a virtual network adapter.
8569
8570 Arguments:
8571
8572 "name: string"
8573 the device name of the virtual network adapter
8574
8575 "up: boolean"
8576 true to set the link status to be up
8577
8578 Returns: Nothing on success If "name" is not a valid network device,
8579 DeviceNotFound
8580
8581 Since: 0.14.0
8582
8583 Notes: Not all network adapters support setting link status. This
8584 command will succeed even if the network adapter does not support link
8585 status notification.
8586
8587 Example:
8588
8589 -> { "execute": "set_link",
8590 "arguments": { "name": "e1000.0", "up": false } }
8591 <- { "return": {} }
8592
8593 netdev_add (Command) Add a network backend.
8594
8595 Additional arguments depend on the type.
8596
8597 Arguments: the members of "Netdev"
8598
8599 Since: 0.14.0
8600
8601 Returns: Nothing on success If "type" is not a valid network backend,
8602 DeviceNotFound
8603
8604 Example:
8605
8606 -> { "execute": "netdev_add",
8607 "arguments": { "type": "user", "id": "netdev1",
8608 "dnssearch": "example.org" } }
8609 <- { "return": {} }
8610
8611 netdev_del (Command) Remove a network backend.
8612
8613 Arguments:
8614
8615 "id: string"
8616 the name of the network backend to remove
8617
8618 Returns: Nothing on success If "id" is not a valid network backend,
8619 DeviceNotFound
8620
8621 Since: 0.14.0
8622
8623 Example:
8624
8625 -> { "execute": "netdev_del", "arguments": { "id": "netdev1" } }
8626 <- { "return": {} }
8627
8628 NetLegacyNicOptions (Object)
8629
8630 Create a new Network Interface Card.
8631
8632 Members:
8633
8634 "netdev: string" (optional)
8635 id of -netdev to connect to
8636
8637 "macaddr: string" (optional)
8638 MAC address
8639
8640 "model: string" (optional)
8641 device model (e1000, rtl8139, virtio etc.)
8642
8643 "addr: string" (optional)
8644 PCI device address
8645
8646 "vectors: int" (optional)
8647 number of MSI-x vectors, 0 to disable MSI-X
8648
8649 Since: 1.2
8650
8651 NetdevUserOptions (Object)
8652
8653 Use the user mode network stack which requires no administrator
8654 privilege to run.
8655
8656 Members:
8657
8658 "hostname: string" (optional)
8659 client hostname reported by the builtin DHCP server
8660
8661 "restrict: boolean" (optional)
8662 isolate the guest from the host
8663
8664 "ipv4: boolean" (optional)
8665 whether to support IPv4, default true for enabled (since 2.6)
8666
8667 "ipv6: boolean" (optional)
8668 whether to support IPv6, default true for enabled (since 2.6)
8669
8670 "ip: string" (optional)
8671 legacy parameter, use net= instead
8672
8673 "net: string" (optional)
8674 IP network address that the guest will see, in the form
8675 addr[/netmask] The netmask is optional, and can be either in the
8676 form a.b.c.d or as a number of valid top-most bits. Default is
8677 10.0.2.0/24.
8678
8679 "host: string" (optional)
8680 guest-visible address of the host
8681
8682 "tftp: string" (optional)
8683 root directory of the built-in TFTP server
8684
8685 "bootfile: string" (optional)
8686 BOOTP filename, for use with tftp=
8687
8688 "dhcpstart: string" (optional)
8689 the first of the 16 IPs the built-in DHCP server can assign
8690
8691 "dns: string" (optional)
8692 guest-visible address of the virtual nameserver
8693
8694 "dnssearch: array of String" (optional)
8695 list of DNS suffixes to search, passed as DHCP option to the guest
8696
8697 "domainname: string" (optional)
8698 guest-visible domain name of the virtual nameserver (since 3.0)
8699
8700 "ipv6-prefix: string" (optional)
8701 IPv6 network prefix (default is fec0::) (since 2.6). The network
8702 prefix is given in the usual hexadecimal IPv6 address notation.
8703
8704 "ipv6-prefixlen: int" (optional)
8705 IPv6 network prefix length (default is 64) (since 2.6)
8706
8707 "ipv6-host: string" (optional)
8708 guest-visible IPv6 address of the host (since 2.6)
8709
8710 "ipv6-dns: string" (optional)
8711 guest-visible IPv6 address of the virtual nameserver (since 2.6)
8712
8713 "smb: string" (optional)
8714 root directory of the built-in SMB server
8715
8716 "smbserver: string" (optional)
8717 IP address of the built-in SMB server
8718
8719 "hostfwd: array of String" (optional)
8720 redirect incoming TCP or UDP host connections to guest endpoints
8721
8722 "guestfwd: array of String" (optional)
8723 forward guest TCP connections
8724
8725 "tftp-server-name: string" (optional)
8726 RFC2132 "TFTP server name" string (Since 3.1)
8727
8728 Since: 1.2
8729
8730 NetdevTapOptions (Object)
8731
8732 Used to configure a host TAP network interface backend.
8733
8734 Members:
8735
8736 "ifname: string" (optional)
8737 interface name
8738
8739 "fd: string" (optional)
8740 file descriptor of an already opened tap
8741
8742 "fds: string" (optional)
8743 multiple file descriptors of already opened multiqueue capable tap
8744
8745 "script: string" (optional)
8746 script to initialize the interface
8747
8748 "downscript: string" (optional)
8749 script to shut down the interface
8750
8751 "br: string" (optional)
8752 bridge name (since 2.8)
8753
8754 "helper: string" (optional)
8755 command to execute to configure bridge
8756
8757 "sndbuf: int" (optional)
8758 send buffer limit. Understands [TGMKkb] suffixes.
8759
8760 "vnet_hdr: boolean" (optional)
8761 enable the IFF_VNET_HDR flag on the tap interface
8762
8763 "vhost: boolean" (optional)
8764 enable vhost-net network accelerator
8765
8766 "vhostfd: string" (optional)
8767 file descriptor of an already opened vhost net device
8768
8769 "vhostfds: string" (optional)
8770 file descriptors of multiple already opened vhost net devices
8771
8772 "vhostforce: boolean" (optional)
8773 vhost on for non-MSIX virtio guests
8774
8775 "queues: int" (optional)
8776 number of queues to be created for multiqueue capable tap
8777
8778 "poll-us: int" (optional)
8779 maximum number of microseconds that could be spent on busy polling
8780 for tap (since 2.7)
8781
8782 Since: 1.2
8783
8784 NetdevSocketOptions (Object)
8785
8786 Socket netdevs are used to establish a network connection to another
8787 QEMU virtual machine via a TCP socket.
8788
8789 Members:
8790
8791 "fd: string" (optional)
8792 file descriptor of an already opened socket
8793
8794 "listen: string" (optional)
8795 port number, and optional hostname, to listen on
8796
8797 "connect: string" (optional)
8798 port number, and optional hostname, to connect to
8799
8800 "mcast: string" (optional)
8801 UDP multicast address and port number
8802
8803 "localaddr: string" (optional)
8804 source address and port for multicast and udp packets
8805
8806 "udp: string" (optional)
8807 UDP unicast address and port number
8808
8809 Since: 1.2
8810
8811 NetdevL2TPv3Options (Object)
8812
8813 Configure an Ethernet over L2TPv3 tunnel.
8814
8815 Members:
8816
8817 "src: string"
8818 source address
8819
8820 "dst: string"
8821 destination address
8822
8823 "srcport: string" (optional)
8824 source port - mandatory for udp, optional for ip
8825
8826 "dstport: string" (optional)
8827 destination port - mandatory for udp, optional for ip
8828
8829 "ipv6: boolean" (optional)
8830 force the use of ipv6
8831
8832 "udp: boolean" (optional)
8833 use the udp version of l2tpv3 encapsulation
8834
8835 "cookie64: boolean" (optional)
8836 use 64 bit coookies
8837
8838 "counter: boolean" (optional)
8839 have sequence counter
8840
8841 "pincounter: boolean" (optional)
8842 pin sequence counter to zero - workaround for buggy implementations
8843 or networks with packet reorder
8844
8845 "txcookie: int" (optional)
8846 32 or 64 bit transmit cookie
8847
8848 "rxcookie: int" (optional)
8849 32 or 64 bit receive cookie
8850
8851 "txsession: int"
8852 32 bit transmit session
8853
8854 "rxsession: int" (optional)
8855 32 bit receive session - if not specified set to the same value as
8856 transmit
8857
8858 "offset: int" (optional)
8859 additional offset - allows the insertion of additional application-
8860 specific data before the packet payload
8861
8862 Since: 2.1
8863
8864 NetdevVdeOptions (Object)
8865
8866 Connect to a vde switch running on the host.
8867
8868 Members:
8869
8870 "sock: string" (optional)
8871 socket path
8872
8873 "port: int" (optional)
8874 port number
8875
8876 "group: string" (optional)
8877 group owner of socket
8878
8879 "mode: int" (optional)
8880 permissions for socket
8881
8882 Since: 1.2
8883
8884 NetdevBridgeOptions (Object)
8885
8886 Connect a host TAP network interface to a host bridge device.
8887
8888 Members:
8889
8890 "br: string" (optional)
8891 bridge name
8892
8893 "helper: string" (optional)
8894 command to execute to configure bridge
8895
8896 Since: 1.2
8897
8898 NetdevHubPortOptions (Object)
8899
8900 Connect two or more net clients through a software hub.
8901
8902 Members:
8903
8904 "hubid: int"
8905 hub identifier number
8906
8907 "netdev: string" (optional)
8908 used to connect hub to a netdev instead of a device (since 2.12)
8909
8910 Since: 1.2
8911
8912 NetdevNetmapOptions (Object)
8913
8914 Connect a client to a netmap-enabled NIC or to a VALE switch port
8915
8916 Members:
8917
8918 "ifname: string"
8919 Either the name of an existing network interface supported by
8920 netmap, or the name of a VALE port (created on the fly). A VALE
8921 port name is in the form 'valeXXX:YYY', where XXX and YYY are non-
8922 negative integers. XXX identifies a switch and YYY identifies a
8923 port of the switch. VALE ports having the same XXX are therefore
8924 connected to the same switch.
8925
8926 "devname: string" (optional)
8927 path of the netmap device (default: '/dev/netmap').
8928
8929 Since: 2.0
8930
8931 NetdevVhostUserOptions (Object)
8932
8933 Vhost-user network backend
8934
8935 Members:
8936
8937 "chardev: string"
8938 name of a unix socket chardev
8939
8940 "vhostforce: boolean" (optional)
8941 vhost on for non-MSIX virtio guests (default: false).
8942
8943 "queues: int" (optional)
8944 number of queues to be created for multiqueue vhost-user (default:
8945 1) (Since 2.5)
8946
8947 Since: 2.1
8948
8949 NetdevVhostVDPAOptions (Object)
8950
8951 Vhost-vdpa network backend
8952
8953 vDPA device is a device that uses a datapath which complies with the
8954 virtio specifications with a vendor specific control path.
8955
8956 Members:
8957
8958 "vhostdev: string" (optional)
8959 path of vhost-vdpa device (default:'/dev/vhost-vdpa-0')
8960
8961 "queues: int" (optional)
8962 number of queues to be created for multiqueue vhost-vdpa (default:
8963 1)
8964
8965 Since: 5.1
8966
8967 NetClientDriver (Enum)
8968
8969 Available netdev drivers.
8970
8971 Values:
8972
8973 "none"
8974 Not documented
8975
8976 "nic"
8977 Not documented
8978
8979 "user"
8980 Not documented
8981
8982 "tap"
8983 Not documented
8984
8985 "l2tpv3"
8986 Not documented
8987
8988 "socket"
8989 Not documented
8990
8991 "vde"
8992 Not documented
8993
8994 "bridge"
8995 Not documented
8996
8997 "hubport"
8998 Not documented
8999
9000 "netmap"
9001 Not documented
9002
9003 "vhost-user"
9004 Not documented
9005
9006 "vhost-vdpa"
9007 Not documented
9008
9009 Since: 2.7
9010
9011 "vhost-vdpa" since 5.1
9012
9013 Netdev (Object)
9014
9015 Captures the configuration of a network device.
9016
9017 Members:
9018
9019 "id: string"
9020 identifier for monitor commands.
9021
9022 "type: NetClientDriver"
9023 Specify the driver used for interpreting remaining arguments.
9024
9025 The members of "NetLegacyNicOptions" when "type" is "nic"
9026 The members of "NetdevUserOptions" when "type" is "user"
9027 The members of "NetdevTapOptions" when "type" is "tap"
9028 The members of "NetdevL2TPv3Options" when "type" is "l2tpv3"
9029 The members of "NetdevSocketOptions" when "type" is "socket"
9030 The members of "NetdevVdeOptions" when "type" is "vde"
9031 The members of "NetdevBridgeOptions" when "type" is "bridge"
9032 The members of "NetdevHubPortOptions" when "type" is "hubport"
9033 The members of "NetdevNetmapOptions" when "type" is "netmap"
9034 The members of "NetdevVhostUserOptions" when "type" is "vhost-user"
9035 The members of "NetdevVhostVDPAOptions" when "type" is "vhost-vdpa"
9036
9037 Since: 1.2
9038
9039 'l2tpv3' - since 2.1
9040
9041 NetFilterDirection (Enum)
9042
9043 Indicates whether a netfilter is attached to a netdev's transmit queue
9044 or receive queue or both.
9045
9046 Values:
9047
9048 "all"
9049 the filter is attached both to the receive and the transmit queue
9050 of the netdev (default).
9051
9052 "rx"
9053 the filter is attached to the receive queue of the netdev, where it
9054 will receive packets sent to the netdev.
9055
9056 "tx"
9057 the filter is attached to the transmit queue of the netdev, where
9058 it will receive packets sent by the netdev.
9059
9060 Since: 2.5
9061
9062 RxState (Enum)
9063
9064 Packets receiving state
9065
9066 Values:
9067
9068 "normal"
9069 filter assigned packets according to the mac-table
9070
9071 "none"
9072 don't receive any assigned packet
9073
9074 "all"
9075 receive all assigned packets
9076
9077 Since: 1.6
9078
9079 RxFilterInfo (Object)
9080
9081 Rx-filter information for a NIC.
9082
9083 Members:
9084
9085 "name: string"
9086 net client name
9087
9088 "promiscuous: boolean"
9089 whether promiscuous mode is enabled
9090
9091 "multicast: RxState"
9092 multicast receive state
9093
9094 "unicast: RxState"
9095 unicast receive state
9096
9097 "vlan: RxState"
9098 vlan receive state (Since 2.0)
9099
9100 "broadcast-allowed: boolean"
9101 whether to receive broadcast
9102
9103 "multicast-overflow: boolean"
9104 multicast table is overflowed or not
9105
9106 "unicast-overflow: boolean"
9107 unicast table is overflowed or not
9108
9109 "main-mac: string"
9110 the main macaddr string
9111
9112 "vlan-table: array of int"
9113 a list of active vlan id
9114
9115 "unicast-table: array of string"
9116 a list of unicast macaddr string
9117
9118 "multicast-table: array of string"
9119 a list of multicast macaddr string
9120
9121 Since: 1.6
9122
9123 query-rx-filter (Command) Return rx-filter information for all NICs
9124 (or for the given NIC).
9125
9126 Arguments:
9127
9128 "name: string" (optional)
9129 net client name
9130
9131 Returns: list of "RxFilterInfo" for all NICs (or for the given NIC).
9132 Returns an error if the given "name" doesn't exist, or given NIC
9133 doesn't support rx-filter querying, or given net client isn't a NIC.
9134
9135 Since: 1.6
9136
9137 Example:
9138
9139 -> { "execute": "query-rx-filter", "arguments": { "name": "vnet0" } }
9140 <- { "return": [
9141 {
9142 "promiscuous": true,
9143 "name": "vnet0",
9144 "main-mac": "52:54:00:12:34:56",
9145 "unicast": "normal",
9146 "vlan": "normal",
9147 "vlan-table": [
9148 4,
9149 0
9150 ],
9151 "unicast-table": [
9152 ],
9153 "multicast": "normal",
9154 "multicast-overflow": false,
9155 "unicast-overflow": false,
9156 "multicast-table": [
9157 "01:00:5e:00:00:01",
9158 "33:33:00:00:00:01",
9159 "33:33:ff:12:34:56"
9160 ],
9161 "broadcast-allowed": false
9162 }
9163 ]
9164 }
9165
9166 NIC_RX_FILTER_CHANGED (Event) Emitted once until the 'query-rx-filter'
9167 command is executed, the first event will always be emitted
9168
9169 Arguments:
9170
9171 "name: string" (optional)
9172 net client name
9173
9174 "path: string"
9175 device path
9176
9177 Since: 1.6
9178
9179 Example:
9180
9181 <- { "event": "NIC_RX_FILTER_CHANGED",
9182 "data": { "name": "vnet0",
9183 "path": "/machine/peripheral/vnet0/virtio-backend" },
9184 "timestamp": { "seconds": 1368697518, "microseconds": 326866 } }
9185 }
9186
9187 AnnounceParameters (Object)
9188
9189 Parameters for self-announce timers
9190
9191 Members:
9192
9193 "initial: int"
9194 Initial delay (in ms) before sending the first GARP/RARP
9195 announcement
9196
9197 "max: int"
9198 Maximum delay (in ms) between GARP/RARP announcement packets
9199
9200 "rounds: int"
9201 Number of self-announcement attempts
9202
9203 "step: int"
9204 Delay increase (in ms) after each self-announcement attempt
9205
9206 "interfaces: array of string" (optional)
9207 An optional list of interface names, which restricts the
9208 announcement to the listed interfaces. (Since 4.1)
9209
9210 "id: string" (optional)
9211 A name to be used to identify an instance of announce-timers and to
9212 allow it to modified later. Not for use as part of the migration
9213 parameters. (Since 4.1)
9214
9215 Since: 4.0
9216
9217 announce-self (Command) Trigger generation of broadcast RARP frames to
9218 update network switches. This can be useful when network bonds fail-
9219 over the active slave.
9220
9221 Arguments: the members of "AnnounceParameters"
9222
9223 Example:
9224
9225 -> { "execute": "announce-self",
9226 "arguments": {
9227 "initial": 50, "max": 550, "rounds": 10, "step": 50,
9228 "interfaces": ["vn2", "vn3"], "id": "bob" } }
9229 <- { "return": {} }
9230
9231 Since: 4.0
9232
9233 FAILOVER_NEGOTIATED (Event) Emitted when VIRTIO_NET_F_STANDBY was
9234 enabled during feature negotiation. Failover primary devices which
9235 were hidden (not hotplugged when requested) before will now be
9236 hotplugged by the virtio-net standby device.
9237
9238 device-id: QEMU device id of the unplugged device
9239
9240 Arguments:
9241
9242 "device-id: string"
9243 Not documented
9244
9245 Since: 4.2
9246
9247 Example:
9248
9249 <- { "event": "FAILOVER_NEGOTIATED",
9250 "data": "net1" }
9251
9252 RDMA device
9253 RDMA_GID_STATUS_CHANGED (Event) Emitted when guest driver adds/deletes
9254 GID to/from device
9255
9256 Arguments:
9257
9258 "netdev: string"
9259 RoCE Network Device name
9260
9261 "gid-status: boolean"
9262 Add or delete indication
9263
9264 "subnet-prefix: int"
9265 Subnet Prefix
9266
9267 "interface-id: int"
9268 Not documented
9269
9270 "interface-id" : Interface ID
9271
9272 Since: 4.0
9273
9274 Example:
9275
9276 <- {"timestamp": {"seconds": 1541579657, "microseconds": 986760},
9277 "event": "RDMA_GID_STATUS_CHANGED",
9278 "data":
9279 {"netdev": "bridge0",
9280 "interface-id": 15880512517475447892,
9281 "gid-status": true,
9282 "subnet-prefix": 33022}}
9283
9284 Rocker switch device
9285 RockerSwitch (Object)
9286
9287 Rocker switch information.
9288
9289 Members:
9290
9291 "name: string"
9292 switch name
9293
9294 "id: int"
9295 switch ID
9296
9297 "ports: int"
9298 number of front-panel ports
9299
9300 Since: 2.4
9301
9302 query-rocker (Command) Return rocker switch information.
9303
9304 Arguments:
9305
9306 "name: string"
9307 Not documented
9308
9309 Returns: "Rocker" information
9310
9311 Since: 2.4
9312
9313 Example:
9314
9315 -> { "execute": "query-rocker", "arguments": { "name": "sw1" } }
9316 <- { "return": {"name": "sw1", "ports": 2, "id": 1327446905938}}
9317
9318 RockerPortDuplex (Enum)
9319
9320 An eumeration of port duplex states.
9321
9322 Values:
9323
9324 "half"
9325 half duplex
9326
9327 "full"
9328 full duplex
9329
9330 Since: 2.4
9331
9332 RockerPortAutoneg (Enum)
9333
9334 An eumeration of port autoneg states.
9335
9336 Values:
9337
9338 "off"
9339 autoneg is off
9340
9341 "on"
9342 autoneg is on
9343
9344 Since: 2.4
9345
9346 RockerPort (Object)
9347
9348 Rocker switch port information.
9349
9350 Members:
9351
9352 "name: string"
9353 port name
9354
9355 "enabled: boolean"
9356 port is enabled for I/O
9357
9358 "link-up: boolean"
9359 physical link is UP on port
9360
9361 "speed: int"
9362 port link speed in Mbps
9363
9364 "duplex: RockerPortDuplex"
9365 port link duplex
9366
9367 "autoneg: RockerPortAutoneg"
9368 port link autoneg
9369
9370 Since: 2.4
9371
9372 query-rocker-ports (Command) Return rocker switch port information.
9373
9374 Arguments:
9375
9376 "name: string"
9377 Not documented
9378
9379 Returns: a list of "RockerPort" information
9380
9381 Since: 2.4
9382
9383 Example:
9384
9385 -> { "execute": "query-rocker-ports", "arguments": { "name": "sw1" } }
9386 <- { "return": [ {"duplex": "full", "enabled": true, "name": "sw1.1",
9387 "autoneg": "off", "link-up": true, "speed": 10000},
9388 {"duplex": "full", "enabled": true, "name": "sw1.2",
9389 "autoneg": "off", "link-up": true, "speed": 10000}
9390 ]}
9391
9392 RockerOfDpaFlowKey (Object)
9393
9394 Rocker switch OF-DPA flow key
9395
9396 Members:
9397
9398 "priority: int"
9399 key priority, 0 being lowest priority
9400
9401 "tbl-id: int"
9402 flow table ID
9403
9404 "in-pport: int" (optional)
9405 physical input port
9406
9407 "tunnel-id: int" (optional)
9408 tunnel ID
9409
9410 "vlan-id: int" (optional)
9411 VLAN ID
9412
9413 "eth-type: int" (optional)
9414 Ethernet header type
9415
9416 "eth-src: string" (optional)
9417 Ethernet header source MAC address
9418
9419 "eth-dst: string" (optional)
9420 Ethernet header destination MAC address
9421
9422 "ip-proto: int" (optional)
9423 IP Header protocol field
9424
9425 "ip-tos: int" (optional)
9426 IP header TOS field
9427
9428 "ip-dst: string" (optional)
9429 IP header destination address
9430
9431 Note: optional members may or may not appear in the flow key depending
9432 if they're relevant to the flow key.
9433
9434 Since: 2.4
9435
9436 RockerOfDpaFlowMask (Object)
9437
9438 Rocker switch OF-DPA flow mask
9439
9440 Members:
9441
9442 "in-pport: int" (optional)
9443 physical input port
9444
9445 "tunnel-id: int" (optional)
9446 tunnel ID
9447
9448 "vlan-id: int" (optional)
9449 VLAN ID
9450
9451 "eth-src: string" (optional)
9452 Ethernet header source MAC address
9453
9454 "eth-dst: string" (optional)
9455 Ethernet header destination MAC address
9456
9457 "ip-proto: int" (optional)
9458 IP Header protocol field
9459
9460 "ip-tos: int" (optional)
9461 IP header TOS field
9462
9463 Note: optional members may or may not appear in the flow mask depending
9464 if they're relevant to the flow mask.
9465
9466 Since: 2.4
9467
9468 RockerOfDpaFlowAction (Object)
9469
9470 Rocker switch OF-DPA flow action
9471
9472 Members:
9473
9474 "goto-tbl: int" (optional)
9475 next table ID
9476
9477 "group-id: int" (optional)
9478 group ID
9479
9480 "tunnel-lport: int" (optional)
9481 tunnel logical port ID
9482
9483 "vlan-id: int" (optional)
9484 VLAN ID
9485
9486 "new-vlan-id: int" (optional)
9487 new VLAN ID
9488
9489 "out-pport: int" (optional)
9490 physical output port
9491
9492 Note: optional members may or may not appear in the flow action
9493 depending if they're relevant to the flow action.
9494
9495 Since: 2.4
9496
9497 RockerOfDpaFlow (Object)
9498
9499 Rocker switch OF-DPA flow
9500
9501 Members:
9502
9503 "cookie: int"
9504 flow unique cookie ID
9505
9506 "hits: int"
9507 count of matches (hits) on flow
9508
9509 "key: RockerOfDpaFlowKey"
9510 flow key
9511
9512 "mask: RockerOfDpaFlowMask"
9513 flow mask
9514
9515 "action: RockerOfDpaFlowAction"
9516 flow action
9517
9518 Since: 2.4
9519
9520 query-rocker-of-dpa-flows (Command) Return rocker OF-DPA flow
9521 information.
9522
9523 Arguments:
9524
9525 "name: string"
9526 switch name
9527
9528 "tbl-id: int" (optional)
9529 flow table ID. If tbl-id is not specified, returns flow
9530 information for all tables.
9531
9532 Returns: rocker OF-DPA flow information
9533
9534 Since: 2.4
9535
9536 Example:
9537
9538 -> { "execute": "query-rocker-of-dpa-flows",
9539 "arguments": { "name": "sw1" } }
9540 <- { "return": [ {"key": {"in-pport": 0, "priority": 1, "tbl-id": 0},
9541 "hits": 138,
9542 "cookie": 0,
9543 "action": {"goto-tbl": 10},
9544 "mask": {"in-pport": 4294901760}
9545 },
9546 {...more...},
9547 ]}
9548
9549 RockerOfDpaGroup (Object)
9550
9551 Rocker switch OF-DPA group
9552
9553 Members:
9554
9555 "id: int"
9556 group unique ID
9557
9558 "type: int"
9559 group type
9560
9561 "vlan-id: int" (optional)
9562 VLAN ID
9563
9564 "pport: int" (optional)
9565 physical port number
9566
9567 "index: int" (optional)
9568 group index, unique with group type
9569
9570 "out-pport: int" (optional)
9571 output physical port number
9572
9573 "group-id: int" (optional)
9574 next group ID
9575
9576 "set-vlan-id: int" (optional)
9577 VLAN ID to set
9578
9579 "pop-vlan: int" (optional)
9580 pop VLAN headr from packet
9581
9582 "group-ids: array of int" (optional)
9583 list of next group IDs
9584
9585 "set-eth-src: string" (optional)
9586 set source MAC address in Ethernet header
9587
9588 "set-eth-dst: string" (optional)
9589 set destination MAC address in Ethernet header
9590
9591 "ttl-check: int" (optional)
9592 perform TTL check
9593
9594 Note: optional members may or may not appear in the group depending if
9595 they're relevant to the group type.
9596
9597 Since: 2.4
9598
9599 query-rocker-of-dpa-groups (Command) Return rocker OF-DPA group
9600 information.
9601
9602 Arguments:
9603
9604 "name: string"
9605 switch name
9606
9607 "type: int" (optional)
9608 group type. If type is not specified, returns group information
9609 for all group types.
9610
9611 Returns: rocker OF-DPA group information
9612
9613 Since: 2.4
9614
9615 Example:
9616
9617 -> { "execute": "query-rocker-of-dpa-groups",
9618 "arguments": { "name": "sw1" } }
9619 <- { "return": [ {"type": 0, "out-pport": 2,
9620 "pport": 2, "vlan-id": 3841,
9621 "pop-vlan": 1, "id": 251723778},
9622 {"type": 0, "out-pport": 0,
9623 "pport": 0, "vlan-id": 3841,
9624 "pop-vlan": 1, "id": 251723776},
9625 {"type": 0, "out-pport": 1,
9626 "pport": 1, "vlan-id": 3840,
9627 "pop-vlan": 1, "id": 251658241},
9628 {"type": 0, "out-pport": 0,
9629 "pport": 0, "vlan-id": 3840,
9630 "pop-vlan": 1, "id": 251658240}
9631 ]}
9632
9633 TPM (trusted platform module) devices
9634 TpmModel (Enum)
9635
9636 An enumeration of TPM models
9637
9638 Values:
9639
9640 "tpm-tis"
9641 TPM TIS model
9642
9643 "tpm-crb"
9644 TPM CRB model (since 2.12)
9645
9646 "tpm-spapr"
9647 TPM SPAPR model (since 5.0)
9648
9649 Since: 1.5
9650
9651 query-tpm-models (Command) Return a list of supported TPM models
9652
9653 Returns: a list of TpmModel
9654
9655 Since: 1.5
9656
9657 Example:
9658
9659 -> { "execute": "query-tpm-models" }
9660 <- { "return": [ "tpm-tis", "tpm-crb", "tpm-spapr" ] }
9661
9662 TpmType (Enum)
9663
9664 An enumeration of TPM types
9665
9666 Values:
9667
9668 "passthrough"
9669 TPM passthrough type
9670
9671 "emulator"
9672 Software Emulator TPM type Since: 2.11
9673
9674 Since: 1.5
9675
9676 query-tpm-types (Command) Return a list of supported TPM types
9677
9678 Returns: a list of TpmType
9679
9680 Since: 1.5
9681
9682 Example:
9683
9684 -> { "execute": "query-tpm-types" }
9685 <- { "return": [ "passthrough", "emulator" ] }
9686
9687 TPMPassthroughOptions (Object)
9688
9689 Information about the TPM passthrough type
9690
9691 Members:
9692
9693 "path: string" (optional)
9694 string describing the path used for accessing the TPM device
9695
9696 "cancel-path: string" (optional)
9697 string showing the TPM's sysfs cancel file for cancellation of TPM
9698 commands while they are executing
9699
9700 Since: 1.5
9701
9702 TPMEmulatorOptions (Object)
9703
9704 Information about the TPM emulator type
9705
9706 Members:
9707
9708 "chardev: string"
9709 Name of a unix socket chardev
9710
9711 Since: 2.11
9712
9713 TpmTypeOptions (Object)
9714
9715 A union referencing different TPM backend types' configuration options
9716
9717 Members:
9718
9719 "type"
9720 - 'passthrough' The configuration options for the TPM passthrough
9721 type
9722
9723 - 'emulator' The configuration options for TPM emulator backend
9724 type
9725
9726 "data: TPMPassthroughOptions" when "type" is "passthrough"
9727 "data: TPMEmulatorOptions" when "type" is "emulator"
9728
9729 Since: 1.5
9730
9731 TPMInfo (Object)
9732
9733 Information about the TPM
9734
9735 Members:
9736
9737 "id: string"
9738 The Id of the TPM
9739
9740 "model: TpmModel"
9741 The TPM frontend model
9742
9743 "options: TpmTypeOptions"
9744 The TPM (backend) type configuration options
9745
9746 Since: 1.5
9747
9748 query-tpm (Command) Return information about the TPM device
9749
9750 Returns: "TPMInfo" on success
9751
9752 Since: 1.5
9753
9754 Example:
9755
9756 -> { "execute": "query-tpm" }
9757 <- { "return":
9758 [
9759 { "model": "tpm-tis",
9760 "options":
9761 { "type": "passthrough",
9762 "data":
9763 { "cancel-path": "/sys/class/misc/tpm0/device/cancel",
9764 "path": "/dev/tpm0"
9765 }
9766 },
9767 "id": "tpm0"
9768 }
9769 ]
9770 }
9771
9772 Remote desktop
9773 set_password (Command) Sets the password of a remote display session.
9774
9775 Arguments:
9776
9777 "protocol: string"
9778 - 'vnc' to modify the VNC server password
9779
9780 - 'spice' to modify the Spice server password
9781
9782 "password: string"
9783 the new password
9784
9785 "connected: string" (optional)
9786 how to handle existing clients when changing the password. If
9787 nothing is specified, defaults to 'keep' 'fail' to fail the command
9788 if clients are connected 'disconnect' to disconnect existing
9789 clients 'keep' to maintain existing clients
9790
9791 Returns:
9792
9793 - Nothing on success
9794
9795 - If Spice is not enabled, DeviceNotFound
9796
9797 Since: 0.14.0
9798
9799 Example:
9800
9801 -> { "execute": "set_password", "arguments": { "protocol": "vnc",
9802 "password": "secret" } }
9803 <- { "return": {} }
9804
9805 expire_password (Command) Expire the password of a remote display
9806 server.
9807
9808 Arguments:
9809
9810 "protocol: string"
9811 the name of the remote display protocol 'vnc' or 'spice'
9812
9813 "time: string"
9814 when to expire the password.
9815
9816 - 'now' to expire the password immediately
9817
9818 - 'never' to cancel password expiration
9819
9820 - '+INT' where INT is the number of seconds from now (integer)
9821
9822 - 'INT' where INT is the absolute time in seconds
9823
9824 Returns:
9825
9826 - Nothing on success
9827
9828 - If "protocol" is 'spice' and Spice is not active, DeviceNotFound
9829
9830 Since: 0.14.0
9831
9832 Notes: Time is relative to the server and currently there is no way to
9833 coordinate server time with client time. It is not recommended to use
9834 the absolute time version of the "time" parameter unless you're sure
9835 you are on the same machine as the QEMU instance.
9836
9837 Example:
9838
9839 -> { "execute": "expire_password", "arguments": { "protocol": "vnc",
9840 "time": "+60" } }
9841 <- { "return": {} }
9842
9843 screendump (Command) Write a PPM of the VGA screen to a file.
9844
9845 Arguments:
9846
9847 "filename: string"
9848 the path of a new PPM file to store the image
9849
9850 "device: string" (optional)
9851 ID of the display device that should be dumped. If this parameter
9852 is missing, the primary display will be used. (Since 2.12)
9853
9854 "head: int" (optional)
9855 head to use in case the device supports multiple heads. If this
9856 parameter is missing, head #0 will be used. Also note that the head
9857 can only be specified in conjunction with the device ID. (Since
9858 2.12)
9859
9860 Returns: Nothing on success
9861
9862 Since: 0.14.0
9863
9864 Example:
9865
9866 -> { "execute": "screendump",
9867 "arguments": { "filename": "/tmp/image" } }
9868 <- { "return": {} }
9869
9870 Spice
9871
9872 SpiceBasicInfo (Object)
9873
9874 The basic information for SPICE network connection
9875
9876 Members:
9877
9878 "host: string"
9879 IP address
9880
9881 "port: string"
9882 port number
9883
9884 "family: NetworkAddressFamily"
9885 address family
9886
9887 Since: 2.1
9888
9889 If: "defined(CONFIG_SPICE)"
9890
9891 SpiceServerInfo (Object)
9892
9893 Information about a SPICE server
9894
9895 Members:
9896
9897 "auth: string" (optional)
9898 authentication method
9899
9900 The members of "SpiceBasicInfo"
9901
9902 Since: 2.1
9903
9904 If: "defined(CONFIG_SPICE)"
9905
9906 SpiceChannel (Object)
9907
9908 Information about a SPICE client channel.
9909
9910 Members:
9911
9912 "connection-id: int"
9913 SPICE connection id number. All channels with the same id belong
9914 to the same SPICE session.
9915
9916 "channel-type: int"
9917 SPICE channel type number. "1" is the main control channel, filter
9918 for this one if you want to track spice sessions only
9919
9920 "channel-id: int"
9921 SPICE channel ID number. Usually "0", might be different when
9922 multiple channels of the same type exist, such as multiple display
9923 channels in a multihead setup
9924
9925 "tls: boolean"
9926 true if the channel is encrypted, false otherwise.
9927
9928 The members of "SpiceBasicInfo"
9929
9930 Since: 0.14.0
9931
9932 If: "defined(CONFIG_SPICE)"
9933
9934 SpiceQueryMouseMode (Enum)
9935
9936 An enumeration of Spice mouse states.
9937
9938 Values:
9939
9940 "client"
9941 Mouse cursor position is determined by the client.
9942
9943 "server"
9944 Mouse cursor position is determined by the server.
9945
9946 "unknown"
9947 No information is available about mouse mode used by the spice
9948 server.
9949
9950 Note: spice/enums.h has a SpiceMouseMode already, hence the name.
9951
9952 Since: 1.1
9953
9954 If: "defined(CONFIG_SPICE)"
9955
9956 SpiceInfo (Object)
9957
9958 Information about the SPICE session.
9959
9960 Members:
9961
9962 "enabled: boolean"
9963 true if the SPICE server is enabled, false otherwise
9964
9965 "migrated: boolean"
9966 true if the last guest migration completed and spice migration had
9967 completed as well. false otherwise. (since 1.4)
9968
9969 "host: string" (optional)
9970 The hostname the SPICE server is bound to. This depends on the
9971 name resolution on the host and may be an IP address.
9972
9973 "port: int" (optional)
9974 The SPICE server's port number.
9975
9976 "compiled-version: string" (optional)
9977 SPICE server version.
9978
9979 "tls-port: int" (optional)
9980 The SPICE server's TLS port number.
9981
9982 "auth: string" (optional)
9983 the current authentication type used by the server
9984
9985 - 'none' if no authentication is being used
9986
9987 - 'spice' uses SASL or direct TLS authentication, depending on
9988 command line options
9989
9990 "mouse-mode: SpiceQueryMouseMode"
9991 The mode in which the mouse cursor is displayed currently. Can be
9992 determined by the client or the server, or unknown if spice server
9993 doesn't provide this information. (since: 1.1)
9994
9995 "channels: array of SpiceChannel" (optional)
9996 a list of "SpiceChannel" for each active spice channel
9997
9998 Since: 0.14.0
9999
10000 If: "defined(CONFIG_SPICE)"
10001
10002 query-spice (Command) Returns information about the current SPICE
10003 server
10004
10005 Returns: "SpiceInfo"
10006
10007 Since: 0.14.0
10008
10009 Example:
10010
10011 -> { "execute": "query-spice" }
10012 <- { "return": {
10013 "enabled": true,
10014 "auth": "spice",
10015 "port": 5920,
10016 "tls-port": 5921,
10017 "host": "0.0.0.0",
10018 "channels": [
10019 {
10020 "port": "54924",
10021 "family": "ipv4",
10022 "channel-type": 1,
10023 "connection-id": 1804289383,
10024 "host": "127.0.0.1",
10025 "channel-id": 0,
10026 "tls": true
10027 },
10028 {
10029 "port": "36710",
10030 "family": "ipv4",
10031 "channel-type": 4,
10032 "connection-id": 1804289383,
10033 "host": "127.0.0.1",
10034 "channel-id": 0,
10035 "tls": false
10036 },
10037 [ ... more channels follow ... ]
10038 ]
10039 }
10040 }
10041
10042 If: "defined(CONFIG_SPICE)"
10043
10044 SPICE_CONNECTED (Event) Emitted when a SPICE client establishes a
10045 connection
10046
10047 Arguments:
10048
10049 "server: SpiceBasicInfo"
10050 server information
10051
10052 "client: SpiceBasicInfo"
10053 client information
10054
10055 Since: 0.14.0
10056
10057 Example:
10058
10059 <- { "timestamp": {"seconds": 1290688046, "microseconds": 388707},
10060 "event": "SPICE_CONNECTED",
10061 "data": {
10062 "server": { "port": "5920", "family": "ipv4", "host": "127.0.0.1"},
10063 "client": {"port": "52873", "family": "ipv4", "host": "127.0.0.1"}
10064 }}
10065
10066 If: "defined(CONFIG_SPICE)"
10067
10068 SPICE_INITIALIZED (Event) Emitted after initial handshake and
10069 authentication takes place (if any) and the SPICE channel is up and
10070 running
10071
10072 Arguments:
10073
10074 "server: SpiceServerInfo"
10075 server information
10076
10077 "client: SpiceChannel"
10078 client information
10079
10080 Since: 0.14.0
10081
10082 Example:
10083
10084 <- { "timestamp": {"seconds": 1290688046, "microseconds": 417172},
10085 "event": "SPICE_INITIALIZED",
10086 "data": {"server": {"auth": "spice", "port": "5921",
10087 "family": "ipv4", "host": "127.0.0.1"},
10088 "client": {"port": "49004", "family": "ipv4", "channel-type": 3,
10089 "connection-id": 1804289383, "host": "127.0.0.1",
10090 "channel-id": 0, "tls": true}
10091 }}
10092
10093 If: "defined(CONFIG_SPICE)"
10094
10095 SPICE_DISCONNECTED (Event) Emitted when the SPICE connection is closed
10096
10097 Arguments:
10098
10099 "server: SpiceBasicInfo"
10100 server information
10101
10102 "client: SpiceBasicInfo"
10103 client information
10104
10105 Since: 0.14.0
10106
10107 Example:
10108
10109 <- { "timestamp": {"seconds": 1290688046, "microseconds": 388707},
10110 "event": "SPICE_DISCONNECTED",
10111 "data": {
10112 "server": { "port": "5920", "family": "ipv4", "host": "127.0.0.1"},
10113 "client": {"port": "52873", "family": "ipv4", "host": "127.0.0.1"}
10114 }}
10115
10116 If: "defined(CONFIG_SPICE)"
10117
10118 SPICE_MIGRATE_COMPLETED (Event) Emitted when SPICE migration has
10119 completed
10120
10121 Since: 1.3
10122
10123 Example:
10124
10125 <- { "timestamp": {"seconds": 1290688046, "microseconds": 417172},
10126 "event": "SPICE_MIGRATE_COMPLETED" }
10127
10128 If: "defined(CONFIG_SPICE)"
10129
10130 VNC
10131
10132 VncBasicInfo (Object)
10133
10134 The basic information for vnc network connection
10135
10136 Members:
10137
10138 "host: string"
10139 IP address
10140
10141 "service: string"
10142 The service name of the vnc port. This may depend on the host
10143 system's service database so symbolic names should not be relied
10144 on.
10145
10146 "family: NetworkAddressFamily"
10147 address family
10148
10149 "websocket: boolean"
10150 true in case the socket is a websocket (since 2.3).
10151
10152 Since: 2.1
10153
10154 If: "defined(CONFIG_VNC)"
10155
10156 VncServerInfo (Object)
10157
10158 The network connection information for server
10159
10160 Members:
10161
10162 "auth: string" (optional)
10163 authentication method used for the plain (non-websocket) VNC server
10164
10165 The members of "VncBasicInfo"
10166
10167 Since: 2.1
10168
10169 If: "defined(CONFIG_VNC)"
10170
10171 VncClientInfo (Object)
10172
10173 Information about a connected VNC client.
10174
10175 Members:
10176
10177 "x509_dname: string" (optional)
10178 If x509 authentication is in use, the Distinguished Name of the
10179 client.
10180
10181 "sasl_username: string" (optional)
10182 If SASL authentication is in use, the SASL username used for
10183 authentication.
10184
10185 The members of "VncBasicInfo"
10186
10187 Since: 0.14.0
10188
10189 If: "defined(CONFIG_VNC)"
10190
10191 VncInfo (Object)
10192
10193 Information about the VNC session.
10194
10195 Members:
10196
10197 "enabled: boolean"
10198 true if the VNC server is enabled, false otherwise
10199
10200 "host: string" (optional)
10201 The hostname the VNC server is bound to. This depends on the name
10202 resolution on the host and may be an IP address.
10203
10204 "family: NetworkAddressFamily" (optional)
10205 - 'ipv6' if the host is listening for IPv6 connections
10206
10207 - 'ipv4' if the host is listening for IPv4 connections
10208
10209 - 'unix' if the host is listening on a unix domain socket
10210
10211 - 'unknown' otherwise
10212
10213 "service: string" (optional)
10214 The service name of the server's port. This may depends on the
10215 host system's service database so symbolic names should not be
10216 relied on.
10217
10218 "auth: string" (optional)
10219 the current authentication type used by the server
10220
10221 - 'none' if no authentication is being used
10222
10223 - 'vnc' if VNC authentication is being used
10224
10225 - 'vencrypt+plain' if VEncrypt is used with plain text
10226 authentication
10227
10228 - 'vencrypt+tls+none' if VEncrypt is used with TLS and no
10229 authentication
10230
10231 - 'vencrypt+tls+vnc' if VEncrypt is used with TLS and VNC
10232 authentication
10233
10234 - 'vencrypt+tls+plain' if VEncrypt is used with TLS and plain
10235 text auth
10236
10237 - 'vencrypt+x509+none' if VEncrypt is used with x509 and no auth
10238
10239 - 'vencrypt+x509+vnc' if VEncrypt is used with x509 and VNC auth
10240
10241 - 'vencrypt+x509+plain' if VEncrypt is used with x509 and plain
10242 text auth
10243
10244 - 'vencrypt+tls+sasl' if VEncrypt is used with TLS and SASL auth
10245
10246 - 'vencrypt+x509+sasl' if VEncrypt is used with x509 and SASL
10247 auth
10248
10249 "clients: array of VncClientInfo" (optional)
10250 a list of "VncClientInfo" of all currently connected clients
10251
10252 Since: 0.14.0
10253
10254 If: "defined(CONFIG_VNC)"
10255
10256 VncPrimaryAuth (Enum)
10257
10258 vnc primary authentication method.
10259
10260 Values:
10261
10262 "none"
10263 Not documented
10264
10265 "vnc"
10266 Not documented
10267
10268 "ra2"
10269 Not documented
10270
10271 "ra2ne"
10272 Not documented
10273
10274 "tight"
10275 Not documented
10276
10277 "ultra"
10278 Not documented
10279
10280 "tls"
10281 Not documented
10282
10283 "vencrypt"
10284 Not documented
10285
10286 "sasl"
10287 Not documented
10288
10289 Since: 2.3
10290
10291 If: "defined(CONFIG_VNC)"
10292
10293 VncVencryptSubAuth (Enum)
10294
10295 vnc sub authentication method with vencrypt.
10296
10297 Values:
10298
10299 "plain"
10300 Not documented
10301
10302 "tls-none"
10303 Not documented
10304
10305 "x509-none"
10306 Not documented
10307
10308 "tls-vnc"
10309 Not documented
10310
10311 "x509-vnc"
10312 Not documented
10313
10314 "tls-plain"
10315 Not documented
10316
10317 "x509-plain"
10318 Not documented
10319
10320 "tls-sasl"
10321 Not documented
10322
10323 "x509-sasl"
10324 Not documented
10325
10326 Since: 2.3
10327
10328 If: "defined(CONFIG_VNC)"
10329
10330 VncServerInfo2 (Object)
10331
10332 The network connection information for server
10333
10334 Members:
10335
10336 "auth: VncPrimaryAuth"
10337 The current authentication type used by the servers
10338
10339 "vencrypt: VncVencryptSubAuth" (optional)
10340 The vencrypt sub authentication type used by the servers, only
10341 specified in case auth == vencrypt.
10342
10343 The members of "VncBasicInfo"
10344
10345 Since: 2.9
10346
10347 If: "defined(CONFIG_VNC)"
10348
10349 VncInfo2 (Object)
10350
10351 Information about a vnc server
10352
10353 Members:
10354
10355 "id: string"
10356 vnc server name.
10357
10358 "server: array of VncServerInfo2"
10359 A list of "VncBasincInfo" describing all listening sockets. The
10360 list can be empty (in case the vnc server is disabled). It also
10361 may have multiple entries: normal + websocket, possibly also ipv4 +
10362 ipv6 in the future.
10363
10364 "clients: array of VncClientInfo"
10365 A list of "VncClientInfo" of all currently connected clients. The
10366 list can be empty, for obvious reasons.
10367
10368 "auth: VncPrimaryAuth"
10369 The current authentication type used by the non-websockets servers
10370
10371 "vencrypt: VncVencryptSubAuth" (optional)
10372 The vencrypt authentication type used by the servers, only
10373 specified in case auth == vencrypt.
10374
10375 "display: string" (optional)
10376 The display device the vnc server is linked to.
10377
10378 Since: 2.3
10379
10380 If: "defined(CONFIG_VNC)"
10381
10382 query-vnc (Command) Returns information about the current VNC server
10383
10384 Returns: "VncInfo"
10385
10386 Since: 0.14.0
10387
10388 Example:
10389
10390 -> { "execute": "query-vnc" }
10391 <- { "return": {
10392 "enabled":true,
10393 "host":"0.0.0.0",
10394 "service":"50402",
10395 "auth":"vnc",
10396 "family":"ipv4",
10397 "clients":[
10398 {
10399 "host":"127.0.0.1",
10400 "service":"50401",
10401 "family":"ipv4"
10402 }
10403 ]
10404 }
10405 }
10406
10407 If: "defined(CONFIG_VNC)"
10408
10409 query-vnc-servers (Command) Returns a list of vnc servers. The list
10410 can be empty.
10411
10412 Returns: a list of "VncInfo2"
10413
10414 Since: 2.3
10415
10416 If: "defined(CONFIG_VNC)"
10417
10418 change-vnc-password (Command) Change the VNC server password.
10419
10420 Arguments:
10421
10422 "password: string"
10423 the new password to use with VNC authentication
10424
10425 Since: 1.1
10426
10427 Notes: An empty password in this command will set the password to the
10428 empty string. Existing clients are unaffected by executing this
10429 command.
10430
10431 If: "defined(CONFIG_VNC)"
10432
10433 VNC_CONNECTED (Event) Emitted when a VNC client establishes a
10434 connection
10435
10436 Arguments:
10437
10438 "server: VncServerInfo"
10439 server information
10440
10441 "client: VncBasicInfo"
10442 client information
10443
10444 Note: This event is emitted before any authentication takes place, thus
10445 the authentication ID is not provided
10446
10447 Since: 0.13.0
10448
10449 Example:
10450
10451 <- { "event": "VNC_CONNECTED",
10452 "data": {
10453 "server": { "auth": "sasl", "family": "ipv4",
10454 "service": "5901", "host": "0.0.0.0" },
10455 "client": { "family": "ipv4", "service": "58425",
10456 "host": "127.0.0.1" } },
10457 "timestamp": { "seconds": 1262976601, "microseconds": 975795 } }
10458
10459 If: "defined(CONFIG_VNC)"
10460
10461 VNC_INITIALIZED (Event) Emitted after authentication takes place (if
10462 any) and the VNC session is made active
10463
10464 Arguments:
10465
10466 "server: VncServerInfo"
10467 server information
10468
10469 "client: VncClientInfo"
10470 client information
10471
10472 Since: 0.13.0
10473
10474 Example:
10475
10476 <- { "event": "VNC_INITIALIZED",
10477 "data": {
10478 "server": { "auth": "sasl", "family": "ipv4",
10479 "service": "5901", "host": "0.0.0.0"},
10480 "client": { "family": "ipv4", "service": "46089",
10481 "host": "127.0.0.1", "sasl_username": "luiz" } },
10482 "timestamp": { "seconds": 1263475302, "microseconds": 150772 } }
10483
10484 If: "defined(CONFIG_VNC)"
10485
10486 VNC_DISCONNECTED (Event) Emitted when the connection is closed
10487
10488 Arguments:
10489
10490 "server: VncServerInfo"
10491 server information
10492
10493 "client: VncClientInfo"
10494 client information
10495
10496 Since: 0.13.0
10497
10498 Example:
10499
10500 <- { "event": "VNC_DISCONNECTED",
10501 "data": {
10502 "server": { "auth": "sasl", "family": "ipv4",
10503 "service": "5901", "host": "0.0.0.0" },
10504 "client": { "family": "ipv4", "service": "58425",
10505 "host": "127.0.0.1", "sasl_username": "luiz" } },
10506 "timestamp": { "seconds": 1262976601, "microseconds": 975795 } }
10507
10508 If: "defined(CONFIG_VNC)"
10509
10510 Input
10511 MouseInfo (Object)
10512
10513 Information about a mouse device.
10514
10515 Members:
10516
10517 "name: string"
10518 the name of the mouse device
10519
10520 "index: int"
10521 the index of the mouse device
10522
10523 "current: boolean"
10524 true if this device is currently receiving mouse events
10525
10526 "absolute: boolean"
10527 true if this device supports absolute coordinates as input
10528
10529 Since: 0.14.0
10530
10531 query-mice (Command) Returns information about each active mouse
10532 device
10533
10534 Returns: a list of "MouseInfo" for each device
10535
10536 Since: 0.14.0
10537
10538 Example:
10539
10540 -> { "execute": "query-mice" }
10541 <- { "return": [
10542 {
10543 "name":"QEMU Microsoft Mouse",
10544 "index":0,
10545 "current":false,
10546 "absolute":false
10547 },
10548 {
10549 "name":"QEMU PS/2 Mouse",
10550 "index":1,
10551 "current":true,
10552 "absolute":true
10553 }
10554 ]
10555 }
10556
10557 QKeyCode (Enum)
10558
10559 An enumeration of key name.
10560
10561 This is used by the "send-key" command.
10562
10563 Values:
10564
10565 "unmapped"
10566 since 2.0
10567
10568 "pause"
10569 since 2.0
10570
10571 "ro"
10572 since 2.4
10573
10574 "kp_comma"
10575 since 2.4
10576
10577 "kp_equals"
10578 since 2.6
10579
10580 "power"
10581 since 2.6
10582
10583 "hiragana"
10584 since 2.9
10585
10586 "henkan"
10587 since 2.9
10588
10589 "yen"
10590 since 2.9
10591
10592 "sleep"
10593 since 2.10
10594
10595 "wake"
10596 since 2.10
10597
10598 "audionext"
10599 since 2.10
10600
10601 "audioprev"
10602 since 2.10
10603
10604 "audiostop"
10605 since 2.10
10606
10607 "audioplay"
10608 since 2.10
10609
10610 "audiomute"
10611 since 2.10
10612
10613 "volumeup"
10614 since 2.10
10615
10616 "volumedown"
10617 since 2.10
10618
10619 "mediaselect"
10620 since 2.10
10621
10622 "mail"
10623 since 2.10
10624
10625 "calculator"
10626 since 2.10
10627
10628 "computer"
10629 since 2.10
10630
10631 "ac_home"
10632 since 2.10
10633
10634 "ac_back"
10635 since 2.10
10636
10637 "ac_forward"
10638 since 2.10
10639
10640 "ac_refresh"
10641 since 2.10
10642
10643 "ac_bookmarks"
10644 since 2.10
10645
10646 "muhenkan"
10647 since 2.12
10648
10649 "katakanahiragana"
10650 since 2.12
10651
10652 "shift"
10653 Not documented
10654
10655 "shift_r"
10656 Not documented
10657
10658 "alt"
10659 Not documented
10660
10661 "alt_r"
10662 Not documented
10663
10664 "ctrl"
10665 Not documented
10666
10667 "ctrl_r"
10668 Not documented
10669
10670 "menu"
10671 Not documented
10672
10673 "esc"
10674 Not documented
10675
10676 1 Not documented
10677
10678 2 Not documented
10679
10680 3 Not documented
10681
10682 4 Not documented
10683
10684 5 Not documented
10685
10686 6 Not documented
10687
10688 7 Not documented
10689
10690 8 Not documented
10691
10692 9 Not documented
10693
10694 0 Not documented
10695
10696 "minus"
10697 Not documented
10698
10699 "equal"
10700 Not documented
10701
10702 "backspace"
10703 Not documented
10704
10705 "tab"
10706 Not documented
10707
10708 "q" Not documented
10709
10710 "w" Not documented
10711
10712 "e" Not documented
10713
10714 "r" Not documented
10715
10716 "t" Not documented
10717
10718 "y" Not documented
10719
10720 "u" Not documented
10721
10722 "i" Not documented
10723
10724 "o" Not documented
10725
10726 "p" Not documented
10727
10728 "bracket_left"
10729 Not documented
10730
10731 "bracket_right"
10732 Not documented
10733
10734 "ret"
10735 Not documented
10736
10737 "a" Not documented
10738
10739 "s" Not documented
10740
10741 "d" Not documented
10742
10743 "f" Not documented
10744
10745 "g" Not documented
10746
10747 "h" Not documented
10748
10749 "j" Not documented
10750
10751 "k" Not documented
10752
10753 "l" Not documented
10754
10755 "semicolon"
10756 Not documented
10757
10758 "apostrophe"
10759 Not documented
10760
10761 "grave_accent"
10762 Not documented
10763
10764 "backslash"
10765 Not documented
10766
10767 "z" Not documented
10768
10769 "x" Not documented
10770
10771 "c" Not documented
10772
10773 "v" Not documented
10774
10775 "b" Not documented
10776
10777 "n" Not documented
10778
10779 "m" Not documented
10780
10781 "comma"
10782 Not documented
10783
10784 "dot"
10785 Not documented
10786
10787 "slash"
10788 Not documented
10789
10790 "asterisk"
10791 Not documented
10792
10793 "spc"
10794 Not documented
10795
10796 "caps_lock"
10797 Not documented
10798
10799 "f1"
10800 Not documented
10801
10802 "f2"
10803 Not documented
10804
10805 "f3"
10806 Not documented
10807
10808 "f4"
10809 Not documented
10810
10811 "f5"
10812 Not documented
10813
10814 "f6"
10815 Not documented
10816
10817 "f7"
10818 Not documented
10819
10820 "f8"
10821 Not documented
10822
10823 "f9"
10824 Not documented
10825
10826 "f10"
10827 Not documented
10828
10829 "num_lock"
10830 Not documented
10831
10832 "scroll_lock"
10833 Not documented
10834
10835 "kp_divide"
10836 Not documented
10837
10838 "kp_multiply"
10839 Not documented
10840
10841 "kp_subtract"
10842 Not documented
10843
10844 "kp_add"
10845 Not documented
10846
10847 "kp_enter"
10848 Not documented
10849
10850 "kp_decimal"
10851 Not documented
10852
10853 "sysrq"
10854 Not documented
10855
10856 "kp_0"
10857 Not documented
10858
10859 "kp_1"
10860 Not documented
10861
10862 "kp_2"
10863 Not documented
10864
10865 "kp_3"
10866 Not documented
10867
10868 "kp_4"
10869 Not documented
10870
10871 "kp_5"
10872 Not documented
10873
10874 "kp_6"
10875 Not documented
10876
10877 "kp_7"
10878 Not documented
10879
10880 "kp_8"
10881 Not documented
10882
10883 "kp_9"
10884 Not documented
10885
10886 "less"
10887 Not documented
10888
10889 "f11"
10890 Not documented
10891
10892 "f12"
10893 Not documented
10894
10895 "print"
10896 Not documented
10897
10898 "home"
10899 Not documented
10900
10901 "pgup"
10902 Not documented
10903
10904 "pgdn"
10905 Not documented
10906
10907 "end"
10908 Not documented
10909
10910 "left"
10911 Not documented
10912
10913 "up"
10914 Not documented
10915
10916 "down"
10917 Not documented
10918
10919 "right"
10920 Not documented
10921
10922 "insert"
10923 Not documented
10924
10925 "delete"
10926 Not documented
10927
10928 "stop"
10929 Not documented
10930
10931 "again"
10932 Not documented
10933
10934 "props"
10935 Not documented
10936
10937 "undo"
10938 Not documented
10939
10940 "front"
10941 Not documented
10942
10943 "copy"
10944 Not documented
10945
10946 "open"
10947 Not documented
10948
10949 "paste"
10950 Not documented
10951
10952 "find"
10953 Not documented
10954
10955 "cut"
10956 Not documented
10957
10958 "lf"
10959 Not documented
10960
10961 "help"
10962 Not documented
10963
10964 "meta_l"
10965 Not documented
10966
10967 "meta_r"
10968 Not documented
10969
10970 "compose"
10971 Not documented
10972
10973 'sysrq' was mistakenly added to hack around the fact that the ps2
10974 driver was not generating correct scancodes sequences when 'alt+print'
10975 was pressed. This flaw is now fixed and the 'sysrq' key serves no
10976 further purpose. Any further use of 'sysrq' will be transparently
10977 changed to 'print', so they are effectively synonyms.
10978
10979 Since: 1.3.0
10980
10981 KeyValue (Object)
10982
10983 Represents a keyboard key.
10984
10985 Members:
10986
10987 "type"
10988 One of "number", "qcode"
10989
10990 "data: int" when "type" is "number"
10991 "data: QKeyCode" when "type" is "qcode"
10992
10993 Since: 1.3.0
10994
10995 send-key (Command) Send keys to guest.
10996
10997 Arguments:
10998
10999 "keys: array of KeyValue"
11000 An array of "KeyValue" elements. All "KeyValues" in this array are
11001 simultaneously sent to the guest. A "KeyValue".number value is sent
11002 directly to the guest, while "KeyValue".qcode must be a valid
11003 "QKeyCode" value
11004
11005 "hold-time: int" (optional)
11006 time to delay key up events, milliseconds. Defaults to 100
11007
11008 Returns:
11009
11010 - Nothing on success
11011
11012 - If key is unknown or redundant, InvalidParameter
11013
11014 Since: 1.3.0
11015
11016 Example:
11017
11018 -> { "execute": "send-key",
11019 "arguments": { "keys": [ { "type": "qcode", "data": "ctrl" },
11020 { "type": "qcode", "data": "alt" },
11021 { "type": "qcode", "data": "delete" } ] } }
11022 <- { "return": {} }
11023
11024 InputButton (Enum)
11025
11026 Button of a pointer input device (mouse, tablet).
11027
11028 Values:
11029
11030 "side"
11031 front side button of a 5-button mouse (since 2.9)
11032
11033 "extra"
11034 rear side button of a 5-button mouse (since 2.9)
11035
11036 "left"
11037 Not documented
11038
11039 "middle"
11040 Not documented
11041
11042 "right"
11043 Not documented
11044
11045 "wheel-up"
11046 Not documented
11047
11048 "wheel-down"
11049 Not documented
11050
11051 Since: 2.0
11052
11053 InputAxis (Enum)
11054
11055 Position axis of a pointer input device (mouse, tablet).
11056
11057 Values:
11058
11059 "x" Not documented
11060
11061 "y" Not documented
11062
11063 Since: 2.0
11064
11065 InputKeyEvent (Object)
11066
11067 Keyboard input event.
11068
11069 Members:
11070
11071 "key: KeyValue"
11072 Which key this event is for.
11073
11074 "down: boolean"
11075 True for key-down and false for key-up events.
11076
11077 Since: 2.0
11078
11079 InputBtnEvent (Object)
11080
11081 Pointer button input event.
11082
11083 Members:
11084
11085 "button: InputButton"
11086 Which button this event is for.
11087
11088 "down: boolean"
11089 True for key-down and false for key-up events.
11090
11091 Since: 2.0
11092
11093 InputMoveEvent (Object)
11094
11095 Pointer motion input event.
11096
11097 Members:
11098
11099 "axis: InputAxis"
11100 Which axis is referenced by "value".
11101
11102 "value: int"
11103 Pointer position. For absolute coordinates the valid range is 0 ->
11104 0x7ffff
11105
11106 Since: 2.0
11107
11108 InputEvent (Object)
11109
11110 Input event union.
11111
11112 Members:
11113
11114 "type"
11115 the input type, one of:
11116
11117 - 'key': Input event of Keyboard
11118
11119 - 'btn': Input event of pointer buttons
11120
11121 - 'rel': Input event of relative pointer motion
11122
11123 - 'abs': Input event of absolute pointer motion
11124
11125 "data: InputKeyEvent" when "type" is "key"
11126 "data: InputBtnEvent" when "type" is "btn"
11127 "data: InputMoveEvent" when "type" is "rel"
11128 "data: InputMoveEvent" when "type" is "abs"
11129
11130 Since: 2.0
11131
11132 input-send-event (Command) Send input event(s) to guest.
11133
11134 The "device" and "head" parameters can be used to send the input event
11135 to specific input devices in case (a) multiple input devices of the
11136 same kind are added to the virtual machine and (b) you have configured
11137 input routing (see docs/multiseat.txt) for those input devices. The
11138 parameters work exactly like the device and head properties of input
11139 devices. If "device" is missing, only devices that have no input
11140 routing config are admissible. If "device" is specified, both input
11141 devices with and without input routing config are admissible, but
11142 devices with input routing config take precedence.
11143
11144 Arguments:
11145
11146 "device: string" (optional)
11147 display device to send event(s) to.
11148
11149 "head: int" (optional)
11150 head to send event(s) to, in case the display device supports
11151 multiple scanouts.
11152
11153 "events: array of InputEvent"
11154 List of InputEvent union.
11155
11156 Returns: Nothing on success.
11157
11158 Since: 2.6
11159
11160 Note: The consoles are visible in the qom tree, under
11161 /backend/console[$index]. They have a device link and head property, so
11162 it is possible to map which console belongs to which device and
11163 display.
11164
11165 Example:
11166
11167 1. Press left mouse button.
11168
11169 -> { "execute": "input-send-event",
11170 "arguments": { "device": "video0",
11171 "events": [ { "type": "btn",
11172 "data" : { "down": true, "button": "left" } } ] } }
11173 <- { "return": {} }
11174
11175 -> { "execute": "input-send-event",
11176 "arguments": { "device": "video0",
11177 "events": [ { "type": "btn",
11178 "data" : { "down": false, "button": "left" } } ] } }
11179 <- { "return": {} }
11180
11181 2. Press ctrl-alt-del.
11182
11183 -> { "execute": "input-send-event",
11184 "arguments": { "events": [
11185 { "type": "key", "data" : { "down": true,
11186 "key": {"type": "qcode", "data": "ctrl" } } },
11187 { "type": "key", "data" : { "down": true,
11188 "key": {"type": "qcode", "data": "alt" } } },
11189 { "type": "key", "data" : { "down": true,
11190 "key": {"type": "qcode", "data": "delete" } } } ] } }
11191 <- { "return": {} }
11192
11193 3. Move mouse pointer to absolute coordinates (20000, 400).
11194
11195 -> { "execute": "input-send-event" ,
11196 "arguments": { "events": [
11197 { "type": "abs", "data" : { "axis": "x", "value" : 20000 } },
11198 { "type": "abs", "data" : { "axis": "y", "value" : 400 } } ] } }
11199 <- { "return": {} }
11200
11201 GrabToggleKeys (Enum)
11202
11203 Keys to toggle input-linux between host and guest.
11204
11205 Values:
11206
11207 "ctrl-ctrl"
11208 Not documented
11209
11210 "alt-alt"
11211 Not documented
11212
11213 "shift-shift"
11214 Not documented
11215
11216 "meta-meta"
11217 Not documented
11218
11219 "scrolllock"
11220 Not documented
11221
11222 "ctrl-scrolllock"
11223 Not documented
11224
11225 Since: 4.0
11226
11227 DisplayGTK (Object)
11228
11229 GTK display options.
11230
11231 Members:
11232
11233 "grab-on-hover: boolean" (optional)
11234 Grab keyboard input on mouse hover.
11235
11236 "zoom-to-fit: boolean" (optional)
11237 Zoom guest display to fit into the host window. When turned off
11238 the host window will be resized instead. In case the display
11239 device can notify the guest on window resizes (virtio-gpu) this
11240 will default to "on", assuming the guest will resize the display to
11241 match the window size then. Otherwise it defaults to "off". Since
11242 3.1
11243
11244 Since: 2.12
11245
11246 DisplayEGLHeadless (Object)
11247
11248 EGL headless display options.
11249
11250 Members:
11251
11252 "rendernode: string" (optional)
11253 Which DRM render node should be used. Default is the first
11254 available node on the host.
11255
11256 Since: 3.1
11257
11258 DisplayGLMode (Enum)
11259
11260 Display OpenGL mode.
11261
11262 Values:
11263
11264 "off"
11265 Disable OpenGL (default).
11266
11267 "on"
11268 Use OpenGL, pick context type automatically. Would better be named
11269 'auto' but is called 'on' for backward compatibility with bool
11270 type.
11271
11272 "core"
11273 Use OpenGL with Core (desktop) Context.
11274
11275 "es"
11276 Use OpenGL with ES (embedded systems) Context.
11277
11278 Since: 3.0
11279
11280 DisplayCurses (Object)
11281
11282 Curses display options.
11283
11284 Members:
11285
11286 "charset: string" (optional)
11287 Font charset used by guest (default: CP437).
11288
11289 Since: 4.0
11290
11291 DisplayType (Enum)
11292
11293 Display (user interface) type.
11294
11295 Values:
11296
11297 "default"
11298 The default user interface, selecting from the first available of
11299 gtk, sdl, cocoa, and vnc.
11300
11301 "none"
11302 No user interface or video output display. The guest will still see
11303 an emulated graphics card, but its output will not be displayed to
11304 the QEMU user.
11305
11306 "gtk"
11307 The GTK user interface.
11308
11309 "sdl"
11310 The SDL user interface.
11311
11312 "egl-headless"
11313 No user interface, offload GL operations to a local DRI device.
11314 Graphical display need to be paired with VNC or Spice. (Since 3.1)
11315
11316 "curses"
11317 Display video output via curses. For graphics device models which
11318 support a text mode, QEMU can display this output using a
11319 curses/ncurses interface. Nothing is displayed when the graphics
11320 device is in graphical mode or if the graphics device does not
11321 support a text mode. Generally only the VGA device models support
11322 text mode.
11323
11324 "cocoa"
11325 The Cocoa user interface.
11326
11327 "spice-app"
11328 Set up a Spice server and run the default associated application to
11329 connect to it. The server will redirect the serial console and QEMU
11330 monitors. (Since 4.0)
11331
11332 Since: 2.12
11333
11334 DisplayOptions (Object)
11335
11336 Display (user interface) options.
11337
11338 Members:
11339
11340 "type: DisplayType"
11341 Which DisplayType qemu should use.
11342
11343 "full-screen: boolean" (optional)
11344 Start user interface in fullscreen mode (default: off).
11345
11346 "window-close: boolean" (optional)
11347 Allow to quit qemu with window close button (default: on).
11348
11349 "show-cursor: boolean" (optional)
11350 Force showing the mouse cursor (default: off). (since: 5.0)
11351
11352 "gl: DisplayGLMode" (optional)
11353 Enable OpenGL support (default: off).
11354
11355 The members of "DisplayGTK" when "type" is "gtk"
11356 The members of "DisplayCurses" when "type" is "curses"
11357 The members of "DisplayEGLHeadless" when "type" is "egl-headless"
11358
11359 Since: 2.12
11360
11361 query-display-options (Command) Returns information about display
11362 configuration
11363
11364 Returns: "DisplayOptions"
11365
11366 Since: 3.1
11367
11368 QAuthZListPolicy (Enum)
11369
11370 The authorization policy result
11371
11372 Values:
11373
11374 "deny"
11375 deny access
11376
11377 "allow"
11378 allow access
11379
11380 Since: 4.0
11381
11382 QAuthZListFormat (Enum)
11383
11384 The authorization policy match format
11385
11386 Values:
11387
11388 "exact"
11389 an exact string match
11390
11391 "glob"
11392 string with ? and * shell wildcard support
11393
11394 Since: 4.0
11395
11396 QAuthZListRule (Object)
11397
11398 A single authorization rule.
11399
11400 Members:
11401
11402 "match: string"
11403 a string or glob to match against a user identity
11404
11405 "policy: QAuthZListPolicy"
11406 the result to return if "match" evaluates to true
11407
11408 "format: QAuthZListFormat" (optional)
11409 the format of the "match" rule (default 'exact')
11410
11411 Since: 4.0
11412
11413 QAuthZListRuleListHack (Object)
11414
11415 Not exposed via QMP; hack to generate QAuthZListRuleList for use
11416 internally by the code.
11417
11418 Members:
11419
11420 "unused: array of QAuthZListRule"
11421 Not documented
11422
11423 Since: 4.0
11424
11425 Migration
11426 MigrationStats (Object)
11427
11428 Detailed migration status.
11429
11430 Members:
11431
11432 "transferred: int"
11433 amount of bytes already transferred to the target VM
11434
11435 "remaining: int"
11436 amount of bytes remaining to be transferred to the target VM
11437
11438 "total: int"
11439 total amount of bytes involved in the migration process
11440
11441 "duplicate: int"
11442 number of duplicate (zero) pages (since 1.2)
11443
11444 "skipped: int"
11445 number of skipped zero pages (since 1.5)
11446
11447 "normal: int"
11448 number of normal pages (since 1.2)
11449
11450 "normal-bytes: int"
11451 number of normal bytes sent (since 1.2)
11452
11453 "dirty-pages-rate: int"
11454 number of pages dirtied by second by the guest (since 1.3)
11455
11456 "mbps: number"
11457 throughput in megabits/sec. (since 1.6)
11458
11459 "dirty-sync-count: int"
11460 number of times that dirty ram was synchronized (since 2.1)
11461
11462 "postcopy-requests: int"
11463 The number of page requests received from the destination (since
11464 2.7)
11465
11466 "page-size: int"
11467 The number of bytes per page for the various page-based statistics
11468 (since 2.10)
11469
11470 "multifd-bytes: int"
11471 The number of bytes sent through multifd (since 3.0)
11472
11473 "pages-per-second: int"
11474 the number of memory pages transferred per second (Since 4.0)
11475
11476 Since: 0.14.0
11477
11478 XBZRLECacheStats (Object)
11479
11480 Detailed XBZRLE migration cache statistics
11481
11482 Members:
11483
11484 "cache-size: int"
11485 XBZRLE cache size
11486
11487 "bytes: int"
11488 amount of bytes already transferred to the target VM
11489
11490 "pages: int"
11491 amount of pages transferred to the target VM
11492
11493 "cache-miss: int"
11494 number of cache miss
11495
11496 "cache-miss-rate: number"
11497 rate of cache miss (since 2.1)
11498
11499 "encoding-rate: number"
11500 rate of encoded bytes (since 5.1)
11501
11502 "overflow: int"
11503 number of overflows
11504
11505 Since: 1.2
11506
11507 CompressionStats (Object)
11508
11509 Detailed migration compression statistics
11510
11511 Members:
11512
11513 "pages: int"
11514 amount of pages compressed and transferred to the target VM
11515
11516 "busy: int"
11517 count of times that no free thread was available to compress data
11518
11519 "busy-rate: number"
11520 rate of thread busy
11521
11522 "compressed-size: int"
11523 amount of bytes after compression
11524
11525 "compression-rate: number"
11526 rate of compressed size
11527
11528 Since: 3.1
11529
11530 MigrationStatus (Enum)
11531
11532 An enumeration of migration status.
11533
11534 Values:
11535
11536 "none"
11537 no migration has ever happened.
11538
11539 "setup"
11540 migration process has been initiated.
11541
11542 "cancelling"
11543 in the process of cancelling migration.
11544
11545 "cancelled"
11546 cancelling migration is finished.
11547
11548 "active"
11549 in the process of doing migration.
11550
11551 "postcopy-active"
11552 like active, but now in postcopy mode. (since 2.5)
11553
11554 "postcopy-paused"
11555 during postcopy but paused. (since 3.0)
11556
11557 "postcopy-recover"
11558 trying to recover from a paused postcopy. (since 3.0)
11559
11560 "completed"
11561 migration is finished.
11562
11563 "failed"
11564 some error occurred during migration process.
11565
11566 "colo"
11567 VM is in the process of fault tolerance, VM can not get into this
11568 state unless colo capability is enabled for migration. (since 2.8)
11569
11570 "pre-switchover"
11571 Paused before device serialisation. (since 2.11)
11572
11573 "device"
11574 During device serialisation when pause-before-switchover is enabled
11575 (since 2.11)
11576
11577 "wait-unplug"
11578 wait for device unplug request by guest OS to be completed. (since
11579 4.2)
11580
11581 Since: 2.3
11582
11583 MigrationInfo (Object)
11584
11585 Information about current migration process.
11586
11587 Members:
11588
11589 "status: MigrationStatus" (optional)
11590 "MigrationStatus" describing the current migration status. If this
11591 field is not returned, no migration process has been initiated
11592
11593 "ram: MigrationStats" (optional)
11594 "MigrationStats" containing detailed migration status, only
11595 returned if status is 'active' or 'completed'(since 1.2)
11596
11597 "disk: MigrationStats" (optional)
11598 "MigrationStats" containing detailed disk migration status, only
11599 returned if status is 'active' and it is a block migration
11600
11601 "xbzrle-cache: XBZRLECacheStats" (optional)
11602 "XBZRLECacheStats" containing detailed XBZRLE migration statistics,
11603 only returned if XBZRLE feature is on and status is 'active' or
11604 'completed' (since 1.2)
11605
11606 "total-time: int" (optional)
11607 total amount of milliseconds since migration started. If migration
11608 has ended, it returns the total migration time. (since 1.2)
11609
11610 "downtime: int" (optional)
11611 only present when migration finishes correctly total downtime in
11612 milliseconds for the guest. (since 1.3)
11613
11614 "expected-downtime: int" (optional)
11615 only present while migration is active expected downtime in
11616 milliseconds for the guest in last walk of the dirty bitmap. (since
11617 1.3)
11618
11619 "setup-time: int" (optional)
11620 amount of setup time in milliseconds before the iterations begin
11621 but after the QMP command is issued. This is designed to provide an
11622 accounting of any activities (such as RDMA pinning) which may be
11623 expensive, but do not actually occur during the iterative migration
11624 rounds themselves. (since 1.6)
11625
11626 "cpu-throttle-percentage: int" (optional)
11627 percentage of time guest cpus are being throttled during auto-
11628 converge. This is only present when auto-converge has started
11629 throttling guest cpus. (Since 2.7)
11630
11631 "error-desc: string" (optional)
11632 the human readable error description string, when "status" is
11633 'failed'. Clients should not attempt to parse the error strings.
11634 (Since 2.7)
11635
11636 "postcopy-blocktime: int" (optional)
11637 total time when all vCPU were blocked during postcopy live
11638 migration. This is only present when the postcopy-blocktime
11639 migration capability is enabled. (Since 3.0)
11640
11641 "postcopy-vcpu-blocktime: array of int" (optional)
11642 list of the postcopy blocktime per vCPU. This is only present when
11643 the postcopy-blocktime migration capability is enabled. (Since 3.0)
11644
11645 "compression: CompressionStats" (optional)
11646 migration compression statistics, only returned if compression
11647 feature is on and status is 'active' or 'completed' (Since 3.1)
11648
11649 "socket-address: array of SocketAddress" (optional)
11650 Only used for tcp, to know what the real port is (Since 4.0)
11651
11652 Since: 0.14.0
11653
11654 query-migrate (Command) Returns information about current migration
11655 process. If migration is active there will be another json-object with
11656 RAM migration status and if block migration is active another one with
11657 block migration status.
11658
11659 Returns: "MigrationInfo"
11660
11661 Since: 0.14.0
11662
11663 Example:
11664
11665 1. Before the first migration
11666
11667 -> { "execute": "query-migrate" }
11668 <- { "return": {} }
11669
11670 2. Migration is done and has succeeded
11671
11672 -> { "execute": "query-migrate" }
11673 <- { "return": {
11674 "status": "completed",
11675 "total-time":12345,
11676 "setup-time":12345,
11677 "downtime":12345,
11678 "ram":{
11679 "transferred":123,
11680 "remaining":123,
11681 "total":246,
11682 "duplicate":123,
11683 "normal":123,
11684 "normal-bytes":123456,
11685 "dirty-sync-count":15
11686 }
11687 }
11688 }
11689
11690 3. Migration is done and has failed
11691
11692 -> { "execute": "query-migrate" }
11693 <- { "return": { "status": "failed" } }
11694
11695 4. Migration is being performed and is not a block migration:
11696
11697 -> { "execute": "query-migrate" }
11698 <- {
11699 "return":{
11700 "status":"active",
11701 "total-time":12345,
11702 "setup-time":12345,
11703 "expected-downtime":12345,
11704 "ram":{
11705 "transferred":123,
11706 "remaining":123,
11707 "total":246,
11708 "duplicate":123,
11709 "normal":123,
11710 "normal-bytes":123456,
11711 "dirty-sync-count":15
11712 }
11713 }
11714 }
11715
11716 5. Migration is being performed and is a block migration:
11717
11718 -> { "execute": "query-migrate" }
11719 <- {
11720 "return":{
11721 "status":"active",
11722 "total-time":12345,
11723 "setup-time":12345,
11724 "expected-downtime":12345,
11725 "ram":{
11726 "total":1057024,
11727 "remaining":1053304,
11728 "transferred":3720,
11729 "duplicate":123,
11730 "normal":123,
11731 "normal-bytes":123456,
11732 "dirty-sync-count":15
11733 },
11734 "disk":{
11735 "total":20971520,
11736 "remaining":20880384,
11737 "transferred":91136
11738 }
11739 }
11740 }
11741
11742 6. Migration is being performed and XBZRLE is active:
11743
11744 -> { "execute": "query-migrate" }
11745 <- {
11746 "return":{
11747 "status":"active",
11748 "total-time":12345,
11749 "setup-time":12345,
11750 "expected-downtime":12345,
11751 "ram":{
11752 "total":1057024,
11753 "remaining":1053304,
11754 "transferred":3720,
11755 "duplicate":10,
11756 "normal":3333,
11757 "normal-bytes":3412992,
11758 "dirty-sync-count":15
11759 },
11760 "xbzrle-cache":{
11761 "cache-size":67108864,
11762 "bytes":20971520,
11763 "pages":2444343,
11764 "cache-miss":2244,
11765 "cache-miss-rate":0.123,
11766 "encoding-rate":80.1,
11767 "overflow":34434
11768 }
11769 }
11770 }
11771
11772 MigrationCapability (Enum)
11773
11774 Migration capabilities enumeration
11775
11776 Values:
11777
11778 "xbzrle"
11779 Migration supports xbzrle (Xor Based Zero Run Length Encoding).
11780 This feature allows us to minimize migration traffic for certain
11781 work loads, by sending compressed difference of the pages
11782
11783 "rdma-pin-all"
11784 Controls whether or not the entire VM memory footprint is mlock()'d
11785 on demand or all at once. Refer to docs/rdma.txt for usage.
11786 Disabled by default. (since 2.0)
11787
11788 "zero-blocks"
11789 During storage migration encode blocks of zeroes efficiently. This
11790 essentially saves 1MB of zeroes per block on the wire. Enabling
11791 requires source and target VM to support this feature. To enable it
11792 is sufficient to enable the capability on the source VM. The
11793 feature is disabled by default. (since 1.6)
11794
11795 "compress"
11796 Use multiple compression threads to accelerate live migration.
11797 This feature can help to reduce the migration traffic, by sending
11798 compressed pages. Please note that if compress and xbzrle are both
11799 on, compress only takes effect in the ram bulk stage, after that,
11800 it will be disabled and only xbzrle takes effect, this can help to
11801 minimize migration traffic. The feature is disabled by default.
11802 (since 2.4 )
11803
11804 "events"
11805 generate events for each migration state change (since 2.4 )
11806
11807 "auto-converge"
11808 If enabled, QEMU will automatically throttle down the guest to
11809 speed up convergence of RAM migration. (since 1.6)
11810
11811 "postcopy-ram"
11812 Start executing on the migration target before all of RAM has been
11813 migrated, pulling the remaining pages along as needed. The capacity
11814 must have the same setting on both source and target or migration
11815 will not even start. NOTE: If the migration fails during postcopy
11816 the VM will fail. (since 2.6)
11817
11818 "x-colo"
11819 If enabled, migration will never end, and the state of the VM on
11820 the primary side will be migrated continuously to the VM on
11821 secondary side, this process is called COarse-Grain LOck Stepping
11822 (COLO) for Non-stop Service. (since 2.8)
11823
11824 "release-ram"
11825 if enabled, qemu will free the migrated ram pages on the source
11826 during postcopy-ram migration. (since 2.9)
11827
11828 "block"
11829 If enabled, QEMU will also migrate the contents of all block
11830 devices. Default is disabled. A possible alternative uses mirror
11831 jobs to a builtin NBD server on the destination, which offers more
11832 flexibility. (Since 2.10)
11833
11834 "return-path"
11835 If enabled, migration will use the return path even for precopy.
11836 (since 2.10)
11837
11838 "pause-before-switchover"
11839 Pause outgoing migration before serialising device state and before
11840 disabling block IO (since 2.11)
11841
11842 "multifd"
11843 Use more than one fd for migration (since 4.0)
11844
11845 "dirty-bitmaps"
11846 If enabled, QEMU will migrate named dirty bitmaps. (since 2.12)
11847
11848 "postcopy-blocktime"
11849 Calculate downtime for postcopy live migration (since 3.0)
11850
11851 "late-block-activate"
11852 If enabled, the destination will not activate block devices (and
11853 thus take locks) immediately at the end of migration. (since 3.0)
11854
11855 "x-ignore-shared"
11856 If enabled, QEMU will not migrate shared memory (since 4.0)
11857
11858 "validate-uuid"
11859 Send the UUID of the source to allow the destination to ensure it
11860 is the same. (since 4.2)
11861
11862 Since: 1.2
11863
11864 MigrationCapabilityStatus (Object)
11865
11866 Migration capability information
11867
11868 Members:
11869
11870 "capability: MigrationCapability"
11871 capability enum
11872
11873 "state: boolean"
11874 capability state bool
11875
11876 Since: 1.2
11877
11878 migrate-set-capabilities (Command) Enable/Disable the following
11879 migration capabilities (like xbzrle)
11880
11881 Arguments:
11882
11883 "capabilities: array of MigrationCapabilityStatus"
11884 json array of capability modifications to make
11885
11886 Since: 1.2
11887
11888 Example:
11889
11890 -> { "execute": "migrate-set-capabilities" , "arguments":
11891 { "capabilities": [ { "capability": "xbzrle", "state": true } ] } }
11892
11893 query-migrate-capabilities (Command) Returns information about the
11894 current migration capabilities status
11895
11896 Returns: "MigrationCapabilitiesStatus"
11897
11898 Since: 1.2
11899
11900 Example:
11901
11902 -> { "execute": "query-migrate-capabilities" }
11903 <- { "return": [
11904 {"state": false, "capability": "xbzrle"},
11905 {"state": false, "capability": "rdma-pin-all"},
11906 {"state": false, "capability": "auto-converge"},
11907 {"state": false, "capability": "zero-blocks"},
11908 {"state": false, "capability": "compress"},
11909 {"state": true, "capability": "events"},
11910 {"state": false, "capability": "postcopy-ram"},
11911 {"state": false, "capability": "x-colo"}
11912 ]}
11913
11914 MultiFDCompression (Enum)
11915
11916 An enumeration of multifd compression methods.
11917
11918 Values:
11919
11920 "none"
11921 no compression.
11922
11923 "zlib"
11924 use zlib compression method.
11925
11926 "zstd"
11927 use zstd compression method. If: "defined(CONFIG_ZSTD)"
11928
11929 Since: 5.0
11930
11931 MigrationParameter (Enum)
11932
11933 Migration parameters enumeration
11934
11935 Values:
11936
11937 "announce-initial"
11938 Initial delay (in milliseconds) before sending the first announce
11939 (Since 4.0)
11940
11941 "announce-max"
11942 Maximum delay (in milliseconds) between packets in the announcement
11943 (Since 4.0)
11944
11945 "announce-rounds"
11946 Number of self-announce packets sent after migration (Since 4.0)
11947
11948 "announce-step"
11949 Increase in delay (in milliseconds) between subsequent packets in
11950 the announcement (Since 4.0)
11951
11952 "compress-level"
11953 Set the compression level to be used in live migration, the
11954 compression level is an integer between 0 and 9, where 0 means no
11955 compression, 1 means the best compression speed, and 9 means best
11956 compression ratio which will consume more CPU.
11957
11958 "compress-threads"
11959 Set compression thread count to be used in live migration, the
11960 compression thread count is an integer between 1 and 255.
11961
11962 "compress-wait-thread"
11963 Controls behavior when all compression threads are currently busy.
11964 If true (default), wait for a free compression thread to become
11965 available; otherwise, send the page uncompressed. (Since 3.1)
11966
11967 "decompress-threads"
11968 Set decompression thread count to be used in live migration, the
11969 decompression thread count is an integer between 1 and 255.
11970 Usually, decompression is at least 4 times as fast as compression,
11971 so set the decompress-threads to the number about 1/4 of compress-
11972 threads is adequate.
11973
11974 "throttle-trigger-threshold"
11975 The ratio of bytes_dirty_period and bytes_xfer_period to trigger
11976 throttling. It is expressed as percentage. The default value is
11977 50. (Since 5.0)
11978
11979 "cpu-throttle-initial"
11980 Initial percentage of time guest cpus are throttled when migration
11981 auto-converge is activated. The default value is 20. (Since 2.7)
11982
11983 "cpu-throttle-increment"
11984 throttle percentage increase each time auto-converge detects that
11985 migration is not making progress. The default value is 10. (Since
11986 2.7)
11987
11988 "cpu-throttle-tailslow"
11989 Make CPU throttling slower at tail stage At the tail stage of
11990 throttling, the Guest is very sensitive to CPU percentage while the
11991 "cpu-throttle" -increment is excessive usually at tail stage. If
11992 this parameter is true, we will compute the ideal CPU percentage
11993 used by the Guest, which may exactly make the dirty rate match the
11994 dirty rate threshold. Then we will choose a smaller throttle
11995 increment between the one specified by "cpu-throttle-increment" and
11996 the one generated by ideal CPU percentage. Therefore, it is
11997 compatible to traditional throttling, meanwhile the throttle
11998 increment won't be excessive at tail stage. The default value is
11999 false. (Since 5.1)
12000
12001 "tls-creds"
12002 ID of the 'tls-creds' object that provides credentials for
12003 establishing a TLS connection over the migration data channel. On
12004 the outgoing side of the migration, the credentials must be for a
12005 'client' endpoint, while for the incoming side the credentials must
12006 be for a 'server' endpoint. Setting this will enable TLS for all
12007 migrations. The default is unset, resulting in unsecured migration
12008 at the QEMU level. (Since 2.7)
12009
12010 "tls-hostname"
12011 hostname of the target host for the migration. This is required
12012 when using x509 based TLS credentials and the migration URI does
12013 not already include a hostname. For example if using fd: or exec:
12014 based migration, the hostname must be provided so that the server's
12015 x509 certificate identity can be validated. (Since 2.7)
12016
12017 "tls-authz"
12018 ID of the 'authz' object subclass that provides access control
12019 checking of the TLS x509 certificate distinguished name. This
12020 object is only resolved at time of use, so can be deleted and
12021 recreated on the fly while the migration server is active. If
12022 missing, it will default to denying access (Since 4.0)
12023
12024 "max-bandwidth"
12025 to set maximum speed for migration. maximum speed in bytes per
12026 second. (Since 2.8)
12027
12028 "downtime-limit"
12029 set maximum tolerated downtime for migration. maximum downtime in
12030 milliseconds (Since 2.8)
12031
12032 "x-checkpoint-delay"
12033 The delay time (in ms) between two COLO checkpoints in periodic
12034 mode. (Since 2.8)
12035
12036 "block-incremental"
12037 Affects how much storage is migrated when the block migration
12038 capability is enabled. When false, the entire storage backing
12039 chain is migrated into a flattened image at the destination; when
12040 true, only the active qcow2 layer is migrated and the destination
12041 must already have access to the same backing chain as was used on
12042 the source. (since 2.10)
12043
12044 "multifd-channels"
12045 Number of channels used to migrate data in parallel. This is the
12046 same number that the number of sockets used for migration. The
12047 default value is 2 (since 4.0)
12048
12049 "xbzrle-cache-size"
12050 cache size to be used by XBZRLE migration. It needs to be a
12051 multiple of the target page size and a power of 2 (Since 2.11)
12052
12053 "max-postcopy-bandwidth"
12054 Background transfer bandwidth during postcopy. Defaults to 0
12055 (unlimited). In bytes per second. (Since 3.0)
12056
12057 "max-cpu-throttle"
12058 maximum cpu throttle percentage. Defaults to 99. (Since 3.1)
12059
12060 "multifd-compression"
12061 Which compression method to use. Defaults to none. (Since 5.0)
12062
12063 "multifd-zlib-level"
12064 Set the compression level to be used in live migration, the
12065 compression level is an integer between 0 and 9, where 0 means no
12066 compression, 1 means the best compression speed, and 9 means best
12067 compression ratio which will consume more CPU. Defaults to 1.
12068 (Since 5.0)
12069
12070 "multifd-zstd-level"
12071 Set the compression level to be used in live migration, the
12072 compression level is an integer between 0 and 20, where 0 means no
12073 compression, 1 means the best compression speed, and 20 means best
12074 compression ratio which will consume more CPU. Defaults to 1.
12075 (Since 5.0)
12076
12077 Since: 2.4
12078
12079 MigrateSetParameters (Object)
12080
12081 Members:
12082
12083 "announce-initial: int" (optional)
12084 Initial delay (in milliseconds) before sending the first announce
12085 (Since 4.0)
12086
12087 "announce-max: int" (optional)
12088 Maximum delay (in milliseconds) between packets in the announcement
12089 (Since 4.0)
12090
12091 "announce-rounds: int" (optional)
12092 Number of self-announce packets sent after migration (Since 4.0)
12093
12094 "announce-step: int" (optional)
12095 Increase in delay (in milliseconds) between subsequent packets in
12096 the announcement (Since 4.0)
12097
12098 "compress-level: int" (optional)
12099 compression level
12100
12101 "compress-threads: int" (optional)
12102 compression thread count
12103
12104 "compress-wait-thread: boolean" (optional)
12105 Controls behavior when all compression threads are currently busy.
12106 If true (default), wait for a free compression thread to become
12107 available; otherwise, send the page uncompressed. (Since 3.1)
12108
12109 "decompress-threads: int" (optional)
12110 decompression thread count
12111
12112 "throttle-trigger-threshold: int" (optional)
12113 The ratio of bytes_dirty_period and bytes_xfer_period to trigger
12114 throttling. It is expressed as percentage. The default value is
12115 50. (Since 5.0)
12116
12117 "cpu-throttle-initial: int" (optional)
12118 Initial percentage of time guest cpus are throttled when migration
12119 auto-converge is activated. The default value is 20. (Since 2.7)
12120
12121 "cpu-throttle-increment: int" (optional)
12122 throttle percentage increase each time auto-converge detects that
12123 migration is not making progress. The default value is 10. (Since
12124 2.7)
12125
12126 "cpu-throttle-tailslow: boolean" (optional)
12127 Make CPU throttling slower at tail stage At the tail stage of
12128 throttling, the Guest is very sensitive to CPU percentage while the
12129 "cpu-throttle" -increment is excessive usually at tail stage. If
12130 this parameter is true, we will compute the ideal CPU percentage
12131 used by the Guest, which may exactly make the dirty rate match the
12132 dirty rate threshold. Then we will choose a smaller throttle
12133 increment between the one specified by "cpu-throttle-increment" and
12134 the one generated by ideal CPU percentage. Therefore, it is
12135 compatible to traditional throttling, meanwhile the throttle
12136 increment won't be excessive at tail stage. The default value is
12137 false. (Since 5.1)
12138
12139 "tls-creds: StrOrNull" (optional)
12140 ID of the 'tls-creds' object that provides credentials for
12141 establishing a TLS connection over the migration data channel. On
12142 the outgoing side of the migration, the credentials must be for a
12143 'client' endpoint, while for the incoming side the credentials must
12144 be for a 'server' endpoint. Setting this to a non-empty string
12145 enables TLS for all migrations. An empty string means that QEMU
12146 will use plain text mode for migration, rather than TLS (Since 2.9)
12147 Previously (since 2.7), this was reported by omitting tls-creds
12148 instead.
12149
12150 "tls-hostname: StrOrNull" (optional)
12151 hostname of the target host for the migration. This is required
12152 when using x509 based TLS credentials and the migration URI does
12153 not already include a hostname. For example if using fd: or exec:
12154 based migration, the hostname must be provided so that the server's
12155 x509 certificate identity can be validated. (Since 2.7) An empty
12156 string means that QEMU will use the hostname associated with the
12157 migration URI, if any. (Since 2.9) Previously (since 2.7), this was
12158 reported by omitting tls-hostname instead.
12159
12160 "max-bandwidth: int" (optional)
12161 to set maximum speed for migration. maximum speed in bytes per
12162 second. (Since 2.8)
12163
12164 "downtime-limit: int" (optional)
12165 set maximum tolerated downtime for migration. maximum downtime in
12166 milliseconds (Since 2.8)
12167
12168 "x-checkpoint-delay: int" (optional)
12169 the delay time between two COLO checkpoints. (Since 2.8)
12170
12171 "block-incremental: boolean" (optional)
12172 Affects how much storage is migrated when the block migration
12173 capability is enabled. When false, the entire storage backing
12174 chain is migrated into a flattened image at the destination; when
12175 true, only the active qcow2 layer is migrated and the destination
12176 must already have access to the same backing chain as was used on
12177 the source. (since 2.10)
12178
12179 "multifd-channels: int" (optional)
12180 Number of channels used to migrate data in parallel. This is the
12181 same number that the number of sockets used for migration. The
12182 default value is 2 (since 4.0)
12183
12184 "xbzrle-cache-size: int" (optional)
12185 cache size to be used by XBZRLE migration. It needs to be a
12186 multiple of the target page size and a power of 2 (Since 2.11)
12187
12188 "max-postcopy-bandwidth: int" (optional)
12189 Background transfer bandwidth during postcopy. Defaults to 0
12190 (unlimited). In bytes per second. (Since 3.0)
12191
12192 "max-cpu-throttle: int" (optional)
12193 maximum cpu throttle percentage. The default value is 99. (Since
12194 3.1)
12195
12196 "multifd-compression: MultiFDCompression" (optional)
12197 Which compression method to use. Defaults to none. (Since 5.0)
12198
12199 "multifd-zlib-level: int" (optional)
12200 Set the compression level to be used in live migration, the
12201 compression level is an integer between 0 and 9, where 0 means no
12202 compression, 1 means the best compression speed, and 9 means best
12203 compression ratio which will consume more CPU. Defaults to 1.
12204 (Since 5.0)
12205
12206 "multifd-zstd-level: int" (optional)
12207 Set the compression level to be used in live migration, the
12208 compression level is an integer between 0 and 20, where 0 means no
12209 compression, 1 means the best compression speed, and 20 means best
12210 compression ratio which will consume more CPU. Defaults to 1.
12211 (Since 5.0)
12212
12213 "tls-authz: StrOrNull" (optional)
12214 Not documented
12215
12216 Since: 2.4
12217
12218 migrate-set-parameters (Command) Set various migration parameters.
12219
12220 Arguments: the members of "MigrateSetParameters"
12221
12222 Since: 2.4
12223
12224 Example:
12225
12226 -> { "execute": "migrate-set-parameters" ,
12227 "arguments": { "compress-level": 1 } }
12228
12229 MigrationParameters (Object)
12230
12231 The optional members aren't actually optional.
12232
12233 Members:
12234
12235 "announce-initial: int" (optional)
12236 Initial delay (in milliseconds) before sending the first announce
12237 (Since 4.0)
12238
12239 "announce-max: int" (optional)
12240 Maximum delay (in milliseconds) between packets in the announcement
12241 (Since 4.0)
12242
12243 "announce-rounds: int" (optional)
12244 Number of self-announce packets sent after migration (Since 4.0)
12245
12246 "announce-step: int" (optional)
12247 Increase in delay (in milliseconds) between subsequent packets in
12248 the announcement (Since 4.0)
12249
12250 "compress-level: int" (optional)
12251 compression level
12252
12253 "compress-threads: int" (optional)
12254 compression thread count
12255
12256 "compress-wait-thread: boolean" (optional)
12257 Controls behavior when all compression threads are currently busy.
12258 If true (default), wait for a free compression thread to become
12259 available; otherwise, send the page uncompressed. (Since 3.1)
12260
12261 "decompress-threads: int" (optional)
12262 decompression thread count
12263
12264 "throttle-trigger-threshold: int" (optional)
12265 The ratio of bytes_dirty_period and bytes_xfer_period to trigger
12266 throttling. It is expressed as percentage. The default value is
12267 50. (Since 5.0)
12268
12269 "cpu-throttle-initial: int" (optional)
12270 Initial percentage of time guest cpus are throttled when migration
12271 auto-converge is activated. (Since 2.7)
12272
12273 "cpu-throttle-increment: int" (optional)
12274 throttle percentage increase each time auto-converge detects that
12275 migration is not making progress. (Since 2.7)
12276
12277 "cpu-throttle-tailslow: boolean" (optional)
12278 Make CPU throttling slower at tail stage At the tail stage of
12279 throttling, the Guest is very sensitive to CPU percentage while the
12280 "cpu-throttle" -increment is excessive usually at tail stage. If
12281 this parameter is true, we will compute the ideal CPU percentage
12282 used by the Guest, which may exactly make the dirty rate match the
12283 dirty rate threshold. Then we will choose a smaller throttle
12284 increment between the one specified by "cpu-throttle-increment" and
12285 the one generated by ideal CPU percentage. Therefore, it is
12286 compatible to traditional throttling, meanwhile the throttle
12287 increment won't be excessive at tail stage. The default value is
12288 false. (Since 5.1)
12289
12290 "tls-creds: string" (optional)
12291 ID of the 'tls-creds' object that provides credentials for
12292 establishing a TLS connection over the migration data channel. On
12293 the outgoing side of the migration, the credentials must be for a
12294 'client' endpoint, while for the incoming side the credentials must
12295 be for a 'server' endpoint. An empty string means that QEMU will
12296 use plain text mode for migration, rather than TLS (Since 2.7)
12297 Note: 2.8 reports this by omitting tls-creds instead.
12298
12299 "tls-hostname: string" (optional)
12300 hostname of the target host for the migration. This is required
12301 when using x509 based TLS credentials and the migration URI does
12302 not already include a hostname. For example if using fd: or exec:
12303 based migration, the hostname must be provided so that the server's
12304 x509 certificate identity can be validated. (Since 2.7) An empty
12305 string means that QEMU will use the hostname associated with the
12306 migration URI, if any. (Since 2.9) Note: 2.8 reports this by
12307 omitting tls-hostname instead.
12308
12309 "tls-authz: string" (optional)
12310 ID of the 'authz' object subclass that provides access control
12311 checking of the TLS x509 certificate distinguished name. (Since
12312 4.0)
12313
12314 "max-bandwidth: int" (optional)
12315 to set maximum speed for migration. maximum speed in bytes per
12316 second. (Since 2.8)
12317
12318 "downtime-limit: int" (optional)
12319 set maximum tolerated downtime for migration. maximum downtime in
12320 milliseconds (Since 2.8)
12321
12322 "x-checkpoint-delay: int" (optional)
12323 the delay time between two COLO checkpoints. (Since 2.8)
12324
12325 "block-incremental: boolean" (optional)
12326 Affects how much storage is migrated when the block migration
12327 capability is enabled. When false, the entire storage backing
12328 chain is migrated into a flattened image at the destination; when
12329 true, only the active qcow2 layer is migrated and the destination
12330 must already have access to the same backing chain as was used on
12331 the source. (since 2.10)
12332
12333 "multifd-channels: int" (optional)
12334 Number of channels used to migrate data in parallel. This is the
12335 same number that the number of sockets used for migration. The
12336 default value is 2 (since 4.0)
12337
12338 "xbzrle-cache-size: int" (optional)
12339 cache size to be used by XBZRLE migration. It needs to be a
12340 multiple of the target page size and a power of 2 (Since 2.11)
12341
12342 "max-postcopy-bandwidth: int" (optional)
12343 Background transfer bandwidth during postcopy. Defaults to 0
12344 (unlimited). In bytes per second. (Since 3.0)
12345
12346 "max-cpu-throttle: int" (optional)
12347 maximum cpu throttle percentage. Defaults to 99. (Since 3.1)
12348
12349 "multifd-compression: MultiFDCompression" (optional)
12350 Which compression method to use. Defaults to none. (Since 5.0)
12351
12352 "multifd-zlib-level: int" (optional)
12353 Set the compression level to be used in live migration, the
12354 compression level is an integer between 0 and 9, where 0 means no
12355 compression, 1 means the best compression speed, and 9 means best
12356 compression ratio which will consume more CPU. Defaults to 1.
12357 (Since 5.0)
12358
12359 "multifd-zstd-level: int" (optional)
12360 Set the compression level to be used in live migration, the
12361 compression level is an integer between 0 and 20, where 0 means no
12362 compression, 1 means the best compression speed, and 20 means best
12363 compression ratio which will consume more CPU. Defaults to 1.
12364 (Since 5.0)
12365
12366 Since: 2.4
12367
12368 query-migrate-parameters (Command) Returns information about the
12369 current migration parameters
12370
12371 Returns: "MigrationParameters"
12372
12373 Since: 2.4
12374
12375 Example:
12376
12377 -> { "execute": "query-migrate-parameters" }
12378 <- { "return": {
12379 "decompress-threads": 2,
12380 "cpu-throttle-increment": 10,
12381 "compress-threads": 8,
12382 "compress-level": 1,
12383 "cpu-throttle-initial": 20,
12384 "max-bandwidth": 33554432,
12385 "downtime-limit": 300
12386 }
12387 }
12388
12389 client_migrate_info (Command) Set migration information for remote
12390 display. This makes the server ask the client to automatically
12391 reconnect using the new parameters once migration finished
12392 successfully. Only implemented for SPICE.
12393
12394 Arguments:
12395
12396 "protocol: string"
12397 must be "spice"
12398
12399 "hostname: string"
12400 migration target hostname
12401
12402 "port: int" (optional)
12403 spice tcp port for plaintext channels
12404
12405 "tls-port: int" (optional)
12406 spice tcp port for tls-secured channels
12407
12408 "cert-subject: string" (optional)
12409 server certificate subject
12410
12411 Since: 0.14.0
12412
12413 Example:
12414
12415 -> { "execute": "client_migrate_info",
12416 "arguments": { "protocol": "spice",
12417 "hostname": "virt42.lab.kraxel.org",
12418 "port": 1234 } }
12419 <- { "return": {} }
12420
12421 migrate-start-postcopy (Command) Followup to a migration command to
12422 switch the migration to postcopy mode. The postcopy-ram capability
12423 must be set on both source and destination before the original
12424 migration command.
12425
12426 Since: 2.5
12427
12428 Example:
12429
12430 -> { "execute": "migrate-start-postcopy" }
12431 <- { "return": {} }
12432
12433 MIGRATION (Event) Emitted when a migration event happens
12434
12435 Arguments:
12436
12437 "status: MigrationStatus"
12438 "MigrationStatus" describing the current migration status.
12439
12440 Since: 2.4
12441
12442 Example:
12443
12444 <- {"timestamp": {"seconds": 1432121972, "microseconds": 744001},
12445 "event": "MIGRATION",
12446 "data": {"status": "completed"} }
12447
12448 MIGRATION_PASS (Event) Emitted from the source side of a migration at
12449 the start of each pass (when it syncs the dirty bitmap)
12450
12451 Arguments:
12452
12453 "pass: int"
12454 An incrementing count (starting at 1 on the first pass)
12455
12456 Since: 2.6
12457
12458 Example:
12459
12460 { "timestamp": {"seconds": 1449669631, "microseconds": 239225},
12461 "event": "MIGRATION_PASS", "data": {"pass": 2} }
12462
12463 COLOMessage (Enum)
12464
12465 The message transmission between Primary side and Secondary side.
12466
12467 Values:
12468
12469 "checkpoint-ready"
12470 Secondary VM (SVM) is ready for checkpointing
12471
12472 "checkpoint-request"
12473 Primary VM (PVM) tells SVM to prepare for checkpointing
12474
12475 "checkpoint-reply"
12476 SVM gets PVM's checkpoint request
12477
12478 "vmstate-send"
12479 VM's state will be sent by PVM.
12480
12481 "vmstate-size"
12482 The total size of VMstate.
12483
12484 "vmstate-received"
12485 VM's state has been received by SVM.
12486
12487 "vmstate-loaded"
12488 VM's state has been loaded by SVM.
12489
12490 Since: 2.8
12491
12492 COLOMode (Enum)
12493
12494 The COLO current mode.
12495
12496 Values:
12497
12498 "none"
12499 COLO is disabled.
12500
12501 "primary"
12502 COLO node in primary side.
12503
12504 "secondary"
12505 COLO node in slave side.
12506
12507 Since: 2.8
12508
12509 FailoverStatus (Enum)
12510
12511 An enumeration of COLO failover status
12512
12513 Values:
12514
12515 "none"
12516 no failover has ever happened
12517
12518 "require"
12519 got failover requirement but not handled
12520
12521 "active"
12522 in the process of doing failover
12523
12524 "completed"
12525 finish the process of failover
12526
12527 "relaunch"
12528 restart the failover process, from 'none' -> 'completed' (Since
12529 2.9)
12530
12531 Since: 2.8
12532
12533 COLO_EXIT (Event) Emitted when VM finishes COLO mode due to some
12534 errors happening or at the request of users.
12535
12536 Arguments:
12537
12538 "mode: COLOMode"
12539 report COLO mode when COLO exited.
12540
12541 "reason: COLOExitReason"
12542 describes the reason for the COLO exit.
12543
12544 Since: 3.1
12545
12546 Example:
12547
12548 <- { "timestamp": {"seconds": 2032141960, "microseconds": 417172},
12549 "event": "COLO_EXIT", "data": {"mode": "primary", "reason": "request" } }
12550
12551 COLOExitReason (Enum)
12552
12553 The reason for a COLO exit.
12554
12555 Values:
12556
12557 "none"
12558 failover has never happened. This state does not occur in the
12559 COLO_EXIT event, and is only visible in the result of query-colo-
12560 status.
12561
12562 "request"
12563 COLO exit is due to an external request.
12564
12565 "error"
12566 COLO exit is due to an internal error.
12567
12568 "processing"
12569 COLO is currently handling a failover (since 4.0).
12570
12571 Since: 3.1
12572
12573 x-colo-lost-heartbeat (Command) Tell qemu that heartbeat is lost,
12574 request it to do takeover procedures. If this command is sent to the
12575 PVM, the Primary side will exit COLO mode. If sent to the Secondary,
12576 the Secondary side will run failover work, then takes over server
12577 operation to become the service VM.
12578
12579 Since: 2.8
12580
12581 Example:
12582
12583 -> { "execute": "x-colo-lost-heartbeat" }
12584 <- { "return": {} }
12585
12586 migrate_cancel (Command) Cancel the current executing migration
12587 process.
12588
12589 Returns: nothing on success
12590
12591 Notes: This command succeeds even if there is no migration process
12592 running.
12593
12594 Since: 0.14.0
12595
12596 Example:
12597
12598 -> { "execute": "migrate_cancel" }
12599 <- { "return": {} }
12600
12601 migrate-continue (Command) Continue migration when it's in a paused
12602 state.
12603
12604 Arguments:
12605
12606 "state: MigrationStatus"
12607 The state the migration is currently expected to be in
12608
12609 Returns: nothing on success
12610
12611 Since: 2.11
12612
12613 Example:
12614
12615 -> { "execute": "migrate-continue" , "arguments":
12616 { "state": "pre-switchover" } }
12617 <- { "return": {} }
12618
12619 migrate_set_downtime (Command) Set maximum tolerated downtime for
12620 migration.
12621
12622 Arguments:
12623
12624 "value: number"
12625 maximum downtime in seconds
12626
12627 Features:
12628
12629 "deprecated"
12630 This command is deprecated. Use 'migrate-set-parameters' instead.
12631
12632 Returns: nothing on success
12633
12634 Since: 0.14.0
12635
12636 Example:
12637
12638 -> { "execute": "migrate_set_downtime", "arguments": { "value": 0.1 } }
12639 <- { "return": {} }
12640
12641 migrate_set_speed (Command) Set maximum speed for migration.
12642
12643 Arguments:
12644
12645 "value: int"
12646 maximum speed in bytes per second.
12647
12648 Features:
12649
12650 "deprecated"
12651 This command is deprecated. Use 'migrate-set-parameters' instead.
12652
12653 Returns: nothing on success
12654
12655 Since: 0.14.0
12656
12657 Example:
12658
12659 -> { "execute": "migrate_set_speed", "arguments": { "value": 1024 } }
12660 <- { "return": {} }
12661
12662 migrate-set-cache-size (Command) Set cache size to be used by XBZRLE
12663 migration
12664
12665 Arguments:
12666
12667 "value: int"
12668 cache size in bytes
12669
12670 Features:
12671
12672 "deprecated"
12673 This command is deprecated. Use 'migrate-set-parameters' instead.
12674
12675 The size will be rounded down to the nearest power of 2. The cache
12676 size can be modified before and during ongoing migration
12677
12678 Returns: nothing on success
12679
12680 Since: 1.2
12681
12682 Example:
12683
12684 -> { "execute": "migrate-set-cache-size",
12685 "arguments": { "value": 536870912 } }
12686 <- { "return": {} }
12687
12688 query-migrate-cache-size (Command) Query migration XBZRLE cache size
12689
12690 Features:
12691
12692 "deprecated"
12693 This command is deprecated. Use 'query-migrate-parameters'
12694 instead.
12695
12696 Returns: XBZRLE cache size in bytes
12697
12698 Since: 1.2
12699
12700 Example:
12701
12702 -> { "execute": "query-migrate-cache-size" }
12703 <- { "return": 67108864 }
12704
12705 migrate (Command) Migrates the current running guest to another
12706 Virtual Machine.
12707
12708 Arguments:
12709
12710 "uri: string"
12711 the Uniform Resource Identifier of the destination VM
12712
12713 "blk: boolean" (optional)
12714 do block migration (full disk copy)
12715
12716 "inc: boolean" (optional)
12717 incremental disk copy migration
12718
12719 "detach: boolean" (optional)
12720 this argument exists only for compatibility reasons and is ignored
12721 by QEMU
12722
12723 "resume: boolean" (optional)
12724 resume one paused migration, default "off". (since 3.0)
12725
12726 Returns: nothing on success
12727
12728 Since: 0.14.0
12729
12730 Notes:
12731
12732 1. The 'query-migrate' command should be used to check migration's
12733 progress and final result (this information is provided by the
12734 'status' member)
12735
12736 2. All boolean arguments default to false
12737
12738 3. The user Monitor's "detach" argument is invalid in QMP and should
12739 not be used
12740
12741 Example:
12742
12743 -> { "execute": "migrate", "arguments": { "uri": "tcp:0:4446" } }
12744 <- { "return": {} }
12745
12746 migrate-incoming (Command) Start an incoming migration, the qemu must
12747 have been started with -incoming defer
12748
12749 Arguments:
12750
12751 "uri: string"
12752 The Uniform Resource Identifier identifying the source or address
12753 to listen on
12754
12755 Returns: nothing on success
12756
12757 Since: 2.3
12758
12759 Notes:
12760
12761 1. It's a bad idea to use a string for the uri, but it needs to stay
12762 compatible with -incoming and the format of the uri is already
12763 exposed above libvirt.
12764
12765 2. QEMU must be started with -incoming defer to allow migrate-incoming
12766 to be used.
12767
12768 3. The uri format is the same as for -incoming
12769
12770 Example:
12771
12772 -> { "execute": "migrate-incoming",
12773 "arguments": { "uri": "tcp::4446" } }
12774 <- { "return": {} }
12775
12776 xen-save-devices-state (Command) Save the state of all devices to
12777 file. The RAM and the block devices of the VM are not saved by this
12778 command.
12779
12780 Arguments:
12781
12782 "filename: string"
12783 the file to save the state of the devices to as binary data. See
12784 xen-save-devices-state.txt for a description of the binary format.
12785
12786 "live: boolean" (optional)
12787 Optional argument to ask QEMU to treat this command as part of a
12788 live migration. Default to true. (since 2.11)
12789
12790 Returns: Nothing on success
12791
12792 Since: 1.1
12793
12794 Example:
12795
12796 -> { "execute": "xen-save-devices-state",
12797 "arguments": { "filename": "/tmp/save" } }
12798 <- { "return": {} }
12799
12800 xen-set-replication (Command) Enable or disable replication.
12801
12802 Arguments:
12803
12804 "enable: boolean"
12805 true to enable, false to disable.
12806
12807 "primary: boolean"
12808 true for primary or false for secondary.
12809
12810 "failover: boolean" (optional)
12811 true to do failover, false to stop. but cannot be specified if
12812 'enable' is true. default value is false.
12813
12814 Returns: nothing.
12815
12816 Example:
12817
12818 -> { "execute": "xen-set-replication",
12819 "arguments": {"enable": true, "primary": false} }
12820 <- { "return": {} }
12821
12822 Since: 2.9
12823
12824 If: "defined(CONFIG_REPLICATION)"
12825
12826 ReplicationStatus (Object)
12827
12828 The result format for 'query-xen-replication-status'.
12829
12830 Members:
12831
12832 "error: boolean"
12833 true if an error happened, false if replication is normal.
12834
12835 "desc: string" (optional)
12836 the human readable error description string, when "error" is
12837 'true'.
12838
12839 Since: 2.9
12840
12841 If: "defined(CONFIG_REPLICATION)"
12842
12843 query-xen-replication-status (Command) Query replication status while
12844 the vm is running.
12845
12846 Returns: A "ReplicationResult" object showing the status.
12847
12848 Example:
12849
12850 -> { "execute": "query-xen-replication-status" }
12851 <- { "return": { "error": false } }
12852
12853 Since: 2.9
12854
12855 If: "defined(CONFIG_REPLICATION)"
12856
12857 xen-colo-do-checkpoint (Command) Xen uses this command to notify
12858 replication to trigger a checkpoint.
12859
12860 Returns: nothing.
12861
12862 Example:
12863
12864 -> { "execute": "xen-colo-do-checkpoint" }
12865 <- { "return": {} }
12866
12867 Since: 2.9
12868
12869 If: "defined(CONFIG_REPLICATION)"
12870
12871 COLOStatus (Object)
12872
12873 The result format for 'query-colo-status'.
12874
12875 Members:
12876
12877 "mode: COLOMode"
12878 COLO running mode. If COLO is running, this field will return
12879 'primary' or 'secondary'.
12880
12881 "last-mode: COLOMode"
12882 COLO last running mode. If COLO is running, this field will return
12883 same like mode field, after failover we can use this field to get
12884 last colo mode. (since 4.0)
12885
12886 "reason: COLOExitReason"
12887 describes the reason for the COLO exit.
12888
12889 Since: 3.1
12890
12891 query-colo-status (Command) Query COLO status while the vm is running.
12892
12893 Returns: A "COLOStatus" object showing the status.
12894
12895 Example:
12896
12897 -> { "execute": "query-colo-status" }
12898 <- { "return": { "mode": "primary", "reason": "request" } }
12899
12900 Since: 3.1
12901
12902 migrate-recover (Command) Provide a recovery migration stream URI.
12903
12904 Arguments:
12905
12906 "uri: string"
12907 the URI to be used for the recovery of migration stream.
12908
12909 Returns: nothing.
12910
12911 Example:
12912
12913 -> { "execute": "migrate-recover",
12914 "arguments": { "uri": "tcp:192.168.1.200:12345" } }
12915 <- { "return": {} }
12916
12917 Since: 3.0
12918
12919 migrate-pause (Command) Pause a migration. Currently it only supports
12920 postcopy.
12921
12922 Returns: nothing.
12923
12924 Example:
12925
12926 -> { "execute": "migrate-pause" }
12927 <- { "return": {} }
12928
12929 Since: 3.0
12930
12931 UNPLUG_PRIMARY (Event) Emitted from source side of a migration when
12932 migration state is WAIT_UNPLUG. Device was unplugged by guest operating
12933 system. Device resources in QEMU are kept on standby to be able to re-
12934 plug it in case of migration failure.
12935
12936 Arguments:
12937
12938 "device-id: string"
12939 QEMU device id of the unplugged device
12940
12941 Since: 4.2
12942
12943 Example:
12944
12945 {"event": "UNPLUG_PRIMARY", "data": {"device-id": "hostdev0"} }
12946
12947 Transactions
12948 Abort (Object)
12949
12950 This action can be used to test transaction failure.
12951
12952 Since: 1.6
12953
12954 ActionCompletionMode (Enum)
12955
12956 An enumeration of Transactional completion modes.
12957
12958 Values:
12959
12960 "individual"
12961 Do not attempt to cancel any other Actions if any Actions fail
12962 after the Transaction request succeeds. All Actions that can
12963 complete successfully will do so without waiting on others. This
12964 is the default.
12965
12966 "grouped"
12967 If any Action fails after the Transaction succeeds, cancel all
12968 Actions. Actions do not complete until all Actions are ready to
12969 complete. May be rejected by Actions that do not support this
12970 completion mode.
12971
12972 Since: 2.5
12973
12974 TransactionAction (Object)
12975
12976 A discriminated record of operations that can be performed with
12977 "transaction". Action "type" can be:
12978
12979 - "abort": since 1.6
12980
12981 - "block-dirty-bitmap-add": since 2.5
12982
12983 - "block-dirty-bitmap-remove": since 4.2
12984
12985 - "block-dirty-bitmap-clear": since 2.5
12986
12987 - "block-dirty-bitmap-enable": since 4.0
12988
12989 - "block-dirty-bitmap-disable": since 4.0
12990
12991 - "block-dirty-bitmap-merge": since 4.0
12992
12993 - "blockdev-backup": since 2.3
12994
12995 - "blockdev-snapshot": since 2.5
12996
12997 - "blockdev-snapshot-internal-sync": since 1.7
12998
12999 - "blockdev-snapshot-sync": since 1.1
13000
13001 - "drive-backup": since 1.6
13002
13003 Members:
13004
13005 "type"
13006 One of "abort", "block-dirty-bitmap-add", "block-dirty-bitmap-
13007 remove", "block-dirty-bitmap-clear", "block-dirty-bitmap-enable",
13008 "block-dirty-bitmap-disable", "block-dirty-bitmap-merge",
13009 "blockdev-backup", "blockdev-snapshot", "blockdev-snapshot-
13010 internal-sync", "blockdev-snapshot-sync", "drive-backup"
13011
13012 "data: Abort" when "type" is "abort"
13013 "data: BlockDirtyBitmapAdd" when "type" is "block-dirty-bitmap-add"
13014 "data: BlockDirtyBitmap" when "type" is "block-dirty-bitmap-remove"
13015 "data: BlockDirtyBitmap" when "type" is "block-dirty-bitmap-clear"
13016 "data: BlockDirtyBitmap" when "type" is "block-dirty-bitmap-enable"
13017 "data: BlockDirtyBitmap" when "type" is "block-dirty-bitmap-disable"
13018 "data: BlockDirtyBitmapMerge" when "type" is "block-dirty-bitmap-merge"
13019 "data: BlockdevBackup" when "type" is "blockdev-backup"
13020 "data: BlockdevSnapshot" when "type" is "blockdev-snapshot"
13021 "data: BlockdevSnapshotInternal" when "type" is "blockdev-snapshot-
13022 internal-sync"
13023 "data: BlockdevSnapshotSync" when "type" is "blockdev-snapshot-sync"
13024 "data: DriveBackup" when "type" is "drive-backup"
13025
13026 Since: 1.1
13027
13028 TransactionProperties (Object)
13029
13030 Optional arguments to modify the behavior of a Transaction.
13031
13032 Members:
13033
13034 "completion-mode: ActionCompletionMode" (optional)
13035 Controls how jobs launched asynchronously by Actions will complete
13036 or fail as a group. See "ActionCompletionMode" for details.
13037
13038 Since: 2.5
13039
13040 transaction (Command) Executes a number of transactionable QMP
13041 commands atomically. If any operation fails, then the entire set of
13042 actions will be abandoned and the appropriate error returned.
13043
13044 For external snapshots, the dictionary contains the device, the file to
13045 use for the new snapshot, and the format. The default format, if not
13046 specified, is qcow2.
13047
13048 Each new snapshot defaults to being created by QEMU (wiping any
13049 contents if the file already exists), but it is also possible to reuse
13050 an externally-created file. In the latter case, you should ensure that
13051 the new image file has the same contents as the current one; QEMU
13052 cannot perform any meaningful check. Typically this is achieved by
13053 using the current image file as the backing file for the new image.
13054
13055 On failure, the original disks pre-snapshot attempt will be used.
13056
13057 For internal snapshots, the dictionary contains the device and the
13058 snapshot's name. If an internal snapshot matching name already exists,
13059 the request will be rejected. Only some image formats support it, for
13060 example, qcow2, rbd, and sheepdog.
13061
13062 On failure, qemu will try delete the newly created internal snapshot in
13063 the transaction. When an I/O error occurs during deletion, the user
13064 needs to fix it later with qemu-img or other command.
13065
13066 Arguments:
13067
13068 "actions: array of TransactionAction"
13069 List of "TransactionAction"; information needed for the respective
13070 operations.
13071
13072 "properties: TransactionProperties" (optional)
13073 structure of additional options to control the execution of the
13074 transaction. See "TransactionProperties" for additional detail.
13075
13076 Returns: nothing on success
13077
13078 Errors depend on the operations of the transaction
13079
13080 Note: The transaction aborts on the first failure. Therefore, there
13081 will be information on only one failed operation returned in an error
13082 condition, and subsequent actions will not have been attempted.
13083
13084 Since: 1.1
13085
13086 Example:
13087
13088 -> { "execute": "transaction",
13089 "arguments": { "actions": [
13090 { "type": "blockdev-snapshot-sync", "data" : { "device": "ide-hd0",
13091 "snapshot-file": "/some/place/my-image",
13092 "format": "qcow2" } },
13093 { "type": "blockdev-snapshot-sync", "data" : { "node-name": "myfile",
13094 "snapshot-file": "/some/place/my-image2",
13095 "snapshot-node-name": "node3432",
13096 "mode": "existing",
13097 "format": "qcow2" } },
13098 { "type": "blockdev-snapshot-sync", "data" : { "device": "ide-hd1",
13099 "snapshot-file": "/some/place/my-image2",
13100 "mode": "existing",
13101 "format": "qcow2" } },
13102 { "type": "blockdev-snapshot-internal-sync", "data" : {
13103 "device": "ide-hd2",
13104 "name": "snapshot0" } } ] } }
13105 <- { "return": {} }
13106
13107 Tracing
13108 TraceEventState (Enum)
13109
13110 State of a tracing event.
13111
13112 Values:
13113
13114 "unavailable"
13115 The event is statically disabled.
13116
13117 "disabled"
13118 The event is dynamically disabled.
13119
13120 "enabled"
13121 The event is dynamically enabled.
13122
13123 Since: 2.2
13124
13125 TraceEventInfo (Object)
13126
13127 Information of a tracing event.
13128
13129 Members:
13130
13131 "name: string"
13132 Event name.
13133
13134 "state: TraceEventState"
13135 Tracing state.
13136
13137 "vcpu: boolean"
13138 Whether this is a per-vCPU event (since 2.7).
13139
13140 An event is per-vCPU if it has the "vcpu" property in the "trace-
13141 events" files.
13142
13143 Since: 2.2
13144
13145 trace-event-get-state (Command) Query the state of events.
13146
13147 Arguments:
13148
13149 "name: string"
13150 Event name pattern (case-sensitive glob).
13151
13152 "vcpu: int" (optional)
13153 The vCPU to query (any by default; since 2.7).
13154
13155 Returns: a list of "TraceEventInfo" for the matching events
13156
13157 An event is returned if:
13158
13159 - its name matches the "name" pattern, and
13160
13161 - if "vcpu" is given, the event has the "vcpu" property.
13162
13163 Therefore, if "vcpu" is given, the operation will only match per-vCPU
13164 events, returning their state on the specified vCPU. Special case: if
13165 "name" is an exact match, "vcpu" is given and the event does not have
13166 the "vcpu" property, an error is returned.
13167
13168 Since: 2.2
13169
13170 Example:
13171
13172 -> { "execute": "trace-event-get-state",
13173 "arguments": { "name": "qemu_memalign" } }
13174 <- { "return": [ { "name": "qemu_memalign", "state": "disabled" } ] }
13175
13176 trace-event-set-state (Command) Set the dynamic tracing state of
13177 events.
13178
13179 Arguments:
13180
13181 "name: string"
13182 Event name pattern (case-sensitive glob).
13183
13184 "enable: boolean"
13185 Whether to enable tracing.
13186
13187 "ignore-unavailable: boolean" (optional)
13188 Do not match unavailable events with "name".
13189
13190 "vcpu: int" (optional)
13191 The vCPU to act upon (all by default; since 2.7).
13192
13193 An event's state is modified if:
13194
13195 - its name matches the "name" pattern, and
13196
13197 - if "vcpu" is given, the event has the "vcpu" property.
13198
13199 Therefore, if "vcpu" is given, the operation will only match per-vCPU
13200 events, setting their state on the specified vCPU. Special case: if
13201 "name" is an exact match, "vcpu" is given and the event does not have
13202 the "vcpu" property, an error is returned.
13203
13204 Since: 2.2
13205
13206 Example:
13207
13208 -> { "execute": "trace-event-set-state",
13209 "arguments": { "name": "qemu_memalign", "enable": "true" } }
13210 <- { "return": {} }
13211
13212 QMP monitor control
13213 qmp_capabilities (Command) Enable QMP capabilities.
13214
13215 Arguments:
13216
13217 Arguments:
13218
13219 "enable: array of QMPCapability" (optional)
13220 An optional list of QMPCapability values to enable. The client
13221 must not enable any capability that is not mentioned in the QMP
13222 greeting message. If the field is not provided, it means no QMP
13223 capabilities will be enabled. (since 2.12)
13224
13225 Example:
13226
13227 -> { "execute": "qmp_capabilities",
13228 "arguments": { "enable": [ "oob" ] } }
13229 <- { "return": {} }
13230
13231 Notes: This command is valid exactly when first connecting: it must be
13232 issued before any other command will be accepted, and will fail once
13233 the monitor is accepting other commands. (see qemu
13234 docs/interop/qmp-spec.txt)
13235
13236 The QMP client needs to explicitly enable QMP capabilities, otherwise
13237 all the QMP capabilities will be turned off by default.
13238
13239 Since: 0.13
13240
13241 QMPCapability (Enum)
13242
13243 Enumeration of capabilities to be advertised during initial client
13244 connection, used for agreeing on particular QMP extension behaviors.
13245
13246 Values:
13247
13248 "oob"
13249 QMP ability to support out-of-band requests. (Please refer to
13250 qmp-spec.txt for more information on OOB)
13251
13252 Since: 2.12
13253
13254 VersionTriple (Object)
13255
13256 A three-part version number.
13257
13258 Members:
13259
13260 "major: int"
13261 The major version number.
13262
13263 "minor: int"
13264 The minor version number.
13265
13266 "micro: int"
13267 The micro version number.
13268
13269 Since: 2.4
13270
13271 VersionInfo (Object)
13272
13273 A description of QEMU's version.
13274
13275 Members:
13276
13277 "qemu: VersionTriple"
13278 The version of QEMU. By current convention, a micro version of 50
13279 signifies a development branch. A micro version greater than or
13280 equal to 90 signifies a release candidate for the next minor
13281 version. A micro version of less than 50 signifies a stable
13282 release.
13283
13284 "package: string"
13285 QEMU will always set this field to an empty string. Downstream
13286 versions of QEMU should set this to a non-empty string. The exact
13287 format depends on the downstream however it highly recommended that
13288 a unique name is used.
13289
13290 Since: 0.14.0
13291
13292 query-version (Command) Returns the current version of QEMU.
13293
13294 Returns: A "VersionInfo" object describing the current version of QEMU.
13295
13296 Since: 0.14.0
13297
13298 Example:
13299
13300 -> { "execute": "query-version" }
13301 <- {
13302 "return":{
13303 "qemu":{
13304 "major":0,
13305 "minor":11,
13306 "micro":5
13307 },
13308 "package":""
13309 }
13310 }
13311
13312 CommandInfo (Object)
13313
13314 Information about a QMP command
13315
13316 Members:
13317
13318 "name: string"
13319 The command name
13320
13321 Since: 0.14.0
13322
13323 query-commands (Command) Return a list of supported QMP commands by
13324 this server
13325
13326 Returns: A list of "CommandInfo" for all supported commands
13327
13328 Since: 0.14.0
13329
13330 Example:
13331
13332 -> { "execute": "query-commands" }
13333 <- {
13334 "return":[
13335 {
13336 "name":"query-balloon"
13337 },
13338 {
13339 "name":"system_powerdown"
13340 }
13341 ]
13342 }
13343
13344 Note: This example has been shortened as the real response is too long.
13345
13346 EventInfo (Object)
13347
13348 Information about a QMP event
13349
13350 Members:
13351
13352 "name: string"
13353 The event name
13354
13355 Since: 1.2.0
13356
13357 query-events (Command) Return information on QMP events.
13358
13359 Features:
13360
13361 "deprecated"
13362 This command is deprecated, because its output doesn't reflect
13363 compile-time configuration. Use 'query-qmp-schema' instead.
13364
13365 Returns: A list of "EventInfo".
13366
13367 Since: 1.2.0
13368
13369 Example:
13370
13371 -> { "execute": "query-events" }
13372 <- {
13373 "return": [
13374 {
13375 "name":"SHUTDOWN"
13376 },
13377 {
13378 "name":"RESET"
13379 }
13380 ]
13381 }
13382
13383 Note: This example has been shortened as the real response is too long.
13384
13385 quit (Command) This command will cause the QEMU process to exit
13386 gracefully. While every attempt is made to send the QMP response
13387 before terminating, this is not guaranteed. When using this interface,
13388 a premature EOF would not be unexpected.
13389
13390 Since: 0.14.0
13391
13392 Example:
13393
13394 -> { "execute": "quit" }
13395 <- { "return": {} }
13396
13397 MonitorMode (Enum)
13398
13399 An enumeration of monitor modes.
13400
13401 Values:
13402
13403 "readline"
13404 HMP monitor (human-oriented command line interface)
13405
13406 "control"
13407 QMP monitor (JSON-based machine interface)
13408
13409 Since: 5.0
13410
13411 MonitorOptions (Object)
13412
13413 Options to be used for adding a new monitor.
13414
13415 Members:
13416
13417 "id: string" (optional)
13418 Name of the monitor
13419
13420 "mode: MonitorMode" (optional)
13421 Selects the monitor mode (default: readline in the system emulator,
13422 control in qemu-storage-daemon)
13423
13424 "pretty: boolean" (optional)
13425 Enables pretty printing (QMP only)
13426
13427 "chardev: string"
13428 Name of a character device to expose the monitor on
13429
13430 Since: 5.0
13431
13432 QMP introspection
13433 query-qmp-schema (Command) Command query-qmp-schema exposes the QMP
13434 wire ABI as an array of SchemaInfo. This lets QMP clients figure out
13435 what commands and events are available in this QEMU, and their
13436 parameters and results.
13437
13438 However, the SchemaInfo can't reflect all the rules and restrictions
13439 that apply to QMP. It's interface introspection (figuring out what's
13440 there), not interface specification. The specification is in the QAPI
13441 schema.
13442
13443 Furthermore, while we strive to keep the QMP wire format backwards-
13444 compatible across qemu versions, the introspection output is not
13445 guaranteed to have the same stability. For example, one version of
13446 qemu may list an object member as an optional non-variant, while
13447 another lists the same member only through the object's variants; or
13448 the type of a member may change from a generic string into a specific
13449 enum or from one specific type into an alternate that includes the
13450 original type alongside something else.
13451
13452 Returns: array of "SchemaInfo", where each element describes an entity
13453 in the ABI: command, event, type, ...
13454
13455 The order of the various SchemaInfo is unspecified; however, all names
13456 are guaranteed to be unique (no name will be duplicated with different
13457 meta-types).
13458
13459 Note: the QAPI schema is also used to help define internal interfaces,
13460 by defining QAPI types. These are not part of the QMP wire ABI, and
13461 therefore not returned by this command.
13462
13463 Since: 2.5
13464
13465 SchemaMetaType (Enum)
13466
13467 This is a "SchemaInfo"'s meta type, i.e. the kind of entity it
13468 describes.
13469
13470 Values:
13471
13472 "builtin"
13473 a predefined type such as 'int' or 'bool'.
13474
13475 "enum"
13476 an enumeration type
13477
13478 "array"
13479 an array type
13480
13481 "object"
13482 an object type (struct or union)
13483
13484 "alternate"
13485 an alternate type
13486
13487 "command"
13488 a QMP command
13489
13490 "event"
13491 a QMP event
13492
13493 Since: 2.5
13494
13495 SchemaInfo (Object)
13496
13497 Members:
13498
13499 "name: string"
13500 the entity's name, inherited from "base". The SchemaInfo is always
13501 referenced by this name. Commands and events have the name defined
13502 in the QAPI schema. Unlike command and event names, type names are
13503 not part of the wire ABI. Consequently, type names are meaningless
13504 strings here, although they are still guaranteed unique regardless
13505 of "meta-type".
13506
13507 "meta-type: SchemaMetaType"
13508 the entity's meta type, inherited from "base".
13509
13510 "features: array of string" (optional)
13511 names of features associated with the entity, in no particular
13512 order. (since 4.1 for object types, 4.2 for commands, 5.0 for the
13513 rest)
13514
13515 The members of "SchemaInfoBuiltin" when "meta-type" is "builtin"
13516 The members of "SchemaInfoEnum" when "meta-type" is "enum"
13517 The members of "SchemaInfoArray" when "meta-type" is "array"
13518 The members of "SchemaInfoObject" when "meta-type" is "object"
13519 The members of "SchemaInfoAlternate" when "meta-type" is "alternate"
13520 The members of "SchemaInfoCommand" when "meta-type" is "command"
13521 The members of "SchemaInfoEvent" when "meta-type" is "event"
13522
13523 Additional members depend on the value of "meta-type".
13524
13525 Since: 2.5
13526
13527 SchemaInfoBuiltin (Object)
13528
13529 Additional SchemaInfo members for meta-type 'builtin'.
13530
13531 Members:
13532
13533 "json-type: JSONType"
13534 the JSON type used for this type on the wire.
13535
13536 Since: 2.5
13537
13538 JSONType (Enum)
13539
13540 The four primitive and two structured types according to RFC 8259
13541 section 1, plus 'int' (split off 'number'), plus the obvious top type
13542 'value'.
13543
13544 Values:
13545
13546 "string"
13547 Not documented
13548
13549 "number"
13550 Not documented
13551
13552 "int"
13553 Not documented
13554
13555 "boolean"
13556 Not documented
13557
13558 "null"
13559 Not documented
13560
13561 "object"
13562 Not documented
13563
13564 "array"
13565 Not documented
13566
13567 "value"
13568 Not documented
13569
13570 Since: 2.5
13571
13572 SchemaInfoEnum (Object)
13573
13574 Additional SchemaInfo members for meta-type 'enum'.
13575
13576 Members:
13577
13578 "values: array of string"
13579 the enumeration type's values, in no particular order.
13580
13581 Values of this type are JSON string on the wire.
13582
13583 Since: 2.5
13584
13585 SchemaInfoArray (Object)
13586
13587 Additional SchemaInfo members for meta-type 'array'.
13588
13589 Members:
13590
13591 "element-type: string"
13592 the array type's element type.
13593
13594 Values of this type are JSON array on the wire.
13595
13596 Since: 2.5
13597
13598 SchemaInfoObject (Object)
13599
13600 Additional SchemaInfo members for meta-type 'object'.
13601
13602 Members:
13603
13604 "members: array of SchemaInfoObjectMember"
13605 the object type's (non-variant) members, in no particular order.
13606
13607 "tag: string" (optional)
13608 the name of the member serving as type tag. An element of
13609 "members" with this name must exist.
13610
13611 "variants: array of SchemaInfoObjectVariant" (optional)
13612 variant members, i.e. additional members that depend on the type
13613 tag's value. Present exactly when "tag" is present. The variants
13614 are in no particular order, and may even differ from the order of
13615 the values of the enum type of the "tag".
13616
13617 Values of this type are JSON object on the wire.
13618
13619 Since: 2.5
13620
13621 SchemaInfoObjectMember (Object)
13622
13623 An object member.
13624
13625 Members:
13626
13627 "name: string"
13628 the member's name, as defined in the QAPI schema.
13629
13630 "type: string"
13631 the name of the member's type.
13632
13633 "default: value" (optional)
13634 default when used as command parameter. If absent, the parameter
13635 is mandatory. If present, the value must be null. The parameter
13636 is optional, and behavior when it's missing is not specified here.
13637 Future extension: if present and non-null, the parameter is
13638 optional, and defaults to this value.
13639
13640 "features: array of string" (optional)
13641 names of features associated with the member, in no particular
13642 order. (since 5.0)
13643
13644 Since: 2.5
13645
13646 SchemaInfoObjectVariant (Object)
13647
13648 The variant members for a value of the type tag.
13649
13650 Members:
13651
13652 "case: string"
13653 a value of the type tag.
13654
13655 "type: string"
13656 the name of the object type that provides the variant members when
13657 the type tag has value "case".
13658
13659 Since: 2.5
13660
13661 SchemaInfoAlternate (Object)
13662
13663 Additional SchemaInfo members for meta-type 'alternate'.
13664
13665 Members:
13666
13667 "members: array of SchemaInfoAlternateMember"
13668 the alternate type's members, in no particular order. The members'
13669 wire encoding is distinct, see docs/devel/qapi-code-gen.txt section
13670 Alternate types.
13671
13672 On the wire, this can be any of the members.
13673
13674 Since: 2.5
13675
13676 SchemaInfoAlternateMember (Object)
13677
13678 An alternate member.
13679
13680 Members:
13681
13682 "type: string"
13683 the name of the member's type.
13684
13685 Since: 2.5
13686
13687 SchemaInfoCommand (Object)
13688
13689 Additional SchemaInfo members for meta-type 'command'.
13690
13691 Members:
13692
13693 "arg-type: string"
13694 the name of the object type that provides the command's parameters.
13695
13696 "ret-type: string"
13697 the name of the command's result type.
13698
13699 "allow-oob: boolean" (optional)
13700 whether the command allows out-of-band execution, defaults to false
13701 (Since: 2.12)
13702
13703 TODO: "success-response" (currently irrelevant, because it's QGA, not
13704 QMP)
13705
13706 Since: 2.5
13707
13708 SchemaInfoEvent (Object)
13709
13710 Additional SchemaInfo members for meta-type 'event'.
13711
13712 Members:
13713
13714 "arg-type: string"
13715 the name of the object type that provides the event's parameters.
13716
13717 Since: 2.5
13718
13719 QEMU Object Model (QOM)
13720 ObjectPropertyInfo (Object)
13721
13722 Members:
13723
13724 "name: string"
13725 the name of the property
13726
13727 "type: string"
13728 the type of the property. This will typically come in one of four
13729 forms:
13730
13731 1) A primitive type such as 'u8', 'u16', 'bool', 'str', or
13732 'double'. These types are mapped to the appropriate JSON type.
13733
13734 2) A child type in the form 'child<subtype>' where subtype is a
13735 qdev device type name. Child properties create the composition
13736 tree.
13737
13738 3) A link type in the form 'link<subtype>' where subtype is a qdev
13739 device type name. Link properties form the device model graph.
13740
13741 "description: string" (optional)
13742 if specified, the description of the property.
13743
13744 "default-value: value" (optional)
13745 the default value, if any (since 5.0)
13746
13747 Since: 1.2
13748
13749 qom-list (Command) This command will list any properties of a object
13750 given a path in the object model.
13751
13752 Arguments:
13753
13754 "path: string"
13755 the path within the object model. See "qom-get" for a description
13756 of this parameter.
13757
13758 Returns: a list of "ObjectPropertyInfo" that describe the properties of
13759 the object.
13760
13761 Since: 1.2
13762
13763 Example:
13764
13765 -> { "execute": "qom-list",
13766 "arguments": { "path": "/chardevs" } }
13767 <- { "return": [ { "name": "type", "type": "string" },
13768 { "name": "parallel0", "type": "child<chardev-vc>" },
13769 { "name": "serial0", "type": "child<chardev-vc>" },
13770 { "name": "mon0", "type": "child<chardev-stdio>" } ] }
13771
13772 qom-get (Command) This command will get a property from a object model
13773 path and return the value.
13774
13775 Arguments:
13776
13777 "path: string"
13778 The path within the object model. There are two forms of supported
13779 paths--absolute and partial paths.
13780
13781 Absolute paths are derived from the root object and can follow
13782 child<> or link<> properties. Since they can follow link<>
13783 properties, they can be arbitrarily long. Absolute paths look like
13784 absolute filenames and are prefixed with a leading slash.
13785
13786 Partial paths look like relative filenames. They do not begin with
13787 a prefix. The matching rules for partial paths are subtle but
13788 designed to make specifying objects easy. At each level of the
13789 composition tree, the partial path is matched as an absolute path.
13790 The first match is not returned. At least two matches are searched
13791 for. A successful result is only returned if only one match is
13792 found. If more than one match is found, a flag is return to
13793 indicate that the match was ambiguous.
13794
13795 "property: string"
13796 The property name to read
13797
13798 Returns: The property value. The type depends on the property type.
13799 child<> and link<> properties are returned as #str pathnames. All
13800 integer property types (u8, u16, etc) are returned as #int.
13801
13802 Since: 1.2
13803
13804 Example:
13805
13806 1. Use absolute path
13807
13808 -> { "execute": "qom-get",
13809 "arguments": { "path": "/machine/unattached/device[0]",
13810 "property": "hotplugged" } }
13811 <- { "return": false }
13812
13813 2. Use partial path
13814
13815 -> { "execute": "qom-get",
13816 "arguments": { "path": "unattached/sysbus",
13817 "property": "type" } }
13818 <- { "return": "System" }
13819
13820 qom-set (Command) This command will set a property from a object model
13821 path.
13822
13823 Arguments:
13824
13825 "path: string"
13826 see "qom-get" for a description of this parameter
13827
13828 "property: string"
13829 the property name to set
13830
13831 "value: value"
13832 a value who's type is appropriate for the property type. See
13833 "qom-get" for a description of type mapping.
13834
13835 Since: 1.2
13836
13837 Example:
13838
13839 -> { "execute": "qom-set",
13840 "arguments": { "path": "/machine",
13841 "property": "graphics",
13842 "value": false } }
13843 <- { "return": {} }
13844
13845 ObjectTypeInfo (Object)
13846
13847 This structure describes a search result from "qom-list-types"
13848
13849 Members:
13850
13851 "name: string"
13852 the type name found in the search
13853
13854 "abstract: boolean" (optional)
13855 the type is abstract and can't be directly instantiated. Omitted
13856 if false. (since 2.10)
13857
13858 "parent: string" (optional)
13859 Name of parent type, if any (since 2.10)
13860
13861 Since: 1.1
13862
13863 qom-list-types (Command) This command will return a list of types
13864 given search parameters
13865
13866 Arguments:
13867
13868 "implements: string" (optional)
13869 if specified, only return types that implement this type name
13870
13871 "abstract: boolean" (optional)
13872 if true, include abstract types in the results
13873
13874 Returns: a list of "ObjectTypeInfo" or an empty list if no results are
13875 found
13876
13877 Since: 1.1
13878
13879 qom-list-properties (Command) List properties associated with a QOM
13880 object.
13881
13882 Arguments:
13883
13884 "typename: string"
13885 the type name of an object
13886
13887 Note: objects can create properties at runtime, for example to describe
13888 links between different devices and/or objects. These properties are
13889 not included in the output of this command.
13890
13891 Returns: a list of ObjectPropertyInfo describing object properties
13892
13893 Since: 2.12
13894
13895 object-add (Command) Create a QOM object.
13896
13897 Arguments:
13898
13899 "qom-type: string"
13900 the class name for the object to be created
13901
13902 "id: string"
13903 the name of the new object
13904
13905 "props: value" (optional)
13906 a dictionary of properties to be passed to the backend. Deprecated
13907 since 5.0, specify the properties on the top level instead. It is
13908 an error to specify the same option both on the top level and in
13909 "props".
13910
13911 Additional arguments depend on qom-type and are passed to the backend
13912 unchanged.
13913
13914 Returns: Nothing on success Error if "qom-type" is not a valid class
13915 name
13916
13917 Since: 2.0
13918
13919 Example:
13920
13921 -> { "execute": "object-add",
13922 "arguments": { "qom-type": "rng-random", "id": "rng1",
13923 "filename": "/dev/hwrng" } }
13924 <- { "return": {} }
13925
13926 object-del (Command) Remove a QOM object.
13927
13928 Arguments:
13929
13930 "id: string"
13931 the name of the QOM object to remove
13932
13933 Returns: Nothing on success Error if "id" is not a valid id for a QOM
13934 object
13935
13936 Since: 2.0
13937
13938 Example:
13939
13940 -> { "execute": "object-del", "arguments": { "id": "rng1" } }
13941 <- { "return": {} }
13942
13943 Device infrastructure (qdev)
13944 device-list-properties (Command) List properties associated with a
13945 device.
13946
13947 Arguments:
13948
13949 "typename: string"
13950 the type name of a device
13951
13952 Returns: a list of ObjectPropertyInfo describing a devices properties
13953
13954 Note: objects can create properties at runtime, for example to describe
13955 links between different devices and/or objects. These properties are
13956 not included in the output of this command.
13957
13958 Since: 1.2
13959
13960 device_add (Command)
13961
13962 Arguments:
13963
13964 "driver: string"
13965 the name of the new device's driver
13966
13967 "bus: string" (optional)
13968 the device's parent bus (device tree path)
13969
13970 "id: string" (optional)
13971 the device's ID, must be unique
13972
13973 Additional arguments depend on the type.
13974
13975 Add a device.
13976
13977 Notes:
13978
13979 1. For detailed information about this command, please refer to the
13980 'docs/qdev-device-use.txt' file.
13981
13982 2. It's possible to list device properties by running QEMU with the
13983 "-device DEVICE,help" command-line argument, where DEVICE is the
13984 device's name
13985
13986 Example:
13987
13988 -> { "execute": "device_add",
13989 "arguments": { "driver": "e1000", "id": "net1",
13990 "bus": "pci.0",
13991 "mac": "52:54:00:12:34:56" } }
13992 <- { "return": {} }
13993
13994 TODO: This command effectively bypasses QAPI completely due to its
13995 "additional arguments" business. It shouldn't have been added to the
13996 schema in this form. It should be qapified properly, or replaced by a
13997 properly qapified command.
13998
13999 Since: 0.13
14000
14001 device_del (Command) Remove a device from a guest
14002
14003 Arguments:
14004
14005 "id: string"
14006 the device's ID or QOM path
14007
14008 Returns: Nothing on success If "id" is not a valid device,
14009 DeviceNotFound
14010
14011 Notes: When this command completes, the device may not be removed from
14012 the guest. Hot removal is an operation that requires guest
14013 cooperation. This command merely requests that the guest begin the hot
14014 removal process. Completion of the device removal process is signaled
14015 with a DEVICE_DELETED event. Guest reset will automatically complete
14016 removal for all devices.
14017
14018 Since: 0.14.0
14019
14020 Example:
14021
14022 -> { "execute": "device_del",
14023 "arguments": { "id": "net1" } }
14024 <- { "return": {} }
14025
14026 -> { "execute": "device_del",
14027 "arguments": { "id": "/machine/peripheral-anon/device[0]" } }
14028 <- { "return": {} }
14029
14030 DEVICE_DELETED (Event) Emitted whenever the device removal completion
14031 is acknowledged by the guest. At this point, it's safe to reuse the
14032 specified device ID. Device removal can be initiated by the guest or by
14033 HMP/QMP commands.
14034
14035 Arguments:
14036
14037 "device: string" (optional)
14038 device name
14039
14040 "path: string"
14041 device path
14042
14043 Since: 1.5
14044
14045 Example:
14046
14047 <- { "event": "DEVICE_DELETED",
14048 "data": { "device": "virtio-net-pci-0",
14049 "path": "/machine/peripheral/virtio-net-pci-0" },
14050 "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
14051
14052 Machines
14053 SysEmuTarget (Enum)
14054
14055 The comprehensive enumeration of QEMU system emulation ("softmmu")
14056 targets. Run "./configure --help" in the project root directory, and
14057 look for the *-softmmu targets near the "--target-list" option. The
14058 individual target constants are not documented here, for the time
14059 being.
14060
14061 Values:
14062
14063 "rx"
14064 since 5.0
14065
14066 "avr"
14067 since 5.1
14068
14069 "aarch64"
14070 Not documented
14071
14072 "alpha"
14073 Not documented
14074
14075 "arm"
14076 Not documented
14077
14078 "cris"
14079 Not documented
14080
14081 "hppa"
14082 Not documented
14083
14084 "i386"
14085 Not documented
14086
14087 "lm32"
14088 Not documented
14089
14090 "m68k"
14091 Not documented
14092
14093 "microblaze"
14094 Not documented
14095
14096 "microblazeel"
14097 Not documented
14098
14099 "mips"
14100 Not documented
14101
14102 "mips64"
14103 Not documented
14104
14105 "mips64el"
14106 Not documented
14107
14108 "mipsel"
14109 Not documented
14110
14111 "moxie"
14112 Not documented
14113
14114 "nios2"
14115 Not documented
14116
14117 "or1k"
14118 Not documented
14119
14120 "ppc"
14121 Not documented
14122
14123 "ppc64"
14124 Not documented
14125
14126 "riscv32"
14127 Not documented
14128
14129 "riscv64"
14130 Not documented
14131
14132 "s390x"
14133 Not documented
14134
14135 "sh4"
14136 Not documented
14137
14138 "sh4eb"
14139 Not documented
14140
14141 "sparc"
14142 Not documented
14143
14144 "sparc64"
14145 Not documented
14146
14147 "tricore"
14148 Not documented
14149
14150 "unicore32"
14151 Not documented
14152
14153 "x86_64"
14154 Not documented
14155
14156 "xtensa"
14157 Not documented
14158
14159 "xtensaeb"
14160 Not documented
14161
14162 Notes: The resulting QMP strings can be appended to the "qemu-system-"
14163 prefix to produce the corresponding QEMU executable name. This is true
14164 even for "qemu-system-x86_64".
14165
14166 Since: 3.0
14167
14168 CpuInfoArch (Enum)
14169
14170 An enumeration of cpu types that enable additional information during
14171 "query-cpus" and "query-cpus-fast".
14172
14173 Values:
14174
14175 "s390"
14176 since 2.12
14177
14178 "riscv"
14179 since 2.12
14180
14181 "x86"
14182 Not documented
14183
14184 "sparc"
14185 Not documented
14186
14187 "ppc"
14188 Not documented
14189
14190 "mips"
14191 Not documented
14192
14193 "tricore"
14194 Not documented
14195
14196 "other"
14197 Not documented
14198
14199 Since: 2.6
14200
14201 CpuInfo (Object)
14202
14203 Information about a virtual CPU
14204
14205 Members:
14206
14207 "CPU: int"
14208 the index of the virtual CPU
14209
14210 "current: boolean"
14211 this only exists for backwards compatibility and should be ignored
14212
14213 "halted: boolean"
14214 true if the virtual CPU is in the halt state. Halt usually refers
14215 to a processor specific low power mode.
14216
14217 "qom_path: string"
14218 path to the CPU object in the QOM tree (since 2.4)
14219
14220 "thread_id: int"
14221 ID of the underlying host thread
14222
14223 "props: CpuInstanceProperties" (optional)
14224 properties describing to which node/socket/core/thread virtual CPU
14225 belongs to, provided if supported by board (since 2.10)
14226
14227 "arch: CpuInfoArch"
14228 architecture of the cpu, which determines which additional fields
14229 will be listed (since 2.6)
14230
14231 The members of "CpuInfoX86" when "arch" is "x86"
14232 The members of "CpuInfoSPARC" when "arch" is "sparc"
14233 The members of "CpuInfoPPC" when "arch" is "ppc"
14234 The members of "CpuInfoMIPS" when "arch" is "mips"
14235 The members of "CpuInfoTricore" when "arch" is "tricore"
14236 The members of "CpuInfoS390" when "arch" is "s390"
14237 The members of "CpuInfoRISCV" when "arch" is "riscv"
14238
14239 Since: 0.14.0
14240
14241 Notes: "halted" is a transient state that changes frequently. By the
14242 time the data is sent to the client, the guest may no longer be halted.
14243
14244 CpuInfoX86 (Object)
14245
14246 Additional information about a virtual i386 or x86_64 CPU
14247
14248 Members:
14249
14250 "pc: int"
14251 the 64-bit instruction pointer
14252
14253 Since: 2.6
14254
14255 CpuInfoSPARC (Object)
14256
14257 Additional information about a virtual SPARC CPU
14258
14259 Members:
14260
14261 "pc: int"
14262 the PC component of the instruction pointer
14263
14264 "npc: int"
14265 the NPC component of the instruction pointer
14266
14267 Since: 2.6
14268
14269 CpuInfoPPC (Object)
14270
14271 Additional information about a virtual PPC CPU
14272
14273 Members:
14274
14275 "nip: int"
14276 the instruction pointer
14277
14278 Since: 2.6
14279
14280 CpuInfoMIPS (Object)
14281
14282 Additional information about a virtual MIPS CPU
14283
14284 Members:
14285
14286 "PC: int"
14287 the instruction pointer
14288
14289 Since: 2.6
14290
14291 CpuInfoTricore (Object)
14292
14293 Additional information about a virtual Tricore CPU
14294
14295 Members:
14296
14297 "PC: int"
14298 the instruction pointer
14299
14300 Since: 2.6
14301
14302 CpuInfoRISCV (Object)
14303
14304 Additional information about a virtual RISCV CPU
14305
14306 Members:
14307
14308 "pc: int"
14309 the instruction pointer
14310
14311 Since 2.12
14312
14313 CpuS390State (Enum)
14314
14315 An enumeration of cpu states that can be assumed by a virtual S390 CPU
14316
14317 Values:
14318
14319 "uninitialized"
14320 Not documented
14321
14322 "stopped"
14323 Not documented
14324
14325 "check-stop"
14326 Not documented
14327
14328 "operating"
14329 Not documented
14330
14331 "load"
14332 Not documented
14333
14334 Since: 2.12
14335
14336 CpuInfoS390 (Object)
14337
14338 Additional information about a virtual S390 CPU
14339
14340 Members:
14341
14342 "cpu-state: CpuS390State"
14343 the virtual CPU's state
14344
14345 Since: 2.12
14346
14347 query-cpus (Command) Returns a list of information about each virtual
14348 CPU.
14349
14350 This command causes vCPU threads to exit to userspace, which causes a
14351 small interruption to guest CPU execution. This will have a negative
14352 impact on realtime guests and other latency sensitive guest workloads.
14353
14354 Features:
14355
14356 "deprecated"
14357 This command is deprecated, because it interferes with the guest.
14358 Use 'query-cpus-fast' instead to avoid the vCPU interruption.
14359
14360 Returns: a list of "CpuInfo" for each virtual CPU
14361
14362 Since: 0.14.0
14363
14364 Example:
14365
14366 -> { "execute": "query-cpus" }
14367 <- { "return": [
14368 {
14369 "CPU":0,
14370 "current":true,
14371 "halted":false,
14372 "qom_path":"/machine/unattached/device[0]",
14373 "arch":"x86",
14374 "pc":3227107138,
14375 "thread_id":3134
14376 },
14377 {
14378 "CPU":1,
14379 "current":false,
14380 "halted":true,
14381 "qom_path":"/machine/unattached/device[2]",
14382 "arch":"x86",
14383 "pc":7108165,
14384 "thread_id":3135
14385 }
14386 ]
14387 }
14388
14389 CpuInfoFast (Object)
14390
14391 Information about a virtual CPU
14392
14393 Members:
14394
14395 "cpu-index: int"
14396 index of the virtual CPU
14397
14398 "qom-path: string"
14399 path to the CPU object in the QOM tree
14400
14401 "thread-id: int"
14402 ID of the underlying host thread
14403
14404 "props: CpuInstanceProperties" (optional)
14405 properties describing to which node/socket/core/thread virtual CPU
14406 belongs to, provided if supported by board
14407
14408 "arch: CpuInfoArch"
14409 base architecture of the cpu
14410
14411 "target: SysEmuTarget"
14412 the QEMU system emulation target, which determines which additional
14413 fields will be listed (since 3.0)
14414
14415 The members of "CpuInfoS390" when "target" is "s390x"
14416
14417 Features:
14418
14419 "deprecated"
14420 Member "arch" is deprecated. Use "target" instead.
14421
14422 Since: 2.12
14423
14424 query-cpus-fast (Command) Returns information about all virtual CPUs.
14425 This command does not incur a performance penalty and should be used in
14426 production instead of query-cpus.
14427
14428 Returns: list of "CpuInfoFast"
14429
14430 Since: 2.12
14431
14432 Example:
14433
14434 -> { "execute": "query-cpus-fast" }
14435 <- { "return": [
14436 {
14437 "thread-id": 25627,
14438 "props": {
14439 "core-id": 0,
14440 "thread-id": 0,
14441 "socket-id": 0
14442 },
14443 "qom-path": "/machine/unattached/device[0]",
14444 "arch":"x86",
14445 "target":"x86_64",
14446 "cpu-index": 0
14447 },
14448 {
14449 "thread-id": 25628,
14450 "props": {
14451 "core-id": 0,
14452 "thread-id": 0,
14453 "socket-id": 1
14454 },
14455 "qom-path": "/machine/unattached/device[2]",
14456 "arch":"x86",
14457 "target":"x86_64",
14458 "cpu-index": 1
14459 }
14460 ]
14461 }
14462
14463 cpu-add (Command) Adds CPU with specified ID.
14464
14465 Arguments:
14466
14467 "id: int"
14468 ID of CPU to be created, valid values [0..max_cpus)
14469
14470 Features:
14471
14472 "deprecated"
14473 This command is deprecated. Use `device_add` instead. See the
14474 `query-hotpluggable-cpus` command for details.
14475
14476 Returns: Nothing on success
14477
14478 Since: 1.5
14479
14480 Example:
14481
14482 -> { "execute": "cpu-add", "arguments": { "id": 2 } }
14483 <- { "return": {} }
14484
14485 MachineInfo (Object)
14486
14487 Information describing a machine.
14488
14489 Members:
14490
14491 "name: string"
14492 the name of the machine
14493
14494 "alias: string" (optional)
14495 an alias for the machine name
14496
14497 "is-default: boolean" (optional)
14498 whether the machine is default
14499
14500 "cpu-max: int"
14501 maximum number of CPUs supported by the machine type (since 1.5.0)
14502
14503 "hotpluggable-cpus: boolean"
14504 cpu hotplug via -device is supported (since 2.7.0)
14505
14506 "numa-mem-supported: boolean"
14507 true if '-numa node,mem' option is supported by the machine type
14508 and false otherwise (since 4.1)
14509
14510 "deprecated: boolean"
14511 if true, the machine type is deprecated and may be removed in
14512 future versions of QEMU according to the QEMU deprecation policy
14513 (since 4.1.0)
14514
14515 "default-cpu-type: string" (optional)
14516 default CPU model typename if none is requested via the -cpu
14517 argument. (since 4.2)
14518
14519 Since: 1.2.0
14520
14521 query-machines (Command) Return a list of supported machines
14522
14523 Returns: a list of MachineInfo
14524
14525 Since: 1.2.0
14526
14527 CurrentMachineParams (Object)
14528
14529 Information describing the running machine parameters.
14530
14531 Members:
14532
14533 "wakeup-suspend-support: boolean"
14534 true if the machine supports wake up from suspend
14535
14536 Since: 4.0
14537
14538 query-current-machine (Command) Return information on the current
14539 virtual machine.
14540
14541 Returns: CurrentMachineParams
14542
14543 Since: 4.0
14544
14545 TargetInfo (Object)
14546
14547 Information describing the QEMU target.
14548
14549 Members:
14550
14551 "arch: SysEmuTarget"
14552 the target architecture
14553
14554 Since: 1.2.0
14555
14556 query-target (Command) Return information about the target for this
14557 QEMU
14558
14559 Returns: TargetInfo
14560
14561 Since: 1.2.0
14562
14563 NumaOptionsType (Enum)
14564
14565 Values:
14566
14567 "node"
14568 NUMA nodes configuration
14569
14570 "dist"
14571 NUMA distance configuration (since 2.10)
14572
14573 "cpu"
14574 property based CPU(s) to node mapping (Since: 2.10)
14575
14576 "hmat-lb"
14577 memory latency and bandwidth information (Since: 5.0)
14578
14579 "hmat-cache"
14580 memory side cache information (Since: 5.0)
14581
14582 Since: 2.1
14583
14584 NumaOptions (Object)
14585
14586 A discriminated record of NUMA options. (for OptsVisitor)
14587
14588 Members:
14589
14590 "type: NumaOptionsType"
14591 Not documented
14592
14593 The members of "NumaNodeOptions" when "type" is "node"
14594 The members of "NumaDistOptions" when "type" is "dist"
14595 The members of "NumaCpuOptions" when "type" is "cpu"
14596 The members of "NumaHmatLBOptions" when "type" is "hmat-lb"
14597 The members of "NumaHmatCacheOptions" when "type" is "hmat-cache"
14598
14599 Since: 2.1
14600
14601 NumaNodeOptions (Object)
14602
14603 Create a guest NUMA node. (for OptsVisitor)
14604
14605 Members:
14606
14607 "nodeid: int" (optional)
14608 NUMA node ID (increase by 1 from 0 if omitted)
14609
14610 "cpus: array of int" (optional)
14611 VCPUs belonging to this node (assign VCPUS round-robin if omitted)
14612
14613 "mem: int" (optional)
14614 memory size of this node; mutually exclusive with "memdev".
14615 Equally divide total memory among nodes if both "mem" and "memdev"
14616 are omitted.
14617
14618 "memdev: string" (optional)
14619 memory backend object. If specified for one node, it must be
14620 specified for all nodes.
14621
14622 "initiator: int" (optional)
14623 defined in ACPI 6.3 Chapter 5.2.27.3 Table 5-145, points to the
14624 nodeid which has the memory controller responsible for this NUMA
14625 node. This field provides additional information as to the
14626 initiator node that is closest (as in directly attached) to this
14627 node, and therefore has the best performance (since 5.0)
14628
14629 Since: 2.1
14630
14631 NumaDistOptions (Object)
14632
14633 Set the distance between 2 NUMA nodes.
14634
14635 Members:
14636
14637 "src: int"
14638 source NUMA node.
14639
14640 "dst: int"
14641 destination NUMA node.
14642
14643 "val: int"
14644 NUMA distance from source node to destination node. When a node is
14645 unreachable from another node, set the distance between them to
14646 255.
14647
14648 Since: 2.10
14649
14650 X86CPURegister32 (Enum)
14651
14652 A X86 32-bit register
14653
14654 Values:
14655
14656 "EAX"
14657 Not documented
14658
14659 "EBX"
14660 Not documented
14661
14662 "ECX"
14663 Not documented
14664
14665 "EDX"
14666 Not documented
14667
14668 "ESP"
14669 Not documented
14670
14671 "EBP"
14672 Not documented
14673
14674 "ESI"
14675 Not documented
14676
14677 "EDI"
14678 Not documented
14679
14680 Since: 1.5
14681
14682 X86CPUFeatureWordInfo (Object)
14683
14684 Information about a X86 CPU feature word
14685
14686 Members:
14687
14688 "cpuid-input-eax: int"
14689 Input EAX value for CPUID instruction for that feature word
14690
14691 "cpuid-input-ecx: int" (optional)
14692 Input ECX value for CPUID instruction for that feature word
14693
14694 "cpuid-register: X86CPURegister32"
14695 Output register containing the feature bits
14696
14697 "features: int"
14698 value of output register, containing the feature bits
14699
14700 Since: 1.5
14701
14702 DummyForceArrays (Object)
14703
14704 Not used by QMP; hack to let us use X86CPUFeatureWordInfoList
14705 internally
14706
14707 Members:
14708
14709 "unused: array of X86CPUFeatureWordInfo"
14710 Not documented
14711
14712 Since: 2.5
14713
14714 NumaCpuOptions (Object)
14715
14716 Option "-numa cpu" overrides default cpu to node mapping. It accepts
14717 the same set of cpu properties as returned by
14718 query-hotpluggable-cpus[].props, where node-id could be used to
14719 override default node mapping.
14720
14721 Members:
14722
14723 The members of "CpuInstanceProperties"
14724
14725 Since: 2.10
14726
14727 HmatLBMemoryHierarchy (Enum)
14728
14729 The memory hierarchy in the System Locality Latency and Bandwidth
14730 Information Structure of HMAT (Heterogeneous Memory Attribute Table)
14731
14732 For more information about "HmatLBMemoryHierarchy", see chapter
14733 5.2.27.4: Table 5-146: Field "Flags" of ACPI 6.3 spec.
14734
14735 Values:
14736
14737 "memory"
14738 the structure represents the memory performance
14739
14740 "first-level"
14741 first level of memory side cache
14742
14743 "second-level"
14744 second level of memory side cache
14745
14746 "third-level"
14747 third level of memory side cache
14748
14749 Since: 5.0
14750
14751 HmatLBDataType (Enum)
14752
14753 Data type in the System Locality Latency and Bandwidth Information
14754 Structure of HMAT (Heterogeneous Memory Attribute Table)
14755
14756 For more information about "HmatLBDataType", see chapter 5.2.27.4:
14757 Table 5-146: Field "Data Type" of ACPI 6.3 spec.
14758
14759 Values:
14760
14761 "access-latency"
14762 access latency (nanoseconds)
14763
14764 "read-latency"
14765 read latency (nanoseconds)
14766
14767 "write-latency"
14768 write latency (nanoseconds)
14769
14770 "access-bandwidth"
14771 access bandwidth (Bytes per second)
14772
14773 "read-bandwidth"
14774 read bandwidth (Bytes per second)
14775
14776 "write-bandwidth"
14777 write bandwidth (Bytes per second)
14778
14779 Since: 5.0
14780
14781 NumaHmatLBOptions (Object)
14782
14783 Set the system locality latency and bandwidth information between
14784 Initiator and Target proximity Domains.
14785
14786 For more information about "NumaHmatLBOptions", see chapter 5.2.27.4:
14787 Table 5-146 of ACPI 6.3 spec.
14788
14789 Members:
14790
14791 "initiator: int"
14792 the Initiator Proximity Domain.
14793
14794 "target: int"
14795 the Target Proximity Domain.
14796
14797 "hierarchy: HmatLBMemoryHierarchy"
14798 the Memory Hierarchy. Indicates the performance of memory or side
14799 cache.
14800
14801 "data-type: HmatLBDataType"
14802 presents the type of data, access/read/write latency or hit
14803 latency.
14804
14805 "latency: int" (optional)
14806 the value of latency from "initiator" to "target" proximity domain,
14807 the latency unit is "ns(nanosecond)".
14808
14809 "bandwidth: int" (optional)
14810 the value of bandwidth between "initiator" and "target" proximity
14811 domain, the bandwidth unit is "Bytes per second".
14812
14813 Since: 5.0
14814
14815 HmatCacheAssociativity (Enum)
14816
14817 Cache associativity in the Memory Side Cache Information Structure of
14818 HMAT
14819
14820 For more information of "HmatCacheAssociativity", see chapter 5.2.27.5:
14821 Table 5-147 of ACPI 6.3 spec.
14822
14823 Values:
14824
14825 "none"
14826 None (no memory side cache in this proximity domain, or cache
14827 associativity unknown)
14828
14829 "direct"
14830 Direct Mapped
14831
14832 "complex"
14833 Complex Cache Indexing (implementation specific)
14834
14835 Since: 5.0
14836
14837 HmatCacheWritePolicy (Enum)
14838
14839 Cache write policy in the Memory Side Cache Information Structure of
14840 HMAT
14841
14842 For more information of "HmatCacheWritePolicy", see chapter 5.2.27.5:
14843 Table 5-147: Field "Cache Attributes" of ACPI 6.3 spec.
14844
14845 Values:
14846
14847 "none"
14848 None (no memory side cache in this proximity domain, or cache write
14849 policy unknown)
14850
14851 "write-back"
14852 Write Back (WB)
14853
14854 "write-through"
14855 Write Through (WT)
14856
14857 Since: 5.0
14858
14859 NumaHmatCacheOptions (Object)
14860
14861 Set the memory side cache information for a given memory domain.
14862
14863 For more information of "NumaHmatCacheOptions", see chapter 5.2.27.5:
14864 Table 5-147: Field "Cache Attributes" of ACPI 6.3 spec.
14865
14866 Members:
14867
14868 "node-id: int"
14869 the memory proximity domain to which the memory belongs.
14870
14871 "size: int"
14872 the size of memory side cache in bytes.
14873
14874 "level: int"
14875 the cache level described in this structure.
14876
14877 "associativity: HmatCacheAssociativity"
14878 the cache associativity, none/direct-mapped/complex(complex cache
14879 indexing).
14880
14881 "policy: HmatCacheWritePolicy"
14882 the write policy, none/write-back/write-through.
14883
14884 "line: int"
14885 the cache Line size in bytes.
14886
14887 Since: 5.0
14888
14889 HostMemPolicy (Enum)
14890
14891 Host memory policy types
14892
14893 Values:
14894
14895 "default"
14896 restore default policy, remove any nondefault policy
14897
14898 "preferred"
14899 set the preferred host nodes for allocation
14900
14901 "bind"
14902 a strict policy that restricts memory allocation to the host nodes
14903 specified
14904
14905 "interleave"
14906 memory allocations are interleaved across the set of host nodes
14907 specified
14908
14909 Since: 2.1
14910
14911 Memdev (Object)
14912
14913 Information about memory backend
14914
14915 Members:
14916
14917 "id: string" (optional)
14918 backend's ID if backend has 'id' property (since 2.9)
14919
14920 "size: int"
14921 memory backend size
14922
14923 "merge: boolean"
14924 enables or disables memory merge support
14925
14926 "dump: boolean"
14927 includes memory backend's memory in a core dump or not
14928
14929 "prealloc: boolean"
14930 enables or disables memory preallocation
14931
14932 "host-nodes: array of int"
14933 host nodes for its memory policy
14934
14935 "policy: HostMemPolicy"
14936 memory policy of memory backend
14937
14938 Since: 2.1
14939
14940 query-memdev (Command) Returns information for all memory backends.
14941
14942 Returns: a list of "Memdev".
14943
14944 Since: 2.1
14945
14946 Example:
14947
14948 -> { "execute": "query-memdev" }
14949 <- { "return": [
14950 {
14951 "id": "mem1",
14952 "size": 536870912,
14953 "merge": false,
14954 "dump": true,
14955 "prealloc": false,
14956 "host-nodes": [0, 1],
14957 "policy": "bind"
14958 },
14959 {
14960 "size": 536870912,
14961 "merge": false,
14962 "dump": true,
14963 "prealloc": true,
14964 "host-nodes": [2, 3],
14965 "policy": "preferred"
14966 }
14967 ]
14968 }
14969
14970 CpuInstanceProperties (Object)
14971
14972 List of properties to be used for hotplugging a CPU instance, it should
14973 be passed by management with device_add command when a CPU is being
14974 hotplugged.
14975
14976 Members:
14977
14978 "node-id: int" (optional)
14979 NUMA node ID the CPU belongs to
14980
14981 "socket-id: int" (optional)
14982 socket number within node/board the CPU belongs to
14983
14984 "die-id: int" (optional)
14985 die number within node/board the CPU belongs to (Since 4.1)
14986
14987 "core-id: int" (optional)
14988 core number within die the CPU belongs to
14989
14990 "thread-id: int" (optional)
14991 thread number within core the CPU belongs to
14992
14993 Note: currently there are 5 properties that could be present but
14994 management should be prepared to pass through other properties with
14995 device_add command to allow for future interface extension. This also
14996 requires the filed names to be kept in sync with the properties passed
14997 to -device/device_add.
14998
14999 Since: 2.7
15000
15001 HotpluggableCPU (Object)
15002
15003 Members:
15004
15005 "type: string"
15006 CPU object type for usage with device_add command
15007
15008 "props: CpuInstanceProperties"
15009 list of properties to be used for hotplugging CPU
15010
15011 "vcpus-count: int"
15012 number of logical VCPU threads "HotpluggableCPU" provides
15013
15014 "qom-path: string" (optional)
15015 link to existing CPU object if CPU is present or omitted if CPU is
15016 not present.
15017
15018 Since: 2.7
15019
15020 query-hotpluggable-cpus (Command)
15021
15022 TODO: Better documentation; currently there is none.
15023
15024 Returns: a list of HotpluggableCPU objects.
15025
15026 Since: 2.7
15027
15028 Example:
15029
15030 For pseries machine type started with -smp 2,cores=2,maxcpus=4 -cpu POWER8:
15031
15032 -> { "execute": "query-hotpluggable-cpus" }
15033 <- {"return": [
15034 { "props": { "core": 8 }, "type": "POWER8-spapr-cpu-core",
15035 "vcpus-count": 1 },
15036 { "props": { "core": 0 }, "type": "POWER8-spapr-cpu-core",
15037 "vcpus-count": 1, "qom-path": "/machine/unattached/device[0]"}
15038 ]}'
15039
15040 For pc machine type started with -smp 1,maxcpus=2:
15041
15042 -> { "execute": "query-hotpluggable-cpus" }
15043 <- {"return": [
15044 {
15045 "type": "qemu64-x86_64-cpu", "vcpus-count": 1,
15046 "props": {"core-id": 0, "socket-id": 1, "thread-id": 0}
15047 },
15048 {
15049 "qom-path": "/machine/unattached/device[0]",
15050 "type": "qemu64-x86_64-cpu", "vcpus-count": 1,
15051 "props": {"core-id": 0, "socket-id": 0, "thread-id": 0}
15052 }
15053 ]}
15054
15055 For s390x-virtio-ccw machine type started with -smp 1,maxcpus=2 -cpu qemu
15056 (Since: 2.11):
15057
15058 -> { "execute": "query-hotpluggable-cpus" }
15059 <- {"return": [
15060 {
15061 "type": "qemu-s390x-cpu", "vcpus-count": 1,
15062 "props": { "core-id": 1 }
15063 },
15064 {
15065 "qom-path": "/machine/unattached/device[0]",
15066 "type": "qemu-s390x-cpu", "vcpus-count": 1,
15067 "props": { "core-id": 0 }
15068 }
15069 ]}
15070
15071 set-numa-node (Command) Runtime equivalent of '-numa' CLI option,
15072 available at preconfigure stage to configure numa mapping before
15073 initializing machine.
15074
15075 Since 3.0
15076
15077 Arguments: the members of "NumaOptions"
15078
15079 CpuModelInfo (Object)
15080
15081 Virtual CPU model.
15082
15083 A CPU model consists of the name of a CPU definition, to which delta
15084 changes are applied (e.g. features added/removed). Most magic values
15085 that an architecture might require should be hidden behind the name.
15086 However, if required, architectures can expose relevant properties.
15087
15088 Members:
15089
15090 "name: string"
15091 the name of the CPU definition the model is based on
15092
15093 "props: value" (optional)
15094 a dictionary of QOM properties to be applied
15095
15096 Since: 2.8.0
15097
15098 CpuModelExpansionType (Enum)
15099
15100 An enumeration of CPU model expansion types.
15101
15102 Values:
15103
15104 "static"
15105 Expand to a static CPU model, a combination of a static base model
15106 name and property delta changes. As the static base model will
15107 never change, the expanded CPU model will be the same, independent
15108 of QEMU version, machine type, machine options, and accelerator
15109 options. Therefore, the resulting model can be used by tooling
15110 without having to specify a compatibility machine - e.g. when
15111 displaying the "host" model. The "static" CPU models are migration-
15112 safe.
15113
15114 "full"
15115 Expand all properties. The produced model is not guaranteed to be
15116 migration-safe, but allows tooling to get an insight and work with
15117 model details.
15118
15119 Note: When a non-migration-safe CPU model is expanded in static mode,
15120 some features enabled by the CPU model may be omitted, because they
15121 can't be implemented by a static CPU model definition (e.g. cache info
15122 passthrough and PMU passthrough in x86). If you need an accurate
15123 representation of the features enabled by a non-migration-safe CPU
15124 model, use "full". If you need a static representation that will keep
15125 ABI compatibility even when changing QEMU version or machine-type, use
15126 "static" (but keep in mind that some features may be omitted).
15127
15128 Since: 2.8.0
15129
15130 CpuModelCompareResult (Enum)
15131
15132 An enumeration of CPU model comparison results. The result is usually
15133 calculated using e.g. CPU features or CPU generations.
15134
15135 Values:
15136
15137 "incompatible"
15138 If model A is incompatible to model B, model A is not guaranteed to
15139 run where model B runs and the other way around.
15140
15141 "identical"
15142 If model A is identical to model B, model A is guaranteed to run
15143 where model B runs and the other way around.
15144
15145 "superset"
15146 If model A is a superset of model B, model B is guaranteed to run
15147 where model A runs. There are no guarantees about the other way.
15148
15149 "subset"
15150 If model A is a subset of model B, model A is guaranteed to run
15151 where model B runs. There are no guarantees about the other way.
15152
15153 Since: 2.8.0
15154
15155 CpuModelBaselineInfo (Object)
15156
15157 The result of a CPU model baseline.
15158
15159 Members:
15160
15161 "model: CpuModelInfo"
15162 the baselined CpuModelInfo.
15163
15164 Since: 2.8.0
15165
15166 If: "defined(TARGET_S390X)"
15167
15168 CpuModelCompareInfo (Object)
15169
15170 The result of a CPU model comparison.
15171
15172 Members:
15173
15174 "result: CpuModelCompareResult"
15175 The result of the compare operation.
15176
15177 "responsible-properties: array of string"
15178 List of properties that led to the comparison result not being
15179 identical.
15180
15181 "responsible-properties" is a list of QOM property names that led to
15182 both CPUs not being detected as identical. For identical models, this
15183 list is empty. If a QOM property is read-only, that means there's no
15184 known way to make the CPU models identical. If the special property
15185 name "type" is included, the models are by definition not identical and
15186 cannot be made identical.
15187
15188 Since: 2.8.0
15189
15190 If: "defined(TARGET_S390X)"
15191
15192 query-cpu-model-comparison (Command) Compares two CPU models,
15193 returning how they compare in a specific configuration. The results
15194 indicates how both models compare regarding runnability. This result
15195 can be used by tooling to make decisions if a certain CPU model will
15196 run in a certain configuration or if a compatible CPU model has to be
15197 created by baselining.
15198
15199 Usually, a CPU model is compared against the maximum possible CPU model
15200 of a certain configuration (e.g. the "host" model for KVM). If that CPU
15201 model is identical or a subset, it will run in that configuration.
15202
15203 The result returned by this command may be affected by:
15204
15205 · QEMU version: CPU models may look different depending on the QEMU
15206 version. (Except for CPU models reported as "static" in query-cpu-
15207 definitions.)
15208
15209 · machine-type: CPU model may look different depending on the
15210 machine-type. (Except for CPU models reported as "static" in
15211 query-cpu-definitions.)
15212
15213 · machine options (including accelerator): in some architectures, CPU
15214 models may look different depending on machine and accelerator
15215 options. (Except for CPU models reported as "static" in query-cpu-
15216 definitions.)
15217
15218 · "-cpu" arguments and global properties: arguments to the -cpu
15219 option and global properties may affect expansion of CPU models.
15220 Using query-cpu-model-expansion while using these is not advised.
15221
15222 Some architectures may not support comparing CPU models. s390x supports
15223 comparing CPU models.
15224
15225 Arguments:
15226
15227 "modela: CpuModelInfo"
15228 Not documented
15229
15230 "modelb: CpuModelInfo"
15231 Not documented
15232
15233 Returns: a CpuModelBaselineInfo. Returns an error if comparing CPU
15234 models is not supported, if a model cannot be used, if a model contains
15235 an unknown cpu definition name, unknown properties or properties with
15236 wrong types.
15237
15238 Note: this command isn't specific to s390x, but is only implemented on
15239 this architecture currently.
15240
15241 Since: 2.8.0
15242
15243 If: "defined(TARGET_S390X)"
15244
15245 query-cpu-model-baseline (Command) Baseline two CPU models, creating a
15246 compatible third model. The created model will always be a static,
15247 migration-safe CPU model (see "static" CPU model expansion for
15248 details).
15249
15250 This interface can be used by tooling to create a compatible CPU model
15251 out two CPU models. The created CPU model will be identical to or a
15252 subset of both CPU models when comparing them. Therefore, the created
15253 CPU model is guaranteed to run where the given CPU models run.
15254
15255 The result returned by this command may be affected by:
15256
15257 · QEMU version: CPU models may look different depending on the QEMU
15258 version. (Except for CPU models reported as "static" in query-cpu-
15259 definitions.)
15260
15261 · machine-type: CPU model may look different depending on the
15262 machine-type. (Except for CPU models reported as "static" in
15263 query-cpu-definitions.)
15264
15265 · machine options (including accelerator): in some architectures, CPU
15266 models may look different depending on machine and accelerator
15267 options. (Except for CPU models reported as "static" in query-cpu-
15268 definitions.)
15269
15270 · "-cpu" arguments and global properties: arguments to the -cpu
15271 option and global properties may affect expansion of CPU models.
15272 Using query-cpu-model-expansion while using these is not advised.
15273
15274 Some architectures may not support baselining CPU models. s390x
15275 supports baselining CPU models.
15276
15277 Arguments:
15278
15279 "modela: CpuModelInfo"
15280 Not documented
15281
15282 "modelb: CpuModelInfo"
15283 Not documented
15284
15285 Returns: a CpuModelBaselineInfo. Returns an error if baselining CPU
15286 models is not supported, if a model cannot be used, if a model contains
15287 an unknown cpu definition name, unknown properties or properties with
15288 wrong types.
15289
15290 Note: this command isn't specific to s390x, but is only implemented on
15291 this architecture currently.
15292
15293 Since: 2.8.0
15294
15295 If: "defined(TARGET_S390X)"
15296
15297 CpuModelExpansionInfo (Object)
15298
15299 The result of a cpu model expansion.
15300
15301 Members:
15302
15303 "model: CpuModelInfo"
15304 the expanded CpuModelInfo.
15305
15306 Since: 2.8.0
15307
15308 If: "defined(TARGET_S390X) || defined(TARGET_I386) ||
15309 defined(TARGET_ARM)"
15310
15311 query-cpu-model-expansion (Command) Expands a given CPU model (or a
15312 combination of CPU model + additional options) to different
15313 granularities, allowing tooling to get an understanding what a specific
15314 CPU model looks like in QEMU under a certain configuration.
15315
15316 This interface can be used to query the "host" CPU model.
15317
15318 The data returned by this command may be affected by:
15319
15320 · QEMU version: CPU models may look different depending on the QEMU
15321 version. (Except for CPU models reported as "static" in query-cpu-
15322 definitions.)
15323
15324 · machine-type: CPU model may look different depending on the
15325 machine-type. (Except for CPU models reported as "static" in
15326 query-cpu-definitions.)
15327
15328 · machine options (including accelerator): in some architectures, CPU
15329 models may look different depending on machine and accelerator
15330 options. (Except for CPU models reported as "static" in query-cpu-
15331 definitions.)
15332
15333 · "-cpu" arguments and global properties: arguments to the -cpu
15334 option and global properties may affect expansion of CPU models.
15335 Using query-cpu-model-expansion while using these is not advised.
15336
15337 Some architectures may not support all expansion types. s390x supports
15338 "full" and "static". Arm only supports "full".
15339
15340 Arguments:
15341
15342 "type: CpuModelExpansionType"
15343 Not documented
15344
15345 "model: CpuModelInfo"
15346 Not documented
15347
15348 Returns: a CpuModelExpansionInfo. Returns an error if expanding CPU
15349 models is not supported, if the model cannot be expanded, if the model
15350 contains an unknown CPU definition name, unknown properties or
15351 properties with a wrong type. Also returns an error if an expansion
15352 type is not supported.
15353
15354 Since: 2.8.0
15355
15356 If: "defined(TARGET_S390X) || defined(TARGET_I386) ||
15357 defined(TARGET_ARM)"
15358
15359 CpuDefinitionInfo (Object)
15360
15361 Virtual CPU definition.
15362
15363 Members:
15364
15365 "name: string"
15366 the name of the CPU definition
15367
15368 "migration-safe: boolean" (optional)
15369 whether a CPU definition can be safely used for migration in
15370 combination with a QEMU compatibility machine when migrating
15371 between different QEMU versions and between hosts with different
15372 sets of (hardware or software) capabilities. If not provided,
15373 information is not available and callers should not assume the CPU
15374 definition to be migration-safe. (since 2.8)
15375
15376 "static: boolean"
15377 whether a CPU definition is static and will not change depending on
15378 QEMU version, machine type, machine options and accelerator
15379 options. A static model is always migration-safe. (since 2.8)
15380
15381 "unavailable-features: array of string" (optional)
15382 List of properties that prevent the CPU model from running in the
15383 current host. (since 2.8)
15384
15385 "typename: string"
15386 Type name that can be used as argument to "device-list-properties",
15387 to introspect properties configurable using -cpu or -global.
15388 (since 2.9)
15389
15390 "alias-of: string" (optional)
15391 Name of CPU model this model is an alias for. The target of the
15392 CPU model alias may change depending on the machine type.
15393 Management software is supposed to translate CPU model aliases in
15394 the VM configuration, because aliases may stop being migration-safe
15395 in the future (since 4.1)
15396
15397 "unavailable-features" is a list of QOM property names that represent
15398 CPU model attributes that prevent the CPU from running. If the QOM
15399 property is read-only, that means there's no known way to make the CPU
15400 model run in the current host. Implementations that choose not to
15401 provide specific information return the property name "type". If the
15402 property is read-write, it means that it MAY be possible to run the CPU
15403 model in the current host if that property is changed. Management
15404 software can use it as hints to suggest or choose an alternative for
15405 the user, or just to generate meaningful error messages explaining why
15406 the CPU model can't be used. If "unavailable-features" is an empty
15407 list, the CPU model is runnable using the current host and machine-
15408 type. If "unavailable-features" is not present, runnability
15409 information for the CPU is not available.
15410
15411 Since: 1.2.0
15412
15413 If: "defined(TARGET_PPC) || defined(TARGET_ARM) || defined(TARGET_I386)
15414 || defined(TARGET_S390X) || defined(TARGET_MIPS)"
15415
15416 query-cpu-definitions (Command) Return a list of supported virtual CPU
15417 definitions
15418
15419 Returns: a list of CpuDefInfo
15420
15421 Since: 1.2.0
15422
15423 If: "defined(TARGET_PPC) || defined(TARGET_ARM) || defined(TARGET_I386)
15424 || defined(TARGET_S390X) || defined(TARGET_MIPS)"
15425
15426 Miscellanea
15427 LostTickPolicy (Enum)
15428
15429 Policy for handling lost ticks in timer devices. Ticks end up getting
15430 lost when, for example, the guest is paused.
15431
15432 Values:
15433
15434 "discard"
15435 throw away the missed ticks and continue with future injection
15436 normally. The guest OS will see the timer jump ahead by a
15437 potentially quite significant amount all at once, as if the
15438 intervening chunk of time had simply not existed; needless to say,
15439 such a sudden jump can easily confuse a guest OS which is not
15440 specifically prepared to deal with it. Assuming the guest OS can
15441 deal correctly with the time jump, the time in the guest and in the
15442 host should now match.
15443
15444 "delay"
15445 continue to deliver ticks at the normal rate. The guest OS will
15446 not notice anything is amiss, as from its point of view time will
15447 have continued to flow normally. The time in the guest should now
15448 be behind the time in the host by exactly the amount of time during
15449 which ticks have been missed.
15450
15451 "slew"
15452 deliver ticks at a higher rate to catch up with the missed ticks.
15453 The guest OS will not notice anything is amiss, as from its point
15454 of view time will have continued to flow normally. Once the timer
15455 has managed to catch up with all the missing ticks, the time in the
15456 guest and in the host should match.
15457
15458 Since: 2.0
15459
15460 add_client (Command) Allow client connections for VNC, Spice and
15461 socket based character devices to be passed in to QEMU via SCM_RIGHTS.
15462
15463 Arguments:
15464
15465 "protocol: string"
15466 protocol name. Valid names are "vnc", "spice" or the name of a
15467 character device (eg. from -chardev id=XXXX)
15468
15469 "fdname: string"
15470 file descriptor name previously passed via 'getfd' command
15471
15472 "skipauth: boolean" (optional)
15473 whether to skip authentication. Only applies to "vnc" and "spice"
15474 protocols
15475
15476 "tls: boolean" (optional)
15477 whether to perform TLS. Only applies to the "spice" protocol
15478
15479 Returns: nothing on success.
15480
15481 Since: 0.14.0
15482
15483 Example:
15484
15485 -> { "execute": "add_client", "arguments": { "protocol": "vnc",
15486 "fdname": "myclient" } }
15487 <- { "return": {} }
15488
15489 NameInfo (Object)
15490
15491 Guest name information.
15492
15493 Members:
15494
15495 "name: string" (optional)
15496 The name of the guest
15497
15498 Since: 0.14.0
15499
15500 query-name (Command) Return the name information of a guest.
15501
15502 Returns: "NameInfo" of the guest
15503
15504 Since: 0.14.0
15505
15506 Example:
15507
15508 -> { "execute": "query-name" }
15509 <- { "return": { "name": "qemu-name" } }
15510
15511 KvmInfo (Object)
15512
15513 Information about support for KVM acceleration
15514
15515 Members:
15516
15517 "enabled: boolean"
15518 true if KVM acceleration is active
15519
15520 "present: boolean"
15521 true if KVM acceleration is built into this executable
15522
15523 Since: 0.14.0
15524
15525 query-kvm (Command) Returns information about KVM acceleration
15526
15527 Returns: "KvmInfo"
15528
15529 Since: 0.14.0
15530
15531 Example:
15532
15533 -> { "execute": "query-kvm" }
15534 <- { "return": { "enabled": true, "present": true } }
15535
15536 UuidInfo (Object)
15537
15538 Guest UUID information (Universally Unique Identifier).
15539
15540 Members:
15541
15542 "UUID: string"
15543 the UUID of the guest
15544
15545 Since: 0.14.0
15546
15547 Notes: If no UUID was specified for the guest, a null UUID is returned.
15548
15549 query-uuid (Command) Query the guest UUID information.
15550
15551 Returns: The "UuidInfo" for the guest
15552
15553 Since: 0.14.0
15554
15555 Example:
15556
15557 -> { "execute": "query-uuid" }
15558 <- { "return": { "UUID": "550e8400-e29b-41d4-a716-446655440000" } }
15559
15560 IOThreadInfo (Object)
15561
15562 Information about an iothread
15563
15564 Members:
15565
15566 "id: string"
15567 the identifier of the iothread
15568
15569 "thread-id: int"
15570 ID of the underlying host thread
15571
15572 "poll-max-ns: int"
15573 maximum polling time in ns, 0 means polling is disabled (since 2.9)
15574
15575 "poll-grow: int"
15576 how many ns will be added to polling time, 0 means that it's not
15577 configured (since 2.9)
15578
15579 "poll-shrink: int"
15580 how many ns will be removed from polling time, 0 means that it's
15581 not configured (since 2.9)
15582
15583 Since: 2.0
15584
15585 query-iothreads (Command) Returns a list of information about each
15586 iothread.
15587
15588 Note: this list excludes the QEMU main loop thread, which is not
15589 declared using the -object iothread command-line option. It is always
15590 the main thread of the process.
15591
15592 Returns: a list of "IOThreadInfo" for each iothread
15593
15594 Since: 2.0
15595
15596 Example:
15597
15598 -> { "execute": "query-iothreads" }
15599 <- { "return": [
15600 {
15601 "id":"iothread0",
15602 "thread-id":3134
15603 },
15604 {
15605 "id":"iothread1",
15606 "thread-id":3135
15607 }
15608 ]
15609 }
15610
15611 BalloonInfo (Object)
15612
15613 Information about the guest balloon device.
15614
15615 Members:
15616
15617 "actual: int"
15618 the number of bytes the balloon currently contains
15619
15620 Since: 0.14.0
15621
15622 query-balloon (Command) Return information about the balloon device.
15623
15624 Returns:
15625
15626 - "BalloonInfo" on success
15627
15628 - If the balloon driver is enabled but not functional because the KVM
15629 kernel module cannot support it, KvmMissingCap
15630
15631 - If no balloon device is present, DeviceNotActive
15632
15633 Since: 0.14.0
15634
15635 Example:
15636
15637 -> { "execute": "query-balloon" }
15638 <- { "return": {
15639 "actual": 1073741824,
15640 }
15641 }
15642
15643 BALLOON_CHANGE (Event) Emitted when the guest changes the actual
15644 BALLOON level. This value is equivalent to the "actual" field return by
15645 the 'query-balloon' command
15646
15647 Arguments:
15648
15649 "actual: int"
15650 actual level of the guest memory balloon in bytes
15651
15652 Note: this event is rate-limited.
15653
15654 Since: 1.2
15655
15656 Example:
15657
15658 <- { "event": "BALLOON_CHANGE",
15659 "data": { "actual": 944766976 },
15660 "timestamp": { "seconds": 1267020223, "microseconds": 435656 } }
15661
15662 PciMemoryRange (Object)
15663
15664 A PCI device memory region
15665
15666 Members:
15667
15668 "base: int"
15669 the starting address (guest physical)
15670
15671 "limit: int"
15672 the ending address (guest physical)
15673
15674 Since: 0.14.0
15675
15676 PciMemoryRegion (Object)
15677
15678 Information about a PCI device I/O region.
15679
15680 Members:
15681
15682 "bar: int"
15683 the index of the Base Address Register for this region
15684
15685 "type: string"
15686 - 'io' if the region is a PIO region
15687
15688 - 'memory' if the region is a MMIO region
15689
15690 "size: int"
15691 memory size
15692
15693 "prefetch: boolean" (optional)
15694 if "type" is 'memory', true if the memory is prefetchable
15695
15696 "mem_type_64: boolean" (optional)
15697 if "type" is 'memory', true if the BAR is 64-bit
15698
15699 "address: int"
15700 Not documented
15701
15702 Since: 0.14.0
15703
15704 PciBusInfo (Object)
15705
15706 Information about a bus of a PCI Bridge device
15707
15708 Members:
15709
15710 "number: int"
15711 primary bus interface number. This should be the number of the bus
15712 the device resides on.
15713
15714 "secondary: int"
15715 secondary bus interface number. This is the number of the main bus
15716 for the bridge
15717
15718 "subordinate: int"
15719 This is the highest number bus that resides below the bridge.
15720
15721 "io_range: PciMemoryRange"
15722 The PIO range for all devices on this bridge
15723
15724 "memory_range: PciMemoryRange"
15725 The MMIO range for all devices on this bridge
15726
15727 "prefetchable_range: PciMemoryRange"
15728 The range of prefetchable MMIO for all devices on this bridge
15729
15730 Since: 2.4
15731
15732 PciBridgeInfo (Object)
15733
15734 Information about a PCI Bridge device
15735
15736 Members:
15737
15738 "bus: PciBusInfo"
15739 information about the bus the device resides on
15740
15741 "devices: array of PciDeviceInfo" (optional)
15742 a list of "PciDeviceInfo" for each device on this bridge
15743
15744 Since: 0.14.0
15745
15746 PciDeviceClass (Object)
15747
15748 Information about the Class of a PCI device
15749
15750 Members:
15751
15752 "desc: string" (optional)
15753 a string description of the device's class
15754
15755 "class: int"
15756 the class code of the device
15757
15758 Since: 2.4
15759
15760 PciDeviceId (Object)
15761
15762 Information about the Id of a PCI device
15763
15764 Members:
15765
15766 "device: int"
15767 the PCI device id
15768
15769 "vendor: int"
15770 the PCI vendor id
15771
15772 "subsystem: int" (optional)
15773 the PCI subsystem id (since 3.1)
15774
15775 "subsystem-vendor: int" (optional)
15776 the PCI subsystem vendor id (since 3.1)
15777
15778 Since: 2.4
15779
15780 PciDeviceInfo (Object)
15781
15782 Information about a PCI device
15783
15784 Members:
15785
15786 "bus: int"
15787 the bus number of the device
15788
15789 "slot: int"
15790 the slot the device is located in
15791
15792 "function: int"
15793 the function of the slot used by the device
15794
15795 "class_info: PciDeviceClass"
15796 the class of the device
15797
15798 "id: PciDeviceId"
15799 the PCI device id
15800
15801 "irq: int" (optional)
15802 if an IRQ is assigned to the device, the IRQ number
15803
15804 "irq_pin: int"
15805 the IRQ pin, zero means no IRQ (since 5.1)
15806
15807 "qdev_id: string"
15808 the device name of the PCI device
15809
15810 "pci_bridge: PciBridgeInfo" (optional)
15811 if the device is a PCI bridge, the bridge information
15812
15813 "regions: array of PciMemoryRegion"
15814 a list of the PCI I/O regions associated with the device
15815
15816 Notes: the contents of "class_info".desc are not stable and should only
15817 be treated as informational.
15818
15819 Since: 0.14.0
15820
15821 PciInfo (Object)
15822
15823 Information about a PCI bus
15824
15825 Members:
15826
15827 "bus: int"
15828 the bus index
15829
15830 "devices: array of PciDeviceInfo"
15831 a list of devices on this bus
15832
15833 Since: 0.14.0
15834
15835 query-pci (Command) Return information about the PCI bus topology of
15836 the guest.
15837
15838 Returns: a list of "PciInfo" for each PCI bus. Each bus is represented
15839 by a json-object, which has a key with a json-array of all PCI devices
15840 attached to it. Each device is represented by a json-object.
15841
15842 Since: 0.14.0
15843
15844 Example:
15845
15846 -> { "execute": "query-pci" }
15847 <- { "return": [
15848 {
15849 "bus": 0,
15850 "devices": [
15851 {
15852 "bus": 0,
15853 "qdev_id": "",
15854 "slot": 0,
15855 "class_info": {
15856 "class": 1536,
15857 "desc": "Host bridge"
15858 },
15859 "id": {
15860 "device": 32902,
15861 "vendor": 4663
15862 },
15863 "function": 0,
15864 "regions": [
15865 ]
15866 },
15867 {
15868 "bus": 0,
15869 "qdev_id": "",
15870 "slot": 1,
15871 "class_info": {
15872 "class": 1537,
15873 "desc": "ISA bridge"
15874 },
15875 "id": {
15876 "device": 32902,
15877 "vendor": 28672
15878 },
15879 "function": 0,
15880 "regions": [
15881 ]
15882 },
15883 {
15884 "bus": 0,
15885 "qdev_id": "",
15886 "slot": 1,
15887 "class_info": {
15888 "class": 257,
15889 "desc": "IDE controller"
15890 },
15891 "id": {
15892 "device": 32902,
15893 "vendor": 28688
15894 },
15895 "function": 1,
15896 "regions": [
15897 {
15898 "bar": 4,
15899 "size": 16,
15900 "address": 49152,
15901 "type": "io"
15902 }
15903 ]
15904 },
15905 {
15906 "bus": 0,
15907 "qdev_id": "",
15908 "slot": 2,
15909 "class_info": {
15910 "class": 768,
15911 "desc": "VGA controller"
15912 },
15913 "id": {
15914 "device": 4115,
15915 "vendor": 184
15916 },
15917 "function": 0,
15918 "regions": [
15919 {
15920 "prefetch": true,
15921 "mem_type_64": false,
15922 "bar": 0,
15923 "size": 33554432,
15924 "address": 4026531840,
15925 "type": "memory"
15926 },
15927 {
15928 "prefetch": false,
15929 "mem_type_64": false,
15930 "bar": 1,
15931 "size": 4096,
15932 "address": 4060086272,
15933 "type": "memory"
15934 },
15935 {
15936 "prefetch": false,
15937 "mem_type_64": false,
15938 "bar": 6,
15939 "size": 65536,
15940 "address": -1,
15941 "type": "memory"
15942 }
15943 ]
15944 },
15945 {
15946 "bus": 0,
15947 "qdev_id": "",
15948 "irq": 11,
15949 "slot": 4,
15950 "class_info": {
15951 "class": 1280,
15952 "desc": "RAM controller"
15953 },
15954 "id": {
15955 "device": 6900,
15956 "vendor": 4098
15957 },
15958 "function": 0,
15959 "regions": [
15960 {
15961 "bar": 0,
15962 "size": 32,
15963 "address": 49280,
15964 "type": "io"
15965 }
15966 ]
15967 }
15968 ]
15969 }
15970 ]
15971 }
15972
15973 Note: This example has been shortened as the real response is too long.
15974
15975 stop (Command) Stop all guest VCPU execution.
15976
15977 Since: 0.14.0
15978
15979 Notes: This function will succeed even if the guest is already in the
15980 stopped state. In "inmigrate" state, it will ensure that the guest
15981 remains paused once migration finishes, as if the -S option was passed
15982 on the command line.
15983
15984 Example:
15985
15986 -> { "execute": "stop" }
15987 <- { "return": {} }
15988
15989 system_reset (Command) Performs a hard reset of a guest.
15990
15991 Since: 0.14.0
15992
15993 Example:
15994
15995 -> { "execute": "system_reset" }
15996 <- { "return": {} }
15997
15998 system_powerdown (Command) Requests that a guest perform a powerdown
15999 operation.
16000
16001 Since: 0.14.0
16002
16003 Notes: A guest may or may not respond to this command. This command
16004 returning does not indicate that a guest has accepted the request or
16005 that it has shut down. Many guests will respond to this command by
16006 prompting the user in some way.
16007
16008 Example:
16009
16010 -> { "execute": "system_powerdown" }
16011 <- { "return": {} }
16012
16013 memsave (Command) Save a portion of guest memory to a file.
16014
16015 Arguments:
16016
16017 "val: int"
16018 the virtual address of the guest to start from
16019
16020 "size: int"
16021 the size of memory region to save
16022
16023 "filename: string"
16024 the file to save the memory to as binary data
16025
16026 "cpu-index: int" (optional)
16027 the index of the virtual CPU to use for translating the virtual
16028 address (defaults to CPU 0)
16029
16030 Returns: Nothing on success
16031
16032 Since: 0.14.0
16033
16034 Notes: Errors were not reliably returned until 1.1
16035
16036 Example:
16037
16038 -> { "execute": "memsave",
16039 "arguments": { "val": 10,
16040 "size": 100,
16041 "filename": "/tmp/virtual-mem-dump" } }
16042 <- { "return": {} }
16043
16044 pmemsave (Command) Save a portion of guest physical memory to a file.
16045
16046 Arguments:
16047
16048 "val: int"
16049 the physical address of the guest to start from
16050
16051 "size: int"
16052 the size of memory region to save
16053
16054 "filename: string"
16055 the file to save the memory to as binary data
16056
16057 Returns: Nothing on success
16058
16059 Since: 0.14.0
16060
16061 Notes: Errors were not reliably returned until 1.1
16062
16063 Example:
16064
16065 -> { "execute": "pmemsave",
16066 "arguments": { "val": 10,
16067 "size": 100,
16068 "filename": "/tmp/physical-mem-dump" } }
16069 <- { "return": {} }
16070
16071 cont (Command) Resume guest VCPU execution.
16072
16073 Since: 0.14.0
16074
16075 Returns: If successful, nothing
16076
16077 Notes: This command will succeed if the guest is currently running. It
16078 will also succeed if the guest is in the "inmigrate" state; in this
16079 case, the effect of the command is to make sure the guest starts once
16080 migration finishes, removing the effect of the -S command line option
16081 if it was passed.
16082
16083 Example:
16084
16085 -> { "execute": "cont" }
16086 <- { "return": {} }
16087
16088 x-exit-preconfig (Command) Exit from "preconfig" state
16089
16090 This command makes QEMU exit the preconfig state and proceed with VM
16091 initialization using configuration data provided on the command line
16092 and via the QMP monitor during the preconfig state. The command is only
16093 available during the preconfig state (i.e. when the --preconfig command
16094 line option was in use).
16095
16096 Since 3.0
16097
16098 Returns: nothing
16099
16100 Example:
16101
16102 -> { "execute": "x-exit-preconfig" }
16103 <- { "return": {} }
16104
16105 system_wakeup (Command) Wake up guest from suspend. If the guest has
16106 wake-up from suspend support enabled (wakeup-suspend-support flag from
16107 query-current-machine), wake-up guest from suspend if the guest is in
16108 SUSPENDED state. Return an error otherwise.
16109
16110 Since: 1.1
16111
16112 Returns: nothing.
16113
16114 Note: prior to 4.0, this command does nothing in case the guest isn't
16115 suspended.
16116
16117 Example:
16118
16119 -> { "execute": "system_wakeup" }
16120 <- { "return": {} }
16121
16122 inject-nmi (Command) Injects a Non-Maskable Interrupt into the default
16123 CPU (x86/s390) or all CPUs (ppc64). The command fails when the guest
16124 doesn't support injecting.
16125
16126 Returns: If successful, nothing
16127
16128 Since: 0.14.0
16129
16130 Note: prior to 2.1, this command was only supported for x86 and s390
16131 VMs
16132
16133 Example:
16134
16135 -> { "execute": "inject-nmi" }
16136 <- { "return": {} }
16137
16138 balloon (Command) Request the balloon driver to change its balloon
16139 size.
16140
16141 Arguments:
16142
16143 "value: int"
16144 the target size of the balloon in bytes
16145
16146 Returns:
16147
16148 - Nothing on success
16149
16150 - If the balloon driver is enabled but not functional because the KVM
16151 kernel module cannot support it, KvmMissingCap
16152
16153 - If no balloon device is present, DeviceNotActive
16154
16155 Notes: This command just issues a request to the guest. When it
16156 returns, the balloon size may not have changed. A guest can change the
16157 balloon size independent of this command.
16158
16159 Since: 0.14.0
16160
16161 Example:
16162
16163 -> { "execute": "balloon", "arguments": { "value": 536870912 } }
16164 <- { "return": {} }
16165
16166 human-monitor-command (Command) Execute a command on the human monitor
16167 and return the output.
16168
16169 Arguments:
16170
16171 "command-line: string"
16172 the command to execute in the human monitor
16173
16174 "cpu-index: int" (optional)
16175 The CPU to use for commands that require an implicit CPU
16176
16177 Features:
16178
16179 "savevm-monitor-nodes"
16180 If present, HMP command savevm only snapshots monitor-owned nodes
16181 if they have no parents. This allows the use of 'savevm' with
16182 -blockdev. (since 4.2)
16183
16184 Returns: the output of the command as a string
16185
16186 Since: 0.14.0
16187
16188 Notes: This command only exists as a stop-gap. Its use is highly
16189 discouraged. The semantics of this command are not guaranteed: this
16190 means that command names, arguments and responses can change or be
16191 removed at ANY time. Applications that rely on long term stability
16192 guarantees should NOT use this command.
16193
16194 Known limitations:
16195
16196 · This command is stateless, this means that commands that depend on
16197 state information (such as getfd) might not work
16198
16199 · Commands that prompt the user for data don't currently work
16200
16201 Example:
16202
16203 -> { "execute": "human-monitor-command",
16204 "arguments": { "command-line": "info kvm" } }
16205 <- { "return": "kvm support: enabled\r\n" }
16206
16207 change (Command) This command is multiple commands multiplexed
16208 together.
16209
16210 Arguments:
16211
16212 "device: string"
16213 This is normally the name of a block device but it may also be
16214 'vnc'. when it's 'vnc', then sub command depends on "target"
16215
16216 "target: string"
16217 If "device" is a block device, then this is the new filename. If
16218 "device" is 'vnc', then if the value 'password' selects the vnc
16219 change password command. Otherwise, this specifies a new server
16220 URI address to listen to for VNC connections.
16221
16222 "arg: string" (optional)
16223 If "device" is a block device, then this is an optional format to
16224 open the device with. If "device" is 'vnc' and "target" is
16225 'password', this is the new VNC password to set. See change-vnc-
16226 password for additional notes.
16227
16228 Features:
16229
16230 "deprecated"
16231 This command is deprecated. For changing block devices, use
16232 'blockdev-change-medium' instead; for changing VNC parameters, use
16233 'change-vnc-password' instead.
16234
16235 Returns:
16236
16237 - Nothing on success.
16238
16239 - If "device" is not a valid block device, DeviceNotFound
16240
16241 Since: 0.14.0
16242
16243 Example:
16244
16245 1. Change a removable medium
16246
16247 -> { "execute": "change",
16248 "arguments": { "device": "ide1-cd0",
16249 "target": "/srv/images/Fedora-12-x86_64-DVD.iso" } }
16250 <- { "return": {} }
16251
16252 2. Change VNC password
16253
16254 -> { "execute": "change",
16255 "arguments": { "device": "vnc", "target": "password",
16256 "arg": "foobar1" } }
16257 <- { "return": {} }
16258
16259 xen-set-global-dirty-log (Command) Enable or disable the global dirty
16260 log mode.
16261
16262 Arguments:
16263
16264 "enable: boolean"
16265 true to enable, false to disable.
16266
16267 Returns: nothing
16268
16269 Since: 1.3
16270
16271 Example:
16272
16273 -> { "execute": "xen-set-global-dirty-log",
16274 "arguments": { "enable": true } }
16275 <- { "return": {} }
16276
16277 getfd (Command) Receive a file descriptor via SCM rights and assign it
16278 a name
16279
16280 Arguments:
16281
16282 "fdname: string"
16283 file descriptor name
16284
16285 Returns: Nothing on success
16286
16287 Since: 0.14.0
16288
16289 Notes: If "fdname" already exists, the file descriptor assigned to it
16290 will be closed and replaced by the received file descriptor.
16291
16292 The 'closefd' command can be used to explicitly close the file
16293 descriptor when it is no longer needed.
16294
16295 Example:
16296
16297 -> { "execute": "getfd", "arguments": { "fdname": "fd1" } }
16298 <- { "return": {} }
16299
16300 closefd (Command) Close a file descriptor previously passed via SCM
16301 rights
16302
16303 Arguments:
16304
16305 "fdname: string"
16306 file descriptor name
16307
16308 Returns: Nothing on success
16309
16310 Since: 0.14.0
16311
16312 Example:
16313
16314 -> { "execute": "closefd", "arguments": { "fdname": "fd1" } }
16315 <- { "return": {} }
16316
16317 MemoryInfo (Object)
16318
16319 Actual memory information in bytes.
16320
16321 Members:
16322
16323 "base-memory: int"
16324 size of "base" memory specified with command line option -m.
16325
16326 "plugged-memory: int" (optional)
16327 size of memory that can be hot-unplugged. This field is omitted if
16328 target doesn't support memory hotplug (i.e. CONFIG_MEM_DEVICE not
16329 defined at build time).
16330
16331 Since: 2.11.0
16332
16333 query-memory-size-summary (Command) Return the amount of initially
16334 allocated and present hotpluggable (if enabled) memory in bytes.
16335
16336 Example:
16337
16338 -> { "execute": "query-memory-size-summary" }
16339 <- { "return": { "base-memory": 4294967296, "plugged-memory": 0 } }
16340
16341 Since: 2.11.0
16342
16343 AddfdInfo (Object)
16344
16345 Information about a file descriptor that was added to an fd set.
16346
16347 Members:
16348
16349 "fdset-id: int"
16350 The ID of the fd set that "fd" was added to.
16351
16352 "fd: int"
16353 The file descriptor that was received via SCM rights and added to
16354 the fd set.
16355
16356 Since: 1.2.0
16357
16358 add-fd (Command) Add a file descriptor, that was passed via SCM
16359 rights, to an fd set.
16360
16361 Arguments:
16362
16363 "fdset-id: int" (optional)
16364 The ID of the fd set to add the file descriptor to.
16365
16366 "opaque: string" (optional)
16367 A free-form string that can be used to describe the fd.
16368
16369 Returns:
16370
16371 - "AddfdInfo" on success
16372
16373 - If file descriptor was not received, FdNotSupplied
16374
16375 - If "fdset-id" is a negative value, InvalidParameterValue
16376
16377 Notes: The list of fd sets is shared by all monitor connections.
16378
16379 If "fdset-id" is not specified, a new fd set will be created.
16380
16381 Since: 1.2.0
16382
16383 Example:
16384
16385 -> { "execute": "add-fd", "arguments": { "fdset-id": 1 } }
16386 <- { "return": { "fdset-id": 1, "fd": 3 } }
16387
16388 remove-fd (Command) Remove a file descriptor from an fd set.
16389
16390 Arguments:
16391
16392 "fdset-id: int"
16393 The ID of the fd set that the file descriptor belongs to.
16394
16395 "fd: int" (optional)
16396 The file descriptor that is to be removed.
16397
16398 Returns:
16399
16400 - Nothing on success
16401
16402 - If "fdset-id" or "fd" is not found, FdNotFound
16403
16404 Since: 1.2.0
16405
16406 Notes: The list of fd sets is shared by all monitor connections.
16407
16408 If "fd" is not specified, all file descriptors in "fdset-id" will be
16409 removed.
16410
16411 Example:
16412
16413 -> { "execute": "remove-fd", "arguments": { "fdset-id": 1, "fd": 3 } }
16414 <- { "return": {} }
16415
16416 FdsetFdInfo (Object)
16417
16418 Information about a file descriptor that belongs to an fd set.
16419
16420 Members:
16421
16422 "fd: int"
16423 The file descriptor value.
16424
16425 "opaque: string" (optional)
16426 A free-form string that can be used to describe the fd.
16427
16428 Since: 1.2.0
16429
16430 FdsetInfo (Object)
16431
16432 Information about an fd set.
16433
16434 Members:
16435
16436 "fdset-id: int"
16437 The ID of the fd set.
16438
16439 "fds: array of FdsetFdInfo"
16440 A list of file descriptors that belong to this fd set.
16441
16442 Since: 1.2.0
16443
16444 query-fdsets (Command) Return information describing all fd sets.
16445
16446 Returns: A list of "FdsetInfo"
16447
16448 Since: 1.2.0
16449
16450 Note: The list of fd sets is shared by all monitor connections.
16451
16452 Example:
16453
16454 -> { "execute": "query-fdsets" }
16455 <- { "return": [
16456 {
16457 "fds": [
16458 {
16459 "fd": 30,
16460 "opaque": "rdonly:/path/to/file"
16461 },
16462 {
16463 "fd": 24,
16464 "opaque": "rdwr:/path/to/file"
16465 }
16466 ],
16467 "fdset-id": 1
16468 },
16469 {
16470 "fds": [
16471 {
16472 "fd": 28
16473 },
16474 {
16475 "fd": 29
16476 }
16477 ],
16478 "fdset-id": 0
16479 }
16480 ]
16481 }
16482
16483 AcpiTableOptions (Object)
16484
16485 Specify an ACPI table on the command line to load.
16486
16487 At most one of "file" and "data" can be specified. The list of files
16488 specified by any one of them is loaded and concatenated in order. If
16489 both are omitted, "data" is implied.
16490
16491 Other fields / optargs can be used to override fields of the generic
16492 ACPI table header; refer to the ACPI specification 5.0, section 5.2.6
16493 System Description Table Header. If a header field is not overridden,
16494 then the corresponding value from the concatenated blob is used (in
16495 case of "file"), or it is filled in with a hard-coded value (in case of
16496 "data").
16497
16498 String fields are copied into the matching ACPI member from lowest
16499 address upwards, and silently truncated / NUL-padded to length.
16500
16501 Members:
16502
16503 "sig: string" (optional)
16504 table signature / identifier (4 bytes)
16505
16506 "rev: int" (optional)
16507 table revision number (dependent on signature, 1 byte)
16508
16509 "oem_id: string" (optional)
16510 OEM identifier (6 bytes)
16511
16512 "oem_table_id: string" (optional)
16513 OEM table identifier (8 bytes)
16514
16515 "oem_rev: int" (optional)
16516 OEM-supplied revision number (4 bytes)
16517
16518 "asl_compiler_id: string" (optional)
16519 identifier of the utility that created the table (4 bytes)
16520
16521 "asl_compiler_rev: int" (optional)
16522 revision number of the utility that created the table (4 bytes)
16523
16524 "file: string" (optional)
16525 colon (:) separated list of pathnames to load and concatenate as
16526 table data. The resultant binary blob is expected to have an ACPI
16527 table header. At least one file is required. This field excludes
16528 "data".
16529
16530 "data: string" (optional)
16531 colon (:) separated list of pathnames to load and concatenate as
16532 table data. The resultant binary blob must not have an ACPI table
16533 header. At least one file is required. This field excludes "file".
16534
16535 Since: 1.5
16536
16537 CommandLineParameterType (Enum)
16538
16539 Possible types for an option parameter.
16540
16541 Values:
16542
16543 "string"
16544 accepts a character string
16545
16546 "boolean"
16547 accepts "on" or "off"
16548
16549 "number"
16550 accepts a number
16551
16552 "size"
16553 accepts a number followed by an optional suffix (K)ilo, (M)ega,
16554 (G)iga, (T)era
16555
16556 Since: 1.5
16557
16558 CommandLineParameterInfo (Object)
16559
16560 Details about a single parameter of a command line option.
16561
16562 Members:
16563
16564 "name: string"
16565 parameter name
16566
16567 "type: CommandLineParameterType"
16568 parameter "CommandLineParameterType"
16569
16570 "help: string" (optional)
16571 human readable text string, not suitable for parsing.
16572
16573 "default: string" (optional)
16574 default value string (since 2.1)
16575
16576 Since: 1.5
16577
16578 CommandLineOptionInfo (Object)
16579
16580 Details about a command line option, including its list of parameter
16581 details
16582
16583 Members:
16584
16585 "option: string"
16586 option name
16587
16588 "parameters: array of CommandLineParameterInfo"
16589 an array of "CommandLineParameterInfo"
16590
16591 Since: 1.5
16592
16593 query-command-line-options (Command) Query command line option schema.
16594
16595 Arguments:
16596
16597 "option: string" (optional)
16598 option name
16599
16600 Returns: list of "CommandLineOptionInfo" for all options (or for the
16601 given "option"). Returns an error if the given "option" doesn't exist.
16602
16603 Since: 1.5
16604
16605 Example:
16606
16607 -> { "execute": "query-command-line-options",
16608 "arguments": { "option": "option-rom" } }
16609 <- { "return": [
16610 {
16611 "parameters": [
16612 {
16613 "name": "romfile",
16614 "type": "string"
16615 },
16616 {
16617 "name": "bootindex",
16618 "type": "number"
16619 }
16620 ],
16621 "option": "option-rom"
16622 }
16623 ]
16624 }
16625
16626 PCDIMMDeviceInfo (Object)
16627
16628 PCDIMMDevice state information
16629
16630 Members:
16631
16632 "id: string" (optional)
16633 device's ID
16634
16635 "addr: int"
16636 physical address, where device is mapped
16637
16638 "size: int"
16639 size of memory that the device provides
16640
16641 "slot: int"
16642 slot number at which device is plugged in
16643
16644 "node: int"
16645 NUMA node number where device is plugged in
16646
16647 "memdev: string"
16648 memory backend linked with device
16649
16650 "hotplugged: boolean"
16651 true if device was hotplugged
16652
16653 "hotpluggable: boolean"
16654 true if device if could be added/removed while machine is running
16655
16656 Since: 2.1
16657
16658 VirtioPMEMDeviceInfo (Object)
16659
16660 VirtioPMEM state information
16661
16662 Members:
16663
16664 "id: string" (optional)
16665 device's ID
16666
16667 "memaddr: int"
16668 physical address in memory, where device is mapped
16669
16670 "size: int"
16671 size of memory that the device provides
16672
16673 "memdev: string"
16674 memory backend linked with device
16675
16676 Since: 4.1
16677
16678 VirtioMEMDeviceInfo (Object)
16679
16680 VirtioMEMDevice state information
16681
16682 Members:
16683
16684 "id: string" (optional)
16685 device's ID
16686
16687 "memaddr: int"
16688 physical address in memory, where device is mapped
16689
16690 "requested-size: int"
16691 the user requested size of the device
16692
16693 "size: int"
16694 the (current) size of memory that the device provides
16695
16696 "max-size: int"
16697 the maximum size of memory that the device can provide
16698
16699 "block-size: int"
16700 the block size of memory that the device provides
16701
16702 "node: int"
16703 NUMA node number where device is assigned to
16704
16705 "memdev: string"
16706 memory backend linked with the region
16707
16708 Since: 5.1
16709
16710 MemoryDeviceInfo (Object)
16711
16712 Union containing information about a memory device
16713
16714 nvdimm is included since 2.12. virtio-pmem is included since 4.1.
16715 virtio-mem is included since 5.1.
16716
16717 Members:
16718
16719 "type"
16720 One of "dimm", "nvdimm", "virtio-pmem", "virtio-mem"
16721
16722 "data: PCDIMMDeviceInfo" when "type" is "dimm"
16723 "data: PCDIMMDeviceInfo" when "type" is "nvdimm"
16724 "data: VirtioPMEMDeviceInfo" when "type" is "virtio-pmem"
16725 "data: VirtioMEMDeviceInfo" when "type" is "virtio-mem"
16726
16727 Since: 2.1
16728
16729 query-memory-devices (Command) Lists available memory devices and
16730 their state
16731
16732 Since: 2.1
16733
16734 Example:
16735
16736 -> { "execute": "query-memory-devices" }
16737 <- { "return": [ { "data":
16738 { "addr": 5368709120,
16739 "hotpluggable": true,
16740 "hotplugged": true,
16741 "id": "d1",
16742 "memdev": "/objects/memX",
16743 "node": 0,
16744 "size": 1073741824,
16745 "slot": 0},
16746 "type": "dimm"
16747 } ] }
16748
16749 MEMORY_DEVICE_SIZE_CHANGE (Event) Emitted when the size of a memory
16750 device changes. Only emitted for memory devices that can actually
16751 change the size (e.g., virtio-mem due to guest action).
16752
16753 Arguments:
16754
16755 "id: string" (optional)
16756 device's ID
16757
16758 "size: int"
16759 the new size of memory that the device provides
16760
16761 Note: this event is rate-limited.
16762
16763 Since: 5.1
16764
16765 Example:
16766
16767 <- { "event": "MEMORY_DEVICE_SIZE_CHANGE",
16768 "data": { "id": "vm0", "size": 1073741824},
16769 "timestamp": { "seconds": 1588168529, "microseconds": 201316 } }
16770
16771 MEM_UNPLUG_ERROR (Event) Emitted when memory hot unplug error occurs.
16772
16773 Arguments:
16774
16775 "device: string"
16776 device name
16777
16778 "msg: string"
16779 Informative message
16780
16781 Since: 2.4
16782
16783 Example:
16784
16785 <- { "event": "MEM_UNPLUG_ERROR"
16786 "data": { "device": "dimm1",
16787 "msg": "acpi: device unplug for unsupported device"
16788 },
16789 "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
16790
16791 ACPISlotType (Enum)
16792
16793 Values:
16794
16795 "DIMM"
16796 memory slot
16797
16798 "CPU"
16799 logical CPU slot (since 2.7)
16800
16801 ACPIOSTInfo (Object)
16802
16803 OSPM Status Indication for a device For description of possible values
16804 of "source" and "status" fields see "_OST (OSPM Status Indication)"
16805 chapter of ACPI5.0 spec.
16806
16807 Members:
16808
16809 "device: string" (optional)
16810 device ID associated with slot
16811
16812 "slot: string"
16813 slot ID, unique per slot of a given "slot-type"
16814
16815 "slot-type: ACPISlotType"
16816 type of the slot
16817
16818 "source: int"
16819 an integer containing the source event
16820
16821 "status: int"
16822 an integer containing the status code
16823
16824 Since: 2.1
16825
16826 query-acpi-ospm-status (Command) Return a list of ACPIOSTInfo for
16827 devices that support status reporting via ACPI _OST method.
16828
16829 Since: 2.1
16830
16831 Example:
16832
16833 -> { "execute": "query-acpi-ospm-status" }
16834 <- { "return": [ { "device": "d1", "slot": "0", "slot-type": "DIMM", "source": 1, "status": 0},
16835 { "slot": "1", "slot-type": "DIMM", "source": 0, "status": 0},
16836 { "slot": "2", "slot-type": "DIMM", "source": 0, "status": 0},
16837 { "slot": "3", "slot-type": "DIMM", "source": 0, "status": 0}
16838 ]}
16839
16840 ACPI_DEVICE_OST (Event) Emitted when guest executes ACPI _OST method.
16841
16842 Arguments:
16843
16844 "info: ACPIOSTInfo"
16845 OSPM Status Indication
16846
16847 Since: 2.1
16848
16849 Example:
16850
16851 <- { "event": "ACPI_DEVICE_OST",
16852 "data": { "device": "d1", "slot": "0",
16853 "slot-type": "DIMM", "source": 1, "status": 0 } }
16854
16855 ReplayMode (Enum)
16856
16857 Mode of the replay subsystem.
16858
16859 Values:
16860
16861 "none"
16862 normal execution mode. Replay or record are not enabled.
16863
16864 "record"
16865 record mode. All non-deterministic data is written into the replay
16866 log.
16867
16868 "play"
16869 replay mode. Non-deterministic data required for system execution
16870 is read from the log.
16871
16872 Since: 2.5
16873
16874 xen-load-devices-state (Command) Load the state of all devices from
16875 file. The RAM and the block devices of the VM are not loaded by this
16876 command.
16877
16878 Arguments:
16879
16880 "filename: string"
16881 the file to load the state of the devices from as binary data. See
16882 xen-save-devices-state.txt for a description of the binary format.
16883
16884 Since: 2.7
16885
16886 Example:
16887
16888 -> { "execute": "xen-load-devices-state",
16889 "arguments": { "filename": "/tmp/resume" } }
16890 <- { "return": {} }
16891
16892 GuidInfo (Object)
16893
16894 GUID information.
16895
16896 Members:
16897
16898 "guid: string"
16899 the globally unique identifier
16900
16901 Since: 2.9
16902
16903 query-vm-generation-id (Command) Show Virtual Machine Generation ID
16904
16905 Since: 2.9
16906
16907 RTC_CHANGE (Event) Emitted when the guest changes the RTC time.
16908
16909 Arguments:
16910
16911 "offset: int"
16912 offset between base RTC clock (as specified by -rtc base), and new
16913 RTC clock value
16914
16915 Note: This event is rate-limited.
16916
16917 Since: 0.13.0
16918
16919 Example:
16920
16921 <- { "event": "RTC_CHANGE",
16922 "data": { "offset": 78 },
16923 "timestamp": { "seconds": 1267020223, "microseconds": 435656 } }
16924
16925 If: "defined(TARGET_ALPHA) || defined(TARGET_ARM) ||
16926 defined(TARGET_HPPA) || defined(TARGET_I386) || defined(TARGET_MIPS) ||
16927 defined(TARGET_MIPS64) || defined(TARGET_MOXIE) || defined(TARGET_PPC)
16928 || defined(TARGET_PPC64) || defined(TARGET_S390X) ||
16929 defined(TARGET_SH4) || defined(TARGET_SPARC)"
16930
16931 rtc-reset-reinjection (Command) This command will reset the RTC
16932 interrupt reinjection backlog. Can be used if another mechanism to
16933 synchronize guest time is in effect, for example QEMU guest agent's
16934 guest-set-time command.
16935
16936 Since: 2.1
16937
16938 Example:
16939
16940 -> { "execute": "rtc-reset-reinjection" }
16941 <- { "return": {} }
16942
16943 If: "defined(TARGET_I386)"
16944
16945 SevState (Enum)
16946
16947 An enumeration of SEV state information used during "query-sev".
16948
16949 Values:
16950
16951 "uninit"
16952 The guest is uninitialized.
16953
16954 "launch-update"
16955 The guest is currently being launched; plaintext data and register
16956 state is being imported.
16957
16958 "launch-secret"
16959 The guest is currently being launched; ciphertext data is being
16960 imported.
16961
16962 "running"
16963 The guest is fully launched or migrated in.
16964
16965 "send-update"
16966 The guest is currently being migrated out to another machine.
16967
16968 "receive-update"
16969 The guest is currently being migrated from another machine.
16970
16971 Since: 2.12
16972
16973 If: "defined(TARGET_I386)"
16974
16975 SevInfo (Object)
16976
16977 Information about Secure Encrypted Virtualization (SEV) support
16978
16979 Members:
16980
16981 "enabled: boolean"
16982 true if SEV is active
16983
16984 "api-major: int"
16985 SEV API major version
16986
16987 "api-minor: int"
16988 SEV API minor version
16989
16990 "build-id: int"
16991 SEV FW build id
16992
16993 "policy: int"
16994 SEV policy value
16995
16996 "state: SevState"
16997 SEV guest state
16998
16999 "handle: int"
17000 SEV firmware handle
17001
17002 Since: 2.12
17003
17004 If: "defined(TARGET_I386)"
17005
17006 query-sev (Command) Returns information about SEV
17007
17008 Returns: "SevInfo"
17009
17010 Since: 2.12
17011
17012 Example:
17013
17014 -> { "execute": "query-sev" }
17015 <- { "return": { "enabled": true, "api-major" : 0, "api-minor" : 0,
17016 "build-id" : 0, "policy" : 0, "state" : "running",
17017 "handle" : 1 } }
17018
17019 If: "defined(TARGET_I386)"
17020
17021 SevLaunchMeasureInfo (Object)
17022
17023 SEV Guest Launch measurement information
17024
17025 Members:
17026
17027 "data: string"
17028 the measurement value encoded in base64
17029
17030 Since: 2.12
17031
17032 If: "defined(TARGET_I386)"
17033
17034 query-sev-launch-measure (Command) Query the SEV guest launch
17035 information.
17036
17037 Returns: The "SevLaunchMeasureInfo" for the guest
17038
17039 Since: 2.12
17040
17041 Example:
17042
17043 -> { "execute": "query-sev-launch-measure" }
17044 <- { "return": { "data": "4l8LXeNlSPUDlXPJG5966/8%YZ" } }
17045
17046 If: "defined(TARGET_I386)"
17047
17048 SevCapability (Object)
17049
17050 The struct describes capability for a Secure Encrypted Virtualization
17051 feature.
17052
17053 Members:
17054
17055 "pdh: string"
17056 Platform Diffie-Hellman key (base64 encoded)
17057
17058 "cert-chain: string"
17059 PDH certificate chain (base64 encoded)
17060
17061 "cbitpos: int"
17062 C-bit location in page table entry
17063
17064 "reduced-phys-bits: int"
17065 Number of physical Address bit reduction when SEV is enabled
17066
17067 Since: 2.12
17068
17069 If: "defined(TARGET_I386)"
17070
17071 query-sev-capabilities (Command) This command is used to get the SEV
17072 capabilities, and is supported on AMD X86 platforms only.
17073
17074 Returns: SevCapability objects.
17075
17076 Since: 2.12
17077
17078 Example:
17079
17080 -> { "execute": "query-sev-capabilities" }
17081 <- { "return": { "pdh": "8CCDD8DDD", "cert-chain": "888CCCDDDEE",
17082 "cbitpos": 47, "reduced-phys-bits": 5}}
17083
17084 If: "defined(TARGET_I386)"
17085
17086 dump-skeys (Command) Dump guest's storage keys
17087
17088 Arguments:
17089
17090 "filename: string"
17091 the path to the file to dump to
17092
17093 This command is only supported on s390 architecture.
17094
17095 Since: 2.5
17096
17097 Example:
17098
17099 -> { "execute": "dump-skeys",
17100 "arguments": { "filename": "/tmp/skeys" } }
17101 <- { "return": {} }
17102
17103 If: "defined(TARGET_S390X)"
17104
17105 GICCapability (Object)
17106
17107 The struct describes capability for a specific GIC (Generic Interrupt
17108 Controller) version. These bits are not only decided by QEMU/KVM
17109 software version, but also decided by the hardware that the program is
17110 running upon.
17111
17112 Members:
17113
17114 "version: int"
17115 version of GIC to be described. Currently, only 2 and 3 are
17116 supported.
17117
17118 "emulated: boolean"
17119 whether current QEMU/hardware supports emulated GIC device in user
17120 space.
17121
17122 "kernel: boolean"
17123 whether current QEMU/hardware supports hardware accelerated GIC
17124 device in kernel.
17125
17126 Since: 2.6
17127
17128 If: "defined(TARGET_ARM)"
17129
17130 query-gic-capabilities (Command) This command is ARM-only. It will
17131 return a list of GICCapability objects that describe its capability
17132 bits.
17133
17134 Returns: a list of GICCapability objects.
17135
17136 Since: 2.6
17137
17138 Example:
17139
17140 -> { "execute": "query-gic-capabilities" }
17141 <- { "return": [{ "version": 2, "emulated": true, "kernel": false },
17142 { "version": 3, "emulated": false, "kernel": true } ] }
17143
17144 If: "defined(TARGET_ARM)"
17145
17146 AudiodevPerDirectionOptions (Object)
17147
17148 General audio backend options that are used for both playback and
17149 recording.
17150
17151 Members:
17152
17153 "mixing-engine: boolean" (optional)
17154 use QEMU's mixing engine to mix all streams inside QEMU and convert
17155 audio formats when not supported by the backend. When set to off,
17156 fixed-settings must be also off (default on, since 4.2)
17157
17158 "fixed-settings: boolean" (optional)
17159 use fixed settings for host input/output. When off, frequency,
17160 channels and format must not be specified (default true)
17161
17162 "frequency: int" (optional)
17163 frequency to use when using fixed settings (default 44100)
17164
17165 "channels: int" (optional)
17166 number of channels when using fixed settings (default 2)
17167
17168 "voices: int" (optional)
17169 number of voices to use (default 1)
17170
17171 "format: AudioFormat" (optional)
17172 sample format to use when using fixed settings (default s16)
17173
17174 "buffer-length: int" (optional)
17175 the buffer length in microseconds
17176
17177 Since: 4.0
17178
17179 AudiodevGenericOptions (Object)
17180
17181 Generic driver-specific options.
17182
17183 Members:
17184
17185 "in: AudiodevPerDirectionOptions" (optional)
17186 options of the capture stream
17187
17188 "out: AudiodevPerDirectionOptions" (optional)
17189 options of the playback stream
17190
17191 Since: 4.0
17192
17193 AudiodevAlsaPerDirectionOptions (Object)
17194
17195 Options of the ALSA backend that are used for both playback and
17196 recording.
17197
17198 Members:
17199
17200 "dev: string" (optional)
17201 the name of the ALSA device to use (default 'default')
17202
17203 "period-length: int" (optional)
17204 the period length in microseconds
17205
17206 "try-poll: boolean" (optional)
17207 attempt to use poll mode, falling back to non-polling access on
17208 failure (default true)
17209
17210 The members of "AudiodevPerDirectionOptions"
17211
17212 Since: 4.0
17213
17214 AudiodevAlsaOptions (Object)
17215
17216 Options of the ALSA audio backend.
17217
17218 Members:
17219
17220 "in: AudiodevAlsaPerDirectionOptions" (optional)
17221 options of the capture stream
17222
17223 "out: AudiodevAlsaPerDirectionOptions" (optional)
17224 options of the playback stream
17225
17226 "threshold: int" (optional)
17227 set the threshold (in microseconds) when playback starts
17228
17229 Since: 4.0
17230
17231 AudiodevCoreaudioPerDirectionOptions (Object)
17232
17233 Options of the Core Audio backend that are used for both playback and
17234 recording.
17235
17236 Members:
17237
17238 "buffer-count: int" (optional)
17239 number of buffers
17240
17241 The members of "AudiodevPerDirectionOptions"
17242
17243 Since: 4.0
17244
17245 AudiodevCoreaudioOptions (Object)
17246
17247 Options of the coreaudio audio backend.
17248
17249 Members:
17250
17251 "in: AudiodevCoreaudioPerDirectionOptions" (optional)
17252 options of the capture stream
17253
17254 "out: AudiodevCoreaudioPerDirectionOptions" (optional)
17255 options of the playback stream
17256
17257 Since: 4.0
17258
17259 AudiodevDsoundOptions (Object)
17260
17261 Options of the DirectSound audio backend.
17262
17263 Members:
17264
17265 "in: AudiodevPerDirectionOptions" (optional)
17266 options of the capture stream
17267
17268 "out: AudiodevPerDirectionOptions" (optional)
17269 options of the playback stream
17270
17271 "latency: int" (optional)
17272 add extra latency to playback in microseconds (default 10000)
17273
17274 Since: 4.0
17275
17276 AudiodevJackPerDirectionOptions (Object)
17277
17278 Options of the JACK backend that are used for both playback and
17279 recording.
17280
17281 Members:
17282
17283 "server-name: string" (optional)
17284 select from among several possible concurrent server instances
17285 (default: environment variable $JACK_DEFAULT_SERVER if set, else
17286 "default")
17287
17288 "client-name: string" (optional)
17289 the client name to use. The server will modify this name to create
17290 a unique variant, if needed unless "exact-name" is true (default:
17291 the guest's name)
17292
17293 "connect-ports: string" (optional)
17294 if set, a regular expression of JACK client port name(s) to monitor
17295 for and automatically connect to
17296
17297 "start-server: boolean" (optional)
17298 start a jack server process if one is not already present (default:
17299 false)
17300
17301 "exact-name: boolean" (optional)
17302 use the exact name requested otherwise JACK automatically generates
17303 a unique one, if needed (default: false)
17304
17305 The members of "AudiodevPerDirectionOptions"
17306
17307 Since: 5.1
17308
17309 AudiodevJackOptions (Object)
17310
17311 Options of the JACK audio backend.
17312
17313 Members:
17314
17315 "in: AudiodevJackPerDirectionOptions" (optional)
17316 options of the capture stream
17317
17318 "out: AudiodevJackPerDirectionOptions" (optional)
17319 options of the playback stream
17320
17321 Since: 5.1
17322
17323 AudiodevOssPerDirectionOptions (Object)
17324
17325 Options of the OSS backend that are used for both playback and
17326 recording.
17327
17328 Members:
17329
17330 "dev: string" (optional)
17331 file name of the OSS device (default '/dev/dsp')
17332
17333 "buffer-count: int" (optional)
17334 number of buffers
17335
17336 "try-poll: boolean" (optional)
17337 attempt to use poll mode, falling back to non-polling access on
17338 failure (default true)
17339
17340 The members of "AudiodevPerDirectionOptions"
17341
17342 Since: 4.0
17343
17344 AudiodevOssOptions (Object)
17345
17346 Options of the OSS audio backend.
17347
17348 Members:
17349
17350 "in: AudiodevOssPerDirectionOptions" (optional)
17351 options of the capture stream
17352
17353 "out: AudiodevOssPerDirectionOptions" (optional)
17354 options of the playback stream
17355
17356 "try-mmap: boolean" (optional)
17357 try using memory-mapped access, falling back to non-memory-mapped
17358 access on failure (default true)
17359
17360 "exclusive: boolean" (optional)
17361 open device in exclusive mode (vmix won't work) (default false)
17362
17363 "dsp-policy: int" (optional)
17364 set the timing policy of the device (between 0 and 10, where
17365 smaller number means smaller latency but higher CPU usage) or -1 to
17366 use fragment mode (option ignored on some platforms) (default 5)
17367
17368 Since: 4.0
17369
17370 AudiodevPaPerDirectionOptions (Object)
17371
17372 Options of the Pulseaudio backend that are used for both playback and
17373 recording.
17374
17375 Members:
17376
17377 "name: string" (optional)
17378 name of the sink/source to use
17379
17380 "stream-name: string" (optional)
17381 name of the PulseAudio stream created by qemu. Can be used to
17382 identify the stream in PulseAudio when you create multiple
17383 PulseAudio devices or run multiple qemu instances (default:
17384 audiodev's id, since 4.2)
17385
17386 "latency: int" (optional)
17387 latency you want PulseAudio to achieve in microseconds (default
17388 15000)
17389
17390 The members of "AudiodevPerDirectionOptions"
17391
17392 Since: 4.0
17393
17394 AudiodevPaOptions (Object)
17395
17396 Options of the PulseAudio audio backend.
17397
17398 Members:
17399
17400 "in: AudiodevPaPerDirectionOptions" (optional)
17401 options of the capture stream
17402
17403 "out: AudiodevPaPerDirectionOptions" (optional)
17404 options of the playback stream
17405
17406 "server: string" (optional)
17407 PulseAudio server address (default: let PulseAudio choose)
17408
17409 Since: 4.0
17410
17411 AudiodevWavOptions (Object)
17412
17413 Options of the wav audio backend.
17414
17415 Members:
17416
17417 "in: AudiodevPerDirectionOptions" (optional)
17418 options of the capture stream
17419
17420 "out: AudiodevPerDirectionOptions" (optional)
17421 options of the playback stream
17422
17423 "path: string" (optional)
17424 name of the wav file to record (default 'qemu.wav')
17425
17426 Since: 4.0
17427
17428 AudioFormat (Enum)
17429
17430 An enumeration of possible audio formats.
17431
17432 Values:
17433
17434 "u8"
17435 unsigned 8 bit integer
17436
17437 "s8"
17438 signed 8 bit integer
17439
17440 "u16"
17441 unsigned 16 bit integer
17442
17443 "s16"
17444 signed 16 bit integer
17445
17446 "u32"
17447 unsigned 32 bit integer
17448
17449 "s32"
17450 signed 32 bit integer
17451
17452 "f32"
17453 single precision floating-point (since 5.0)
17454
17455 Since: 4.0
17456
17457 AudiodevDriver (Enum)
17458
17459 An enumeration of possible audio backend drivers.
17460
17461 Values:
17462
17463 "jack"
17464 JACK audio backend (since 5.1)
17465
17466 "none"
17467 Not documented
17468
17469 "alsa"
17470 Not documented
17471
17472 "coreaudio"
17473 Not documented
17474
17475 "dsound"
17476 Not documented
17477
17478 "oss"
17479 Not documented
17480
17481 "pa"
17482 Not documented
17483
17484 "sdl"
17485 Not documented
17486
17487 "spice"
17488 Not documented
17489
17490 "wav"
17491 Not documented
17492
17493 Since: 4.0
17494
17495 Audiodev (Object)
17496
17497 Options of an audio backend.
17498
17499 Members:
17500
17501 "id: string"
17502 identifier of the backend
17503
17504 "driver: AudiodevDriver"
17505 the backend driver to use
17506
17507 "timer-period: int" (optional)
17508 timer period (in microseconds, 0: use lowest possible)
17509
17510 The members of "AudiodevGenericOptions" when "driver" is "none"
17511 The members of "AudiodevAlsaOptions" when "driver" is "alsa"
17512 The members of "AudiodevCoreaudioOptions" when "driver" is "coreaudio"
17513 The members of "AudiodevDsoundOptions" when "driver" is "dsound"
17514 The members of "AudiodevJackOptions" when "driver" is "jack"
17515 The members of "AudiodevOssOptions" when "driver" is "oss"
17516 The members of "AudiodevPaOptions" when "driver" is "pa"
17517 The members of "AudiodevGenericOptions" when "driver" is "sdl"
17518 The members of "AudiodevGenericOptions" when "driver" is "spice"
17519 The members of "AudiodevWavOptions" when "driver" is "wav"
17520
17521 Since: 4.0
17522
17523
17524
17525 2021-01-11 QEMU-QMP-REF.7(7)