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 Common data types
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 IoOperationType (Enum)
86
87 An enumeration of the I/O operation types
88
89 Values:
90
91 "read"
92 read operation
93
94 "write"
95 write operation
96
97 Since: 2.1
98
99 OnOffAuto (Enum)
100
101 An enumeration of three options: on, off, and auto
102
103 Values:
104
105 "auto"
106 QEMU selects the value between on and off
107
108 "on"
109 Enabled
110
111 "off"
112 Disabled
113
114 Since: 2.2
115
116 OnOffSplit (Enum)
117
118 An enumeration of three values: on, off, and split
119
120 Values:
121
122 "on"
123 Enabled
124
125 "off"
126 Disabled
127
128 "split"
129 Mixed
130
131 Since: 2.6
132
133 String (Object)
134
135 A fat type wrapping 'str', to be embedded in lists.
136
137 Members:
138
139 "str: string"
140 Not documented
141
142 Since: 1.2
143
144 StrOrNull (Alternate)
145
146 This is a string value or the explicit lack of a string (null pointer
147 in C). Intended for cases when 'optional absent' already has a
148 different meaning.
149
150 Members:
151
152 "s: string"
153 the string value
154
155 "n: null"
156 no string value
157
158 Since: 2.10
159
160 OffAutoPCIBAR (Enum)
161
162 An enumeration of options for specifying a PCI BAR
163
164 Values:
165
166 "off"
167 The specified feature is disabled
168
169 "auto"
170 The PCI BAR for the feature is automatically selected
171
172 "bar0"
173 PCI BAR0 is used for the feature
174
175 "bar1"
176 PCI BAR1 is used for the feature
177
178 "bar2"
179 PCI BAR2 is used for the feature
180
181 "bar3"
182 PCI BAR3 is used for the feature
183
184 "bar4"
185 PCI BAR4 is used for the feature
186
187 "bar5"
188 PCI BAR5 is used for the feature
189
190 Since: 2.12
191
192 PCIELinkSpeed (Enum)
193
194 An enumeration of PCIe link speeds in units of GT/s
195
196 Values:
197
198 "2_5"
199 2.5GT/s
200
201 5 5.0GT/s
202
203 8 8.0GT/s
204
205 16 16.0GT/s
206
207 Since: 4.0
208
209 PCIELinkWidth (Enum)
210
211 An enumeration of PCIe link width
212
213 Values:
214
215 1 x1
216
217 2 x2
218
219 4 x4
220
221 8 x8
222
223 12 x12
224
225 16 x16
226
227 32 x32
228
229 Since: 4.0
230
231 SysEmuTarget (Enum)
232
233 The comprehensive enumeration of QEMU system emulation ("softmmu")
234 targets. Run "./configure --help" in the project root directory, and
235 look for the *-softmmu targets near the "--target-list" option. The
236 individual target constants are not documented here, for the time
237 being.
238
239 Values:
240
241 "aarch64"
242 Not documented
243
244 "alpha"
245 Not documented
246
247 "arm"
248 Not documented
249
250 "cris"
251 Not documented
252
253 "hppa"
254 Not documented
255
256 "i386"
257 Not documented
258
259 "lm32"
260 Not documented
261
262 "m68k"
263 Not documented
264
265 "microblaze"
266 Not documented
267
268 "microblazeel"
269 Not documented
270
271 "mips"
272 Not documented
273
274 "mips64"
275 Not documented
276
277 "mips64el"
278 Not documented
279
280 "mipsel"
281 Not documented
282
283 "moxie"
284 Not documented
285
286 "nios2"
287 Not documented
288
289 "or1k"
290 Not documented
291
292 "ppc"
293 Not documented
294
295 "ppc64"
296 Not documented
297
298 "riscv32"
299 Not documented
300
301 "riscv64"
302 Not documented
303
304 "s390x"
305 Not documented
306
307 "sh4"
308 Not documented
309
310 "sh4eb"
311 Not documented
312
313 "sparc"
314 Not documented
315
316 "sparc64"
317 Not documented
318
319 "tricore"
320 Not documented
321
322 "unicore32"
323 Not documented
324
325 "x86_64"
326 Not documented
327
328 "xtensa"
329 Not documented
330
331 "xtensaeb"
332 Not documented
333
334 Notes: The resulting QMP strings can be appended to the "qemu-system-"
335 prefix to produce the corresponding QEMU executable name. This is true
336 even for "qemu-system-x86_64".
337
338 ppcemb: dropped in 3.1
339
340 Since: 3.0
341
342 Socket data types
343 NetworkAddressFamily (Enum)
344
345 The network address family
346
347 Values:
348
349 "ipv4"
350 IPV4 family
351
352 "ipv6"
353 IPV6 family
354
355 "unix"
356 unix socket
357
358 "vsock"
359 vsock family (since 2.8)
360
361 "unknown"
362 otherwise
363
364 Since: 2.1
365
366 InetSocketAddressBase (Object)
367
368 Members:
369
370 "host: string"
371 host part of the address
372
373 "port: string"
374 port part of the address
375
376 InetSocketAddress (Object)
377
378 Captures a socket address or address range in the Internet namespace.
379
380 Members:
381
382 "numeric: boolean" (optional)
383 true if the host/port are guaranteed to be numeric, false if name
384 resolution should be attempted. Defaults to false. (Since 2.9)
385
386 "to: int" (optional)
387 If present, this is range of possible addresses, with port between
388 "port" and "to".
389
390 "ipv4: boolean" (optional)
391 whether to accept IPv4 addresses, default try both IPv4 and IPv6
392
393 "ipv6: boolean" (optional)
394 whether to accept IPv6 addresses, default try both IPv4 and IPv6
395
396 The members of "InetSocketAddressBase"
397
398 Since: 1.3
399
400 UnixSocketAddress (Object)
401
402 Captures a socket address in the local ("Unix socket") namespace.
403
404 Members:
405
406 "path: string"
407 filesystem path to use
408
409 Since: 1.3
410
411 VsockSocketAddress (Object)
412
413 Captures a socket address in the vsock namespace.
414
415 Members:
416
417 "cid: string"
418 unique host identifier
419
420 "port: string"
421 port
422
423 Note: string types are used to allow for possible future hostname or
424 service resolution support.
425
426 Since: 2.8
427
428 SocketAddressLegacy (Object)
429
430 Captures the address of a socket, which could also be a named file
431 descriptor
432
433 Members:
434
435 "type"
436 One of "inet", "unix", "vsock", "fd"
437
438 "data: InetSocketAddress" when "type" is "inet"
439 "data: UnixSocketAddress" when "type" is "unix"
440 "data: VsockSocketAddress" when "type" is "vsock"
441 "data: String" when "type" is "fd"
442
443 Note: This type is deprecated in favor of SocketAddress. The
444 difference between SocketAddressLegacy and SocketAddress is that the
445 latter is a flat union rather than a simple union. Flat is nicer
446 because it avoids nesting on the wire, i.e. that form has fewer {}.
447
448 Since: 1.3
449
450 SocketAddressType (Enum)
451
452 Available SocketAddress types
453
454 Values:
455
456 "inet"
457 Internet address
458
459 "unix"
460 Unix domain socket
461
462 "vsock"
463 VMCI address
464
465 "fd"
466 decimal is for file descriptor number, otherwise a file descriptor
467 name. Named file descriptors are permitted in monitor commands, in
468 combination with the 'getfd' command. Decimal file descriptors are
469 permitted at startup or other contexts where no monitor context is
470 active.
471
472 Since: 2.9
473
474 SocketAddress (Object)
475
476 Captures the address of a socket, which could also be a named file
477 descriptor
478
479 Members:
480
481 "type: SocketAddressType"
482 Transport type
483
484 The members of "InetSocketAddress" when "type" is "inet"
485 The members of "UnixSocketAddress" when "type" is "unix"
486 The members of "VsockSocketAddress" when "type" is "vsock"
487 The members of "String" when "type" is "fd"
488
489 Since: 2.9
490
491 VM run state
492 RunState (Enum)
493
494 An enumeration of VM run states.
495
496 Values:
497
498 "debug"
499 QEMU is running on a debugger
500
501 "finish-migrate"
502 guest is paused to finish the migration process
503
504 "inmigrate"
505 guest is paused waiting for an incoming migration. Note that this
506 state does not tell whether the machine will start at the end of
507 the migration. This depends on the command-line -S option and any
508 invocation of 'stop' or 'cont' that has happened since QEMU was
509 started.
510
511 "internal-error"
512 An internal error that prevents further guest execution has
513 occurred
514
515 "io-error"
516 the last IOP has failed and the device is configured to pause on
517 I/O errors
518
519 "paused"
520 guest has been paused via the 'stop' command
521
522 "postmigrate"
523 guest is paused following a successful 'migrate'
524
525 "prelaunch"
526 QEMU was started with -S and guest has not started
527
528 "restore-vm"
529 guest is paused to restore VM state
530
531 "running"
532 guest is actively running
533
534 "save-vm"
535 guest is paused to save the VM state
536
537 "shutdown"
538 guest is shut down (and -no-shutdown is in use)
539
540 "suspended"
541 guest is suspended (ACPI S3)
542
543 "watchdog"
544 the watchdog action is configured to pause and has been triggered
545
546 "guest-panicked"
547 guest has been panicked as a result of guest OS panic
548
549 "colo"
550 guest is paused to save/restore VM state under colo checkpoint, VM
551 can not get into this state unless colo capability is enabled for
552 migration. (since 2.8)
553
554 "preconfig"
555 QEMU is paused before board specific init callback is executed.
556 The state is reachable only if the --preconfig CLI option is used.
557 (Since 3.0)
558
559 ShutdownCause (Enum)
560
561 An enumeration of reasons for a Shutdown.
562
563 Values:
564
565 "none"
566 No shutdown request pending
567
568 "host-error"
569 An error prevents further use of guest
570
571 "host-qmp-quit"
572 Reaction to the QMP command 'quit'
573
574 "host-qmp-system-reset"
575 Reaction to the QMP command 'system_reset'
576
577 "host-signal"
578 Reaction to a signal, such as SIGINT
579
580 "host-ui"
581 Reaction to a UI event, like window close
582
583 "guest-shutdown"
584 Guest shutdown/suspend request, via ACPI or other hardware-specific
585 means
586
587 "guest-reset"
588 Guest reset request, and command line turns that into a shutdown
589
590 "guest-panic"
591 Guest panicked, and command line turns that into a shutdown
592
593 "subsystem-reset"
594 Partial guest reset that does not trigger QMP events and ignores
595 --no-reboot. This is useful for sanitizing hypercalls on s390 that
596 are used during kexec/kdump/boot
597
598 StatusInfo (Object)
599
600 Information about VCPU run state
601
602 Members:
603
604 "running: boolean"
605 true if all VCPUs are runnable, false if not runnable
606
607 "singlestep: boolean"
608 true if VCPUs are in single-step mode
609
610 "status: RunState"
611 the virtual machine "RunState"
612
613 Since: 0.14.0
614
615 Notes: "singlestep" is enabled through the GDB stub
616
617 query-status (Command) Query the run status of all VCPUs
618
619 Returns: "StatusInfo" reflecting all VCPUs
620
621 Since: 0.14.0
622
623 Example:
624
625 -> { "execute": "query-status" }
626 <- { "return": { "running": true,
627 "singlestep": false,
628 "status": "running" } }
629
630 SHUTDOWN (Event) Emitted when the virtual machine has shut down,
631 indicating that qemu is about to exit.
632
633 Arguments:
634
635 "guest: boolean"
636 If true, the shutdown was triggered by a guest request (such as a
637 guest-initiated ACPI shutdown request or other hardware-specific
638 action) rather than a host request (such as sending qemu a SIGINT).
639 (since 2.10)
640
641 "reason: ShutdownCause"
642 The "ShutdownCause" which resulted in the SHUTDOWN. (since 4.0)
643
644 Note: If the command-line option "-no-shutdown" has been specified,
645 qemu will not exit, and a STOP event will eventually follow the
646 SHUTDOWN event
647
648 Since: 0.12.0
649
650 Example:
651
652 <- { "event": "SHUTDOWN", "data": { "guest": true },
653 "timestamp": { "seconds": 1267040730, "microseconds": 682951 } }
654
655 POWERDOWN (Event) Emitted when the virtual machine is powered down
656 through the power control system, such as via ACPI.
657
658 Since: 0.12.0
659
660 Example:
661
662 <- { "event": "POWERDOWN",
663 "timestamp": { "seconds": 1267040730, "microseconds": 682951 } }
664
665 RESET (Event) Emitted when the virtual machine is reset
666
667 Arguments:
668
669 "guest: boolean"
670 If true, the reset was triggered by a guest request (such as a
671 guest-initiated ACPI reboot request or other hardware-specific
672 action) rather than a host request (such as the QMP command
673 system_reset). (since 2.10)
674
675 "reason: ShutdownCause"
676 The "ShutdownCause" of the RESET. (since 4.0)
677
678 Since: 0.12.0
679
680 Example:
681
682 <- { "event": "RESET", "data": { "guest": false },
683 "timestamp": { "seconds": 1267041653, "microseconds": 9518 } }
684
685 STOP (Event) Emitted when the virtual machine is stopped
686
687 Since: 0.12.0
688
689 Example:
690
691 <- { "event": "STOP",
692 "timestamp": { "seconds": 1267041730, "microseconds": 281295 } }
693
694 RESUME (Event) Emitted when the virtual machine resumes execution
695
696 Since: 0.12.0
697
698 Example:
699
700 <- { "event": "RESUME",
701 "timestamp": { "seconds": 1271770767, "microseconds": 582542 } }
702
703 SUSPEND (Event) Emitted when guest enters a hardware suspension state,
704 for example, S3 state, which is sometimes called standby state
705
706 Since: 1.1
707
708 Example:
709
710 <- { "event": "SUSPEND",
711 "timestamp": { "seconds": 1344456160, "microseconds": 309119 } }
712
713 SUSPEND_DISK (Event) Emitted when guest enters a hardware suspension
714 state with data saved on disk, for example, S4 state, which is
715 sometimes called hibernate state
716
717 Note: QEMU shuts down (similar to event "SHUTDOWN") when entering this
718 state
719
720 Since: 1.2
721
722 Example:
723
724 <- { "event": "SUSPEND_DISK",
725 "timestamp": { "seconds": 1344456160, "microseconds": 309119 } }
726
727 WAKEUP (Event) Emitted when the guest has woken up from suspend state
728 and is running
729
730 Since: 1.1
731
732 Example:
733
734 <- { "event": "WAKEUP",
735 "timestamp": { "seconds": 1344522075, "microseconds": 745528 } }
736
737 WATCHDOG (Event) Emitted when the watchdog device's timer is expired
738
739 Arguments:
740
741 "action: WatchdogAction"
742 action that has been taken
743
744 Note: If action is "reset", "shutdown", or "pause" the WATCHDOG event
745 is followed respectively by the RESET, SHUTDOWN, or STOP events
746
747 Note: This event is rate-limited.
748
749 Since: 0.13.0
750
751 Example:
752
753 <- { "event": "WATCHDOG",
754 "data": { "action": "reset" },
755 "timestamp": { "seconds": 1267061043, "microseconds": 959568 } }
756
757 WatchdogAction (Enum)
758
759 An enumeration of the actions taken when the watchdog device's timer is
760 expired
761
762 Values:
763
764 "reset"
765 system resets
766
767 "shutdown"
768 system shutdown, note that it is similar to "powerdown", which
769 tries to set to system status and notify guest
770
771 "poweroff"
772 system poweroff, the emulator program exits
773
774 "pause"
775 system pauses, similar to "stop"
776
777 "debug"
778 system enters debug state
779
780 "none"
781 nothing is done
782
783 "inject-nmi"
784 a non-maskable interrupt is injected into the first VCPU (all VCPUS
785 on x86) (since 2.4)
786
787 Since: 2.1
788
789 watchdog-set-action (Command) Set watchdog action
790
791 Arguments:
792
793 "action: WatchdogAction"
794 Not documented
795
796 Since: 2.11
797
798 GUEST_PANICKED (Event) Emitted when guest OS panic is detected
799
800 Arguments:
801
802 "action: GuestPanicAction"
803 action that has been taken, currently always "pause"
804
805 "info: GuestPanicInformation" (optional)
806 information about a panic (since 2.9)
807
808 Since: 1.5
809
810 Example:
811
812 <- { "event": "GUEST_PANICKED",
813 "data": { "action": "pause" } }
814
815 GuestPanicAction (Enum)
816
817 An enumeration of the actions taken when guest OS panic is detected
818
819 Values:
820
821 "pause"
822 system pauses
823
824 "poweroff"
825 Not documented
826
827 Since: 2.1 (poweroff since 2.8)
828
829 GuestPanicInformationType (Enum)
830
831 An enumeration of the guest panic information types
832
833 Values:
834
835 "hyper-v"
836 hyper-v guest panic information type
837
838 "s390"
839 s390 guest panic information type (Since: 2.12)
840
841 Since: 2.9
842
843 GuestPanicInformation (Object)
844
845 Information about a guest panic
846
847 Members:
848
849 "type: GuestPanicInformationType"
850 Crash type that defines the hypervisor specific information
851
852 The members of "GuestPanicInformationHyperV" when "type" is "hyper-v"
853 The members of "GuestPanicInformationS390" when "type" is "s390"
854
855 Since: 2.9
856
857 GuestPanicInformationHyperV (Object)
858
859 Hyper-V specific guest panic information (HV crash MSRs)
860
861 Members:
862
863 "arg1: int"
864 Not documented
865
866 "arg2: int"
867 Not documented
868
869 "arg3: int"
870 Not documented
871
872 "arg4: int"
873 Not documented
874
875 "arg5: int"
876 Not documented
877
878 Since: 2.9
879
880 S390CrashReason (Enum)
881
882 Reason why the CPU is in a crashed state.
883
884 Values:
885
886 "unknown"
887 no crash reason was set
888
889 "disabled-wait"
890 the CPU has entered a disabled wait state
891
892 "extint-loop"
893 clock comparator or cpu timer interrupt with new PSW enabled for
894 external interrupts
895
896 "pgmint-loop"
897 program interrupt with BAD new PSW
898
899 "opint-loop"
900 operation exception interrupt with invalid code at the program
901 interrupt new PSW
902
903 Since: 2.12
904
905 GuestPanicInformationS390 (Object)
906
907 S390 specific guest panic information (PSW)
908
909 Members:
910
911 "core: int"
912 core id of the CPU that crashed
913
914 "psw-mask: int"
915 control fields of guest PSW
916
917 "psw-addr: int"
918 guest instruction address
919
920 "reason: S390CrashReason"
921 guest crash reason
922
923 Since: 2.12
924
925 Cryptography
926 QCryptoTLSCredsEndpoint (Enum)
927
928 The type of network endpoint that will be using the credentials. Most
929 types of credential require different setup / structures depending on
930 whether they will be used in a server versus a client.
931
932 Values:
933
934 "client"
935 the network endpoint is acting as the client
936
937 "server"
938 the network endpoint is acting as the server
939
940 Since: 2.5
941
942 QCryptoSecretFormat (Enum)
943
944 The data format that the secret is provided in
945
946 Values:
947
948 "raw"
949 raw bytes. When encoded in JSON only valid UTF-8 sequences can be
950 used
951
952 "base64"
953 arbitrary base64 encoded binary data
954
955 Since: 2.6
956
957 QCryptoHashAlgorithm (Enum)
958
959 The supported algorithms for computing content digests
960
961 Values:
962
963 "md5"
964 MD5. Should not be used in any new code, legacy compat only
965
966 "sha1"
967 SHA-1. Should not be used in any new code, legacy compat only
968
969 "sha224"
970 SHA-224. (since 2.7)
971
972 "sha256"
973 SHA-256. Current recommended strong hash.
974
975 "sha384"
976 SHA-384. (since 2.7)
977
978 "sha512"
979 SHA-512. (since 2.7)
980
981 "ripemd160"
982 RIPEMD-160. (since 2.7)
983
984 Since: 2.6
985
986 QCryptoCipherAlgorithm (Enum)
987
988 The supported algorithms for content encryption ciphers
989
990 Values:
991
992 "aes-128"
993 AES with 128 bit / 16 byte keys
994
995 "aes-192"
996 AES with 192 bit / 24 byte keys
997
998 "aes-256"
999 AES with 256 bit / 32 byte keys
1000
1001 "des-rfb"
1002 RFB specific variant of single DES. Do not use except in VNC.
1003
1004 "3des"
1005 3DES(EDE) with 192 bit / 24 byte keys (since 2.9)
1006
1007 "cast5-128"
1008 Cast5 with 128 bit / 16 byte keys
1009
1010 "serpent-128"
1011 Serpent with 128 bit / 16 byte keys
1012
1013 "serpent-192"
1014 Serpent with 192 bit / 24 byte keys
1015
1016 "serpent-256"
1017 Serpent with 256 bit / 32 byte keys
1018
1019 "twofish-128"
1020 Twofish with 128 bit / 16 byte keys
1021
1022 "twofish-192"
1023 Twofish with 192 bit / 24 byte keys
1024
1025 "twofish-256"
1026 Twofish with 256 bit / 32 byte keys
1027
1028 Since: 2.6
1029
1030 QCryptoCipherMode (Enum)
1031
1032 The supported modes for content encryption ciphers
1033
1034 Values:
1035
1036 "ecb"
1037 Electronic Code Book
1038
1039 "cbc"
1040 Cipher Block Chaining
1041
1042 "xts"
1043 XEX with tweaked code book and ciphertext stealing
1044
1045 "ctr"
1046 Counter (Since 2.8)
1047
1048 Since: 2.6
1049
1050 QCryptoIVGenAlgorithm (Enum)
1051
1052 The supported algorithms for generating initialization vectors for full
1053 disk encryption. The 'plain' generator should not be used for disks
1054 with sector numbers larger than 2^32, except where compatibility with
1055 pre-existing Linux dm-crypt volumes is required.
1056
1057 Values:
1058
1059 "plain"
1060 64-bit sector number truncated to 32-bits
1061
1062 "plain64"
1063 64-bit sector number
1064
1065 "essiv"
1066 64-bit sector number encrypted with a hash of the encryption key
1067
1068 Since: 2.6
1069
1070 QCryptoBlockFormat (Enum)
1071
1072 The supported full disk encryption formats
1073
1074 Values:
1075
1076 "qcow"
1077 QCow/QCow2 built-in AES-CBC encryption. Use only for liberating
1078 data from old images.
1079
1080 "luks"
1081 LUKS encryption format. Recommended for new images
1082
1083 Since: 2.6
1084
1085 QCryptoBlockOptionsBase (Object)
1086
1087 The common options that apply to all full disk encryption formats
1088
1089 Members:
1090
1091 "format: QCryptoBlockFormat"
1092 the encryption format
1093
1094 Since: 2.6
1095
1096 QCryptoBlockOptionsQCow (Object)
1097
1098 The options that apply to QCow/QCow2 AES-CBC encryption format
1099
1100 Members:
1101
1102 "key-secret: string" (optional)
1103 the ID of a QCryptoSecret object providing the decryption key.
1104 Mandatory except when probing image for metadata only.
1105
1106 Since: 2.6
1107
1108 QCryptoBlockOptionsLUKS (Object)
1109
1110 The options that apply to LUKS encryption format
1111
1112 Members:
1113
1114 "key-secret: string" (optional)
1115 the ID of a QCryptoSecret object providing the decryption key.
1116 Mandatory except when probing image for metadata only.
1117
1118 Since: 2.6
1119
1120 QCryptoBlockCreateOptionsLUKS (Object)
1121
1122 The options that apply to LUKS encryption format initialization
1123
1124 Members:
1125
1126 "cipher-alg: QCryptoCipherAlgorithm" (optional)
1127 the cipher algorithm for data encryption Currently defaults to
1128 'aes-256'.
1129
1130 "cipher-mode: QCryptoCipherMode" (optional)
1131 the cipher mode for data encryption Currently defaults to 'xts'
1132
1133 "ivgen-alg: QCryptoIVGenAlgorithm" (optional)
1134 the initialization vector generator Currently defaults to 'plain64'
1135
1136 "ivgen-hash-alg: QCryptoHashAlgorithm" (optional)
1137 the initialization vector generator hash Currently defaults to
1138 'sha256'
1139
1140 "hash-alg: QCryptoHashAlgorithm" (optional)
1141 the master key hash algorithm Currently defaults to 'sha256'
1142
1143 "iter-time: int" (optional)
1144 number of milliseconds to spend in PBKDF passphrase processing.
1145 Currently defaults to 2000. (since 2.8)
1146
1147 The members of "QCryptoBlockOptionsLUKS"
1148
1149 Since: 2.6
1150
1151 QCryptoBlockOpenOptions (Object)
1152
1153 The options that are available for all encryption formats when opening
1154 an existing volume
1155
1156 Members:
1157
1158 The members of "QCryptoBlockOptionsBase"
1159 The members of "QCryptoBlockOptionsQCow" when "format" is "qcow"
1160 The members of "QCryptoBlockOptionsLUKS" when "format" is "luks"
1161
1162 Since: 2.6
1163
1164 QCryptoBlockCreateOptions (Object)
1165
1166 The options that are available for all encryption formats when
1167 initializing a new volume
1168
1169 Members:
1170
1171 The members of "QCryptoBlockOptionsBase"
1172 The members of "QCryptoBlockOptionsQCow" when "format" is "qcow"
1173 The members of "QCryptoBlockCreateOptionsLUKS" when "format" is "luks"
1174
1175 Since: 2.6
1176
1177 QCryptoBlockInfoBase (Object)
1178
1179 The common information that applies to all full disk encryption formats
1180
1181 Members:
1182
1183 "format: QCryptoBlockFormat"
1184 the encryption format
1185
1186 Since: 2.7
1187
1188 QCryptoBlockInfoLUKSSlot (Object)
1189
1190 Information about the LUKS block encryption key slot options
1191
1192 Members:
1193
1194 "active: boolean"
1195 whether the key slot is currently in use
1196
1197 "key-offset: int"
1198 offset to the key material in bytes
1199
1200 "iters: int" (optional)
1201 number of PBKDF2 iterations for key material
1202
1203 "stripes: int" (optional)
1204 number of stripes for splitting key material
1205
1206 Since: 2.7
1207
1208 QCryptoBlockInfoLUKS (Object)
1209
1210 Information about the LUKS block encryption options
1211
1212 Members:
1213
1214 "cipher-alg: QCryptoCipherAlgorithm"
1215 the cipher algorithm for data encryption
1216
1217 "cipher-mode: QCryptoCipherMode"
1218 the cipher mode for data encryption
1219
1220 "ivgen-alg: QCryptoIVGenAlgorithm"
1221 the initialization vector generator
1222
1223 "ivgen-hash-alg: QCryptoHashAlgorithm" (optional)
1224 the initialization vector generator hash
1225
1226 "hash-alg: QCryptoHashAlgorithm"
1227 the master key hash algorithm
1228
1229 "payload-offset: int"
1230 offset to the payload data in bytes
1231
1232 "master-key-iters: int"
1233 number of PBKDF2 iterations for key material
1234
1235 "uuid: string"
1236 unique identifier for the volume
1237
1238 "slots: array of QCryptoBlockInfoLUKSSlot"
1239 information about each key slot
1240
1241 Since: 2.7
1242
1243 QCryptoBlockInfo (Object)
1244
1245 Information about the block encryption options
1246
1247 Members:
1248
1249 The members of "QCryptoBlockInfoBase"
1250 The members of "QCryptoBlockInfoLUKS" when "format" is "luks"
1251
1252 Since: 2.7
1253
1254 Block devices
1255 Block core (VM unrelated)
1256
1257 Background jobs
1258
1259 JobType (Enum)
1260
1261 Type of a background job.
1262
1263 Values:
1264
1265 "commit"
1266 block commit job type, see "block-commit"
1267
1268 "stream"
1269 block stream job type, see "block-stream"
1270
1271 "mirror"
1272 drive mirror job type, see "drive-mirror"
1273
1274 "backup"
1275 drive backup job type, see "drive-backup"
1276
1277 "create"
1278 image creation job type, see "blockdev-create" (since 3.0)
1279
1280 Since: 1.7
1281
1282 JobStatus (Enum)
1283
1284 Indicates the present state of a given job in its lifetime.
1285
1286 Values:
1287
1288 "undefined"
1289 Erroneous, default state. Should not ever be visible.
1290
1291 "created"
1292 The job has been created, but not yet started.
1293
1294 "running"
1295 The job is currently running.
1296
1297 "paused"
1298 The job is running, but paused. The pause may be requested by
1299 either the QMP user or by internal processes.
1300
1301 "ready"
1302 The job is running, but is ready for the user to signal completion.
1303 This is used for long-running jobs like mirror that are designed to
1304 run indefinitely.
1305
1306 "standby"
1307 The job is ready, but paused. This is nearly identical to "paused".
1308 The job may return to "ready" or otherwise be canceled.
1309
1310 "waiting"
1311 The job is waiting for other jobs in the transaction to converge to
1312 the waiting state. This status will likely not be visible for the
1313 last job in a transaction.
1314
1315 "pending"
1316 The job has finished its work, but has finalization steps that it
1317 needs to make prior to completing. These changes will require
1318 manual intervention via "job-finalize" if auto-finalize was set to
1319 false. These pending changes may still fail.
1320
1321 "aborting"
1322 The job is in the process of being aborted, and will finish with an
1323 error. The job will afterwards report that it is "concluded". This
1324 status may not be visible to the management process.
1325
1326 "concluded"
1327 The job has finished all work. If auto-dismiss was set to false,
1328 the job will remain in the query list until it is dismissed via
1329 "job-dismiss".
1330
1331 "null"
1332 The job is in the process of being dismantled. This state should
1333 not ever be visible externally.
1334
1335 Since: 2.12
1336
1337 JobVerb (Enum)
1338
1339 Represents command verbs that can be applied to a job.
1340
1341 Values:
1342
1343 "cancel"
1344 see "job-cancel"
1345
1346 "pause"
1347 see "job-pause"
1348
1349 "resume"
1350 see "job-resume"
1351
1352 "set-speed"
1353 see "block-job-set-speed"
1354
1355 "complete"
1356 see "job-complete"
1357
1358 "dismiss"
1359 see "job-dismiss"
1360
1361 "finalize"
1362 see "job-finalize"
1363
1364 Since: 2.12
1365
1366 JOB_STATUS_CHANGE (Event) Emitted when a job transitions to a
1367 different status.
1368
1369 Arguments:
1370
1371 "id: string"
1372 The job identifier
1373
1374 "status: JobStatus"
1375 The new job status
1376
1377 Since: 3.0
1378
1379 job-pause (Command) Pause an active job.
1380
1381 This command returns immediately after marking the active job for
1382 pausing. Pausing an already paused job is an error.
1383
1384 The job will pause as soon as possible, which means transitioning into
1385 the PAUSED state if it was RUNNING, or into STANDBY if it was READY.
1386 The corresponding JOB_STATUS_CHANGE event will be emitted.
1387
1388 Cancelling a paused job automatically resumes it.
1389
1390 Arguments:
1391
1392 "id: string"
1393 The job identifier.
1394
1395 Since: 3.0
1396
1397 job-resume (Command) Resume a paused job.
1398
1399 This command returns immediately after resuming a paused job. Resuming
1400 an already running job is an error.
1401
1402 "id" : The job identifier.
1403
1404 Arguments:
1405
1406 "id: string"
1407 Not documented
1408
1409 Since: 3.0
1410
1411 job-cancel (Command) Instruct an active background job to cancel at
1412 the next opportunity. This command returns immediately after marking
1413 the active job for cancellation.
1414
1415 The job will cancel as soon as possible and then emit a
1416 JOB_STATUS_CHANGE event. Usually, the status will change to ABORTING,
1417 but it is possible that a job successfully completes (e.g. because it
1418 was almost done and there was no opportunity to cancel earlier than
1419 completing the job) and transitions to PENDING instead.
1420
1421 Arguments:
1422
1423 "id: string"
1424 The job identifier.
1425
1426 Since: 3.0
1427
1428 job-complete (Command) Manually trigger completion of an active job in
1429 the READY state.
1430
1431 Arguments:
1432
1433 "id: string"
1434 The job identifier.
1435
1436 Since: 3.0
1437
1438 job-dismiss (Command) Deletes a job that is in the CONCLUDED state.
1439 This command only needs to be run explicitly for jobs that don't have
1440 automatic dismiss enabled.
1441
1442 This command will refuse to operate on any job that has not yet reached
1443 its terminal state, JOB_STATUS_CONCLUDED. For jobs that make use of
1444 JOB_READY event, job-cancel or job-complete will still need to be used
1445 as appropriate.
1446
1447 Arguments:
1448
1449 "id: string"
1450 The job identifier.
1451
1452 Since: 3.0
1453
1454 job-finalize (Command) Instructs all jobs in a transaction (or a
1455 single job if it is not part of any transaction) to finalize any graph
1456 changes and do any necessary cleanup. This command requires that all
1457 involved jobs are in the PENDING state.
1458
1459 For jobs in a transaction, instructing one job to finalize will force
1460 ALL jobs in the transaction to finalize, so it is only necessary to
1461 instruct a single member job to finalize.
1462
1463 Arguments:
1464
1465 "id: string"
1466 The identifier of any job in the transaction, or of a job that is
1467 not part of any transaction.
1468
1469 Since: 3.0
1470
1471 JobInfo (Object)
1472
1473 Information about a job.
1474
1475 Members:
1476
1477 "id: string"
1478 The job identifier
1479
1480 "type: JobType"
1481 The kind of job that is being performed
1482
1483 "status: JobStatus"
1484 Current job state/status
1485
1486 "current-progress: int"
1487 Progress made until now. The unit is arbitrary and the value can
1488 only meaningfully be used for the ratio of "current-progress" to
1489 "total-progress". The value is monotonically increasing.
1490
1491 "total-progress: int"
1492 Estimated "current-progress" value at the completion of the job.
1493 This value can arbitrarily change while the job is running, in both
1494 directions.
1495
1496 "error: string" (optional)
1497 If this field is present, the job failed; if it is still missing in
1498 the CONCLUDED state, this indicates successful completion.
1499
1500 The value is a human-readable error message to describe the reason
1501 for the job failure. It should not be parsed by applications.
1502
1503 Since: 3.0
1504
1505 query-jobs (Command) Return information about jobs.
1506
1507 Returns: a list with a "JobInfo" for each active job
1508
1509 Since: 3.0
1510
1511 SnapshotInfo (Object)
1512
1513 Members:
1514
1515 "id: string"
1516 unique snapshot id
1517
1518 "name: string"
1519 user chosen name
1520
1521 "vm-state-size: int"
1522 size of the VM state
1523
1524 "date-sec: int"
1525 UTC date of the snapshot in seconds
1526
1527 "date-nsec: int"
1528 fractional part in nano seconds to be used with date-sec
1529
1530 "vm-clock-sec: int"
1531 VM clock relative to boot in seconds
1532
1533 "vm-clock-nsec: int"
1534 fractional part in nano seconds to be used with vm-clock-sec
1535
1536 Since: 1.3
1537
1538 ImageInfoSpecificQCow2EncryptionBase (Object)
1539
1540 Members:
1541
1542 "format: BlockdevQcow2EncryptionFormat"
1543 The encryption format
1544
1545 Since: 2.10
1546
1547 ImageInfoSpecificQCow2Encryption (Object)
1548
1549 Members:
1550
1551 The members of "ImageInfoSpecificQCow2EncryptionBase"
1552 The members of "QCryptoBlockInfoLUKS" when "format" is "luks"
1553
1554 Since: 2.10
1555
1556 ImageInfoSpecificQCow2 (Object)
1557
1558 Members:
1559
1560 "compat: string"
1561 compatibility level
1562
1563 "data-file: string" (optional)
1564 the filename of the external data file that is stored in the image
1565 and used as a default for opening the image (since: 4.0)
1566
1567 "data-file-raw: boolean" (optional)
1568 True if the external data file must stay valid as a standalone
1569 (read-only) raw image without looking at qcow2 metadata (since:
1570 4.0)
1571
1572 "lazy-refcounts: boolean" (optional)
1573 on or off; only valid for compat >= 1.1
1574
1575 "corrupt: boolean" (optional)
1576 true if the image has been marked corrupt; only valid for compat >=
1577 1.1 (since 2.2)
1578
1579 "refcount-bits: int"
1580 width of a refcount entry in bits (since 2.3)
1581
1582 "encrypt: ImageInfoSpecificQCow2Encryption" (optional)
1583 details about encryption parameters; only set if image is encrypted
1584 (since 2.10)
1585
1586 "bitmaps: array of Qcow2BitmapInfo" (optional)
1587 A list of qcow2 bitmap details (since 4.0)
1588
1589 Since: 1.7
1590
1591 ImageInfoSpecificVmdk (Object)
1592
1593 Members:
1594
1595 "create-type: string"
1596 The create type of VMDK image
1597
1598 "cid: int"
1599 Content id of image
1600
1601 "parent-cid: int"
1602 Parent VMDK image's cid
1603
1604 "extents: array of ImageInfo"
1605 List of extent files
1606
1607 Since: 1.7
1608
1609 ImageInfoSpecific (Object)
1610
1611 A discriminated record of image format specific information structures.
1612
1613 Members:
1614
1615 "type"
1616 One of "qcow2", "vmdk", "luks"
1617
1618 "data: ImageInfoSpecificQCow2" when "type" is "qcow2"
1619 "data: ImageInfoSpecificVmdk" when "type" is "vmdk"
1620 "data: QCryptoBlockInfoLUKS" when "type" is "luks"
1621
1622 Since: 1.7
1623
1624 ImageInfo (Object)
1625
1626 Information about a QEMU image file
1627
1628 Members:
1629
1630 "filename: string"
1631 name of the image file
1632
1633 "format: string"
1634 format of the image file
1635
1636 "virtual-size: int"
1637 maximum capacity in bytes of the image
1638
1639 "actual-size: int" (optional)
1640 actual size on disk in bytes of the image
1641
1642 "dirty-flag: boolean" (optional)
1643 true if image is not cleanly closed
1644
1645 "cluster-size: int" (optional)
1646 size of a cluster in bytes
1647
1648 "encrypted: boolean" (optional)
1649 true if the image is encrypted
1650
1651 "compressed: boolean" (optional)
1652 true if the image is compressed (Since 1.7)
1653
1654 "backing-filename: string" (optional)
1655 name of the backing file
1656
1657 "full-backing-filename: string" (optional)
1658 full path of the backing file
1659
1660 "backing-filename-format: string" (optional)
1661 the format of the backing file
1662
1663 "snapshots: array of SnapshotInfo" (optional)
1664 list of VM snapshots
1665
1666 "backing-image: ImageInfo" (optional)
1667 info of the backing image (since 1.6)
1668
1669 "format-specific: ImageInfoSpecific" (optional)
1670 structure supplying additional format-specific information (since
1671 1.7)
1672
1673 Since: 1.3
1674
1675 ImageCheck (Object)
1676
1677 Information about a QEMU image file check
1678
1679 Members:
1680
1681 "filename: string"
1682 name of the image file checked
1683
1684 "format: string"
1685 format of the image file checked
1686
1687 "check-errors: int"
1688 number of unexpected errors occurred during check
1689
1690 "image-end-offset: int" (optional)
1691 offset (in bytes) where the image ends, this field is present if
1692 the driver for the image format supports it
1693
1694 "corruptions: int" (optional)
1695 number of corruptions found during the check if any
1696
1697 "leaks: int" (optional)
1698 number of leaks found during the check if any
1699
1700 "corruptions-fixed: int" (optional)
1701 number of corruptions fixed during the check if any
1702
1703 "leaks-fixed: int" (optional)
1704 number of leaks fixed during the check if any
1705
1706 "total-clusters: int" (optional)
1707 total number of clusters, this field is present if the driver for
1708 the image format supports it
1709
1710 "allocated-clusters: int" (optional)
1711 total number of allocated clusters, this field is present if the
1712 driver for the image format supports it
1713
1714 "fragmented-clusters: int" (optional)
1715 total number of fragmented clusters, this field is present if the
1716 driver for the image format supports it
1717
1718 "compressed-clusters: int" (optional)
1719 total number of compressed clusters, this field is present if the
1720 driver for the image format supports it
1721
1722 Since: 1.4
1723
1724 MapEntry (Object)
1725
1726 Mapping information from a virtual block range to a host file range
1727
1728 Members:
1729
1730 "start: int"
1731 the start byte of the mapped virtual range
1732
1733 "length: int"
1734 the number of bytes of the mapped virtual range
1735
1736 "data: boolean"
1737 whether the mapped range has data
1738
1739 "zero: boolean"
1740 whether the virtual blocks are zeroed
1741
1742 "depth: int"
1743 the depth of the mapping
1744
1745 "offset: int" (optional)
1746 the offset in file that the virtual sectors are mapped to
1747
1748 "filename: string" (optional)
1749 filename that is referred to by "offset"
1750
1751 Since: 2.6
1752
1753 BlockdevCacheInfo (Object)
1754
1755 Cache mode information for a block device
1756
1757 Members:
1758
1759 "writeback: boolean"
1760 true if writeback mode is enabled
1761
1762 "direct: boolean"
1763 true if the host page cache is bypassed (O_DIRECT)
1764
1765 "no-flush: boolean"
1766 true if flush requests are ignored for the device
1767
1768 Since: 2.3
1769
1770 BlockDeviceInfo (Object)
1771
1772 Information about the backing device for a block device.
1773
1774 Members:
1775
1776 "file: string"
1777 the filename of the backing device
1778
1779 "node-name: string" (optional)
1780 the name of the block driver node (Since 2.0)
1781
1782 "ro: boolean"
1783 true if the backing device was open read-only
1784
1785 "drv: string"
1786 the name of the block format used to open the backing device. As of
1787 0.14.0 this can be: 'blkdebug', 'bochs', 'cloop', 'cow', 'dmg',
1788 'file', 'file', 'ftp', 'ftps', 'host_cdrom', 'host_device', 'http',
1789 'https', 'luks', 'nbd', 'parallels', 'qcow', 'qcow2', 'raw', 'vdi',
1790 'vmdk', 'vpc', 'vvfat' 2.2: 'archipelago' added, 'cow' dropped 2.3:
1791 'host_floppy' deprecated 2.5: 'host_floppy' dropped 2.6: 'luks'
1792 added 2.8: 'replication' added, 'tftp' dropped 2.9: 'archipelago'
1793 dropped
1794
1795 "backing_file: string" (optional)
1796 the name of the backing file (for copy-on-write)
1797
1798 "backing_file_depth: int"
1799 number of files in the backing file chain (since: 1.2)
1800
1801 "encrypted: boolean"
1802 true if the backing device is encrypted
1803
1804 "encryption_key_missing: boolean"
1805 Deprecated; always false
1806
1807 "detect_zeroes: BlockdevDetectZeroesOptions"
1808 detect and optimize zero writes (Since 2.1)
1809
1810 "bps: int"
1811 total throughput limit in bytes per second is specified
1812
1813 "bps_rd: int"
1814 read throughput limit in bytes per second is specified
1815
1816 "bps_wr: int"
1817 write throughput limit in bytes per second is specified
1818
1819 "iops: int"
1820 total I/O operations per second is specified
1821
1822 "iops_rd: int"
1823 read I/O operations per second is specified
1824
1825 "iops_wr: int"
1826 write I/O operations per second is specified
1827
1828 "image: ImageInfo"
1829 the info of image used (since: 1.6)
1830
1831 "bps_max: int" (optional)
1832 total throughput limit during bursts, in bytes (Since 1.7)
1833
1834 "bps_rd_max: int" (optional)
1835 read throughput limit during bursts, in bytes (Since 1.7)
1836
1837 "bps_wr_max: int" (optional)
1838 write throughput limit during bursts, in bytes (Since 1.7)
1839
1840 "iops_max: int" (optional)
1841 total I/O operations per second during bursts, in bytes (Since 1.7)
1842
1843 "iops_rd_max: int" (optional)
1844 read I/O operations per second during bursts, in bytes (Since 1.7)
1845
1846 "iops_wr_max: int" (optional)
1847 write I/O operations per second during bursts, in bytes (Since 1.7)
1848
1849 "bps_max_length: int" (optional)
1850 maximum length of the "bps_max" burst period, in seconds. (Since
1851 2.6)
1852
1853 "bps_rd_max_length: int" (optional)
1854 maximum length of the "bps_rd_max" burst period, in seconds. (Since
1855 2.6)
1856
1857 "bps_wr_max_length: int" (optional)
1858 maximum length of the "bps_wr_max" burst period, in seconds. (Since
1859 2.6)
1860
1861 "iops_max_length: int" (optional)
1862 maximum length of the "iops" burst period, in seconds. (Since 2.6)
1863
1864 "iops_rd_max_length: int" (optional)
1865 maximum length of the "iops_rd_max" burst period, in seconds.
1866 (Since 2.6)
1867
1868 "iops_wr_max_length: int" (optional)
1869 maximum length of the "iops_wr_max" burst period, in seconds.
1870 (Since 2.6)
1871
1872 "iops_size: int" (optional)
1873 an I/O size in bytes (Since 1.7)
1874
1875 "group: string" (optional)
1876 throttle group name (Since 2.4)
1877
1878 "cache: BlockdevCacheInfo"
1879 the cache mode used for the block device (since: 2.3)
1880
1881 "write_threshold: int"
1882 configured write threshold for the device. 0 if disabled. (Since
1883 2.3)
1884
1885 Since: 0.14.0
1886
1887 BlockDeviceIoStatus (Enum)
1888
1889 An enumeration of block device I/O status.
1890
1891 Values:
1892
1893 "ok"
1894 The last I/O operation has succeeded
1895
1896 "failed"
1897 The last I/O operation has failed
1898
1899 "nospace"
1900 The last I/O operation has failed due to a no-space condition
1901
1902 Since: 1.0
1903
1904 BlockDeviceMapEntry (Object)
1905
1906 Entry in the metadata map of the device (returned by "qemu-img map")
1907
1908 Members:
1909
1910 "start: int"
1911 Offset in the image of the first byte described by this entry (in
1912 bytes)
1913
1914 "length: int"
1915 Length of the range described by this entry (in bytes)
1916
1917 "depth: int"
1918 Number of layers (0 = top image, 1 = top image's backing file,
1919 etc.) before reaching one for which the range is allocated. The
1920 value is in the range 0 to the depth of the image chain - 1.
1921
1922 "zero: boolean"
1923 the sectors in this range read as zeros
1924
1925 "data: boolean"
1926 reading the image will actually read data from a file (in
1927 particular, if "offset" is present this means that the sectors are
1928 not simply preallocated, but contain actual data in raw format)
1929
1930 "offset: int" (optional)
1931 if present, the image file stores the data for this range in raw
1932 format at the given offset.
1933
1934 Since: 1.7
1935
1936 DirtyBitmapStatus (Enum)
1937
1938 An enumeration of possible states that a dirty bitmap can report to the
1939 user.
1940
1941 Values:
1942
1943 "frozen"
1944 The bitmap is currently in-use by some operation and is immutable.
1945 If the bitmap was "active" prior to the operation, new writes by
1946 the guest are being recorded in a temporary buffer, and will not be
1947 lost. Generally, bitmaps are cleared on successful use in an
1948 operation and the temporary buffer is committed into the bitmap. On
1949 failure, the temporary buffer is merged back into the bitmap
1950 without first clearing it. Please refer to the documentation for
1951 each bitmap-using operation, See also "blockdev-backup",
1952 "drive-backup".
1953
1954 "disabled"
1955 The bitmap is not currently recording new writes by the guest.
1956 This is requested explicitly via "block-dirty-bitmap-disable". It
1957 can still be cleared, deleted, or used for backup operations.
1958
1959 "active"
1960 The bitmap is actively monitoring for new writes, and can be
1961 cleared, deleted, or used for backup operations.
1962
1963 "locked"
1964 The bitmap is currently in-use by some operation and is immutable.
1965 If the bitmap was "active" prior to the operation, it is still
1966 recording new writes. If the bitmap was "disabled", it is not
1967 recording new writes. (Since 2.12)
1968
1969 "inconsistent"
1970 This is a persistent dirty bitmap that was marked in-use on disk,
1971 and is unusable by QEMU. It can only be deleted. Please rely on
1972 the inconsistent field in "BlockDirtyInfo" instead, as the status
1973 field is deprecated. (Since 4.0)
1974
1975 Since: 2.4
1976
1977 BlockDirtyInfo (Object)
1978
1979 Block dirty bitmap information.
1980
1981 Members:
1982
1983 "name: string" (optional)
1984 the name of the dirty bitmap (Since 2.4)
1985
1986 "count: int"
1987 number of dirty bytes according to the dirty bitmap
1988
1989 "granularity: int"
1990 granularity of the dirty bitmap in bytes (since 1.4)
1991
1992 "status: DirtyBitmapStatus"
1993 Deprecated in favor of "recording" and "locked". (since 2.4)
1994
1995 "recording: boolean"
1996 true if the bitmap is recording new writes from the guest.
1997 Replaces `active` and `disabled` statuses. (since 4.0)
1998
1999 "busy: boolean"
2000 true if the bitmap is in-use by some operation (NBD or jobs) and
2001 cannot be modified via QMP or used by another operation. Replaces
2002 `locked` and `frozen` statuses. (since 4.0)
2003
2004 "persistent: boolean"
2005 true if the bitmap was stored on disk, is scheduled to be stored on
2006 disk, or both. (since 4.0)
2007
2008 "inconsistent: boolean" (optional)
2009 true if this is a persistent bitmap that was improperly stored.
2010 Implies "persistent" to be true; "recording" and "busy" to be
2011 false. This bitmap cannot be used. To remove it, use
2012 "block-dirty-bitmap-remove". (Since 4.0)
2013
2014 Since: 1.3
2015
2016 Qcow2BitmapInfoFlags (Enum)
2017
2018 An enumeration of flags that a bitmap can report to the user.
2019
2020 Values:
2021
2022 "in-use"
2023 This flag is set by any process actively modifying the qcow2 file,
2024 and cleared when the updated bitmap is flushed to the qcow2 image.
2025 The presence of this flag in an offline image means that the bitmap
2026 was not saved correctly after its last usage, and may contain
2027 inconsistent data.
2028
2029 "auto"
2030 The bitmap must reflect all changes of the virtual disk by any
2031 application that would write to this qcow2 file.
2032
2033 Since: 4.0
2034
2035 Qcow2BitmapInfo (Object)
2036
2037 Qcow2 bitmap information.
2038
2039 Members:
2040
2041 "name: string"
2042 the name of the bitmap
2043
2044 "granularity: int"
2045 granularity of the bitmap in bytes
2046
2047 "flags: array of Qcow2BitmapInfoFlags"
2048 flags of the bitmap
2049
2050 Since: 4.0
2051
2052 BlockLatencyHistogramInfo (Object)
2053
2054 Block latency histogram.
2055
2056 Members:
2057
2058 "boundaries: array of int"
2059 list of interval boundary values in nanoseconds, all greater than
2060 zero and in ascending order. For example, the list [10, 50, 100]
2061 produces the following histogram intervals: [0, 10), [10, 50), [50,
2062 100), [100, +inf).
2063
2064 "bins: array of int"
2065 list of io request counts corresponding to histogram intervals.
2066 len("bins") = len("boundaries") + 1 For the example above, "bins"
2067 may be something like [3, 1, 5, 2], and corresponding histogram
2068 looks like:
2069
2070 5| * 4| * 3| 2| * 1|
2071 +------------------ 10 50 100
2072
2073 Since: 4.0
2074
2075 block-latency-histogram-set (Command) Manage read, write and flush
2076 latency histograms for the device.
2077
2078 If only "id" parameter is specified, remove all present latency
2079 histograms for the device. Otherwise, add/reset some of (or all)
2080 latency histograms.
2081
2082 Arguments:
2083
2084 "id: string"
2085 The name or QOM path of the guest device.
2086
2087 "boundaries: array of int" (optional)
2088 list of interval boundary values (see description in
2089 BlockLatencyHistogramInfo definition). If specified, all latency
2090 histograms are removed, and empty ones created for all io types
2091 with intervals corresponding to "boundaries" (except for io types,
2092 for which specific boundaries are set through the following
2093 parameters).
2094
2095 "boundaries-read: array of int" (optional)
2096 list of interval boundary values for read latency histogram. If
2097 specified, old read latency histogram is removed, and empty one
2098 created with intervals corresponding to "boundaries-read". The
2099 parameter has higher priority then "boundaries".
2100
2101 "boundaries-write: array of int" (optional)
2102 list of interval boundary values for write latency histogram.
2103
2104 "boundaries-flush: array of int" (optional)
2105 list of interval boundary values for flush latency histogram.
2106
2107 Returns: error if device is not found or any boundary arrays are
2108 invalid.
2109
2110 Since: 4.0
2111
2112 Example:
2113
2114 set new histograms for all io types with intervals
2115 [0, 10), [10, 50), [50, 100), [100, +inf):
2116
2117 -> { "execute": "block-latency-histogram-set",
2118 "arguments": { "id": "drive0",
2119 "boundaries": [10, 50, 100] } }
2120 <- { "return": {} }
2121
2122 Example:
2123
2124 set new histogram only for write, other histograms will remain
2125 not changed (or not created):
2126
2127 -> { "execute": "block-latency-histogram-set",
2128 "arguments": { "id": "drive0",
2129 "boundaries-write": [10, 50, 100] } }
2130 <- { "return": {} }
2131
2132 Example:
2133
2134 set new histograms with the following intervals:
2135 read, flush: [0, 10), [10, 50), [50, 100), [100, +inf)
2136 write: [0, 1000), [1000, 5000), [5000, +inf)
2137
2138 -> { "execute": "block-latency-histogram-set",
2139 "arguments": { "id": "drive0",
2140 "boundaries": [10, 50, 100],
2141 "boundaries-write": [1000, 5000] } }
2142 <- { "return": {} }
2143
2144 Example:
2145
2146 remove all latency histograms:
2147
2148 -> { "execute": "block-latency-histogram-set",
2149 "arguments": { "id": "drive0" } }
2150 <- { "return": {} }
2151
2152 BlockInfo (Object)
2153
2154 Block device information. This structure describes a virtual device
2155 and the backing device associated with it.
2156
2157 Members:
2158
2159 "device: string"
2160 The device name associated with the virtual device.
2161
2162 "qdev: string" (optional)
2163 The qdev ID, or if no ID is assigned, the QOM path of the block
2164 device. (since 2.10)
2165
2166 "type: string"
2167 This field is returned only for compatibility reasons, it should
2168 not be used (always returns 'unknown')
2169
2170 "removable: boolean"
2171 True if the device supports removable media.
2172
2173 "locked: boolean"
2174 True if the guest has locked this device from having its media
2175 removed
2176
2177 "tray_open: boolean" (optional)
2178 True if the device's tray is open (only present if it has a tray)
2179
2180 "dirty-bitmaps: array of BlockDirtyInfo" (optional)
2181 dirty bitmaps information (only present if the driver has one or
2182 more dirty bitmaps) (Since 2.0)
2183
2184 "io-status: BlockDeviceIoStatus" (optional)
2185 "BlockDeviceIoStatus". Only present if the device supports it and
2186 the VM is configured to stop on errors (supported device models:
2187 virtio-blk, IDE, SCSI except scsi-generic)
2188
2189 "inserted: BlockDeviceInfo" (optional)
2190 "BlockDeviceInfo" describing the device if media is present
2191
2192 Since: 0.14.0
2193
2194 BlockMeasureInfo (Object)
2195
2196 Image file size calculation information. This structure describes the
2197 size requirements for creating a new image file.
2198
2199 The size requirements depend on the new image file format. File size
2200 always equals virtual disk size for the 'raw' format, even for sparse
2201 POSIX files. Compact formats such as 'qcow2' represent unallocated and
2202 zero regions efficiently so file size may be smaller than virtual disk
2203 size.
2204
2205 The values are upper bounds that are guaranteed to fit the new image
2206 file. Subsequent modification, such as internal snapshot or bitmap
2207 creation, may require additional space and is not covered here.
2208
2209 Members:
2210
2211 "required: int"
2212 Size required for a new image file, in bytes.
2213
2214 "fully-allocated: int"
2215 Image file size, in bytes, once data has been written to all
2216 sectors.
2217
2218 Since: 2.10
2219
2220 query-block (Command) Get a list of BlockInfo for all virtual block
2221 devices.
2222
2223 Returns: a list of "BlockInfo" describing each virtual block device.
2224 Filter nodes that were created implicitly are skipped over.
2225
2226 Since: 0.14.0
2227
2228 Example:
2229
2230 -> { "execute": "query-block" }
2231 <- {
2232 "return":[
2233 {
2234 "io-status": "ok",
2235 "device":"ide0-hd0",
2236 "locked":false,
2237 "removable":false,
2238 "inserted":{
2239 "ro":false,
2240 "drv":"qcow2",
2241 "encrypted":false,
2242 "file":"disks/test.qcow2",
2243 "backing_file_depth":1,
2244 "bps":1000000,
2245 "bps_rd":0,
2246 "bps_wr":0,
2247 "iops":1000000,
2248 "iops_rd":0,
2249 "iops_wr":0,
2250 "bps_max": 8000000,
2251 "bps_rd_max": 0,
2252 "bps_wr_max": 0,
2253 "iops_max": 0,
2254 "iops_rd_max": 0,
2255 "iops_wr_max": 0,
2256 "iops_size": 0,
2257 "detect_zeroes": "on",
2258 "write_threshold": 0,
2259 "image":{
2260 "filename":"disks/test.qcow2",
2261 "format":"qcow2",
2262 "virtual-size":2048000,
2263 "backing_file":"base.qcow2",
2264 "full-backing-filename":"disks/base.qcow2",
2265 "backing-filename-format":"qcow2",
2266 "snapshots":[
2267 {
2268 "id": "1",
2269 "name": "snapshot1",
2270 "vm-state-size": 0,
2271 "date-sec": 10000200,
2272 "date-nsec": 12,
2273 "vm-clock-sec": 206,
2274 "vm-clock-nsec": 30
2275 }
2276 ],
2277 "backing-image":{
2278 "filename":"disks/base.qcow2",
2279 "format":"qcow2",
2280 "virtual-size":2048000
2281 }
2282 }
2283 },
2284 "qdev": "ide_disk",
2285 "type":"unknown"
2286 },
2287 {
2288 "io-status": "ok",
2289 "device":"ide1-cd0",
2290 "locked":false,
2291 "removable":true,
2292 "qdev": "/machine/unattached/device[23]",
2293 "tray_open": false,
2294 "type":"unknown"
2295 },
2296 {
2297 "device":"floppy0",
2298 "locked":false,
2299 "removable":true,
2300 "qdev": "/machine/unattached/device[20]",
2301 "type":"unknown"
2302 },
2303 {
2304 "device":"sd0",
2305 "locked":false,
2306 "removable":true,
2307 "type":"unknown"
2308 }
2309 ]
2310 }
2311
2312 BlockDeviceTimedStats (Object)
2313
2314 Statistics of a block device during a given interval of time.
2315
2316 Members:
2317
2318 "interval_length: int"
2319 Interval used for calculating the statistics, in seconds.
2320
2321 "min_rd_latency_ns: int"
2322 Minimum latency of read operations in the defined interval, in
2323 nanoseconds.
2324
2325 "min_wr_latency_ns: int"
2326 Minimum latency of write operations in the defined interval, in
2327 nanoseconds.
2328
2329 "min_flush_latency_ns: int"
2330 Minimum latency of flush operations in the defined interval, in
2331 nanoseconds.
2332
2333 "max_rd_latency_ns: int"
2334 Maximum latency of read operations in the defined interval, in
2335 nanoseconds.
2336
2337 "max_wr_latency_ns: int"
2338 Maximum latency of write operations in the defined interval, in
2339 nanoseconds.
2340
2341 "max_flush_latency_ns: int"
2342 Maximum latency of flush operations in the defined interval, in
2343 nanoseconds.
2344
2345 "avg_rd_latency_ns: int"
2346 Average latency of read operations in the defined interval, in
2347 nanoseconds.
2348
2349 "avg_wr_latency_ns: int"
2350 Average latency of write operations in the defined interval, in
2351 nanoseconds.
2352
2353 "avg_flush_latency_ns: int"
2354 Average latency of flush operations in the defined interval, in
2355 nanoseconds.
2356
2357 "avg_rd_queue_depth: number"
2358 Average number of pending read operations in the defined interval.
2359
2360 "avg_wr_queue_depth: number"
2361 Average number of pending write operations in the defined interval.
2362
2363 Since: 2.5
2364
2365 BlockDeviceStats (Object)
2366
2367 Statistics of a virtual block device or a block backing device.
2368
2369 Members:
2370
2371 "rd_bytes: int"
2372 The number of bytes read by the device.
2373
2374 "wr_bytes: int"
2375 The number of bytes written by the device.
2376
2377 "rd_operations: int"
2378 The number of read operations performed by the device.
2379
2380 "wr_operations: int"
2381 The number of write operations performed by the device.
2382
2383 "flush_operations: int"
2384 The number of cache flush operations performed by the device (since
2385 0.15.0)
2386
2387 "flush_total_time_ns: int"
2388 Total time spend on cache flushes in nano-seconds (since 0.15.0).
2389
2390 "wr_total_time_ns: int"
2391 Total time spend on writes in nano-seconds (since 0.15.0).
2392
2393 "rd_total_time_ns: int"
2394 Total_time_spend on reads in nano-seconds (since 0.15.0).
2395
2396 "wr_highest_offset: int"
2397 The offset after the greatest byte written to the device. The
2398 intended use of this information is for growable sparse files (like
2399 qcow2) that are used on top of a physical device.
2400
2401 "rd_merged: int"
2402 Number of read requests that have been merged into another request
2403 (Since 2.3).
2404
2405 "wr_merged: int"
2406 Number of write requests that have been merged into another request
2407 (Since 2.3).
2408
2409 "idle_time_ns: int" (optional)
2410 Time since the last I/O operation, in nanoseconds. If the field is
2411 absent it means that there haven't been any operations yet (Since
2412 2.5).
2413
2414 "failed_rd_operations: int"
2415 The number of failed read operations performed by the device (Since
2416 2.5)
2417
2418 "failed_wr_operations: int"
2419 The number of failed write operations performed by the device
2420 (Since 2.5)
2421
2422 "failed_flush_operations: int"
2423 The number of failed flush operations performed by the device
2424 (Since 2.5)
2425
2426 "invalid_rd_operations: int"
2427 The number of invalid read operations performed by the device
2428 (Since 2.5)
2429
2430 "invalid_wr_operations: int"
2431 The number of invalid write operations performed by the device
2432 (Since 2.5)
2433
2434 "invalid_flush_operations: int"
2435 The number of invalid flush operations performed by the device
2436 (Since 2.5)
2437
2438 "account_invalid: boolean"
2439 Whether invalid operations are included in the last access
2440 statistics (Since 2.5)
2441
2442 "account_failed: boolean"
2443 Whether failed operations are included in the latency and last
2444 access statistics (Since 2.5)
2445
2446 "timed_stats: array of BlockDeviceTimedStats"
2447 Statistics specific to the set of previously defined intervals of
2448 time (Since 2.5)
2449
2450 "rd_latency_histogram: BlockLatencyHistogramInfo" (optional)
2451 "BlockLatencyHistogramInfo". (Since 4.0)
2452
2453 "wr_latency_histogram: BlockLatencyHistogramInfo" (optional)
2454 "BlockLatencyHistogramInfo". (Since 4.0)
2455
2456 "flush_latency_histogram: BlockLatencyHistogramInfo" (optional)
2457 "BlockLatencyHistogramInfo". (Since 4.0)
2458
2459 Since: 0.14.0
2460
2461 BlockStats (Object)
2462
2463 Statistics of a virtual block device or a block backing device.
2464
2465 Members:
2466
2467 "device: string" (optional)
2468 If the stats are for a virtual block device, the name corresponding
2469 to the virtual block device.
2470
2471 "node-name: string" (optional)
2472 The node name of the device. (Since 2.3)
2473
2474 "qdev: string" (optional)
2475 The qdev ID, or if no ID is assigned, the QOM path of the block
2476 device. (since 3.0)
2477
2478 "stats: BlockDeviceStats"
2479 A "BlockDeviceStats" for the device.
2480
2481 "parent: BlockStats" (optional)
2482 This describes the file block device if it has one. Contains
2483 recursively the statistics of the underlying protocol (e.g. the
2484 host file for a qcow2 image). If there is no underlying protocol,
2485 this field is omitted
2486
2487 "backing: BlockStats" (optional)
2488 This describes the backing block device if it has one. (Since 2.0)
2489
2490 Since: 0.14.0
2491
2492 query-blockstats (Command) Query the "BlockStats" for all virtual
2493 block devices.
2494
2495 Arguments:
2496
2497 "query-nodes: boolean" (optional)
2498 If true, the command will query all the block nodes that have a
2499 node name, in a list which will include "parent" information, but
2500 not "backing". If false or omitted, the behavior is as before -
2501 query all the device backends, recursively including their "parent"
2502 and "backing". Filter nodes that were created implicitly are
2503 skipped over in this mode. (Since 2.3)
2504
2505 Returns: A list of "BlockStats" for each virtual block devices.
2506
2507 Since: 0.14.0
2508
2509 Example:
2510
2511 -> { "execute": "query-blockstats" }
2512 <- {
2513 "return":[
2514 {
2515 "device":"ide0-hd0",
2516 "parent":{
2517 "stats":{
2518 "wr_highest_offset":3686448128,
2519 "wr_bytes":9786368,
2520 "wr_operations":751,
2521 "rd_bytes":122567168,
2522 "rd_operations":36772
2523 "wr_total_times_ns":313253456
2524 "rd_total_times_ns":3465673657
2525 "flush_total_times_ns":49653
2526 "flush_operations":61,
2527 "rd_merged":0,
2528 "wr_merged":0,
2529 "idle_time_ns":2953431879,
2530 "account_invalid":true,
2531 "account_failed":false
2532 }
2533 },
2534 "stats":{
2535 "wr_highest_offset":2821110784,
2536 "wr_bytes":9786368,
2537 "wr_operations":692,
2538 "rd_bytes":122739200,
2539 "rd_operations":36604
2540 "flush_operations":51,
2541 "wr_total_times_ns":313253456
2542 "rd_total_times_ns":3465673657
2543 "flush_total_times_ns":49653,
2544 "rd_merged":0,
2545 "wr_merged":0,
2546 "idle_time_ns":2953431879,
2547 "account_invalid":true,
2548 "account_failed":false
2549 },
2550 "qdev": "/machine/unattached/device[23]"
2551 },
2552 {
2553 "device":"ide1-cd0",
2554 "stats":{
2555 "wr_highest_offset":0,
2556 "wr_bytes":0,
2557 "wr_operations":0,
2558 "rd_bytes":0,
2559 "rd_operations":0
2560 "flush_operations":0,
2561 "wr_total_times_ns":0
2562 "rd_total_times_ns":0
2563 "flush_total_times_ns":0,
2564 "rd_merged":0,
2565 "wr_merged":0,
2566 "account_invalid":false,
2567 "account_failed":false
2568 },
2569 "qdev": "/machine/unattached/device[24]"
2570 },
2571 {
2572 "device":"floppy0",
2573 "stats":{
2574 "wr_highest_offset":0,
2575 "wr_bytes":0,
2576 "wr_operations":0,
2577 "rd_bytes":0,
2578 "rd_operations":0
2579 "flush_operations":0,
2580 "wr_total_times_ns":0
2581 "rd_total_times_ns":0
2582 "flush_total_times_ns":0,
2583 "rd_merged":0,
2584 "wr_merged":0,
2585 "account_invalid":false,
2586 "account_failed":false
2587 },
2588 "qdev": "/machine/unattached/device[16]"
2589 },
2590 {
2591 "device":"sd0",
2592 "stats":{
2593 "wr_highest_offset":0,
2594 "wr_bytes":0,
2595 "wr_operations":0,
2596 "rd_bytes":0,
2597 "rd_operations":0
2598 "flush_operations":0,
2599 "wr_total_times_ns":0
2600 "rd_total_times_ns":0
2601 "flush_total_times_ns":0,
2602 "rd_merged":0,
2603 "wr_merged":0,
2604 "account_invalid":false,
2605 "account_failed":false
2606 }
2607 }
2608 ]
2609 }
2610
2611 BlockdevOnError (Enum)
2612
2613 An enumeration of possible behaviors for errors on I/O operations. The
2614 exact meaning depends on whether the I/O was initiated by a guest or by
2615 a block job
2616
2617 Values:
2618
2619 "report"
2620 for guest operations, report the error to the guest; for jobs,
2621 cancel the job
2622
2623 "ignore"
2624 ignore the error, only report a QMP event (BLOCK_IO_ERROR or
2625 BLOCK_JOB_ERROR)
2626
2627 "enospc"
2628 same as "stop" on ENOSPC, same as "report" otherwise.
2629
2630 "stop"
2631 for guest operations, stop the virtual machine; for jobs, pause the
2632 job
2633
2634 "auto"
2635 inherit the error handling policy of the backend (since: 2.7)
2636
2637 Since: 1.3
2638
2639 MirrorSyncMode (Enum)
2640
2641 An enumeration of possible behaviors for the initial synchronization
2642 phase of storage mirroring.
2643
2644 Values:
2645
2646 "top"
2647 copies data in the topmost image to the destination
2648
2649 "full"
2650 copies data from all images to the destination
2651
2652 "none"
2653 only copy data written from now on
2654
2655 "incremental"
2656 only copy data described by the dirty bitmap. Since: 2.4
2657
2658 Since: 1.3
2659
2660 MirrorCopyMode (Enum)
2661
2662 An enumeration whose values tell the mirror block job when to trigger
2663 writes to the target.
2664
2665 Values:
2666
2667 "background"
2668 copy data in background only.
2669
2670 "write-blocking"
2671 when data is written to the source, write it (synchronously) to the
2672 target as well. In addition, data is copied in background just
2673 like in "background" mode.
2674
2675 Since: 3.0
2676
2677 BlockJobInfo (Object)
2678
2679 Information about a long-running block device operation.
2680
2681 Members:
2682
2683 "type: string"
2684 the job type ('stream' for image streaming)
2685
2686 "device: string"
2687 The job identifier. Originally the device name but other values are
2688 allowed since QEMU 2.7
2689
2690 "len: int"
2691 Estimated "offset" value at the completion of the job. This value
2692 can arbitrarily change while the job is running, in both
2693 directions.
2694
2695 "offset: int"
2696 Progress made until now. The unit is arbitrary and the value can
2697 only meaningfully be used for the ratio of "offset" to "len". The
2698 value is monotonically increasing.
2699
2700 "busy: boolean"
2701 false if the job is known to be in a quiescent state, with no
2702 pending I/O. Since 1.3.
2703
2704 "paused: boolean"
2705 whether the job is paused or, if "busy" is true, will pause itself
2706 as soon as possible. Since 1.3.
2707
2708 "speed: int"
2709 the rate limit, bytes per second
2710
2711 "io-status: BlockDeviceIoStatus"
2712 the status of the job (since 1.3)
2713
2714 "ready: boolean"
2715 true if the job may be completed (since 2.2)
2716
2717 "status: JobStatus"
2718 Current job state/status (since 2.12)
2719
2720 "auto-finalize: boolean"
2721 Job will finalize itself when PENDING, moving to the CONCLUDED
2722 state. (since 2.12)
2723
2724 "auto-dismiss: boolean"
2725 Job will dismiss itself when CONCLUDED, moving to the NULL state
2726 and disappearing from the query list. (since 2.12)
2727
2728 "error: string" (optional)
2729 Error information if the job did not complete successfully. Not
2730 set if the job completed successfully. (since 2.12.1)
2731
2732 Since: 1.1
2733
2734 query-block-jobs (Command) Return information about long-running block
2735 device operations.
2736
2737 Returns: a list of "BlockJobInfo" for each active block job
2738
2739 Since: 1.1
2740
2741 block_passwd (Command) This command sets the password of a block
2742 device that has not been open with a password and requires one.
2743
2744 This command is now obsolete and will always return an error since 2.10
2745
2746 Arguments:
2747
2748 "device: string" (optional)
2749 Not documented
2750
2751 "node-name: string" (optional)
2752 Not documented
2753
2754 "password: string"
2755 Not documented
2756
2757 block_resize (Command) Resize a block image while a guest is running.
2758
2759 Either "device" or "node-name" must be set but not both.
2760
2761 Arguments:
2762
2763 "device: string" (optional)
2764 the name of the device to get the image resized
2765
2766 "node-name: string" (optional)
2767 graph node name to get the image resized (Since 2.0)
2768
2769 "size: int"
2770 new image size in bytes
2771
2772 Returns: nothing on success If "device" is not a valid block device,
2773 DeviceNotFound
2774
2775 Since: 0.14.0
2776
2777 Example:
2778
2779 -> { "execute": "block_resize",
2780 "arguments": { "device": "scratch", "size": 1073741824 } }
2781 <- { "return": {} }
2782
2783 NewImageMode (Enum)
2784
2785 An enumeration that tells QEMU how to set the backing file path in a
2786 new image file.
2787
2788 Values:
2789
2790 "existing"
2791 QEMU should look for an existing image file.
2792
2793 "absolute-paths"
2794 QEMU should create a new image with absolute paths for the backing
2795 file. If there is no backing file available, the new image will not
2796 be backed either.
2797
2798 Since: 1.1
2799
2800 BlockdevSnapshotSync (Object)
2801
2802 Either "device" or "node-name" must be set but not both.
2803
2804 Members:
2805
2806 "device: string" (optional)
2807 the name of the device to take a snapshot of.
2808
2809 "node-name: string" (optional)
2810 graph node name to generate the snapshot from (Since 2.0)
2811
2812 "snapshot-file: string"
2813 the target of the new overlay image. If the file exists, or if it
2814 is a device, the overlay will be created in the existing
2815 file/device. Otherwise, a new file will be created.
2816
2817 "snapshot-node-name: string" (optional)
2818 the graph node name of the new image (Since 2.0)
2819
2820 "format: string" (optional)
2821 the format of the overlay image, default is 'qcow2'.
2822
2823 "mode: NewImageMode" (optional)
2824 whether and how QEMU should create a new image, default is
2825 'absolute-paths'.
2826
2827 BlockdevSnapshot (Object)
2828
2829 Members:
2830
2831 "node: string"
2832 device or node name that will have a snapshot taken.
2833
2834 "overlay: string"
2835 reference to the existing block device that will become the overlay
2836 of "node", as part of taking the snapshot. It must not have a
2837 current backing file (this can be achieved by passing "backing":
2838 null to blockdev-add).
2839
2840 Since: 2.5
2841
2842 DriveBackup (Object)
2843
2844 Members:
2845
2846 "job-id: string" (optional)
2847 identifier for the newly-created block job. If omitted, the device
2848 name will be used. (Since 2.7)
2849
2850 "device: string"
2851 the device name or node-name of a root node which should be copied.
2852
2853 "target: string"
2854 the target of the new image. If the file exists, or if it is a
2855 device, the existing file/device will be used as the new
2856 destination. If it does not exist, a new file will be created.
2857
2858 "format: string" (optional)
2859 the format of the new destination, default is to probe if "mode" is
2860 'existing', else the format of the source
2861
2862 "sync: MirrorSyncMode"
2863 what parts of the disk image should be copied to the destination
2864 (all the disk, only the sectors allocated in the topmost image,
2865 from a dirty bitmap, or only new I/O).
2866
2867 "mode: NewImageMode" (optional)
2868 whether and how QEMU should create a new image, default is
2869 'absolute-paths'.
2870
2871 "speed: int" (optional)
2872 the maximum speed, in bytes per second
2873
2874 "bitmap: string" (optional)
2875 the name of dirty bitmap if sync is "incremental". Must be present
2876 if sync is "incremental", must NOT be present otherwise. (Since
2877 2.4)
2878
2879 "compress: boolean" (optional)
2880 true to compress data, if the target format supports it. (default:
2881 false) (since 2.8)
2882
2883 "on-source-error: BlockdevOnError" (optional)
2884 the action to take on an error on the source, default 'report'.
2885 'stop' and 'enospc' can only be used if the block device supports
2886 io-status (see BlockInfo).
2887
2888 "on-target-error: BlockdevOnError" (optional)
2889 the action to take on an error on the target, default 'report' (no
2890 limitations, since this applies to a different block device than
2891 "device").
2892
2893 "auto-finalize: boolean" (optional)
2894 When false, this job will wait in a PENDING state after it has
2895 finished its work, waiting for "block-job-finalize" before making
2896 any block graph changes. When true, this job will automatically
2897 perform its abort or commit actions. Defaults to true. (Since
2898 2.12)
2899
2900 "auto-dismiss: boolean" (optional)
2901 When false, this job will wait in a CONCLUDED state after it has
2902 completely ceased all work, and awaits "block-job-dismiss". When
2903 true, this job will automatically disappear from the query list
2904 without user intervention. Defaults to true. (Since 2.12)
2905
2906 Note: "on-source-error" and "on-target-error" only affect background
2907 I/O. If an error occurs during a guest write request, the device's
2908 rerror/werror actions will be used.
2909
2910 Since: 1.6
2911
2912 BlockdevBackup (Object)
2913
2914 Members:
2915
2916 "job-id: string" (optional)
2917 identifier for the newly-created block job. If omitted, the device
2918 name will be used. (Since 2.7)
2919
2920 "device: string"
2921 the device name or node-name of a root node which should be copied.
2922
2923 "target: string"
2924 the device name or node-name of the backup target node.
2925
2926 "sync: MirrorSyncMode"
2927 what parts of the disk image should be copied to the destination
2928 (all the disk, only the sectors allocated in the topmost image, or
2929 only new I/O).
2930
2931 "speed: int" (optional)
2932 the maximum speed, in bytes per second. The default is 0, for
2933 unlimited.
2934
2935 "bitmap: string" (optional)
2936 the name of dirty bitmap if sync is "incremental". Must be present
2937 if sync is "incremental", must NOT be present otherwise. (Since
2938 3.1)
2939
2940 "compress: boolean" (optional)
2941 true to compress data, if the target format supports it. (default:
2942 false) (since 2.8)
2943
2944 "on-source-error: BlockdevOnError" (optional)
2945 the action to take on an error on the source, default 'report'.
2946 'stop' and 'enospc' can only be used if the block device supports
2947 io-status (see BlockInfo).
2948
2949 "on-target-error: BlockdevOnError" (optional)
2950 the action to take on an error on the target, default 'report' (no
2951 limitations, since this applies to a different block device than
2952 "device").
2953
2954 "auto-finalize: boolean" (optional)
2955 When false, this job will wait in a PENDING state after it has
2956 finished its work, waiting for "block-job-finalize" before making
2957 any block graph changes. When true, this job will automatically
2958 perform its abort or commit actions. Defaults to true. (Since
2959 2.12)
2960
2961 "auto-dismiss: boolean" (optional)
2962 When false, this job will wait in a CONCLUDED state after it has
2963 completely ceased all work, and awaits "block-job-dismiss". When
2964 true, this job will automatically disappear from the query list
2965 without user intervention. Defaults to true. (Since 2.12)
2966
2967 Note: "on-source-error" and "on-target-error" only affect background
2968 I/O. If an error occurs during a guest write request, the device's
2969 rerror/werror actions will be used.
2970
2971 Since: 2.3
2972
2973 blockdev-snapshot-sync (Command) Takes a synchronous snapshot of a
2974 block device.
2975
2976 For the arguments, see the documentation of BlockdevSnapshotSync.
2977
2978 Returns: nothing on success If "device" is not a valid block device,
2979 DeviceNotFound
2980
2981 Since: 0.14.0
2982
2983 Example:
2984
2985 -> { "execute": "blockdev-snapshot-sync",
2986 "arguments": { "device": "ide-hd0",
2987 "snapshot-file":
2988 "/some/place/my-image",
2989 "format": "qcow2" } }
2990 <- { "return": {} }
2991
2992 blockdev-snapshot (Command) Takes a snapshot of a block device.
2993
2994 Take a snapshot, by installing 'node' as the backing image of
2995 'overlay'. Additionally, if 'node' is associated with a block device,
2996 the block device changes to using 'overlay' as its new active image.
2997
2998 For the arguments, see the documentation of BlockdevSnapshot.
2999
3000 Since: 2.5
3001
3002 Example:
3003
3004 -> { "execute": "blockdev-add",
3005 "arguments": { "driver": "qcow2",
3006 "node-name": "node1534",
3007 "file": { "driver": "file",
3008 "filename": "hd1.qcow2" },
3009 "backing": null } }
3010
3011 <- { "return": {} }
3012
3013 -> { "execute": "blockdev-snapshot",
3014 "arguments": { "node": "ide-hd0",
3015 "overlay": "node1534" } }
3016 <- { "return": {} }
3017
3018 change-backing-file (Command) Change the backing file in the image
3019 file metadata. This does not cause QEMU to reopen the image file to
3020 reparse the backing filename (it may, however, perform a reopen to
3021 change permissions from r/o -> r/w -> r/o, if needed). The new backing
3022 file string is written into the image file metadata, and the QEMU
3023 internal strings are updated.
3024
3025 Arguments:
3026
3027 "image-node-name: string"
3028 The name of the block driver state node of the image to modify. The
3029 "device" argument is used to verify "image-node-name" is in the
3030 chain described by "device".
3031
3032 "device: string"
3033 The device name or node-name of the root node that owns image-node-
3034 name.
3035
3036 "backing-file: string"
3037 The string to write as the backing file. This string is not
3038 validated, so care should be taken when specifying the string or
3039 the image chain may not be able to be reopened again.
3040
3041 Returns: Nothing on success
3042
3043 If "device" does not exist or cannot be determined, DeviceNotFound
3044
3045 Since: 2.1
3046
3047 block-commit (Command) Live commit of data from overlay image nodes
3048 into backing nodes - i.e., writes data between 'top' and 'base' into
3049 'base'.
3050
3051 Arguments:
3052
3053 "job-id: string" (optional)
3054 identifier for the newly-created block job. If omitted, the device
3055 name will be used. (Since 2.7)
3056
3057 "device: string"
3058 the device name or node-name of a root node
3059
3060 "base-node: string" (optional)
3061 The node name of the backing image to write data into. If not
3062 specified, this is the deepest backing image. (since: 3.1)
3063
3064 "base: string" (optional)
3065 Same as "base-node", except that it is a file name rather than a
3066 node name. This must be the exact filename string that was used to
3067 open the node; other strings, even if addressing the same file, are
3068 not accepted (deprecated, use "base-node" instead)
3069
3070 "top-node: string" (optional)
3071 The node name of the backing image within the image chain which
3072 contains the topmost data to be committed down. If not specified,
3073 this is the active layer. (since: 3.1)
3074
3075 "top: string" (optional)
3076 Same as "top-node", except that it is a file name rather than a
3077 node name. This must be the exact filename string that was used to
3078 open the node; other strings, even if addressing the same file, are
3079 not accepted (deprecated, use "base-node" instead)
3080
3081 "backing-file: string" (optional)
3082 The backing file string to write into the overlay image of 'top'.
3083 If 'top' is the active layer, specifying a backing file string is
3084 an error. This filename is not validated.
3085
3086 If a pathname string is such that it cannot be resolved by QEMU,
3087 that means that subsequent QMP or HMP commands must use node-names
3088 for the image in question, as filename lookup methods will fail.
3089
3090 If not specified, QEMU will automatically determine the backing
3091 file string to use, or error out if there is no obvious choice.
3092 Care should be taken when specifying the string, to specify a valid
3093 filename or protocol. (Since 2.1)
3094
3095 If top == base, that is an error. If top == active, the job will
3096 not be completed by itself, user needs to complete the job with the
3097 block-job-complete command after getting the ready event. (Since
3098 2.0)
3099
3100 If the base image is smaller than top, then the base image will be
3101 resized to be the same size as top. If top is smaller than the
3102 base image, the base will not be truncated. If you want the base
3103 image size to match the size of the smaller top, you can safely
3104 truncate it yourself once the commit operation successfully
3105 completes.
3106
3107 "speed: int" (optional)
3108 the maximum speed, in bytes per second
3109
3110 "filter-node-name: string" (optional)
3111 the node name that should be assigned to the filter driver that the
3112 commit job inserts into the graph above "top". If this option is
3113 not given, a node name is autogenerated. (Since: 2.9)
3114
3115 "auto-finalize: boolean" (optional)
3116 When false, this job will wait in a PENDING state after it has
3117 finished its work, waiting for "block-job-finalize" before making
3118 any block graph changes. When true, this job will automatically
3119 perform its abort or commit actions. Defaults to true. (Since 3.1)
3120
3121 "auto-dismiss: boolean" (optional)
3122 When false, this job will wait in a CONCLUDED state after it has
3123 completely ceased all work, and awaits "block-job-dismiss". When
3124 true, this job will automatically disappear from the query list
3125 without user intervention. Defaults to true. (Since 3.1)
3126
3127 Returns: Nothing on success If "device" does not exist, DeviceNotFound
3128 Any other error returns a GenericError.
3129
3130 Since: 1.3
3131
3132 Example:
3133
3134 -> { "execute": "block-commit",
3135 "arguments": { "device": "virtio0",
3136 "top": "/tmp/snap1.qcow2" } }
3137 <- { "return": {} }
3138
3139 drive-backup (Command) Start a point-in-time copy of a block device to
3140 a new destination. The status of ongoing drive-backup operations can
3141 be checked with query-block-jobs where the BlockJobInfo.type field has
3142 the value 'backup'. The operation can be stopped before it has
3143 completed using the block-job-cancel command.
3144
3145 Arguments: the members of "DriveBackup"
3146
3147 Returns: nothing on success If "device" is not a valid block device,
3148 GenericError
3149
3150 Since: 1.6
3151
3152 Example:
3153
3154 -> { "execute": "drive-backup",
3155 "arguments": { "device": "drive0",
3156 "sync": "full",
3157 "target": "backup.img" } }
3158 <- { "return": {} }
3159
3160 blockdev-backup (Command) Start a point-in-time copy of a block device
3161 to a new destination. The status of ongoing blockdev-backup operations
3162 can be checked with query-block-jobs where the BlockJobInfo.type field
3163 has the value 'backup'. The operation can be stopped before it has
3164 completed using the block-job-cancel command.
3165
3166 Arguments: the members of "BlockdevBackup"
3167
3168 Returns: nothing on success If "device" is not a valid block device,
3169 DeviceNotFound
3170
3171 Since: 2.3
3172
3173 Example:
3174
3175 -> { "execute": "blockdev-backup",
3176 "arguments": { "device": "src-id",
3177 "sync": "full",
3178 "target": "tgt-id" } }
3179 <- { "return": {} }
3180
3181 query-named-block-nodes (Command) Get the named block driver list
3182
3183 Returns: the list of BlockDeviceInfo
3184
3185 Since: 2.0
3186
3187 Example:
3188
3189 -> { "execute": "query-named-block-nodes" }
3190 <- { "return": [ { "ro":false,
3191 "drv":"qcow2",
3192 "encrypted":false,
3193 "file":"disks/test.qcow2",
3194 "node-name": "my-node",
3195 "backing_file_depth":1,
3196 "bps":1000000,
3197 "bps_rd":0,
3198 "bps_wr":0,
3199 "iops":1000000,
3200 "iops_rd":0,
3201 "iops_wr":0,
3202 "bps_max": 8000000,
3203 "bps_rd_max": 0,
3204 "bps_wr_max": 0,
3205 "iops_max": 0,
3206 "iops_rd_max": 0,
3207 "iops_wr_max": 0,
3208 "iops_size": 0,
3209 "write_threshold": 0,
3210 "image":{
3211 "filename":"disks/test.qcow2",
3212 "format":"qcow2",
3213 "virtual-size":2048000,
3214 "backing_file":"base.qcow2",
3215 "full-backing-filename":"disks/base.qcow2",
3216 "backing-filename-format":"qcow2",
3217 "snapshots":[
3218 {
3219 "id": "1",
3220 "name": "snapshot1",
3221 "vm-state-size": 0,
3222 "date-sec": 10000200,
3223 "date-nsec": 12,
3224 "vm-clock-sec": 206,
3225 "vm-clock-nsec": 30
3226 }
3227 ],
3228 "backing-image":{
3229 "filename":"disks/base.qcow2",
3230 "format":"qcow2",
3231 "virtual-size":2048000
3232 }
3233 } } ] }
3234
3235 XDbgBlockGraphNodeType (Enum)
3236
3237 Values:
3238
3239 "block-backend"
3240 corresponds to BlockBackend
3241
3242 "block-job"
3243 corresonds to BlockJob
3244
3245 "block-driver"
3246 corresponds to BlockDriverState
3247
3248 Since: 4.0
3249
3250 XDbgBlockGraphNode (Object)
3251
3252 Members:
3253
3254 "id: int"
3255 Block graph node identifier. This "id" is generated only for
3256 x-debug-query-block-graph and does not relate to any other
3257 identifiers in Qemu.
3258
3259 "type: XDbgBlockGraphNodeType"
3260 Type of graph node. Can be one of block-backend, block-job or
3261 block-driver-state.
3262
3263 "name: string"
3264 Human readable name of the node. Corresponds to node-name for
3265 block-driver-state nodes; is not guaranteed to be unique in the
3266 whole graph (with block-jobs and block-backends).
3267
3268 Since: 4.0
3269
3270 BlockPermission (Enum)
3271
3272 Enum of base block permissions.
3273
3274 Values:
3275
3276 "consistent-read"
3277 A user that has the "permission" of consistent reads is guaranteed
3278 that their view of the contents of the block device is complete and
3279 self-consistent, representing the contents of a disk at a specific
3280 point. For most block devices (including their backing files) this
3281 is true, but the property cannot be maintained in a few situations
3282 like for intermediate nodes of a commit block job.
3283
3284 "write"
3285 This permission is required to change the visible disk contents.
3286
3287 "write-unchanged"
3288 This permission (which is weaker than BLK_PERM_WRITE) is both
3289 enough and required for writes to the block node when the caller
3290 promises that the visible disk content doesn't change. As the
3291 BLK_PERM_WRITE permission is strictly stronger, either is
3292 sufficient to perform an unchanging write.
3293
3294 "resize"
3295 This permission is required to change the size of a block node.
3296
3297 "graph-mod"
3298 This permission is required to change the node that this BdrvChild
3299 points to.
3300
3301 Since: 4.0
3302
3303 XDbgBlockGraphEdge (Object)
3304
3305 Block Graph edge description for x-debug-query-block-graph.
3306
3307 Members:
3308
3309 "parent: int"
3310 parent id
3311
3312 "child: int"
3313 child id
3314
3315 "name: string"
3316 name of the relation (examples are 'file' and 'backing')
3317
3318 "perm: array of BlockPermission"
3319 granted permissions for the parent operating on the child
3320
3321 "shared-perm: array of BlockPermission"
3322 permissions that can still be granted to other users of the child
3323 while it is still attached to this parent
3324
3325 Since: 4.0
3326
3327 XDbgBlockGraph (Object)
3328
3329 Block Graph - list of nodes and list of edges.
3330
3331 Members:
3332
3333 "nodes: array of XDbgBlockGraphNode"
3334 Not documented
3335
3336 "edges: array of XDbgBlockGraphEdge"
3337 Not documented
3338
3339 Since: 4.0
3340
3341 x-debug-query-block-graph (Command) Get the block graph.
3342
3343 Since: 4.0
3344
3345 drive-mirror (Command) Start mirroring a block device's writes to a
3346 new destination. target specifies the target of the new image. If the
3347 file exists, or if it is a device, it will be used as the new
3348 destination for writes. If it does not exist, a new file will be
3349 created. format specifies the format of the mirror image, default is to
3350 probe if mode='existing', else the format of the source.
3351
3352 Arguments: the members of "DriveMirror"
3353
3354 Returns: nothing on success If "device" is not a valid block device,
3355 GenericError
3356
3357 Since: 1.3
3358
3359 Example:
3360
3361 -> { "execute": "drive-mirror",
3362 "arguments": { "device": "ide-hd0",
3363 "target": "/some/place/my-image",
3364 "sync": "full",
3365 "format": "qcow2" } }
3366 <- { "return": {} }
3367
3368 DriveMirror (Object)
3369
3370 A set of parameters describing drive mirror setup.
3371
3372 Members:
3373
3374 "job-id: string" (optional)
3375 identifier for the newly-created block job. If omitted, the device
3376 name will be used. (Since 2.7)
3377
3378 "device: string"
3379 the device name or node-name of a root node whose writes should be
3380 mirrored.
3381
3382 "target: string"
3383 the target of the new image. If the file exists, or if it is a
3384 device, the existing file/device will be used as the new
3385 destination. If it does not exist, a new file will be created.
3386
3387 "format: string" (optional)
3388 the format of the new destination, default is to probe if "mode" is
3389 'existing', else the format of the source
3390
3391 "node-name: string" (optional)
3392 the new block driver state node name in the graph (Since 2.1)
3393
3394 "replaces: string" (optional)
3395 with sync=full graph node name to be replaced by the new image when
3396 a whole image copy is done. This can be used to repair broken
3397 Quorum files. (Since 2.1)
3398
3399 "mode: NewImageMode" (optional)
3400 whether and how QEMU should create a new image, default is
3401 'absolute-paths'.
3402
3403 "speed: int" (optional)
3404 the maximum speed, in bytes per second
3405
3406 "sync: MirrorSyncMode"
3407 what parts of the disk image should be copied to the destination
3408 (all the disk, only the sectors allocated in the topmost image, or
3409 only new I/O).
3410
3411 "granularity: int" (optional)
3412 granularity of the dirty bitmap, default is 64K if the image format
3413 doesn't have clusters, 4K if the clusters are smaller than that,
3414 else the cluster size. Must be a power of 2 between 512 and 64M
3415 (since 1.4).
3416
3417 "buf-size: int" (optional)
3418 maximum amount of data in flight from source to target (since 1.4).
3419
3420 "on-source-error: BlockdevOnError" (optional)
3421 the action to take on an error on the source, default 'report'.
3422 'stop' and 'enospc' can only be used if the block device supports
3423 io-status (see BlockInfo).
3424
3425 "on-target-error: BlockdevOnError" (optional)
3426 the action to take on an error on the target, default 'report' (no
3427 limitations, since this applies to a different block device than
3428 "device").
3429
3430 "unmap: boolean" (optional)
3431 Whether to try to unmap target sectors where source has only zero.
3432 If true, and target unallocated sectors will read as zero, target
3433 image sectors will be unmapped; otherwise, zeroes will be written.
3434 Both will result in identical contents. Default is true. (Since
3435 2.4)
3436
3437 "copy-mode: MirrorCopyMode" (optional)
3438 when to copy data to the destination; defaults to 'background'
3439 (Since: 3.0)
3440
3441 "auto-finalize: boolean" (optional)
3442 When false, this job will wait in a PENDING state after it has
3443 finished its work, waiting for "block-job-finalize" before making
3444 any block graph changes. When true, this job will automatically
3445 perform its abort or commit actions. Defaults to true. (Since 3.1)
3446
3447 "auto-dismiss: boolean" (optional)
3448 When false, this job will wait in a CONCLUDED state after it has
3449 completely ceased all work, and awaits "block-job-dismiss". When
3450 true, this job will automatically disappear from the query list
3451 without user intervention. Defaults to true. (Since 3.1)
3452
3453 Since: 1.3
3454
3455 BlockDirtyBitmap (Object)
3456
3457 Members:
3458
3459 "node: string"
3460 name of device/node which the bitmap is tracking
3461
3462 "name: string"
3463 name of the dirty bitmap
3464
3465 Since: 2.4
3466
3467 BlockDirtyBitmapAdd (Object)
3468
3469 Members:
3470
3471 "node: string"
3472 name of device/node which the bitmap is tracking
3473
3474 "name: string"
3475 name of the dirty bitmap
3476
3477 "granularity: int" (optional)
3478 the bitmap granularity, default is 64k for block-dirty-bitmap-add
3479
3480 "persistent: boolean" (optional)
3481 the bitmap is persistent, i.e. it will be saved to the
3482 corresponding block device image file on its close. For now only
3483 Qcow2 disks support persistent bitmaps. Default is false for block-
3484 dirty-bitmap-add. (Since: 2.10)
3485
3486 "autoload: boolean" (optional)
3487 ignored and deprecated since 2.12. Currently, all dirty tracking
3488 bitmaps are loaded from Qcow2 on open.
3489
3490 "disabled: boolean" (optional)
3491 the bitmap is created in the disabled state, which means that it
3492 will not track drive changes. The bitmap may be enabled with block-
3493 dirty-bitmap-enable. Default is false. (Since: 4.0)
3494
3495 Since: 2.4
3496
3497 BlockDirtyBitmapMergeSource (Alternate)
3498
3499 Members:
3500
3501 "local: string"
3502 name of the bitmap, attached to the same node as target bitmap.
3503
3504 "external: BlockDirtyBitmap"
3505 bitmap with specified node
3506
3507 Since: 4.1
3508
3509 BlockDirtyBitmapMerge (Object)
3510
3511 Members:
3512
3513 "node: string"
3514 name of device/node which the "target" bitmap is tracking
3515
3516 "target: string"
3517 name of the destination dirty bitmap
3518
3519 "bitmaps: array of BlockDirtyBitmapMergeSource"
3520 name(s) of the source dirty bitmap(s) at "node" and/or fully
3521 specifed BlockDirtyBitmap elements. The latter are supported since
3522 4.1.
3523
3524 Since: 4.0
3525
3526 block-dirty-bitmap-add (Command) Create a dirty bitmap with a name on
3527 the node, and start tracking the writes.
3528
3529 Returns: nothing on success If "node" is not a valid block device or
3530 node, DeviceNotFound If "name" is already taken, GenericError with an
3531 explanation
3532
3533 Since: 2.4
3534
3535 Example:
3536
3537 -> { "execute": "block-dirty-bitmap-add",
3538 "arguments": { "node": "drive0", "name": "bitmap0" } }
3539 <- { "return": {} }
3540
3541 block-dirty-bitmap-remove (Command) Stop write tracking and remove the
3542 dirty bitmap that was created with block-dirty-bitmap-add. If the
3543 bitmap is persistent, remove it from its storage too.
3544
3545 Returns: nothing on success If "node" is not a valid block device or
3546 node, DeviceNotFound If "name" is not found, GenericError with an
3547 explanation if "name" is frozen by an operation, GenericError
3548
3549 Since: 2.4
3550
3551 Example:
3552
3553 -> { "execute": "block-dirty-bitmap-remove",
3554 "arguments": { "node": "drive0", "name": "bitmap0" } }
3555 <- { "return": {} }
3556
3557 block-dirty-bitmap-clear (Command) Clear (reset) a dirty bitmap on the
3558 device, so that an incremental backup from this point in time forward
3559 will only backup clusters modified after this clear operation.
3560
3561 Returns: nothing on success If "node" is not a valid block device,
3562 DeviceNotFound If "name" is not found, GenericError with an explanation
3563
3564 Since: 2.4
3565
3566 Example:
3567
3568 -> { "execute": "block-dirty-bitmap-clear",
3569 "arguments": { "node": "drive0", "name": "bitmap0" } }
3570 <- { "return": {} }
3571
3572 block-dirty-bitmap-enable (Command) Enables a dirty bitmap so that it
3573 will begin tracking disk changes.
3574
3575 Returns: nothing on success If "node" is not a valid block device,
3576 DeviceNotFound If "name" is not found, GenericError with an explanation
3577
3578 Since: 4.0
3579
3580 Example:
3581
3582 -> { "execute": "block-dirty-bitmap-enable",
3583 "arguments": { "node": "drive0", "name": "bitmap0" } }
3584 <- { "return": {} }
3585
3586 block-dirty-bitmap-disable (Command) Disables a dirty bitmap so that
3587 it will stop tracking disk changes.
3588
3589 Returns: nothing on success If "node" is not a valid block device,
3590 DeviceNotFound If "name" is not found, GenericError with an explanation
3591
3592 Since: 4.0
3593
3594 Example:
3595
3596 -> { "execute": "block-dirty-bitmap-disable",
3597 "arguments": { "node": "drive0", "name": "bitmap0" } }
3598 <- { "return": {} }
3599
3600 block-dirty-bitmap-merge (Command) Merge dirty bitmaps listed in
3601 "bitmaps" to the "target" dirty bitmap. Dirty bitmaps in "bitmaps"
3602 will be unchanged, except if it also appears as the "target" bitmap.
3603 Any bits already set in "target" will still be set after the merge,
3604 i.e., this operation does not clear the target. On error, "target" is
3605 unchanged.
3606
3607 The resulting bitmap will count as dirty any clusters that were dirty
3608 in any of the source bitmaps. This can be used to achieve backup
3609 checkpoints, or in simpler usages, to copy bitmaps.
3610
3611 Returns: nothing on success If "node" is not a valid block device,
3612 DeviceNotFound If any bitmap in "bitmaps" or "target" is not found,
3613 GenericError If any of the bitmaps have different sizes or
3614 granularities, GenericError
3615
3616 Since: 4.0
3617
3618 Example:
3619
3620 -> { "execute": "block-dirty-bitmap-merge",
3621 "arguments": { "node": "drive0", "target": "bitmap0",
3622 "bitmaps": ["bitmap1"] } }
3623 <- { "return": {} }
3624
3625 BlockDirtyBitmapSha256 (Object)
3626
3627 SHA256 hash of dirty bitmap data
3628
3629 Members:
3630
3631 "sha256: string"
3632 ASCII representation of SHA256 bitmap hash
3633
3634 Since: 2.10
3635
3636 x-debug-block-dirty-bitmap-sha256 (Command) Get bitmap SHA256.
3637
3638 Returns: BlockDirtyBitmapSha256 on success If "node" is not a valid
3639 block device, DeviceNotFound If "name" is not found or if hashing has
3640 failed, GenericError with an explanation
3641
3642 Since: 2.10
3643
3644 blockdev-mirror (Command) Start mirroring a block device's writes to a
3645 new destination.
3646
3647 Arguments:
3648
3649 "job-id: string" (optional)
3650 identifier for the newly-created block job. If omitted, the device
3651 name will be used. (Since 2.7)
3652
3653 "device: string"
3654 The device name or node-name of a root node whose writes should be
3655 mirrored.
3656
3657 "target: string"
3658 the id or node-name of the block device to mirror to. This mustn't
3659 be attached to guest.
3660
3661 "replaces: string" (optional)
3662 with sync=full graph node name to be replaced by the new image when
3663 a whole image copy is done. This can be used to repair broken
3664 Quorum files.
3665
3666 "speed: int" (optional)
3667 the maximum speed, in bytes per second
3668
3669 "sync: MirrorSyncMode"
3670 what parts of the disk image should be copied to the destination
3671 (all the disk, only the sectors allocated in the topmost image, or
3672 only new I/O).
3673
3674 "granularity: int" (optional)
3675 granularity of the dirty bitmap, default is 64K if the image format
3676 doesn't have clusters, 4K if the clusters are smaller than that,
3677 else the cluster size. Must be a power of 2 between 512 and 64M
3678
3679 "buf-size: int" (optional)
3680 maximum amount of data in flight from source to target
3681
3682 "on-source-error: BlockdevOnError" (optional)
3683 the action to take on an error on the source, default 'report'.
3684 'stop' and 'enospc' can only be used if the block device supports
3685 io-status (see BlockInfo).
3686
3687 "on-target-error: BlockdevOnError" (optional)
3688 the action to take on an error on the target, default 'report' (no
3689 limitations, since this applies to a different block device than
3690 "device").
3691
3692 "filter-node-name: string" (optional)
3693 the node name that should be assigned to the filter driver that the
3694 mirror job inserts into the graph above "device". If this option is
3695 not given, a node name is autogenerated. (Since: 2.9)
3696
3697 "copy-mode: MirrorCopyMode" (optional)
3698 when to copy data to the destination; defaults to 'background'
3699 (Since: 3.0)
3700
3701 "auto-finalize: boolean" (optional)
3702 When false, this job will wait in a PENDING state after it has
3703 finished its work, waiting for "block-job-finalize" before making
3704 any block graph changes. When true, this job will automatically
3705 perform its abort or commit actions. Defaults to true. (Since 3.1)
3706
3707 "auto-dismiss: boolean" (optional)
3708 When false, this job will wait in a CONCLUDED state after it has
3709 completely ceased all work, and awaits "block-job-dismiss". When
3710 true, this job will automatically disappear from the query list
3711 without user intervention. Defaults to true. (Since 3.1)
3712
3713 Returns: nothing on success.
3714
3715 Since: 2.6
3716
3717 Example:
3718
3719 -> { "execute": "blockdev-mirror",
3720 "arguments": { "device": "ide-hd0",
3721 "target": "target0",
3722 "sync": "full" } }
3723 <- { "return": {} }
3724
3725 block_set_io_throttle (Command) Change I/O throttle limits for a block
3726 drive.
3727
3728 Since QEMU 2.4, each device with I/O limits is member of a throttle
3729 group.
3730
3731 If two or more devices are members of the same group, the limits will
3732 apply to the combined I/O of the whole group in a round-robin fashion.
3733 Therefore, setting new I/O limits to a device will affect the whole
3734 group.
3735
3736 The name of the group can be specified using the 'group' parameter. If
3737 the parameter is unset, it is assumed to be the current group of that
3738 device. If it's not in any group yet, the name of the device will be
3739 used as the name for its group.
3740
3741 The 'group' parameter can also be used to move a device to a different
3742 group. In this case the limits specified in the parameters will be
3743 applied to the new group only.
3744
3745 I/O limits can be disabled by setting all of them to 0. In this case
3746 the device will be removed from its group and the rest of its members
3747 will not be affected. The 'group' parameter is ignored.
3748
3749 Arguments: the members of "BlockIOThrottle"
3750
3751 Returns: Nothing on success If "device" is not a valid block device,
3752 DeviceNotFound
3753
3754 Since: 1.1
3755
3756 Example:
3757
3758 -> { "execute": "block_set_io_throttle",
3759 "arguments": { "id": "virtio-blk-pci0/virtio-backend",
3760 "bps": 0,
3761 "bps_rd": 0,
3762 "bps_wr": 0,
3763 "iops": 512,
3764 "iops_rd": 0,
3765 "iops_wr": 0,
3766 "bps_max": 0,
3767 "bps_rd_max": 0,
3768 "bps_wr_max": 0,
3769 "iops_max": 0,
3770 "iops_rd_max": 0,
3771 "iops_wr_max": 0,
3772 "bps_max_length": 0,
3773 "iops_size": 0 } }
3774 <- { "return": {} }
3775
3776 -> { "execute": "block_set_io_throttle",
3777 "arguments": { "id": "ide0-1-0",
3778 "bps": 1000000,
3779 "bps_rd": 0,
3780 "bps_wr": 0,
3781 "iops": 0,
3782 "iops_rd": 0,
3783 "iops_wr": 0,
3784 "bps_max": 8000000,
3785 "bps_rd_max": 0,
3786 "bps_wr_max": 0,
3787 "iops_max": 0,
3788 "iops_rd_max": 0,
3789 "iops_wr_max": 0,
3790 "bps_max_length": 60,
3791 "iops_size": 0 } }
3792 <- { "return": {} }
3793
3794 BlockIOThrottle (Object)
3795
3796 A set of parameters describing block throttling.
3797
3798 Members:
3799
3800 "device: string" (optional)
3801 Block device name (deprecated, use "id" instead)
3802
3803 "id: string" (optional)
3804 The name or QOM path of the guest device (since: 2.8)
3805
3806 "bps: int"
3807 total throughput limit in bytes per second
3808
3809 "bps_rd: int"
3810 read throughput limit in bytes per second
3811
3812 "bps_wr: int"
3813 write throughput limit in bytes per second
3814
3815 "iops: int"
3816 total I/O operations per second
3817
3818 "iops_rd: int"
3819 read I/O operations per second
3820
3821 "iops_wr: int"
3822 write I/O operations per second
3823
3824 "bps_max: int" (optional)
3825 total throughput limit during bursts, in bytes (Since 1.7)
3826
3827 "bps_rd_max: int" (optional)
3828 read throughput limit during bursts, in bytes (Since 1.7)
3829
3830 "bps_wr_max: int" (optional)
3831 write throughput limit during bursts, in bytes (Since 1.7)
3832
3833 "iops_max: int" (optional)
3834 total I/O operations per second during bursts, in bytes (Since 1.7)
3835
3836 "iops_rd_max: int" (optional)
3837 read I/O operations per second during bursts, in bytes (Since 1.7)
3838
3839 "iops_wr_max: int" (optional)
3840 write I/O operations per second during bursts, in bytes (Since 1.7)
3841
3842 "bps_max_length: int" (optional)
3843 maximum length of the "bps_max" burst period, in seconds. It must
3844 only be set if "bps_max" is set as well. Defaults to 1. (Since
3845 2.6)
3846
3847 "bps_rd_max_length: int" (optional)
3848 maximum length of the "bps_rd_max" burst period, in seconds. It
3849 must only be set if "bps_rd_max" is set as well. Defaults to 1.
3850 (Since 2.6)
3851
3852 "bps_wr_max_length: int" (optional)
3853 maximum length of the "bps_wr_max" burst period, in seconds. It
3854 must only be set if "bps_wr_max" is set as well. Defaults to 1.
3855 (Since 2.6)
3856
3857 "iops_max_length: int" (optional)
3858 maximum length of the "iops" burst period, in seconds. It must only
3859 be set if "iops_max" is set as well. Defaults to 1. (Since 2.6)
3860
3861 "iops_rd_max_length: int" (optional)
3862 maximum length of the "iops_rd_max" burst period, in seconds. It
3863 must only be set if "iops_rd_max" is set as well. Defaults to 1.
3864 (Since 2.6)
3865
3866 "iops_wr_max_length: int" (optional)
3867 maximum length of the "iops_wr_max" burst period, in seconds. It
3868 must only be set if "iops_wr_max" is set as well. Defaults to 1.
3869 (Since 2.6)
3870
3871 "iops_size: int" (optional)
3872 an I/O size in bytes (Since 1.7)
3873
3874 "group: string" (optional)
3875 throttle group name (Since 2.4)
3876
3877 Since: 1.1
3878
3879 ThrottleLimits (Object)
3880
3881 Limit parameters for throttling. Since some limit combinations are
3882 illegal, limits should always be set in one transaction. All fields are
3883 optional. When setting limits, if a field is missing the current value
3884 is not changed.
3885
3886 Members:
3887
3888 "iops-total: int" (optional)
3889 limit total I/O operations per second
3890
3891 "iops-total-max: int" (optional)
3892 I/O operations burst
3893
3894 "iops-total-max-length: int" (optional)
3895 length of the iops-total-max burst period, in seconds It must only
3896 be set if "iops-total-max" is set as well.
3897
3898 "iops-read: int" (optional)
3899 limit read operations per second
3900
3901 "iops-read-max: int" (optional)
3902 I/O operations read burst
3903
3904 "iops-read-max-length: int" (optional)
3905 length of the iops-read-max burst period, in seconds It must only
3906 be set if "iops-read-max" is set as well.
3907
3908 "iops-write: int" (optional)
3909 limit write operations per second
3910
3911 "iops-write-max: int" (optional)
3912 I/O operations write burst
3913
3914 "iops-write-max-length: int" (optional)
3915 length of the iops-write-max burst period, in seconds It must only
3916 be set if "iops-write-max" is set as well.
3917
3918 "bps-total: int" (optional)
3919 limit total bytes per second
3920
3921 "bps-total-max: int" (optional)
3922 total bytes burst
3923
3924 "bps-total-max-length: int" (optional)
3925 length of the bps-total-max burst period, in seconds. It must only
3926 be set if "bps-total-max" is set as well.
3927
3928 "bps-read: int" (optional)
3929 limit read bytes per second
3930
3931 "bps-read-max: int" (optional)
3932 total bytes read burst
3933
3934 "bps-read-max-length: int" (optional)
3935 length of the bps-read-max burst period, in seconds It must only be
3936 set if "bps-read-max" is set as well.
3937
3938 "bps-write: int" (optional)
3939 limit write bytes per second
3940
3941 "bps-write-max: int" (optional)
3942 total bytes write burst
3943
3944 "bps-write-max-length: int" (optional)
3945 length of the bps-write-max burst period, in seconds It must only
3946 be set if "bps-write-max" is set as well.
3947
3948 "iops-size: int" (optional)
3949 when limiting by iops max size of an I/O in bytes
3950
3951 Since: 2.11
3952
3953 block-stream (Command) Copy data from a backing file into a block
3954 device.
3955
3956 The block streaming operation is performed in the background until the
3957 entire backing file has been copied. This command returns immediately
3958 once streaming has started. The status of ongoing block streaming
3959 operations can be checked with query-block-jobs. The operation can be
3960 stopped before it has completed using the block-job-cancel command.
3961
3962 The node that receives the data is called the top image, can be located
3963 in any part of the chain (but always above the base image; see below)
3964 and can be specified using its device or node name. Earlier qemu
3965 versions only allowed 'device' to name the top level node; presence of
3966 the 'base-node' parameter during introspection can be used as a witness
3967 of the enhanced semantics of 'device'.
3968
3969 If a base file is specified then sectors are not copied from that base
3970 file and its backing chain. When streaming completes the image file
3971 will have the base file as its backing file. This can be used to
3972 stream a subset of the backing file chain instead of flattening the
3973 entire image.
3974
3975 On successful completion the image file is updated to drop the backing
3976 file and the BLOCK_JOB_COMPLETED event is emitted.
3977
3978 Arguments:
3979
3980 "job-id: string" (optional)
3981 identifier for the newly-created block job. If omitted, the device
3982 name will be used. (Since 2.7)
3983
3984 "device: string"
3985 the device or node name of the top image
3986
3987 "base: string" (optional)
3988 the common backing file name. It cannot be set if "base-node" is
3989 also set.
3990
3991 "base-node: string" (optional)
3992 the node name of the backing file. It cannot be set if "base" is
3993 also set. (Since 2.8)
3994
3995 "backing-file: string" (optional)
3996 The backing file string to write into the top image. This filename
3997 is not validated.
3998
3999 If a pathname string is such that it cannot be resolved by QEMU,
4000 that means that subsequent QMP or HMP commands must use node-names
4001 for the image in question, as filename lookup methods will fail.
4002
4003 If not specified, QEMU will automatically determine the backing
4004 file string to use, or error out if there is no obvious choice.
4005 Care should be taken when specifying the string, to specify a valid
4006 filename or protocol. (Since 2.1)
4007
4008 "speed: int" (optional)
4009 the maximum speed, in bytes per second
4010
4011 "on-error: BlockdevOnError" (optional)
4012 the action to take on an error (default report). 'stop' and
4013 'enospc' can only be used if the block device supports io-status
4014 (see BlockInfo). Since 1.3.
4015
4016 "auto-finalize: boolean" (optional)
4017 When false, this job will wait in a PENDING state after it has
4018 finished its work, waiting for "block-job-finalize" before making
4019 any block graph changes. When true, this job will automatically
4020 perform its abort or commit actions. Defaults to true. (Since 3.1)
4021
4022 "auto-dismiss: boolean" (optional)
4023 When false, this job will wait in a CONCLUDED state after it has
4024 completely ceased all work, and awaits "block-job-dismiss". When
4025 true, this job will automatically disappear from the query list
4026 without user intervention. Defaults to true. (Since 3.1)
4027
4028 Returns: Nothing on success. If "device" does not exist,
4029 DeviceNotFound.
4030
4031 Since: 1.1
4032
4033 Example:
4034
4035 -> { "execute": "block-stream",
4036 "arguments": { "device": "virtio0",
4037 "base": "/tmp/master.qcow2" } }
4038 <- { "return": {} }
4039
4040 block-job-set-speed (Command) Set maximum speed for a background block
4041 operation.
4042
4043 This command can only be issued when there is an active block job.
4044
4045 Throttling can be disabled by setting the speed to 0.
4046
4047 Arguments:
4048
4049 "device: string"
4050 The job identifier. This used to be a device name (hence the name
4051 of the parameter), but since QEMU 2.7 it can have other values.
4052
4053 "speed: int"
4054 the maximum speed, in bytes per second, or 0 for unlimited.
4055 Defaults to 0.
4056
4057 Returns: Nothing on success If no background operation is active on
4058 this device, DeviceNotActive
4059
4060 Since: 1.1
4061
4062 block-job-cancel (Command) Stop an active background block operation.
4063
4064 This command returns immediately after marking the active background
4065 block operation for cancellation. It is an error to call this command
4066 if no operation is in progress.
4067
4068 The operation will cancel as soon as possible and then emit the
4069 BLOCK_JOB_CANCELLED event. Before that happens the job is still
4070 visible when enumerated using query-block-jobs.
4071
4072 Note that if you issue 'block-job-cancel' after 'drive-mirror' has
4073 indicated (via the event BLOCK_JOB_READY) that the source and
4074 destination are synchronized, then the event triggered by this command
4075 changes to BLOCK_JOB_COMPLETED, to indicate that the mirroring has
4076 ended and the destination now has a point-in-time copy tied to the time
4077 of the cancellation.
4078
4079 For streaming, the image file retains its backing file unless the
4080 streaming operation happens to complete just as it is being cancelled.
4081 A new streaming operation can be started at a later time to finish
4082 copying all data from the backing file.
4083
4084 Arguments:
4085
4086 "device: string"
4087 The job identifier. This used to be a device name (hence the name
4088 of the parameter), but since QEMU 2.7 it can have other values.
4089
4090 "force: boolean" (optional)
4091 If true, and the job has already emitted the event BLOCK_JOB_READY,
4092 abandon the job immediately (even if it is paused) instead of
4093 waiting for the destination to complete its final synchronization
4094 (since 1.3)
4095
4096 Returns: Nothing on success If no background operation is active on
4097 this device, DeviceNotActive
4098
4099 Since: 1.1
4100
4101 block-job-pause (Command) Pause an active background block operation.
4102
4103 This command returns immediately after marking the active background
4104 block operation for pausing. It is an error to call this command if no
4105 operation is in progress or if the job is already paused.
4106
4107 The operation will pause as soon as possible. No event is emitted when
4108 the operation is actually paused. Cancelling a paused job
4109 automatically resumes it.
4110
4111 Arguments:
4112
4113 "device: string"
4114 The job identifier. This used to be a device name (hence the name
4115 of the parameter), but since QEMU 2.7 it can have other values.
4116
4117 Returns: Nothing on success If no background operation is active on
4118 this device, DeviceNotActive
4119
4120 Since: 1.3
4121
4122 block-job-resume (Command) Resume an active background block
4123 operation.
4124
4125 This command returns immediately after resuming a paused background
4126 block operation. It is an error to call this command if no operation
4127 is in progress or if the job is not paused.
4128
4129 This command also clears the error status of the job.
4130
4131 Arguments:
4132
4133 "device: string"
4134 The job identifier. This used to be a device name (hence the name
4135 of the parameter), but since QEMU 2.7 it can have other values.
4136
4137 Returns: Nothing on success If no background operation is active on
4138 this device, DeviceNotActive
4139
4140 Since: 1.3
4141
4142 block-job-complete (Command) Manually trigger completion of an active
4143 background block operation. This is supported for drive mirroring,
4144 where it also switches the device to write to the target path only.
4145 The ability to complete is signaled with a BLOCK_JOB_READY event.
4146
4147 This command completes an active background block operation
4148 synchronously. The ordering of this command's return with the
4149 BLOCK_JOB_COMPLETED event is not defined. Note that if an I/O error
4150 occurs during the processing of this command: 1) the command itself
4151 will fail; 2) the error will be processed according to the
4152 rerror/werror arguments that were specified when starting the
4153 operation.
4154
4155 A cancelled or paused job cannot be completed.
4156
4157 Arguments:
4158
4159 "device: string"
4160 The job identifier. This used to be a device name (hence the name
4161 of the parameter), but since QEMU 2.7 it can have other values.
4162
4163 Returns: Nothing on success If no background operation is active on
4164 this device, DeviceNotActive
4165
4166 Since: 1.3
4167
4168 block-job-dismiss (Command) For jobs that have already concluded,
4169 remove them from the block-job-query list. This command only needs to
4170 be run for jobs which were started with QEMU 2.12+ job lifetime
4171 management semantics.
4172
4173 This command will refuse to operate on any job that has not yet reached
4174 its terminal state, JOB_STATUS_CONCLUDED. For jobs that make use of the
4175 BLOCK_JOB_READY event, block-job-cancel or block-job-complete will
4176 still need to be used as appropriate.
4177
4178 Arguments:
4179
4180 "id: string"
4181 The job identifier.
4182
4183 Returns: Nothing on success
4184
4185 Since: 2.12
4186
4187 block-job-finalize (Command) Once a job that has manual=true reaches
4188 the pending state, it can be instructed to finalize any graph changes
4189 and do any necessary cleanup via this command. For jobs in a
4190 transaction, instructing one job to finalize will force ALL jobs in the
4191 transaction to finalize, so it is only necessary to instruct a single
4192 member job to finalize.
4193
4194 Arguments:
4195
4196 "id: string"
4197 The job identifier.
4198
4199 Returns: Nothing on success
4200
4201 Since: 2.12
4202
4203 BlockdevDiscardOptions (Enum)
4204
4205 Determines how to handle discard requests.
4206
4207 Values:
4208
4209 "ignore"
4210 Ignore the request
4211
4212 "unmap"
4213 Forward as an unmap request
4214
4215 Since: 2.9
4216
4217 BlockdevDetectZeroesOptions (Enum)
4218
4219 Describes the operation mode for the automatic conversion of plain zero
4220 writes by the OS to driver specific optimized zero write commands.
4221
4222 Values:
4223
4224 "off"
4225 Disabled (default)
4226
4227 "on"
4228 Enabled
4229
4230 "unmap"
4231 Enabled and even try to unmap blocks if possible. This requires
4232 also that "BlockdevDiscardOptions" is set to unmap for this device.
4233
4234 Since: 2.1
4235
4236 BlockdevAioOptions (Enum)
4237
4238 Selects the AIO backend to handle I/O requests
4239
4240 Values:
4241
4242 "threads"
4243 Use qemu's thread pool
4244
4245 "native"
4246 Use native AIO backend (only Linux and Windows)
4247
4248 Since: 2.9
4249
4250 BlockdevCacheOptions (Object)
4251
4252 Includes cache-related options for block devices
4253
4254 Members:
4255
4256 "direct: boolean" (optional)
4257 enables use of O_DIRECT (bypass the host page cache; default:
4258 false)
4259
4260 "no-flush: boolean" (optional)
4261 ignore any flush requests for the device (default: false)
4262
4263 Since: 2.9
4264
4265 BlockdevDriver (Enum)
4266
4267 Drivers that are supported in block device operations.
4268
4269 Values:
4270
4271 "vxhs"
4272 Since 2.10
4273
4274 "throttle"
4275 Since 2.11
4276
4277 "nvme"
4278 Since 2.12
4279
4280 "copy-on-read"
4281 Since 3.0
4282
4283 "blklogwrites"
4284 Since 3.0
4285
4286 "blkdebug"
4287 Not documented
4288
4289 "blkverify"
4290 Not documented
4291
4292 "bochs"
4293 Not documented
4294
4295 "cloop"
4296 Not documented
4297
4298 "dmg"
4299 Not documented
4300
4301 "file"
4302 Not documented
4303
4304 "ftp"
4305 Not documented
4306
4307 "ftps"
4308 Not documented
4309
4310 "gluster"
4311 Not documented
4312
4313 "host_cdrom"
4314 Not documented
4315
4316 "host_device"
4317 Not documented
4318
4319 "http"
4320 Not documented
4321
4322 "https"
4323 Not documented
4324
4325 "iscsi"
4326 Not documented
4327
4328 "luks"
4329 Not documented
4330
4331 "nbd"
4332 Not documented
4333
4334 "nfs"
4335 Not documented
4336
4337 "null-aio"
4338 Not documented
4339
4340 "null-co"
4341 Not documented
4342
4343 "parallels"
4344 Not documented
4345
4346 "qcow"
4347 Not documented
4348
4349 "qcow2"
4350 Not documented
4351
4352 "qed"
4353 Not documented
4354
4355 "quorum"
4356 Not documented
4357
4358 "raw"
4359 Not documented
4360
4361 "rbd"
4362 Not documented
4363
4364 "replication"
4365 Not documented If: "defined(CONFIG_REPLICATION)"
4366
4367 "sheepdog"
4368 Not documented
4369
4370 "ssh"
4371 Not documented
4372
4373 "vdi"
4374 Not documented
4375
4376 "vhdx"
4377 Not documented
4378
4379 "vmdk"
4380 Not documented
4381
4382 "vpc"
4383 Not documented
4384
4385 "vvfat"
4386 Not documented
4387
4388 Since: 2.9
4389
4390 BlockdevOptionsFile (Object)
4391
4392 Driver specific block device options for the file backend.
4393
4394 Members:
4395
4396 "filename: string"
4397 path to the image file
4398
4399 "pr-manager: string" (optional)
4400 the id for the object that will handle persistent reservations for
4401 this device (default: none, forward the commands via SG_IO; since
4402 2.11)
4403
4404 "aio: BlockdevAioOptions" (optional)
4405 AIO backend (default: threads) (since: 2.8)
4406
4407 "locking: OnOffAuto" (optional)
4408 whether to enable file locking. If set to 'auto', only enable when
4409 Open File Descriptor (OFD) locking API is available (default: auto,
4410 since 2.10)
4411
4412 "drop-cache: boolean" (optional)
4413 invalidate page cache during live migration. This prevents stale
4414 data on the migration destination with cache.direct=off. Currently
4415 only supported on Linux hosts. (default: on, since: 4.0) If:
4416 "defined(CONFIG_LINUX)"
4417
4418 "x-check-cache-dropped: boolean" (optional)
4419 whether to check that page cache was dropped on live migration.
4420 May cause noticeable delays if the image file is large, do not use
4421 in production. (default: off) (since: 3.0)
4422
4423 Features:
4424
4425 "dynamic-auto-read-only"
4426 If present, enabled auto-read-only means that the driver will open
4427 the image read-only at first, dynamically reopen the image file
4428 read-write when the first writer is attached to the node and reopen
4429 read-only when the last writer is detached. This allows giving QEMU
4430 write permissions only on demand when an operation actually needs
4431 write access.
4432
4433 Since: 2.9
4434
4435 BlockdevOptionsNull (Object)
4436
4437 Driver specific block device options for the null backend.
4438
4439 Members:
4440
4441 "size: int" (optional)
4442 size of the device in bytes.
4443
4444 "latency-ns: int" (optional)
4445 emulated latency (in nanoseconds) in processing requests. Default
4446 to zero which completes requests immediately. (Since 2.4)
4447
4448 "read-zeroes: boolean" (optional)
4449 if true, reads from the device produce zeroes; if false, the buffer
4450 is left unchanged. (default: false; since: 4.1)
4451
4452 Since: 2.9
4453
4454 BlockdevOptionsNVMe (Object)
4455
4456 Driver specific block device options for the NVMe backend.
4457
4458 Members:
4459
4460 "device: string"
4461 controller address of the NVMe device.
4462
4463 "namespace: int"
4464 namespace number of the device, starting from 1.
4465
4466 Since: 2.12
4467
4468 BlockdevOptionsVVFAT (Object)
4469
4470 Driver specific block device options for the vvfat protocol.
4471
4472 Members:
4473
4474 "dir: string"
4475 directory to be exported as FAT image
4476
4477 "fat-type: int" (optional)
4478 FAT type: 12, 16 or 32
4479
4480 "floppy: boolean" (optional)
4481 whether to export a floppy image (true) or partitioned hard disk
4482 (false; default)
4483
4484 "label: string" (optional)
4485 set the volume label, limited to 11 bytes. FAT16 and FAT32
4486 traditionally have some restrictions on labels, which are ignored
4487 by most operating systems. Defaults to "QEMU VVFAT". (since 2.4)
4488
4489 "rw: boolean" (optional)
4490 whether to allow write operations (default: false)
4491
4492 Since: 2.9
4493
4494 BlockdevOptionsGenericFormat (Object)
4495
4496 Driver specific block device options for image format that have no
4497 option besides their data source.
4498
4499 Members:
4500
4501 "file: BlockdevRef"
4502 reference to or definition of the data source block device
4503
4504 Since: 2.9
4505
4506 BlockdevOptionsLUKS (Object)
4507
4508 Driver specific block device options for LUKS.
4509
4510 Members:
4511
4512 "key-secret: string" (optional)
4513 the ID of a QCryptoSecret object providing the decryption key
4514 (since 2.6). Mandatory except when doing a metadata-only probe of
4515 the image.
4516
4517 The members of "BlockdevOptionsGenericFormat"
4518
4519 Since: 2.9
4520
4521 BlockdevOptionsGenericCOWFormat (Object)
4522
4523 Driver specific block device options for image format that have no
4524 option besides their data source and an optional backing file.
4525
4526 Members:
4527
4528 "backing: BlockdevRefOrNull" (optional)
4529 reference to or definition of the backing file block device, null
4530 disables the backing file entirely. Defaults to the backing file
4531 stored the image file.
4532
4533 The members of "BlockdevOptionsGenericFormat"
4534
4535 Since: 2.9
4536
4537 Qcow2OverlapCheckMode (Enum)
4538
4539 General overlap check modes.
4540
4541 Values:
4542
4543 "none"
4544 Do not perform any checks
4545
4546 "constant"
4547 Perform only checks which can be done in constant time and without
4548 reading anything from disk
4549
4550 "cached"
4551 Perform only checks which can be done without reading anything from
4552 disk
4553
4554 "all"
4555 Perform all available overlap checks
4556
4557 Since: 2.9
4558
4559 Qcow2OverlapCheckFlags (Object)
4560
4561 Structure of flags for each metadata structure. Setting a field to
4562 'true' makes qemu guard that structure against unintended overwriting.
4563 The default value is chosen according to the template given.
4564
4565 Members:
4566
4567 "template: Qcow2OverlapCheckMode" (optional)
4568 Specifies a template mode which can be adjusted using the other
4569 flags, defaults to 'cached'
4570
4571 "bitmap-directory: boolean" (optional)
4572 since 3.0
4573
4574 "main-header: boolean" (optional)
4575 Not documented
4576
4577 "active-l1: boolean" (optional)
4578 Not documented
4579
4580 "active-l2: boolean" (optional)
4581 Not documented
4582
4583 "refcount-table: boolean" (optional)
4584 Not documented
4585
4586 "refcount-block: boolean" (optional)
4587 Not documented
4588
4589 "snapshot-table: boolean" (optional)
4590 Not documented
4591
4592 "inactive-l1: boolean" (optional)
4593 Not documented
4594
4595 "inactive-l2: boolean" (optional)
4596 Not documented
4597
4598 Since: 2.9
4599
4600 Qcow2OverlapChecks (Alternate)
4601
4602 Specifies which metadata structures should be guarded against
4603 unintended overwriting.
4604
4605 Members:
4606
4607 "flags: Qcow2OverlapCheckFlags"
4608 set of flags for separate specification of each metadata structure
4609 type
4610
4611 "mode: Qcow2OverlapCheckMode"
4612 named mode which chooses a specific set of flags
4613
4614 Since: 2.9
4615
4616 BlockdevQcowEncryptionFormat (Enum)
4617
4618 Values:
4619
4620 "aes"
4621 AES-CBC with plain64 initialization vectors
4622
4623 Since: 2.10
4624
4625 BlockdevQcowEncryption (Object)
4626
4627 Members:
4628
4629 "format: BlockdevQcowEncryptionFormat"
4630 Not documented
4631
4632 The members of "QCryptoBlockOptionsQCow" when "format" is "aes"
4633
4634 Since: 2.10
4635
4636 BlockdevOptionsQcow (Object)
4637
4638 Driver specific block device options for qcow.
4639
4640 Members:
4641
4642 "encrypt: BlockdevQcowEncryption" (optional)
4643 Image decryption options. Mandatory for encrypted images, except
4644 when doing a metadata-only probe of the image.
4645
4646 The members of "BlockdevOptionsGenericCOWFormat"
4647
4648 Since: 2.10
4649
4650 BlockdevQcow2EncryptionFormat (Enum)
4651
4652 Values:
4653
4654 "aes"
4655 AES-CBC with plain64 initialization vectors
4656
4657 "luks"
4658 Not documented
4659
4660 Since: 2.10
4661
4662 BlockdevQcow2Encryption (Object)
4663
4664 Members:
4665
4666 "format: BlockdevQcow2EncryptionFormat"
4667 Not documented
4668
4669 The members of "QCryptoBlockOptionsQCow" when "format" is "aes"
4670 The members of "QCryptoBlockOptionsLUKS" when "format" is "luks"
4671
4672 Since: 2.10
4673
4674 BlockdevOptionsQcow2 (Object)
4675
4676 Driver specific block device options for qcow2.
4677
4678 Members:
4679
4680 "lazy-refcounts: boolean" (optional)
4681 whether to enable the lazy refcounts feature (default is taken from
4682 the image file)
4683
4684 "pass-discard-request: boolean" (optional)
4685 whether discard requests to the qcow2 device should be forwarded to
4686 the data source
4687
4688 "pass-discard-snapshot: boolean" (optional)
4689 whether discard requests for the data source should be issued when
4690 a snapshot operation (e.g. deleting a snapshot) frees clusters in
4691 the qcow2 file
4692
4693 "pass-discard-other: boolean" (optional)
4694 whether discard requests for the data source should be issued on
4695 other occasions where a cluster gets freed
4696
4697 "overlap-check: Qcow2OverlapChecks" (optional)
4698 which overlap checks to perform for writes to the image, defaults
4699 to 'cached' (since 2.2)
4700
4701 "cache-size: int" (optional)
4702 the maximum total size of the L2 table and refcount block caches in
4703 bytes (since 2.2)
4704
4705 "l2-cache-size: int" (optional)
4706 the maximum size of the L2 table cache in bytes (since 2.2)
4707
4708 "l2-cache-entry-size: int" (optional)
4709 the size of each entry in the L2 cache in bytes. It must be a power
4710 of two between 512 and the cluster size. The default value is the
4711 cluster size (since 2.12)
4712
4713 "refcount-cache-size: int" (optional)
4714 the maximum size of the refcount block cache in bytes (since 2.2)
4715
4716 "cache-clean-interval: int" (optional)
4717 clean unused entries in the L2 and refcount caches. The interval is
4718 in seconds. The default value is 600 on supporting platforms, and 0
4719 on other platforms. 0 disables this feature. (since 2.5)
4720
4721 "encrypt: BlockdevQcow2Encryption" (optional)
4722 Image decryption options. Mandatory for encrypted images, except
4723 when doing a metadata-only probe of the image. (since 2.10)
4724
4725 "data-file: BlockdevRef" (optional)
4726 reference to or definition of the external data file. This may
4727 only be specified for images that require an external data file. If
4728 it is not specified for such an image, the data file name is loaded
4729 from the image file. (since 4.0)
4730
4731 The members of "BlockdevOptionsGenericCOWFormat"
4732
4733 Since: 2.9
4734
4735 SshHostKeyCheckMode (Enum)
4736
4737 "none" Don't check the host key at all "hash"
4738 Compare the host key with a given hash "known_hosts" Check the
4739 host key against the known_hosts file
4740
4741 Values:
4742
4743 "none"
4744 Not documented
4745
4746 "hash"
4747 Not documented
4748
4749 "known_hosts"
4750 Not documented
4751
4752 Since: 2.12
4753
4754 SshHostKeyCheckHashType (Enum)
4755
4756 "md5" The given hash is an md5 hash "sha1" The
4757 given hash is an sha1 hash
4758
4759 Values:
4760
4761 "md5"
4762 Not documented
4763
4764 "sha1"
4765 Not documented
4766
4767 Since: 2.12
4768
4769 SshHostKeyHash (Object)
4770
4771 "type" The hash algorithm used for the hash "hash"
4772 The expected hash value
4773
4774 Members:
4775
4776 "type: SshHostKeyCheckHashType"
4777 Not documented
4778
4779 "hash: string"
4780 Not documented
4781
4782 Since: 2.12
4783
4784 SshHostKeyCheck (Object)
4785
4786 Members:
4787
4788 "mode: SshHostKeyCheckMode"
4789 Not documented
4790
4791 The members of "SshHostKeyHash" when "mode" is "hash"
4792
4793 Since: 2.12
4794
4795 BlockdevOptionsSsh (Object)
4796
4797 Members:
4798
4799 "server: InetSocketAddress"
4800 host address
4801
4802 "path: string"
4803 path to the image on the host
4804
4805 "user: string" (optional)
4806 user as which to connect, defaults to current local user name
4807
4808 "host-key-check: SshHostKeyCheck" (optional)
4809 Defines how and what to check the host key against (default:
4810 known_hosts)
4811
4812 Since: 2.9
4813
4814 BlkdebugEvent (Enum)
4815
4816 Trigger events supported by blkdebug.
4817
4818 Values:
4819
4820 "l1_shrink_write_table"
4821 write zeros to the l1 table to shrink image. (since 2.11)
4822
4823 "l1_shrink_free_l2_clusters"
4824 discard the l2 tables. (since 2.11)
4825
4826 "cor_write"
4827 a write due to copy-on-read (since 2.11)
4828
4829 "cluster_alloc_space"
4830 an allocation of file space for a cluster (since 4.1)
4831
4832 "none"
4833 triggers once at creation of the blkdebug node (since 4.1)
4834
4835 "l1_update"
4836 Not documented
4837
4838 "l1_grow_alloc_table"
4839 Not documented
4840
4841 "l1_grow_write_table"
4842 Not documented
4843
4844 "l1_grow_activate_table"
4845 Not documented
4846
4847 "l2_load"
4848 Not documented
4849
4850 "l2_update"
4851 Not documented
4852
4853 "l2_update_compressed"
4854 Not documented
4855
4856 "l2_alloc_cow_read"
4857 Not documented
4858
4859 "l2_alloc_write"
4860 Not documented
4861
4862 "read_aio"
4863 Not documented
4864
4865 "read_backing_aio"
4866 Not documented
4867
4868 "read_compressed"
4869 Not documented
4870
4871 "write_aio"
4872 Not documented
4873
4874 "write_compressed"
4875 Not documented
4876
4877 "vmstate_load"
4878 Not documented
4879
4880 "vmstate_save"
4881 Not documented
4882
4883 "cow_read"
4884 Not documented
4885
4886 "cow_write"
4887 Not documented
4888
4889 "reftable_load"
4890 Not documented
4891
4892 "reftable_grow"
4893 Not documented
4894
4895 "reftable_update"
4896 Not documented
4897
4898 "refblock_load"
4899 Not documented
4900
4901 "refblock_update"
4902 Not documented
4903
4904 "refblock_update_part"
4905 Not documented
4906
4907 "refblock_alloc"
4908 Not documented
4909
4910 "refblock_alloc_hookup"
4911 Not documented
4912
4913 "refblock_alloc_write"
4914 Not documented
4915
4916 "refblock_alloc_write_blocks"
4917 Not documented
4918
4919 "refblock_alloc_write_table"
4920 Not documented
4921
4922 "refblock_alloc_switch_table"
4923 Not documented
4924
4925 "cluster_alloc"
4926 Not documented
4927
4928 "cluster_alloc_bytes"
4929 Not documented
4930
4931 "cluster_free"
4932 Not documented
4933
4934 "flush_to_os"
4935 Not documented
4936
4937 "flush_to_disk"
4938 Not documented
4939
4940 "pwritev_rmw_head"
4941 Not documented
4942
4943 "pwritev_rmw_after_head"
4944 Not documented
4945
4946 "pwritev_rmw_tail"
4947 Not documented
4948
4949 "pwritev_rmw_after_tail"
4950 Not documented
4951
4952 "pwritev"
4953 Not documented
4954
4955 "pwritev_zero"
4956 Not documented
4957
4958 "pwritev_done"
4959 Not documented
4960
4961 "empty_image_prepare"
4962 Not documented
4963
4964 Since: 2.9
4965
4966 BlkdebugIOType (Enum)
4967
4968 Kinds of I/O that blkdebug can inject errors in.
4969
4970 Values:
4971
4972 "read"
4973 .bdrv_co_preadv()
4974
4975 "write"
4976 .bdrv_co_pwritev()
4977
4978 "write-zeroes"
4979 .bdrv_co_pwrite_zeroes()
4980
4981 "discard"
4982 .bdrv_co_pdiscard()
4983
4984 "flush"
4985 .bdrv_co_flush_to_disk()
4986
4987 "block-status"
4988 .bdrv_co_block_status()
4989
4990 Since: 4.1
4991
4992 BlkdebugInjectErrorOptions (Object)
4993
4994 Describes a single error injection for blkdebug.
4995
4996 Members:
4997
4998 "event: BlkdebugEvent"
4999 trigger event
5000
5001 "state: int" (optional)
5002 the state identifier blkdebug needs to be in to actually trigger
5003 the event; defaults to "any"
5004
5005 "iotype: BlkdebugIOType" (optional)
5006 the type of I/O operations on which this error should be injected;
5007 defaults to "all read, write, write-zeroes, discard, and flush
5008 operations" (since: 4.1)
5009
5010 "errno: int" (optional)
5011 error identifier (errno) to be returned; defaults to EIO
5012
5013 "sector: int" (optional)
5014 specifies the sector index which has to be affected in order to
5015 actually trigger the event; defaults to "any sector"
5016
5017 "once: boolean" (optional)
5018 disables further events after this one has been triggered; defaults
5019 to false
5020
5021 "immediately: boolean" (optional)
5022 fail immediately; defaults to false
5023
5024 Since: 2.9
5025
5026 BlkdebugSetStateOptions (Object)
5027
5028 Describes a single state-change event for blkdebug.
5029
5030 Members:
5031
5032 "event: BlkdebugEvent"
5033 trigger event
5034
5035 "state: int" (optional)
5036 the current state identifier blkdebug needs to be in; defaults to
5037 "any"
5038
5039 "new_state: int"
5040 the state identifier blkdebug is supposed to assume if this event
5041 is triggered
5042
5043 Since: 2.9
5044
5045 BlockdevOptionsBlkdebug (Object)
5046
5047 Driver specific block device options for blkdebug.
5048
5049 Members:
5050
5051 "image: BlockdevRef"
5052 underlying raw block device (or image file)
5053
5054 "config: string" (optional)
5055 filename of the configuration file
5056
5057 "align: int" (optional)
5058 required alignment for requests in bytes, must be positive power of
5059 2, or 0 for default
5060
5061 "max-transfer: int" (optional)
5062 maximum size for I/O transfers in bytes, must be positive multiple
5063 of "align" and of the underlying file's request alignment (but need
5064 not be a power of 2), or 0 for default (since 2.10)
5065
5066 "opt-write-zero: int" (optional)
5067 preferred alignment for write zero requests in bytes, must be
5068 positive multiple of "align" and of the underlying file's request
5069 alignment (but need not be a power of 2), or 0 for default (since
5070 2.10)
5071
5072 "max-write-zero: int" (optional)
5073 maximum size for write zero requests in bytes, must be positive
5074 multiple of "align", of "opt-write-zero", and of the underlying
5075 file's request alignment (but need not be a power of 2), or 0 for
5076 default (since 2.10)
5077
5078 "opt-discard: int" (optional)
5079 preferred alignment for discard requests in bytes, must be positive
5080 multiple of "align" and of the underlying file's request alignment
5081 (but need not be a power of 2), or 0 for default (since 2.10)
5082
5083 "max-discard: int" (optional)
5084 maximum size for discard requests in bytes, must be positive
5085 multiple of "align", of "opt-discard", and of the underlying file's
5086 request alignment (but need not be a power of 2), or 0 for default
5087 (since 2.10)
5088
5089 "inject-error: array of BlkdebugInjectErrorOptions" (optional)
5090 array of error injection descriptions
5091
5092 "set-state: array of BlkdebugSetStateOptions" (optional)
5093 array of state-change descriptions
5094
5095 Since: 2.9
5096
5097 BlockdevOptionsBlklogwrites (Object)
5098
5099 Driver specific block device options for blklogwrites.
5100
5101 Members:
5102
5103 "file: BlockdevRef"
5104 block device
5105
5106 "log: BlockdevRef"
5107 block device used to log writes to "file"
5108
5109 "log-sector-size: int" (optional)
5110 sector size used in logging writes to "file", determines
5111 granularity of offsets and sizes of writes (default: 512)
5112
5113 "log-append: boolean" (optional)
5114 append to an existing log (default: false)
5115
5116 "log-super-update-interval: int" (optional)
5117 interval of write requests after which the log super block is
5118 updated to disk (default: 4096)
5119
5120 Since: 3.0
5121
5122 BlockdevOptionsBlkverify (Object)
5123
5124 Driver specific block device options for blkverify.
5125
5126 Members:
5127
5128 "test: BlockdevRef"
5129 block device to be tested
5130
5131 "raw: BlockdevRef"
5132 raw image used for verification
5133
5134 Since: 2.9
5135
5136 QuorumReadPattern (Enum)
5137
5138 An enumeration of quorum read patterns.
5139
5140 Values:
5141
5142 "quorum"
5143 read all the children and do a quorum vote on reads
5144
5145 "fifo"
5146 read only from the first child that has not failed
5147
5148 Since: 2.9
5149
5150 BlockdevOptionsQuorum (Object)
5151
5152 Driver specific block device options for Quorum
5153
5154 Members:
5155
5156 "blkverify: boolean" (optional)
5157 true if the driver must print content mismatch set to false by
5158 default
5159
5160 "children: array of BlockdevRef"
5161 the children block devices to use
5162
5163 "vote-threshold: int"
5164 the vote limit under which a read will fail
5165
5166 "rewrite-corrupted: boolean" (optional)
5167 rewrite corrupted data when quorum is reached (Since 2.1)
5168
5169 "read-pattern: QuorumReadPattern" (optional)
5170 choose read pattern and set to quorum by default (Since 2.2)
5171
5172 Since: 2.9
5173
5174 BlockdevOptionsGluster (Object)
5175
5176 Driver specific block device options for Gluster
5177
5178 Members:
5179
5180 "volume: string"
5181 name of gluster volume where VM image resides
5182
5183 "path: string"
5184 absolute path to image file in gluster volume
5185
5186 "server: array of SocketAddress"
5187 gluster servers description
5188
5189 "debug: int" (optional)
5190 libgfapi log level (default '4' which is Error) (Since 2.8)
5191
5192 "logfile: string" (optional)
5193 libgfapi log file (default /dev/stderr) (Since 2.8)
5194
5195 Since: 2.9
5196
5197 IscsiTransport (Enum)
5198
5199 An enumeration of libiscsi transport types
5200
5201 Values:
5202
5203 "tcp"
5204 Not documented
5205
5206 "iser"
5207 Not documented
5208
5209 Since: 2.9
5210
5211 IscsiHeaderDigest (Enum)
5212
5213 An enumeration of header digests supported by libiscsi
5214
5215 Values:
5216
5217 "crc32c"
5218 Not documented
5219
5220 "none"
5221 Not documented
5222
5223 "crc32c-none"
5224 Not documented
5225
5226 "none-crc32c"
5227 Not documented
5228
5229 Since: 2.9
5230
5231 BlockdevOptionsIscsi (Object)
5232
5233 Members:
5234
5235 "transport: IscsiTransport"
5236 The iscsi transport type
5237
5238 "portal: string"
5239 The address of the iscsi portal
5240
5241 "target: string"
5242 The target iqn name
5243
5244 "lun: int" (optional)
5245 LUN to connect to. Defaults to 0.
5246
5247 "user: string" (optional)
5248 User name to log in with. If omitted, no CHAP authentication is
5249 performed.
5250
5251 "password-secret: string" (optional)
5252 The ID of a QCryptoSecret object providing the password for the
5253 login. This option is required if "user" is specified.
5254
5255 "initiator-name: string" (optional)
5256 The iqn name we want to identify to the target as. If this option
5257 is not specified, an initiator name is generated automatically.
5258
5259 "header-digest: IscsiHeaderDigest" (optional)
5260 The desired header digest. Defaults to none-crc32c.
5261
5262 "timeout: int" (optional)
5263 Timeout in seconds after which a request will timeout. 0 means no
5264 timeout and is the default.
5265
5266 Driver specific block device options for iscsi
5267
5268 Since: 2.9
5269
5270 RbdAuthMode (Enum)
5271
5272 Values:
5273
5274 "cephx"
5275 Not documented
5276
5277 "none"
5278 Not documented
5279
5280 Since: 3.0
5281
5282 BlockdevOptionsRbd (Object)
5283
5284 Members:
5285
5286 "pool: string"
5287 Ceph pool name.
5288
5289 "image: string"
5290 Image name in the Ceph pool.
5291
5292 "conf: string" (optional)
5293 path to Ceph configuration file. Values in the configuration file
5294 will be overridden by options specified via QAPI.
5295
5296 "snapshot: string" (optional)
5297 Ceph snapshot name.
5298
5299 "user: string" (optional)
5300 Ceph id name.
5301
5302 "auth-client-required: array of RbdAuthMode" (optional)
5303 Acceptable authentication modes. This maps to Ceph configuration
5304 option "auth_client_required". (Since 3.0)
5305
5306 "key-secret: string" (optional)
5307 ID of a QCryptoSecret object providing a key for cephx
5308 authentication. This maps to Ceph configuration option "key".
5309 (Since 3.0)
5310
5311 "server: array of InetSocketAddressBase" (optional)
5312 Monitor host address and port. This maps to the "mon_host" Ceph
5313 option.
5314
5315 Since: 2.9
5316
5317 BlockdevOptionsSheepdog (Object)
5318
5319 Driver specific block device options for sheepdog
5320
5321 Members:
5322
5323 "vdi: string"
5324 Virtual disk image name
5325
5326 "server: SocketAddress"
5327 The Sheepdog server to connect to
5328
5329 "snap-id: int" (optional)
5330 Snapshot ID
5331
5332 "tag: string" (optional)
5333 Snapshot tag name
5334
5335 Only one of "snap-id" and "tag" may be present.
5336
5337 Since: 2.9
5338
5339 ReplicationMode (Enum)
5340
5341 An enumeration of replication modes.
5342
5343 Values:
5344
5345 "primary"
5346 Primary mode, the vm's state will be sent to secondary QEMU.
5347
5348 "secondary"
5349 Secondary mode, receive the vm's state from primary QEMU.
5350
5351 Since: 2.9
5352
5353 If: "defined(CONFIG_REPLICATION)"
5354
5355 BlockdevOptionsReplication (Object)
5356
5357 Driver specific block device options for replication
5358
5359 Members:
5360
5361 "mode: ReplicationMode"
5362 the replication mode
5363
5364 "top-id: string" (optional)
5365 In secondary mode, node name or device ID of the root node who owns
5366 the replication node chain. Must not be given in primary mode.
5367
5368 The members of "BlockdevOptionsGenericFormat"
5369
5370 Since: 2.9
5371
5372 If: "defined(CONFIG_REPLICATION)"
5373
5374 NFSTransport (Enum)
5375
5376 An enumeration of NFS transport types
5377
5378 Values:
5379
5380 "inet"
5381 TCP transport
5382
5383 Since: 2.9
5384
5385 NFSServer (Object)
5386
5387 Captures the address of the socket
5388
5389 Members:
5390
5391 "type: NFSTransport"
5392 transport type used for NFS (only TCP supported)
5393
5394 "host: string"
5395 host address for NFS server
5396
5397 Since: 2.9
5398
5399 BlockdevOptionsNfs (Object)
5400
5401 Driver specific block device option for NFS
5402
5403 Members:
5404
5405 "server: NFSServer"
5406 host address
5407
5408 "path: string"
5409 path of the image on the host
5410
5411 "user: int" (optional)
5412 UID value to use when talking to the server (defaults to 65534 on
5413 Windows and getuid() on unix)
5414
5415 "group: int" (optional)
5416 GID value to use when talking to the server (defaults to 65534 on
5417 Windows and getgid() in unix)
5418
5419 "tcp-syn-count: int" (optional)
5420 number of SYNs during the session establishment (defaults to libnfs
5421 default)
5422
5423 "readahead-size: int" (optional)
5424 set the readahead size in bytes (defaults to libnfs default)
5425
5426 "page-cache-size: int" (optional)
5427 set the pagecache size in bytes (defaults to libnfs default)
5428
5429 "debug: int" (optional)
5430 set the NFS debug level (max 2) (defaults to libnfs default)
5431
5432 Since: 2.9
5433
5434 BlockdevOptionsCurlBase (Object)
5435
5436 Driver specific block device options shared by all protocols supported
5437 by the curl backend.
5438
5439 Members:
5440
5441 "url: string"
5442 URL of the image file
5443
5444 "readahead: int" (optional)
5445 Size of the read-ahead cache; must be a multiple of 512 (defaults
5446 to 256 kB)
5447
5448 "timeout: int" (optional)
5449 Timeout for connections, in seconds (defaults to 5)
5450
5451 "username: string" (optional)
5452 Username for authentication (defaults to none)
5453
5454 "password-secret: string" (optional)
5455 ID of a QCryptoSecret object providing a password for
5456 authentication (defaults to no password)
5457
5458 "proxy-username: string" (optional)
5459 Username for proxy authentication (defaults to none)
5460
5461 "proxy-password-secret: string" (optional)
5462 ID of a QCryptoSecret object providing a password for proxy
5463 authentication (defaults to no password)
5464
5465 Since: 2.9
5466
5467 BlockdevOptionsCurlHttp (Object)
5468
5469 Driver specific block device options for HTTP connections over the curl
5470 backend. URLs must start with "http://".
5471
5472 Members:
5473
5474 "cookie: string" (optional)
5475 List of cookies to set; format is "name1=content1; name2=content2;"
5476 as explained by CURLOPT_COOKIE(3). Defaults to no cookies.
5477
5478 "cookie-secret: string" (optional)
5479 ID of a QCryptoSecret object providing the cookie data in a secure
5480 way. See "cookie" for the format. (since 2.10)
5481
5482 The members of "BlockdevOptionsCurlBase"
5483
5484 Since: 2.9
5485
5486 BlockdevOptionsCurlHttps (Object)
5487
5488 Driver specific block device options for HTTPS connections over the
5489 curl backend. URLs must start with "https://".
5490
5491 Members:
5492
5493 "cookie: string" (optional)
5494 List of cookies to set; format is "name1=content1; name2=content2;"
5495 as explained by CURLOPT_COOKIE(3). Defaults to no cookies.
5496
5497 "sslverify: boolean" (optional)
5498 Whether to verify the SSL certificate's validity (defaults to true)
5499
5500 "cookie-secret: string" (optional)
5501 ID of a QCryptoSecret object providing the cookie data in a secure
5502 way. See "cookie" for the format. (since 2.10)
5503
5504 The members of "BlockdevOptionsCurlBase"
5505
5506 Since: 2.9
5507
5508 BlockdevOptionsCurlFtp (Object)
5509
5510 Driver specific block device options for FTP connections over the curl
5511 backend. URLs must start with "ftp://".
5512
5513 Members:
5514
5515 The members of "BlockdevOptionsCurlBase"
5516
5517 Since: 2.9
5518
5519 BlockdevOptionsCurlFtps (Object)
5520
5521 Driver specific block device options for FTPS connections over the curl
5522 backend. URLs must start with "ftps://".
5523
5524 Members:
5525
5526 "sslverify: boolean" (optional)
5527 Whether to verify the SSL certificate's validity (defaults to true)
5528
5529 The members of "BlockdevOptionsCurlBase"
5530
5531 Since: 2.9
5532
5533 BlockdevOptionsNbd (Object)
5534
5535 Driver specific block device options for NBD.
5536
5537 Members:
5538
5539 "server: SocketAddress"
5540 NBD server address
5541
5542 "export: string" (optional)
5543 export name
5544
5545 "tls-creds: string" (optional)
5546 TLS credentials ID
5547
5548 "x-dirty-bitmap: string" (optional)
5549 A "qemu:dirty-bitmap:NAME" string to query in place of traditional
5550 "base:allocation" block status (see NBD_OPT_LIST_META_CONTEXT in
5551 the NBD protocol) (since 3.0)
5552
5553 Since: 2.9
5554
5555 BlockdevOptionsRaw (Object)
5556
5557 Driver specific block device options for the raw driver.
5558
5559 Members:
5560
5561 "offset: int" (optional)
5562 position where the block device starts
5563
5564 "size: int" (optional)
5565 the assumed size of the device
5566
5567 The members of "BlockdevOptionsGenericFormat"
5568
5569 Since: 2.9
5570
5571 BlockdevOptionsVxHS (Object)
5572
5573 Driver specific block device options for VxHS
5574
5575 Members:
5576
5577 "vdisk-id: string"
5578 UUID of VxHS volume
5579
5580 "server: InetSocketAddressBase"
5581 vxhs server IP, port
5582
5583 "tls-creds: string" (optional)
5584 TLS credentials ID
5585
5586 Since: 2.10
5587
5588 BlockdevOptionsThrottle (Object)
5589
5590 Driver specific block device options for the throttle driver
5591
5592 Members:
5593
5594 "throttle-group: string"
5595 the name of the throttle-group object to use. It must already
5596 exist.
5597
5598 "file: BlockdevRef"
5599 reference to or definition of the data source block device
5600
5601 Since: 2.11
5602
5603 BlockdevOptions (Object)
5604
5605 Options for creating a block device. Many options are available for
5606 all block devices, independent of the block driver:
5607
5608 Members:
5609
5610 "driver: BlockdevDriver"
5611 block driver name
5612
5613 "node-name: string" (optional)
5614 the node name of the new node (Since 2.0). This option is required
5615 on the top level of blockdev-add. Valid node names start with an
5616 alphabetic character and may contain only alphanumeric characters,
5617 '-', '.' and '_'. Their maximum length is 31 characters.
5618
5619 "discard: BlockdevDiscardOptions" (optional)
5620 discard-related options (default: ignore)
5621
5622 "cache: BlockdevCacheOptions" (optional)
5623 cache-related options
5624
5625 "read-only: boolean" (optional)
5626 whether the block device should be read-only (default: false).
5627 Note that some block drivers support only read-only access, either
5628 generally or in certain configurations. In this case, the default
5629 value does not work and the option must be specified explicitly.
5630
5631 "auto-read-only: boolean" (optional)
5632 if true and "read-only" is false, QEMU may automatically decide not
5633 to open the image read-write as requested, but fall back to read-
5634 only instead (and switch between the modes later), e.g. depending
5635 on whether the image file is writable or whether a writing user is
5636 attached to the node (default: false, since 3.1)
5637
5638 "detect-zeroes: BlockdevDetectZeroesOptions" (optional)
5639 detect and optimize zero writes (Since 2.1) (default: off)
5640
5641 "force-share: boolean" (optional)
5642 force share all permission on added nodes. Requires
5643 read-only=true. (Since 2.10)
5644
5645 The members of "BlockdevOptionsBlkdebug" when "driver" is "blkdebug"
5646 The members of "BlockdevOptionsBlklogwrites" when "driver" is
5647 "blklogwrites"
5648 The members of "BlockdevOptionsBlkverify" when "driver" is "blkverify"
5649 The members of "BlockdevOptionsGenericFormat" when "driver" is "bochs"
5650 The members of "BlockdevOptionsGenericFormat" when "driver" is "cloop"
5651 The members of "BlockdevOptionsGenericFormat" when "driver" is "copy-
5652 on-read"
5653 The members of "BlockdevOptionsGenericFormat" when "driver" is "dmg"
5654 The members of "BlockdevOptionsFile" when "driver" is "file"
5655 The members of "BlockdevOptionsCurlFtp" when "driver" is "ftp"
5656 The members of "BlockdevOptionsCurlFtps" when "driver" is "ftps"
5657 The members of "BlockdevOptionsGluster" when "driver" is "gluster"
5658 The members of "BlockdevOptionsFile" when "driver" is "host_cdrom"
5659 The members of "BlockdevOptionsFile" when "driver" is "host_device"
5660 The members of "BlockdevOptionsCurlHttp" when "driver" is "http"
5661 The members of "BlockdevOptionsCurlHttps" when "driver" is "https"
5662 The members of "BlockdevOptionsIscsi" when "driver" is "iscsi"
5663 The members of "BlockdevOptionsLUKS" when "driver" is "luks"
5664 The members of "BlockdevOptionsNbd" when "driver" is "nbd"
5665 The members of "BlockdevOptionsNfs" when "driver" is "nfs"
5666 The members of "BlockdevOptionsNull" when "driver" is "null-aio"
5667 The members of "BlockdevOptionsNull" when "driver" is "null-co"
5668 The members of "BlockdevOptionsNVMe" when "driver" is "nvme"
5669 The members of "BlockdevOptionsGenericFormat" when "driver" is
5670 "parallels"
5671 The members of "BlockdevOptionsQcow2" when "driver" is "qcow2"
5672 The members of "BlockdevOptionsQcow" when "driver" is "qcow"
5673 The members of "BlockdevOptionsGenericCOWFormat" when "driver" is "qed"
5674 The members of "BlockdevOptionsQuorum" when "driver" is "quorum"
5675 The members of "BlockdevOptionsRaw" when "driver" is "raw"
5676 The members of "BlockdevOptionsRbd" when "driver" is "rbd"
5677 The members of "BlockdevOptionsReplication" when "driver" is
5678 "replication" (If: "defined(CONFIG_REPLICATION)")
5679 The members of "BlockdevOptionsSheepdog" when "driver" is "sheepdog"
5680 The members of "BlockdevOptionsSsh" when "driver" is "ssh"
5681 The members of "BlockdevOptionsThrottle" when "driver" is "throttle"
5682 The members of "BlockdevOptionsGenericFormat" when "driver" is "vdi"
5683 The members of "BlockdevOptionsGenericFormat" when "driver" is "vhdx"
5684 The members of "BlockdevOptionsGenericCOWFormat" when "driver" is
5685 "vmdk"
5686 The members of "BlockdevOptionsGenericFormat" when "driver" is "vpc"
5687 The members of "BlockdevOptionsVVFAT" when "driver" is "vvfat"
5688 The members of "BlockdevOptionsVxHS" when "driver" is "vxhs"
5689
5690 Remaining options are determined by the block driver.
5691
5692 Since: 2.9
5693
5694 BlockdevRef (Alternate)
5695
5696 Reference to a block device.
5697
5698 Members:
5699
5700 "definition: BlockdevOptions"
5701 defines a new block device inline
5702
5703 "reference: string"
5704 references the ID of an existing block device
5705
5706 Since: 2.9
5707
5708 BlockdevRefOrNull (Alternate)
5709
5710 Reference to a block device.
5711
5712 Members:
5713
5714 "definition: BlockdevOptions"
5715 defines a new block device inline
5716
5717 "reference: string"
5718 references the ID of an existing block device. An empty string
5719 means that no block device should be referenced. Deprecated; use
5720 null instead.
5721
5722 "null: null"
5723 No block device should be referenced (since 2.10)
5724
5725 Since: 2.9
5726
5727 blockdev-add (Command) Creates a new block device. If the "id" option
5728 is given at the top level, a BlockBackend will be created; otherwise,
5729 "node-name" is mandatory at the top level and no BlockBackend will be
5730 created.
5731
5732 Arguments: the members of "BlockdevOptions"
5733
5734 Since: 2.9
5735
5736 Example:
5737
5738 1.
5739 -> { "execute": "blockdev-add",
5740 "arguments": {
5741 "driver": "qcow2",
5742 "node-name": "test1",
5743 "file": {
5744 "driver": "file",
5745 "filename": "test.qcow2"
5746 }
5747 }
5748 }
5749 <- { "return": {} }
5750
5751 2.
5752 -> { "execute": "blockdev-add",
5753 "arguments": {
5754 "driver": "qcow2",
5755 "node-name": "node0",
5756 "discard": "unmap",
5757 "cache": {
5758 "direct": true
5759 },
5760 "file": {
5761 "driver": "file",
5762 "filename": "/tmp/test.qcow2"
5763 },
5764 "backing": {
5765 "driver": "raw",
5766 "file": {
5767 "driver": "file",
5768 "filename": "/dev/fdset/4"
5769 }
5770 }
5771 }
5772 }
5773
5774 <- { "return": {} }
5775
5776 x-blockdev-reopen (Command) Reopens a block device using the given set
5777 of options. Any option not specified will be reset to its default value
5778 regardless of its previous status. If an option cannot be changed or a
5779 particular driver does not support reopening then the command will
5780 return an error.
5781
5782 The top-level "node-name" option (from BlockdevOptions) must be
5783 specified and is used to select the block device to be reopened. Other
5784 "node-name" options must be either omitted or set to the current name
5785 of the appropriate node. This command won't change any node name and
5786 any attempt to do it will result in an error.
5787
5788 In the case of options that refer to child nodes, the behavior of this
5789 command depends on the value:
5790
5791 1) A set of options (BlockdevOptions): the child is reopened with the
5792 specified set of options.
5793
5794 2) A reference to the current child: the child is reopened using its
5795 existing set of options.
5796
5797 3) A reference to a different node: the current child is replaced with
5798 the specified one.
5799
5800 4) NULL: the current child (if any) is detached.
5801
5802 Options (1) and (2) are supported in all cases, but at the moment only
5803 "backing" allows replacing or detaching an existing child.
5804
5805 Unlike with blockdev-add, the "backing" option must always be present
5806 unless the node being reopened does not have a backing file and its
5807 image does not have a default backing file name as part of its
5808 metadata.
5809
5810 Arguments: the members of "BlockdevOptions"
5811
5812 Since: 4.0
5813
5814 blockdev-del (Command) Deletes a block device that has been added
5815 using blockdev-add. The command will fail if the node is attached to a
5816 device or is otherwise being used.
5817
5818 Arguments:
5819
5820 "node-name: string"
5821 Name of the graph node to delete.
5822
5823 Since: 2.9
5824
5825 Example:
5826
5827 -> { "execute": "blockdev-add",
5828 "arguments": {
5829 "driver": "qcow2",
5830 "node-name": "node0",
5831 "file": {
5832 "driver": "file",
5833 "filename": "test.qcow2"
5834 }
5835 }
5836 }
5837 <- { "return": {} }
5838
5839 -> { "execute": "blockdev-del",
5840 "arguments": { "node-name": "node0" }
5841 }
5842 <- { "return": {} }
5843
5844 BlockdevCreateOptionsFile (Object)
5845
5846 Driver specific image creation options for file.
5847
5848 "filename" Filename for the new image file "size"
5849 Size of the virtual disk in bytes "preallocation" Preallocation mode
5850 for the new image (default: off; allowed values: off, falloc (if
5851 defined CONFIG_POSIX_FALLOCATE), full (if defined CONFIG_POSIX))
5852 "nocow" Turn off copy-on-write (valid only on btrfs;
5853 default: off)
5854
5855 Members:
5856
5857 "filename: string"
5858 Not documented
5859
5860 "size: int"
5861 Not documented
5862
5863 "preallocation: PreallocMode" (optional)
5864 Not documented
5865
5866 "nocow: boolean" (optional)
5867 Not documented
5868
5869 Since: 2.12
5870
5871 BlockdevCreateOptionsGluster (Object)
5872
5873 Driver specific image creation options for gluster.
5874
5875 "location" Where to store the new image file "size"
5876 Size of the virtual disk in bytes "preallocation" Preallocation mode
5877 for the new image (default: off; allowed values: off, falloc (if
5878 defined CONFIG_GLUSTERFS_FALLOCATE), full (if defined
5879 CONFIG_GLUSTERFS_ZEROFILL))
5880
5881 Members:
5882
5883 "location: BlockdevOptionsGluster"
5884 Not documented
5885
5886 "size: int"
5887 Not documented
5888
5889 "preallocation: PreallocMode" (optional)
5890 Not documented
5891
5892 Since: 2.12
5893
5894 BlockdevCreateOptionsLUKS (Object)
5895
5896 Driver specific image creation options for LUKS.
5897
5898 "file" Node to create the image format on "size"
5899 Size of the virtual disk in bytes
5900
5901 Members:
5902
5903 "file: BlockdevRef"
5904 Not documented
5905
5906 "size: int"
5907 Not documented
5908
5909 The members of "QCryptoBlockCreateOptionsLUKS"
5910
5911 Since: 2.12
5912
5913 BlockdevCreateOptionsNfs (Object)
5914
5915 Driver specific image creation options for NFS.
5916
5917 "location" Where to store the new image file "size"
5918 Size of the virtual disk in bytes
5919
5920 Members:
5921
5922 "location: BlockdevOptionsNfs"
5923 Not documented
5924
5925 "size: int"
5926 Not documented
5927
5928 Since: 2.12
5929
5930 BlockdevCreateOptionsParallels (Object)
5931
5932 Driver specific image creation options for parallels.
5933
5934 "file" Node to create the image format on "size"
5935 Size of the virtual disk in bytes "cluster-size" Cluster size in
5936 bytes (default: 1 MB)
5937
5938 Members:
5939
5940 "file: BlockdevRef"
5941 Not documented
5942
5943 "size: int"
5944 Not documented
5945
5946 "cluster-size: int" (optional)
5947 Not documented
5948
5949 Since: 2.12
5950
5951 BlockdevCreateOptionsQcow (Object)
5952
5953 Driver specific image creation options for qcow.
5954
5955 "file" Node to create the image format on "size"
5956 Size of the virtual disk in bytes "backing-file" File name of the
5957 backing file if a backing file should be used "encrypt"
5958 Encryption options if the image should be encrypted
5959
5960 Members:
5961
5962 "file: BlockdevRef"
5963 Not documented
5964
5965 "size: int"
5966 Not documented
5967
5968 "backing-file: string" (optional)
5969 Not documented
5970
5971 "encrypt: QCryptoBlockCreateOptions" (optional)
5972 Not documented
5973
5974 Since: 2.12
5975
5976 BlockdevQcow2Version (Enum)
5977
5978 Values:
5979
5980 "v2"
5981 The original QCOW2 format as introduced in qemu 0.10 (version 2)
5982
5983 "v3"
5984 The extended QCOW2 format as introduced in qemu 1.1 (version 3)
5985
5986 Since: 2.12
5987
5988 BlockdevCreateOptionsQcow2 (Object)
5989
5990 Driver specific image creation options for qcow2.
5991
5992 "file" Node to create the image format on "data-file"
5993 Node to use as an external data file in which all guest data is stored
5994 so that only metadata remains in the qcow2 file (since: 4.0)
5995 "data-file-raw" True if the external data file must stay valid as a
5996 standalone (read-only) raw image without looking at qcow2 metadata
5997 (default: false; since: 4.0) "size" Size of the virtual
5998 disk in bytes "version" Compatibility level (default: v3)
5999 "backing-file" File name of the backing file if a backing file
6000 should be used "backing-fmt" Name of the block driver to use for
6001 the backing file "encrypt" Encryption options if the image
6002 should be encrypted "cluster-size" qcow2 cluster size in bytes
6003 (default: 65536) "preallocation" Preallocation mode for the new
6004 image (default: off; allowed values: off, falloc, full, metadata)
6005 "lazy-refcounts" True if refcounts may be updated lazily (default:
6006 off) "refcount-bits" Width of reference counts in bits (default: 16)
6007
6008 Members:
6009
6010 "file: BlockdevRef"
6011 Not documented
6012
6013 "data-file: BlockdevRef" (optional)
6014 Not documented
6015
6016 "data-file-raw: boolean" (optional)
6017 Not documented
6018
6019 "size: int"
6020 Not documented
6021
6022 "version: BlockdevQcow2Version" (optional)
6023 Not documented
6024
6025 "backing-file: string" (optional)
6026 Not documented
6027
6028 "backing-fmt: BlockdevDriver" (optional)
6029 Not documented
6030
6031 "encrypt: QCryptoBlockCreateOptions" (optional)
6032 Not documented
6033
6034 "cluster-size: int" (optional)
6035 Not documented
6036
6037 "preallocation: PreallocMode" (optional)
6038 Not documented
6039
6040 "lazy-refcounts: boolean" (optional)
6041 Not documented
6042
6043 "refcount-bits: int" (optional)
6044 Not documented
6045
6046 Since: 2.12
6047
6048 BlockdevCreateOptionsQed (Object)
6049
6050 Driver specific image creation options for qed.
6051
6052 "file" Node to create the image format on "size"
6053 Size of the virtual disk in bytes "backing-file" File name of the
6054 backing file if a backing file should be used "backing-fmt" Name
6055 of the block driver to use for the backing file "cluster-size"
6056 Cluster size in bytes (default: 65536) "table-size" L1/L2 table
6057 size (in clusters)
6058
6059 Members:
6060
6061 "file: BlockdevRef"
6062 Not documented
6063
6064 "size: int"
6065 Not documented
6066
6067 "backing-file: string" (optional)
6068 Not documented
6069
6070 "backing-fmt: BlockdevDriver" (optional)
6071 Not documented
6072
6073 "cluster-size: int" (optional)
6074 Not documented
6075
6076 "table-size: int" (optional)
6077 Not documented
6078
6079 Since: 2.12
6080
6081 BlockdevCreateOptionsRbd (Object)
6082
6083 Driver specific image creation options for rbd/Ceph.
6084
6085 "location" Where to store the new image file. This location
6086 cannot point to a snapshot. "size" Size of the virtual
6087 disk in bytes "cluster-size" RBD object size
6088
6089 Members:
6090
6091 "location: BlockdevOptionsRbd"
6092 Not documented
6093
6094 "size: int"
6095 Not documented
6096
6097 "cluster-size: int" (optional)
6098 Not documented
6099
6100 Since: 2.12
6101
6102 BlockdevVmdkSubformat (Enum)
6103
6104 Subformat options for VMDK images
6105
6106 Values:
6107
6108 "monolithicSparse"
6109 Single file image with sparse cluster allocation
6110
6111 "monolithicFlat"
6112 Single flat data image and a descriptor file
6113
6114 "twoGbMaxExtentSparse"
6115 Data is split into 2GB (per virtual LBA) sparse extent files, in
6116 addition to a descriptor file
6117
6118 "twoGbMaxExtentFlat"
6119 Data is split into 2GB (per virtual LBA) flat extent files, in
6120 addition to a descriptor file
6121
6122 "streamOptimized"
6123 Single file image sparse cluster allocation, optimized for
6124 streaming over network.
6125
6126 Since: 4.0
6127
6128 BlockdevVmdkAdapterType (Enum)
6129
6130 Adapter type info for VMDK images
6131
6132 Values:
6133
6134 "ide"
6135 Not documented
6136
6137 "buslogic"
6138 Not documented
6139
6140 "lsilogic"
6141 Not documented
6142
6143 "legacyESX"
6144 Not documented
6145
6146 Since: 4.0
6147
6148 BlockdevCreateOptionsVmdk (Object)
6149
6150 Driver specific image creation options for VMDK.
6151
6152 "file" Where to store the new image file. This refers to the
6153 image file for monolithcSparse and streamOptimized format, or the
6154 descriptor file for other formats. "size" Size of the virtual
6155 disk in bytes "extents" Where to store the data extents. Required
6156 for monolithcFlat, twoGbMaxExtentSparse and twoGbMaxExtentFlat formats.
6157 For monolithicFlat, only one entry is required; for twoGbMaxExtent*
6158 formats, the number of entries required is calculated as extent_number
6159 = virtual_size / 2GB. Providing more extents than will be used is an
6160 error. "subformat" The subformat of the VMDK image. Default:
6161 "monolithicSparse". "backing-file" The path of backing file. Default:
6162 no backing file is used. "adapter-type" The adapter type used to fill
6163 in the descriptor. Default: ide. "hwversion" Hardware version. The
6164 meaningful options are "4" or "6". Default: "4". "zeroed-grain"
6165 Whether to enable zeroed-grain feature for sparse subformats. Default:
6166 false.
6167
6168 Members:
6169
6170 "file: BlockdevRef"
6171 Not documented
6172
6173 "size: int"
6174 Not documented
6175
6176 "extents: array of BlockdevRef" (optional)
6177 Not documented
6178
6179 "subformat: BlockdevVmdkSubformat" (optional)
6180 Not documented
6181
6182 "backing-file: string" (optional)
6183 Not documented
6184
6185 "adapter-type: BlockdevVmdkAdapterType" (optional)
6186 Not documented
6187
6188 "hwversion: string" (optional)
6189 Not documented
6190
6191 "zeroed-grain: boolean" (optional)
6192 Not documented
6193
6194 Since: 4.0
6195
6196 SheepdogRedundancyType (Enum)
6197
6198 "full" Create a fully replicated vdi with x copies
6199 "erasure-coded" Create an erasure coded vdi with x data strips and y
6200 parity strips
6201
6202 Values:
6203
6204 "full"
6205 Not documented
6206
6207 "erasure-coded"
6208 Not documented
6209
6210 Since: 2.12
6211
6212 SheepdogRedundancyFull (Object)
6213
6214 "copies" Number of copies to use (between 1 and 31)
6215
6216 Members:
6217
6218 "copies: int"
6219 Not documented
6220
6221 Since: 2.12
6222
6223 SheepdogRedundancyErasureCoded (Object)
6224
6225 "data-strips" Number of data strips to use (one of {2,4,8,16})
6226 "parity-strips" Number of parity strips to use (between 1 and 15)
6227
6228 Members:
6229
6230 "data-strips: int"
6231 Not documented
6232
6233 "parity-strips: int"
6234 Not documented
6235
6236 Since: 2.12
6237
6238 SheepdogRedundancy (Object)
6239
6240 Members:
6241
6242 "type: SheepdogRedundancyType"
6243 Not documented
6244
6245 The members of "SheepdogRedundancyFull" when "type" is "full"
6246 The members of "SheepdogRedundancyErasureCoded" when "type" is
6247 "erasure-coded"
6248
6249 Since: 2.12
6250
6251 BlockdevCreateOptionsSheepdog (Object)
6252
6253 Driver specific image creation options for Sheepdog.
6254
6255 "location" Where to store the new image file "size"
6256 Size of the virtual disk in bytes "backing-file" File name of a
6257 base image "preallocation" Preallocation mode for the new image
6258 (default: off; allowed values: off, full) "redundancy" Redundancy
6259 of the image "object-size" Object size of the image
6260
6261 Members:
6262
6263 "location: BlockdevOptionsSheepdog"
6264 Not documented
6265
6266 "size: int"
6267 Not documented
6268
6269 "backing-file: string" (optional)
6270 Not documented
6271
6272 "preallocation: PreallocMode" (optional)
6273 Not documented
6274
6275 "redundancy: SheepdogRedundancy" (optional)
6276 Not documented
6277
6278 "object-size: int" (optional)
6279 Not documented
6280
6281 Since: 2.12
6282
6283 BlockdevCreateOptionsSsh (Object)
6284
6285 Driver specific image creation options for SSH.
6286
6287 "location" Where to store the new image file "size"
6288 Size of the virtual disk in bytes
6289
6290 Members:
6291
6292 "location: BlockdevOptionsSsh"
6293 Not documented
6294
6295 "size: int"
6296 Not documented
6297
6298 Since: 2.12
6299
6300 BlockdevCreateOptionsVdi (Object)
6301
6302 Driver specific image creation options for VDI.
6303
6304 "file" Node to create the image format on "size"
6305 Size of the virtual disk in bytes "preallocation" Preallocation mode
6306 for the new image (default: off; allowed values: off, metadata)
6307
6308 Members:
6309
6310 "file: BlockdevRef"
6311 Not documented
6312
6313 "size: int"
6314 Not documented
6315
6316 "preallocation: PreallocMode" (optional)
6317 Not documented
6318
6319 Since: 2.12
6320
6321 BlockdevVhdxSubformat (Enum)
6322
6323 Values:
6324
6325 "dynamic"
6326 Growing image file
6327
6328 "fixed"
6329 Preallocated fixed-size image file
6330
6331 Since: 2.12
6332
6333 BlockdevCreateOptionsVhdx (Object)
6334
6335 Driver specific image creation options for vhdx.
6336
6337 "file" Node to create the image format on "size"
6338 Size of the virtual disk in bytes "log-size" Log size in bytes,
6339 must be a multiple of 1 MB (default: 1 MB) "block-size" Block
6340 size in bytes, must be a multiple of 1 MB and not larger than 256 MB
6341 (default: automatically choose a block size depending on the image
6342 size) "subformat" vhdx subformat (default: dynamic)
6343 "block-state-zero" Force use of payload blocks of type 'ZERO'. Non-
6344 standard, but default. Do not set to 'off' when using 'qemu-img
6345 convert' with subformat=dynamic.
6346
6347 Members:
6348
6349 "file: BlockdevRef"
6350 Not documented
6351
6352 "size: int"
6353 Not documented
6354
6355 "log-size: int" (optional)
6356 Not documented
6357
6358 "block-size: int" (optional)
6359 Not documented
6360
6361 "subformat: BlockdevVhdxSubformat" (optional)
6362 Not documented
6363
6364 "block-state-zero: boolean" (optional)
6365 Not documented
6366
6367 Since: 2.12
6368
6369 BlockdevVpcSubformat (Enum)
6370
6371 Values:
6372
6373 "dynamic"
6374 Growing image file
6375
6376 "fixed"
6377 Preallocated fixed-size image file
6378
6379 Since: 2.12
6380
6381 BlockdevCreateOptionsVpc (Object)
6382
6383 Driver specific image creation options for vpc (VHD).
6384
6385 "file" Node to create the image format on "size"
6386 Size of the virtual disk in bytes "subformat" vhdx subformat
6387 (default: dynamic) "force-size" Force use of the exact byte size
6388 instead of rounding to the next size that can be represented in CHS
6389 geometry (default: false)
6390
6391 Members:
6392
6393 "file: BlockdevRef"
6394 Not documented
6395
6396 "size: int"
6397 Not documented
6398
6399 "subformat: BlockdevVpcSubformat" (optional)
6400 Not documented
6401
6402 "force-size: boolean" (optional)
6403 Not documented
6404
6405 Since: 2.12
6406
6407 BlockdevCreateOptions (Object)
6408
6409 Options for creating an image format on a given node.
6410
6411 "driver" block driver to create the image format
6412
6413 Members:
6414
6415 "driver: BlockdevDriver"
6416 Not documented
6417
6418 The members of "BlockdevCreateOptionsFile" when "driver" is "file"
6419 The members of "BlockdevCreateOptionsGluster" when "driver" is
6420 "gluster"
6421 The members of "BlockdevCreateOptionsLUKS" when "driver" is "luks"
6422 The members of "BlockdevCreateOptionsNfs" when "driver" is "nfs"
6423 The members of "BlockdevCreateOptionsParallels" when "driver" is
6424 "parallels"
6425 The members of "BlockdevCreateOptionsQcow" when "driver" is "qcow"
6426 The members of "BlockdevCreateOptionsQcow2" when "driver" is "qcow2"
6427 The members of "BlockdevCreateOptionsQed" when "driver" is "qed"
6428 The members of "BlockdevCreateOptionsRbd" when "driver" is "rbd"
6429 The members of "BlockdevCreateOptionsSheepdog" when "driver" is
6430 "sheepdog"
6431 The members of "BlockdevCreateOptionsSsh" when "driver" is "ssh"
6432 The members of "BlockdevCreateOptionsVdi" when "driver" is "vdi"
6433 The members of "BlockdevCreateOptionsVhdx" when "driver" is "vhdx"
6434 The members of "BlockdevCreateOptionsVmdk" when "driver" is "vmdk"
6435 The members of "BlockdevCreateOptionsVpc" when "driver" is "vpc"
6436
6437 Since: 2.12
6438
6439 blockdev-create (Command) Starts a job to create an image format on a
6440 given node. The job is automatically finalized, but a manual job-
6441 dismiss is required.
6442
6443 Arguments:
6444
6445 "job-id: string"
6446 Identifier for the newly created job.
6447
6448 "options: BlockdevCreateOptions"
6449 Options for the image creation.
6450
6451 Since: 3.0
6452
6453 blockdev-open-tray (Command) Opens a block device's tray. If there is
6454 a block driver state tree inserted as a medium, it will become
6455 inaccessible to the guest (but it will remain associated to the block
6456 device, so closing the tray will make it accessible again).
6457
6458 If the tray was already open before, this will be a no-op.
6459
6460 Once the tray opens, a DEVICE_TRAY_MOVED event is emitted. There are
6461 cases in which no such event will be generated, these include:
6462
6463 - if the guest has locked the tray, "force" is false and the guest
6464 does not respond to the eject request
6465
6466 - if the BlockBackend denoted by "device" does not have a guest
6467 device attached to it
6468
6469 - if the guest device does not have an actual tray
6470
6471 Arguments:
6472
6473 "device: string" (optional)
6474 Block device name (deprecated, use "id" instead)
6475
6476 "id: string" (optional)
6477 The name or QOM path of the guest device (since: 2.8)
6478
6479 "force: boolean" (optional)
6480 if false (the default), an eject request will be sent to the guest
6481 if it has locked the tray (and the tray will not be opened
6482 immediately); if true, the tray will be opened regardless of
6483 whether it is locked
6484
6485 Since: 2.5
6486
6487 Example:
6488
6489 -> { "execute": "blockdev-open-tray",
6490 "arguments": { "id": "ide0-1-0" } }
6491
6492 <- { "timestamp": { "seconds": 1418751016,
6493 "microseconds": 716996 },
6494 "event": "DEVICE_TRAY_MOVED",
6495 "data": { "device": "ide1-cd0",
6496 "id": "ide0-1-0",
6497 "tray-open": true } }
6498
6499 <- { "return": {} }
6500
6501 blockdev-close-tray (Command) Closes a block device's tray. If there
6502 is a block driver state tree associated with the block device (which is
6503 currently ejected), that tree will be loaded as the medium.
6504
6505 If the tray was already closed before, this will be a no-op.
6506
6507 Arguments:
6508
6509 "device: string" (optional)
6510 Block device name (deprecated, use "id" instead)
6511
6512 "id: string" (optional)
6513 The name or QOM path of the guest device (since: 2.8)
6514
6515 Since: 2.5
6516
6517 Example:
6518
6519 -> { "execute": "blockdev-close-tray",
6520 "arguments": { "id": "ide0-1-0" } }
6521
6522 <- { "timestamp": { "seconds": 1418751345,
6523 "microseconds": 272147 },
6524 "event": "DEVICE_TRAY_MOVED",
6525 "data": { "device": "ide1-cd0",
6526 "id": "ide0-1-0",
6527 "tray-open": false } }
6528
6529 <- { "return": {} }
6530
6531 blockdev-remove-medium (Command) Removes a medium (a block driver
6532 state tree) from a block device. That block device's tray must
6533 currently be open (unless there is no attached guest device).
6534
6535 If the tray is open and there is no medium inserted, this will be a no-
6536 op.
6537
6538 Arguments:
6539
6540 "id: string"
6541 The name or QOM path of the guest device
6542
6543 Since: 2.12
6544
6545 Example:
6546
6547 -> { "execute": "blockdev-remove-medium",
6548 "arguments": { "id": "ide0-1-0" } }
6549
6550 <- { "error": { "class": "GenericError",
6551 "desc": "Tray of device 'ide0-1-0' is not open" } }
6552
6553 -> { "execute": "blockdev-open-tray",
6554 "arguments": { "id": "ide0-1-0" } }
6555
6556 <- { "timestamp": { "seconds": 1418751627,
6557 "microseconds": 549958 },
6558 "event": "DEVICE_TRAY_MOVED",
6559 "data": { "device": "ide1-cd0",
6560 "id": "ide0-1-0",
6561 "tray-open": true } }
6562
6563 <- { "return": {} }
6564
6565 -> { "execute": "blockdev-remove-medium",
6566 "arguments": { "id": "ide0-1-0" } }
6567
6568 <- { "return": {} }
6569
6570 blockdev-insert-medium (Command) Inserts a medium (a block driver
6571 state tree) into a block device. That block device's tray must
6572 currently be open (unless there is no attached guest device) and there
6573 must be no medium inserted already.
6574
6575 Arguments:
6576
6577 "id: string"
6578 The name or QOM path of the guest device
6579
6580 "node-name: string"
6581 name of a node in the block driver state graph
6582
6583 Since: 2.12
6584
6585 Example:
6586
6587 -> { "execute": "blockdev-add",
6588 "arguments": {
6589 "node-name": "node0",
6590 "driver": "raw",
6591 "file": { "driver": "file",
6592 "filename": "fedora.iso" } } }
6593 <- { "return": {} }
6594
6595 -> { "execute": "blockdev-insert-medium",
6596 "arguments": { "id": "ide0-1-0",
6597 "node-name": "node0" } }
6598
6599 <- { "return": {} }
6600
6601 BlockdevChangeReadOnlyMode (Enum)
6602
6603 Specifies the new read-only mode of a block device subject to the
6604 "blockdev-change-medium" command.
6605
6606 Values:
6607
6608 "retain"
6609 Retains the current read-only mode
6610
6611 "read-only"
6612 Makes the device read-only
6613
6614 "read-write"
6615 Makes the device writable
6616
6617 Since: 2.3
6618
6619 blockdev-change-medium (Command) Changes the medium inserted into a
6620 block device by ejecting the current medium and loading a new image
6621 file which is inserted as the new medium (this command combines
6622 blockdev-open-tray, blockdev-remove-medium, blockdev-insert-medium and
6623 blockdev-close-tray).
6624
6625 Arguments:
6626
6627 "device: string" (optional)
6628 Block device name (deprecated, use "id" instead)
6629
6630 "id: string" (optional)
6631 The name or QOM path of the guest device (since: 2.8)
6632
6633 "filename: string"
6634 filename of the new image to be loaded
6635
6636 "format: string" (optional)
6637 format to open the new image with (defaults to the probed format)
6638
6639 "read-only-mode: BlockdevChangeReadOnlyMode" (optional)
6640 change the read-only mode of the device; defaults to 'retain'
6641
6642 Since: 2.5
6643
6644 Examples:
6645
6646 1. Change a removable medium
6647
6648 -> { "execute": "blockdev-change-medium",
6649 "arguments": { "id": "ide0-1-0",
6650 "filename": "/srv/images/Fedora-12-x86_64-DVD.iso",
6651 "format": "raw" } }
6652 <- { "return": {} }
6653
6654 2. Load a read-only medium into a writable drive
6655
6656 -> { "execute": "blockdev-change-medium",
6657 "arguments": { "id": "floppyA",
6658 "filename": "/srv/images/ro.img",
6659 "format": "raw",
6660 "read-only-mode": "retain" } }
6661
6662 <- { "error":
6663 { "class": "GenericError",
6664 "desc": "Could not open '/srv/images/ro.img': Permission denied" } }
6665
6666 -> { "execute": "blockdev-change-medium",
6667 "arguments": { "id": "floppyA",
6668 "filename": "/srv/images/ro.img",
6669 "format": "raw",
6670 "read-only-mode": "read-only" } }
6671
6672 <- { "return": {} }
6673
6674 BlockErrorAction (Enum)
6675
6676 An enumeration of action that has been taken when a DISK I/O occurs
6677
6678 Values:
6679
6680 "ignore"
6681 error has been ignored
6682
6683 "report"
6684 error has been reported to the device
6685
6686 "stop"
6687 error caused VM to be stopped
6688
6689 Since: 2.1
6690
6691 BLOCK_IMAGE_CORRUPTED (Event) Emitted when a disk image is being
6692 marked corrupt. The image can be identified by its device or node name.
6693 The 'device' field is always present for compatibility reasons, but it
6694 can be empty ("") if the image does not have a device name associated.
6695
6696 Arguments:
6697
6698 "device: string"
6699 device name. This is always present for compatibility reasons, but
6700 it can be empty ("") if the image does not have a device name
6701 associated.
6702
6703 "node-name: string" (optional)
6704 node name (Since: 2.4)
6705
6706 "msg: string"
6707 informative message for human consumption, such as the kind of
6708 corruption being detected. It should not be parsed by machine as it
6709 is not guaranteed to be stable
6710
6711 "offset: int" (optional)
6712 if the corruption resulted from an image access, this is the host's
6713 access offset into the image
6714
6715 "size: int" (optional)
6716 if the corruption resulted from an image access, this is the access
6717 size
6718
6719 "fatal: boolean"
6720 if set, the image is marked corrupt and therefore unusable after
6721 this event and must be repaired (Since 2.2; before, every
6722 BLOCK_IMAGE_CORRUPTED event was fatal)
6723
6724 Note: If action is "stop", a STOP event will eventually follow the
6725 BLOCK_IO_ERROR event.
6726
6727 Example:
6728
6729 <- { "event": "BLOCK_IMAGE_CORRUPTED",
6730 "data": { "device": "ide0-hd0", "node-name": "node0",
6731 "msg": "Prevented active L1 table overwrite", "offset": 196608,
6732 "size": 65536 },
6733 "timestamp": { "seconds": 1378126126, "microseconds": 966463 } }
6734
6735 Since: 1.7
6736
6737 BLOCK_IO_ERROR (Event) Emitted when a disk I/O error occurs
6738
6739 Arguments:
6740
6741 "device: string"
6742 device name. This is always present for compatibility reasons, but
6743 it can be empty ("") if the image does not have a device name
6744 associated.
6745
6746 "node-name: string" (optional)
6747 node name. Note that errors may be reported for the root node that
6748 is directly attached to a guest device rather than for the node
6749 where the error occurred. The node name is not present if the drive
6750 is empty. (Since: 2.8)
6751
6752 "operation: IoOperationType"
6753 I/O operation
6754
6755 "action: BlockErrorAction"
6756 action that has been taken
6757
6758 "nospace: boolean" (optional)
6759 true if I/O error was caused due to a no-space condition. This key
6760 is only present if query-block's io-status is present, please see
6761 query-block documentation for more information (since: 2.2)
6762
6763 "reason: string"
6764 human readable string describing the error cause. (This field is a
6765 debugging aid for humans, it should not be parsed by applications)
6766 (since: 2.2)
6767
6768 Note: If action is "stop", a STOP event will eventually follow the
6769 BLOCK_IO_ERROR event
6770
6771 Since: 0.13.0
6772
6773 Example:
6774
6775 <- { "event": "BLOCK_IO_ERROR",
6776 "data": { "device": "ide0-hd1",
6777 "node-name": "#block212",
6778 "operation": "write",
6779 "action": "stop" },
6780 "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
6781
6782 BLOCK_JOB_COMPLETED (Event) Emitted when a block job has completed
6783
6784 Arguments:
6785
6786 "type: JobType"
6787 job type
6788
6789 "device: string"
6790 The job identifier. Originally the device name but other values are
6791 allowed since QEMU 2.7
6792
6793 "len: int"
6794 maximum progress value
6795
6796 "offset: int"
6797 current progress value. On success this is equal to len. On
6798 failure this is less than len
6799
6800 "speed: int"
6801 rate limit, bytes per second
6802
6803 "error: string" (optional)
6804 error message. Only present on failure. This field contains a
6805 human-readable error message. There are no semantics other than
6806 that streaming has failed and clients should not try to interpret
6807 the error string
6808
6809 Since: 1.1
6810
6811 Example:
6812
6813 <- { "event": "BLOCK_JOB_COMPLETED",
6814 "data": { "type": "stream", "device": "virtio-disk0",
6815 "len": 10737418240, "offset": 10737418240,
6816 "speed": 0 },
6817 "timestamp": { "seconds": 1267061043, "microseconds": 959568 } }
6818
6819 BLOCK_JOB_CANCELLED (Event) Emitted when a block job has been
6820 cancelled
6821
6822 Arguments:
6823
6824 "type: JobType"
6825 job type
6826
6827 "device: string"
6828 The job identifier. Originally the device name but other values are
6829 allowed since QEMU 2.7
6830
6831 "len: int"
6832 maximum progress value
6833
6834 "offset: int"
6835 current progress value. On success this is equal to len. On
6836 failure this is less than len
6837
6838 "speed: int"
6839 rate limit, bytes per second
6840
6841 Since: 1.1
6842
6843 Example:
6844
6845 <- { "event": "BLOCK_JOB_CANCELLED",
6846 "data": { "type": "stream", "device": "virtio-disk0",
6847 "len": 10737418240, "offset": 134217728,
6848 "speed": 0 },
6849 "timestamp": { "seconds": 1267061043, "microseconds": 959568 } }
6850
6851 BLOCK_JOB_ERROR (Event) Emitted when a block job encounters an error
6852
6853 Arguments:
6854
6855 "device: string"
6856 The job identifier. Originally the device name but other values are
6857 allowed since QEMU 2.7
6858
6859 "operation: IoOperationType"
6860 I/O operation
6861
6862 "action: BlockErrorAction"
6863 action that has been taken
6864
6865 Since: 1.3
6866
6867 Example:
6868
6869 <- { "event": "BLOCK_JOB_ERROR",
6870 "data": { "device": "ide0-hd1",
6871 "operation": "write",
6872 "action": "stop" },
6873 "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
6874
6875 BLOCK_JOB_READY (Event) Emitted when a block job is ready to complete
6876
6877 Arguments:
6878
6879 "type: JobType"
6880 job type
6881
6882 "device: string"
6883 The job identifier. Originally the device name but other values are
6884 allowed since QEMU 2.7
6885
6886 "len: int"
6887 maximum progress value
6888
6889 "offset: int"
6890 current progress value. On success this is equal to len. On
6891 failure this is less than len
6892
6893 "speed: int"
6894 rate limit, bytes per second
6895
6896 Note: The "ready to complete" status is always reset by a
6897 "BLOCK_JOB_ERROR" event
6898
6899 Since: 1.3
6900
6901 Example:
6902
6903 <- { "event": "BLOCK_JOB_READY",
6904 "data": { "device": "drive0", "type": "mirror", "speed": 0,
6905 "len": 2097152, "offset": 2097152 }
6906 "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
6907
6908 BLOCK_JOB_PENDING (Event) Emitted when a block job is awaiting
6909 explicit authorization to finalize graph changes via
6910 "block-job-finalize". If this job is part of a transaction, it will not
6911 emit this event until the transaction has converged first.
6912
6913 Arguments:
6914
6915 "type: JobType"
6916 job type
6917
6918 "id: string"
6919 The job identifier.
6920
6921 Since: 2.12
6922
6923 Example:
6924
6925 <- { "event": "BLOCK_JOB_WAITING",
6926 "data": { "device": "drive0", "type": "mirror" },
6927 "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
6928
6929 PreallocMode (Enum)
6930
6931 Preallocation mode of QEMU image file
6932
6933 Values:
6934
6935 "off"
6936 no preallocation
6937
6938 "metadata"
6939 preallocate only for metadata
6940
6941 "falloc"
6942 like "full" preallocation but allocate disk space by
6943 posix_fallocate() rather than writing zeros.
6944
6945 "full"
6946 preallocate all data by writing zeros to device to ensure disk
6947 space is really available. "full" preallocation also sets up
6948 metadata correctly.
6949
6950 Since: 2.2
6951
6952 BLOCK_WRITE_THRESHOLD (Event) Emitted when writes on block device
6953 reaches or exceeds the configured write threshold. For thin-provisioned
6954 devices, this means the device should be extended to avoid pausing for
6955 disk exhaustion. The event is one shot. Once triggered, it needs to be
6956 re-registered with another block-set-write-threshold command.
6957
6958 Arguments:
6959
6960 "node-name: string"
6961 graph node name on which the threshold was exceeded.
6962
6963 "amount-exceeded: int"
6964 amount of data which exceeded the threshold, in bytes.
6965
6966 "write-threshold: int"
6967 last configured threshold, in bytes.
6968
6969 Since: 2.3
6970
6971 block-set-write-threshold (Command) Change the write threshold for a
6972 block drive. An event will be delivered if a write to this block drive
6973 crosses the configured threshold. The threshold is an offset, thus
6974 must be non-negative. Default is no write threshold. Setting the
6975 threshold to zero disables it.
6976
6977 This is useful to transparently resize thin-provisioned drives without
6978 the guest OS noticing.
6979
6980 Arguments:
6981
6982 "node-name: string"
6983 graph node name on which the threshold must be set.
6984
6985 "write-threshold: int"
6986 configured threshold for the block device, bytes. Use 0 to disable
6987 the threshold.
6988
6989 Since: 2.3
6990
6991 Example:
6992
6993 -> { "execute": "block-set-write-threshold",
6994 "arguments": { "node-name": "mydev",
6995 "write-threshold": 17179869184 } }
6996 <- { "return": {} }
6997
6998 x-blockdev-change (Command) Dynamically reconfigure the block driver
6999 state graph. It can be used to add, remove, insert or replace a graph
7000 node. Currently only the Quorum driver implements this feature to add
7001 or remove its child. This is useful to fix a broken quorum child.
7002
7003 If "node" is specified, it will be inserted under "parent". "child" may
7004 not be specified in this case. If both "parent" and "child" are
7005 specified but "node" is not, "child" will be detached from "parent".
7006
7007 Arguments:
7008
7009 "parent: string"
7010 the id or name of the parent node.
7011
7012 "child: string" (optional)
7013 the name of a child under the given parent node.
7014
7015 "node: string" (optional)
7016 the name of the node that will be added.
7017
7018 Note: this command is experimental, and its API is not stable. It does
7019 not support all kinds of operations, all kinds of children, nor all
7020 block drivers.
7021
7022 FIXME Removing children from a quorum node means introducing gaps in
7023 the child indices. This cannot be represented in the 'children' list of
7024 BlockdevOptionsQuorum, as returned by .bdrv_refresh_filename().
7025
7026 Warning: The data in a new quorum child MUST be consistent with that of
7027 the rest of the array.
7028
7029 Since: 2.7
7030
7031 Example:
7032
7033 1. Add a new node to a quorum
7034 -> { "execute": "blockdev-add",
7035 "arguments": {
7036 "driver": "raw",
7037 "node-name": "new_node",
7038 "file": { "driver": "file",
7039 "filename": "test.raw" } } }
7040 <- { "return": {} }
7041 -> { "execute": "x-blockdev-change",
7042 "arguments": { "parent": "disk1",
7043 "node": "new_node" } }
7044 <- { "return": {} }
7045
7046 2. Delete a quorum's node
7047 -> { "execute": "x-blockdev-change",
7048 "arguments": { "parent": "disk1",
7049 "child": "children.1" } }
7050 <- { "return": {} }
7051
7052 x-blockdev-set-iothread (Command) Move "node" and its children into
7053 the "iothread". If "iothread" is null then move "node" and its
7054 children into the main loop.
7055
7056 The node must not be attached to a BlockBackend.
7057
7058 Arguments:
7059
7060 "node-name: string"
7061 the name of the block driver node
7062
7063 "iothread: StrOrNull"
7064 the name of the IOThread object or null for the main loop
7065
7066 "force: boolean" (optional)
7067 true if the node and its children should be moved when a
7068 BlockBackend is already attached
7069
7070 Note: this command is experimental and intended for test cases that
7071 need control over IOThreads only.
7072
7073 Since: 2.12
7074
7075 Example:
7076
7077 1. Move a node into an IOThread
7078 -> { "execute": "x-blockdev-set-iothread",
7079 "arguments": { "node-name": "disk1",
7080 "iothread": "iothread0" } }
7081 <- { "return": {} }
7082
7083 2. Move a node into the main loop
7084 -> { "execute": "x-blockdev-set-iothread",
7085 "arguments": { "node-name": "disk1",
7086 "iothread": null } }
7087 <- { "return": {} }
7088
7089 Additional block stuff (VM related)
7090
7091 BiosAtaTranslation (Enum)
7092
7093 Policy that BIOS should use to interpret cylinder/head/sector
7094 addresses. Note that Bochs BIOS and SeaBIOS will not actually
7095 translate logical CHS to physical; instead, they will use logical block
7096 addressing.
7097
7098 Values:
7099
7100 "auto"
7101 If cylinder/heads/sizes are passed, choose between none and LBA
7102 depending on the size of the disk. If they are not passed, choose
7103 none if QEMU can guess that the disk had 16 or fewer heads, large
7104 if QEMU can guess that the disk had 131072 or fewer tracks across
7105 all heads (i.e. cylinders*heads<131072), otherwise LBA.
7106
7107 "none"
7108 The physical disk geometry is equal to the logical geometry.
7109
7110 "lba"
7111 Assume 63 sectors per track and one of 16, 32, 64, 128 or 255 heads
7112 (if fewer than 255 are enough to cover the whole disk with 1024
7113 cylinders/head). The number of cylinders/head is then computed
7114 based on the number of sectors and heads.
7115
7116 "large"
7117 The number of cylinders per head is scaled down to 1024 by
7118 correspondingly scaling up the number of heads.
7119
7120 "rechs"
7121 Same as "large", but first convert a 16-head geometry to 15-head,
7122 by proportionally scaling up the number of cylinders/head.
7123
7124 Since: 2.0
7125
7126 FloppyDriveType (Enum)
7127
7128 Type of Floppy drive to be emulated by the Floppy Disk Controller.
7129
7130 Values:
7131
7132 144 1.44MB 3.5" drive
7133
7134 288 2.88MB 3.5" drive
7135
7136 120 1.2MB 5.25" drive
7137
7138 "none"
7139 No drive connected
7140
7141 "auto"
7142 Automatically determined by inserted media at boot
7143
7144 Since: 2.6
7145
7146 BlockdevSnapshotInternal (Object)
7147
7148 Members:
7149
7150 "device: string"
7151 the device name or node-name of a root node to generate the
7152 snapshot from
7153
7154 "name: string"
7155 the name of the internal snapshot to be created
7156
7157 Notes: In transaction, if "name" is empty, or any snapshot matching
7158 "name" exists, the operation will fail. Only some image formats support
7159 it, for example, qcow2, rbd, and sheepdog.
7160
7161 Since: 1.7
7162
7163 PRManagerInfo (Object)
7164
7165 Information about a persistent reservation manager
7166
7167 Members:
7168
7169 "id: string"
7170 the identifier of the persistent reservation manager
7171
7172 "connected: boolean"
7173 true if the persistent reservation manager is connected to the
7174 underlying storage or helper
7175
7176 Since: 3.0
7177
7178 query-pr-managers (Command) Returns a list of information about each
7179 persistent reservation manager.
7180
7181 Returns: a list of "PRManagerInfo" for each persistent reservation
7182 manager
7183
7184 Since: 3.0
7185
7186 blockdev-snapshot-internal-sync (Command) Synchronously take an
7187 internal snapshot of a block device, when the format of the image used
7188 supports it. If the name is an empty string, or a snapshot with name
7189 already exists, the operation will fail.
7190
7191 For the arguments, see the documentation of BlockdevSnapshotInternal.
7192
7193 Returns: nothing on success
7194
7195 If "device" is not a valid block device, GenericError
7196
7197 If any snapshot matching "name" exists, or "name" is empty,
7198 GenericError
7199
7200 If the format of the image used does not support it,
7201 BlockFormatFeatureNotSupported
7202
7203 Since: 1.7
7204
7205 Example:
7206
7207 -> { "execute": "blockdev-snapshot-internal-sync",
7208 "arguments": { "device": "ide-hd0",
7209 "name": "snapshot0" }
7210 }
7211 <- { "return": {} }
7212
7213 blockdev-snapshot-delete-internal-sync (Command) Synchronously delete
7214 an internal snapshot of a block device, when the format of the image
7215 used support it. The snapshot is identified by name or id or both. One
7216 of the name or id is required. Return SnapshotInfo for the successfully
7217 deleted snapshot.
7218
7219 Arguments:
7220
7221 "device: string"
7222 the device name or node-name of a root node to delete the snapshot
7223 from
7224
7225 "id: string" (optional)
7226 optional the snapshot's ID to be deleted
7227
7228 "name: string" (optional)
7229 optional the snapshot's name to be deleted
7230
7231 Returns: SnapshotInfo on success If "device" is not a valid block
7232 device, GenericError If snapshot not found, GenericError If the format
7233 of the image used does not support it, BlockFormatFeatureNotSupported
7234 If "id" and "name" are both not specified, GenericError
7235
7236 Since: 1.7
7237
7238 Example:
7239
7240 -> { "execute": "blockdev-snapshot-delete-internal-sync",
7241 "arguments": { "device": "ide-hd0",
7242 "name": "snapshot0" }
7243 }
7244 <- { "return": {
7245 "id": "1",
7246 "name": "snapshot0",
7247 "vm-state-size": 0,
7248 "date-sec": 1000012,
7249 "date-nsec": 10,
7250 "vm-clock-sec": 100,
7251 "vm-clock-nsec": 20
7252 }
7253 }
7254
7255 eject (Command) Ejects a device from a removable drive.
7256
7257 Arguments:
7258
7259 "device: string" (optional)
7260 Block device name (deprecated, use "id" instead)
7261
7262 "id: string" (optional)
7263 The name or QOM path of the guest device (since: 2.8)
7264
7265 "force: boolean" (optional)
7266 If true, eject regardless of whether the drive is locked. If not
7267 specified, the default value is false.
7268
7269 Returns: Nothing on success
7270
7271 If "device" is not a valid block device, DeviceNotFound
7272
7273 Notes: Ejecting a device with no media results in success
7274
7275 Since: 0.14.0
7276
7277 Example:
7278
7279 -> { "execute": "eject", "arguments": { "id": "ide1-0-1" } }
7280 <- { "return": {} }
7281
7282 nbd-server-start (Command) Start an NBD server listening on the given
7283 host and port. Block devices can then be exported using
7284 "nbd-server-add". The NBD server will present them as named exports;
7285 for example, another QEMU instance could refer to them as
7286 "nbd:HOST:PORT:exportname=NAME".
7287
7288 Arguments:
7289
7290 "addr: SocketAddressLegacy"
7291 Address on which to listen.
7292
7293 "tls-creds: string" (optional)
7294 ID of the TLS credentials object (since 2.6).
7295
7296 "tls-authz: string" (optional)
7297 ID of the QAuthZ authorization object used to validate the client's
7298 x509 distinguished name. This object is is only resolved at time of
7299 use, so can be deleted and recreated on the fly while the NBD
7300 server is active. If missing, it will default to denying access
7301 (since 4.0).
7302
7303 Returns: error if the server is already running.
7304
7305 Since: 1.3.0
7306
7307 nbd-server-add (Command) Export a block node to QEMU's embedded NBD
7308 server.
7309
7310 Arguments:
7311
7312 "device: string"
7313 The device name or node name of the node to be exported
7314
7315 "name: string" (optional)
7316 Export name. If unspecified, the "device" parameter is used as the
7317 export name. (Since 2.12)
7318
7319 "writable: boolean" (optional)
7320 Whether clients should be able to write to the device via the NBD
7321 connection (default false).
7322
7323 "bitmap: string" (optional)
7324 Also export the dirty bitmap reachable from "device", so the NBD
7325 client can use NBD_OPT_SET_META_CONTEXT with
7326 "qemu:dirty-bitmap:NAME" to inspect the bitmap. (since 4.0)
7327
7328 Returns: error if the server is not running, or export with the same
7329 name already exists.
7330
7331 Since: 1.3.0
7332
7333 NbdServerRemoveMode (Enum)
7334
7335 Mode for removing an NBD export.
7336
7337 Values:
7338
7339 "safe"
7340 Remove export if there are no existing connections, fail otherwise.
7341
7342 "hard"
7343 Drop all connections immediately and remove export.
7344
7345 Potential additional modes to be added in the future:
7346
7347 hide: Just hide export from new clients, leave existing connections as
7348 is. Remove export after all clients are disconnected.
7349
7350 soft: Hide export from new clients, answer with ESHUTDOWN for all
7351 further requests from existing clients.
7352
7353 Since: 2.12
7354
7355 nbd-server-remove (Command) Remove NBD export by name.
7356
7357 Arguments:
7358
7359 "name: string"
7360 Export name.
7361
7362 "mode: NbdServerRemoveMode" (optional)
7363 Mode of command operation. See "NbdServerRemoveMode" description.
7364 Default is 'safe'.
7365
7366 Returns: error if
7367
7368 - the server is not running
7369
7370 - export is not found
7371
7372 - mode is 'safe' and there are existing connections
7373
7374 Since: 2.12
7375
7376 nbd-server-stop (Command) Stop QEMU's embedded NBD server, and
7377 unregister all devices previously added via "nbd-server-add".
7378
7379 Since: 1.3.0
7380
7381 DEVICE_TRAY_MOVED (Event) Emitted whenever the tray of a removable
7382 device is moved by the guest or by HMP/QMP commands
7383
7384 Arguments:
7385
7386 "device: string"
7387 Block device name. This is always present for compatibility
7388 reasons, but it can be empty ("") if the image does not have a
7389 device name associated.
7390
7391 "id: string"
7392 The name or QOM path of the guest device (since 2.8)
7393
7394 "tray-open: boolean"
7395 true if the tray has been opened or false if it has been closed
7396
7397 Since: 1.1
7398
7399 Example:
7400
7401 <- { "event": "DEVICE_TRAY_MOVED",
7402 "data": { "device": "ide1-cd0",
7403 "id": "/machine/unattached/device[22]",
7404 "tray-open": true
7405 },
7406 "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
7407
7408 PR_MANAGER_STATUS_CHANGED (Event) Emitted whenever the connected
7409 status of a persistent reservation manager changes.
7410
7411 Arguments:
7412
7413 "id: string"
7414 The id of the PR manager object
7415
7416 "connected: boolean"
7417 true if the PR manager is connected to a backend
7418
7419 Since: 3.0
7420
7421 Example:
7422
7423 <- { "event": "PR_MANAGER_STATUS_CHANGED",
7424 "data": { "id": "pr-helper0",
7425 "connected": true
7426 },
7427 "timestamp": { "seconds": 1519840375, "microseconds": 450486 } }
7428
7429 QuorumOpType (Enum)
7430
7431 An enumeration of the quorum operation types
7432
7433 Values:
7434
7435 "read"
7436 read operation
7437
7438 "write"
7439 write operation
7440
7441 "flush"
7442 flush operation
7443
7444 Since: 2.6
7445
7446 QUORUM_FAILURE (Event) Emitted by the Quorum block driver if it fails
7447 to establish a quorum
7448
7449 Arguments:
7450
7451 "reference: string"
7452 device name if defined else node name
7453
7454 "sector-num: int"
7455 number of the first sector of the failed read operation
7456
7457 "sectors-count: int"
7458 failed read operation sector count
7459
7460 Note: This event is rate-limited.
7461
7462 Since: 2.0
7463
7464 Example:
7465
7466 <- { "event": "QUORUM_FAILURE",
7467 "data": { "reference": "usr1", "sector-num": 345435, "sectors-count": 5 },
7468 "timestamp": { "seconds": 1344522075, "microseconds": 745528 } }
7469
7470 QUORUM_REPORT_BAD (Event) Emitted to report a corruption of a Quorum
7471 file
7472
7473 Arguments:
7474
7475 "type: QuorumOpType"
7476 quorum operation type (Since 2.6)
7477
7478 "error: string" (optional)
7479 error message. Only present on failure. This field contains a
7480 human-readable error message. There are no semantics other than
7481 that the block layer reported an error and clients should not try
7482 to interpret the error string.
7483
7484 "node-name: string"
7485 the graph node name of the block driver state
7486
7487 "sector-num: int"
7488 number of the first sector of the failed read operation
7489
7490 "sectors-count: int"
7491 failed read operation sector count
7492
7493 Note: This event is rate-limited.
7494
7495 Since: 2.0
7496
7497 Example:
7498
7499 1. Read operation
7500
7501 { "event": "QUORUM_REPORT_BAD",
7502 "data": { "node-name": "node0", "sector-num": 345435, "sectors-count": 5,
7503 "type": "read" },
7504 "timestamp": { "seconds": 1344522075, "microseconds": 745528 } }
7505
7506 2. Flush operation
7507
7508 { "event": "QUORUM_REPORT_BAD",
7509 "data": { "node-name": "node0", "sector-num": 0, "sectors-count": 2097120,
7510 "type": "flush", "error": "Broken pipe" },
7511 "timestamp": { "seconds": 1456406829, "microseconds": 291763 } }
7512
7513 Character devices
7514 ChardevInfo (Object)
7515
7516 Information about a character device.
7517
7518 Members:
7519
7520 "label: string"
7521 the label of the character device
7522
7523 "filename: string"
7524 the filename of the character device
7525
7526 "frontend-open: boolean"
7527 shows whether the frontend device attached to this backend (eg.
7528 with the chardev=... option) is in open or closed state (since 2.1)
7529
7530 Notes: "filename" is encoded using the QEMU command line character
7531 device encoding. See the QEMU man page for details.
7532
7533 Since: 0.14.0
7534
7535 query-chardev (Command) Returns information about current character
7536 devices.
7537
7538 Returns: a list of "ChardevInfo"
7539
7540 Since: 0.14.0
7541
7542 Example:
7543
7544 -> { "execute": "query-chardev" }
7545 <- {
7546 "return": [
7547 {
7548 "label": "charchannel0",
7549 "filename": "unix:/var/lib/libvirt/qemu/seabios.rhel6.agent,server",
7550 "frontend-open": false
7551 },
7552 {
7553 "label": "charmonitor",
7554 "filename": "unix:/var/lib/libvirt/qemu/seabios.rhel6.monitor,server",
7555 "frontend-open": true
7556 },
7557 {
7558 "label": "charserial0",
7559 "filename": "pty:/dev/pts/2",
7560 "frontend-open": true
7561 }
7562 ]
7563 }
7564
7565 ChardevBackendInfo (Object)
7566
7567 Information about a character device backend
7568
7569 Members:
7570
7571 "name: string"
7572 The backend name
7573
7574 Since: 2.0
7575
7576 query-chardev-backends (Command) Returns information about character
7577 device backends.
7578
7579 Returns: a list of "ChardevBackendInfo"
7580
7581 Since: 2.0
7582
7583 Example:
7584
7585 -> { "execute": "query-chardev-backends" }
7586 <- {
7587 "return":[
7588 {
7589 "name":"udp"
7590 },
7591 {
7592 "name":"tcp"
7593 },
7594 {
7595 "name":"unix"
7596 },
7597 {
7598 "name":"spiceport"
7599 }
7600 ]
7601 }
7602
7603 DataFormat (Enum)
7604
7605 An enumeration of data format.
7606
7607 Values:
7608
7609 "utf8"
7610 Data is a UTF-8 string (RFC 3629)
7611
7612 "base64"
7613 Data is Base64 encoded binary (RFC 3548)
7614
7615 Since: 1.4
7616
7617 ringbuf-write (Command) Write to a ring buffer character device.
7618
7619 Arguments:
7620
7621 "device: string"
7622 the ring buffer character device name
7623
7624 "data: string"
7625 data to write
7626
7627 "format: DataFormat" (optional)
7628 data encoding (default 'utf8').
7629
7630 - base64: data must be base64 encoded text. Its binary decoding
7631 gets written.
7632
7633 - utf8: data's UTF-8 encoding is written
7634
7635 - data itself is always Unicode regardless of format, like any
7636 other string.
7637
7638 Returns: Nothing on success
7639
7640 Since: 1.4
7641
7642 Example:
7643
7644 -> { "execute": "ringbuf-write",
7645 "arguments": { "device": "foo",
7646 "data": "abcdefgh",
7647 "format": "utf8" } }
7648 <- { "return": {} }
7649
7650 ringbuf-read (Command) Read from a ring buffer character device.
7651
7652 Arguments:
7653
7654 "device: string"
7655 the ring buffer character device name
7656
7657 "size: int"
7658 how many bytes to read at most
7659
7660 "format: DataFormat" (optional)
7661 data encoding (default 'utf8').
7662
7663 - base64: the data read is returned in base64 encoding.
7664
7665 - utf8: the data read is interpreted as UTF-8. Bug: can screw up
7666 when the buffer contains invalid UTF-8 sequences, NUL
7667 characters, after the ring buffer lost data, and when reading
7668 stops because the size limit is reached.
7669
7670 - The return value is always Unicode regardless of format, like
7671 any other string.
7672
7673 Returns: data read from the device
7674
7675 Since: 1.4
7676
7677 Example:
7678
7679 -> { "execute": "ringbuf-read",
7680 "arguments": { "device": "foo",
7681 "size": 1000,
7682 "format": "utf8" } }
7683 <- { "return": "abcdefgh" }
7684
7685 ChardevCommon (Object)
7686
7687 Configuration shared across all chardev backends
7688
7689 Members:
7690
7691 "logfile: string" (optional)
7692 The name of a logfile to save output
7693
7694 "logappend: boolean" (optional)
7695 true to append instead of truncate (default to false to truncate)
7696
7697 Since: 2.6
7698
7699 ChardevFile (Object)
7700
7701 Configuration info for file chardevs.
7702
7703 Members:
7704
7705 "in: string" (optional)
7706 The name of the input file
7707
7708 "out: string"
7709 The name of the output file
7710
7711 "append: boolean" (optional)
7712 Open the file in append mode (default false to truncate) (Since
7713 2.6)
7714
7715 The members of "ChardevCommon"
7716
7717 Since: 1.4
7718
7719 ChardevHostdev (Object)
7720
7721 Configuration info for device and pipe chardevs.
7722
7723 Members:
7724
7725 "device: string"
7726 The name of the special file for the device, i.e. /dev/ttyS0 on
7727 Unix or COM1: on Windows
7728
7729 The members of "ChardevCommon"
7730
7731 Since: 1.4
7732
7733 ChardevSocket (Object)
7734
7735 Configuration info for (stream) socket chardevs.
7736
7737 Members:
7738
7739 "addr: SocketAddressLegacy"
7740 socket address to listen on (server=true) or connect to
7741 (server=false)
7742
7743 "tls-creds: string" (optional)
7744 the ID of the TLS credentials object (since 2.6)
7745
7746 "tls-authz: string" (optional)
7747 the ID of the QAuthZ authorization object against which the
7748 client's x509 distinguished name will be validated. This object is
7749 only resolved at time of use, so can be deleted and recreated on
7750 the fly while the chardev server is active. If missing, it will
7751 default to denying access (since 4.0)
7752
7753 "server: boolean" (optional)
7754 create server socket (default: true)
7755
7756 "wait: boolean" (optional)
7757 wait for incoming connection on server sockets (default: false).
7758
7759 "nodelay: boolean" (optional)
7760 set TCP_NODELAY socket option (default: false)
7761
7762 "telnet: boolean" (optional)
7763 enable telnet protocol on server sockets (default: false)
7764
7765 "tn3270: boolean" (optional)
7766 enable tn3270 protocol on server sockets (default: false) (Since:
7767 2.10)
7768
7769 "websocket: boolean" (optional)
7770 enable websocket protocol on server sockets (default: false)
7771 (Since: 3.1)
7772
7773 "reconnect: int" (optional)
7774 For a client socket, if a socket is disconnected, then attempt a
7775 reconnect after the given number of seconds. Setting this to zero
7776 disables this function. (default: 0) (Since: 2.2)
7777
7778 The members of "ChardevCommon"
7779
7780 Since: 1.4
7781
7782 ChardevUdp (Object)
7783
7784 Configuration info for datagram socket chardevs.
7785
7786 Members:
7787
7788 "remote: SocketAddressLegacy"
7789 remote address
7790
7791 "local: SocketAddressLegacy" (optional)
7792 local address
7793
7794 The members of "ChardevCommon"
7795
7796 Since: 1.5
7797
7798 ChardevMux (Object)
7799
7800 Configuration info for mux chardevs.
7801
7802 Members:
7803
7804 "chardev: string"
7805 name of the base chardev.
7806
7807 The members of "ChardevCommon"
7808
7809 Since: 1.5
7810
7811 ChardevStdio (Object)
7812
7813 Configuration info for stdio chardevs.
7814
7815 Members:
7816
7817 "signal: boolean" (optional)
7818 Allow signals (such as SIGINT triggered by ^C) be delivered to
7819 qemu. Default: true in -nographic mode, false otherwise.
7820
7821 The members of "ChardevCommon"
7822
7823 Since: 1.5
7824
7825 ChardevSpiceChannel (Object)
7826
7827 Configuration info for spice vm channel chardevs.
7828
7829 Members:
7830
7831 "type: string"
7832 kind of channel (for example vdagent).
7833
7834 The members of "ChardevCommon"
7835
7836 Since: 1.5
7837
7838 If: "defined(CONFIG_SPICE)"
7839
7840 ChardevSpicePort (Object)
7841
7842 Configuration info for spice port chardevs.
7843
7844 Members:
7845
7846 "fqdn: string"
7847 name of the channel (see docs/spice-port-fqdn.txt)
7848
7849 The members of "ChardevCommon"
7850
7851 Since: 1.5
7852
7853 If: "defined(CONFIG_SPICE)"
7854
7855 ChardevVC (Object)
7856
7857 Configuration info for virtual console chardevs.
7858
7859 Members:
7860
7861 "width: int" (optional)
7862 console width, in pixels
7863
7864 "height: int" (optional)
7865 console height, in pixels
7866
7867 "cols: int" (optional)
7868 console width, in chars
7869
7870 "rows: int" (optional)
7871 console height, in chars
7872
7873 The members of "ChardevCommon"
7874
7875 Since: 1.5
7876
7877 ChardevRingbuf (Object)
7878
7879 Configuration info for ring buffer chardevs.
7880
7881 Members:
7882
7883 "size: int" (optional)
7884 ring buffer size, must be power of two, default is 65536
7885
7886 The members of "ChardevCommon"
7887
7888 Since: 1.5
7889
7890 ChardevBackend (Object)
7891
7892 Configuration info for the new chardev backend.
7893
7894 Members:
7895
7896 "type"
7897 One of "file", "serial", "parallel", "pipe", "socket", "udp",
7898 "pty", "null", "mux", "msmouse", "wctablet", "braille", "testdev",
7899 "stdio", "console", "spicevmc", "spiceport", "vc", "ringbuf",
7900 "memory"
7901
7902 "data: ChardevFile" when "type" is "file"
7903 "data: ChardevHostdev" when "type" is "serial"
7904 "data: ChardevHostdev" when "type" is "parallel"
7905 "data: ChardevHostdev" when "type" is "pipe"
7906 "data: ChardevSocket" when "type" is "socket"
7907 "data: ChardevUdp" when "type" is "udp"
7908 "data: ChardevCommon" when "type" is "pty"
7909 "data: ChardevCommon" when "type" is "null"
7910 "data: ChardevMux" when "type" is "mux"
7911 "data: ChardevCommon" when "type" is "msmouse"
7912 "data: ChardevCommon" when "type" is "wctablet"
7913 "data: ChardevCommon" when "type" is "braille"
7914 "data: ChardevCommon" when "type" is "testdev"
7915 "data: ChardevStdio" when "type" is "stdio"
7916 "data: ChardevCommon" when "type" is "console"
7917 "data: ChardevSpiceChannel" when "type" is "spicevmc" (If:
7918 "defined(CONFIG_SPICE)")
7919 "data: ChardevSpicePort" when "type" is "spiceport" (If:
7920 "defined(CONFIG_SPICE)")
7921 "data: ChardevVC" when "type" is "vc"
7922 "data: ChardevRingbuf" when "type" is "ringbuf"
7923 "data: ChardevRingbuf" when "type" is "memory"
7924
7925 Since: 1.4 (testdev since 2.2, wctablet since 2.9)
7926
7927 ChardevReturn (Object)
7928
7929 Return info about the chardev backend just created.
7930
7931 Members:
7932
7933 "pty: string" (optional)
7934 name of the slave pseudoterminal device, present if and only if a
7935 chardev of type 'pty' was created
7936
7937 Since: 1.4
7938
7939 chardev-add (Command) Add a character device backend
7940
7941 Arguments:
7942
7943 "id: string"
7944 the chardev's ID, must be unique
7945
7946 "backend: ChardevBackend"
7947 backend type and parameters
7948
7949 Returns: ChardevReturn.
7950
7951 Since: 1.4
7952
7953 Example:
7954
7955 -> { "execute" : "chardev-add",
7956 "arguments" : { "id" : "foo",
7957 "backend" : { "type" : "null", "data" : {} } } }
7958 <- { "return": {} }
7959
7960 -> { "execute" : "chardev-add",
7961 "arguments" : { "id" : "bar",
7962 "backend" : { "type" : "file",
7963 "data" : { "out" : "/tmp/bar.log" } } } }
7964 <- { "return": {} }
7965
7966 -> { "execute" : "chardev-add",
7967 "arguments" : { "id" : "baz",
7968 "backend" : { "type" : "pty", "data" : {} } } }
7969 <- { "return": { "pty" : "/dev/pty/42" } }
7970
7971 chardev-change (Command) Change a character device backend
7972
7973 Arguments:
7974
7975 "id: string"
7976 the chardev's ID, must exist
7977
7978 "backend: ChardevBackend"
7979 new backend type and parameters
7980
7981 Returns: ChardevReturn.
7982
7983 Since: 2.10
7984
7985 Example:
7986
7987 -> { "execute" : "chardev-change",
7988 "arguments" : { "id" : "baz",
7989 "backend" : { "type" : "pty", "data" : {} } } }
7990 <- { "return": { "pty" : "/dev/pty/42" } }
7991
7992 -> {"execute" : "chardev-change",
7993 "arguments" : {
7994 "id" : "charchannel2",
7995 "backend" : {
7996 "type" : "socket",
7997 "data" : {
7998 "addr" : {
7999 "type" : "unix" ,
8000 "data" : {
8001 "path" : "/tmp/charchannel2.socket"
8002 }
8003 },
8004 "server" : true,
8005 "wait" : false }}}}
8006 <- {"return": {}}
8007
8008 chardev-remove (Command) Remove a character device backend
8009
8010 Arguments:
8011
8012 "id: string"
8013 the chardev's ID, must exist and not be in use
8014
8015 Returns: Nothing on success
8016
8017 Since: 1.4
8018
8019 Example:
8020
8021 -> { "execute": "chardev-remove", "arguments": { "id" : "foo" } }
8022 <- { "return": {} }
8023
8024 chardev-send-break (Command) Send a break to a character device
8025
8026 Arguments:
8027
8028 "id: string"
8029 the chardev's ID, must exist
8030
8031 Returns: Nothing on success
8032
8033 Since: 2.10
8034
8035 Example:
8036
8037 -> { "execute": "chardev-send-break", "arguments": { "id" : "foo" } }
8038 <- { "return": {} }
8039
8040 VSERPORT_CHANGE (Event) Emitted when the guest opens or closes a
8041 virtio-serial port.
8042
8043 Arguments:
8044
8045 "id: string"
8046 device identifier of the virtio-serial port
8047
8048 "open: boolean"
8049 true if the guest has opened the virtio-serial port
8050
8051 Since: 2.1
8052
8053 Example:
8054
8055 <- { "event": "VSERPORT_CHANGE",
8056 "data": { "id": "channel0", "open": true },
8057 "timestamp": { "seconds": 1401385907, "microseconds": 422329 } }
8058
8059 Dump guest memory
8060 DumpGuestMemoryFormat (Enum)
8061
8062 An enumeration of guest-memory-dump's format.
8063
8064 Values:
8065
8066 "elf"
8067 elf format
8068
8069 "kdump-zlib"
8070 kdump-compressed format with zlib-compressed
8071
8072 "kdump-lzo"
8073 kdump-compressed format with lzo-compressed
8074
8075 "kdump-snappy"
8076 kdump-compressed format with snappy-compressed
8077
8078 "win-dmp"
8079 Windows full crashdump format, can be used instead of ELF
8080 converting (since 2.13)
8081
8082 Since: 2.0
8083
8084 dump-guest-memory (Command) Dump guest's memory to vmcore. It is a
8085 synchronous operation that can take very long depending on the amount
8086 of guest memory.
8087
8088 Arguments:
8089
8090 "paging: boolean"
8091 if true, do paging to get guest's memory mapping. This allows using
8092 gdb to process the core file.
8093
8094 IMPORTANT: this option can make QEMU allocate several gigabytes of
8095 RAM. This can happen for a large guest, or a malicious guest
8096 pretending to be large.
8097
8098 Also, paging=true has the following limitations:
8099
8100 1. The guest may be in a catastrophic state or can have corrupted
8101 memory, which cannot be trusted
8102
8103 2. The guest can be in real-mode even if paging is enabled. For
8104 example, the guest uses ACPI to sleep, and ACPI sleep state
8105 goes in real-mode
8106
8107 3. Currently only supported on i386 and x86_64.
8108
8109 "protocol: string"
8110 the filename or file descriptor of the vmcore. The supported
8111 protocols are:
8112
8113 1. file: the protocol starts with "file:", and the following
8114 string is the file's path.
8115
8116 2. fd: the protocol starts with "fd:", and the following string is
8117 the fd's name.
8118
8119 "detach: boolean" (optional)
8120 if true, QMP will return immediately rather than waiting for the
8121 dump to finish. The user can track progress using "query-dump".
8122 (since 2.6).
8123
8124 "begin: int" (optional)
8125 if specified, the starting physical address.
8126
8127 "length: int" (optional)
8128 if specified, the memory size, in bytes. If you don't want to dump
8129 all guest's memory, please specify the start "begin" and "length"
8130
8131 "format: DumpGuestMemoryFormat" (optional)
8132 if specified, the format of guest memory dump. But non-elf format
8133 is conflict with paging and filter, ie. "paging", "begin" and
8134 "length" is not allowed to be specified with non-elf "format" at
8135 the same time (since 2.0)
8136
8137 Note: All boolean arguments default to false
8138
8139 Returns: nothing on success
8140
8141 Since: 1.2
8142
8143 Example:
8144
8145 -> { "execute": "dump-guest-memory",
8146 "arguments": { "protocol": "fd:dump" } }
8147 <- { "return": {} }
8148
8149 DumpStatus (Enum)
8150
8151 Describe the status of a long-running background guest memory dump.
8152
8153 Values:
8154
8155 "none"
8156 no dump-guest-memory has started yet.
8157
8158 "active"
8159 there is one dump running in background.
8160
8161 "completed"
8162 the last dump has finished successfully.
8163
8164 "failed"
8165 the last dump has failed.
8166
8167 Since: 2.6
8168
8169 DumpQueryResult (Object)
8170
8171 The result format for 'query-dump'.
8172
8173 Members:
8174
8175 "status: DumpStatus"
8176 enum of "DumpStatus", which shows current dump status
8177
8178 "completed: int"
8179 bytes written in latest dump (uncompressed)
8180
8181 "total: int"
8182 total bytes to be written in latest dump (uncompressed)
8183
8184 Since: 2.6
8185
8186 query-dump (Command) Query latest dump status.
8187
8188 Returns: A "DumpStatus" object showing the dump status.
8189
8190 Since: 2.6
8191
8192 Example:
8193
8194 -> { "execute": "query-dump" }
8195 <- { "return": { "status": "active", "completed": 1024000,
8196 "total": 2048000 } }
8197
8198 DUMP_COMPLETED (Event) Emitted when background dump has completed
8199
8200 Arguments:
8201
8202 "result: DumpQueryResult"
8203 final dump status
8204
8205 "error: string" (optional)
8206 human-readable error string that provides hint on why dump failed.
8207 Only presents on failure. The user should not try to interpret the
8208 error string.
8209
8210 Since: 2.6
8211
8212 Example:
8213
8214 { "event": "DUMP_COMPLETED",
8215 "data": {"result": {"total": 1090650112, "status": "completed",
8216 "completed": 1090650112} } }
8217
8218 DumpGuestMemoryCapability (Object)
8219
8220 A list of the available formats for dump-guest-memory
8221
8222 Members:
8223
8224 "formats: array of DumpGuestMemoryFormat"
8225 Not documented
8226
8227 Since: 2.0
8228
8229 query-dump-guest-memory-capability (Command) Returns the available
8230 formats for dump-guest-memory
8231
8232 Returns: A "DumpGuestMemoryCapability" object listing available formats
8233 for dump-guest-memory
8234
8235 Since: 2.0
8236
8237 Example:
8238
8239 -> { "execute": "query-dump-guest-memory-capability" }
8240 <- { "return": { "formats":
8241 ["elf", "kdump-zlib", "kdump-lzo", "kdump-snappy"] }
8242
8243 Net devices
8244 set_link (Command) Sets the link status of a virtual network adapter.
8245
8246 Arguments:
8247
8248 "name: string"
8249 the device name of the virtual network adapter
8250
8251 "up: boolean"
8252 true to set the link status to be up
8253
8254 Returns: Nothing on success If "name" is not a valid network device,
8255 DeviceNotFound
8256
8257 Since: 0.14.0
8258
8259 Notes: Not all network adapters support setting link status. This
8260 command will succeed even if the network adapter does not support link
8261 status notification.
8262
8263 Example:
8264
8265 -> { "execute": "set_link",
8266 "arguments": { "name": "e1000.0", "up": false } }
8267 <- { "return": {} }
8268
8269 netdev_add (Command) Add a network backend.
8270
8271 Arguments:
8272
8273 "type: string"
8274 the type of network backend. Possible values are listed in
8275 NetClientDriver (excluding 'none' and 'nic')
8276
8277 "id: string"
8278 the name of the new network backend
8279
8280 Additional arguments depend on the type.
8281
8282 TODO: This command effectively bypasses QAPI completely due to its
8283 "additional arguments" business. It shouldn't have been added to the
8284 schema in this form. It should be qapified properly, or replaced by a
8285 properly qapified command.
8286
8287 Since: 0.14.0
8288
8289 Returns: Nothing on success If "type" is not a valid network backend,
8290 DeviceNotFound
8291
8292 Example:
8293
8294 -> { "execute": "netdev_add",
8295 "arguments": { "type": "user", "id": "netdev1",
8296 "dnssearch": "example.org" } }
8297 <- { "return": {} }
8298
8299 netdev_del (Command) Remove a network backend.
8300
8301 Arguments:
8302
8303 "id: string"
8304 the name of the network backend to remove
8305
8306 Returns: Nothing on success If "id" is not a valid network backend,
8307 DeviceNotFound
8308
8309 Since: 0.14.0
8310
8311 Example:
8312
8313 -> { "execute": "netdev_del", "arguments": { "id": "netdev1" } }
8314 <- { "return": {} }
8315
8316 NetLegacyNicOptions (Object)
8317
8318 Create a new Network Interface Card.
8319
8320 Members:
8321
8322 "netdev: string" (optional)
8323 id of -netdev to connect to
8324
8325 "macaddr: string" (optional)
8326 MAC address
8327
8328 "model: string" (optional)
8329 device model (e1000, rtl8139, virtio etc.)
8330
8331 "addr: string" (optional)
8332 PCI device address
8333
8334 "vectors: int" (optional)
8335 number of MSI-x vectors, 0 to disable MSI-X
8336
8337 Since: 1.2
8338
8339 NetdevUserOptions (Object)
8340
8341 Use the user mode network stack which requires no administrator
8342 privilege to run.
8343
8344 Members:
8345
8346 "hostname: string" (optional)
8347 client hostname reported by the builtin DHCP server
8348
8349 "restrict: boolean" (optional)
8350 isolate the guest from the host
8351
8352 "ipv4: boolean" (optional)
8353 whether to support IPv4, default true for enabled (since 2.6)
8354
8355 "ipv6: boolean" (optional)
8356 whether to support IPv6, default true for enabled (since 2.6)
8357
8358 "ip: string" (optional)
8359 legacy parameter, use net= instead
8360
8361 "net: string" (optional)
8362 IP network address that the guest will see, in the form
8363 addr[/netmask] The netmask is optional, and can be either in the
8364 form a.b.c.d or as a number of valid top-most bits. Default is
8365 10.0.2.0/24.
8366
8367 "host: string" (optional)
8368 guest-visible address of the host
8369
8370 "tftp: string" (optional)
8371 root directory of the built-in TFTP server
8372
8373 "bootfile: string" (optional)
8374 BOOTP filename, for use with tftp=
8375
8376 "dhcpstart: string" (optional)
8377 the first of the 16 IPs the built-in DHCP server can assign
8378
8379 "dns: string" (optional)
8380 guest-visible address of the virtual nameserver
8381
8382 "dnssearch: array of String" (optional)
8383 list of DNS suffixes to search, passed as DHCP option to the guest
8384
8385 "domainname: string" (optional)
8386 guest-visible domain name of the virtual nameserver (since 3.0)
8387
8388 "ipv6-prefix: string" (optional)
8389 IPv6 network prefix (default is fec0::) (since 2.6). The network
8390 prefix is given in the usual hexadecimal IPv6 address notation.
8391
8392 "ipv6-prefixlen: int" (optional)
8393 IPv6 network prefix length (default is 64) (since 2.6)
8394
8395 "ipv6-host: string" (optional)
8396 guest-visible IPv6 address of the host (since 2.6)
8397
8398 "ipv6-dns: string" (optional)
8399 guest-visible IPv6 address of the virtual nameserver (since 2.6)
8400
8401 "smb: string" (optional)
8402 root directory of the built-in SMB server
8403
8404 "smbserver: string" (optional)
8405 IP address of the built-in SMB server
8406
8407 "hostfwd: array of String" (optional)
8408 redirect incoming TCP or UDP host connections to guest endpoints
8409
8410 "guestfwd: array of String" (optional)
8411 forward guest TCP connections
8412
8413 "tftp-server-name: string" (optional)
8414 RFC2132 "TFTP server name" string (Since 3.1)
8415
8416 Since: 1.2
8417
8418 NetdevTapOptions (Object)
8419
8420 Used to configure a host TAP network interface backend.
8421
8422 Members:
8423
8424 "ifname: string" (optional)
8425 interface name
8426
8427 "fd: string" (optional)
8428 file descriptor of an already opened tap
8429
8430 "fds: string" (optional)
8431 multiple file descriptors of already opened multiqueue capable tap
8432
8433 "script: string" (optional)
8434 script to initialize the interface
8435
8436 "downscript: string" (optional)
8437 script to shut down the interface
8438
8439 "br: string" (optional)
8440 bridge name (since 2.8)
8441
8442 "helper: string" (optional)
8443 command to execute to configure bridge
8444
8445 "sndbuf: int" (optional)
8446 send buffer limit. Understands [TGMKkb] suffixes.
8447
8448 "vnet_hdr: boolean" (optional)
8449 enable the IFF_VNET_HDR flag on the tap interface
8450
8451 "vhost: boolean" (optional)
8452 enable vhost-net network accelerator
8453
8454 "vhostfd: string" (optional)
8455 file descriptor of an already opened vhost net device
8456
8457 "vhostfds: string" (optional)
8458 file descriptors of multiple already opened vhost net devices
8459
8460 "vhostforce: boolean" (optional)
8461 vhost on for non-MSIX virtio guests
8462
8463 "queues: int" (optional)
8464 number of queues to be created for multiqueue capable tap
8465
8466 "poll-us: int" (optional)
8467 maximum number of microseconds that could be spent on busy polling
8468 for tap (since 2.7)
8469
8470 Since: 1.2
8471
8472 NetdevSocketOptions (Object)
8473
8474 Socket netdevs are used to establish a network connection to another
8475 QEMU virtual machine via a TCP socket.
8476
8477 Members:
8478
8479 "fd: string" (optional)
8480 file descriptor of an already opened socket
8481
8482 "listen: string" (optional)
8483 port number, and optional hostname, to listen on
8484
8485 "connect: string" (optional)
8486 port number, and optional hostname, to connect to
8487
8488 "mcast: string" (optional)
8489 UDP multicast address and port number
8490
8491 "localaddr: string" (optional)
8492 source address and port for multicast and udp packets
8493
8494 "udp: string" (optional)
8495 UDP unicast address and port number
8496
8497 Since: 1.2
8498
8499 NetdevL2TPv3Options (Object)
8500
8501 Configure an Ethernet over L2TPv3 tunnel.
8502
8503 Members:
8504
8505 "src: string"
8506 source address
8507
8508 "dst: string"
8509 destination address
8510
8511 "srcport: string" (optional)
8512 source port - mandatory for udp, optional for ip
8513
8514 "dstport: string" (optional)
8515 destination port - mandatory for udp, optional for ip
8516
8517 "ipv6: boolean" (optional)
8518 force the use of ipv6
8519
8520 "udp: boolean" (optional)
8521 use the udp version of l2tpv3 encapsulation
8522
8523 "cookie64: boolean" (optional)
8524 use 64 bit coookies
8525
8526 "counter: boolean" (optional)
8527 have sequence counter
8528
8529 "pincounter: boolean" (optional)
8530 pin sequence counter to zero - workaround for buggy implementations
8531 or networks with packet reorder
8532
8533 "txcookie: int" (optional)
8534 32 or 64 bit transmit cookie
8535
8536 "rxcookie: int" (optional)
8537 32 or 64 bit receive cookie
8538
8539 "txsession: int"
8540 32 bit transmit session
8541
8542 "rxsession: int" (optional)
8543 32 bit receive session - if not specified set to the same value as
8544 transmit
8545
8546 "offset: int" (optional)
8547 additional offset - allows the insertion of additional application-
8548 specific data before the packet payload
8549
8550 Since: 2.1
8551
8552 NetdevVdeOptions (Object)
8553
8554 Connect to a vde switch running on the host.
8555
8556 Members:
8557
8558 "sock: string" (optional)
8559 socket path
8560
8561 "port: int" (optional)
8562 port number
8563
8564 "group: string" (optional)
8565 group owner of socket
8566
8567 "mode: int" (optional)
8568 permissions for socket
8569
8570 Since: 1.2
8571
8572 NetdevBridgeOptions (Object)
8573
8574 Connect a host TAP network interface to a host bridge device.
8575
8576 Members:
8577
8578 "br: string" (optional)
8579 bridge name
8580
8581 "helper: string" (optional)
8582 command to execute to configure bridge
8583
8584 Since: 1.2
8585
8586 NetdevHubPortOptions (Object)
8587
8588 Connect two or more net clients through a software hub.
8589
8590 Members:
8591
8592 "hubid: int"
8593 hub identifier number
8594
8595 "netdev: string" (optional)
8596 used to connect hub to a netdev instead of a device (since 2.12)
8597
8598 Since: 1.2
8599
8600 NetdevNetmapOptions (Object)
8601
8602 Connect a client to a netmap-enabled NIC or to a VALE switch port
8603
8604 Members:
8605
8606 "ifname: string"
8607 Either the name of an existing network interface supported by
8608 netmap, or the name of a VALE port (created on the fly). A VALE
8609 port name is in the form 'valeXXX:YYY', where XXX and YYY are non-
8610 negative integers. XXX identifies a switch and YYY identifies a
8611 port of the switch. VALE ports having the same XXX are therefore
8612 connected to the same switch.
8613
8614 "devname: string" (optional)
8615 path of the netmap device (default: '/dev/netmap').
8616
8617 Since: 2.0
8618
8619 NetdevVhostUserOptions (Object)
8620
8621 Vhost-user network backend
8622
8623 Members:
8624
8625 "chardev: string"
8626 name of a unix socket chardev
8627
8628 "vhostforce: boolean" (optional)
8629 vhost on for non-MSIX virtio guests (default: false).
8630
8631 "queues: int" (optional)
8632 number of queues to be created for multiqueue vhost-user (default:
8633 1) (Since 2.5)
8634
8635 Since: 2.1
8636
8637 NetClientDriver (Enum)
8638
8639 Available netdev drivers.
8640
8641 Values:
8642
8643 "none"
8644 Not documented
8645
8646 "nic"
8647 Not documented
8648
8649 "user"
8650 Not documented
8651
8652 "tap"
8653 Not documented
8654
8655 "l2tpv3"
8656 Not documented
8657
8658 "socket"
8659 Not documented
8660
8661 "vde"
8662 Not documented
8663
8664 "bridge"
8665 Not documented
8666
8667 "hubport"
8668 Not documented
8669
8670 "netmap"
8671 Not documented
8672
8673 "vhost-user"
8674 Not documented
8675
8676 Since: 2.7
8677
8678 'dump': dropped in 2.12
8679
8680 Netdev (Object)
8681
8682 Captures the configuration of a network device.
8683
8684 Members:
8685
8686 "id: string"
8687 identifier for monitor commands.
8688
8689 "type: NetClientDriver"
8690 Specify the driver used for interpreting remaining arguments.
8691
8692 The members of "NetLegacyNicOptions" when "type" is "nic"
8693 The members of "NetdevUserOptions" when "type" is "user"
8694 The members of "NetdevTapOptions" when "type" is "tap"
8695 The members of "NetdevL2TPv3Options" when "type" is "l2tpv3"
8696 The members of "NetdevSocketOptions" when "type" is "socket"
8697 The members of "NetdevVdeOptions" when "type" is "vde"
8698 The members of "NetdevBridgeOptions" when "type" is "bridge"
8699 The members of "NetdevHubPortOptions" when "type" is "hubport"
8700 The members of "NetdevNetmapOptions" when "type" is "netmap"
8701 The members of "NetdevVhostUserOptions" when "type" is "vhost-user"
8702
8703 Since: 1.2
8704
8705 'l2tpv3' - since 2.1
8706
8707 NetLegacy (Object)
8708
8709 Captures the configuration of a network device; legacy.
8710
8711 Members:
8712
8713 "id: string" (optional)
8714 identifier for monitor commands
8715
8716 "name: string" (optional)
8717 identifier for monitor commands, ignored if "id" is present
8718
8719 "opts: NetLegacyOptions"
8720 device type specific properties (legacy)
8721
8722 Since: 1.2
8723
8724 'vlan': dropped in 3.0
8725
8726 NetLegacyOptionsType (Enum)
8727
8728 Values:
8729
8730 "none"
8731 Not documented
8732
8733 "nic"
8734 Not documented
8735
8736 "user"
8737 Not documented
8738
8739 "tap"
8740 Not documented
8741
8742 "l2tpv3"
8743 Not documented
8744
8745 "socket"
8746 Not documented
8747
8748 "vde"
8749 Not documented
8750
8751 "bridge"
8752 Not documented
8753
8754 "netmap"
8755 Not documented
8756
8757 "vhost-user"
8758 Not documented
8759
8760 Since: 1.2
8761
8762 NetLegacyOptions (Object)
8763
8764 Like Netdev, but for use only by the legacy command line options
8765
8766 Members:
8767
8768 "type: NetLegacyOptionsType"
8769 Not documented
8770
8771 The members of "NetLegacyNicOptions" when "type" is "nic"
8772 The members of "NetdevUserOptions" when "type" is "user"
8773 The members of "NetdevTapOptions" when "type" is "tap"
8774 The members of "NetdevL2TPv3Options" when "type" is "l2tpv3"
8775 The members of "NetdevSocketOptions" when "type" is "socket"
8776 The members of "NetdevVdeOptions" when "type" is "vde"
8777 The members of "NetdevBridgeOptions" when "type" is "bridge"
8778 The members of "NetdevNetmapOptions" when "type" is "netmap"
8779 The members of "NetdevVhostUserOptions" when "type" is "vhost-user"
8780
8781 Since: 1.2
8782
8783 NetFilterDirection (Enum)
8784
8785 Indicates whether a netfilter is attached to a netdev's transmit queue
8786 or receive queue or both.
8787
8788 Values:
8789
8790 "all"
8791 the filter is attached both to the receive and the transmit queue
8792 of the netdev (default).
8793
8794 "rx"
8795 the filter is attached to the receive queue of the netdev, where it
8796 will receive packets sent to the netdev.
8797
8798 "tx"
8799 the filter is attached to the transmit queue of the netdev, where
8800 it will receive packets sent by the netdev.
8801
8802 Since: 2.5
8803
8804 RxState (Enum)
8805
8806 Packets receiving state
8807
8808 Values:
8809
8810 "normal"
8811 filter assigned packets according to the mac-table
8812
8813 "none"
8814 don't receive any assigned packet
8815
8816 "all"
8817 receive all assigned packets
8818
8819 Since: 1.6
8820
8821 RxFilterInfo (Object)
8822
8823 Rx-filter information for a NIC.
8824
8825 Members:
8826
8827 "name: string"
8828 net client name
8829
8830 "promiscuous: boolean"
8831 whether promiscuous mode is enabled
8832
8833 "multicast: RxState"
8834 multicast receive state
8835
8836 "unicast: RxState"
8837 unicast receive state
8838
8839 "vlan: RxState"
8840 vlan receive state (Since 2.0)
8841
8842 "broadcast-allowed: boolean"
8843 whether to receive broadcast
8844
8845 "multicast-overflow: boolean"
8846 multicast table is overflowed or not
8847
8848 "unicast-overflow: boolean"
8849 unicast table is overflowed or not
8850
8851 "main-mac: string"
8852 the main macaddr string
8853
8854 "vlan-table: array of int"
8855 a list of active vlan id
8856
8857 "unicast-table: array of string"
8858 a list of unicast macaddr string
8859
8860 "multicast-table: array of string"
8861 a list of multicast macaddr string
8862
8863 Since: 1.6
8864
8865 query-rx-filter (Command) Return rx-filter information for all NICs
8866 (or for the given NIC).
8867
8868 Arguments:
8869
8870 "name: string" (optional)
8871 net client name
8872
8873 Returns: list of "RxFilterInfo" for all NICs (or for the given NIC).
8874 Returns an error if the given "name" doesn't exist, or given NIC
8875 doesn't support rx-filter querying, or given net client isn't a NIC.
8876
8877 Since: 1.6
8878
8879 Example:
8880
8881 -> { "execute": "query-rx-filter", "arguments": { "name": "vnet0" } }
8882 <- { "return": [
8883 {
8884 "promiscuous": true,
8885 "name": "vnet0",
8886 "main-mac": "52:54:00:12:34:56",
8887 "unicast": "normal",
8888 "vlan": "normal",
8889 "vlan-table": [
8890 4,
8891 0
8892 ],
8893 "unicast-table": [
8894 ],
8895 "multicast": "normal",
8896 "multicast-overflow": false,
8897 "unicast-overflow": false,
8898 "multicast-table": [
8899 "01:00:5e:00:00:01",
8900 "33:33:00:00:00:01",
8901 "33:33:ff:12:34:56"
8902 ],
8903 "broadcast-allowed": false
8904 }
8905 ]
8906 }
8907
8908 NIC_RX_FILTER_CHANGED (Event) Emitted once until the 'query-rx-filter'
8909 command is executed, the first event will always be emitted
8910
8911 Arguments:
8912
8913 "name: string" (optional)
8914 net client name
8915
8916 "path: string"
8917 device path
8918
8919 Since: 1.6
8920
8921 Example:
8922
8923 <- { "event": "NIC_RX_FILTER_CHANGED",
8924 "data": { "name": "vnet0",
8925 "path": "/machine/peripheral/vnet0/virtio-backend" },
8926 "timestamp": { "seconds": 1368697518, "microseconds": 326866 } }
8927 }
8928
8929 AnnounceParameters (Object)
8930
8931 Parameters for self-announce timers
8932
8933 Members:
8934
8935 "initial: int"
8936 Initial delay (in ms) before sending the first GARP/RARP
8937 announcement
8938
8939 "max: int"
8940 Maximum delay (in ms) between GARP/RARP announcement packets
8941
8942 "rounds: int"
8943 Number of self-announcement attempts
8944
8945 "step: int"
8946 Delay increase (in ms) after each self-announcement attempt
8947
8948 "interfaces: array of string" (optional)
8949 An optional list of interface names, which restricts the
8950 announcement to the listed interfaces. (Since 4.1)
8951
8952 "id: string" (optional)
8953 A name to be used to identify an instance of announce-timers and to
8954 allow it to modified later. Not for use as part of the migration
8955 parameters. (Since 4.1)
8956
8957 Since: 4.0
8958
8959 announce-self (Command) Trigger generation of broadcast RARP frames to
8960 update network switches. This can be useful when network bonds fail-
8961 over the active slave.
8962
8963 Arguments: the members of "AnnounceParameters"
8964
8965 Example:
8966
8967 -> { "execute": "announce-self",
8968 "arguments": {
8969 "initial": 50, "max": 550, "rounds": 10, "step": 50,
8970 "interfaces": ["vn2", "vn3"], "id": "bob" } }
8971 <- { "return": {} }
8972
8973 Since: 4.0
8974
8975 RDMA device
8976 RDMA_GID_STATUS_CHANGED (Event) Emitted when guest driver adds/deletes
8977 GID to/from device
8978
8979 Arguments:
8980
8981 "netdev: string"
8982 RoCE Network Device name
8983
8984 "gid-status: boolean"
8985 Add or delete indication
8986
8987 "subnet-prefix: int"
8988 Subnet Prefix
8989
8990 "interface-id: int"
8991 Not documented
8992
8993 "interface-id" : Interface ID
8994
8995 Since: 4.0
8996
8997 Example:
8998
8999 <- {"timestamp": {"seconds": 1541579657, "microseconds": 986760},
9000 "event": "RDMA_GID_STATUS_CHANGED",
9001 "data":
9002 {"netdev": "bridge0",
9003 "interface-id": 15880512517475447892,
9004 "gid-status": true,
9005 "subnet-prefix": 33022}}
9006
9007 Rocker switch device
9008 RockerSwitch (Object)
9009
9010 Rocker switch information.
9011
9012 Members:
9013
9014 "name: string"
9015 switch name
9016
9017 "id: int"
9018 switch ID
9019
9020 "ports: int"
9021 number of front-panel ports
9022
9023 Since: 2.4
9024
9025 query-rocker (Command) Return rocker switch information.
9026
9027 Arguments:
9028
9029 "name: string"
9030 Not documented
9031
9032 Returns: "Rocker" information
9033
9034 Since: 2.4
9035
9036 Example:
9037
9038 -> { "execute": "query-rocker", "arguments": { "name": "sw1" } }
9039 <- { "return": {"name": "sw1", "ports": 2, "id": 1327446905938}}
9040
9041 RockerPortDuplex (Enum)
9042
9043 An eumeration of port duplex states.
9044
9045 Values:
9046
9047 "half"
9048 half duplex
9049
9050 "full"
9051 full duplex
9052
9053 Since: 2.4
9054
9055 RockerPortAutoneg (Enum)
9056
9057 An eumeration of port autoneg states.
9058
9059 Values:
9060
9061 "off"
9062 autoneg is off
9063
9064 "on"
9065 autoneg is on
9066
9067 Since: 2.4
9068
9069 RockerPort (Object)
9070
9071 Rocker switch port information.
9072
9073 Members:
9074
9075 "name: string"
9076 port name
9077
9078 "enabled: boolean"
9079 port is enabled for I/O
9080
9081 "link-up: boolean"
9082 physical link is UP on port
9083
9084 "speed: int"
9085 port link speed in Mbps
9086
9087 "duplex: RockerPortDuplex"
9088 port link duplex
9089
9090 "autoneg: RockerPortAutoneg"
9091 port link autoneg
9092
9093 Since: 2.4
9094
9095 query-rocker-ports (Command) Return rocker switch port information.
9096
9097 Arguments:
9098
9099 "name: string"
9100 Not documented
9101
9102 Returns: a list of "RockerPort" information
9103
9104 Since: 2.4
9105
9106 Example:
9107
9108 -> { "execute": "query-rocker-ports", "arguments": { "name": "sw1" } }
9109 <- { "return": [ {"duplex": "full", "enabled": true, "name": "sw1.1",
9110 "autoneg": "off", "link-up": true, "speed": 10000},
9111 {"duplex": "full", "enabled": true, "name": "sw1.2",
9112 "autoneg": "off", "link-up": true, "speed": 10000}
9113 ]}
9114
9115 RockerOfDpaFlowKey (Object)
9116
9117 Rocker switch OF-DPA flow key
9118
9119 Members:
9120
9121 "priority: int"
9122 key priority, 0 being lowest priority
9123
9124 "tbl-id: int"
9125 flow table ID
9126
9127 "in-pport: int" (optional)
9128 physical input port
9129
9130 "tunnel-id: int" (optional)
9131 tunnel ID
9132
9133 "vlan-id: int" (optional)
9134 VLAN ID
9135
9136 "eth-type: int" (optional)
9137 Ethernet header type
9138
9139 "eth-src: string" (optional)
9140 Ethernet header source MAC address
9141
9142 "eth-dst: string" (optional)
9143 Ethernet header destination MAC address
9144
9145 "ip-proto: int" (optional)
9146 IP Header protocol field
9147
9148 "ip-tos: int" (optional)
9149 IP header TOS field
9150
9151 "ip-dst: string" (optional)
9152 IP header destination address
9153
9154 Note: optional members may or may not appear in the flow key depending
9155 if they're relevant to the flow key.
9156
9157 Since: 2.4
9158
9159 RockerOfDpaFlowMask (Object)
9160
9161 Rocker switch OF-DPA flow mask
9162
9163 Members:
9164
9165 "in-pport: int" (optional)
9166 physical input port
9167
9168 "tunnel-id: int" (optional)
9169 tunnel ID
9170
9171 "vlan-id: int" (optional)
9172 VLAN ID
9173
9174 "eth-src: string" (optional)
9175 Ethernet header source MAC address
9176
9177 "eth-dst: string" (optional)
9178 Ethernet header destination MAC address
9179
9180 "ip-proto: int" (optional)
9181 IP Header protocol field
9182
9183 "ip-tos: int" (optional)
9184 IP header TOS field
9185
9186 Note: optional members may or may not appear in the flow mask depending
9187 if they're relevant to the flow mask.
9188
9189 Since: 2.4
9190
9191 RockerOfDpaFlowAction (Object)
9192
9193 Rocker switch OF-DPA flow action
9194
9195 Members:
9196
9197 "goto-tbl: int" (optional)
9198 next table ID
9199
9200 "group-id: int" (optional)
9201 group ID
9202
9203 "tunnel-lport: int" (optional)
9204 tunnel logical port ID
9205
9206 "vlan-id: int" (optional)
9207 VLAN ID
9208
9209 "new-vlan-id: int" (optional)
9210 new VLAN ID
9211
9212 "out-pport: int" (optional)
9213 physical output port
9214
9215 Note: optional members may or may not appear in the flow action
9216 depending if they're relevant to the flow action.
9217
9218 Since: 2.4
9219
9220 RockerOfDpaFlow (Object)
9221
9222 Rocker switch OF-DPA flow
9223
9224 Members:
9225
9226 "cookie: int"
9227 flow unique cookie ID
9228
9229 "hits: int"
9230 count of matches (hits) on flow
9231
9232 "key: RockerOfDpaFlowKey"
9233 flow key
9234
9235 "mask: RockerOfDpaFlowMask"
9236 flow mask
9237
9238 "action: RockerOfDpaFlowAction"
9239 flow action
9240
9241 Since: 2.4
9242
9243 query-rocker-of-dpa-flows (Command) Return rocker OF-DPA flow
9244 information.
9245
9246 Arguments:
9247
9248 "name: string"
9249 switch name
9250
9251 "tbl-id: int" (optional)
9252 flow table ID. If tbl-id is not specified, returns flow
9253 information for all tables.
9254
9255 Returns: rocker OF-DPA flow information
9256
9257 Since: 2.4
9258
9259 Example:
9260
9261 -> { "execute": "query-rocker-of-dpa-flows",
9262 "arguments": { "name": "sw1" } }
9263 <- { "return": [ {"key": {"in-pport": 0, "priority": 1, "tbl-id": 0},
9264 "hits": 138,
9265 "cookie": 0,
9266 "action": {"goto-tbl": 10},
9267 "mask": {"in-pport": 4294901760}
9268 },
9269 {...more...},
9270 ]}
9271
9272 RockerOfDpaGroup (Object)
9273
9274 Rocker switch OF-DPA group
9275
9276 Members:
9277
9278 "id: int"
9279 group unique ID
9280
9281 "type: int"
9282 group type
9283
9284 "vlan-id: int" (optional)
9285 VLAN ID
9286
9287 "pport: int" (optional)
9288 physical port number
9289
9290 "index: int" (optional)
9291 group index, unique with group type
9292
9293 "out-pport: int" (optional)
9294 output physical port number
9295
9296 "group-id: int" (optional)
9297 next group ID
9298
9299 "set-vlan-id: int" (optional)
9300 VLAN ID to set
9301
9302 "pop-vlan: int" (optional)
9303 pop VLAN headr from packet
9304
9305 "group-ids: array of int" (optional)
9306 list of next group IDs
9307
9308 "set-eth-src: string" (optional)
9309 set source MAC address in Ethernet header
9310
9311 "set-eth-dst: string" (optional)
9312 set destination MAC address in Ethernet header
9313
9314 "ttl-check: int" (optional)
9315 perform TTL check
9316
9317 Note: optional members may or may not appear in the group depending if
9318 they're relevant to the group type.
9319
9320 Since: 2.4
9321
9322 query-rocker-of-dpa-groups (Command) Return rocker OF-DPA group
9323 information.
9324
9325 Arguments:
9326
9327 "name: string"
9328 switch name
9329
9330 "type: int" (optional)
9331 group type. If type is not specified, returns group information
9332 for all group types.
9333
9334 Returns: rocker OF-DPA group information
9335
9336 Since: 2.4
9337
9338 Example:
9339
9340 -> { "execute": "query-rocker-of-dpa-groups",
9341 "arguments": { "name": "sw1" } }
9342 <- { "return": [ {"type": 0, "out-pport": 2,
9343 "pport": 2, "vlan-id": 3841,
9344 "pop-vlan": 1, "id": 251723778},
9345 {"type": 0, "out-pport": 0,
9346 "pport": 0, "vlan-id": 3841,
9347 "pop-vlan": 1, "id": 251723776},
9348 {"type": 0, "out-pport": 1,
9349 "pport": 1, "vlan-id": 3840,
9350 "pop-vlan": 1, "id": 251658241},
9351 {"type": 0, "out-pport": 0,
9352 "pport": 0, "vlan-id": 3840,
9353 "pop-vlan": 1, "id": 251658240}
9354 ]}
9355
9356 TPM (trusted platform module) devices
9357 TpmModel (Enum)
9358
9359 An enumeration of TPM models
9360
9361 Values:
9362
9363 "tpm-tis"
9364 TPM TIS model
9365
9366 "tpm-crb"
9367 TPM CRB model (since 2.12)
9368
9369 Since: 1.5
9370
9371 query-tpm-models (Command) Return a list of supported TPM models
9372
9373 Returns: a list of TpmModel
9374
9375 Since: 1.5
9376
9377 Example:
9378
9379 -> { "execute": "query-tpm-models" }
9380 <- { "return": [ "tpm-tis", "tpm-crb" ] }
9381
9382 TpmType (Enum)
9383
9384 An enumeration of TPM types
9385
9386 Values:
9387
9388 "passthrough"
9389 TPM passthrough type
9390
9391 "emulator"
9392 Software Emulator TPM type Since: 2.11
9393
9394 Since: 1.5
9395
9396 query-tpm-types (Command) Return a list of supported TPM types
9397
9398 Returns: a list of TpmType
9399
9400 Since: 1.5
9401
9402 Example:
9403
9404 -> { "execute": "query-tpm-types" }
9405 <- { "return": [ "passthrough", "emulator" ] }
9406
9407 TPMPassthroughOptions (Object)
9408
9409 Information about the TPM passthrough type
9410
9411 Members:
9412
9413 "path: string" (optional)
9414 string describing the path used for accessing the TPM device
9415
9416 "cancel-path: string" (optional)
9417 string showing the TPM's sysfs cancel file for cancellation of TPM
9418 commands while they are executing
9419
9420 Since: 1.5
9421
9422 TPMEmulatorOptions (Object)
9423
9424 Information about the TPM emulator type
9425
9426 Members:
9427
9428 "chardev: string"
9429 Name of a unix socket chardev
9430
9431 Since: 2.11
9432
9433 TpmTypeOptions (Object)
9434
9435 A union referencing different TPM backend types' configuration options
9436
9437 Members:
9438
9439 "type"
9440 'passthrough' The configuration options for the TPM passthrough
9441 type 'emulator' The configuration options for TPM emulator backend
9442 type
9443
9444 "data: TPMPassthroughOptions" when "type" is "passthrough"
9445 "data: TPMEmulatorOptions" when "type" is "emulator"
9446
9447 Since: 1.5
9448
9449 TPMInfo (Object)
9450
9451 Information about the TPM
9452
9453 Members:
9454
9455 "id: string"
9456 The Id of the TPM
9457
9458 "model: TpmModel"
9459 The TPM frontend model
9460
9461 "options: TpmTypeOptions"
9462 The TPM (backend) type configuration options
9463
9464 Since: 1.5
9465
9466 query-tpm (Command) Return information about the TPM device
9467
9468 Returns: "TPMInfo" on success
9469
9470 Since: 1.5
9471
9472 Example:
9473
9474 -> { "execute": "query-tpm" }
9475 <- { "return":
9476 [
9477 { "model": "tpm-tis",
9478 "options":
9479 { "type": "passthrough",
9480 "data":
9481 { "cancel-path": "/sys/class/misc/tpm0/device/cancel",
9482 "path": "/dev/tpm0"
9483 }
9484 },
9485 "id": "tpm0"
9486 }
9487 ]
9488 }
9489
9490 Remote desktop
9491 set_password (Command) Sets the password of a remote display session.
9492
9493 Arguments:
9494
9495 "protocol: string"
9496 `vnc' to modify the VNC server password `spice' to modify the Spice
9497 server password
9498
9499 "password: string"
9500 the new password
9501
9502 "connected: string" (optional)
9503 how to handle existing clients when changing the password. If
9504 nothing is specified, defaults to `keep' `fail' to fail the command
9505 if clients are connected `disconnect' to disconnect existing
9506 clients `keep' to maintain existing clients
9507
9508 Returns: Nothing on success If Spice is not enabled, DeviceNotFound
9509
9510 Since: 0.14.0
9511
9512 Example:
9513
9514 -> { "execute": "set_password", "arguments": { "protocol": "vnc",
9515 "password": "secret" } }
9516 <- { "return": {} }
9517
9518 expire_password (Command) Expire the password of a remote display
9519 server.
9520
9521 Arguments:
9522
9523 "protocol: string"
9524 the name of the remote display protocol `vnc' or `spice'
9525
9526 "time: string"
9527 when to expire the password. `now' to expire the password
9528 immediately `never' to cancel password expiration `+INT' where INT
9529 is the number of seconds from now (integer) `INT' where INT is the
9530 absolute time in seconds
9531
9532 Returns: Nothing on success If "protocol" is `spice' and Spice is not
9533 active, DeviceNotFound
9534
9535 Since: 0.14.0
9536
9537 Notes: Time is relative to the server and currently there is no way to
9538 coordinate server time with client time. It is not recommended to use
9539 the absolute time version of the "time" parameter unless you're sure
9540 you are on the same machine as the QEMU instance.
9541
9542 Example:
9543
9544 -> { "execute": "expire_password", "arguments": { "protocol": "vnc",
9545 "time": "+60" } }
9546 <- { "return": {} }
9547
9548 screendump (Command) Write a PPM of the VGA screen to a file.
9549
9550 Arguments:
9551
9552 "filename: string"
9553 the path of a new PPM file to store the image
9554
9555 "device: string" (optional)
9556 ID of the display device that should be dumped. If this parameter
9557 is missing, the primary display will be used. (Since 2.12)
9558
9559 "head: int" (optional)
9560 head to use in case the device supports multiple heads. If this
9561 parameter is missing, head #0 will be used. Also note that the head
9562 can only be specified in conjunction with the device ID. (Since
9563 2.12)
9564
9565 Returns: Nothing on success
9566
9567 Since: 0.14.0
9568
9569 Example:
9570
9571 -> { "execute": "screendump",
9572 "arguments": { "filename": "/tmp/image" } }
9573 <- { "return": {} }
9574
9575 Spice
9576
9577 SpiceBasicInfo (Object)
9578
9579 The basic information for SPICE network connection
9580
9581 Members:
9582
9583 "host: string"
9584 IP address
9585
9586 "port: string"
9587 port number
9588
9589 "family: NetworkAddressFamily"
9590 address family
9591
9592 Since: 2.1
9593
9594 If: "defined(CONFIG_SPICE)"
9595
9596 SpiceServerInfo (Object)
9597
9598 Information about a SPICE server
9599
9600 Members:
9601
9602 "auth: string" (optional)
9603 authentication method
9604
9605 The members of "SpiceBasicInfo"
9606
9607 Since: 2.1
9608
9609 If: "defined(CONFIG_SPICE)"
9610
9611 SpiceChannel (Object)
9612
9613 Information about a SPICE client channel.
9614
9615 Members:
9616
9617 "connection-id: int"
9618 SPICE connection id number. All channels with the same id belong
9619 to the same SPICE session.
9620
9621 "channel-type: int"
9622 SPICE channel type number. "1" is the main control channel, filter
9623 for this one if you want to track spice sessions only
9624
9625 "channel-id: int"
9626 SPICE channel ID number. Usually "0", might be different when
9627 multiple channels of the same type exist, such as multiple display
9628 channels in a multihead setup
9629
9630 "tls: boolean"
9631 true if the channel is encrypted, false otherwise.
9632
9633 The members of "SpiceBasicInfo"
9634
9635 Since: 0.14.0
9636
9637 If: "defined(CONFIG_SPICE)"
9638
9639 SpiceQueryMouseMode (Enum)
9640
9641 An enumeration of Spice mouse states.
9642
9643 Values:
9644
9645 "client"
9646 Mouse cursor position is determined by the client.
9647
9648 "server"
9649 Mouse cursor position is determined by the server.
9650
9651 "unknown"
9652 No information is available about mouse mode used by the spice
9653 server.
9654
9655 Note: spice/enums.h has a SpiceMouseMode already, hence the name.
9656
9657 Since: 1.1
9658
9659 If: "defined(CONFIG_SPICE)"
9660
9661 SpiceInfo (Object)
9662
9663 Information about the SPICE session.
9664
9665 Members:
9666
9667 "enabled: boolean"
9668 true if the SPICE server is enabled, false otherwise
9669
9670 "migrated: boolean"
9671 true if the last guest migration completed and spice migration had
9672 completed as well. false otherwise. (since 1.4)
9673
9674 "host: string" (optional)
9675 The hostname the SPICE server is bound to. This depends on the
9676 name resolution on the host and may be an IP address.
9677
9678 "port: int" (optional)
9679 The SPICE server's port number.
9680
9681 "compiled-version: string" (optional)
9682 SPICE server version.
9683
9684 "tls-port: int" (optional)
9685 The SPICE server's TLS port number.
9686
9687 "auth: string" (optional)
9688 the current authentication type used by the server 'none' if no
9689 authentication is being used 'spice' uses SASL or direct TLS
9690 authentication, depending on command line options
9691
9692 "mouse-mode: SpiceQueryMouseMode"
9693 The mode in which the mouse cursor is displayed currently. Can be
9694 determined by the client or the server, or unknown if spice server
9695 doesn't provide this information. (since: 1.1)
9696
9697 "channels: array of SpiceChannel" (optional)
9698 a list of "SpiceChannel" for each active spice channel
9699
9700 Since: 0.14.0
9701
9702 If: "defined(CONFIG_SPICE)"
9703
9704 query-spice (Command) Returns information about the current SPICE
9705 server
9706
9707 Returns: "SpiceInfo"
9708
9709 Since: 0.14.0
9710
9711 Example:
9712
9713 -> { "execute": "query-spice" }
9714 <- { "return": {
9715 "enabled": true,
9716 "auth": "spice",
9717 "port": 5920,
9718 "tls-port": 5921,
9719 "host": "0.0.0.0",
9720 "channels": [
9721 {
9722 "port": "54924",
9723 "family": "ipv4",
9724 "channel-type": 1,
9725 "connection-id": 1804289383,
9726 "host": "127.0.0.1",
9727 "channel-id": 0,
9728 "tls": true
9729 },
9730 {
9731 "port": "36710",
9732 "family": "ipv4",
9733 "channel-type": 4,
9734 "connection-id": 1804289383,
9735 "host": "127.0.0.1",
9736 "channel-id": 0,
9737 "tls": false
9738 },
9739 [ ... more channels follow ... ]
9740 ]
9741 }
9742 }
9743
9744 If: "defined(CONFIG_SPICE)"
9745
9746 SPICE_CONNECTED (Event) Emitted when a SPICE client establishes a
9747 connection
9748
9749 Arguments:
9750
9751 "server: SpiceBasicInfo"
9752 server information
9753
9754 "client: SpiceBasicInfo"
9755 client information
9756
9757 Since: 0.14.0
9758
9759 Example:
9760
9761 <- { "timestamp": {"seconds": 1290688046, "microseconds": 388707},
9762 "event": "SPICE_CONNECTED",
9763 "data": {
9764 "server": { "port": "5920", "family": "ipv4", "host": "127.0.0.1"},
9765 "client": {"port": "52873", "family": "ipv4", "host": "127.0.0.1"}
9766 }}
9767
9768 If: "defined(CONFIG_SPICE)"
9769
9770 SPICE_INITIALIZED (Event) Emitted after initial handshake and
9771 authentication takes place (if any) and the SPICE channel is up and
9772 running
9773
9774 Arguments:
9775
9776 "server: SpiceServerInfo"
9777 server information
9778
9779 "client: SpiceChannel"
9780 client information
9781
9782 Since: 0.14.0
9783
9784 Example:
9785
9786 <- { "timestamp": {"seconds": 1290688046, "microseconds": 417172},
9787 "event": "SPICE_INITIALIZED",
9788 "data": {"server": {"auth": "spice", "port": "5921",
9789 "family": "ipv4", "host": "127.0.0.1"},
9790 "client": {"port": "49004", "family": "ipv4", "channel-type": 3,
9791 "connection-id": 1804289383, "host": "127.0.0.1",
9792 "channel-id": 0, "tls": true}
9793 }}
9794
9795 If: "defined(CONFIG_SPICE)"
9796
9797 SPICE_DISCONNECTED (Event) Emitted when the SPICE connection is closed
9798
9799 Arguments:
9800
9801 "server: SpiceBasicInfo"
9802 server information
9803
9804 "client: SpiceBasicInfo"
9805 client information
9806
9807 Since: 0.14.0
9808
9809 Example:
9810
9811 <- { "timestamp": {"seconds": 1290688046, "microseconds": 388707},
9812 "event": "SPICE_DISCONNECTED",
9813 "data": {
9814 "server": { "port": "5920", "family": "ipv4", "host": "127.0.0.1"},
9815 "client": {"port": "52873", "family": "ipv4", "host": "127.0.0.1"}
9816 }}
9817
9818 If: "defined(CONFIG_SPICE)"
9819
9820 SPICE_MIGRATE_COMPLETED (Event) Emitted when SPICE migration has
9821 completed
9822
9823 Since: 1.3
9824
9825 Example:
9826
9827 <- { "timestamp": {"seconds": 1290688046, "microseconds": 417172},
9828 "event": "SPICE_MIGRATE_COMPLETED" }
9829
9830 If: "defined(CONFIG_SPICE)"
9831
9832 VNC
9833
9834 VncBasicInfo (Object)
9835
9836 The basic information for vnc network connection
9837
9838 Members:
9839
9840 "host: string"
9841 IP address
9842
9843 "service: string"
9844 The service name of the vnc port. This may depend on the host
9845 system's service database so symbolic names should not be relied
9846 on.
9847
9848 "family: NetworkAddressFamily"
9849 address family
9850
9851 "websocket: boolean"
9852 true in case the socket is a websocket (since 2.3).
9853
9854 Since: 2.1
9855
9856 If: "defined(CONFIG_VNC)"
9857
9858 VncServerInfo (Object)
9859
9860 The network connection information for server
9861
9862 Members:
9863
9864 "auth: string" (optional)
9865 authentication method used for the plain (non-websocket) VNC server
9866
9867 The members of "VncBasicInfo"
9868
9869 Since: 2.1
9870
9871 If: "defined(CONFIG_VNC)"
9872
9873 VncClientInfo (Object)
9874
9875 Information about a connected VNC client.
9876
9877 Members:
9878
9879 "x509_dname: string" (optional)
9880 If x509 authentication is in use, the Distinguished Name of the
9881 client.
9882
9883 "sasl_username: string" (optional)
9884 If SASL authentication is in use, the SASL username used for
9885 authentication.
9886
9887 The members of "VncBasicInfo"
9888
9889 Since: 0.14.0
9890
9891 If: "defined(CONFIG_VNC)"
9892
9893 VncInfo (Object)
9894
9895 Information about the VNC session.
9896
9897 Members:
9898
9899 "enabled: boolean"
9900 true if the VNC server is enabled, false otherwise
9901
9902 "host: string" (optional)
9903 The hostname the VNC server is bound to. This depends on the name
9904 resolution on the host and may be an IP address.
9905
9906 "family: NetworkAddressFamily" (optional)
9907 'ipv6' if the host is listening for IPv6 connections 'ipv4' if the
9908 host is listening for IPv4 connections 'unix' if the host is
9909 listening on a unix domain socket 'unknown' otherwise
9910
9911 "service: string" (optional)
9912 The service name of the server's port. This may depends on the
9913 host system's service database so symbolic names should not be
9914 relied on.
9915
9916 "auth: string" (optional)
9917 the current authentication type used by the server 'none' if no
9918 authentication is being used 'vnc' if VNC authentication is being
9919 used 'vencrypt+plain' if VEncrypt is used with plain text
9920 authentication 'vencrypt+tls+none' if VEncrypt is used with TLS and
9921 no authentication 'vencrypt+tls+vnc' if VEncrypt is used with TLS
9922 and VNC authentication 'vencrypt+tls+plain' if VEncrypt is used
9923 with TLS and plain text auth 'vencrypt+x509+none' if VEncrypt is
9924 used with x509 and no auth 'vencrypt+x509+vnc' if VEncrypt is used
9925 with x509 and VNC auth 'vencrypt+x509+plain' if VEncrypt is used
9926 with x509 and plain text auth 'vencrypt+tls+sasl' if VEncrypt is
9927 used with TLS and SASL auth 'vencrypt+x509+sasl' if VEncrypt is
9928 used with x509 and SASL auth
9929
9930 "clients: array of VncClientInfo" (optional)
9931 a list of "VncClientInfo" of all currently connected clients
9932
9933 Since: 0.14.0
9934
9935 If: "defined(CONFIG_VNC)"
9936
9937 VncPrimaryAuth (Enum)
9938
9939 vnc primary authentication method.
9940
9941 Values:
9942
9943 "none"
9944 Not documented
9945
9946 "vnc"
9947 Not documented
9948
9949 "ra2"
9950 Not documented
9951
9952 "ra2ne"
9953 Not documented
9954
9955 "tight"
9956 Not documented
9957
9958 "ultra"
9959 Not documented
9960
9961 "tls"
9962 Not documented
9963
9964 "vencrypt"
9965 Not documented
9966
9967 "sasl"
9968 Not documented
9969
9970 Since: 2.3
9971
9972 If: "defined(CONFIG_VNC)"
9973
9974 VncVencryptSubAuth (Enum)
9975
9976 vnc sub authentication method with vencrypt.
9977
9978 Values:
9979
9980 "plain"
9981 Not documented
9982
9983 "tls-none"
9984 Not documented
9985
9986 "x509-none"
9987 Not documented
9988
9989 "tls-vnc"
9990 Not documented
9991
9992 "x509-vnc"
9993 Not documented
9994
9995 "tls-plain"
9996 Not documented
9997
9998 "x509-plain"
9999 Not documented
10000
10001 "tls-sasl"
10002 Not documented
10003
10004 "x509-sasl"
10005 Not documented
10006
10007 Since: 2.3
10008
10009 If: "defined(CONFIG_VNC)"
10010
10011 VncServerInfo2 (Object)
10012
10013 The network connection information for server
10014
10015 Members:
10016
10017 "auth: VncPrimaryAuth"
10018 The current authentication type used by the servers
10019
10020 "vencrypt: VncVencryptSubAuth" (optional)
10021 The vencrypt sub authentication type used by the servers, only
10022 specified in case auth == vencrypt.
10023
10024 The members of "VncBasicInfo"
10025
10026 Since: 2.9
10027
10028 If: "defined(CONFIG_VNC)"
10029
10030 VncInfo2 (Object)
10031
10032 Information about a vnc server
10033
10034 Members:
10035
10036 "id: string"
10037 vnc server name.
10038
10039 "server: array of VncServerInfo2"
10040 A list of "VncBasincInfo" describing all listening sockets. The
10041 list can be empty (in case the vnc server is disabled). It also
10042 may have multiple entries: normal + websocket, possibly also ipv4 +
10043 ipv6 in the future.
10044
10045 "clients: array of VncClientInfo"
10046 A list of "VncClientInfo" of all currently connected clients. The
10047 list can be empty, for obvious reasons.
10048
10049 "auth: VncPrimaryAuth"
10050 The current authentication type used by the non-websockets servers
10051
10052 "vencrypt: VncVencryptSubAuth" (optional)
10053 The vencrypt authentication type used by the servers, only
10054 specified in case auth == vencrypt.
10055
10056 "display: string" (optional)
10057 The display device the vnc server is linked to.
10058
10059 Since: 2.3
10060
10061 If: "defined(CONFIG_VNC)"
10062
10063 query-vnc (Command) Returns information about the current VNC server
10064
10065 Returns: "VncInfo"
10066
10067 Since: 0.14.0
10068
10069 Example:
10070
10071 -> { "execute": "query-vnc" }
10072 <- { "return": {
10073 "enabled":true,
10074 "host":"0.0.0.0",
10075 "service":"50402",
10076 "auth":"vnc",
10077 "family":"ipv4",
10078 "clients":[
10079 {
10080 "host":"127.0.0.1",
10081 "service":"50401",
10082 "family":"ipv4"
10083 }
10084 ]
10085 }
10086 }
10087
10088 If: "defined(CONFIG_VNC)"
10089
10090 query-vnc-servers (Command) Returns a list of vnc servers. The list
10091 can be empty.
10092
10093 Returns: a list of "VncInfo2"
10094
10095 Since: 2.3
10096
10097 If: "defined(CONFIG_VNC)"
10098
10099 change-vnc-password (Command) Change the VNC server password.
10100
10101 Arguments:
10102
10103 "password: string"
10104 the new password to use with VNC authentication
10105
10106 Since: 1.1
10107
10108 Notes: An empty password in this command will set the password to the
10109 empty string. Existing clients are unaffected by executing this
10110 command.
10111
10112 If: "defined(CONFIG_VNC)"
10113
10114 VNC_CONNECTED (Event) Emitted when a VNC client establishes a
10115 connection
10116
10117 Arguments:
10118
10119 "server: VncServerInfo"
10120 server information
10121
10122 "client: VncBasicInfo"
10123 client information
10124
10125 Note: This event is emitted before any authentication takes place, thus
10126 the authentication ID is not provided
10127
10128 Since: 0.13.0
10129
10130 Example:
10131
10132 <- { "event": "VNC_CONNECTED",
10133 "data": {
10134 "server": { "auth": "sasl", "family": "ipv4",
10135 "service": "5901", "host": "0.0.0.0" },
10136 "client": { "family": "ipv4", "service": "58425",
10137 "host": "127.0.0.1" } },
10138 "timestamp": { "seconds": 1262976601, "microseconds": 975795 } }
10139
10140 If: "defined(CONFIG_VNC)"
10141
10142 VNC_INITIALIZED (Event) Emitted after authentication takes place (if
10143 any) and the VNC session is made active
10144
10145 Arguments:
10146
10147 "server: VncServerInfo"
10148 server information
10149
10150 "client: VncClientInfo"
10151 client information
10152
10153 Since: 0.13.0
10154
10155 Example:
10156
10157 <- { "event": "VNC_INITIALIZED",
10158 "data": {
10159 "server": { "auth": "sasl", "family": "ipv4",
10160 "service": "5901", "host": "0.0.0.0"},
10161 "client": { "family": "ipv4", "service": "46089",
10162 "host": "127.0.0.1", "sasl_username": "luiz" } },
10163 "timestamp": { "seconds": 1263475302, "microseconds": 150772 } }
10164
10165 If: "defined(CONFIG_VNC)"
10166
10167 VNC_DISCONNECTED (Event) Emitted when the connection is closed
10168
10169 Arguments:
10170
10171 "server: VncServerInfo"
10172 server information
10173
10174 "client: VncClientInfo"
10175 client information
10176
10177 Since: 0.13.0
10178
10179 Example:
10180
10181 <- { "event": "VNC_DISCONNECTED",
10182 "data": {
10183 "server": { "auth": "sasl", "family": "ipv4",
10184 "service": "5901", "host": "0.0.0.0" },
10185 "client": { "family": "ipv4", "service": "58425",
10186 "host": "127.0.0.1", "sasl_username": "luiz" } },
10187 "timestamp": { "seconds": 1262976601, "microseconds": 975795 } }
10188
10189 If: "defined(CONFIG_VNC)"
10190
10191 Input
10192 MouseInfo (Object)
10193
10194 Information about a mouse device.
10195
10196 Members:
10197
10198 "name: string"
10199 the name of the mouse device
10200
10201 "index: int"
10202 the index of the mouse device
10203
10204 "current: boolean"
10205 true if this device is currently receiving mouse events
10206
10207 "absolute: boolean"
10208 true if this device supports absolute coordinates as input
10209
10210 Since: 0.14.0
10211
10212 query-mice (Command) Returns information about each active mouse
10213 device
10214
10215 Returns: a list of "MouseInfo" for each device
10216
10217 Since: 0.14.0
10218
10219 Example:
10220
10221 -> { "execute": "query-mice" }
10222 <- { "return": [
10223 {
10224 "name":"QEMU Microsoft Mouse",
10225 "index":0,
10226 "current":false,
10227 "absolute":false
10228 },
10229 {
10230 "name":"QEMU PS/2 Mouse",
10231 "index":1,
10232 "current":true,
10233 "absolute":true
10234 }
10235 ]
10236 }
10237
10238 QKeyCode (Enum)
10239
10240 An enumeration of key name.
10241
10242 This is used by the "send-key" command.
10243
10244 Values:
10245
10246 "unmapped"
10247 since 2.0
10248
10249 "pause"
10250 since 2.0
10251
10252 "ro"
10253 since 2.4
10254
10255 "kp_comma"
10256 since 2.4
10257
10258 "kp_equals"
10259 since 2.6
10260
10261 "power"
10262 since 2.6
10263
10264 "hiragana"
10265 since 2.9
10266
10267 "henkan"
10268 since 2.9
10269
10270 "yen"
10271 since 2.9
10272
10273 "sleep"
10274 since 2.10
10275
10276 "wake"
10277 since 2.10
10278
10279 "audionext"
10280 since 2.10
10281
10282 "audioprev"
10283 since 2.10
10284
10285 "audiostop"
10286 since 2.10
10287
10288 "audioplay"
10289 since 2.10
10290
10291 "audiomute"
10292 since 2.10
10293
10294 "volumeup"
10295 since 2.10
10296
10297 "volumedown"
10298 since 2.10
10299
10300 "mediaselect"
10301 since 2.10
10302
10303 "mail"
10304 since 2.10
10305
10306 "calculator"
10307 since 2.10
10308
10309 "computer"
10310 since 2.10
10311
10312 "ac_home"
10313 since 2.10
10314
10315 "ac_back"
10316 since 2.10
10317
10318 "ac_forward"
10319 since 2.10
10320
10321 "ac_refresh"
10322 since 2.10
10323
10324 "ac_bookmarks"
10325 since 2.10 altgr, altgr_r: dropped in 2.10
10326
10327 "muhenkan"
10328 since 2.12
10329
10330 "katakanahiragana"
10331 since 2.12
10332
10333 "shift"
10334 Not documented
10335
10336 "shift_r"
10337 Not documented
10338
10339 "alt"
10340 Not documented
10341
10342 "alt_r"
10343 Not documented
10344
10345 "ctrl"
10346 Not documented
10347
10348 "ctrl_r"
10349 Not documented
10350
10351 "menu"
10352 Not documented
10353
10354 "esc"
10355 Not documented
10356
10357 1 Not documented
10358
10359 2 Not documented
10360
10361 3 Not documented
10362
10363 4 Not documented
10364
10365 5 Not documented
10366
10367 6 Not documented
10368
10369 7 Not documented
10370
10371 8 Not documented
10372
10373 9 Not documented
10374
10375 0 Not documented
10376
10377 "minus"
10378 Not documented
10379
10380 "equal"
10381 Not documented
10382
10383 "backspace"
10384 Not documented
10385
10386 "tab"
10387 Not documented
10388
10389 "q" Not documented
10390
10391 "w" Not documented
10392
10393 "e" Not documented
10394
10395 "r" Not documented
10396
10397 "t" Not documented
10398
10399 "y" Not documented
10400
10401 "u" Not documented
10402
10403 "i" Not documented
10404
10405 "o" Not documented
10406
10407 "p" Not documented
10408
10409 "bracket_left"
10410 Not documented
10411
10412 "bracket_right"
10413 Not documented
10414
10415 "ret"
10416 Not documented
10417
10418 "a" Not documented
10419
10420 "s" Not documented
10421
10422 "d" Not documented
10423
10424 "f" Not documented
10425
10426 "g" Not documented
10427
10428 "h" Not documented
10429
10430 "j" Not documented
10431
10432 "k" Not documented
10433
10434 "l" Not documented
10435
10436 "semicolon"
10437 Not documented
10438
10439 "apostrophe"
10440 Not documented
10441
10442 "grave_accent"
10443 Not documented
10444
10445 "backslash"
10446 Not documented
10447
10448 "z" Not documented
10449
10450 "x" Not documented
10451
10452 "c" Not documented
10453
10454 "v" Not documented
10455
10456 "b" Not documented
10457
10458 "n" Not documented
10459
10460 "m" Not documented
10461
10462 "comma"
10463 Not documented
10464
10465 "dot"
10466 Not documented
10467
10468 "slash"
10469 Not documented
10470
10471 "asterisk"
10472 Not documented
10473
10474 "spc"
10475 Not documented
10476
10477 "caps_lock"
10478 Not documented
10479
10480 "f1"
10481 Not documented
10482
10483 "f2"
10484 Not documented
10485
10486 "f3"
10487 Not documented
10488
10489 "f4"
10490 Not documented
10491
10492 "f5"
10493 Not documented
10494
10495 "f6"
10496 Not documented
10497
10498 "f7"
10499 Not documented
10500
10501 "f8"
10502 Not documented
10503
10504 "f9"
10505 Not documented
10506
10507 "f10"
10508 Not documented
10509
10510 "num_lock"
10511 Not documented
10512
10513 "scroll_lock"
10514 Not documented
10515
10516 "kp_divide"
10517 Not documented
10518
10519 "kp_multiply"
10520 Not documented
10521
10522 "kp_subtract"
10523 Not documented
10524
10525 "kp_add"
10526 Not documented
10527
10528 "kp_enter"
10529 Not documented
10530
10531 "kp_decimal"
10532 Not documented
10533
10534 "sysrq"
10535 Not documented
10536
10537 "kp_0"
10538 Not documented
10539
10540 "kp_1"
10541 Not documented
10542
10543 "kp_2"
10544 Not documented
10545
10546 "kp_3"
10547 Not documented
10548
10549 "kp_4"
10550 Not documented
10551
10552 "kp_5"
10553 Not documented
10554
10555 "kp_6"
10556 Not documented
10557
10558 "kp_7"
10559 Not documented
10560
10561 "kp_8"
10562 Not documented
10563
10564 "kp_9"
10565 Not documented
10566
10567 "less"
10568 Not documented
10569
10570 "f11"
10571 Not documented
10572
10573 "f12"
10574 Not documented
10575
10576 "print"
10577 Not documented
10578
10579 "home"
10580 Not documented
10581
10582 "pgup"
10583 Not documented
10584
10585 "pgdn"
10586 Not documented
10587
10588 "end"
10589 Not documented
10590
10591 "left"
10592 Not documented
10593
10594 "up"
10595 Not documented
10596
10597 "down"
10598 Not documented
10599
10600 "right"
10601 Not documented
10602
10603 "insert"
10604 Not documented
10605
10606 "delete"
10607 Not documented
10608
10609 "stop"
10610 Not documented
10611
10612 "again"
10613 Not documented
10614
10615 "props"
10616 Not documented
10617
10618 "undo"
10619 Not documented
10620
10621 "front"
10622 Not documented
10623
10624 "copy"
10625 Not documented
10626
10627 "open"
10628 Not documented
10629
10630 "paste"
10631 Not documented
10632
10633 "find"
10634 Not documented
10635
10636 "cut"
10637 Not documented
10638
10639 "lf"
10640 Not documented
10641
10642 "help"
10643 Not documented
10644
10645 "meta_l"
10646 Not documented
10647
10648 "meta_r"
10649 Not documented
10650
10651 "compose"
10652 Not documented
10653
10654 'sysrq' was mistakenly added to hack around the fact that the ps2
10655 driver was not generating correct scancodes sequences when 'alt+print'
10656 was pressed. This flaw is now fixed and the 'sysrq' key serves no
10657 further purpose. Any further use of 'sysrq' will be transparently
10658 changed to 'print', so they are effectively synonyms.
10659
10660 Since: 1.3.0
10661
10662 KeyValue (Object)
10663
10664 Represents a keyboard key.
10665
10666 Members:
10667
10668 "type"
10669 One of "number", "qcode"
10670
10671 "data: int" when "type" is "number"
10672 "data: QKeyCode" when "type" is "qcode"
10673
10674 Since: 1.3.0
10675
10676 send-key (Command) Send keys to guest.
10677
10678 Arguments:
10679
10680 "keys: array of KeyValue"
10681 An array of "KeyValue" elements. All "KeyValues" in this array are
10682 simultaneously sent to the guest. A "KeyValue".number value is sent
10683 directly to the guest, while "KeyValue".qcode must be a valid
10684 "QKeyCode" value
10685
10686 "hold-time: int" (optional)
10687 time to delay key up events, milliseconds. Defaults to 100
10688
10689 Returns: Nothing on success If key is unknown or redundant,
10690 InvalidParameter
10691
10692 Since: 1.3.0
10693
10694 Example:
10695
10696 -> { "execute": "send-key",
10697 "arguments": { "keys": [ { "type": "qcode", "data": "ctrl" },
10698 { "type": "qcode", "data": "alt" },
10699 { "type": "qcode", "data": "delete" } ] } }
10700 <- { "return": {} }
10701
10702 InputButton (Enum)
10703
10704 Button of a pointer input device (mouse, tablet).
10705
10706 Values:
10707
10708 "side"
10709 front side button of a 5-button mouse (since 2.9)
10710
10711 "extra"
10712 rear side button of a 5-button mouse (since 2.9)
10713
10714 "left"
10715 Not documented
10716
10717 "middle"
10718 Not documented
10719
10720 "right"
10721 Not documented
10722
10723 "wheel-up"
10724 Not documented
10725
10726 "wheel-down"
10727 Not documented
10728
10729 Since: 2.0
10730
10731 InputAxis (Enum)
10732
10733 Position axis of a pointer input device (mouse, tablet).
10734
10735 Values:
10736
10737 "x" Not documented
10738
10739 "y" Not documented
10740
10741 Since: 2.0
10742
10743 InputKeyEvent (Object)
10744
10745 Keyboard input event.
10746
10747 Members:
10748
10749 "key: KeyValue"
10750 Which key this event is for.
10751
10752 "down: boolean"
10753 True for key-down and false for key-up events.
10754
10755 Since: 2.0
10756
10757 InputBtnEvent (Object)
10758
10759 Pointer button input event.
10760
10761 Members:
10762
10763 "button: InputButton"
10764 Which button this event is for.
10765
10766 "down: boolean"
10767 True for key-down and false for key-up events.
10768
10769 Since: 2.0
10770
10771 InputMoveEvent (Object)
10772
10773 Pointer motion input event.
10774
10775 Members:
10776
10777 "axis: InputAxis"
10778 Which axis is referenced by "value".
10779
10780 "value: int"
10781 Pointer position. For absolute coordinates the valid range is 0 ->
10782 0x7ffff
10783
10784 Since: 2.0
10785
10786 InputEvent (Object)
10787
10788 Input event union.
10789
10790 Members:
10791
10792 "type"
10793 the input type, one of:
10794
10795 - 'key': Input event of Keyboard
10796
10797 - 'btn': Input event of pointer buttons
10798
10799 - 'rel': Input event of relative pointer motion
10800
10801 - 'abs': Input event of absolute pointer motion
10802
10803 "data: InputKeyEvent" when "type" is "key"
10804 "data: InputBtnEvent" when "type" is "btn"
10805 "data: InputMoveEvent" when "type" is "rel"
10806 "data: InputMoveEvent" when "type" is "abs"
10807
10808 Since: 2.0
10809
10810 input-send-event (Command) Send input event(s) to guest.
10811
10812 Arguments:
10813
10814 "device: string" (optional)
10815 display device to send event(s) to.
10816
10817 "head: int" (optional)
10818 head to send event(s) to, in case the display device supports
10819 multiple scanouts.
10820
10821 "events: array of InputEvent"
10822 List of InputEvent union.
10823
10824 Returns: Nothing on success.
10825
10826 The "device" and "head" parameters can be used to send the input event
10827 to specific input devices in case (a) multiple input devices of the
10828 same kind are added to the virtual machine and (b) you have configured
10829 input routing (see docs/multiseat.txt) for those input devices. The
10830 parameters work exactly like the device and head properties of input
10831 devices. If "device" is missing, only devices that have no input
10832 routing config are admissible. If "device" is specified, both input
10833 devices with and without input routing config are admissible, but
10834 devices with input routing config take precedence.
10835
10836 Since: 2.6
10837
10838 Note: The consoles are visible in the qom tree, under
10839 /backend/console[$index]. They have a device link and head property, so
10840 it is possible to map which console belongs to which device and
10841 display.
10842
10843 Example:
10844
10845 1. Press left mouse button.
10846
10847 -> { "execute": "input-send-event",
10848 "arguments": { "device": "video0",
10849 "events": [ { "type": "btn",
10850 "data" : { "down": true, "button": "left" } } ] } }
10851 <- { "return": {} }
10852
10853 -> { "execute": "input-send-event",
10854 "arguments": { "device": "video0",
10855 "events": [ { "type": "btn",
10856 "data" : { "down": false, "button": "left" } } ] } }
10857 <- { "return": {} }
10858
10859 2. Press ctrl-alt-del.
10860
10861 -> { "execute": "input-send-event",
10862 "arguments": { "events": [
10863 { "type": "key", "data" : { "down": true,
10864 "key": {"type": "qcode", "data": "ctrl" } } },
10865 { "type": "key", "data" : { "down": true,
10866 "key": {"type": "qcode", "data": "alt" } } },
10867 { "type": "key", "data" : { "down": true,
10868 "key": {"type": "qcode", "data": "delete" } } } ] } }
10869 <- { "return": {} }
10870
10871 3. Move mouse pointer to absolute coordinates (20000, 400).
10872
10873 -> { "execute": "input-send-event" ,
10874 "arguments": { "events": [
10875 { "type": "abs", "data" : { "axis": "x", "value" : 20000 } },
10876 { "type": "abs", "data" : { "axis": "y", "value" : 400 } } ] } }
10877 <- { "return": {} }
10878
10879 GrabToggleKeys (Enum)
10880
10881 Keys to toggle input-linux between host and guest.
10882
10883 Values:
10884
10885 "ctrl-ctrl"
10886 Not documented
10887
10888 "alt-alt"
10889 Not documented
10890
10891 "meta-meta"
10892 Not documented
10893
10894 "scrolllock"
10895 Not documented
10896
10897 "ctrl-scrolllock"
10898 Not documented
10899
10900 Since: 4.0
10901
10902 DisplayGTK (Object)
10903
10904 GTK display options.
10905
10906 Members:
10907
10908 "grab-on-hover: boolean" (optional)
10909 Grab keyboard input on mouse hover.
10910
10911 "zoom-to-fit: boolean" (optional)
10912 Zoom guest display to fit into the host window. When turned off
10913 the host window will be resized instead. In case the display
10914 device can notify the guest on window resizes (virtio-gpu) this
10915 will default to "on", assuming the guest will resize the display to
10916 match the window size then. Otherwise it defaults to "off". Since
10917 3.1
10918
10919 Since: 2.12
10920
10921 DisplayEGLHeadless (Object)
10922
10923 EGL headless display options.
10924
10925 Members:
10926
10927 "rendernode: string" (optional)
10928 Which DRM render node should be used. Default is the first
10929 available node on the host.
10930
10931 Since: 3.1
10932
10933 DisplayGLMode (Enum)
10934
10935 Display OpenGL mode.
10936
10937 Values:
10938
10939 "off"
10940 Disable OpenGL (default).
10941
10942 "on"
10943 Use OpenGL, pick context type automatically. Would better be named
10944 'auto' but is called 'on' for backward compatibility with bool
10945 type.
10946
10947 "core"
10948 Use OpenGL with Core (desktop) Context.
10949
10950 "es"
10951 Use OpenGL with ES (embedded systems) Context.
10952
10953 Since: 3.0
10954
10955 DisplayCurses (Object)
10956
10957 Curses display options.
10958
10959 Members:
10960
10961 "charset: string" (optional)
10962 Font charset used by guest (default: CP437).
10963
10964 Since: 4.0
10965
10966 DisplayType (Enum)
10967
10968 Display (user interface) type.
10969
10970 Values:
10971
10972 "default"
10973 The default user interface, selecting from the first available of
10974 gtk, sdl, cocoa, and vnc.
10975
10976 "none"
10977 No user interface or video output display. The guest will still see
10978 an emulated graphics card, but its output will not be displayed to
10979 the QEMU user.
10980
10981 "gtk"
10982 The GTK user interface.
10983
10984 "sdl"
10985 The SDL user interface.
10986
10987 "egl-headless"
10988 No user interface, offload GL operations to a local DRI device.
10989 Graphical display need to be paired with VNC or Spice. (Since 3.1)
10990
10991 "curses"
10992 Display video output via curses. For graphics device models which
10993 support a text mode, QEMU can display this output using a
10994 curses/ncurses interface. Nothing is displayed when the graphics
10995 device is in graphical mode or if the graphics device does not
10996 support a text mode. Generally only the VGA device models support
10997 text mode.
10998
10999 "cocoa"
11000 The Cocoa user interface.
11001
11002 "spice-app"
11003 Set up a Spice server and run the default associated application to
11004 connect to it. The server will redirect the serial console and QEMU
11005 monitors. (Since 4.0)
11006
11007 Since: 2.12
11008
11009 DisplayOptions (Object)
11010
11011 Display (user interface) options.
11012
11013 Members:
11014
11015 "type: DisplayType"
11016 Which DisplayType qemu should use.
11017
11018 "full-screen: boolean" (optional)
11019 Start user interface in fullscreen mode (default: off).
11020
11021 "window-close: boolean" (optional)
11022 Allow to quit qemu with window close button (default: on).
11023
11024 "gl: DisplayGLMode" (optional)
11025 Enable OpenGL support (default: off).
11026
11027 The members of "DisplayGTK" when "type" is "gtk"
11028 The members of "DisplayCurses" when "type" is "curses"
11029 The members of "DisplayEGLHeadless" when "type" is "egl-headless"
11030
11031 Since: 2.12
11032
11033 query-display-options (Command) Returns information about display
11034 configuration
11035
11036 Returns: "DisplayOptions"
11037
11038 Since: 3.1
11039
11040 QAuthZListPolicy (Enum)
11041
11042 The authorization policy result
11043
11044 Values:
11045
11046 "deny"
11047 deny access
11048
11049 "allow"
11050 allow access
11051
11052 Since: 4.0
11053
11054 QAuthZListFormat (Enum)
11055
11056 The authorization policy match format
11057
11058 Values:
11059
11060 "exact"
11061 an exact string match
11062
11063 "glob"
11064 string with ? and * shell wildcard support
11065
11066 Since: 4.0
11067
11068 QAuthZListRule (Object)
11069
11070 A single authorization rule.
11071
11072 Members:
11073
11074 "match: string"
11075 a string or glob to match against a user identity
11076
11077 "policy: QAuthZListPolicy"
11078 the result to return if "match" evaluates to true
11079
11080 "format: QAuthZListFormat" (optional)
11081 the format of the "match" rule (default 'exact')
11082
11083 Since: 4.0
11084
11085 QAuthZListRuleListHack (Object)
11086
11087 Not exposed via QMP; hack to generate QAuthZListRuleList for use
11088 internally by the code.
11089
11090 Members:
11091
11092 "unused: array of QAuthZListRule"
11093 Not documented
11094
11095 Since: 4.0
11096
11097 Migration
11098 MigrationStats (Object)
11099
11100 Detailed migration status.
11101
11102 Members:
11103
11104 "transferred: int"
11105 amount of bytes already transferred to the target VM
11106
11107 "remaining: int"
11108 amount of bytes remaining to be transferred to the target VM
11109
11110 "total: int"
11111 total amount of bytes involved in the migration process
11112
11113 "duplicate: int"
11114 number of duplicate (zero) pages (since 1.2)
11115
11116 "skipped: int"
11117 number of skipped zero pages (since 1.5)
11118
11119 "normal: int"
11120 number of normal pages (since 1.2)
11121
11122 "normal-bytes: int"
11123 number of normal bytes sent (since 1.2)
11124
11125 "dirty-pages-rate: int"
11126 number of pages dirtied by second by the guest (since 1.3)
11127
11128 "mbps: number"
11129 throughput in megabits/sec. (since 1.6)
11130
11131 "dirty-sync-count: int"
11132 number of times that dirty ram was synchronized (since 2.1)
11133
11134 "postcopy-requests: int"
11135 The number of page requests received from the destination (since
11136 2.7)
11137
11138 "page-size: int"
11139 The number of bytes per page for the various page-based statistics
11140 (since 2.10)
11141
11142 "multifd-bytes: int"
11143 The number of bytes sent through multifd (since 3.0)
11144
11145 "pages-per-second: int"
11146 the number of memory pages transferred per second (Since 4.0)
11147
11148 Since: 0.14.0
11149
11150 XBZRLECacheStats (Object)
11151
11152 Detailed XBZRLE migration cache statistics
11153
11154 Members:
11155
11156 "cache-size: int"
11157 XBZRLE cache size
11158
11159 "bytes: int"
11160 amount of bytes already transferred to the target VM
11161
11162 "pages: int"
11163 amount of pages transferred to the target VM
11164
11165 "cache-miss: int"
11166 number of cache miss
11167
11168 "cache-miss-rate: number"
11169 rate of cache miss (since 2.1)
11170
11171 "overflow: int"
11172 number of overflows
11173
11174 Since: 1.2
11175
11176 CompressionStats (Object)
11177
11178 Detailed migration compression statistics
11179
11180 Members:
11181
11182 "pages: int"
11183 amount of pages compressed and transferred to the target VM
11184
11185 "busy: int"
11186 count of times that no free thread was available to compress data
11187
11188 "busy-rate: number"
11189 rate of thread busy
11190
11191 "compressed-size: int"
11192 amount of bytes after compression
11193
11194 "compression-rate: number"
11195 rate of compressed size
11196
11197 Since: 3.1
11198
11199 MigrationStatus (Enum)
11200
11201 An enumeration of migration status.
11202
11203 Values:
11204
11205 "none"
11206 no migration has ever happened.
11207
11208 "setup"
11209 migration process has been initiated.
11210
11211 "cancelling"
11212 in the process of cancelling migration.
11213
11214 "cancelled"
11215 cancelling migration is finished.
11216
11217 "active"
11218 in the process of doing migration.
11219
11220 "postcopy-active"
11221 like active, but now in postcopy mode. (since 2.5)
11222
11223 "postcopy-paused"
11224 during postcopy but paused. (since 3.0)
11225
11226 "postcopy-recover"
11227 trying to recover from a paused postcopy. (since 3.0)
11228
11229 "completed"
11230 migration is finished.
11231
11232 "failed"
11233 some error occurred during migration process.
11234
11235 "colo"
11236 VM is in the process of fault tolerance, VM can not get into this
11237 state unless colo capability is enabled for migration. (since 2.8)
11238
11239 "pre-switchover"
11240 Paused before device serialisation. (since 2.11)
11241
11242 "device"
11243 During device serialisation when pause-before-switchover is enabled
11244 (since 2.11)
11245
11246 Since: 2.3
11247
11248 MigrationInfo (Object)
11249
11250 Information about current migration process.
11251
11252 Members:
11253
11254 "status: MigrationStatus" (optional)
11255 "MigrationStatus" describing the current migration status. If this
11256 field is not returned, no migration process has been initiated
11257
11258 "ram: MigrationStats" (optional)
11259 "MigrationStats" containing detailed migration status, only
11260 returned if status is 'active' or 'completed'(since 1.2)
11261
11262 "disk: MigrationStats" (optional)
11263 "MigrationStats" containing detailed disk migration status, only
11264 returned if status is 'active' and it is a block migration
11265
11266 "xbzrle-cache: XBZRLECacheStats" (optional)
11267 "XBZRLECacheStats" containing detailed XBZRLE migration statistics,
11268 only returned if XBZRLE feature is on and status is 'active' or
11269 'completed' (since 1.2)
11270
11271 "total-time: int" (optional)
11272 total amount of milliseconds since migration started. If migration
11273 has ended, it returns the total migration time. (since 1.2)
11274
11275 "downtime: int" (optional)
11276 only present when migration finishes correctly total downtime in
11277 milliseconds for the guest. (since 1.3)
11278
11279 "expected-downtime: int" (optional)
11280 only present while migration is active expected downtime in
11281 milliseconds for the guest in last walk of the dirty bitmap. (since
11282 1.3)
11283
11284 "setup-time: int" (optional)
11285 amount of setup time in milliseconds before the iterations begin
11286 but after the QMP command is issued. This is designed to provide an
11287 accounting of any activities (such as RDMA pinning) which may be
11288 expensive, but do not actually occur during the iterative migration
11289 rounds themselves. (since 1.6)
11290
11291 "cpu-throttle-percentage: int" (optional)
11292 percentage of time guest cpus are being throttled during auto-
11293 converge. This is only present when auto-converge has started
11294 throttling guest cpus. (Since 2.7)
11295
11296 "error-desc: string" (optional)
11297 the human readable error description string, when "status" is
11298 'failed'. Clients should not attempt to parse the error strings.
11299 (Since 2.7)
11300
11301 "postcopy-blocktime: int" (optional)
11302 total time when all vCPU were blocked during postcopy live
11303 migration. This is only present when the postcopy-blocktime
11304 migration capability is enabled. (Since 3.0)
11305
11306 "postcopy-vcpu-blocktime: array of int" (optional)
11307 list of the postcopy blocktime per vCPU. This is only present when
11308 the postcopy-blocktime migration capability is enabled. (Since 3.0)
11309
11310 "compression: CompressionStats" (optional)
11311 migration compression statistics, only returned if compression
11312 feature is on and status is 'active' or 'completed' (Since 3.1)
11313
11314 "socket-address: array of SocketAddress" (optional)
11315 Only used for tcp, to know what the real port is (Since 4.0)
11316
11317 Since: 0.14.0
11318
11319 query-migrate (Command) Returns information about current migration
11320 process. If migration is active there will be another json-object with
11321 RAM migration status and if block migration is active another one with
11322 block migration status.
11323
11324 Returns: "MigrationInfo"
11325
11326 Since: 0.14.0
11327
11328 Example:
11329
11330 1. Before the first migration
11331
11332 -> { "execute": "query-migrate" }
11333 <- { "return": {} }
11334
11335 2. Migration is done and has succeeded
11336
11337 -> { "execute": "query-migrate" }
11338 <- { "return": {
11339 "status": "completed",
11340 "total-time":12345,
11341 "setup-time":12345,
11342 "downtime":12345,
11343 "ram":{
11344 "transferred":123,
11345 "remaining":123,
11346 "total":246,
11347 "duplicate":123,
11348 "normal":123,
11349 "normal-bytes":123456,
11350 "dirty-sync-count":15
11351 }
11352 }
11353 }
11354
11355 3. Migration is done and has failed
11356
11357 -> { "execute": "query-migrate" }
11358 <- { "return": { "status": "failed" } }
11359
11360 4. Migration is being performed and is not a block migration:
11361
11362 -> { "execute": "query-migrate" }
11363 <- {
11364 "return":{
11365 "status":"active",
11366 "total-time":12345,
11367 "setup-time":12345,
11368 "expected-downtime":12345,
11369 "ram":{
11370 "transferred":123,
11371 "remaining":123,
11372 "total":246,
11373 "duplicate":123,
11374 "normal":123,
11375 "normal-bytes":123456,
11376 "dirty-sync-count":15
11377 }
11378 }
11379 }
11380
11381 5. Migration is being performed and is a block migration:
11382
11383 -> { "execute": "query-migrate" }
11384 <- {
11385 "return":{
11386 "status":"active",
11387 "total-time":12345,
11388 "setup-time":12345,
11389 "expected-downtime":12345,
11390 "ram":{
11391 "total":1057024,
11392 "remaining":1053304,
11393 "transferred":3720,
11394 "duplicate":123,
11395 "normal":123,
11396 "normal-bytes":123456,
11397 "dirty-sync-count":15
11398 },
11399 "disk":{
11400 "total":20971520,
11401 "remaining":20880384,
11402 "transferred":91136
11403 }
11404 }
11405 }
11406
11407 6. Migration is being performed and XBZRLE is active:
11408
11409 -> { "execute": "query-migrate" }
11410 <- {
11411 "return":{
11412 "status":"active",
11413 "total-time":12345,
11414 "setup-time":12345,
11415 "expected-downtime":12345,
11416 "ram":{
11417 "total":1057024,
11418 "remaining":1053304,
11419 "transferred":3720,
11420 "duplicate":10,
11421 "normal":3333,
11422 "normal-bytes":3412992,
11423 "dirty-sync-count":15
11424 },
11425 "xbzrle-cache":{
11426 "cache-size":67108864,
11427 "bytes":20971520,
11428 "pages":2444343,
11429 "cache-miss":2244,
11430 "cache-miss-rate":0.123,
11431 "overflow":34434
11432 }
11433 }
11434 }
11435
11436 MigrationCapability (Enum)
11437
11438 Migration capabilities enumeration
11439
11440 Values:
11441
11442 "xbzrle"
11443 Migration supports xbzrle (Xor Based Zero Run Length Encoding).
11444 This feature allows us to minimize migration traffic for certain
11445 work loads, by sending compressed difference of the pages
11446
11447 "rdma-pin-all"
11448 Controls whether or not the entire VM memory footprint is mlock()'d
11449 on demand or all at once. Refer to docs/rdma.txt for usage.
11450 Disabled by default. (since 2.0)
11451
11452 "zero-blocks"
11453 During storage migration encode blocks of zeroes efficiently. This
11454 essentially saves 1MB of zeroes per block on the wire. Enabling
11455 requires source and target VM to support this feature. To enable it
11456 is sufficient to enable the capability on the source VM. The
11457 feature is disabled by default. (since 1.6)
11458
11459 "compress"
11460 Use multiple compression threads to accelerate live migration.
11461 This feature can help to reduce the migration traffic, by sending
11462 compressed pages. Please note that if compress and xbzrle are both
11463 on, compress only takes effect in the ram bulk stage, after that,
11464 it will be disabled and only xbzrle takes effect, this can help to
11465 minimize migration traffic. The feature is disabled by default.
11466 (since 2.4 )
11467
11468 "events"
11469 generate events for each migration state change (since 2.4 )
11470
11471 "auto-converge"
11472 If enabled, QEMU will automatically throttle down the guest to
11473 speed up convergence of RAM migration. (since 1.6)
11474
11475 "postcopy-ram"
11476 Start executing on the migration target before all of RAM has been
11477 migrated, pulling the remaining pages along as needed. The capacity
11478 must have the same setting on both source and target or migration
11479 will not even start. NOTE: If the migration fails during postcopy
11480 the VM will fail. (since 2.6)
11481
11482 "x-colo"
11483 If enabled, migration will never end, and the state of the VM on
11484 the primary side will be migrated continuously to the VM on
11485 secondary side, this process is called COarse-Grain LOck Stepping
11486 (COLO) for Non-stop Service. (since 2.8)
11487
11488 "release-ram"
11489 if enabled, qemu will free the migrated ram pages on the source
11490 during postcopy-ram migration. (since 2.9)
11491
11492 "block"
11493 If enabled, QEMU will also migrate the contents of all block
11494 devices. Default is disabled. A possible alternative uses mirror
11495 jobs to a builtin NBD server on the destination, which offers more
11496 flexibility. (Since 2.10)
11497
11498 "return-path"
11499 If enabled, migration will use the return path even for precopy.
11500 (since 2.10)
11501
11502 "pause-before-switchover"
11503 Pause outgoing migration before serialising device state and before
11504 disabling block IO (since 2.11)
11505
11506 "multifd"
11507 Use more than one fd for migration (since 4.0)
11508
11509 "dirty-bitmaps"
11510 If enabled, QEMU will migrate named dirty bitmaps. (since 2.12)
11511
11512 "postcopy-blocktime"
11513 Calculate downtime for postcopy live migration (since 3.0)
11514
11515 "late-block-activate"
11516 If enabled, the destination will not activate block devices (and
11517 thus take locks) immediately at the end of migration. (since 3.0)
11518
11519 "x-ignore-shared"
11520 If enabled, QEMU will not migrate shared memory (since 4.0)
11521
11522 Since: 1.2
11523
11524 MigrationCapabilityStatus (Object)
11525
11526 Migration capability information
11527
11528 Members:
11529
11530 "capability: MigrationCapability"
11531 capability enum
11532
11533 "state: boolean"
11534 capability state bool
11535
11536 Since: 1.2
11537
11538 migrate-set-capabilities (Command) Enable/Disable the following
11539 migration capabilities (like xbzrle)
11540
11541 Arguments:
11542
11543 "capabilities: array of MigrationCapabilityStatus"
11544 json array of capability modifications to make
11545
11546 Since: 1.2
11547
11548 Example:
11549
11550 -> { "execute": "migrate-set-capabilities" , "arguments":
11551 { "capabilities": [ { "capability": "xbzrle", "state": true } ] } }
11552
11553 query-migrate-capabilities (Command) Returns information about the
11554 current migration capabilities status
11555
11556 Returns: "MigrationCapabilitiesStatus"
11557
11558 Since: 1.2
11559
11560 Example:
11561
11562 -> { "execute": "query-migrate-capabilities" }
11563 <- { "return": [
11564 {"state": false, "capability": "xbzrle"},
11565 {"state": false, "capability": "rdma-pin-all"},
11566 {"state": false, "capability": "auto-converge"},
11567 {"state": false, "capability": "zero-blocks"},
11568 {"state": false, "capability": "compress"},
11569 {"state": true, "capability": "events"},
11570 {"state": false, "capability": "postcopy-ram"},
11571 {"state": false, "capability": "x-colo"}
11572 ]}
11573
11574 MigrationParameter (Enum)
11575
11576 Migration parameters enumeration
11577
11578 Values:
11579
11580 "announce-initial"
11581 Initial delay (in milliseconds) before sending the first announce
11582 (Since 4.0)
11583
11584 "announce-max"
11585 Maximum delay (in milliseconds) between packets in the announcement
11586 (Since 4.0)
11587
11588 "announce-rounds"
11589 Number of self-announce packets sent after migration (Since 4.0)
11590
11591 "announce-step"
11592 Increase in delay (in milliseconds) between subsequent packets in
11593 the announcement (Since 4.0)
11594
11595 "compress-level"
11596 Set the compression level to be used in live migration, the
11597 compression level is an integer between 0 and 9, where 0 means no
11598 compression, 1 means the best compression speed, and 9 means best
11599 compression ratio which will consume more CPU.
11600
11601 "compress-threads"
11602 Set compression thread count to be used in live migration, the
11603 compression thread count is an integer between 1 and 255.
11604
11605 "compress-wait-thread"
11606 Controls behavior when all compression threads are currently busy.
11607 If true (default), wait for a free compression thread to become
11608 available; otherwise, send the page uncompressed. (Since 3.1)
11609
11610 "decompress-threads"
11611 Set decompression thread count to be used in live migration, the
11612 decompression thread count is an integer between 1 and 255.
11613 Usually, decompression is at least 4 times as fast as compression,
11614 so set the decompress-threads to the number about 1/4 of compress-
11615 threads is adequate.
11616
11617 "cpu-throttle-initial"
11618 Initial percentage of time guest cpus are throttled when migration
11619 auto-converge is activated. The default value is 20. (Since 2.7)
11620
11621 "cpu-throttle-increment"
11622 throttle percentage increase each time auto-converge detects that
11623 migration is not making progress. The default value is 10. (Since
11624 2.7)
11625
11626 "tls-creds"
11627 ID of the 'tls-creds' object that provides credentials for
11628 establishing a TLS connection over the migration data channel. On
11629 the outgoing side of the migration, the credentials must be for a
11630 'client' endpoint, while for the incoming side the credentials must
11631 be for a 'server' endpoint. Setting this will enable TLS for all
11632 migrations. The default is unset, resulting in unsecured migration
11633 at the QEMU level. (Since 2.7)
11634
11635 "tls-hostname"
11636 hostname of the target host for the migration. This is required
11637 when using x509 based TLS credentials and the migration URI does
11638 not already include a hostname. For example if using fd: or exec:
11639 based migration, the hostname must be provided so that the server's
11640 x509 certificate identity can be validated. (Since 2.7)
11641
11642 "tls-authz"
11643 ID of the 'authz' object subclass that provides access control
11644 checking of the TLS x509 certificate distinguished name. This
11645 object is only resolved at time of use, so can be deleted and
11646 recreated on the fly while the migration server is active. If
11647 missing, it will default to denying access (Since 4.0)
11648
11649 "max-bandwidth"
11650 to set maximum speed for migration. maximum speed in bytes per
11651 second. (Since 2.8)
11652
11653 "downtime-limit"
11654 set maximum tolerated downtime for migration. maximum downtime in
11655 milliseconds (Since 2.8)
11656
11657 "x-checkpoint-delay"
11658 The delay time (in ms) between two COLO checkpoints in periodic
11659 mode. (Since 2.8)
11660
11661 "block-incremental"
11662 Affects how much storage is migrated when the block migration
11663 capability is enabled. When false, the entire storage backing
11664 chain is migrated into a flattened image at the destination; when
11665 true, only the active qcow2 layer is migrated and the destination
11666 must already have access to the same backing chain as was used on
11667 the source. (since 2.10)
11668
11669 "multifd-channels"
11670 Number of channels used to migrate data in parallel. This is the
11671 same number that the number of sockets used for migration. The
11672 default value is 2 (since 4.0)
11673
11674 "xbzrle-cache-size"
11675 cache size to be used by XBZRLE migration. It needs to be a
11676 multiple of the target page size and a power of 2 (Since 2.11)
11677
11678 "max-postcopy-bandwidth"
11679 Background transfer bandwidth during postcopy. Defaults to 0
11680 (unlimited). In bytes per second. (Since 3.0)
11681
11682 "max-cpu-throttle"
11683 maximum cpu throttle percentage. Defaults to 99. (Since 3.1)
11684
11685 Since: 2.4
11686
11687 MigrateSetParameters (Object)
11688
11689 Members:
11690
11691 "announce-initial: int" (optional)
11692 Initial delay (in milliseconds) before sending the first announce
11693 (Since 4.0)
11694
11695 "announce-max: int" (optional)
11696 Maximum delay (in milliseconds) between packets in the announcement
11697 (Since 4.0)
11698
11699 "announce-rounds: int" (optional)
11700 Number of self-announce packets sent after migration (Since 4.0)
11701
11702 "announce-step: int" (optional)
11703 Increase in delay (in milliseconds) between subsequent packets in
11704 the announcement (Since 4.0)
11705
11706 "compress-level: int" (optional)
11707 compression level
11708
11709 "compress-threads: int" (optional)
11710 compression thread count
11711
11712 "compress-wait-thread: boolean" (optional)
11713 Controls behavior when all compression threads are currently busy.
11714 If true (default), wait for a free compression thread to become
11715 available; otherwise, send the page uncompressed. (Since 3.1)
11716
11717 "decompress-threads: int" (optional)
11718 decompression thread count
11719
11720 "cpu-throttle-initial: int" (optional)
11721 Initial percentage of time guest cpus are throttled when migration
11722 auto-converge is activated. The default value is 20. (Since 2.7)
11723
11724 "cpu-throttle-increment: int" (optional)
11725 throttle percentage increase each time auto-converge detects that
11726 migration is not making progress. The default value is 10. (Since
11727 2.7)
11728
11729 "tls-creds: StrOrNull" (optional)
11730 ID of the 'tls-creds' object that provides credentials for
11731 establishing a TLS connection over the migration data channel. On
11732 the outgoing side of the migration, the credentials must be for a
11733 'client' endpoint, while for the incoming side the credentials must
11734 be for a 'server' endpoint. Setting this to a non-empty string
11735 enables TLS for all migrations. An empty string means that QEMU
11736 will use plain text mode for migration, rather than TLS (Since 2.9)
11737 Previously (since 2.7), this was reported by omitting tls-creds
11738 instead.
11739
11740 "tls-hostname: StrOrNull" (optional)
11741 hostname of the target host for the migration. This is required
11742 when using x509 based TLS credentials and the migration URI does
11743 not already include a hostname. For example if using fd: or exec:
11744 based migration, the hostname must be provided so that the server's
11745 x509 certificate identity can be validated. (Since 2.7) An empty
11746 string means that QEMU will use the hostname associated with the
11747 migration URI, if any. (Since 2.9) Previously (since 2.7), this was
11748 reported by omitting tls-hostname instead.
11749
11750 "max-bandwidth: int" (optional)
11751 to set maximum speed for migration. maximum speed in bytes per
11752 second. (Since 2.8)
11753
11754 "downtime-limit: int" (optional)
11755 set maximum tolerated downtime for migration. maximum downtime in
11756 milliseconds (Since 2.8)
11757
11758 "x-checkpoint-delay: int" (optional)
11759 the delay time between two COLO checkpoints. (Since 2.8)
11760
11761 "block-incremental: boolean" (optional)
11762 Affects how much storage is migrated when the block migration
11763 capability is enabled. When false, the entire storage backing
11764 chain is migrated into a flattened image at the destination; when
11765 true, only the active qcow2 layer is migrated and the destination
11766 must already have access to the same backing chain as was used on
11767 the source. (since 2.10)
11768
11769 "multifd-channels: int" (optional)
11770 Number of channels used to migrate data in parallel. This is the
11771 same number that the number of sockets used for migration. The
11772 default value is 2 (since 4.0)
11773
11774 "xbzrle-cache-size: int" (optional)
11775 cache size to be used by XBZRLE migration. It needs to be a
11776 multiple of the target page size and a power of 2 (Since 2.11)
11777
11778 "max-postcopy-bandwidth: int" (optional)
11779 Background transfer bandwidth during postcopy. Defaults to 0
11780 (unlimited). In bytes per second. (Since 3.0)
11781
11782 "max-cpu-throttle: int" (optional)
11783 maximum cpu throttle percentage. The default value is 99. (Since
11784 3.1)
11785
11786 "tls-authz: StrOrNull" (optional)
11787 Not documented
11788
11789 Since: 2.4
11790
11791 migrate-set-parameters (Command) Set various migration parameters.
11792
11793 Arguments: the members of "MigrateSetParameters"
11794
11795 Since: 2.4
11796
11797 Example:
11798
11799 -> { "execute": "migrate-set-parameters" ,
11800 "arguments": { "compress-level": 1 } }
11801
11802 MigrationParameters (Object)
11803
11804 The optional members aren't actually optional.
11805
11806 Members:
11807
11808 "announce-initial: int" (optional)
11809 Initial delay (in milliseconds) before sending the first announce
11810 (Since 4.0)
11811
11812 "announce-max: int" (optional)
11813 Maximum delay (in milliseconds) between packets in the announcement
11814 (Since 4.0)
11815
11816 "announce-rounds: int" (optional)
11817 Number of self-announce packets sent after migration (Since 4.0)
11818
11819 "announce-step: int" (optional)
11820 Increase in delay (in milliseconds) between subsequent packets in
11821 the announcement (Since 4.0)
11822
11823 "compress-level: int" (optional)
11824 compression level
11825
11826 "compress-threads: int" (optional)
11827 compression thread count
11828
11829 "compress-wait-thread: boolean" (optional)
11830 Controls behavior when all compression threads are currently busy.
11831 If true (default), wait for a free compression thread to become
11832 available; otherwise, send the page uncompressed. (Since 3.1)
11833
11834 "decompress-threads: int" (optional)
11835 decompression thread count
11836
11837 "cpu-throttle-initial: int" (optional)
11838 Initial percentage of time guest cpus are throttled when migration
11839 auto-converge is activated. (Since 2.7)
11840
11841 "cpu-throttle-increment: int" (optional)
11842 throttle percentage increase each time auto-converge detects that
11843 migration is not making progress. (Since 2.7)
11844
11845 "tls-creds: string" (optional)
11846 ID of the 'tls-creds' object that provides credentials for
11847 establishing a TLS connection over the migration data channel. On
11848 the outgoing side of the migration, the credentials must be for a
11849 'client' endpoint, while for the incoming side the credentials must
11850 be for a 'server' endpoint. An empty string means that QEMU will
11851 use plain text mode for migration, rather than TLS (Since 2.7)
11852 Note: 2.8 reports this by omitting tls-creds instead.
11853
11854 "tls-hostname: string" (optional)
11855 hostname of the target host for the migration. This is required
11856 when using x509 based TLS credentials and the migration URI does
11857 not already include a hostname. For example if using fd: or exec:
11858 based migration, the hostname must be provided so that the server's
11859 x509 certificate identity can be validated. (Since 2.7) An empty
11860 string means that QEMU will use the hostname associated with the
11861 migration URI, if any. (Since 2.9) Note: 2.8 reports this by
11862 omitting tls-hostname instead.
11863
11864 "tls-authz: string" (optional)
11865 ID of the 'authz' object subclass that provides access control
11866 checking of the TLS x509 certificate distinguished name. (Since
11867 4.0)
11868
11869 "max-bandwidth: int" (optional)
11870 to set maximum speed for migration. maximum speed in bytes per
11871 second. (Since 2.8)
11872
11873 "downtime-limit: int" (optional)
11874 set maximum tolerated downtime for migration. maximum downtime in
11875 milliseconds (Since 2.8)
11876
11877 "x-checkpoint-delay: int" (optional)
11878 the delay time between two COLO checkpoints. (Since 2.8)
11879
11880 "block-incremental: boolean" (optional)
11881 Affects how much storage is migrated when the block migration
11882 capability is enabled. When false, the entire storage backing
11883 chain is migrated into a flattened image at the destination; when
11884 true, only the active qcow2 layer is migrated and the destination
11885 must already have access to the same backing chain as was used on
11886 the source. (since 2.10)
11887
11888 "multifd-channels: int" (optional)
11889 Number of channels used to migrate data in parallel. This is the
11890 same number that the number of sockets used for migration. The
11891 default value is 2 (since 4.0)
11892
11893 "xbzrle-cache-size: int" (optional)
11894 cache size to be used by XBZRLE migration. It needs to be a
11895 multiple of the target page size and a power of 2 (Since 2.11)
11896
11897 "max-postcopy-bandwidth: int" (optional)
11898 Background transfer bandwidth during postcopy. Defaults to 0
11899 (unlimited). In bytes per second. (Since 3.0)
11900
11901 "max-cpu-throttle: int" (optional)
11902 maximum cpu throttle percentage. Defaults to 99. (Since 3.1)
11903
11904 Since: 2.4
11905
11906 query-migrate-parameters (Command) Returns information about the
11907 current migration parameters
11908
11909 Returns: "MigrationParameters"
11910
11911 Since: 2.4
11912
11913 Example:
11914
11915 -> { "execute": "query-migrate-parameters" }
11916 <- { "return": {
11917 "decompress-threads": 2,
11918 "cpu-throttle-increment": 10,
11919 "compress-threads": 8,
11920 "compress-level": 1,
11921 "cpu-throttle-initial": 20,
11922 "max-bandwidth": 33554432,
11923 "downtime-limit": 300
11924 }
11925 }
11926
11927 client_migrate_info (Command) Set migration information for remote
11928 display. This makes the server ask the client to automatically
11929 reconnect using the new parameters once migration finished
11930 successfully. Only implemented for SPICE.
11931
11932 Arguments:
11933
11934 "protocol: string"
11935 must be "spice"
11936
11937 "hostname: string"
11938 migration target hostname
11939
11940 "port: int" (optional)
11941 spice tcp port for plaintext channels
11942
11943 "tls-port: int" (optional)
11944 spice tcp port for tls-secured channels
11945
11946 "cert-subject: string" (optional)
11947 server certificate subject
11948
11949 Since: 0.14.0
11950
11951 Example:
11952
11953 -> { "execute": "client_migrate_info",
11954 "arguments": { "protocol": "spice",
11955 "hostname": "virt42.lab.kraxel.org",
11956 "port": 1234 } }
11957 <- { "return": {} }
11958
11959 migrate-start-postcopy (Command) Followup to a migration command to
11960 switch the migration to postcopy mode. The postcopy-ram capability
11961 must be set on both source and destination before the original
11962 migration command.
11963
11964 Since: 2.5
11965
11966 Example:
11967
11968 -> { "execute": "migrate-start-postcopy" }
11969 <- { "return": {} }
11970
11971 MIGRATION (Event) Emitted when a migration event happens
11972
11973 Arguments:
11974
11975 "status: MigrationStatus"
11976 "MigrationStatus" describing the current migration status.
11977
11978 Since: 2.4
11979
11980 Example:
11981
11982 <- {"timestamp": {"seconds": 1432121972, "microseconds": 744001},
11983 "event": "MIGRATION",
11984 "data": {"status": "completed"} }
11985
11986 MIGRATION_PASS (Event) Emitted from the source side of a migration at
11987 the start of each pass (when it syncs the dirty bitmap)
11988
11989 Arguments:
11990
11991 "pass: int"
11992 An incrementing count (starting at 1 on the first pass)
11993
11994 Since: 2.6
11995
11996 Example:
11997
11998 { "timestamp": {"seconds": 1449669631, "microseconds": 239225},
11999 "event": "MIGRATION_PASS", "data": {"pass": 2} }
12000
12001 COLOMessage (Enum)
12002
12003 The message transmission between Primary side and Secondary side.
12004
12005 Values:
12006
12007 "checkpoint-ready"
12008 Secondary VM (SVM) is ready for checkpointing
12009
12010 "checkpoint-request"
12011 Primary VM (PVM) tells SVM to prepare for checkpointing
12012
12013 "checkpoint-reply"
12014 SVM gets PVM's checkpoint request
12015
12016 "vmstate-send"
12017 VM's state will be sent by PVM.
12018
12019 "vmstate-size"
12020 The total size of VMstate.
12021
12022 "vmstate-received"
12023 VM's state has been received by SVM.
12024
12025 "vmstate-loaded"
12026 VM's state has been loaded by SVM.
12027
12028 Since: 2.8
12029
12030 COLOMode (Enum)
12031
12032 The COLO current mode.
12033
12034 Values:
12035
12036 "none"
12037 COLO is disabled.
12038
12039 "primary"
12040 COLO node in primary side.
12041
12042 "secondary"
12043 COLO node in slave side.
12044
12045 Since: 2.8
12046
12047 FailoverStatus (Enum)
12048
12049 An enumeration of COLO failover status
12050
12051 Values:
12052
12053 "none"
12054 no failover has ever happened
12055
12056 "require"
12057 got failover requirement but not handled
12058
12059 "active"
12060 in the process of doing failover
12061
12062 "completed"
12063 finish the process of failover
12064
12065 "relaunch"
12066 restart the failover process, from 'none' -> 'completed' (Since
12067 2.9)
12068
12069 Since: 2.8
12070
12071 COLO_EXIT (Event) Emitted when VM finishes COLO mode due to some
12072 errors happening or at the request of users.
12073
12074 Arguments:
12075
12076 "mode: COLOMode"
12077 report COLO mode when COLO exited.
12078
12079 "reason: COLOExitReason"
12080 describes the reason for the COLO exit.
12081
12082 Since: 3.1
12083
12084 Example:
12085
12086 <- { "timestamp": {"seconds": 2032141960, "microseconds": 417172},
12087 "event": "COLO_EXIT", "data": {"mode": "primary", "reason": "request" } }
12088
12089 COLOExitReason (Enum)
12090
12091 The reason for a COLO exit.
12092
12093 Values:
12094
12095 "none"
12096 failover has never happened. This state does not occur in the
12097 COLO_EXIT event, and is only visible in the result of query-colo-
12098 status.
12099
12100 "request"
12101 COLO exit is due to an external request.
12102
12103 "error"
12104 COLO exit is due to an internal error.
12105
12106 "processing"
12107 COLO is currently handling a failover (since 4.0).
12108
12109 Since: 3.1
12110
12111 x-colo-lost-heartbeat (Command) Tell qemu that heartbeat is lost,
12112 request it to do takeover procedures. If this command is sent to the
12113 PVM, the Primary side will exit COLO mode. If sent to the Secondary,
12114 the Secondary side will run failover work, then takes over server
12115 operation to become the service VM.
12116
12117 Since: 2.8
12118
12119 Example:
12120
12121 -> { "execute": "x-colo-lost-heartbeat" }
12122 <- { "return": {} }
12123
12124 migrate_cancel (Command) Cancel the current executing migration
12125 process.
12126
12127 Returns: nothing on success
12128
12129 Notes: This command succeeds even if there is no migration process
12130 running.
12131
12132 Since: 0.14.0
12133
12134 Example:
12135
12136 -> { "execute": "migrate_cancel" }
12137 <- { "return": {} }
12138
12139 migrate-continue (Command) Continue migration when it's in a paused
12140 state.
12141
12142 Arguments:
12143
12144 "state: MigrationStatus"
12145 The state the migration is currently expected to be in
12146
12147 Returns: nothing on success
12148
12149 Since: 2.11
12150
12151 Example:
12152
12153 -> { "execute": "migrate-continue" , "arguments":
12154 { "state": "pre-switchover" } }
12155 <- { "return": {} }
12156
12157 migrate_set_downtime (Command) Set maximum tolerated downtime for
12158 migration.
12159
12160 Arguments:
12161
12162 "value: number"
12163 maximum downtime in seconds
12164
12165 Returns: nothing on success
12166
12167 Notes: This command is deprecated in favor of 'migrate-set-parameters'
12168
12169 Since: 0.14.0
12170
12171 Example:
12172
12173 -> { "execute": "migrate_set_downtime", "arguments": { "value": 0.1 } }
12174 <- { "return": {} }
12175
12176 migrate_set_speed (Command) Set maximum speed for migration.
12177
12178 Arguments:
12179
12180 "value: int"
12181 maximum speed in bytes per second.
12182
12183 Returns: nothing on success
12184
12185 Notes: This command is deprecated in favor of 'migrate-set-parameters'
12186
12187 Since: 0.14.0
12188
12189 Example:
12190
12191 -> { "execute": "migrate_set_speed", "arguments": { "value": 1024 } }
12192 <- { "return": {} }
12193
12194 migrate-set-cache-size (Command) Set cache size to be used by XBZRLE
12195 migration
12196
12197 Arguments:
12198
12199 "value: int"
12200 cache size in bytes
12201
12202 The size will be rounded down to the nearest power of 2. The cache
12203 size can be modified before and during ongoing migration
12204
12205 Returns: nothing on success
12206
12207 Notes: This command is deprecated in favor of 'migrate-set-parameters'
12208
12209 Since: 1.2
12210
12211 Example:
12212
12213 -> { "execute": "migrate-set-cache-size",
12214 "arguments": { "value": 536870912 } }
12215 <- { "return": {} }
12216
12217 query-migrate-cache-size (Command) Query migration XBZRLE cache size
12218
12219 Returns: XBZRLE cache size in bytes
12220
12221 Notes: This command is deprecated in favor of
12222 'query-migrate-parameters'
12223
12224 Since: 1.2
12225
12226 Example:
12227
12228 -> { "execute": "query-migrate-cache-size" }
12229 <- { "return": 67108864 }
12230
12231 migrate (Command) Migrates the current running guest to another
12232 Virtual Machine.
12233
12234 Arguments:
12235
12236 "uri: string"
12237 the Uniform Resource Identifier of the destination VM
12238
12239 "blk: boolean" (optional)
12240 do block migration (full disk copy)
12241
12242 "inc: boolean" (optional)
12243 incremental disk copy migration
12244
12245 "detach: boolean" (optional)
12246 this argument exists only for compatibility reasons and is ignored
12247 by QEMU
12248
12249 "resume: boolean" (optional)
12250 resume one paused migration, default "off". (since 3.0)
12251
12252 Returns: nothing on success
12253
12254 Since: 0.14.0
12255
12256 Notes:
12257
12258 1. The 'query-migrate' command should be used to check migration's
12259 progress and final result (this information is provided by the
12260 'status' member)
12261
12262 2. All boolean arguments default to false
12263
12264 3. The user Monitor's "detach" argument is invalid in QMP and should
12265 not be used
12266
12267 Example:
12268
12269 -> { "execute": "migrate", "arguments": { "uri": "tcp:0:4446" } }
12270 <- { "return": {} }
12271
12272 migrate-incoming (Command) Start an incoming migration, the qemu must
12273 have been started with -incoming defer
12274
12275 Arguments:
12276
12277 "uri: string"
12278 The Uniform Resource Identifier identifying the source or address
12279 to listen on
12280
12281 Returns: nothing on success
12282
12283 Since: 2.3
12284
12285 Notes:
12286
12287 1. It's a bad idea to use a string for the uri, but it needs to stay
12288 compatible with -incoming and the format of the uri is already
12289 exposed above libvirt.
12290
12291 2. QEMU must be started with -incoming defer to allow migrate-incoming
12292 to be used.
12293
12294 3. The uri format is the same as for -incoming
12295
12296 Example:
12297
12298 -> { "execute": "migrate-incoming",
12299 "arguments": { "uri": "tcp::4446" } }
12300 <- { "return": {} }
12301
12302 xen-save-devices-state (Command) Save the state of all devices to
12303 file. The RAM and the block devices of the VM are not saved by this
12304 command.
12305
12306 Arguments:
12307
12308 "filename: string"
12309 the file to save the state of the devices to as binary data. See
12310 xen-save-devices-state.txt for a description of the binary format.
12311
12312 "live: boolean" (optional)
12313 Optional argument to ask QEMU to treat this command as part of a
12314 live migration. Default to true. (since 2.11)
12315
12316 Returns: Nothing on success
12317
12318 Since: 1.1
12319
12320 Example:
12321
12322 -> { "execute": "xen-save-devices-state",
12323 "arguments": { "filename": "/tmp/save" } }
12324 <- { "return": {} }
12325
12326 xen-set-replication (Command) Enable or disable replication.
12327
12328 Arguments:
12329
12330 "enable: boolean"
12331 true to enable, false to disable.
12332
12333 "primary: boolean"
12334 true for primary or false for secondary.
12335
12336 "failover: boolean" (optional)
12337 true to do failover, false to stop. but cannot be specified if
12338 'enable' is true. default value is false.
12339
12340 Returns: nothing.
12341
12342 Example:
12343
12344 -> { "execute": "xen-set-replication",
12345 "arguments": {"enable": true, "primary": false} }
12346 <- { "return": {} }
12347
12348 Since: 2.9
12349
12350 If: "defined(CONFIG_REPLICATION)"
12351
12352 ReplicationStatus (Object)
12353
12354 The result format for 'query-xen-replication-status'.
12355
12356 Members:
12357
12358 "error: boolean"
12359 true if an error happened, false if replication is normal.
12360
12361 "desc: string" (optional)
12362 the human readable error description string, when "error" is
12363 'true'.
12364
12365 Since: 2.9
12366
12367 If: "defined(CONFIG_REPLICATION)"
12368
12369 query-xen-replication-status (Command) Query replication status while
12370 the vm is running.
12371
12372 Returns: A "ReplicationResult" object showing the status.
12373
12374 Example:
12375
12376 -> { "execute": "query-xen-replication-status" }
12377 <- { "return": { "error": false } }
12378
12379 Since: 2.9
12380
12381 If: "defined(CONFIG_REPLICATION)"
12382
12383 xen-colo-do-checkpoint (Command) Xen uses this command to notify
12384 replication to trigger a checkpoint.
12385
12386 Returns: nothing.
12387
12388 Example:
12389
12390 -> { "execute": "xen-colo-do-checkpoint" }
12391 <- { "return": {} }
12392
12393 Since: 2.9
12394
12395 If: "defined(CONFIG_REPLICATION)"
12396
12397 COLOStatus (Object)
12398
12399 The result format for 'query-colo-status'.
12400
12401 Members:
12402
12403 "mode: COLOMode"
12404 COLO running mode. If COLO is running, this field will return
12405 'primary' or 'secondary'.
12406
12407 "last-mode: COLOMode"
12408 COLO last running mode. If COLO is running, this field will return
12409 same like mode field, after failover we can use this field to get
12410 last colo mode. (since 4.0)
12411
12412 "reason: COLOExitReason"
12413 describes the reason for the COLO exit.
12414
12415 Since: 3.1
12416
12417 query-colo-status (Command) Query COLO status while the vm is running.
12418
12419 Returns: A "COLOStatus" object showing the status.
12420
12421 Example:
12422
12423 -> { "execute": "query-colo-status" }
12424 <- { "return": { "mode": "primary", "reason": "request" } }
12425
12426 Since: 3.1
12427
12428 migrate-recover (Command) Provide a recovery migration stream URI.
12429
12430 Arguments:
12431
12432 "uri: string"
12433 the URI to be used for the recovery of migration stream.
12434
12435 Returns: nothing.
12436
12437 Example:
12438
12439 -> { "execute": "migrate-recover",
12440 "arguments": { "uri": "tcp:192.168.1.200:12345" } }
12441 <- { "return": {} }
12442
12443 Since: 3.0
12444
12445 migrate-pause (Command) Pause a migration. Currently it only supports
12446 postcopy.
12447
12448 Returns: nothing.
12449
12450 Example:
12451
12452 -> { "execute": "migrate-pause" }
12453 <- { "return": {} }
12454
12455 Since: 3.0
12456
12457 Transactions
12458 Abort (Object)
12459
12460 This action can be used to test transaction failure.
12461
12462 Since: 1.6
12463
12464 ActionCompletionMode (Enum)
12465
12466 An enumeration of Transactional completion modes.
12467
12468 Values:
12469
12470 "individual"
12471 Do not attempt to cancel any other Actions if any Actions fail
12472 after the Transaction request succeeds. All Actions that can
12473 complete successfully will do so without waiting on others. This
12474 is the default.
12475
12476 "grouped"
12477 If any Action fails after the Transaction succeeds, cancel all
12478 Actions. Actions do not complete until all Actions are ready to
12479 complete. May be rejected by Actions that do not support this
12480 completion mode.
12481
12482 Since: 2.5
12483
12484 TransactionAction (Object)
12485
12486 A discriminated record of operations that can be performed with
12487 "transaction". Action "type" can be:
12488
12489 - "abort": since 1.6
12490
12491 - "block-dirty-bitmap-add": since 2.5
12492
12493 - "block-dirty-bitmap-clear": since 2.5
12494
12495 - "block-dirty-bitmap-enable": since 4.0
12496
12497 - "block-dirty-bitmap-disable": since 4.0
12498
12499 - "block-dirty-bitmap-merge": since 4.0
12500
12501 - "blockdev-backup": since 2.3
12502
12503 - "blockdev-snapshot": since 2.5
12504
12505 - "blockdev-snapshot-internal-sync": since 1.7
12506
12507 - "blockdev-snapshot-sync": since 1.1
12508
12509 - "drive-backup": since 1.6
12510
12511 Members:
12512
12513 "type"
12514 One of "abort", "block-dirty-bitmap-add", "block-dirty-bitmap-
12515 clear", "block-dirty-bitmap-enable", "block-dirty-bitmap-disable",
12516 "block-dirty-bitmap-merge", "blockdev-backup", "blockdev-snapshot",
12517 "blockdev-snapshot-internal-sync", "blockdev-snapshot-sync",
12518 "drive-backup"
12519
12520 "data: Abort" when "type" is "abort"
12521 "data: BlockDirtyBitmapAdd" when "type" is "block-dirty-bitmap-add"
12522 "data: BlockDirtyBitmap" when "type" is "block-dirty-bitmap-clear"
12523 "data: BlockDirtyBitmap" when "type" is "block-dirty-bitmap-enable"
12524 "data: BlockDirtyBitmap" when "type" is "block-dirty-bitmap-disable"
12525 "data: BlockDirtyBitmapMerge" when "type" is "block-dirty-bitmap-merge"
12526 "data: BlockdevBackup" when "type" is "blockdev-backup"
12527 "data: BlockdevSnapshot" when "type" is "blockdev-snapshot"
12528 "data: BlockdevSnapshotInternal" when "type" is "blockdev-snapshot-
12529 internal-sync"
12530 "data: BlockdevSnapshotSync" when "type" is "blockdev-snapshot-sync"
12531 "data: DriveBackup" when "type" is "drive-backup"
12532
12533 Since: 1.1
12534
12535 TransactionProperties (Object)
12536
12537 Optional arguments to modify the behavior of a Transaction.
12538
12539 Members:
12540
12541 "completion-mode: ActionCompletionMode" (optional)
12542 Controls how jobs launched asynchronously by Actions will complete
12543 or fail as a group. See "ActionCompletionMode" for details.
12544
12545 Since: 2.5
12546
12547 transaction (Command) Executes a number of transactionable QMP
12548 commands atomically. If any operation fails, then the entire set of
12549 actions will be abandoned and the appropriate error returned.
12550
12551 For external snapshots, the dictionary contains the device, the file to
12552 use for the new snapshot, and the format. The default format, if not
12553 specified, is qcow2.
12554
12555 Each new snapshot defaults to being created by QEMU (wiping any
12556 contents if the file already exists), but it is also possible to reuse
12557 an externally-created file. In the latter case, you should ensure that
12558 the new image file has the same contents as the current one; QEMU
12559 cannot perform any meaningful check. Typically this is achieved by
12560 using the current image file as the backing file for the new image.
12561
12562 On failure, the original disks pre-snapshot attempt will be used.
12563
12564 For internal snapshots, the dictionary contains the device and the
12565 snapshot's name. If an internal snapshot matching name already exists,
12566 the request will be rejected. Only some image formats support it, for
12567 example, qcow2, rbd, and sheepdog.
12568
12569 On failure, qemu will try delete the newly created internal snapshot in
12570 the transaction. When an I/O error occurs during deletion, the user
12571 needs to fix it later with qemu-img or other command.
12572
12573 Arguments:
12574
12575 "actions: array of TransactionAction"
12576 List of "TransactionAction"; information needed for the respective
12577 operations.
12578
12579 "properties: TransactionProperties" (optional)
12580 structure of additional options to control the execution of the
12581 transaction. See "TransactionProperties" for additional detail.
12582
12583 Returns: nothing on success
12584
12585 Errors depend on the operations of the transaction
12586
12587 Note: The transaction aborts on the first failure. Therefore, there
12588 will be information on only one failed operation returned in an error
12589 condition, and subsequent actions will not have been attempted.
12590
12591 Since: 1.1
12592
12593 Example:
12594
12595 -> { "execute": "transaction",
12596 "arguments": { "actions": [
12597 { "type": "blockdev-snapshot-sync", "data" : { "device": "ide-hd0",
12598 "snapshot-file": "/some/place/my-image",
12599 "format": "qcow2" } },
12600 { "type": "blockdev-snapshot-sync", "data" : { "node-name": "myfile",
12601 "snapshot-file": "/some/place/my-image2",
12602 "snapshot-node-name": "node3432",
12603 "mode": "existing",
12604 "format": "qcow2" } },
12605 { "type": "blockdev-snapshot-sync", "data" : { "device": "ide-hd1",
12606 "snapshot-file": "/some/place/my-image2",
12607 "mode": "existing",
12608 "format": "qcow2" } },
12609 { "type": "blockdev-snapshot-internal-sync", "data" : {
12610 "device": "ide-hd2",
12611 "name": "snapshot0" } } ] } }
12612 <- { "return": {} }
12613
12614 Tracing
12615 TraceEventState (Enum)
12616
12617 State of a tracing event.
12618
12619 Values:
12620
12621 "unavailable"
12622 The event is statically disabled.
12623
12624 "disabled"
12625 The event is dynamically disabled.
12626
12627 "enabled"
12628 The event is dynamically enabled.
12629
12630 Since: 2.2
12631
12632 TraceEventInfo (Object)
12633
12634 Information of a tracing event.
12635
12636 Members:
12637
12638 "name: string"
12639 Event name.
12640
12641 "state: TraceEventState"
12642 Tracing state.
12643
12644 "vcpu: boolean"
12645 Whether this is a per-vCPU event (since 2.7).
12646
12647 An event is per-vCPU if it has the "vcpu" property in the "trace-
12648 events" files.
12649
12650 Since: 2.2
12651
12652 trace-event-get-state (Command) Query the state of events.
12653
12654 Arguments:
12655
12656 "name: string"
12657 Event name pattern (case-sensitive glob).
12658
12659 "vcpu: int" (optional)
12660 The vCPU to query (any by default; since 2.7).
12661
12662 Returns: a list of "TraceEventInfo" for the matching events
12663
12664 An event is returned if:
12665
12666 - its name matches the "name" pattern, and
12667
12668 - if "vcpu" is given, the event has the "vcpu" property.
12669
12670 Therefore, if "vcpu" is given, the operation will only match per-vCPU
12671 events, returning their state on the specified vCPU. Special case: if
12672 "name" is an exact match, "vcpu" is given and the event does not have
12673 the "vcpu" property, an error is returned.
12674
12675 Since: 2.2
12676
12677 Example:
12678
12679 -> { "execute": "trace-event-get-state",
12680 "arguments": { "name": "qemu_memalign" } }
12681 <- { "return": [ { "name": "qemu_memalign", "state": "disabled" } ] }
12682
12683 trace-event-set-state (Command) Set the dynamic tracing state of
12684 events.
12685
12686 Arguments:
12687
12688 "name: string"
12689 Event name pattern (case-sensitive glob).
12690
12691 "enable: boolean"
12692 Whether to enable tracing.
12693
12694 "ignore-unavailable: boolean" (optional)
12695 Do not match unavailable events with "name".
12696
12697 "vcpu: int" (optional)
12698 The vCPU to act upon (all by default; since 2.7).
12699
12700 An event's state is modified if:
12701
12702 - its name matches the "name" pattern, and
12703
12704 - if "vcpu" is given, the event has the "vcpu" property.
12705
12706 Therefore, if "vcpu" is given, the operation will only match per-vCPU
12707 events, setting their state on the specified vCPU. Special case: if
12708 "name" is an exact match, "vcpu" is given and the event does not have
12709 the "vcpu" property, an error is returned.
12710
12711 Since: 2.2
12712
12713 Example:
12714
12715 -> { "execute": "trace-event-set-state",
12716 "arguments": { "name": "qemu_memalign", "enable": "true" } }
12717 <- { "return": {} }
12718
12719 QMP introspection
12720 query-qmp-schema (Command) Command query-qmp-schema exposes the QMP
12721 wire ABI as an array of SchemaInfo. This lets QMP clients figure out
12722 what commands and events are available in this QEMU, and their
12723 parameters and results.
12724
12725 However, the SchemaInfo can't reflect all the rules and restrictions
12726 that apply to QMP. It's interface introspection (figuring out what's
12727 there), not interface specification. The specification is in the QAPI
12728 schema.
12729
12730 Furthermore, while we strive to keep the QMP wire format backwards-
12731 compatible across qemu versions, the introspection output is not
12732 guaranteed to have the same stability. For example, one version of
12733 qemu may list an object member as an optional non-variant, while
12734 another lists the same member only through the object's variants; or
12735 the type of a member may change from a generic string into a specific
12736 enum or from one specific type into an alternate that includes the
12737 original type alongside something else.
12738
12739 Returns: array of "SchemaInfo", where each element describes an entity
12740 in the ABI: command, event, type, ...
12741
12742 The order of the various SchemaInfo is unspecified; however, all names
12743 are guaranteed to be unique (no name will be duplicated with different
12744 meta-types).
12745
12746 Note: the QAPI schema is also used to help define internal interfaces,
12747 by defining QAPI types. These are not part of the QMP wire ABI, and
12748 therefore not returned by this command.
12749
12750 Since: 2.5
12751
12752 SchemaMetaType (Enum)
12753
12754 This is a "SchemaInfo"'s meta type, i.e. the kind of entity it
12755 describes.
12756
12757 Values:
12758
12759 "builtin"
12760 a predefined type such as 'int' or 'bool'.
12761
12762 "enum"
12763 an enumeration type
12764
12765 "array"
12766 an array type
12767
12768 "object"
12769 an object type (struct or union)
12770
12771 "alternate"
12772 an alternate type
12773
12774 "command"
12775 a QMP command
12776
12777 "event"
12778 a QMP event
12779
12780 Since: 2.5
12781
12782 SchemaInfo (Object)
12783
12784 Members:
12785
12786 "name: string"
12787 the entity's name, inherited from "base". The SchemaInfo is always
12788 referenced by this name. Commands and events have the name defined
12789 in the QAPI schema. Unlike command and event names, type names are
12790 not part of the wire ABI. Consequently, type names are meaningless
12791 strings here, although they are still guaranteed unique regardless
12792 of "meta-type".
12793
12794 "meta-type: SchemaMetaType"
12795 the entity's meta type, inherited from "base".
12796
12797 The members of "SchemaInfoBuiltin" when "meta-type" is "builtin"
12798 The members of "SchemaInfoEnum" when "meta-type" is "enum"
12799 The members of "SchemaInfoArray" when "meta-type" is "array"
12800 The members of "SchemaInfoObject" when "meta-type" is "object"
12801 The members of "SchemaInfoAlternate" when "meta-type" is "alternate"
12802 The members of "SchemaInfoCommand" when "meta-type" is "command"
12803 The members of "SchemaInfoEvent" when "meta-type" is "event"
12804
12805 Additional members depend on the value of "meta-type".
12806
12807 Since: 2.5
12808
12809 SchemaInfoBuiltin (Object)
12810
12811 Additional SchemaInfo members for meta-type 'builtin'.
12812
12813 Members:
12814
12815 "json-type: JSONType"
12816 the JSON type used for this type on the wire.
12817
12818 Since: 2.5
12819
12820 JSONType (Enum)
12821
12822 The four primitive and two structured types according to RFC 8259
12823 section 1, plus 'int' (split off 'number'), plus the obvious top type
12824 'value'.
12825
12826 Values:
12827
12828 "string"
12829 Not documented
12830
12831 "number"
12832 Not documented
12833
12834 "int"
12835 Not documented
12836
12837 "boolean"
12838 Not documented
12839
12840 "null"
12841 Not documented
12842
12843 "object"
12844 Not documented
12845
12846 "array"
12847 Not documented
12848
12849 "value"
12850 Not documented
12851
12852 Since: 2.5
12853
12854 SchemaInfoEnum (Object)
12855
12856 Additional SchemaInfo members for meta-type 'enum'.
12857
12858 Members:
12859
12860 "values: array of string"
12861 the enumeration type's values, in no particular order.
12862
12863 Values of this type are JSON string on the wire.
12864
12865 Since: 2.5
12866
12867 SchemaInfoArray (Object)
12868
12869 Additional SchemaInfo members for meta-type 'array'.
12870
12871 Members:
12872
12873 "element-type: string"
12874 the array type's element type.
12875
12876 Values of this type are JSON array on the wire.
12877
12878 Since: 2.5
12879
12880 SchemaInfoObject (Object)
12881
12882 Additional SchemaInfo members for meta-type 'object'.
12883
12884 Members:
12885
12886 "members: array of SchemaInfoObjectMember"
12887 the object type's (non-variant) members, in no particular order.
12888
12889 "tag: string" (optional)
12890 the name of the member serving as type tag. An element of
12891 "members" with this name must exist.
12892
12893 "variants: array of SchemaInfoObjectVariant" (optional)
12894 variant members, i.e. additional members that depend on the type
12895 tag's value. Present exactly when "tag" is present. The variants
12896 are in no particular order, and may even differ from the order of
12897 the values of the enum type of the "tag".
12898
12899 "features: array of string" (optional)
12900 names of features associated with the type, in no particular order.
12901 (since: 4.1)
12902
12903 Values of this type are JSON object on the wire.
12904
12905 Since: 2.5
12906
12907 SchemaInfoObjectMember (Object)
12908
12909 An object member.
12910
12911 Members:
12912
12913 "name: string"
12914 the member's name, as defined in the QAPI schema.
12915
12916 "type: string"
12917 the name of the member's type.
12918
12919 "default: value" (optional)
12920 default when used as command parameter. If absent, the parameter
12921 is mandatory. If present, the value must be null. The parameter
12922 is optional, and behavior when it's missing is not specified here.
12923 Future extension: if present and non-null, the parameter is
12924 optional, and defaults to this value.
12925
12926 Since: 2.5
12927
12928 SchemaInfoObjectVariant (Object)
12929
12930 The variant members for a value of the type tag.
12931
12932 Members:
12933
12934 "case: string"
12935 a value of the type tag.
12936
12937 "type: string"
12938 the name of the object type that provides the variant members when
12939 the type tag has value "case".
12940
12941 Since: 2.5
12942
12943 SchemaInfoAlternate (Object)
12944
12945 Additional SchemaInfo members for meta-type 'alternate'.
12946
12947 Members:
12948
12949 "members: array of SchemaInfoAlternateMember"
12950 the alternate type's members, in no particular order. The members'
12951 wire encoding is distinct, see docs/devel/qapi-code-gen.txt section
12952 Alternate types.
12953
12954 On the wire, this can be any of the members.
12955
12956 Since: 2.5
12957
12958 SchemaInfoAlternateMember (Object)
12959
12960 An alternate member.
12961
12962 Members:
12963
12964 "type: string"
12965 the name of the member's type.
12966
12967 Since: 2.5
12968
12969 SchemaInfoCommand (Object)
12970
12971 Additional SchemaInfo members for meta-type 'command'.
12972
12973 Members:
12974
12975 "arg-type: string"
12976 the name of the object type that provides the command's parameters.
12977
12978 "ret-type: string"
12979 the name of the command's result type.
12980
12981 "allow-oob: boolean" (optional)
12982 whether the command allows out-of-band execution, defaults to false
12983 (Since: 2.12)
12984
12985 TODO: "success-response" (currently irrelevant, because it's QGA, not
12986 QMP)
12987
12988 Since: 2.5
12989
12990 SchemaInfoEvent (Object)
12991
12992 Additional SchemaInfo members for meta-type 'event'.
12993
12994 Members:
12995
12996 "arg-type: string"
12997 the name of the object type that provides the event's parameters.
12998
12999 Since: 2.5
13000
13001 QEMU Object Model (QOM)
13002 ObjectPropertyInfo (Object)
13003
13004 Members:
13005
13006 "name: string"
13007 the name of the property
13008
13009 "type: string"
13010 the type of the property. This will typically come in one of four
13011 forms:
13012
13013 1) A primitive type such as 'u8', 'u16', 'bool', 'str', or
13014 'double'. These types are mapped to the appropriate JSON type.
13015
13016 2) A child type in the form 'child<subtype>' where subtype is a
13017 qdev device type name. Child properties create the composition
13018 tree.
13019
13020 3) A link type in the form 'link<subtype>' where subtype is a qdev
13021 device type name. Link properties form the device model graph.
13022
13023 "description: string" (optional)
13024 if specified, the description of the property.
13025
13026 Since: 1.2
13027
13028 qom-list (Command) This command will list any properties of a object
13029 given a path in the object model.
13030
13031 Arguments:
13032
13033 "path: string"
13034 the path within the object model. See "qom-get" for a description
13035 of this parameter.
13036
13037 Returns: a list of "ObjectPropertyInfo" that describe the properties of
13038 the object.
13039
13040 Since: 1.2
13041
13042 Example:
13043
13044 -> { "execute": "qom-list",
13045 "arguments": { "path": "/chardevs" } }
13046 <- { "return": [ { "name": "type", "type": "string" },
13047 { "name": "parallel0", "type": "child<chardev-vc>" },
13048 { "name": "serial0", "type": "child<chardev-vc>" },
13049 { "name": "mon0", "type": "child<chardev-stdio>" } ] }
13050
13051 qom-get (Command) This command will get a property from a object model
13052 path and return the value.
13053
13054 Arguments:
13055
13056 "path: string"
13057 The path within the object model. There are two forms of supported
13058 paths--absolute and partial paths.
13059
13060 Absolute paths are derived from the root object and can follow
13061 child<> or link<> properties. Since they can follow link<>
13062 properties, they can be arbitrarily long. Absolute paths look like
13063 absolute filenames and are prefixed with a leading slash.
13064
13065 Partial paths look like relative filenames. They do not begin with
13066 a prefix. The matching rules for partial paths are subtle but
13067 designed to make specifying objects easy. At each level of the
13068 composition tree, the partial path is matched as an absolute path.
13069 The first match is not returned. At least two matches are searched
13070 for. A successful result is only returned if only one match is
13071 found. If more than one match is found, a flag is return to
13072 indicate that the match was ambiguous.
13073
13074 "property: string"
13075 The property name to read
13076
13077 Returns: The property value. The type depends on the property type.
13078 child<> and link<> properties are returned as #str pathnames. All
13079 integer property types (u8, u16, etc) are returned as #int.
13080
13081 Since: 1.2
13082
13083 Example:
13084
13085 1. Use absolute path
13086
13087 -> { "execute": "qom-get",
13088 "arguments": { "path": "/machine/unattached/device[0]",
13089 "property": "hotplugged" } }
13090 <- { "return": false }
13091
13092 2. Use partial path
13093
13094 -> { "execute": "qom-get",
13095 "arguments": { "path": "unattached/sysbus",
13096 "property": "type" } }
13097 <- { "return": "System" }
13098
13099 qom-set (Command) This command will set a property from a object model
13100 path.
13101
13102 Arguments:
13103
13104 "path: string"
13105 see "qom-get" for a description of this parameter
13106
13107 "property: string"
13108 the property name to set
13109
13110 "value: value"
13111 a value who's type is appropriate for the property type. See
13112 "qom-get" for a description of type mapping.
13113
13114 Since: 1.2
13115
13116 Example:
13117
13118 -> { "execute": "qom-set",
13119 "arguments": { "path": "/machine",
13120 "property": "graphics",
13121 "value": false } }
13122 <- { "return": {} }
13123
13124 ObjectTypeInfo (Object)
13125
13126 This structure describes a search result from "qom-list-types"
13127
13128 Members:
13129
13130 "name: string"
13131 the type name found in the search
13132
13133 "abstract: boolean" (optional)
13134 the type is abstract and can't be directly instantiated. Omitted
13135 if false. (since 2.10)
13136
13137 "parent: string" (optional)
13138 Name of parent type, if any (since 2.10)
13139
13140 Since: 1.1
13141
13142 qom-list-types (Command) This command will return a list of types
13143 given search parameters
13144
13145 Arguments:
13146
13147 "implements: string" (optional)
13148 if specified, only return types that implement this type name
13149
13150 "abstract: boolean" (optional)
13151 if true, include abstract types in the results
13152
13153 Returns: a list of "ObjectTypeInfo" or an empty list if no results are
13154 found
13155
13156 Since: 1.1
13157
13158 qom-list-properties (Command) List properties associated with a QOM
13159 object.
13160
13161 Arguments:
13162
13163 "typename: string"
13164 the type name of an object
13165
13166 Note: objects can create properties at runtime, for example to describe
13167 links between different devices and/or objects. These properties are
13168 not included in the output of this command.
13169
13170 Returns: a list of ObjectPropertyInfo describing object properties
13171
13172 Since: 2.12
13173
13174 object-add (Command) Create a QOM object.
13175
13176 Arguments:
13177
13178 "qom-type: string"
13179 the class name for the object to be created
13180
13181 "id: string"
13182 the name of the new object
13183
13184 "props: value" (optional)
13185 a dictionary of properties to be passed to the backend
13186
13187 Returns: Nothing on success Error if "qom-type" is not a valid class
13188 name
13189
13190 Since: 2.0
13191
13192 Example:
13193
13194 -> { "execute": "object-add",
13195 "arguments": { "qom-type": "rng-random", "id": "rng1",
13196 "props": { "filename": "/dev/hwrng" } } }
13197 <- { "return": {} }
13198
13199 object-del (Command) Remove a QOM object.
13200
13201 Arguments:
13202
13203 "id: string"
13204 the name of the QOM object to remove
13205
13206 Returns: Nothing on success Error if "id" is not a valid id for a QOM
13207 object
13208
13209 Since: 2.0
13210
13211 Example:
13212
13213 -> { "execute": "object-del", "arguments": { "id": "rng1" } }
13214 <- { "return": {} }
13215
13216 Device infrastructure (qdev)
13217 device-list-properties (Command) List properties associated with a
13218 device.
13219
13220 Arguments:
13221
13222 "typename: string"
13223 the type name of a device
13224
13225 Returns: a list of ObjectPropertyInfo describing a devices properties
13226
13227 Note: objects can create properties at runtime, for example to describe
13228 links between different devices and/or objects. These properties are
13229 not included in the output of this command.
13230
13231 Since: 1.2
13232
13233 device_add (Command)
13234
13235 Arguments:
13236
13237 "driver: string"
13238 the name of the new device's driver
13239
13240 "bus: string" (optional)
13241 the device's parent bus (device tree path)
13242
13243 "id: string" (optional)
13244 the device's ID, must be unique
13245
13246 Additional arguments depend on the type.
13247
13248 Add a device.
13249
13250 Notes:
13251
13252 1. For detailed information about this command, please refer to the
13253 'docs/qdev-device-use.txt' file.
13254
13255 2. It's possible to list device properties by running QEMU with the
13256 "-device DEVICE,help" command-line argument, where DEVICE is the
13257 device's name
13258
13259 Example:
13260
13261 -> { "execute": "device_add",
13262 "arguments": { "driver": "e1000", "id": "net1",
13263 "bus": "pci.0",
13264 "mac": "52:54:00:12:34:56" } }
13265 <- { "return": {} }
13266
13267 TODO: This command effectively bypasses QAPI completely due to its
13268 "additional arguments" business. It shouldn't have been added to the
13269 schema in this form. It should be qapified properly, or replaced by a
13270 properly qapified command.
13271
13272 Since: 0.13
13273
13274 device_del (Command) Remove a device from a guest
13275
13276 Arguments:
13277
13278 "id: string"
13279 the device's ID or QOM path
13280
13281 Returns: Nothing on success If "id" is not a valid device,
13282 DeviceNotFound
13283
13284 Notes: When this command completes, the device may not be removed from
13285 the guest. Hot removal is an operation that requires guest
13286 cooperation. This command merely requests that the guest begin the hot
13287 removal process. Completion of the device removal process is signaled
13288 with a DEVICE_DELETED event. Guest reset will automatically complete
13289 removal for all devices.
13290
13291 Since: 0.14.0
13292
13293 Example:
13294
13295 -> { "execute": "device_del",
13296 "arguments": { "id": "net1" } }
13297 <- { "return": {} }
13298
13299 -> { "execute": "device_del",
13300 "arguments": { "id": "/machine/peripheral-anon/device[0]" } }
13301 <- { "return": {} }
13302
13303 DEVICE_DELETED (Event) Emitted whenever the device removal completion
13304 is acknowledged by the guest. At this point, it's safe to reuse the
13305 specified device ID. Device removal can be initiated by the guest or by
13306 HMP/QMP commands.
13307
13308 Arguments:
13309
13310 "device: string" (optional)
13311 device name
13312
13313 "path: string"
13314 device path
13315
13316 Since: 1.5
13317
13318 Example:
13319
13320 <- { "event": "DEVICE_DELETED",
13321 "data": { "device": "virtio-net-pci-0",
13322 "path": "/machine/peripheral/virtio-net-pci-0" },
13323 "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
13324
13325 Machines
13326 CpuInfoArch (Enum)
13327
13328 An enumeration of cpu types that enable additional information during
13329 "query-cpus" and "query-cpus-fast".
13330
13331 Values:
13332
13333 "s390"
13334 since 2.12
13335
13336 "riscv"
13337 since 2.12
13338
13339 "x86"
13340 Not documented
13341
13342 "sparc"
13343 Not documented
13344
13345 "ppc"
13346 Not documented
13347
13348 "mips"
13349 Not documented
13350
13351 "tricore"
13352 Not documented
13353
13354 "other"
13355 Not documented
13356
13357 Since: 2.6
13358
13359 CpuInfo (Object)
13360
13361 Information about a virtual CPU
13362
13363 Members:
13364
13365 "CPU: int"
13366 the index of the virtual CPU
13367
13368 "current: boolean"
13369 this only exists for backwards compatibility and should be ignored
13370
13371 "halted: boolean"
13372 true if the virtual CPU is in the halt state. Halt usually refers
13373 to a processor specific low power mode.
13374
13375 "qom_path: string"
13376 path to the CPU object in the QOM tree (since 2.4)
13377
13378 "thread_id: int"
13379 ID of the underlying host thread
13380
13381 "props: CpuInstanceProperties" (optional)
13382 properties describing to which node/socket/core/thread virtual CPU
13383 belongs to, provided if supported by board (since 2.10)
13384
13385 "arch: CpuInfoArch"
13386 architecture of the cpu, which determines which additional fields
13387 will be listed (since 2.6)
13388
13389 The members of "CpuInfoX86" when "arch" is "x86"
13390 The members of "CpuInfoSPARC" when "arch" is "sparc"
13391 The members of "CpuInfoPPC" when "arch" is "ppc"
13392 The members of "CpuInfoMIPS" when "arch" is "mips"
13393 The members of "CpuInfoTricore" when "arch" is "tricore"
13394 The members of "CpuInfoS390" when "arch" is "s390"
13395 The members of "CpuInfoRISCV" when "arch" is "riscv"
13396
13397 Since: 0.14.0
13398
13399 Notes: "halted" is a transient state that changes frequently. By the
13400 time the data is sent to the client, the guest may no longer be halted.
13401
13402 CpuInfoX86 (Object)
13403
13404 Additional information about a virtual i386 or x86_64 CPU
13405
13406 Members:
13407
13408 "pc: int"
13409 the 64-bit instruction pointer
13410
13411 Since: 2.6
13412
13413 CpuInfoSPARC (Object)
13414
13415 Additional information about a virtual SPARC CPU
13416
13417 Members:
13418
13419 "pc: int"
13420 the PC component of the instruction pointer
13421
13422 "npc: int"
13423 the NPC component of the instruction pointer
13424
13425 Since: 2.6
13426
13427 CpuInfoPPC (Object)
13428
13429 Additional information about a virtual PPC CPU
13430
13431 Members:
13432
13433 "nip: int"
13434 the instruction pointer
13435
13436 Since: 2.6
13437
13438 CpuInfoMIPS (Object)
13439
13440 Additional information about a virtual MIPS CPU
13441
13442 Members:
13443
13444 "PC: int"
13445 the instruction pointer
13446
13447 Since: 2.6
13448
13449 CpuInfoTricore (Object)
13450
13451 Additional information about a virtual Tricore CPU
13452
13453 Members:
13454
13455 "PC: int"
13456 the instruction pointer
13457
13458 Since: 2.6
13459
13460 CpuInfoRISCV (Object)
13461
13462 Additional information about a virtual RISCV CPU
13463
13464 Members:
13465
13466 "pc: int"
13467 the instruction pointer
13468
13469 Since 2.12
13470
13471 CpuS390State (Enum)
13472
13473 An enumeration of cpu states that can be assumed by a virtual S390 CPU
13474
13475 Values:
13476
13477 "uninitialized"
13478 Not documented
13479
13480 "stopped"
13481 Not documented
13482
13483 "check-stop"
13484 Not documented
13485
13486 "operating"
13487 Not documented
13488
13489 "load"
13490 Not documented
13491
13492 Since: 2.12
13493
13494 CpuInfoS390 (Object)
13495
13496 Additional information about a virtual S390 CPU
13497
13498 Members:
13499
13500 "cpu-state: CpuS390State"
13501 the virtual CPU's state
13502
13503 Since: 2.12
13504
13505 query-cpus (Command) Returns a list of information about each virtual
13506 CPU.
13507
13508 This command causes vCPU threads to exit to userspace, which causes a
13509 small interruption to guest CPU execution. This will have a negative
13510 impact on realtime guests and other latency sensitive guest workloads.
13511 It is recommended to use "query-cpus-fast" instead of this command to
13512 avoid the vCPU interruption.
13513
13514 Returns: a list of "CpuInfo" for each virtual CPU
13515
13516 Since: 0.14.0
13517
13518 Example:
13519
13520 -> { "execute": "query-cpus" }
13521 <- { "return": [
13522 {
13523 "CPU":0,
13524 "current":true,
13525 "halted":false,
13526 "qom_path":"/machine/unattached/device[0]",
13527 "arch":"x86",
13528 "pc":3227107138,
13529 "thread_id":3134
13530 },
13531 {
13532 "CPU":1,
13533 "current":false,
13534 "halted":true,
13535 "qom_path":"/machine/unattached/device[2]",
13536 "arch":"x86",
13537 "pc":7108165,
13538 "thread_id":3135
13539 }
13540 ]
13541 }
13542
13543 Notes: This interface is deprecated (since 2.12.0), and it is strongly
13544 recommended that you avoid using it. Use "query-cpus-fast" to obtain
13545 information about virtual CPUs.
13546
13547 CpuInfoFast (Object)
13548
13549 Information about a virtual CPU
13550
13551 Members:
13552
13553 "cpu-index: int"
13554 index of the virtual CPU
13555
13556 "qom-path: string"
13557 path to the CPU object in the QOM tree
13558
13559 "thread-id: int"
13560 ID of the underlying host thread
13561
13562 "props: CpuInstanceProperties" (optional)
13563 properties describing to which node/socket/core/thread virtual CPU
13564 belongs to, provided if supported by board
13565
13566 "arch: CpuInfoArch"
13567 base architecture of the cpu; deprecated since 3.0.0 in favor of
13568 "target"
13569
13570 "target: SysEmuTarget"
13571 the QEMU system emulation target, which determines which additional
13572 fields will be listed (since 3.0)
13573
13574 The members of "CpuInfoS390" when "target" is "s390x"
13575
13576 Since: 2.12
13577
13578 query-cpus-fast (Command) Returns information about all virtual CPUs.
13579 This command does not incur a performance penalty and should be used in
13580 production instead of query-cpus.
13581
13582 Returns: list of "CpuInfoFast"
13583
13584 Since: 2.12
13585
13586 Example:
13587
13588 -> { "execute": "query-cpus-fast" }
13589 <- { "return": [
13590 {
13591 "thread-id": 25627,
13592 "props": {
13593 "core-id": 0,
13594 "thread-id": 0,
13595 "socket-id": 0
13596 },
13597 "qom-path": "/machine/unattached/device[0]",
13598 "arch":"x86",
13599 "target":"x86_64",
13600 "cpu-index": 0
13601 },
13602 {
13603 "thread-id": 25628,
13604 "props": {
13605 "core-id": 0,
13606 "thread-id": 0,
13607 "socket-id": 1
13608 },
13609 "qom-path": "/machine/unattached/device[2]",
13610 "arch":"x86",
13611 "target":"x86_64",
13612 "cpu-index": 1
13613 }
13614 ]
13615 }
13616
13617 cpu-add (Command) Adds CPU with specified ID.
13618
13619 Arguments:
13620
13621 "id: int"
13622 ID of CPU to be created, valid values [0..max_cpus)
13623
13624 Returns: Nothing on success
13625
13626 Since: 1.5
13627
13628 Note: This command is deprecated. The `device_add` command should be
13629 used instead. See the `query-hotpluggable-cpus` command for details.
13630
13631 Example:
13632
13633 -> { "execute": "cpu-add", "arguments": { "id": 2 } }
13634 <- { "return": {} }
13635
13636 MachineInfo (Object)
13637
13638 Information describing a machine.
13639
13640 Members:
13641
13642 "name: string"
13643 the name of the machine
13644
13645 "alias: string" (optional)
13646 an alias for the machine name
13647
13648 "is-default: boolean" (optional)
13649 whether the machine is default
13650
13651 "cpu-max: int"
13652 maximum number of CPUs supported by the machine type (since 1.5.0)
13653
13654 "hotpluggable-cpus: boolean"
13655 cpu hotplug via -device is supported (since 2.7.0)
13656
13657 "numa-mem-supported: boolean"
13658 true if '-numa node,mem' option is supported by the machine type
13659 and false otherwise (since 4.1)
13660
13661 "deprecated: boolean"
13662 if true, the machine type is deprecated and may be removed in
13663 future versions of QEMU according to the QEMU deprecation policy
13664 (since 4.1.0)
13665
13666 Since: 1.2.0
13667
13668 query-machines (Command) Return a list of supported machines
13669
13670 Returns: a list of MachineInfo
13671
13672 Since: 1.2.0
13673
13674 CurrentMachineParams (Object)
13675
13676 Information describing the running machine parameters.
13677
13678 Members:
13679
13680 "wakeup-suspend-support: boolean"
13681 true if the machine supports wake up from suspend
13682
13683 Since: 4.0
13684
13685 query-current-machine (Command) Return information on the current
13686 virtual machine.
13687
13688 Returns: CurrentMachineParams
13689
13690 Since: 4.0
13691
13692 NumaOptionsType (Enum)
13693
13694 Values:
13695
13696 "node"
13697 NUMA nodes configuration
13698
13699 "dist"
13700 NUMA distance configuration (since 2.10)
13701
13702 "cpu"
13703 property based CPU(s) to node mapping (Since: 2.10)
13704
13705 Since: 2.1
13706
13707 NumaOptions (Object)
13708
13709 A discriminated record of NUMA options. (for OptsVisitor)
13710
13711 Members:
13712
13713 "type: NumaOptionsType"
13714 Not documented
13715
13716 The members of "NumaNodeOptions" when "type" is "node"
13717 The members of "NumaDistOptions" when "type" is "dist"
13718 The members of "NumaCpuOptions" when "type" is "cpu"
13719
13720 Since: 2.1
13721
13722 NumaNodeOptions (Object)
13723
13724 Create a guest NUMA node. (for OptsVisitor)
13725
13726 Members:
13727
13728 "nodeid: int" (optional)
13729 NUMA node ID (increase by 1 from 0 if omitted)
13730
13731 "cpus: array of int" (optional)
13732 VCPUs belonging to this node (assign VCPUS round-robin if omitted)
13733
13734 "mem: int" (optional)
13735 memory size of this node; mutually exclusive with "memdev".
13736 Equally divide total memory among nodes if both "mem" and "memdev"
13737 are omitted.
13738
13739 "memdev: string" (optional)
13740 memory backend object. If specified for one node, it must be
13741 specified for all nodes.
13742
13743 Since: 2.1
13744
13745 NumaDistOptions (Object)
13746
13747 Set the distance between 2 NUMA nodes.
13748
13749 Members:
13750
13751 "src: int"
13752 source NUMA node.
13753
13754 "dst: int"
13755 destination NUMA node.
13756
13757 "val: int"
13758 NUMA distance from source node to destination node. When a node is
13759 unreachable from another node, set the distance between them to
13760 255.
13761
13762 Since: 2.10
13763
13764 X86CPURegister32 (Enum)
13765
13766 A X86 32-bit register
13767
13768 Values:
13769
13770 "EAX"
13771 Not documented
13772
13773 "EBX"
13774 Not documented
13775
13776 "ECX"
13777 Not documented
13778
13779 "EDX"
13780 Not documented
13781
13782 "ESP"
13783 Not documented
13784
13785 "EBP"
13786 Not documented
13787
13788 "ESI"
13789 Not documented
13790
13791 "EDI"
13792 Not documented
13793
13794 Since: 1.5
13795
13796 X86CPUFeatureWordInfo (Object)
13797
13798 Information about a X86 CPU feature word
13799
13800 Members:
13801
13802 "cpuid-input-eax: int"
13803 Input EAX value for CPUID instruction for that feature word
13804
13805 "cpuid-input-ecx: int" (optional)
13806 Input ECX value for CPUID instruction for that feature word
13807
13808 "cpuid-register: X86CPURegister32"
13809 Output register containing the feature bits
13810
13811 "features: int"
13812 value of output register, containing the feature bits
13813
13814 Since: 1.5
13815
13816 DummyForceArrays (Object)
13817
13818 Not used by QMP; hack to let us use X86CPUFeatureWordInfoList
13819 internally
13820
13821 Members:
13822
13823 "unused: array of X86CPUFeatureWordInfo"
13824 Not documented
13825
13826 Since: 2.5
13827
13828 NumaCpuOptions (Object)
13829
13830 Option "-numa cpu" overrides default cpu to node mapping. It accepts
13831 the same set of cpu properties as returned by
13832 query-hotpluggable-cpus[].props, where node-id could be used to
13833 override default node mapping.
13834
13835 Members:
13836
13837 The members of "CpuInstanceProperties"
13838
13839 Since: 2.10
13840
13841 HostMemPolicy (Enum)
13842
13843 Host memory policy types
13844
13845 Values:
13846
13847 "default"
13848 restore default policy, remove any nondefault policy
13849
13850 "preferred"
13851 set the preferred host nodes for allocation
13852
13853 "bind"
13854 a strict policy that restricts memory allocation to the host nodes
13855 specified
13856
13857 "interleave"
13858 memory allocations are interleaved across the set of host nodes
13859 specified
13860
13861 Since: 2.1
13862
13863 Memdev (Object)
13864
13865 Information about memory backend
13866
13867 Members:
13868
13869 "id: string" (optional)
13870 backend's ID if backend has 'id' property (since 2.9)
13871
13872 "size: int"
13873 memory backend size
13874
13875 "merge: boolean"
13876 enables or disables memory merge support
13877
13878 "dump: boolean"
13879 includes memory backend's memory in a core dump or not
13880
13881 "prealloc: boolean"
13882 enables or disables memory preallocation
13883
13884 "host-nodes: array of int"
13885 host nodes for its memory policy
13886
13887 "policy: HostMemPolicy"
13888 memory policy of memory backend
13889
13890 Since: 2.1
13891
13892 query-memdev (Command) Returns information for all memory backends.
13893
13894 Returns: a list of "Memdev".
13895
13896 Since: 2.1
13897
13898 Example:
13899
13900 -> { "execute": "query-memdev" }
13901 <- { "return": [
13902 {
13903 "id": "mem1",
13904 "size": 536870912,
13905 "merge": false,
13906 "dump": true,
13907 "prealloc": false,
13908 "host-nodes": [0, 1],
13909 "policy": "bind"
13910 },
13911 {
13912 "size": 536870912,
13913 "merge": false,
13914 "dump": true,
13915 "prealloc": true,
13916 "host-nodes": [2, 3],
13917 "policy": "preferred"
13918 }
13919 ]
13920 }
13921
13922 CpuInstanceProperties (Object)
13923
13924 List of properties to be used for hotplugging a CPU instance, it should
13925 be passed by management with device_add command when a CPU is being
13926 hotplugged.
13927
13928 Members:
13929
13930 "node-id: int" (optional)
13931 NUMA node ID the CPU belongs to
13932
13933 "socket-id: int" (optional)
13934 socket number within node/board the CPU belongs to
13935
13936 "die-id: int" (optional)
13937 die number within node/board the CPU belongs to (Since 4.1)
13938
13939 "core-id: int" (optional)
13940 core number within die the CPU belongs to# "thread-id": thread
13941 number within core the CPU belongs to
13942
13943 "thread-id: int" (optional)
13944 Not documented
13945
13946 Note: currently there are 5 properties that could be present but
13947 management should be prepared to pass through other properties with
13948 device_add command to allow for future interface extension. This also
13949 requires the filed names to be kept in sync with the properties passed
13950 to -device/device_add.
13951
13952 Since: 2.7
13953
13954 HotpluggableCPU (Object)
13955
13956 Members:
13957
13958 "type: string"
13959 CPU object type for usage with device_add command
13960
13961 "props: CpuInstanceProperties"
13962 list of properties to be used for hotplugging CPU
13963
13964 "vcpus-count: int"
13965 number of logical VCPU threads "HotpluggableCPU" provides
13966
13967 "qom-path: string" (optional)
13968 link to existing CPU object if CPU is present or omitted if CPU is
13969 not present.
13970
13971 Since: 2.7
13972
13973 query-hotpluggable-cpus (Command)
13974
13975 TODO: Better documentation; currently there is none.
13976
13977 Returns: a list of HotpluggableCPU objects.
13978
13979 Since: 2.7
13980
13981 Example:
13982
13983 For pseries machine type started with -smp 2,cores=2,maxcpus=4 -cpu POWER8:
13984
13985 -> { "execute": "query-hotpluggable-cpus" }
13986 <- {"return": [
13987 { "props": { "core": 8 }, "type": "POWER8-spapr-cpu-core",
13988 "vcpus-count": 1 },
13989 { "props": { "core": 0 }, "type": "POWER8-spapr-cpu-core",
13990 "vcpus-count": 1, "qom-path": "/machine/unattached/device[0]"}
13991 ]}'
13992
13993 For pc machine type started with -smp 1,maxcpus=2:
13994
13995 -> { "execute": "query-hotpluggable-cpus" }
13996 <- {"return": [
13997 {
13998 "type": "qemu64-x86_64-cpu", "vcpus-count": 1,
13999 "props": {"core-id": 0, "socket-id": 1, "thread-id": 0}
14000 },
14001 {
14002 "qom-path": "/machine/unattached/device[0]",
14003 "type": "qemu64-x86_64-cpu", "vcpus-count": 1,
14004 "props": {"core-id": 0, "socket-id": 0, "thread-id": 0}
14005 }
14006 ]}
14007
14008 For s390x-virtio-ccw machine type started with -smp 1,maxcpus=2 -cpu qemu
14009 (Since: 2.11):
14010
14011 -> { "execute": "query-hotpluggable-cpus" }
14012 <- {"return": [
14013 {
14014 "type": "qemu-s390x-cpu", "vcpus-count": 1,
14015 "props": { "core-id": 1 }
14016 },
14017 {
14018 "qom-path": "/machine/unattached/device[0]",
14019 "type": "qemu-s390x-cpu", "vcpus-count": 1,
14020 "props": { "core-id": 0 }
14021 }
14022 ]}
14023
14024 set-numa-node (Command) Runtime equivalent of '-numa' CLI option,
14025 available at preconfigure stage to configure numa mapping before
14026 initializing machine.
14027
14028 Since 3.0
14029
14030 Arguments: the members of "NumaOptions"
14031
14032 CpuModelInfo (Object)
14033
14034 Virtual CPU model.
14035
14036 A CPU model consists of the name of a CPU definition, to which delta
14037 changes are applied (e.g. features added/removed). Most magic values
14038 that an architecture might require should be hidden behind the name.
14039 However, if required, architectures can expose relevant properties.
14040
14041 Members:
14042
14043 "name: string"
14044 the name of the CPU definition the model is based on
14045
14046 "props: value" (optional)
14047 a dictionary of QOM properties to be applied
14048
14049 Since: 2.8.0
14050
14051 CpuModelExpansionType (Enum)
14052
14053 An enumeration of CPU model expansion types.
14054
14055 Values:
14056
14057 "static"
14058 Expand to a static CPU model, a combination of a static base model
14059 name and property delta changes. As the static base model will
14060 never change, the expanded CPU model will be the same, independent
14061 of QEMU version, machine type, machine options, and accelerator
14062 options. Therefore, the resulting model can be used by tooling
14063 without having to specify a compatibility machine - e.g. when
14064 displaying the "host" model. The "static" CPU models are migration-
14065 safe.
14066
14067 "full"
14068 Expand all properties. The produced model is not guaranteed to be
14069 migration-safe, but allows tooling to get an insight and work with
14070 model details.
14071
14072 Note: When a non-migration-safe CPU model is expanded in static mode,
14073 some features enabled by the CPU model may be omitted, because they
14074 can't be implemented by a static CPU model definition (e.g. cache info
14075 passthrough and PMU passthrough in x86). If you need an accurate
14076 representation of the features enabled by a non-migration-safe CPU
14077 model, use "full". If you need a static representation that will keep
14078 ABI compatibility even when changing QEMU version or machine-type, use
14079 "static" (but keep in mind that some features may be omitted).
14080
14081 Since: 2.8.0
14082
14083 CpuModelCompareResult (Enum)
14084
14085 An enumeration of CPU model comparison results. The result is usually
14086 calculated using e.g. CPU features or CPU generations.
14087
14088 Values:
14089
14090 "incompatible"
14091 If model A is incompatible to model B, model A is not guaranteed to
14092 run where model B runs and the other way around.
14093
14094 "identical"
14095 If model A is identical to model B, model A is guaranteed to run
14096 where model B runs and the other way around.
14097
14098 "superset"
14099 If model A is a superset of model B, model B is guaranteed to run
14100 where model A runs. There are no guarantees about the other way.
14101
14102 "subset"
14103 If model A is a subset of model B, model A is guaranteed to run
14104 where model B runs. There are no guarantees about the other way.
14105
14106 Since: 2.8.0
14107
14108 CpuModelBaselineInfo (Object)
14109
14110 The result of a CPU model baseline.
14111
14112 Members:
14113
14114 "model: CpuModelInfo"
14115 the baselined CpuModelInfo.
14116
14117 Since: 2.8.0
14118
14119 If: "defined(TARGET_S390X)"
14120
14121 CpuModelCompareInfo (Object)
14122
14123 The result of a CPU model comparison.
14124
14125 Members:
14126
14127 "result: CpuModelCompareResult"
14128 The result of the compare operation.
14129
14130 "responsible-properties: array of string"
14131 List of properties that led to the comparison result not being
14132 identical.
14133
14134 "responsible-properties" is a list of QOM property names that led to
14135 both CPUs not being detected as identical. For identical models, this
14136 list is empty. If a QOM property is read-only, that means there's no
14137 known way to make the CPU models identical. If the special property
14138 name "type" is included, the models are by definition not identical and
14139 cannot be made identical.
14140
14141 Since: 2.8.0
14142
14143 If: "defined(TARGET_S390X)"
14144
14145 query-cpu-model-comparison (Command) Compares two CPU models,
14146 returning how they compare in a specific configuration. The results
14147 indicates how both models compare regarding runnability. This result
14148 can be used by tooling to make decisions if a certain CPU model will
14149 run in a certain configuration or if a compatible CPU model has to be
14150 created by baselining.
14151
14152 Usually, a CPU model is compared against the maximum possible CPU model
14153 of a certain configuration (e.g. the "host" model for KVM). If that CPU
14154 model is identical or a subset, it will run in that configuration.
14155
14156 The result returned by this command may be affected by:
14157
14158 · QEMU version: CPU models may look different depending on the QEMU
14159 version. (Except for CPU models reported as "static" in query-cpu-
14160 definitions.)
14161
14162 · machine-type: CPU model may look different depending on the
14163 machine-type. (Except for CPU models reported as "static" in
14164 query-cpu-definitions.)
14165
14166 · machine options (including accelerator): in some architectures, CPU
14167 models may look different depending on machine and accelerator
14168 options. (Except for CPU models reported as "static" in query-cpu-
14169 definitions.)
14170
14171 · "-cpu" arguments and global properties: arguments to the -cpu
14172 option and global properties may affect expansion of CPU models.
14173 Using query-cpu-model-expansion while using these is not advised.
14174
14175 Some architectures may not support comparing CPU models. s390x supports
14176 comparing CPU models.
14177
14178 Arguments:
14179
14180 "modela: CpuModelInfo"
14181 Not documented
14182
14183 "modelb: CpuModelInfo"
14184 Not documented
14185
14186 Returns: a CpuModelBaselineInfo. Returns an error if comparing CPU
14187 models is not supported, if a model cannot be used, if a model contains
14188 an unknown cpu definition name, unknown properties or properties with
14189 wrong types.
14190
14191 Note: this command isn't specific to s390x, but is only implemented on
14192 this architecture currently.
14193
14194 Since: 2.8.0
14195
14196 If: "defined(TARGET_S390X)"
14197
14198 query-cpu-model-baseline (Command) Baseline two CPU models, creating a
14199 compatible third model. The created model will always be a static,
14200 migration-safe CPU model (see "static" CPU model expansion for
14201 details).
14202
14203 This interface can be used by tooling to create a compatible CPU model
14204 out two CPU models. The created CPU model will be identical to or a
14205 subset of both CPU models when comparing them. Therefore, the created
14206 CPU model is guaranteed to run where the given CPU models run.
14207
14208 The result returned by this command may be affected by:
14209
14210 · QEMU version: CPU models may look different depending on the QEMU
14211 version. (Except for CPU models reported as "static" in query-cpu-
14212 definitions.)
14213
14214 · machine-type: CPU model may look different depending on the
14215 machine-type. (Except for CPU models reported as "static" in
14216 query-cpu-definitions.)
14217
14218 · machine options (including accelerator): in some architectures, CPU
14219 models may look different depending on machine and accelerator
14220 options. (Except for CPU models reported as "static" in query-cpu-
14221 definitions.)
14222
14223 · "-cpu" arguments and global properties: arguments to the -cpu
14224 option and global properties may affect expansion of CPU models.
14225 Using query-cpu-model-expansion while using these is not advised.
14226
14227 Some architectures may not support baselining CPU models. s390x
14228 supports baselining CPU models.
14229
14230 Arguments:
14231
14232 "modela: CpuModelInfo"
14233 Not documented
14234
14235 "modelb: CpuModelInfo"
14236 Not documented
14237
14238 Returns: a CpuModelBaselineInfo. Returns an error if baselining CPU
14239 models is not supported, if a model cannot be used, if a model contains
14240 an unknown cpu definition name, unknown properties or properties with
14241 wrong types.
14242
14243 Note: this command isn't specific to s390x, but is only implemented on
14244 this architecture currently.
14245
14246 Since: 2.8.0
14247
14248 If: "defined(TARGET_S390X)"
14249
14250 CpuModelExpansionInfo (Object)
14251
14252 The result of a cpu model expansion.
14253
14254 Members:
14255
14256 "model: CpuModelInfo"
14257 the expanded CpuModelInfo.
14258
14259 Since: 2.8.0
14260
14261 If: "defined(TARGET_S390X) || defined(TARGET_I386)"
14262
14263 query-cpu-model-expansion (Command) Expands a given CPU model (or a
14264 combination of CPU model + additional options) to different
14265 granularities, allowing tooling to get an understanding what a specific
14266 CPU model looks like in QEMU under a certain configuration.
14267
14268 This interface can be used to query the "host" CPU model.
14269
14270 The data returned by this command may be affected by:
14271
14272 · QEMU version: CPU models may look different depending on the QEMU
14273 version. (Except for CPU models reported as "static" in query-cpu-
14274 definitions.)
14275
14276 · machine-type: CPU model may look different depending on the
14277 machine-type. (Except for CPU models reported as "static" in
14278 query-cpu-definitions.)
14279
14280 · machine options (including accelerator): in some architectures, CPU
14281 models may look different depending on machine and accelerator
14282 options. (Except for CPU models reported as "static" in query-cpu-
14283 definitions.)
14284
14285 · "-cpu" arguments and global properties: arguments to the -cpu
14286 option and global properties may affect expansion of CPU models.
14287 Using query-cpu-model-expansion while using these is not advised.
14288
14289 Some architectures may not support all expansion types. s390x supports
14290 "full" and "static".
14291
14292 Arguments:
14293
14294 "type: CpuModelExpansionType"
14295 Not documented
14296
14297 "model: CpuModelInfo"
14298 Not documented
14299
14300 Returns: a CpuModelExpansionInfo. Returns an error if expanding CPU
14301 models is not supported, if the model cannot be expanded, if the model
14302 contains an unknown CPU definition name, unknown properties or
14303 properties with a wrong type. Also returns an error if an expansion
14304 type is not supported.
14305
14306 Since: 2.8.0
14307
14308 If: "defined(TARGET_S390X) || defined(TARGET_I386)"
14309
14310 CpuDefinitionInfo (Object)
14311
14312 Virtual CPU definition.
14313
14314 Members:
14315
14316 "name: string"
14317 the name of the CPU definition
14318
14319 "migration-safe: boolean" (optional)
14320 whether a CPU definition can be safely used for migration in
14321 combination with a QEMU compatibility machine when migrating
14322 between different QEMU versions and between hosts with different
14323 sets of (hardware or software) capabilities. If not provided,
14324 information is not available and callers should not assume the CPU
14325 definition to be migration-safe. (since 2.8)
14326
14327 "static: boolean"
14328 whether a CPU definition is static and will not change depending on
14329 QEMU version, machine type, machine options and accelerator
14330 options. A static model is always migration-safe. (since 2.8)
14331
14332 "unavailable-features: array of string" (optional)
14333 List of properties that prevent the CPU model from running in the
14334 current host. (since 2.8)
14335
14336 "typename: string"
14337 Type name that can be used as argument to "device-list-properties",
14338 to introspect properties configurable using -cpu or -global.
14339 (since 2.9)
14340
14341 "alias-of: string" (optional)
14342 Name of CPU model this model is an alias for. The target of the
14343 CPU model alias may change depending on the machine type.
14344 Management software is supposed to translate CPU model aliases in
14345 the VM configuration, because aliases may stop being migration-safe
14346 in the future (since 4.1)
14347
14348 "unavailable-features" is a list of QOM property names that represent
14349 CPU model attributes that prevent the CPU from running. If the QOM
14350 property is read-only, that means there's no known way to make the CPU
14351 model run in the current host. Implementations that choose not to
14352 provide specific information return the property name "type". If the
14353 property is read-write, it means that it MAY be possible to run the CPU
14354 model in the current host if that property is changed. Management
14355 software can use it as hints to suggest or choose an alternative for
14356 the user, or just to generate meaningful error messages explaining why
14357 the CPU model can't be used. If "unavailable-features" is an empty
14358 list, the CPU model is runnable using the current host and machine-
14359 type. If "unavailable-features" is not present, runnability
14360 information for the CPU is not available.
14361
14362 Since: 1.2.0
14363
14364 If: "defined(TARGET_PPC) || defined(TARGET_ARM) || defined(TARGET_I386)
14365 || defined(TARGET_S390X) || defined(TARGET_MIPS)"
14366
14367 query-cpu-definitions (Command) Return a list of supported virtual CPU
14368 definitions
14369
14370 Returns: a list of CpuDefInfo
14371
14372 Since: 1.2.0
14373
14374 If: "defined(TARGET_PPC) || defined(TARGET_ARM) || defined(TARGET_I386)
14375 || defined(TARGET_S390X) || defined(TARGET_MIPS)"
14376
14377 Miscellanea
14378 qmp_capabilities (Command) Enable QMP capabilities.
14379
14380 Arguments:
14381
14382 Arguments:
14383
14384 "enable: array of QMPCapability" (optional)
14385 An optional list of QMPCapability values to enable. The client
14386 must not enable any capability that is not mentioned in the QMP
14387 greeting message. If the field is not provided, it means no QMP
14388 capabilities will be enabled. (since 2.12)
14389
14390 Example:
14391
14392 -> { "execute": "qmp_capabilities",
14393 "arguments": { "enable": [ "oob" ] } }
14394 <- { "return": {} }
14395
14396 Notes: This command is valid exactly when first connecting: it must be
14397 issued before any other command will be accepted, and will fail once
14398 the monitor is accepting other commands. (see qemu
14399 docs/interop/qmp-spec.txt)
14400
14401 The QMP client needs to explicitly enable QMP capabilities, otherwise
14402 all the QMP capabilities will be turned off by default.
14403
14404 Since: 0.13
14405
14406 QMPCapability (Enum)
14407
14408 Enumeration of capabilities to be advertised during initial client
14409 connection, used for agreeing on particular QMP extension behaviors.
14410
14411 Values:
14412
14413 "oob"
14414 QMP ability to support out-of-band requests. (Please refer to
14415 qmp-spec.txt for more information on OOB)
14416
14417 Since: 2.12
14418
14419 VersionTriple (Object)
14420
14421 A three-part version number.
14422
14423 Members:
14424
14425 "major: int"
14426 The major version number.
14427
14428 "minor: int"
14429 The minor version number.
14430
14431 "micro: int"
14432 The micro version number.
14433
14434 Since: 2.4
14435
14436 VersionInfo (Object)
14437
14438 A description of QEMU's version.
14439
14440 Members:
14441
14442 "qemu: VersionTriple"
14443 The version of QEMU. By current convention, a micro version of 50
14444 signifies a development branch. A micro version greater than or
14445 equal to 90 signifies a release candidate for the next minor
14446 version. A micro version of less than 50 signifies a stable
14447 release.
14448
14449 "package: string"
14450 QEMU will always set this field to an empty string. Downstream
14451 versions of QEMU should set this to a non-empty string. The exact
14452 format depends on the downstream however it highly recommended that
14453 a unique name is used.
14454
14455 Since: 0.14.0
14456
14457 query-version (Command) Returns the current version of QEMU.
14458
14459 Returns: A "VersionInfo" object describing the current version of QEMU.
14460
14461 Since: 0.14.0
14462
14463 Example:
14464
14465 -> { "execute": "query-version" }
14466 <- {
14467 "return":{
14468 "qemu":{
14469 "major":0,
14470 "minor":11,
14471 "micro":5
14472 },
14473 "package":""
14474 }
14475 }
14476
14477 CommandInfo (Object)
14478
14479 Information about a QMP command
14480
14481 Members:
14482
14483 "name: string"
14484 The command name
14485
14486 Since: 0.14.0
14487
14488 query-commands (Command) Return a list of supported QMP commands by
14489 this server
14490
14491 Returns: A list of "CommandInfo" for all supported commands
14492
14493 Since: 0.14.0
14494
14495 Example:
14496
14497 -> { "execute": "query-commands" }
14498 <- {
14499 "return":[
14500 {
14501 "name":"query-balloon"
14502 },
14503 {
14504 "name":"system_powerdown"
14505 }
14506 ]
14507 }
14508
14509 Note: This example has been shortened as the real response is too long.
14510
14511 LostTickPolicy (Enum)
14512
14513 Policy for handling lost ticks in timer devices.
14514
14515 Values:
14516
14517 "discard"
14518 throw away the missed tick(s) and continue with future injection
14519 normally. Guest time may be delayed, unless the OS has explicit
14520 handling of lost ticks
14521
14522 "delay"
14523 continue to deliver ticks at the normal rate. Guest time will be
14524 delayed due to the late tick
14525
14526 "slew"
14527 deliver ticks at a higher rate to catch up with the missed tick.
14528 The guest time should not be delayed once catchup is complete.
14529
14530 Since: 2.0
14531
14532 add_client (Command) Allow client connections for VNC, Spice and
14533 socket based character devices to be passed in to QEMU via SCM_RIGHTS.
14534
14535 Arguments:
14536
14537 "protocol: string"
14538 protocol name. Valid names are "vnc", "spice" or the name of a
14539 character device (eg. from -chardev id=XXXX)
14540
14541 "fdname: string"
14542 file descriptor name previously passed via 'getfd' command
14543
14544 "skipauth: boolean" (optional)
14545 whether to skip authentication. Only applies to "vnc" and "spice"
14546 protocols
14547
14548 "tls: boolean" (optional)
14549 whether to perform TLS. Only applies to the "spice" protocol
14550
14551 Returns: nothing on success.
14552
14553 Since: 0.14.0
14554
14555 Example:
14556
14557 -> { "execute": "add_client", "arguments": { "protocol": "vnc",
14558 "fdname": "myclient" } }
14559 <- { "return": {} }
14560
14561 NameInfo (Object)
14562
14563 Guest name information.
14564
14565 Members:
14566
14567 "name: string" (optional)
14568 The name of the guest
14569
14570 Since: 0.14.0
14571
14572 query-name (Command) Return the name information of a guest.
14573
14574 Returns: "NameInfo" of the guest
14575
14576 Since: 0.14.0
14577
14578 Example:
14579
14580 -> { "execute": "query-name" }
14581 <- { "return": { "name": "qemu-name" } }
14582
14583 KvmInfo (Object)
14584
14585 Information about support for KVM acceleration
14586
14587 Members:
14588
14589 "enabled: boolean"
14590 true if KVM acceleration is active
14591
14592 "present: boolean"
14593 true if KVM acceleration is built into this executable
14594
14595 Since: 0.14.0
14596
14597 query-kvm (Command) Returns information about KVM acceleration
14598
14599 Returns: "KvmInfo"
14600
14601 Since: 0.14.0
14602
14603 Example:
14604
14605 -> { "execute": "query-kvm" }
14606 <- { "return": { "enabled": true, "present": true } }
14607
14608 UuidInfo (Object)
14609
14610 Guest UUID information (Universally Unique Identifier).
14611
14612 Members:
14613
14614 "UUID: string"
14615 the UUID of the guest
14616
14617 Since: 0.14.0
14618
14619 Notes: If no UUID was specified for the guest, a null UUID is returned.
14620
14621 query-uuid (Command) Query the guest UUID information.
14622
14623 Returns: The "UuidInfo" for the guest
14624
14625 Since: 0.14.0
14626
14627 Example:
14628
14629 -> { "execute": "query-uuid" }
14630 <- { "return": { "UUID": "550e8400-e29b-41d4-a716-446655440000" } }
14631
14632 EventInfo (Object)
14633
14634 Information about a QMP event
14635
14636 Members:
14637
14638 "name: string"
14639 The event name
14640
14641 Since: 1.2.0
14642
14643 query-events (Command) Return information on QMP events.
14644
14645 Returns: A list of "EventInfo".
14646
14647 Since: 1.2.0
14648
14649 Note: This command is deprecated, because its output doesn't reflect
14650 compile-time configuration. Use query-qmp-schema instead.
14651
14652 Example:
14653
14654 -> { "execute": "query-events" }
14655 <- {
14656 "return": [
14657 {
14658 "name":"SHUTDOWN"
14659 },
14660 {
14661 "name":"RESET"
14662 }
14663 ]
14664 }
14665
14666 Note: This example has been shortened as the real response is too long.
14667
14668 IOThreadInfo (Object)
14669
14670 Information about an iothread
14671
14672 Members:
14673
14674 "id: string"
14675 the identifier of the iothread
14676
14677 "thread-id: int"
14678 ID of the underlying host thread
14679
14680 "poll-max-ns: int"
14681 maximum polling time in ns, 0 means polling is disabled (since 2.9)
14682
14683 "poll-grow: int"
14684 how many ns will be added to polling time, 0 means that it's not
14685 configured (since 2.9)
14686
14687 "poll-shrink: int"
14688 how many ns will be removed from polling time, 0 means that it's
14689 not configured (since 2.9)
14690
14691 Since: 2.0
14692
14693 query-iothreads (Command) Returns a list of information about each
14694 iothread.
14695
14696 Note: this list excludes the QEMU main loop thread, which is not
14697 declared using the -object iothread command-line option. It is always
14698 the main thread of the process.
14699
14700 Returns: a list of "IOThreadInfo" for each iothread
14701
14702 Since: 2.0
14703
14704 Example:
14705
14706 -> { "execute": "query-iothreads" }
14707 <- { "return": [
14708 {
14709 "id":"iothread0",
14710 "thread-id":3134
14711 },
14712 {
14713 "id":"iothread1",
14714 "thread-id":3135
14715 }
14716 ]
14717 }
14718
14719 BalloonInfo (Object)
14720
14721 Information about the guest balloon device.
14722
14723 Members:
14724
14725 "actual: int"
14726 the number of bytes the balloon currently contains
14727
14728 Since: 0.14.0
14729
14730 query-balloon (Command) Return information about the balloon device.
14731
14732 Returns: "BalloonInfo" on success
14733
14734 If the balloon driver is enabled but not functional because the KVM
14735 kernel module cannot support it, KvmMissingCap
14736
14737 If no balloon device is present, DeviceNotActive
14738
14739 Since: 0.14.0
14740
14741 Example:
14742
14743 -> { "execute": "query-balloon" }
14744 <- { "return": {
14745 "actual": 1073741824,
14746 }
14747 }
14748
14749 BALLOON_CHANGE (Event) Emitted when the guest changes the actual
14750 BALLOON level. This value is equivalent to the "actual" field return by
14751 the 'query-balloon' command
14752
14753 Arguments:
14754
14755 "actual: int"
14756 actual level of the guest memory balloon in bytes
14757
14758 Note: this event is rate-limited.
14759
14760 Since: 1.2
14761
14762 Example:
14763
14764 <- { "event": "BALLOON_CHANGE",
14765 "data": { "actual": 944766976 },
14766 "timestamp": { "seconds": 1267020223, "microseconds": 435656 } }
14767
14768 PciMemoryRange (Object)
14769
14770 A PCI device memory region
14771
14772 Members:
14773
14774 "base: int"
14775 the starting address (guest physical)
14776
14777 "limit: int"
14778 the ending address (guest physical)
14779
14780 Since: 0.14.0
14781
14782 PciMemoryRegion (Object)
14783
14784 Information about a PCI device I/O region.
14785
14786 Members:
14787
14788 "bar: int"
14789 the index of the Base Address Register for this region
14790
14791 "type: string"
14792 'io' if the region is a PIO region 'memory' if the region is a MMIO
14793 region
14794
14795 "size: int"
14796 memory size
14797
14798 "prefetch: boolean" (optional)
14799 if "type" is 'memory', true if the memory is prefetchable
14800
14801 "mem_type_64: boolean" (optional)
14802 if "type" is 'memory', true if the BAR is 64-bit
14803
14804 "address: int"
14805 Not documented
14806
14807 Since: 0.14.0
14808
14809 PciBusInfo (Object)
14810
14811 Information about a bus of a PCI Bridge device
14812
14813 Members:
14814
14815 "number: int"
14816 primary bus interface number. This should be the number of the bus
14817 the device resides on.
14818
14819 "secondary: int"
14820 secondary bus interface number. This is the number of the main bus
14821 for the bridge
14822
14823 "subordinate: int"
14824 This is the highest number bus that resides below the bridge.
14825
14826 "io_range: PciMemoryRange"
14827 The PIO range for all devices on this bridge
14828
14829 "memory_range: PciMemoryRange"
14830 The MMIO range for all devices on this bridge
14831
14832 "prefetchable_range: PciMemoryRange"
14833 The range of prefetchable MMIO for all devices on this bridge
14834
14835 Since: 2.4
14836
14837 PciBridgeInfo (Object)
14838
14839 Information about a PCI Bridge device
14840
14841 Members:
14842
14843 "bus: PciBusInfo"
14844 information about the bus the device resides on
14845
14846 "devices: array of PciDeviceInfo" (optional)
14847 a list of "PciDeviceInfo" for each device on this bridge
14848
14849 Since: 0.14.0
14850
14851 PciDeviceClass (Object)
14852
14853 Information about the Class of a PCI device
14854
14855 Members:
14856
14857 "desc: string" (optional)
14858 a string description of the device's class
14859
14860 "class: int"
14861 the class code of the device
14862
14863 Since: 2.4
14864
14865 PciDeviceId (Object)
14866
14867 Information about the Id of a PCI device
14868
14869 Members:
14870
14871 "device: int"
14872 the PCI device id
14873
14874 "vendor: int"
14875 the PCI vendor id
14876
14877 "subsystem: int" (optional)
14878 the PCI subsystem id (since 3.1)
14879
14880 "subsystem-vendor: int" (optional)
14881 the PCI subsystem vendor id (since 3.1)
14882
14883 Since: 2.4
14884
14885 PciDeviceInfo (Object)
14886
14887 Information about a PCI device
14888
14889 Members:
14890
14891 "bus: int"
14892 the bus number of the device
14893
14894 "slot: int"
14895 the slot the device is located in
14896
14897 "function: int"
14898 the function of the slot used by the device
14899
14900 "class_info: PciDeviceClass"
14901 the class of the device
14902
14903 "id: PciDeviceId"
14904 the PCI device id
14905
14906 "irq: int" (optional)
14907 if an IRQ is assigned to the device, the IRQ number
14908
14909 "qdev_id: string"
14910 the device name of the PCI device
14911
14912 "pci_bridge: PciBridgeInfo" (optional)
14913 if the device is a PCI bridge, the bridge information
14914
14915 "regions: array of PciMemoryRegion"
14916 a list of the PCI I/O regions associated with the device
14917
14918 Notes: the contents of "class_info".desc are not stable and should only
14919 be treated as informational.
14920
14921 Since: 0.14.0
14922
14923 PciInfo (Object)
14924
14925 Information about a PCI bus
14926
14927 Members:
14928
14929 "bus: int"
14930 the bus index
14931
14932 "devices: array of PciDeviceInfo"
14933 a list of devices on this bus
14934
14935 Since: 0.14.0
14936
14937 query-pci (Command) Return information about the PCI bus topology of
14938 the guest.
14939
14940 Returns: a list of "PciInfo" for each PCI bus. Each bus is represented
14941 by a json-object, which has a key with a json-array of all PCI devices
14942 attached to it. Each device is represented by a json-object.
14943
14944 Since: 0.14.0
14945
14946 Example:
14947
14948 -> { "execute": "query-pci" }
14949 <- { "return": [
14950 {
14951 "bus": 0,
14952 "devices": [
14953 {
14954 "bus": 0,
14955 "qdev_id": "",
14956 "slot": 0,
14957 "class_info": {
14958 "class": 1536,
14959 "desc": "Host bridge"
14960 },
14961 "id": {
14962 "device": 32902,
14963 "vendor": 4663
14964 },
14965 "function": 0,
14966 "regions": [
14967 ]
14968 },
14969 {
14970 "bus": 0,
14971 "qdev_id": "",
14972 "slot": 1,
14973 "class_info": {
14974 "class": 1537,
14975 "desc": "ISA bridge"
14976 },
14977 "id": {
14978 "device": 32902,
14979 "vendor": 28672
14980 },
14981 "function": 0,
14982 "regions": [
14983 ]
14984 },
14985 {
14986 "bus": 0,
14987 "qdev_id": "",
14988 "slot": 1,
14989 "class_info": {
14990 "class": 257,
14991 "desc": "IDE controller"
14992 },
14993 "id": {
14994 "device": 32902,
14995 "vendor": 28688
14996 },
14997 "function": 1,
14998 "regions": [
14999 {
15000 "bar": 4,
15001 "size": 16,
15002 "address": 49152,
15003 "type": "io"
15004 }
15005 ]
15006 },
15007 {
15008 "bus": 0,
15009 "qdev_id": "",
15010 "slot": 2,
15011 "class_info": {
15012 "class": 768,
15013 "desc": "VGA controller"
15014 },
15015 "id": {
15016 "device": 4115,
15017 "vendor": 184
15018 },
15019 "function": 0,
15020 "regions": [
15021 {
15022 "prefetch": true,
15023 "mem_type_64": false,
15024 "bar": 0,
15025 "size": 33554432,
15026 "address": 4026531840,
15027 "type": "memory"
15028 },
15029 {
15030 "prefetch": false,
15031 "mem_type_64": false,
15032 "bar": 1,
15033 "size": 4096,
15034 "address": 4060086272,
15035 "type": "memory"
15036 },
15037 {
15038 "prefetch": false,
15039 "mem_type_64": false,
15040 "bar": 6,
15041 "size": 65536,
15042 "address": -1,
15043 "type": "memory"
15044 }
15045 ]
15046 },
15047 {
15048 "bus": 0,
15049 "qdev_id": "",
15050 "irq": 11,
15051 "slot": 4,
15052 "class_info": {
15053 "class": 1280,
15054 "desc": "RAM controller"
15055 },
15056 "id": {
15057 "device": 6900,
15058 "vendor": 4098
15059 },
15060 "function": 0,
15061 "regions": [
15062 {
15063 "bar": 0,
15064 "size": 32,
15065 "address": 49280,
15066 "type": "io"
15067 }
15068 ]
15069 }
15070 ]
15071 }
15072 ]
15073 }
15074
15075 Note: This example has been shortened as the real response is too long.
15076
15077 quit (Command) This command will cause the QEMU process to exit
15078 gracefully. While every attempt is made to send the QMP response
15079 before terminating, this is not guaranteed. When using this interface,
15080 a premature EOF would not be unexpected.
15081
15082 Since: 0.14.0
15083
15084 Example:
15085
15086 -> { "execute": "quit" }
15087 <- { "return": {} }
15088
15089 stop (Command) Stop all guest VCPU execution.
15090
15091 Since: 0.14.0
15092
15093 Notes: This function will succeed even if the guest is already in the
15094 stopped state. In "inmigrate" state, it will ensure that the guest
15095 remains paused once migration finishes, as if the -S option was passed
15096 on the command line.
15097
15098 Example:
15099
15100 -> { "execute": "stop" }
15101 <- { "return": {} }
15102
15103 system_reset (Command) Performs a hard reset of a guest.
15104
15105 Since: 0.14.0
15106
15107 Example:
15108
15109 -> { "execute": "system_reset" }
15110 <- { "return": {} }
15111
15112 system_powerdown (Command) Requests that a guest perform a powerdown
15113 operation.
15114
15115 Since: 0.14.0
15116
15117 Notes: A guest may or may not respond to this command. This command
15118 returning does not indicate that a guest has accepted the request or
15119 that it has shut down. Many guests will respond to this command by
15120 prompting the user in some way.
15121
15122 Example:
15123
15124 -> { "execute": "system_powerdown" }
15125 <- { "return": {} }
15126
15127 memsave (Command) Save a portion of guest memory to a file.
15128
15129 Arguments:
15130
15131 "val: int"
15132 the virtual address of the guest to start from
15133
15134 "size: int"
15135 the size of memory region to save
15136
15137 "filename: string"
15138 the file to save the memory to as binary data
15139
15140 "cpu-index: int" (optional)
15141 the index of the virtual CPU to use for translating the virtual
15142 address (defaults to CPU 0)
15143
15144 Returns: Nothing on success
15145
15146 Since: 0.14.0
15147
15148 Notes: Errors were not reliably returned until 1.1
15149
15150 Example:
15151
15152 -> { "execute": "memsave",
15153 "arguments": { "val": 10,
15154 "size": 100,
15155 "filename": "/tmp/virtual-mem-dump" } }
15156 <- { "return": {} }
15157
15158 pmemsave (Command) Save a portion of guest physical memory to a file.
15159
15160 Arguments:
15161
15162 "val: int"
15163 the physical address of the guest to start from
15164
15165 "size: int"
15166 the size of memory region to save
15167
15168 "filename: string"
15169 the file to save the memory to as binary data
15170
15171 Returns: Nothing on success
15172
15173 Since: 0.14.0
15174
15175 Notes: Errors were not reliably returned until 1.1
15176
15177 Example:
15178
15179 -> { "execute": "pmemsave",
15180 "arguments": { "val": 10,
15181 "size": 100,
15182 "filename": "/tmp/physical-mem-dump" } }
15183 <- { "return": {} }
15184
15185 cont (Command) Resume guest VCPU execution.
15186
15187 Since: 0.14.0
15188
15189 Returns: If successful, nothing
15190
15191 Notes: This command will succeed if the guest is currently running. It
15192 will also succeed if the guest is in the "inmigrate" state; in this
15193 case, the effect of the command is to make sure the guest starts once
15194 migration finishes, removing the effect of the -S command line option
15195 if it was passed.
15196
15197 Example:
15198
15199 -> { "execute": "cont" }
15200 <- { "return": {} }
15201
15202 x-exit-preconfig (Command) Exit from "preconfig" state
15203
15204 This command makes QEMU exit the preconfig state and proceed with VM
15205 initialization using configuration data provided on the command line
15206 and via the QMP monitor during the preconfig state. The command is only
15207 available during the preconfig state (i.e. when the --preconfig command
15208 line option was in use).
15209
15210 Since 3.0
15211
15212 Returns: nothing
15213
15214 Example:
15215
15216 -> { "execute": "x-exit-preconfig" }
15217 <- { "return": {} }
15218
15219 system_wakeup (Command) Wake up guest from suspend. If the guest has
15220 wake-up from suspend support enabled (wakeup-suspend-support flag from
15221 query-current-machine), wake-up guest from suspend if the guest is in
15222 SUSPENDED state. Return an error otherwise.
15223
15224 Since: 1.1
15225
15226 Returns: nothing.
15227
15228 Note: prior to 4.0, this command does nothing in case the guest isn't
15229 suspended.
15230
15231 Example:
15232
15233 -> { "execute": "system_wakeup" }
15234 <- { "return": {} }
15235
15236 inject-nmi (Command) Injects a Non-Maskable Interrupt into the default
15237 CPU (x86/s390) or all CPUs (ppc64). The command fails when the guest
15238 doesn't support injecting.
15239
15240 Returns: If successful, nothing
15241
15242 Since: 0.14.0
15243
15244 Note: prior to 2.1, this command was only supported for x86 and s390
15245 VMs
15246
15247 Example:
15248
15249 -> { "execute": "inject-nmi" }
15250 <- { "return": {} }
15251
15252 balloon (Command) Request the balloon driver to change its balloon
15253 size.
15254
15255 Arguments:
15256
15257 "value: int"
15258 the target size of the balloon in bytes
15259
15260 Returns: Nothing on success If the balloon driver is enabled but not
15261 functional because the KVM kernel module cannot support it,
15262 KvmMissingCap If no balloon device is present, DeviceNotActive
15263
15264 Notes: This command just issues a request to the guest. When it
15265 returns, the balloon size may not have changed. A guest can change the
15266 balloon size independent of this command.
15267
15268 Since: 0.14.0
15269
15270 Example:
15271
15272 -> { "execute": "balloon", "arguments": { "value": 536870912 } }
15273 <- { "return": {} }
15274
15275 human-monitor-command (Command) Execute a command on the human monitor
15276 and return the output.
15277
15278 Arguments:
15279
15280 "command-line: string"
15281 the command to execute in the human monitor
15282
15283 "cpu-index: int" (optional)
15284 The CPU to use for commands that require an implicit CPU
15285
15286 Returns: the output of the command as a string
15287
15288 Since: 0.14.0
15289
15290 Notes: This command only exists as a stop-gap. Its use is highly
15291 discouraged. The semantics of this command are not guaranteed: this
15292 means that command names, arguments and responses can change or be
15293 removed at ANY time. Applications that rely on long term stability
15294 guarantees should NOT use this command.
15295
15296 Known limitations:
15297
15298 · This command is stateless, this means that commands that depend on
15299 state information (such as getfd) might not work
15300
15301 · Commands that prompt the user for data don't currently work
15302
15303 Example:
15304
15305 -> { "execute": "human-monitor-command",
15306 "arguments": { "command-line": "info kvm" } }
15307 <- { "return": "kvm support: enabled\r\n" }
15308
15309 change (Command) This command is multiple commands multiplexed
15310 together.
15311
15312 Arguments:
15313
15314 "device: string"
15315 This is normally the name of a block device but it may also be
15316 'vnc'. when it's 'vnc', then sub command depends on "target"
15317
15318 "target: string"
15319 If "device" is a block device, then this is the new filename. If
15320 "device" is 'vnc', then if the value 'password' selects the vnc
15321 change password command. Otherwise, this specifies a new server
15322 URI address to listen to for VNC connections.
15323
15324 "arg: string" (optional)
15325 If "device" is a block device, then this is an optional format to
15326 open the device with. If "device" is 'vnc' and "target" is
15327 'password', this is the new VNC password to set. See change-vnc-
15328 password for additional notes.
15329
15330 Returns: Nothing on success. If "device" is not a valid block device,
15331 DeviceNotFound
15332
15333 Notes: This interface is deprecated, and it is strongly recommended
15334 that you avoid using it. For changing block devices, use blockdev-
15335 change-medium; for changing VNC parameters, use change-vnc-password.
15336
15337 Since: 0.14.0
15338
15339 Example:
15340
15341 1. Change a removable medium
15342
15343 -> { "execute": "change",
15344 "arguments": { "device": "ide1-cd0",
15345 "target": "/srv/images/Fedora-12-x86_64-DVD.iso" } }
15346 <- { "return": {} }
15347
15348 2. Change VNC password
15349
15350 -> { "execute": "change",
15351 "arguments": { "device": "vnc", "target": "password",
15352 "arg": "foobar1" } }
15353 <- { "return": {} }
15354
15355 xen-set-global-dirty-log (Command) Enable or disable the global dirty
15356 log mode.
15357
15358 Arguments:
15359
15360 "enable: boolean"
15361 true to enable, false to disable.
15362
15363 Returns: nothing
15364
15365 Since: 1.3
15366
15367 Example:
15368
15369 -> { "execute": "xen-set-global-dirty-log",
15370 "arguments": { "enable": true } }
15371 <- { "return": {} }
15372
15373 getfd (Command) Receive a file descriptor via SCM rights and assign it
15374 a name
15375
15376 Arguments:
15377
15378 "fdname: string"
15379 file descriptor name
15380
15381 Returns: Nothing on success
15382
15383 Since: 0.14.0
15384
15385 Notes: If "fdname" already exists, the file descriptor assigned to it
15386 will be closed and replaced by the received file descriptor.
15387
15388 The 'closefd' command can be used to explicitly close the file
15389 descriptor when it is no longer needed.
15390
15391 Example:
15392
15393 -> { "execute": "getfd", "arguments": { "fdname": "fd1" } }
15394 <- { "return": {} }
15395
15396 closefd (Command) Close a file descriptor previously passed via SCM
15397 rights
15398
15399 Arguments:
15400
15401 "fdname: string"
15402 file descriptor name
15403
15404 Returns: Nothing on success
15405
15406 Since: 0.14.0
15407
15408 Example:
15409
15410 -> { "execute": "closefd", "arguments": { "fdname": "fd1" } }
15411 <- { "return": {} }
15412
15413 MemoryInfo (Object)
15414
15415 Actual memory information in bytes.
15416
15417 Members:
15418
15419 "base-memory: int"
15420 size of "base" memory specified with command line option -m.
15421
15422 "plugged-memory: int" (optional)
15423 size of memory that can be hot-unplugged. This field is omitted if
15424 target doesn't support memory hotplug (i.e. CONFIG_MEM_DEVICE not
15425 defined at build time).
15426
15427 Since: 2.11.0
15428
15429 query-memory-size-summary (Command) Return the amount of initially
15430 allocated and present hotpluggable (if enabled) memory in bytes.
15431
15432 Example:
15433
15434 -> { "execute": "query-memory-size-summary" }
15435 <- { "return": { "base-memory": 4294967296, "plugged-memory": 0 } }
15436
15437 Since: 2.11.0
15438
15439 AddfdInfo (Object)
15440
15441 Information about a file descriptor that was added to an fd set.
15442
15443 Members:
15444
15445 "fdset-id: int"
15446 The ID of the fd set that "fd" was added to.
15447
15448 "fd: int"
15449 The file descriptor that was received via SCM rights and added to
15450 the fd set.
15451
15452 Since: 1.2.0
15453
15454 add-fd (Command) Add a file descriptor, that was passed via SCM
15455 rights, to an fd set.
15456
15457 Arguments:
15458
15459 "fdset-id: int" (optional)
15460 The ID of the fd set to add the file descriptor to.
15461
15462 "opaque: string" (optional)
15463 A free-form string that can be used to describe the fd.
15464
15465 Returns: "AddfdInfo" on success
15466
15467 If file descriptor was not received, FdNotSupplied
15468
15469 If "fdset-id" is a negative value, InvalidParameterValue
15470
15471 Notes: The list of fd sets is shared by all monitor connections.
15472
15473 If "fdset-id" is not specified, a new fd set will be created.
15474
15475 Since: 1.2.0
15476
15477 Example:
15478
15479 -> { "execute": "add-fd", "arguments": { "fdset-id": 1 } }
15480 <- { "return": { "fdset-id": 1, "fd": 3 } }
15481
15482 remove-fd (Command) Remove a file descriptor from an fd set.
15483
15484 Arguments:
15485
15486 "fdset-id: int"
15487 The ID of the fd set that the file descriptor belongs to.
15488
15489 "fd: int" (optional)
15490 The file descriptor that is to be removed.
15491
15492 Returns: Nothing on success If "fdset-id" or "fd" is not found,
15493 FdNotFound
15494
15495 Since: 1.2.0
15496
15497 Notes: The list of fd sets is shared by all monitor connections.
15498
15499 If "fd" is not specified, all file descriptors in "fdset-id" will be
15500 removed.
15501
15502 Example:
15503
15504 -> { "execute": "remove-fd", "arguments": { "fdset-id": 1, "fd": 3 } }
15505 <- { "return": {} }
15506
15507 FdsetFdInfo (Object)
15508
15509 Information about a file descriptor that belongs to an fd set.
15510
15511 Members:
15512
15513 "fd: int"
15514 The file descriptor value.
15515
15516 "opaque: string" (optional)
15517 A free-form string that can be used to describe the fd.
15518
15519 Since: 1.2.0
15520
15521 FdsetInfo (Object)
15522
15523 Information about an fd set.
15524
15525 Members:
15526
15527 "fdset-id: int"
15528 The ID of the fd set.
15529
15530 "fds: array of FdsetFdInfo"
15531 A list of file descriptors that belong to this fd set.
15532
15533 Since: 1.2.0
15534
15535 query-fdsets (Command) Return information describing all fd sets.
15536
15537 Returns: A list of "FdsetInfo"
15538
15539 Since: 1.2.0
15540
15541 Note: The list of fd sets is shared by all monitor connections.
15542
15543 Example:
15544
15545 -> { "execute": "query-fdsets" }
15546 <- { "return": [
15547 {
15548 "fds": [
15549 {
15550 "fd": 30,
15551 "opaque": "rdonly:/path/to/file"
15552 },
15553 {
15554 "fd": 24,
15555 "opaque": "rdwr:/path/to/file"
15556 }
15557 ],
15558 "fdset-id": 1
15559 },
15560 {
15561 "fds": [
15562 {
15563 "fd": 28
15564 },
15565 {
15566 "fd": 29
15567 }
15568 ],
15569 "fdset-id": 0
15570 }
15571 ]
15572 }
15573
15574 TargetInfo (Object)
15575
15576 Information describing the QEMU target.
15577
15578 Members:
15579
15580 "arch: SysEmuTarget"
15581 the target architecture
15582
15583 Since: 1.2.0
15584
15585 query-target (Command) Return information about the target for this
15586 QEMU
15587
15588 Returns: TargetInfo
15589
15590 Since: 1.2.0
15591
15592 AcpiTableOptions (Object)
15593
15594 Specify an ACPI table on the command line to load.
15595
15596 At most one of "file" and "data" can be specified. The list of files
15597 specified by any one of them is loaded and concatenated in order. If
15598 both are omitted, "data" is implied.
15599
15600 Other fields / optargs can be used to override fields of the generic
15601 ACPI table header; refer to the ACPI specification 5.0, section 5.2.6
15602 System Description Table Header. If a header field is not overridden,
15603 then the corresponding value from the concatenated blob is used (in
15604 case of "file"), or it is filled in with a hard-coded value (in case of
15605 "data").
15606
15607 String fields are copied into the matching ACPI member from lowest
15608 address upwards, and silently truncated / NUL-padded to length.
15609
15610 Members:
15611
15612 "sig: string" (optional)
15613 table signature / identifier (4 bytes)
15614
15615 "rev: int" (optional)
15616 table revision number (dependent on signature, 1 byte)
15617
15618 "oem_id: string" (optional)
15619 OEM identifier (6 bytes)
15620
15621 "oem_table_id: string" (optional)
15622 OEM table identifier (8 bytes)
15623
15624 "oem_rev: int" (optional)
15625 OEM-supplied revision number (4 bytes)
15626
15627 "asl_compiler_id: string" (optional)
15628 identifier of the utility that created the table (4 bytes)
15629
15630 "asl_compiler_rev: int" (optional)
15631 revision number of the utility that created the table (4 bytes)
15632
15633 "file: string" (optional)
15634 colon (:) separated list of pathnames to load and concatenate as
15635 table data. The resultant binary blob is expected to have an ACPI
15636 table header. At least one file is required. This field excludes
15637 "data".
15638
15639 "data: string" (optional)
15640 colon (:) separated list of pathnames to load and concatenate as
15641 table data. The resultant binary blob must not have an ACPI table
15642 header. At least one file is required. This field excludes "file".
15643
15644 Since: 1.5
15645
15646 CommandLineParameterType (Enum)
15647
15648 Possible types for an option parameter.
15649
15650 Values:
15651
15652 "string"
15653 accepts a character string
15654
15655 "boolean"
15656 accepts "on" or "off"
15657
15658 "number"
15659 accepts a number
15660
15661 "size"
15662 accepts a number followed by an optional suffix (K)ilo, (M)ega,
15663 (G)iga, (T)era
15664
15665 Since: 1.5
15666
15667 CommandLineParameterInfo (Object)
15668
15669 Details about a single parameter of a command line option.
15670
15671 Members:
15672
15673 "name: string"
15674 parameter name
15675
15676 "type: CommandLineParameterType"
15677 parameter "CommandLineParameterType"
15678
15679 "help: string" (optional)
15680 human readable text string, not suitable for parsing.
15681
15682 "default: string" (optional)
15683 default value string (since 2.1)
15684
15685 Since: 1.5
15686
15687 CommandLineOptionInfo (Object)
15688
15689 Details about a command line option, including its list of parameter
15690 details
15691
15692 Members:
15693
15694 "option: string"
15695 option name
15696
15697 "parameters: array of CommandLineParameterInfo"
15698 an array of "CommandLineParameterInfo"
15699
15700 Since: 1.5
15701
15702 query-command-line-options (Command) Query command line option schema.
15703
15704 Arguments:
15705
15706 "option: string" (optional)
15707 option name
15708
15709 Returns: list of "CommandLineOptionInfo" for all options (or for the
15710 given "option"). Returns an error if the given "option" doesn't exist.
15711
15712 Since: 1.5
15713
15714 Example:
15715
15716 -> { "execute": "query-command-line-options",
15717 "arguments": { "option": "option-rom" } }
15718 <- { "return": [
15719 {
15720 "parameters": [
15721 {
15722 "name": "romfile",
15723 "type": "string"
15724 },
15725 {
15726 "name": "bootindex",
15727 "type": "number"
15728 }
15729 ],
15730 "option": "option-rom"
15731 }
15732 ]
15733 }
15734
15735 PCDIMMDeviceInfo (Object)
15736
15737 PCDIMMDevice state information
15738
15739 Members:
15740
15741 "id: string" (optional)
15742 device's ID
15743
15744 "addr: int"
15745 physical address, where device is mapped
15746
15747 "size: int"
15748 size of memory that the device provides
15749
15750 "slot: int"
15751 slot number at which device is plugged in
15752
15753 "node: int"
15754 NUMA node number where device is plugged in
15755
15756 "memdev: string"
15757 memory backend linked with device
15758
15759 "hotplugged: boolean"
15760 true if device was hotplugged
15761
15762 "hotpluggable: boolean"
15763 true if device if could be added/removed while machine is running
15764
15765 Since: 2.1
15766
15767 VirtioPMEMDeviceInfo (Object)
15768
15769 VirtioPMEM state information
15770
15771 Members:
15772
15773 "id: string" (optional)
15774 device's ID
15775
15776 "memaddr: int"
15777 physical address in memory, where device is mapped
15778
15779 "size: int"
15780 size of memory that the device provides
15781
15782 "memdev: string"
15783 memory backend linked with device
15784
15785 Since: 4.1
15786
15787 MemoryDeviceInfo (Object)
15788
15789 Union containing information about a memory device
15790
15791 nvdimm is included since 2.12. virtio-pmem is included since 4.1.
15792
15793 Members:
15794
15795 "type"
15796 One of "dimm", "nvdimm", "virtio-pmem"
15797
15798 "data: PCDIMMDeviceInfo" when "type" is "dimm"
15799 "data: PCDIMMDeviceInfo" when "type" is "nvdimm"
15800 "data: VirtioPMEMDeviceInfo" when "type" is "virtio-pmem"
15801
15802 Since: 2.1
15803
15804 query-memory-devices (Command) Lists available memory devices and
15805 their state
15806
15807 Since: 2.1
15808
15809 Example:
15810
15811 -> { "execute": "query-memory-devices" }
15812 <- { "return": [ { "data":
15813 { "addr": 5368709120,
15814 "hotpluggable": true,
15815 "hotplugged": true,
15816 "id": "d1",
15817 "memdev": "/objects/memX",
15818 "node": 0,
15819 "size": 1073741824,
15820 "slot": 0},
15821 "type": "dimm"
15822 } ] }
15823
15824 MEM_UNPLUG_ERROR (Event) Emitted when memory hot unplug error occurs.
15825
15826 Arguments:
15827
15828 "device: string"
15829 device name
15830
15831 "msg: string"
15832 Informative message
15833
15834 Since: 2.4
15835
15836 Example:
15837
15838 <- { "event": "MEM_UNPLUG_ERROR"
15839 "data": { "device": "dimm1",
15840 "msg": "acpi: device unplug for unsupported device"
15841 },
15842 "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
15843
15844 ACPISlotType (Enum)
15845
15846 Values:
15847
15848 "DIMM"
15849 memory slot
15850
15851 "CPU"
15852 logical CPU slot (since 2.7)
15853
15854 ACPIOSTInfo (Object)
15855
15856 OSPM Status Indication for a device For description of possible values
15857 of "source" and "status" fields see "_OST (OSPM Status Indication)"
15858 chapter of ACPI5.0 spec.
15859
15860 Members:
15861
15862 "device: string" (optional)
15863 device ID associated with slot
15864
15865 "slot: string"
15866 slot ID, unique per slot of a given "slot-type"
15867
15868 "slot-type: ACPISlotType"
15869 type of the slot
15870
15871 "source: int"
15872 an integer containing the source event
15873
15874 "status: int"
15875 an integer containing the status code
15876
15877 Since: 2.1
15878
15879 query-acpi-ospm-status (Command) Return a list of ACPIOSTInfo for
15880 devices that support status reporting via ACPI _OST method.
15881
15882 Since: 2.1
15883
15884 Example:
15885
15886 -> { "execute": "query-acpi-ospm-status" }
15887 <- { "return": [ { "device": "d1", "slot": "0", "slot-type": "DIMM", "source": 1, "status": 0},
15888 { "slot": "1", "slot-type": "DIMM", "source": 0, "status": 0},
15889 { "slot": "2", "slot-type": "DIMM", "source": 0, "status": 0},
15890 { "slot": "3", "slot-type": "DIMM", "source": 0, "status": 0}
15891 ]}
15892
15893 ACPI_DEVICE_OST (Event) Emitted when guest executes ACPI _OST method.
15894
15895 Arguments:
15896
15897 "info: ACPIOSTInfo"
15898 OSPM Status Indication
15899
15900 Since: 2.1
15901
15902 Example:
15903
15904 <- { "event": "ACPI_DEVICE_OST",
15905 "data": { "device": "d1", "slot": "0",
15906 "slot-type": "DIMM", "source": 1, "status": 0 } }
15907
15908 ReplayMode (Enum)
15909
15910 Mode of the replay subsystem.
15911
15912 Values:
15913
15914 "none"
15915 normal execution mode. Replay or record are not enabled.
15916
15917 "record"
15918 record mode. All non-deterministic data is written into the replay
15919 log.
15920
15921 "play"
15922 replay mode. Non-deterministic data required for system execution
15923 is read from the log.
15924
15925 Since: 2.5
15926
15927 xen-load-devices-state (Command) Load the state of all devices from
15928 file. The RAM and the block devices of the VM are not loaded by this
15929 command.
15930
15931 Arguments:
15932
15933 "filename: string"
15934 the file to load the state of the devices from as binary data. See
15935 xen-save-devices-state.txt for a description of the binary format.
15936
15937 Since: 2.7
15938
15939 Example:
15940
15941 -> { "execute": "xen-load-devices-state",
15942 "arguments": { "filename": "/tmp/resume" } }
15943 <- { "return": {} }
15944
15945 GuidInfo (Object)
15946
15947 GUID information.
15948
15949 Members:
15950
15951 "guid: string"
15952 the globally unique identifier
15953
15954 Since: 2.9
15955
15956 query-vm-generation-id (Command) Show Virtual Machine Generation ID
15957
15958 Since: 2.9
15959
15960 RTC_CHANGE (Event) Emitted when the guest changes the RTC time.
15961
15962 Arguments:
15963
15964 "offset: int"
15965 offset between base RTC clock (as specified by -rtc base), and new
15966 RTC clock value
15967
15968 Note: This event is rate-limited.
15969
15970 Since: 0.13.0
15971
15972 Example:
15973
15974 <- { "event": "RTC_CHANGE",
15975 "data": { "offset": 78 },
15976 "timestamp": { "seconds": 1267020223, "microseconds": 435656 } }
15977
15978 If: "defined(TARGET_ALPHA) || defined(TARGET_ARM) ||
15979 defined(TARGET_HPPA) || defined(TARGET_I386) || defined(TARGET_MIPS) ||
15980 defined(TARGET_MIPS64) || defined(TARGET_MOXIE) || defined(TARGET_PPC)
15981 || defined(TARGET_PPC64) || defined(TARGET_S390X) ||
15982 defined(TARGET_SH4) || defined(TARGET_SPARC)"
15983
15984 rtc-reset-reinjection (Command) This command will reset the RTC
15985 interrupt reinjection backlog. Can be used if another mechanism to
15986 synchronize guest time is in effect, for example QEMU guest agent's
15987 guest-set-time command.
15988
15989 Since: 2.1
15990
15991 Example:
15992
15993 -> { "execute": "rtc-reset-reinjection" }
15994 <- { "return": {} }
15995
15996 If: "defined(TARGET_I386)"
15997
15998 SevState (Enum)
15999
16000 An enumeration of SEV state information used during "query-sev".
16001
16002 Values:
16003
16004 "uninit"
16005 The guest is uninitialized.
16006
16007 "launch-update"
16008 The guest is currently being launched; plaintext data and register
16009 state is being imported.
16010
16011 "launch-secret"
16012 The guest is currently being launched; ciphertext data is being
16013 imported.
16014
16015 "running"
16016 The guest is fully launched or migrated in.
16017
16018 "send-update"
16019 The guest is currently being migrated out to another machine.
16020
16021 "receive-update"
16022 The guest is currently being migrated from another machine.
16023
16024 Since: 2.12
16025
16026 If: "defined(TARGET_I386)"
16027
16028 SevInfo (Object)
16029
16030 Information about Secure Encrypted Virtualization (SEV) support
16031
16032 Members:
16033
16034 "enabled: boolean"
16035 true if SEV is active
16036
16037 "api-major: int"
16038 SEV API major version
16039
16040 "api-minor: int"
16041 SEV API minor version
16042
16043 "build-id: int"
16044 SEV FW build id
16045
16046 "policy: int"
16047 SEV policy value
16048
16049 "state: SevState"
16050 SEV guest state
16051
16052 "handle: int"
16053 SEV firmware handle
16054
16055 Since: 2.12
16056
16057 If: "defined(TARGET_I386)"
16058
16059 query-sev (Command) Returns information about SEV
16060
16061 Returns: "SevInfo"
16062
16063 Since: 2.12
16064
16065 Example:
16066
16067 -> { "execute": "query-sev" }
16068 <- { "return": { "enabled": true, "api-major" : 0, "api-minor" : 0,
16069 "build-id" : 0, "policy" : 0, "state" : "running",
16070 "handle" : 1 } }
16071
16072 If: "defined(TARGET_I386)"
16073
16074 SevLaunchMeasureInfo (Object)
16075
16076 SEV Guest Launch measurement information
16077
16078 Members:
16079
16080 "data: string"
16081 the measurement value encoded in base64
16082
16083 Since: 2.12
16084
16085 If: "defined(TARGET_I386)"
16086
16087 query-sev-launch-measure (Command) Query the SEV guest launch
16088 information.
16089
16090 Returns: The "SevLaunchMeasureInfo" for the guest
16091
16092 Since: 2.12
16093
16094 Example:
16095
16096 -> { "execute": "query-sev-launch-measure" }
16097 <- { "return": { "data": "4l8LXeNlSPUDlXPJG5966/8%YZ" } }
16098
16099 If: "defined(TARGET_I386)"
16100
16101 SevCapability (Object)
16102
16103 The struct describes capability for a Secure Encrypted Virtualization
16104 feature.
16105
16106 Members:
16107
16108 "pdh: string"
16109 Platform Diffie-Hellman key (base64 encoded)
16110
16111 "cert-chain: string"
16112 PDH certificate chain (base64 encoded)
16113
16114 "cbitpos: int"
16115 C-bit location in page table entry
16116
16117 "reduced-phys-bits: int"
16118 Number of physical Address bit reduction when SEV is enabled
16119
16120 Since: 2.12
16121
16122 If: "defined(TARGET_I386)"
16123
16124 query-sev-capabilities (Command) This command is used to get the SEV
16125 capabilities, and is supported on AMD X86 platforms only.
16126
16127 Returns: SevCapability objects.
16128
16129 Since: 2.12
16130
16131 Example:
16132
16133 -> { "execute": "query-sev-capabilities" }
16134 <- { "return": { "pdh": "8CCDD8DDD", "cert-chain": "888CCCDDDEE",
16135 "cbitpos": 47, "reduced-phys-bits": 5}}
16136
16137 If: "defined(TARGET_I386)"
16138
16139 dump-skeys (Command) Dump guest's storage keys
16140
16141 Arguments:
16142
16143 "filename: string"
16144 the path to the file to dump to
16145
16146 This command is only supported on s390 architecture.
16147
16148 Since: 2.5
16149
16150 Example:
16151
16152 -> { "execute": "dump-skeys",
16153 "arguments": { "filename": "/tmp/skeys" } }
16154 <- { "return": {} }
16155
16156 If: "defined(TARGET_S390X)"
16157
16158 GICCapability (Object)
16159
16160 The struct describes capability for a specific GIC (Generic Interrupt
16161 Controller) version. These bits are not only decided by QEMU/KVM
16162 software version, but also decided by the hardware that the program is
16163 running upon.
16164
16165 Members:
16166
16167 "version: int"
16168 version of GIC to be described. Currently, only 2 and 3 are
16169 supported.
16170
16171 "emulated: boolean"
16172 whether current QEMU/hardware supports emulated GIC device in user
16173 space.
16174
16175 "kernel: boolean"
16176 whether current QEMU/hardware supports hardware accelerated GIC
16177 device in kernel.
16178
16179 Since: 2.6
16180
16181 If: "defined(TARGET_ARM)"
16182
16183 query-gic-capabilities (Command) This command is ARM-only. It will
16184 return a list of GICCapability objects that describe its capability
16185 bits.
16186
16187 Returns: a list of GICCapability objects.
16188
16189 Since: 2.6
16190
16191 Example:
16192
16193 -> { "execute": "query-gic-capabilities" }
16194 <- { "return": [{ "version": 2, "emulated": true, "kernel": false },
16195 { "version": 3, "emulated": false, "kernel": true } ] }
16196
16197 If: "defined(TARGET_ARM)"
16198
16199 AudiodevPerDirectionOptions (Object)
16200
16201 General audio backend options that are used for both playback and
16202 recording.
16203
16204 Members:
16205
16206 "fixed-settings: boolean" (optional)
16207 use fixed settings for host input/output. When off, frequency,
16208 channels and format must not be specified (default true)
16209
16210 "frequency: int" (optional)
16211 frequency to use when using fixed settings (default 44100)
16212
16213 "channels: int" (optional)
16214 number of channels when using fixed settings (default 2)
16215
16216 "voices: int" (optional)
16217 number of voices to use (default 1)
16218
16219 "format: AudioFormat" (optional)
16220 sample format to use when using fixed settings (default s16)
16221
16222 "buffer-length: int" (optional)
16223 the buffer length in microseconds
16224
16225 Since: 4.0
16226
16227 AudiodevGenericOptions (Object)
16228
16229 Generic driver-specific options.
16230
16231 Members:
16232
16233 "in: AudiodevPerDirectionOptions" (optional)
16234 options of the capture stream
16235
16236 "out: AudiodevPerDirectionOptions" (optional)
16237 options of the playback stream
16238
16239 Since: 4.0
16240
16241 AudiodevAlsaPerDirectionOptions (Object)
16242
16243 Options of the ALSA backend that are used for both playback and
16244 recording.
16245
16246 Members:
16247
16248 "dev: string" (optional)
16249 the name of the ALSA device to use (default 'default')
16250
16251 "period-length: int" (optional)
16252 the period length in microseconds
16253
16254 "try-poll: boolean" (optional)
16255 attempt to use poll mode, falling back to non-polling access on
16256 failure (default true)
16257
16258 The members of "AudiodevPerDirectionOptions"
16259
16260 Since: 4.0
16261
16262 AudiodevAlsaOptions (Object)
16263
16264 Options of the ALSA audio backend.
16265
16266 Members:
16267
16268 "in: AudiodevAlsaPerDirectionOptions" (optional)
16269 options of the capture stream
16270
16271 "out: AudiodevAlsaPerDirectionOptions" (optional)
16272 options of the playback stream
16273
16274 "threshold: int" (optional)
16275 set the threshold (in microseconds) when playback starts
16276
16277 Since: 4.0
16278
16279 AudiodevCoreaudioPerDirectionOptions (Object)
16280
16281 Options of the Core Audio backend that are used for both playback and
16282 recording.
16283
16284 Members:
16285
16286 "buffer-count: int" (optional)
16287 number of buffers
16288
16289 The members of "AudiodevPerDirectionOptions"
16290
16291 Since: 4.0
16292
16293 AudiodevCoreaudioOptions (Object)
16294
16295 Options of the coreaudio audio backend.
16296
16297 Members:
16298
16299 "in: AudiodevCoreaudioPerDirectionOptions" (optional)
16300 options of the capture stream
16301
16302 "out: AudiodevCoreaudioPerDirectionOptions" (optional)
16303 options of the playback stream
16304
16305 Since: 4.0
16306
16307 AudiodevDsoundOptions (Object)
16308
16309 Options of the DirectSound audio backend.
16310
16311 Members:
16312
16313 "in: AudiodevPerDirectionOptions" (optional)
16314 options of the capture stream
16315
16316 "out: AudiodevPerDirectionOptions" (optional)
16317 options of the playback stream
16318
16319 "latency: int" (optional)
16320 add extra latency to playback in microseconds (default 10000)
16321
16322 Since: 4.0
16323
16324 AudiodevOssPerDirectionOptions (Object)
16325
16326 Options of the OSS backend that are used for both playback and
16327 recording.
16328
16329 Members:
16330
16331 "dev: string" (optional)
16332 file name of the OSS device (default '/dev/dsp')
16333
16334 "buffer-count: int" (optional)
16335 number of buffers
16336
16337 "try-poll: boolean" (optional)
16338 attempt to use poll mode, falling back to non-polling access on
16339 failure (default true)
16340
16341 The members of "AudiodevPerDirectionOptions"
16342
16343 Since: 4.0
16344
16345 AudiodevOssOptions (Object)
16346
16347 Options of the OSS audio backend.
16348
16349 Members:
16350
16351 "in: AudiodevOssPerDirectionOptions" (optional)
16352 options of the capture stream
16353
16354 "out: AudiodevOssPerDirectionOptions" (optional)
16355 options of the playback stream
16356
16357 "try-mmap: boolean" (optional)
16358 try using memory-mapped access, falling back to non-memory-mapped
16359 access on failure (default true)
16360
16361 "exclusive: boolean" (optional)
16362 open device in exclusive mode (vmix won't work) (default false)
16363
16364 "dsp-policy: int" (optional)
16365 set the timing policy of the device (between 0 and 10, where
16366 smaller number means smaller latency but higher CPU usage) or -1 to
16367 use fragment mode (option ignored on some platforms) (default 5)
16368
16369 Since: 4.0
16370
16371 AudiodevPaPerDirectionOptions (Object)
16372
16373 Options of the Pulseaudio backend that are used for both playback and
16374 recording.
16375
16376 Members:
16377
16378 "name: string" (optional)
16379 name of the sink/source to use
16380
16381 "latency: int" (optional)
16382 latency you want PulseAudio to achieve in microseconds (default
16383 15000)
16384
16385 The members of "AudiodevPerDirectionOptions"
16386
16387 Since: 4.0
16388
16389 AudiodevPaOptions (Object)
16390
16391 Options of the PulseAudio audio backend.
16392
16393 Members:
16394
16395 "in: AudiodevPaPerDirectionOptions" (optional)
16396 options of the capture stream
16397
16398 "out: AudiodevPaPerDirectionOptions" (optional)
16399 options of the playback stream
16400
16401 "server: string" (optional)
16402 PulseAudio server address (default: let PulseAudio choose)
16403
16404 Since: 4.0
16405
16406 AudiodevWavOptions (Object)
16407
16408 Options of the wav audio backend.
16409
16410 Members:
16411
16412 "in: AudiodevPerDirectionOptions" (optional)
16413 options of the capture stream
16414
16415 "out: AudiodevPerDirectionOptions" (optional)
16416 options of the playback stream
16417
16418 "path: string" (optional)
16419 name of the wav file to record (default 'qemu.wav')
16420
16421 Since: 4.0
16422
16423 AudioFormat (Enum)
16424
16425 An enumeration of possible audio formats.
16426
16427 Values:
16428
16429 "u8"
16430 Not documented
16431
16432 "s8"
16433 Not documented
16434
16435 "u16"
16436 Not documented
16437
16438 "s16"
16439 Not documented
16440
16441 "u32"
16442 Not documented
16443
16444 "s32"
16445 Not documented
16446
16447 Since: 4.0
16448
16449 AudiodevDriver (Enum)
16450
16451 An enumeration of possible audio backend drivers.
16452
16453 Values:
16454
16455 "none"
16456 Not documented
16457
16458 "alsa"
16459 Not documented
16460
16461 "coreaudio"
16462 Not documented
16463
16464 "dsound"
16465 Not documented
16466
16467 "oss"
16468 Not documented
16469
16470 "pa"
16471 Not documented
16472
16473 "sdl"
16474 Not documented
16475
16476 "spice"
16477 Not documented
16478
16479 "wav"
16480 Not documented
16481
16482 Since: 4.0
16483
16484 Audiodev (Object)
16485
16486 Options of an audio backend.
16487
16488 Members:
16489
16490 "id: string"
16491 identifier of the backend
16492
16493 "driver: AudiodevDriver"
16494 the backend driver to use
16495
16496 "timer-period: int" (optional)
16497 timer period (in microseconds, 0: use lowest possible)
16498
16499 The members of "AudiodevGenericOptions" when "driver" is "none"
16500 The members of "AudiodevAlsaOptions" when "driver" is "alsa"
16501 The members of "AudiodevCoreaudioOptions" when "driver" is "coreaudio"
16502 The members of "AudiodevDsoundOptions" when "driver" is "dsound"
16503 The members of "AudiodevOssOptions" when "driver" is "oss"
16504 The members of "AudiodevPaOptions" when "driver" is "pa"
16505 The members of "AudiodevGenericOptions" when "driver" is "sdl"
16506 The members of "AudiodevGenericOptions" when "driver" is "spice"
16507 The members of "AudiodevWavOptions" when "driver" is "wav"
16508
16509 Since: 4.0
16510
16511
16512
16513 2019-11-15 QEMU-QMP-REF.7(7)